]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/gst-plugin-ducati.git/commitdiff
ducatimpeg2dec: disable manual reordering
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Tue, 18 Dec 2012 16:14:32 +0000 (16:14 +0000)
committerMrinmayee Hingolikar <mrinmayee@ti.com>
Thu, 1 Jan 1970 00:24:06 +0000 (00:24 +0000)
I have found a video where we get ordered timestamps but out of
order frames. Until some method of working out the real ordering
of frames by looking inside the frames data, let's disable this.

src/gstducatimpeg2dec.c

index 90aa96cdc307479e575a568a2963a484c0cddc39..a5fb9a0450a014e8052856c6bf114d2438161f0d 100644 (file)
@@ -73,7 +73,7 @@ gst_ducati_mpeg2dec_allocate_params (GstDucatiVidDec * self, gint params_sz,
       sizeof (IVIDDEC3_OutArgs));
 
   if (ret)
-    self->params->displayDelay = IVIDDEC3_DECODE_ORDER;
+    self->params->displayDelay = IVIDDEC3_DISPLAY_DELAY_AUTO;
 
   return ret;
 }
@@ -119,6 +119,12 @@ gst_ducati_mpeg2dec_set_sink_caps (GstDucatiVidDec * self, GstCaps * caps)
           (self, caps), TRUE))
     return FALSE;
 
+  /* I have at least one case where incoming timestamps are ordered,
+     but frames are not, so we'd need to find out how to get correct
+     ordering from the internals of the frames. For now, let the hw
+     codec do the reordering to avoid more aggravation (and the 1.0
+     port will let the codec do it anyway). */
+#if 0
   /* Simple profile does not have B frames */
   structure = gst_caps_get_structure (caps, 0);
   profile = gst_structure_get_string (structure, "profile");
@@ -126,6 +132,7 @@ gst_ducati_mpeg2dec_set_sink_caps (GstDucatiVidDec * self, GstCaps * caps)
     /* TODO: can a better bound be found from stream headers ? */
     self->backlog_maxframes = self->backlog_max_maxframes;
   }
+#endif
 
   return TRUE;
 }