On Sun, 3 Nov 2013 23:27:48 +0100 Anton Khirnov <an...@khirnov.net> wrote:
> We will likely want to add new fields to it in the future, so this is > needed to avoid breaking ABI. > --- > doc/APIchanges | 2 ++ > libavcodec/vdpau.c | 5 +++++ > libavcodec/vdpau.h | 11 +++++++++++ > 3 files changed, 18 insertions(+) > > diff --git a/doc/APIchanges b/doc/APIchanges > index 93d1608..db30bb9 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -15,6 +15,8 @@ API changes, most recent first: > > 2013-11-xx - xxxxxxx - lavc 55.25.0 - vdpau.h > Add av_vdpau_get_profile(). > + Add av_vdpau_alloc_context(). This function must from now on be > + used for allocating AVVDPAUContext. > > 2013-08-xx - xxxxxxx - lavu 52.17.0 - avframe.h > Add AVFrame.flags and AV_FRAME_FLAG_CORRUPT. > diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c > index 5cabb7e..ba11195 100644 > --- a/libavcodec/vdpau.c > +++ b/libavcodec/vdpau.c > @@ -127,4 +127,9 @@ int av_vdpau_get_profile(AVCodecContext *avctx) > return AVERROR(EINVAL); > } > > +AVVDPAUContext *av_vdpau_alloc_context(void) > +{ > + return av_mallocz(sizeof(AVVDPAUContext)); > +} > + > /* @}*/ > diff --git a/libavcodec/vdpau.h b/libavcodec/vdpau.h > index 49ca6f0..16547e4 100644 > --- a/libavcodec/vdpau.h > +++ b/libavcodec/vdpau.h > @@ -72,6 +72,10 @@ union AVVDPAUPictureInfo { > * during initialization or through each AVCodecContext.get_buffer() > * function call. In any case, they must be valid prior to calling > * decoding functions. > + * > + * This size of this structure is not a part of the public ABI and must not > + * be used outside of libavcodec. Use av_vdpau_alloc_context() to allocate an > + * AVVDPAUContext. > */ > typedef struct AVVDPAUContext { > /** > @@ -125,6 +129,13 @@ typedef struct AVVDPAUContext { > } AVVDPAUContext; > > /** > + * Allocate an AVVDPAUContext. > + * > + * @return newly allocated AVVDPAUContext or NULL on failure. > + */ > +AVVDPAUContext *av_vdpau_alloc_context(void); > + > +/** > * Get a decoder profile that should be used for initializing a VDPAU > decoder. > * Should be called from the AVCodecContext.get_format() callback. > * As far as I'm aware, the only fields the user has to access are decoder and render. If you're going to change the API, maybe make this struct non-public, let libavcodec allocate it, and add setters for the decoder/render fields. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel