From patchwork Sat Apr 13 19:21:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 12728 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 94D4F4489F6 for ; Sat, 13 Apr 2019 22:29:37 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 81D1B68AB83; Sat, 13 Apr 2019 22:29:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 19EE468A8F1 for ; Sat, 13 Apr 2019 22:29:30 +0300 (EEST) Received: by mail-qt1-f180.google.com with SMTP id z17so14966190qts.13 for ; Sat, 13 Apr 2019 12:29:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=ryjcjBF4epMEuYFT2MyZHgHGJV9ONRvY3CeGSBlT2/Y=; b=p+d0pzZTZ6POvQ5QWqBQGUf/tSuKyCs10ntB0XWktYdVFzGJVXvkvnL9fq2W0A/PH+ B5uB7S5vfYOrpD26z8faTVJB4d+Lp2rLIbwbXyiwBFhdWbGsomXFfWvziIM8kw8qz8hp tpqFP3J8nuUzcT5QYpKT0chvPR7mPQpo6OA6za8O+GJJN1+h6U8mf7Oqbb2f/PMRFxoa eD/7t6X2FqgpCdOiUL5FHluB/reXZ+QdBfywIQzEYi+2+jPavWgiuN3wrDh1ZKKzJU5v wvxeP/W4NbZQewPlFAHTd9m+RTwCokkQmqbwpJr9DGeZvl0YdLlXsSvQZNgVlPm63kG+ UPxQ== 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:mime-version :content-transfer-encoding; bh=ryjcjBF4epMEuYFT2MyZHgHGJV9ONRvY3CeGSBlT2/Y=; b=U3CQcju+efBws54BZE+BSg5o9s/EG5CaTbbKryOB2bMv1E6Zgn64h1HLdjGras0vr5 LM0zpFG/ICRVkzuixCmEUn+H70pf1UMawmAtMjCbtvetSyC6663pIdn4HUA1tiObBNoH xD2kVHhim9IiiMseotMaEf1z0b9bVr+vyFG696ZUeyepfgr6gfIxhQFpssnl3ZH3zf04 GqDrAKoGt8KhvxPm6vMWPz9dKjygiJm+jukDTE/rkEWEGO8rnSkM4ueoR2J+lHqBEoRJ E80G2PZMqkg15zv86vkv4SZBgsLEGKXXsBX64ScVP9jZxw/U5fsqAFxmcDTOSbPUMUbH sFKw== X-Gm-Message-State: APjAAAVaRHsS/GoJ50rL97nTNAAv5nmn4DEr2QufjUsX/vQlp3SHKDHl OdlYk4Pp7oqMKOdZITIWAJi2uyTbDsc= X-Google-Smtp-Source: APXvYqxfPBI9P25Afhxi7afqGuQ8eulbR4nvgFc/aKjhEs/12Y2720OR96gBed0kthAzE2WUJdGSgg== X-Received: by 2002:ac8:1967:: with SMTP id g36mr34075454qtk.323.1555183341463; Sat, 13 Apr 2019 12:22:21 -0700 (PDT) Received: from localhost.localdomain ([181.23.87.223]) by smtp.gmail.com with ESMTPSA id 194sm19889191qkd.72.2019.04.13.12.22.20 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 13 Apr 2019 12:22:20 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 13 Apr 2019 16:21:42 -0300 Message-Id: <20190413192143.4008-1-jamrial@gmail.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/cbs_av1: add a function to get a payload size without trailing zero bytes 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" Factor it out from cbs_av1_read_metadata_itut_t35() Signed-off-by: James Almer --- libavcodec/cbs_av1.c | 11 +++++++++++ libavcodec/cbs_av1_syntax_template.c | 10 +--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c index f02cca2dad..0c03ca28af 100644 --- a/libavcodec/cbs_av1.c +++ b/libavcodec/cbs_av1.c @@ -574,6 +574,17 @@ static int cbs_av1_get_relative_dist(const AV1RawSequenceHeader *seq, return diff; } +static int cbs_av1_get_payload_bytes_left(GetBitContext *gbc) +{ + GetBitContext tmp = *gbc; + int size = 0; + for (int i = 0; get_bits_left(&tmp) >= 8; i++) { + if (get_bits(&tmp, 8)) + size = i; + } + return size; +} + #define HEADER(name) do { \ ff_cbs_trace_header(ctx, name); \ diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c index 76eb90b279..56009145e8 100644 --- a/libavcodec/cbs_av1_syntax_template.c +++ b/libavcodec/cbs_av1_syntax_template.c @@ -1674,15 +1674,7 @@ static int FUNC(metadata_itut_t35)(CodedBitstreamContext *ctx, RWContext *rw, #ifdef READ // The payload runs up to the start of the trailing bits, but there might // be arbitrarily many trailing zeroes so we need to read through twice. - { - GetBitContext tmp = *rw; - current->payload_size = 0; - for (i = 0; get_bits_left(rw) >= 8; i++) { - if (get_bits(rw, 8)) - current->payload_size = i; - } - *rw = tmp; - } + current->payload_size = cbs_av1_get_payload_bytes_left(rw); current->payload_ref = av_buffer_alloc(current->payload_size); if (!current->payload_ref)