From patchwork Tue Mar 6 22:25:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 7834 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.181.170 with SMTP id m39csp4285598jaj; Tue, 6 Mar 2018 14:25:35 -0800 (PST) X-Google-Smtp-Source: AG47ELsKfbqrz1EHyc6dqXQzgRLdDLV4n4KEUtBCSTMZ86B8NuoELJjWG3Yb4hyNbDrlqg+lCDrF X-Received: by 10.223.209.18 with SMTP id a18mr17224772wri.141.1520375134932; Tue, 06 Mar 2018 14:25:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520375134; cv=none; d=google.com; s=arc-20160816; b=cb267ktkQ3qXdzwrbEdMAf48M3JVUqmc3GqoEv2lW/8xNbfk8M+PSHUFgx0dTjSxU4 C88zayqHPOiUPa/Y+coZAoKNAkB47u0UBQzAZ0D4rlWrRVEEXOjxSjpdCljucFLPGmYh irXzfGwFRLhagZUe2YOAL9VyiFHdZLW8tIcHbkThctK2PzxBlqs+KYNM37eq2/LZdGHF y5wiNbi9KNoA52wsG07JCRVo/99q9HJcktaKm03ZYxvUrxBT7sFPenvtKYtTh6sFjzGE moAyvtf+G8hljLkkNXfLS5ZL8/xbyNtk3MpoNqOvQALD+i2PaxYQ1pbWL4vm71uHAm6o 8qTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=rLPR01YIevND6eo8DArxRBycRhdLQa7EnGoXU8EyuEc=; b=MzArzSJ+K6skAwlAqeO5ojMHveGKHJPWgL4icWfLbu7zG42bsRNjavIzamdm0/goQD PUcVghFIhLaCmPV+YbMLvMfponPRp9TKGH3kwirb8qBHyfWykmqFjwR1JPhUtlnCB+t5 dvEnUZRIawIxOyHSYcOzaoNYu6lJIeGD1/aL3AmZ6ogNE+FC7evRYuAqqqawG1N4MlUt TlJex4SlrO2EyXeriKQPJGfniXIt+fo/rmpMUc+I/vZrDmlZKQH/ugjJlLY/XTgLapkp K/0lqmgB9G7KebaSgiR8hhTKpQlilkyx5iRzs8qD3mIm+4BUlQ4mEI1TftA3K5/qLiMk ZcxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=FKVEdISE; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a13si1764143wmg.110.2018.03.06.14.25.34; Tue, 06 Mar 2018 14:25:34 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=FKVEdISE; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9886068A430; Wed, 7 Mar 2018 00:25:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl0-f44.google.com (mail-pl0-f44.google.com [209.85.160.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 395DE68A332 for ; Wed, 7 Mar 2018 00:25:18 +0200 (EET) Received: by mail-pl0-f44.google.com with SMTP id v9-v6so132171plp.12 for ; Tue, 06 Mar 2018 14:25:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tmm1-net.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id; bh=/7ONZpFxqcekywGa5BU2Q/nhtuTRPgKe0tKQ2Gy8tVs=; b=FKVEdISElePTNlZfGjzyA5vYfWAThCAD4F2/0OAjF8QRurgHvLzfWqn7amY3UgwkLD udDQaHC8fFfDa/LzA2QLjtTYNhNq8rkrrdnLsiYWl8DQTsUknGaQbpvmdrl2fZxcVSBA 1+3JzXW1CymihbsmjCl5aLBkb/87JRZueXjlMx1E9O6vJCtmJXQgUWFYFRx9WWHvjpC7 uBixRqS9I6zSzTG3f6j60WqdyC+tPgtO6eB7vyoAWwCqzOSfVn3L7pXugSIFgd7pXHWE wgjgbfqBorb16z7REjodF9IP0TTfpj3jGBhreO0vYrFiSy8Ul9EzjSIcuyO0oGFMyc8p 3aCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=/7ONZpFxqcekywGa5BU2Q/nhtuTRPgKe0tKQ2Gy8tVs=; b=GpYzBWXvONuOo1A4EXNfnjpx9V2R7H5UZpxbMiWQMLEM0DqV+aN4TwH5CBfXqaxkHr XbXnbIHteDd9HEqadYwsuCWlwuVpBG7PA7Aukl6dUWrt6KMKhU2YNGkQR4CKB4q0i5MA i911Gaqvuy6e4va8Jf+98ipAeSXUS3jaA/pruWYvRz39UB+qRIUnCU7BxlmVQTYauTqn A5P1UgW5SpAe5OV3U0aAsgnKHUzxeH7UZumEzoLnsIds7tpDiAyS1anWSGNkyZHtMvWx /KUIVMorF3uuejV1BgM7NRPVV7HaGL+SaDotPx6/qhTARPWmOFe7mAgpZGaVWpXL0sYH qj1w== X-Gm-Message-State: APf1xPCDE7+ax1ggD91Ok/m/0ZMyarg6anCzUhkRuQGQT8abqyF3KVTo 3RNLvYi4izEV8k8ETcOuRw9TK8Xk X-Received: by 2002:a17:902:6e8c:: with SMTP id v12-v6mr18048354plk.424.1520375124283; Tue, 06 Mar 2018 14:25:24 -0800 (PST) Received: from localhost.localdomain (c-69-181-54-242.hsd1.ca.comcast.net. [69.181.54.242]) by smtp.gmail.com with ESMTPSA id b5sm24693557pgc.13.2018.03.06.14.25.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Mar 2018 14:25:23 -0800 (PST) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Mar 2018 14:25:12 -0800 Message-Id: <20180306222512.20124-1-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.14.2 Subject: [FFmpeg-devel] [PATCH] avcodec/mpeg12dec: ignore scte20 captions when a53 data is also present 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: Aman Gupta MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Aman Gupta Some streams include both a53 and scte20 data. Before this commit, the scte20 data would be used instead of the a53 data. See https://s3.amazonaws.com/tmm1/ccaptions/scte20plusa53.ts, which produced garbage captions since 3f1a540204a8c187f77b3805d. --- libavcodec/mpeg12dec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 9e076e89da..45d0a9d737 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -59,6 +59,7 @@ typedef struct Mpeg1Context { int has_stereo3d; uint8_t *a53_caption; int a53_caption_size; + int ignore_scte20; uint8_t afd; int has_afd; int slice_count; @@ -2241,6 +2242,7 @@ static int mpeg_decode_a53_cc(AVCodecContext *avctx, /* extract A53 Part 4 CC data */ int cc_count = p[5] & 0x1f; if (cc_count > 0 && buf_size >= 7 + cc_count * 3) { + s1->ignore_scte20 = 1; av_freep(&s1->a53_caption); s1->a53_caption_size = cc_count * 3; s1->a53_caption = av_malloc(s1->a53_caption_size); @@ -2253,7 +2255,8 @@ static int mpeg_decode_a53_cc(AVCodecContext *avctx, } return 1; } else if (buf_size >= 2 && - p[0] == 0x03 && (p[1]&0x7f) == 0x01) { + p[0] == 0x03 && (p[1]&0x7f) == 0x01 && + !s1->ignore_scte20) { /* extract SCTE-20 CC data */ GetBitContext gb; int cc_count = 0;