From patchwork Mon Aug 10 15:49:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 21584 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 095BD44A9A5 for ; Mon, 10 Aug 2020 18:50:20 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EC76E6882E8; Mon, 10 Aug 2020 18:50:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 200A468A0FA for ; Mon, 10 Aug 2020 18:50:14 +0300 (EEST) Received: by mail-qk1-f178.google.com with SMTP id p4so8777943qkf.0 for ; Mon, 10 Aug 2020 08:50:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=LWYu4KcHTIeXVwgD+BRUlv/5pd4mJnjF2iWwFC00htc=; b=rhA6m7dcYzde4rNY9HRVg6/sT2KTKndUhrEEDqqkaI/TLPtkYMoc0KanwBI5zrSXhn ivevH06CMefKro2SYHenF9KQRJipcRLXvGxLHptdCD3QvJHX0qHkOgWXoXxZDd/w56bz /II+EnoztY8cedpzGIEAIuEP5CtSxal2TqQ+EehXIHyx7dlo92NKJx34nrC/H1ZRlKi4 4PKY+s7ZquN9nuW074laRbfBt++EbU2UY8aIOARipXRxv5ps0bIs/pNWn6sdMyDVyPO3 MZv6JmrIXiCCH7ev8g/GUi+j7W0fVjrKMjX3KLh2NOJuqCNSGlraYXOt4NhZDG78UnMA AAuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LWYu4KcHTIeXVwgD+BRUlv/5pd4mJnjF2iWwFC00htc=; b=pCcPV2wVDJFIBZ8yMmmtYD73Jr4hNvQz/BNA8MjCTzinMvky8DBMsItXp2QODBnMnT 1NWKwnUl/GysjKKqWBLulYnkuIchlL//AW5BeePtC5LmII0lhjeBQuKHOVIAwc5oNpKU VJYQMRIZlrVzi48vjXYWQD8UszY7cbGSRSALEUp3i/+HePfyZ03n8GbpOkj1zvY97EvU n1UmMMyL6QphtxILl6r+Ejyb0FZTtQ89F25CpPKTSpgJDxNiPc/QOZYaKxjuTcsgrCYv 9YERMs6tKyInM6Enk1tYX3heoM72lFUYo7K3BSbdZzGw292u0lHZsWkX+zKHZf5Bumv7 o1Mg== X-Gm-Message-State: AOAM533LlYG8nHtuGsSK+p0pMzfAZrD6eAxTZLGjymx8DEdR6yGWUPSG lzXTJxmchg/prm+5IbPbI5IRV43U X-Google-Smtp-Source: ABdhPJyB+nOwX4/njv5sjXkeve4Z402/0i9UCjNMV7JaSrhzeHgY3TgsVEd3kSX8Y8kWcF9b4QDE3w== X-Received: by 2002:a05:620a:144e:: with SMTP id i14mr26009763qkl.453.1597074612388; Mon, 10 Aug 2020 08:50:12 -0700 (PDT) Received: from localhost.localdomain ([181.23.72.45]) by smtp.gmail.com with ESMTPSA id o15sm13793249qkk.95.2020.08.10.08.50.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2020 08:50:11 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Aug 2020 12:49:39 -0300 Message-Id: <20200810154941.4988-3-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200810154941.4988-1-jamrial@gmail.com> References: <20200810154941.4988-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/h264_sei: use ff_parse_a53_cc() to parse A53 Closed Captions 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- configure | 2 +- libavcodec/h264_sei.c | 48 ++----------------------------------------- 2 files changed, 3 insertions(+), 47 deletions(-) diff --git a/configure b/configure index 83f051fdee..5fd966035f 100755 --- a/configure +++ b/configure @@ -2738,7 +2738,7 @@ h263_encoder_select="h263dsp mpegvideoenc" h263i_decoder_select="h263_decoder" h263p_decoder_select="h263_decoder" h263p_encoder_select="h263_encoder" -h264_decoder_select="cabac golomb h264chroma h264dsp h264parse h264pred h264qpel videodsp" +h264_decoder_select="atsc_a53 cabac golomb h264chroma h264dsp h264parse h264pred h264qpel videodsp" h264_decoder_suggest="error_resilience" hap_decoder_select="snappy texturedsp" hap_encoder_deps="libsnappy" diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c index 7b8e6bd7ba..669560ae5f 100644 --- a/libavcodec/h264_sei.c +++ b/libavcodec/h264_sei.c @@ -25,6 +25,7 @@ * @author Michael Niedermayer */ +#include "atsc_a53.h" #include "avcodec.h" #include "get_bits.h" #include "golomb.h" @@ -173,55 +174,10 @@ static int decode_registered_user_data_closed_caption(H264SEIA53Caption *h, GetBitContext *gb, void *logctx, int size) { - int flag; - int user_data_type_code; - int cc_count; - if (size < 3) return AVERROR(EINVAL); - user_data_type_code = get_bits(gb, 8); - if (user_data_type_code == 0x3) { - skip_bits(gb, 1); // reserved - - flag = get_bits(gb, 1); // process_cc_data_flag - if (flag) { - skip_bits(gb, 1); // zero bit - cc_count = get_bits(gb, 5); - skip_bits(gb, 8); // reserved - size -= 2; - - if (cc_count && size >= cc_count * 3) { - int old_size = h->buf_ref ? h->buf_ref->size : 0; - const uint64_t new_size = (old_size + cc_count - * UINT64_C(3)); - int i, ret; - - if (new_size > INT_MAX) - return AVERROR(EINVAL); - - /* Allow merging of the cc data from two fields. */ - ret = av_buffer_realloc(&h->buf_ref, new_size); - if (ret < 0) - return ret; - - /* Use of av_buffer_realloc assumes buffer is writeable */ - for (i = 0; i < cc_count; i++) { - h->buf_ref->data[old_size++] = get_bits(gb, 8); - h->buf_ref->data[old_size++] = get_bits(gb, 8); - h->buf_ref->data[old_size++] = get_bits(gb, 8); - } - - skip_bits(gb, 8); // marker_bits - } - } - } else { - int i; - for (i = 0; i < size - 1; i++) - skip_bits(gb, 8); - } - - return 0; + return ff_parse_a53_cc(&h->buf_ref, gb->buffer + get_bits_count(gb) / 8, size); } static int decode_registered_user_data(H264SEIContext *h, GetBitContext *gb,