[FFmpeg-devel] [PATCH v2 2/3] libavcodec: add a new AV_CODEC_EXPORT_DATA_FILM_GRAIN flag and option

Anton Khirnov anton at khirnov.net
Tue Nov 17 11:58:49 EET 2020


Quoting Lynne (2020-11-17 00:21:43)
> Nov 16, 2020, 15:56 by ffmpeg at haasn.xyz:
> 
> > In terms of an API user needing this functionality, the way I see it
> > working is that presence of the side-data will imply that it still needs
> > to be applied, with the side data being removed the moment grain
> > actually is applied. So that means that decoders applying film grain
> > must never export this side data, and decoders not applying film grain
> > must always export this side data.
> >
> > A decoder both applying grain and exporting the side data is
> > nonsensical, and would only result in double-grain-application. In terms
> > of the capability checking, I don't need you to tell me whether or not
> > the decoder can apply/export side data or not, rather, I need to tell
> > *you* whether or not I can apply film grain myself. This is what I
> > understand AV_CODEC_EXPORT_DATA_FILM_GRAIN to be. Whether or not it's
> > actually exported when that flag is present is irrelevant to me, all I'm
> > trying to do is signaling that I'd prefer film grain to be exported
> > rather than applied.
> >
> 
> Yup, that's my idea of how this should work as well.
> Maybe even analyzers should want to skip applying film grain in a majority
> of cases or apply it independently. So I still think of having an export
> flag control the decoder behavior is acceptable in this case.

It's not about majority vs. minority, the question is
"is there EVER a valid reason to apply AND export?"
If the answer is yes, then there needs to be a way to do that. The flag
you're proposing explicitly says you can do either one or the other, but
never both.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list