Fix duration calculation for essence tracks
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 30 Jan 2009 18:33:56 +0000 (19:33 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 31 Jan 2009 10:02:26 +0000 (11:02 +0100)
gst/mxf/mxfdemux.c

index c27a477..8eca074 100644 (file)
@@ -2267,9 +2267,11 @@ from_index:
         GstMXFDemuxEssenceTrack *t =
             &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
 
-        if (t->position != -1)
+        if (t->position > 0)
           t->duration = t->position;
       }
+      /* For the searched track this is really our position */
+      etrack->duration = etrack->position;
     }
 
     if (G_UNLIKELY (ret != GST_FLOW_OK))
@@ -2328,7 +2330,7 @@ gst_mxf_demux_pull_and_handle_klv_packet (GstMXFDemux * demux)
       GstMXFDemuxEssenceTrack *t =
           &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
 
-      if (t->position != -1)
+      if (t->position > 0)
         t->duration = t->position;
     }