aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vdpau.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2014-03-20 08:53:16 +0100
committerAnton Khirnov <anton@khirnov.net>2014-03-20 16:59:46 +0100
commit7948a51b5c3d08e1a1173442a7ff72b220def303 (patch)
tree4abdb8bc18abd3cbcec525a5f958689107bd89c6 /libavcodec/vdpau.c
parent82bb3048013201c0095d2853d4623633d912252f (diff)
downloadffmpeg-7948a51b5c3d08e1a1173442a7ff72b220def303.tar.gz
vdpau: don't assume Picture and H264Picture are the same
The code passed H264Picture* and Picture*, and assumed the hwaccel_picture_private field was in the same place in both structs. Somehow this happened to work in Libav, but broke in FFmpeg (and probably subtly breaks in Libav too). Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavcodec/vdpau.c')
-rw-r--r--libavcodec/vdpau.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 50a57d0970..5d83b449e8 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -38,12 +38,10 @@
* @{
*/
-int ff_vdpau_common_start_frame(Picture *pic,
+int ff_vdpau_common_start_frame(struct vdpau_picture_context *pic_ctx,
av_unused const uint8_t *buffer,
av_unused uint32_t size)
{
- struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private;
-
pic_ctx->bitstream_buffers_allocated = 0;
pic_ctx->bitstream_buffers_used = 0;
pic_ctx->bitstream_buffers = NULL;
@@ -71,9 +69,9 @@ int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx)
}
#endif
-int ff_vdpau_add_buffer(Picture *pic, const uint8_t *buf, uint32_t size)
+int ff_vdpau_add_buffer(struct vdpau_picture_context *pic_ctx,
+ const uint8_t *buf, uint32_t size)
{
- struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private;
VdpBitstreamBuffer *buffers = pic_ctx->bitstream_buffers;
buffers = av_fast_realloc(buffers, &pic_ctx->bitstream_buffers_allocated,