diff options
author | Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> | 2010-08-02 18:23:11 +0200 |
---|---|---|
committer | Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> | 2010-08-02 18:25:43 +0200 |
commit | 008a049b209ea64685e1a676beff5dd83b360dbd (patch) | |
tree | 2768263250807bd37d766c7198c99009aeceb027 /sys/vdpau/mpeg | |
parent | a07cee756addded29b342e306c0d89775195169f (diff) | |
download | gstreamer-plugins-bad-008a049b209ea64685e1a676beff5dd83b360dbd.tar.gz |
vdpau: slightly fix GstBaseVideoDecoder timestamping
clear timestamps on flush and properly calculate the frame's end offset
Diffstat (limited to 'sys/vdpau/mpeg')
-rw-r--r-- | sys/vdpau/mpeg/gstvdpmpegdec.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/sys/vdpau/mpeg/gstvdpmpegdec.c b/sys/vdpau/mpeg/gstvdpmpegdec.c index 16fb4dc2e..2f48b0cb3 100644 --- a/sys/vdpau/mpeg/gstvdpmpegdec.c +++ b/sys/vdpau/mpeg/gstvdpmpegdec.c @@ -432,11 +432,9 @@ gst_vdp_mpeg_dec_parse_data (GstBaseVideoDecoder * base_video_decoder, case MPEG_PACKET_SEQUENCE: GST_DEBUG_OBJECT (mpeg_dec, "MPEG_PACKET_SEQUENCE"); - if (mpeg_dec->prev_packet != -1) { - ret = gst_base_video_decoder_have_frame (base_video_decoder, + if (mpeg_dec->prev_packet != -1) + ret = gst_base_video_decoder_have_frame (base_video_decoder, FALSE, (GstVideoFrame **) & mpeg_frame); - gst_base_video_decoder_frame_start (base_video_decoder, buf); - } mpeg_frame->seq = buf; break; @@ -445,11 +443,9 @@ gst_vdp_mpeg_dec_parse_data (GstBaseVideoDecoder * base_video_decoder, GST_DEBUG_OBJECT (mpeg_dec, "MPEG_PACKET_PICTURE"); if (mpeg_dec->prev_packet != MPEG_PACKET_SEQUENCE && - mpeg_dec->prev_packet != MPEG_PACKET_GOP) { - ret = gst_base_video_decoder_have_frame (base_video_decoder, + mpeg_dec->prev_packet != MPEG_PACKET_GOP) + ret = gst_base_video_decoder_have_frame (base_video_decoder, FALSE, (GstVideoFrame **) & mpeg_frame); - gst_base_video_decoder_frame_start (base_video_decoder, buf); - } mpeg_frame->pic = buf; break; @@ -457,11 +453,9 @@ gst_vdp_mpeg_dec_parse_data (GstBaseVideoDecoder * base_video_decoder, case MPEG_PACKET_GOP: GST_DEBUG_OBJECT (mpeg_dec, "MPEG_PACKET_GOP"); - if (mpeg_dec->prev_packet != MPEG_PACKET_SEQUENCE) { - ret = gst_base_video_decoder_have_frame (base_video_decoder, + if (mpeg_dec->prev_packet != MPEG_PACKET_SEQUENCE) + ret = gst_base_video_decoder_have_frame (base_video_decoder, FALSE, (GstVideoFrame **) & mpeg_frame); - gst_base_video_decoder_frame_start (base_video_decoder, buf); - } mpeg_frame->gop = buf; break; |