This will be useful in the CUVID hwaccel. It should also eventually replace current decoder-specific mechanisms used by various other hwaccels. --- libavcodec/decode.c | 3 +++ libavcodec/decode.h | 6 ++++++ 2 files changed, 9 insertions(+)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 01e4dd2..a255773 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1110,6 +1110,9 @@ static void decode_data_free(void *opaque, uint8_t *data) if (fdd->post_process_opaque_free) fdd->post_process_opaque_free(fdd->post_process_opaque); + if (fdd->hwaccel_priv_free) + fdd->hwaccel_priv_free(fdd->hwaccel_priv); + av_freep(&fdd); } diff --git a/libavcodec/decode.h b/libavcodec/decode.h index 72052f1..235f355 100644 --- a/libavcodec/decode.h +++ b/libavcodec/decode.h @@ -49,6 +49,12 @@ typedef struct FrameDecodeData { int (*post_process)(void *logctx, AVFrame *frame); void *post_process_opaque; void (*post_process_opaque_free)(void *opaque); + + /** + * Per-frame private data for hwaccels. + */ + void *hwaccel_priv; + void (*hwaccel_priv_free)(void *priv); } FrameDecodeData; /** -- 2.0.0 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel