On Tue, Jan 14, 2025 at 5:01 AM Rubén Gonzalez <rgonza...@fluendo.com> wrote:
> I tested your ([PATCH v2] lavc/vvc/refs: export keyframe and picture type > in output frames) implementation and it works correctly. > > For instance, I found different output from my original implementation in > SUBPIC_D_ERICSSON_1.bit[1]. > 👍 Thanks for the test and fluster framework. > > Thanks you. > > [1] > https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/VVC/draft_conformance/draft6/SUBPIC_D_ERICSSON_1.zip > > > On Wed, Jan 8, 2025 at 5:56 PM Rubén Gonzalez <rgonza...@fluendo.com> > wrote: > >> Sounds very good, thanks! >> >> Issue: https://trac.ffmpeg.org/ticket/11406 >> >> I would be glad to try it. >> >> >> On Wed, Jan 8, 2025 at 2:04 PM Nuo Mi <nuomi2...@gmail.com> wrote: >> >>> >>> >>> On Wed, Jan 8, 2025 at 12:35 AM Rubén Gonzalez <rgonza...@fluendo.com> >>> wrote: >>> >>>> Hi Nuo Mi, >>>> >>>> thanks for your feedback. Unfortunately I don't have enough >>>> knowledge/time to improve the patch. I only mimicked H.26[45]. >>>> >>>> IMHO, reporting AV_FRAME_FLAG_KEY is better than nothing, so I will >>>> send a new patch only with AV_FRAME_FLAG_KEY logic and create a bug report >>>> in trac to support pict_type. >>>> >>>> - if (!IS_IDR(s)) >>>> + if (IS_IDR(s)) >>>> + fc->frame->flags |= AV_FRAME_FLAG_KEY; >>>> + else >>>> ff_vvc_bump_frame(s, fc); >>>> >>> >>> Hi Ruben, >>> Unfortunately, this is also incorrect. In VVC, an intra random access >>> point (IRAP) can indeed serve as a key frame. >>> Please go ahead and create an issue—I will send a patch and add you as a >>> co-author. >>> Your help in reviewing the patch would be greatly appreciated >>> >>> Thank you >>> >>>> >>>> On Sat, Jan 4, 2025 at 2:35 PM Nuo Mi <nuomi2...@gmail.com> wrote: >>>> >>>>> Hi Ruben, >>>>> Thank you for the patch. >>>>> A B/P frame's first slice may be an I slice, so it can't be used to >>>>> determine the picture type. >>>>> The ph_inter_slice_allowed_flag can quickly identify an I frame, but >>>>> B/P frame still requires checking all slices. >>>>> >>>>> On Fri, Jan 3, 2025 at 12:19 AM Ruben Gonzalez <rgonza...@fluendo.com> >>>>> wrote: >>>>> >>>>>> Update VVC decoder to show frames info with ffprobe and other tools. >>>>>> >>>>>> Tested with: >>>>>> ``` >>>>>> wget >>>>>> https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/VVC/draft_conformance/draft6/CodingToolsSets_E_Tencent_1.zip >>>>>> unzip CodingToolsSets_E_Tencent_1.zip CodingToolsSets_E_Tencent_1.bit >>>>>> ffprobe -hide_banner CodingToolsSets_E_Tencent_1.bit -select_streams >>>>>> v -show_frames -show_entries frame=pict_type,key_frame -of csv >>>>>> ``` >>>>>> >>>>>> From >>>>>> ``` >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> frame,0,? >>>>>> ``` >>>>>> >>>>>> To: >>>>>> ``` >>>>>> frame,1,I >>>>>> frame,0,B >>>>>> frame,0,B >>>>>> frame,0,B >>>>>> frame,0,B >>>>>> frame,0,B >>>>>> frame,0,B >>>>>> frame,0,P >>>>>> frame,0,B >>>>>> ``` >>>>>> >>>>>> Signed-off-by: Ruben Gonzalez <rgonza...@fluendo.com> >>>>>> --- >>>>>> libavcodec/vvc/dec.c | 13 ++++++++++++- >>>>>> 1 file changed, 12 insertions(+), 1 deletion(-) >>>>>> >>>>>> diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c >>>>>> index 1cb168de7e..71408caf7b 100644 >>>>>> --- a/libavcodec/vvc/dec.c >>>>>> +++ b/libavcodec/vvc/dec.c >>>>>> @@ -712,7 +712,18 @@ static int frame_start(VVCContext *s, >>>>>> VVCFrameContext *fc, SliceContext *sc) >>>>>> if ((ret = ff_vvc_set_new_ref(s, fc, &fc->frame)) < 0) >>>>>> goto fail; >>>>>> >>>>>> - if (!IS_IDR(s)) >>>>>> + if (sc->sh.r->sh_slice_type == VVC_SLICE_TYPE_B) >>>>>> + fc->frame->pict_type = AV_PICTURE_TYPE_B; >>>>>> + >>>>>> + if (sc->sh.r->sh_slice_type == VVC_SLICE_TYPE_P) >>>>>> + fc->frame->pict_type = AV_PICTURE_TYPE_P; >>>>>> + >>>>>> + if (sc->sh.r->sh_slice_type == VVC_SLICE_TYPE_I) >>>>>> + fc->frame->pict_type = AV_PICTURE_TYPE_I; >>>>>> + >>>>>> + if (IS_IDR(s)) >>>>>> + fc->frame->flags |= AV_FRAME_FLAG_KEY; >>>>>> + else >>>>>> ff_vvc_bump_frame(s, fc); >>>>>> >>>>>> av_frame_unref(fc->output_frame); >>>>>> -- >>>>>> 2.47.1 >>>>>> >>>>>> _______________________________________________ >>>>>> ffmpeg-devel mailing list >>>>>> ffmpeg-devel@ffmpeg.org >>>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>>>> >>>>>> To unsubscribe, visit link above, or email >>>>>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >>>>>> >>>>> > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".