summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-01-06 10:34:40 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-01-06 10:34:40 +0000
commit9ea83f3ee48a4be355910de9fbb5a12ab5b7d5de (patch)
tree2e96cf4d5000a5637401d89934862414ef7a9663 /ext
parent5e19f0229dafd991937f0d344d49dcef4917e710 (diff)
downloadgst-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')
-rw-r--r--ext/faad/gstfaad.c42
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));
}
}