summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorOlivier Crete <olivier.crete@collabora.co.uk>2008-07-25 19:48:33 +0000
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-03-03 14:34:07 -0500
commit3e785ea2dedd89ba8fc4dae028002d0addbc2ca1 (patch)
treeb0ee96750bcb2659ce8265a723e619eaa6a006d3 /ext
parentca535657199814980d3faa8a5c76be78f6d4033b (diff)
downloadgst-plugins-bad-3e785ea2dedd89ba8fc4dae028002d0addbc2ca1.tar.gz
gst-plugins-bad-3e785ea2dedd89ba8fc4dae028002d0addbc2ca1.tar.bz2
gst-plugins-bad-3e785ea2dedd89ba8fc4dae028002d0addbc2ca1.zip
[MOVED FROM GST-P-FARSIGHT] Skip non-keyframes before we get a keyframe
20080725194833-3e2dc-583df57c8ebce4b149a01768ed7d3737136a208f.gz
Diffstat (limited to 'ext')
-rw-r--r--ext/mimic/gstmimdec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/mimic/gstmimdec.c b/ext/mimic/gstmimdec.c
index 9e97a300..cd679a5a 100644
--- a/ext/mimic/gstmimdec.c
+++ b/ext/mimic/gstmimdec.c
@@ -212,6 +212,14 @@ gst_mimdec_chain (GstPad *pad, GstBuffer *in)
GstEvent * event;
gboolean result;
+ /* Check if its a keyframe, otherwise skip it */
+ if (GUINT32_FROM_LE(*((guint32 *) (frame_body + 12))) != 0) {
+ gst_adapter_flush (mimdec->adapter, mimdec->payload_size);
+ mimdec->have_header = FALSE;
+ res = GST_FLOW_OK;
+ goto out;
+ }
+
mimdec->dec = mimic_open ();
if (mimdec->dec == NULL) {
GST_WARNING_OBJECT (mimdec, "mimic_open error\n");