[FFmpeg-devel] [PATCH v2 10/11] avcodec: add vvc metadata bsf

Nuo Mi nuomi2021 at gmail.com
Sat Jan 9 18:07:20 EET 2021


On Sat, Jan 9, 2021 at 11:53 PM James Almer <jamrial at gmail.com> wrote:

> On 1/9/2021 12:11 PM, Nuo Mi wrote:
> > Hi James,
> > On Sat, Jan 9, 2021 at 10:53 PM James Almer <jamrial at gmail.com> wrote:
> >
> >> On 1/9/2021 4:34 AM, Nuo Mi wrote:
> >>> use following command to test:
> >>> ffmpeg -i in.bin  -c:v copy -bsf vvc_metadata -f vvc out.bin
> >>>
> >>> 79.11%(197/249) can bit match with original clips
> >>> 6.83%(17/249) are not bit match, the original clips has redundant
> >> emulation prevent bytes
> >>> other all failed since vvdec failed to decode the first frame
> >>
> >> You don't (or shouldn't) need a decoder in order to do bitstream
> >> filtering, since it works on packets (codec copy) and not frames.
> >>
> >> Since the decoder you submitted is, if committed, going to be external,
> >> it will not be present in most libavcodec builds out there. This means
> >> that you should ensure parsing of such files can succeed without a
> >> decoder, so bsfs can run without it. If not possible already in the
> >> state you wrote it in patch 8/11, it can be achieved by temporarily
> >> setting some values in the parser until an internal decoder is
> implemented.
> >> For AV1 i had to set avctx dimensions and pixel format, both things i
> >> removed once the internal decoder (as barebones as it is) was
> >> introduced, since it's its job. I assume h266 will require the same.
> >
> > Thanks for suggestion. I will try it.
> > I tried to disable hevc native decoder, and use hevc bsf only. It got the
> > same error as vvc.
> > Do we need fix this too?
>
> For now, the objective is not requiring the presence of an external
> decoder to ensure an unrelated internal module works.
>
> Fixing this same issue when it happens after disabling an internal
> decoder could be looked into, too, but that's unrelated

thanks for the suggestion, I have sent the v3 for the parser.
We can get almost 100% match with VTM11 streams

>


> >
> >
> >
> >
> >>> ---
> >>>    configure                      |   1 +
> >>>    libavcodec/Makefile            |   1 +
> >>>    libavcodec/bitstream_filters.c |   1 +
> >>>    libavcodec/vvc_metadata_bsf.c  | 243
> +++++++++++++++++++++++++++++++++
> >>>    4 files changed, 246 insertions(+)
> >>>    create mode 100644 libavcodec/vvc_metadata_bsf.c
> >>>
> >>> diff --git a/configure b/configure
> >>> index 5ff743d9c2..b41f2af151 100755
> >>> --- a/configure
> >>> +++ b/configure
> >>> @@ -3184,6 +3184,7 @@ mjpeg2jpeg_bsf_select="jpegtables"
> >>>    mpeg2_metadata_bsf_select="cbs_mpeg2"
> >>>    trace_headers_bsf_select="cbs"
> >>>    vp9_metadata_bsf_select="cbs_vp9"
> >>> +vvc_metadata_bsf_select="cbs_h266"
> >>
> >> For the sake of consistency, this bsf should be called h266_metadata and
> >> not vcc_metadata, seeing the other two are h264 and h265 respectively.
> >> It's part of what i suggested, but guess it got mixed in between the
> rest.
> >>
> > This is a funny part. Seems the filter name is hevc_metadata. But the
> class
> > name is h265_metadata_bsf...
>
> Well, that's surprising. Maybe follow suit and call the file
> h266_metadata_bsf.c, too, but otherwise guess it's fine as is, and the
> bsf can be named vvc_metadata.
>
> >
> >> _______________________________________________
> >> ffmpeg-devel mailing list
> >> ffmpeg-devel at ffmpeg.org
> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >>
> >> To unsubscribe, visit link above, or email
> >> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> >
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list