On Fri, Nov 10, 2017 at 5:45 PM, James Almer <jamr...@gmail.com> wrote:
> On 11/10/2017 6:40 PM, Aman Gupta wrote: > > From: Aman Gupta <a...@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@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel