diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-01-06 10:34:40 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-01-06 10:34:40 +0000 |
commit | 9ea83f3ee48a4be355910de9fbb5a12ab5b7d5de (patch) | |
tree | 2e96cf4d5000a5637401d89934862414ef7a9663 /ext/faad | |
parent | 5e19f0229dafd991937f0d344d49dcef4917e710 (diff) | |
download | gst-plugins-bad-9ea83f3ee48a4be355910de9fbb5a12ab5b7d5de.tar.gz gst-plugins-bad-9ea83f3ee48a4be355910de9fbb5a12ab5b7d5de.tar.bz2 gst-plugins-bad-9ea83f3ee48a4be355910de9fbb5a12ab5b7d5de.zip |
ext/faad/gstfaad.c: Only increment timestamp if it's valid. Fixes raw AAC streams.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chain):
Only increment timestamp if it's valid. Fixes raw AAC streams.
Diffstat (limited to 'ext/faad')
-rw-r--r-- | ext/faad/gstfaad.c | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c index c5b900cf..20059646 100644 --- a/ext/faad/gstfaad.c +++ b/ext/faad/gstfaad.c @@ -60,34 +60,34 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", #define STATIC_CAPS \ STATIC_INT_CAPS (16) #if 0 -"; " -STATIC_INT_CAPS (24) - "; " -STATIC_INT_CAPS (32) - "; " -STATIC_FLOAT_CAPS (32) - "; " +#define NOTUSED "; " \ +STATIC_INT_CAPS (24) \ + "; " \ +STATIC_INT_CAPS (32) \ + "; " \ +STATIC_FLOAT_CAPS (32) \ + "; " \ STATIC_FLOAT_CAPS (64) #endif - static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS (STATIC_CAPS) ); - static void gst_faad_base_init (GstFaadClass * klass); - static void gst_faad_class_init (GstFaadClass * klass); - static void gst_faad_init (GstFaad * faad); +static void gst_faad_base_init (GstFaadClass * klass); +static void gst_faad_class_init (GstFaadClass * klass); +static void gst_faad_init (GstFaad * faad); - static GstPadLinkReturn - gst_faad_sinkconnect (GstPad * pad, const GstCaps * caps); - static GstPadLinkReturn - gst_faad_srcconnect (GstPad * pad, const GstCaps * caps); - static GstCaps *gst_faad_srcgetcaps (GstPad * pad); - static void gst_faad_chain (GstPad * pad, GstData * data); - static GstElementStateReturn gst_faad_change_state (GstElement * element); +static GstPadLinkReturn +gst_faad_sinkconnect (GstPad * pad, const GstCaps * caps); +static GstPadLinkReturn +gst_faad_srcconnect (GstPad * pad, const GstCaps * caps); +static GstCaps *gst_faad_srcgetcaps (GstPad * pad); +static void gst_faad_chain (GstPad * pad, GstData * data); +static GstElementStateReturn gst_faad_change_state (GstElement * element); - static GstElementClass *parent_class = NULL; +static GstElementClass *parent_class = NULL; /* static guint gst_faad_signals[LAST_SIGNAL] = { 0 }; */ @@ -654,7 +654,9 @@ gst_faad_chain (GstPad * pad, GstData * data) GST_BUFFER_TIMESTAMP (outbuf) = next_ts; GST_BUFFER_DURATION (outbuf) = (guint64) GST_SECOND *info->samples / faad->samplerate; - next_ts += GST_BUFFER_DURATION (outbuf); + if (GST_CLOCK_TIME_IS_VALID (next_ts)) { + next_ts += GST_BUFFER_DURATION (outbuf); + } gst_pad_push (faad->srcpad, GST_DATA (outbuf)); } } |