summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>2009-01-10 02:45:07 +0000
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>2009-01-10 02:45:07 +0000
commit7fd3c09e0f6560b72e2340f100886352eb9fc15d (patch)
tree462ebd217057b3d2c8cbc229a4d9ccab2fe9254b /libavcodec
parent1a1078faa4217c32394a931865ed4b7a3cce634e (diff)
Move vdpau_h264_set_reference_frames() call from vdpauvideo.c into h264.c.
Originally committed as revision 16513 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h264.c3
-rw-r--r--libavcodec/vdpau_internal.h1
-rw-r--r--libavcodec/vdpauvideo.c5
3 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index a8bd0622a4..f5a8833fa0 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -7624,6 +7624,9 @@ static int decode_frame(AVCodecContext *avctx,
s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_H264;
s->current_picture_ptr->pict_type= s->pict_type;
+ if (ENABLE_H264_VDPAU_DECODER && avctx->codec_id == CODEC_ID_H264_VDPAU)
+ ff_vdpau_h264_set_reference_frames(h);
+
if(!s->dropable) {
execute_ref_pic_marking(h, h->mmco, h->mmco_index);
h->prev_poc_msb= h->poc_msb;
diff --git a/libavcodec/vdpau_internal.h b/libavcodec/vdpau_internal.h
index 6af24959c8..a989d89d29 100644
--- a/libavcodec/vdpau_internal.h
+++ b/libavcodec/vdpau_internal.h
@@ -29,6 +29,7 @@
void ff_vdpau_h264_add_data_chunk(H264Context *h, const uint8_t *buf,
int buf_size);
+void ff_vdpau_h264_set_reference_frames(H264Context *h);
void ff_vdpau_h264_picture_complete(H264Context *h);
#endif /* AVCODEC_VDPAU_INTERNAL_H */
diff --git a/libavcodec/vdpauvideo.c b/libavcodec/vdpauvideo.c
index 8b42823486..c1405eb6da 100644
--- a/libavcodec/vdpauvideo.c
+++ b/libavcodec/vdpauvideo.c
@@ -37,7 +37,7 @@
* @{
*/
-static void vdpau_h264_set_reference_frames(H264Context *h)
+void ff_vdpau_h264_set_reference_frames(H264Context *h)
{
MpegEncContext * s = &h->s;
struct vdpau_render_state * render, * render_ref;
@@ -114,9 +114,6 @@ void ff_vdpau_h264_add_data_chunk(H264Context *h, const uint8_t *buf, int buf_si
render = (struct vdpau_render_state*)s->current_picture_ptr->data[0];
assert(render);
- if (!render->bitstream_buffers_used)
- vdpau_h264_set_reference_frames(h);
-
render->bitstream_buffers= av_fast_realloc(
render->bitstream_buffers,
&render->bitstream_buffers_allocated,