summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-03-06 16:11:30 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-03-13 12:09:14 +0100
commit5cc7621783b24e1562496d22639383311e0eac39 (patch)
tree86454b99c52b9686070239d61de3382883a0623e
parentef61e8d279f0371fbb2d019e62bf02e1f1717e06 (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.c30
-rw-r--r--ext/dts/gstdtsdec.h2
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 {