summaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2017-07-01 12:09:58 +0200
committerAnton Khirnov <anton@khirnov.net>2017-07-26 23:24:14 +0200
commit704311b2946d74a80f65906961cd9baaa18683a3 (patch)
tree38c3d0ede75e28e984d3dab414d97d2dff28106a /libavcodec
parentbadf0951f54c1332e77455dc40398f3512540c1b (diff)
downloadffmpeg-streaming-704311b2946d74a80f65906961cd9baaa18683a3.zip
ffmpeg-streaming-704311b2946d74a80f65906961cd9baaa18683a3.tar.gz
decode: add a per-frame private data for hwaccel use
This will be useful in the CUVID hwaccel. It should also eventually replace current decoder-specific mechanisms used by various other hwaccels.
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/decode.c3
-rw-r--r--libavcodec/decode.h6
2 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 9050b57..c76ee66 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1025,6 +1025,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;
/**
OpenPOWER on IntegriCloud