From patchwork Sat Apr 3 05:19:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26717 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id D27E14491C1 for ; Sat, 3 Apr 2021 08:53:14 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AE3F66807B3; Sat, 3 Apr 2021 08:53:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073108.outbound.protection.outlook.com [40.92.73.108]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 91A17680258 for ; Sat, 3 Apr 2021 08:53:08 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T40rTxdQSC+0csc1AcUqZMqF6DDVf8f/gHRFwigUdok9yKCx6wsc0ugOAhMHgunrjcHCdGZatESc8I9tFyNzhBW/Pn6Dmyx2h0wOjxFWH9WvI+Aij7lblcgRRCcryyVoAh3aID16eI+l1u7UjUuaXzeNNhpmmmZ8JJIeyFNnnQJrPPuKvJagoAaQ7RV9hV6QlLIU9NF2nAZ5hBkZ2QXIkeSiqgxGkhYW8S7oQpT2jA7H9yCHGLtl5+vYx6hSsKyd7DT6y+CjStMcy0CrCwiamTG9Vqhfi9WT8/XTl63aehRrbuY7L+PtIPkrWcx1GgqFx08Ljzan8OBoSA7GaUZW9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JHIxhdCINQ9Lu/oFkgH2a20nQgnbd+msOQvZqksijbs=; b=oMPumme5XKq5NykZKIGiV7LptvLr4WqmUsF6p659Uc9OvknpMcMnGeg0mzYgOCzTh8zaWTMy4M7SvbbaW+Wsiu7lZZZhX6uOd1XMvdswN9+gV43XOp7d61x5y68RY8NdFyPg4LGkT9HnALgDDcUJMWEIjmOHfRNRNVbfSESUrn12g+EfGLcpTLjaAubupvaEsgwzySpdxCdjlfW6XaZXGiAmQ1xO7jrKDt5YsQDIItRuvdVzQOr9QtQANERyrVE98apHXtVz/yx4j8TqdztZAlCzvnnVNJQq4bh72inRbmOj7/go0b6WUAbbZ2K//xvMgZIe+V2xWAxt7vxeEq5Jnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JHIxhdCINQ9Lu/oFkgH2a20nQgnbd+msOQvZqksijbs=; b=XHCOh0E62+ApsuyiXu4GoXbZtiSb8cDYSMLKDswRoVNxqZxEw7I7UDyQwz0u25skQv2LOA9g2nfZFjKKqMYsibi2NBLeTRKoSWFJwHT9k9UKZUqPzENsuo/HZMTnf7mPDWn0bjQfh3Nkiff4z7NNa83mne0d7El3z9JBVpySB9cGw28PRHo/SknQ0hIU006rzV3AqIkoezGiFatgRtam5toy/7atSzlfL9YGhhER+AL8QAMZUw+oCek3WR7hKS5/8HeOXts+SnBG3lEZA9YwNdrbfM6OqMpC015bwpoMAbe7hObeSKCZuWruw1mR+VnDGMyFsThw6+zgAZdRKFyiZw== Received: from HE1EUR04FT009.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::49) by HE1EUR04HT158.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28; Sat, 3 Apr 2021 05:19:57 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0d::51) by HE1EUR04FT009.mail.protection.outlook.com (2a01:111:e400:7e0d::279) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28 via Frontend Transport; Sat, 3 Apr 2021 05:19:57 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:2E5413CA3ED71CF4915CE51A414D73B59390E24D4680A1F1DD3D8062A59FA9D0; UpperCasedChecksum:09DD4B763D08B4D7563B891B05FA1C52B38B68198E82333D13410E6BF038A6F8; SizeAsReceived:7403; Count:46 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3999.028; Sat, 3 Apr 2021 05:19:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Apr 2021 07:19:49 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [7x4vP7Ud0RczGlsI2k2tTOGdbXGs/zAl] X-ClientProxiedBy: FR0P281CA0055.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::15) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210403051949.3154858-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by FR0P281CA0055.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.10 via Frontend Transport; Sat, 3 Apr 2021 05:19:56 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: bcba5045-4a58-4afc-3581-08d8f6601ec0 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR3EehW4kxQzWZYIUNz8LfEOWIMZl1XWN8V4LIl8B3KS3Mc7be5QO8BbTxyvllqXXUqjH8ZolpDWmsyPylC+/rSzGX+jOxWdRAwqtpogZ2GQLTla1xas7SVyYAZTmvM+IGGdL3gK+jG1RL29csPLwg4nWX/3+K0zv+1Fdj8+fKOvmfof260SrqACy4X1UrKPc3nfQyAjHrEIteR3rOysQHfXb//o7oarH1QbykOG2RjYmzoHC0yxDK6P+qzVmaXvPzGLG+SyeoJjvWHa0OoKVYs6lsI5xtrYXraab/yXnsQhWkzocPaym9JnCu8Kp29100CTYfbw1HCKYfmez1TGy80utIG7Zhr/SSj4rfs8CnF6Y/CNP9EU2ov/wP5nBp0+K/A8B3jwRK4KlTW2wH6VQRxFFuTxMEN+EA0lO5uTUGSVR4nwTT4Ik5MUOBSL4iZy/2a1fggY+8YdtkCMSzTj0wMgP1eIB99s1+vnVGdL0npog9nmf2e2rlPZJIt4PyXipxdwsfbRHkvIfvgB5CI+E1VfvWbdYljctGFRIt4szdABIbGgaTZqojt6VfZN8nZsIwTZg/0jJw9WOT4KLjQSlI6AX2ffCdnewXFyZttiKf54dqFmAr7BRvG3x7FbUQqW3imLxvbwHuetCBhyCsjtQKXgOTe0Yil3sTj0OQ11OVmSmZBoJ1y2qGxoavUe8jb0wP9W7xyW0mgW3Zi4k6RdMmxFMcry7J0W6KDY8UZCqeTh8n74+u853qQ8RjMNmC6upY= X-MS-TrafficTypeDiagnostic: HE1EUR04HT158: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ou6tg6w87wPM7iIFMMXMEqG5gcNB6/p+7kVYM2QsrsZ1EWtrZjo2NZndokvLdRq6MexXmdb/MqBG/CTpYvRugyL7OXRtdCpEMy6vBFNqLDJy1GqWUttTCs2yodKNOnMj99+9bpUnIyLhI5Mb+DFVQuCpdM3L9nRt2h7qpuoxb6gqY7HXLK1BEUOcv979e12abfHIZkMNfiIBjXweMMvfr9/F7MGmcgPQpQuTNvlM/ZJp2EJvIwDEWOPAKNkqGlrEJ73xX/oFj8A4j6trMLUvgSipHga7p6SnW6SPsWXrhsopW8aq48d/Qzq3gsCoplO5Q6votSKK9ost9Uo5X1aBoe3rBD+O4H8vBFK6CXUvbsZgGTry0I81qmtbWLRCU1jKHuXYr/BQc2zkGwnYlkD2tQ== X-MS-Exchange-AntiSpam-MessageData: IuF//5Zw+KzgXfXixHUbcIiFXZAqYnKgv7UOgyujJPXku8jNgPY8SJVgK+Vbg673Z/ErFatlNeDhPwKd25Qv4ndd/iby5ao+OcAXkeAdbzl3yeTmgpqM9fMwtUF08UW91bbyLDb9SoBiXJM2HMXUQA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcba5045-4a58-4afc-3581-08d8f6601ec0 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2021 05:19:57.0429 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: HE1EUR04FT009.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR04HT158 Subject: [FFmpeg-devel] [PATCH] avformat/mpegtsenc: Preserve disposition in the absence of language X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Implements ticket #9113. Signed-off-by: Andreas Rheinhardt Signed-off-by: Andreas Rheinhardt --- libavformat/mpegtsenc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 35c835c484..dbd3bb148a 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -459,6 +459,8 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) AVStream *st = s->streams[i]; MpegTSWriteStream *ts_st = st->priv_data; AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL, 0); + const char default_language[] = "und"; + const char *language = lang && strlen(lang->value) >= 3 ? lang->value : default_language; enum AVCodecID codec_id = st->codecpar->codec_id; if (s->nb_programs) { @@ -598,16 +600,19 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) } } - if (lang) { - char *p; - char *next = lang->value; + if (language != default_language || + st->disposition & (AV_DISPOSITION_CLEAN_EFFECTS | + AV_DISPOSITION_HEARING_IMPAIRED | + AV_DISPOSITION_VISUAL_IMPAIRED)) { + const char *p; + const char *next = language; uint8_t *len_ptr; *q++ = ISO_639_LANGUAGE_DESCRIPTOR; len_ptr = q++; *len_ptr = 0; - for (p = lang->value; next && *len_ptr < 255 / 4 * 4; p = next + 1) { + for (p = next; next && *len_ptr < 255 / 4 * 4; p = next + 1) { if (q - data > SECTION_LENGTH - 4) { err = 1; break; @@ -637,10 +642,6 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) } break; case AVMEDIA_TYPE_SUBTITLE: - { - const char default_language[] = "und"; - const char *language = lang && strlen(lang->value) >= 3 ? lang->value : default_language; - if (codec_id == AV_CODEC_ID_DVB_SUBTITLE) { uint8_t *len_ptr; int extradata_copied = 0; @@ -715,7 +716,6 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) *len_ptr = q - len_ptr - 1; } - } break; case AVMEDIA_TYPE_VIDEO: if (stream_type == STREAM_TYPE_VIDEO_DIRAC) {