diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-03-06 16:11:30 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-03-13 12:09:14 +0100 |
commit | 5cc7621783b24e1562496d22639383311e0eac39 (patch) | |
tree | 86454b99c52b9686070239d61de3382883a0623e | |
parent | ef61e8d279f0371fbb2d019e62bf02e1f1717e06 (diff) |
dtsdec: use base class tag handling helper
... so as to ensure these to be handled and sent at proper time.
-rw-r--r-- | ext/dts/gstdtsdec.c | 30 | ||||
-rw-r--r-- | ext/dts/gstdtsdec.h | 2 |
2 files changed, 2 insertions, 30 deletions
diff --git a/ext/dts/gstdtsdec.c b/ext/dts/gstdtsdec.c index 5d64538e2..08c5738ed 100644 --- a/ext/dts/gstdtsdec.c +++ b/ext/dts/gstdtsdec.c @@ -137,8 +137,6 @@ static gboolean gst_dtsdec_parse (GstAudioDecoder * dec, GstAdapter * adapter, gint * offset, gint * length); static GstFlowReturn gst_dtsdec_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer); -static GstFlowReturn gst_dtsdec_pre_push (GstAudioDecoder * bdec, - GstBuffer ** buffer); static GstFlowReturn gst_dtsdec_chain (GstPad * pad, GstBuffer * buf); @@ -182,7 +180,6 @@ gst_dtsdec_class_init (GstDtsDecClass * klass) gstbase_class->set_format = GST_DEBUG_FUNCPTR (gst_dtsdec_set_format); gstbase_class->parse = GST_DEBUG_FUNCPTR (gst_dtsdec_parse); gstbase_class->handle_frame = GST_DEBUG_FUNCPTR (gst_dtsdec_handle_frame); - gstbase_class->pre_push = GST_DEBUG_FUNCPTR (gst_dtsdec_pre_push); /** * GstDtsDec::drc @@ -266,10 +263,6 @@ gst_dtsdec_stop (GstAudioDecoder * dec) dca_free (dts->state); dts->state = NULL; } - if (dts->pending_tags) { - gst_tag_list_free (dts->pending_tags); - dts->pending_tags = NULL; - } return TRUE; } @@ -459,28 +452,9 @@ gst_dtsdec_update_streaminfo (GstDtsDec * dts) /* 1 => open bitrate, 2 => variable bitrate, 3 => lossless */ gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_BITRATE, (guint) dts->bit_rate, NULL); - - if (dts->pending_tags) { - gst_tag_list_free (dts->pending_tags); - dts->pending_tags = NULL; - } - - dts->pending_tags = taglist; - } -} - -static GstFlowReturn -gst_dtsdec_pre_push (GstAudioDecoder * bdec, GstBuffer ** buffer) -{ - GstDtsDec *dts = GST_DTSDEC (bdec); - - if (G_UNLIKELY (dts->pending_tags)) { - gst_element_found_tags_for_pad (GST_ELEMENT (dts), - GST_AUDIO_DECODER_SRC_PAD (dts), dts->pending_tags); - dts->pending_tags = NULL; + gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (dts), taglist, + GST_TAG_MERGE_REPLACE); } - - return GST_FLOW_OK; } static GstFlowReturn diff --git a/ext/dts/gstdtsdec.h b/ext/dts/gstdtsdec.h index be6005a0a..172473aca 100644 --- a/ext/dts/gstdtsdec.h +++ b/ext/dts/gstdtsdec.h @@ -66,8 +66,6 @@ struct _GstDtsDec { #else dts_state_t *state; #endif - - GstTagList *pending_tags; }; struct _GstDtsDecClass { |