From patchwork Mon Jan 11 16:33:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 24901 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 D53D644A17E for ; Mon, 11 Jan 2021 18:34:01 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BCFC868ABB4; Mon, 11 Jan 2021 18:34:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4059A688298 for ; Mon, 11 Jan 2021 18:33:55 +0200 (EET) Received: by mail-pl1-f171.google.com with SMTP id g3so120178plp.2 for ; Mon, 11 Jan 2021 08:33:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IoFltaTU/gLHlx64Kok4aSEG3GP95Xn0rqFqQdeO5Zg=; b=RdsrnoqiRsGgg4qHo7ao6L/bmTgYqdfa769UnJ6px0CdYFyaGyDQlFYHd7ZC1UaBpL H/D4qNQU4n4Kavu5OeNtKdFY7eiJxytAjAP7V6hiV1OEkaxPTKl7LPBGNrmNRcOzdrTH h5W6taaK0+tbcAIUxHmFZpDqzynvm9hJBQzsAHBd/RpNBT8/DAcmCx39jBkOyJGdjVUC r4rzBgXPwqe088A1GH+LOzi61D66GI6YD+sRxe4/YbF/PK+nq1jX/ZLgccnxB7HAWNHA 2g5DphNkDrmXnT066tP8f7hwu7Sg93z+I4NoTl2yrfFm5aknUN2D3Uh92HXgTKfF3lJR JgKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IoFltaTU/gLHlx64Kok4aSEG3GP95Xn0rqFqQdeO5Zg=; b=nDS3S5bLqA4bu4E8lznNRgit1X+QN2df9cz5Zxp/ih+bEtijG+wxrgveTwT4BWqGju sXkP7/5QGD289rt8AgjZbMyIKAMmVoZSvzTqkfoqMfd1Cn0mRfw0jj7CAoCTCJ5j4Mb1 rmnL+D58KrEfNOA7lm4IEBO+z6J/TALUqBj5Kq09la7pK52zHEw/SrtDgYzKGwL2OHLy sIIeJ6MbD8LBH9/aHGzTYzaRaoOx3rwDf7SYDenOYdi+VAXslKsSu0R7UUtj36dwYW2b 2vDlLqeCycVszYH8kS17E53WVTB9uDCQ5gR4SS4lQKPIvimPUbq8uttL/EJlWXWNVtnk BM4w== X-Gm-Message-State: AOAM5323ZfNEontckE65IKzIgaHaCIWNgxmXjjdbz+Zto9sm6pMEx8Dz OY96AOzoa7V3NMAcCAyfQUMf7jf4uNO29g== X-Google-Smtp-Source: ABdhPJxxmc0K3mfld0D0kXod9jzwfWWkFJhXvrydniPa6GDc0pv0JZyfY8sQb4qYUKwX35y/uW6Bjw== X-Received: by 2002:a17:90a:de94:: with SMTP id n20mr83014pjv.196.1610382833528; Mon, 11 Jan 2021 08:33:53 -0800 (PST) Received: from smith.tendawifi.com (23.83.245.51.16clouds.com. [23.83.245.51]) by smtp.gmail.com with ESMTPSA id x21sm203205pgi.75.2021.01.11.08.33.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 08:33:52 -0800 (PST) From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Jan 2021 00:33:14 +0800 Message-Id: <20210111163319.13387-7-nuomi2021@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210111163319.13387-1-nuomi2021@gmail.com> References: <20210109073421.23721-1-nuomi2021@gmail.com> <20210111163319.13387-1-nuomi2021@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 06/11] avcodec/cbs_h2645: reface, move zero bytes check to a function 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: Nuo Mi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavcodec/cbs_h2645.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index 434322492c..5d7ae95931 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -1207,6 +1207,20 @@ static int cbs_h265_write_nal_unit(CodedBitstreamContext *ctx, return 0; } +//defined in B.2.2 zero_byte section +static int cbs_h2645_unit_requires_zero_byte(enum AVCodecID codec_id, + CodedBitstreamUnitType type, + int i) +{ + if (i == 0) + return 1; /* (Assume this is the start of an access unit.) */ + if (codec_id == AV_CODEC_ID_H264) + return type == H264_NAL_SPS || type == H264_NAL_PPS; + if (codec_id == AV_CODEC_ID_HEVC) + return type == HEVC_NAL_VPS || type == HEVC_NAL_SPS || type == HEVC_NAL_PPS; + return 0; +} + static int cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag) { @@ -1241,14 +1255,7 @@ static int cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx, frag->data_bit_padding = unit->data_bit_padding; } - if ((ctx->codec->codec_id == AV_CODEC_ID_H264 && - (unit->type == H264_NAL_SPS || - unit->type == H264_NAL_PPS)) || - (ctx->codec->codec_id == AV_CODEC_ID_HEVC && - (unit->type == HEVC_NAL_VPS || - unit->type == HEVC_NAL_SPS || - unit->type == HEVC_NAL_PPS)) || - i == 0 /* (Assume this is the start of an access unit.) */) { + if (cbs_h2645_unit_requires_zero_byte(ctx->codec->codec_id, unit->type, i)) { // zero_byte data[dp++] = 0; }