[FFmpeg-devel] [PATCH v4 06/14] avcodec: add decode_params callback to AVHWAccel struct
Aman Gupta
ffmpeg at tmm1.net
Sat Nov 11 04:07:34 EET 2017
On Fri, Nov 10, 2017 at 5:45 PM, James Almer <jamrial at gmail.com> wrote:
> On 11/10/2017 6:40 PM, Aman Gupta wrote:
> > From: Aman Gupta <aman at tmm1.net>
> >
> > ---
> > libavcodec/avcodec.h | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > index c4134424f0..2bd46faa50 100644
> > --- a/libavcodec/avcodec.h
> > +++ b/libavcodec/avcodec.h
> > @@ -3459,6 +3459,20 @@ typedef struct AVHWAccel {
> > */
> > int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf,
> uint32_t buf_size);
> >
> > + /**
> > + * Callback for parameter data (SPS/PPS/VPS etc).
> > + *
> > + * Useful for hardware decoders which keep persistent state about
> the
> > + * video parameters, and need to receive any changes to update that
> state.
> > + *
> > + * @param avctx the codec context
> > + * @param type the parameter type
> > + * @param buf the slice data buffer base
> > + * @param buf_size the size of the slice in bytes
> > + * @return zero if successful, a negative value otherwise
> > + */
> > + int (*decode_params)(AVCodecContext *avctx, int type, const
> uint8_t *buf, uint32_t buf_size);
> > +
> > /**
> > * Callback for each slice.
> > *
> >
>
> There's
> https://git.libav.org/?p=libav.git;a=commitdiff;h=
> b46a77f19ddc4b2b5fa3187835ceb602a5244e24s
> in the merge queue, and it would be great if we can make sure we're not
> duplicating efforts or writing incompatible API for the same purpose.
>
> Are these related, and can they coexist?
>
I don't think they're related, and they should be able to coexist without
issues (I already tested my patches against a libav based tree earlier
today).
For the purposes of VideoToolbox, I need the raw SPS/PPS/VPS/SEI_* NALUs so
that they can be fed into the decoder. I've submitted multiple variations
of this patch to the list over the past year. The first simply added a
pix_fmt==VIDEOTOOLBOX check, and it was suggested that I re-implement with
a more generic callback so I added this one in later revisions.
I will say that I'm not fully sold on the callback name "decode_params", so
if anyone has better suggestions I'm all ears.
Aman
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list