diff options
author | Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> | 2010-06-22 14:52:00 +0200 |
---|---|---|
committer | Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> | 2010-06-23 21:51:53 +0200 |
commit | 3826b3b57b7add62a898fe6824d2386ab64778e0 (patch) | |
tree | 362ae2d5a2784ae1662ac4cf1d0c741023d35fb3 /sys/vdpau | |
parent | 8eed6f2ab92e194f5b4e61e5db8aac51c32f25fc (diff) |
vdpau: remove parse_codec_data from GstBaseVideoDecoder
Diffstat (limited to 'sys/vdpau')
-rw-r--r-- | sys/vdpau/basevideodecoder/gstbasevideodecoder.c | 39 | ||||
-rw-r--r-- | sys/vdpau/basevideodecoder/gstbasevideodecoder.h | 2 |
2 files changed, 15 insertions, 26 deletions
diff --git a/sys/vdpau/basevideodecoder/gstbasevideodecoder.c b/sys/vdpau/basevideodecoder/gstbasevideodecoder.c index 570d7935c..496318b70 100644 --- a/sys/vdpau/basevideodecoder/gstbasevideodecoder.c +++ b/sys/vdpau/basevideodecoder/gstbasevideodecoder.c @@ -37,7 +37,7 @@ enum static GstFlowReturn gst_base_video_decoder_drain (GstBaseVideoDecoder * dec, - gboolean at_eos, gboolean codec_data); + gboolean at_eos); GST_BOILERPLATE (GstBaseVideoDecoder, gst_base_video_decoder, @@ -229,7 +229,7 @@ gst_base_video_decoder_sink_event (GstPad * pad, GstEvent * event) case GST_EVENT_EOS: { if (!base_video_decoder->packetized) - gst_base_video_decoder_drain (base_video_decoder, TRUE, FALSE); + gst_base_video_decoder_drain (base_video_decoder, TRUE); ret = gst_pad_push_event (GST_BASE_VIDEO_DECODER_SRC_PAD @@ -654,12 +654,10 @@ empty_caps: } static GstFlowReturn -gst_base_video_decoder_drain (GstBaseVideoDecoder * dec, gboolean at_eos, - gboolean codec_data) +gst_base_video_decoder_drain (GstBaseVideoDecoder * dec, gboolean at_eos) { GstBaseVideoDecoderClass *klass; GstBaseVideoDecoderScanResult res; - GstFlowReturn ret; guint size; klass = GST_BASE_VIDEO_DECODER_GET_CLASS (dec); @@ -737,23 +735,21 @@ lost_sync: else GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_GAP); - if (codec_data) - ret = klass->parse_codec_data (dec, buf); - else - ret = klass->parse_data (dec, buf, at_eos); - if (ret != GST_FLOW_OK) - break; - res = klass->scan_for_packet_end (dec, dec->input_adapter, &size, at_eos); } - if (res == GST_BASE_VIDEO_DECODER_SCAN_RESULT_LOST_SYNC) { - dec->have_sync = FALSE; - goto lost_sync; - } else if (res == GST_BASE_VIDEO_DECODER_SCAN_RESULT_NEED_DATA) - return GST_FLOW_OK; + switch (res) { + case GST_BASE_VIDEO_DECODER_SCAN_RESULT_LOST_SYNC: + dec->have_sync = FALSE; + goto lost_sync; - return ret; + case GST_BASE_VIDEO_DECODER_SCAN_RESULT_NEED_DATA: + return GST_FLOW_OK; + + default: + GST_ERROR_OBJECT (dec, "Subclass returned invalid scan result"); + return GST_FLOW_ERROR; + } } static GstFlowReturn @@ -831,7 +827,7 @@ gst_base_video_decoder_chain (GstPad * pad, GstBuffer * buf) gst_adapter_push (base_video_decoder->input_adapter, buf); - ret = gst_base_video_decoder_drain (base_video_decoder, FALSE, FALSE); + ret = gst_base_video_decoder_drain (base_video_decoder, FALSE); } gst_object_unref (base_video_decoder); @@ -1313,11 +1309,6 @@ gst_base_video_decoder_class_init (GstBaseVideoDecoderClass * klass) "packets", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_PACKETIZED, - g_param_spec_boolean ("parse-codec-data", "Parse Codec Data", - "Whether the codec_data should be parsed", FALSE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (gobject_class, PROP_PACKETIZED, g_param_spec_boolean ("sink-clipping", "Sink Clipping", "If enabled GstBaseVideoDecoder will clip outgoing frames", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); diff --git a/sys/vdpau/basevideodecoder/gstbasevideodecoder.h b/sys/vdpau/basevideodecoder/gstbasevideodecoder.h index 51b28ab35..bdb65a9e3 100644 --- a/sys/vdpau/basevideodecoder/gstbasevideodecoder.h +++ b/sys/vdpau/basevideodecoder/gstbasevideodecoder.h @@ -160,8 +160,6 @@ struct _GstBaseVideoDecoderClass GstFlowReturn (*parse_data) (GstBaseVideoDecoder *decoder, GstBuffer *buf, gboolean at_eos); - GstFlowReturn (*parse_codec_data) (GstBaseVideoDecoder *decoder, - GstBuffer *buf); GstVideoFrame *(*create_frame) (GstBaseVideoDecoder *coder); |