On Fri, 01 Jan 2016 16:46:29 +0100 Anton Khirnov <[email protected]> wrote:
> Quoting wm4 (2015-12-27 14:39:10) > > On Sun, 20 Dec 2015 20:59:29 +0100 > > Anton Khirnov <[email protected]> wrote: > > > > > --- > > > libavcodec/avcodec.h | 20 ++++++++++++++++++++ > > > libavcodec/utils.c | 3 +++ > > > 2 files changed, 23 insertions(+) > > > > > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > > > index 8083111..79aa3b7 100644 > > > --- a/libavcodec/avcodec.h > > > +++ b/libavcodec/avcodec.h > > > @@ -35,6 +35,7 @@ > > > #include "libavutil/cpu.h" > > > #include "libavutil/dict.h" > > > #include "libavutil/frame.h" > > > +#include "libavutil/hwframe.h" > > > #include "libavutil/log.h" > > > #include "libavutil/pixfmt.h" > > > #include "libavutil/rational.h" > > > @@ -2996,6 +2997,23 @@ typedef struct AVCodecContext { > > > AVPacketSideData *coded_side_data; > > > int nb_coded_side_data; > > > > > > + /** > > > + * Hwaccel decoding only. If the internal get_buffer2() > > > implementation gets > > > + * used to allocate hardware frames (either because the caller did > > > not > > > + * override get_buffer2() or because the custom get_buffer2() calls > > > + * avcodec_default_get_buffer2()) then this callback needs to be set > > > by the > > > + * caller at latest in get_format(). > > > + * > > > + * This callback will be used as the free() callback in creating an > > > + * AVHWFramesContext that will be attached to the allocated frames. > > > + */ > > > + void (*hwframe_ctx_free)(AVHWFramesContext *ctx); > > > + > > > + /** > > > + * See the hwframe_ctx_free documentation for details. This field > > > will be > > > + * used as the user_opaque field in the AVHWFramesContext. > > > + */ > > > + void *hwframe_ctx_opaque; > > > > I don't understand what these fields are for. > > > > The callback will tell you when all the frames using a given hw context > are freed, so you can destroy it. There's no other way to know > otherwise. > Couldn't it just be refcounted or so? _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
