From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 1A0E5446E1 for ; Mon, 24 Oct 2022 14:38:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 632A468BC38; Mon, 24 Oct 2022 17:38:16 +0300 (EEST) Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 233BF68B9B7 for ; Mon, 24 Oct 2022 17:38:10 +0300 (EEST) Received: by mail-ot1-f49.google.com with SMTP id br15-20020a056830390f00b0061c9d73b8bdso6002886otb.6 for ; Mon, 24 Oct 2022 07:38:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=YQKAAVNaA3gN4RoRDFDDq1JKj7lmJqdqA5ynRhxrtNk=; b=ZxlG/OaefQvd52vqydVzlfHKj1tIbwHnvJNlJqWjeQQqgLEnIHWun4xF5zJn0sMlH6 mCSBVCgeb8JtFG1aGAkjFuV9kXvBQtvfOOMeiuAruwJojpXNdRlUvM2Qdf3DYzNOKqxk NhTm8QK2QOeP+LE936sY3l5qvBBXj0C1GJE9PP/97s+2HqsSKEGp1wrc5v3BoTWMR7b4 QLhOSOYyt5UEUugLFUgEupxVgSM+eX+DNZgblK9CloFQ8CRwfzpf6gX5bNE+/jQTGbMp KigoNIUzJFE1i019WOPiOgDRNgXoDJajPsIJbupib8ZXA5aSPnYnaYxrDUMFldmr/wYn pCOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YQKAAVNaA3gN4RoRDFDDq1JKj7lmJqdqA5ynRhxrtNk=; b=NDY9KUblc+mtqai04skANA3HGUZU5Gd8o5r2wa/NkHbUFULc714DAXxyCMhsriDr62 1epxqMp1zFuE8jHKeDv5aZ6cdH60oppVWAN4PlL2jwKjTPlYrtITiIrEA0haZT9Ttyim u5w06E4uKilAzbTmC/Gj6Y0TJCWiGqX8KHP//3Fgxf/vy7p876uK+LQg+nSKFXnO8P1c LBu28/9MQFBj52SAEQgaipYsXvj6UODiRYLzI6GEJM+C/rbcVPtIb/61r/FYziGaG32L c6Udy8OXoqRuwqxjRcfyHooFTpMc50HjdbHrz4UQSm3W1zPHvRVl5dK0itTYrVCkqaTg tOcw== X-Gm-Message-State: ACrzQf2Q4Wt1CTkWgV8JLZer9Lqj4CgxZb5w7RWTBQmlOd/pDYXIJwS/ lMRB6NyPvzVs4PqMiSlLr8C9wxKtr0Q= X-Google-Smtp-Source: AMsMyM67xwYoEZ9BUQksed0An5I3587OtiPMmLO+NVw67/kAWBThiuVpXWSSi3Jc4DxOeH7x1FAm1w== X-Received: by 2002:a9d:6f8c:0:b0:661:a153:fc23 with SMTP id h12-20020a9d6f8c000000b00661a153fc23mr15945623otq.267.1666622288301; Mon, 24 Oct 2022 07:38:08 -0700 (PDT) Received: from [192.168.0.13] ([191.97.187.183]) by smtp.gmail.com with ESMTPSA id t21-20020a05683014d500b00661946468c6sm4408341otq.31.2022.10.24.07.38.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 24 Oct 2022 07:38:07 -0700 (PDT) Message-ID: <621697ae-1c24-811d-c2e9-6c044699f37f@gmail.com> Date: Mon, 24 Oct 2022 11:38:16 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20221024140645.4945-1-thomas.ff@spin-digital.com> <20221024140645.4945-4-thomas.ff@spin-digital.com> From: James Almer In-Reply-To: <20221024140645.4945-4-thomas.ff@spin-digital.com> Subject: Re: [FFmpeg-devel] [PATCH v2 03/10] avcodec: add bitstream parser for H266/VVC X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 10/24/2022 11:06 AM, Thomas Siedel wrote: > +static int combine_au(AVCodecParserContext *ctx, AVCodecContext *avctx, > + const uint8_t **buf, int *buf_size) > +{ This is being called only when you first assembled AUs from what's assumed to be raw input. When PARSER_FLAG_COMPLETE_FRAMES is set, it should also parse the AU for bitstream information. > + VVCParserContext *s = ctx->priv_data; > + CodedBitstreamFragment *pu = &s->picture_unit; > + int ret; > + > + s->cbc->log_ctx = avctx; > + > + if (avctx->extradata_size && !s->parsed_extradata) { > + s->parsed_extradata = 1; > + > + if ((ret = ff_cbs_read(s->cbc, pu, avctx->extradata, avctx->extradata_size)) < 0) ff_cbs_read_extradata_from_codec() > + av_log(avctx, AV_LOG_WARNING, "Failed to parse extradata.\n"); > + > + ff_cbs_fragment_reset(pu); > + } > + av_packet_unref(&s->last_au); > + ret = parse_nal_units(ctx, *buf, *buf_size, avctx); > + if (ret == 0) { > + if (s->last_au.size) { > + *buf = s->last_au.data; > + *buf_size = s->last_au.size; > + } else { > + //no output > + ret = 1; > + } > + } > + s->cbc->log_ctx = NULL; > + return ret; > +} > + > +static int vvc_parser_parse(AVCodecParserContext *ctx, AVCodecContext *avctx, > + const uint8_t **poutbuf, int *poutbuf_size, > + const uint8_t *buf, int buf_size) > +{ > + int next; > + VVCParserContext *s = ctx->priv_data; > + ParseContext *pc = &s->pc; > + > + if (avctx->extradata && !s->parsed_extradata) { > + av_log(avctx, AV_LOG_INFO, "extra data is not supported yet.\n"); > + return AVERROR_PATCHWELCOME; > + } > + > + if (ctx->flags & PARSER_FLAG_COMPLETE_FRAMES) { > + next = buf_size; > + } else { > + int ret, flush = !buf_size; > + next = find_frame_end(ctx, buf, buf_size); > + if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) > + goto no_out; > + ret = combine_au(ctx, avctx, &buf, &buf_size); > + if (ret > 0 && flush) { > + buf_size = 0; > + ret = combine_au(ctx, avctx, &buf, &buf_size); > + } > + if (ret != 0) { > + buf_size = next; > + goto no_out; > + } > + } > + *poutbuf = buf; > + *poutbuf_size = buf_size; > + return next; > +no_out: > + *poutbuf = NULL; > + *poutbuf_size = 0; > + return buf_size; > +} _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".