[Bug 754864] qtdemux:check multi trex to find track id in mp4 (DASH) stream.

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Sep 11 01:12:44 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=754864

Sebastian Dröge (slomo) <slomo at coaxion.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #311110|none                        |needs-work
             status|                            |

--- Comment #2 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Review of attachment 311110:
 --> (https://bugzilla.gnome.org/review?bug=754864&attachment=311110)

Thanks for the patch!

::: gst/isomp4/qtdemux.c
@@ +80,2 @@
 #ifdef HAVE_ZLIB
+#include <zlib.h>

Please don't include irrelevant changes in the same patch

@@ +613,3 @@
   qtdemux->flowcombiner = gst_flow_combiner_new ();
+  memset (qtdemux->track_fragment_id, 0,
+  sizeof (guint32) * GST_QTDEMUX_MAX_STREAMS);

memset (qtdemux->track_fragment_id, 0, sizeof (qtdemux->track_fragment_id));

That way this code doesn't have to be changed if the array is ever changed

@@ +4350,3 @@

+  if (G_UNLIKELY (QTSEGMENT_IS_EMPTY (&stream->
+              segments[stream->segment_index]))) {

No indentation changes in the same patch please :)

@@ +5102,3 @@
   /* If we're doing a keyframe-only trickmode, only push keyframes on video
streams */
+  if (G_UNLIKELY (qtdemux->segment.
+          flags & GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS)) {

No indentation changes of unrelated code in the same patch please :)

@@ +8455,3 @@
       goto skip_track;
     }
+  if (qtdemux_check_track_fragment (qtdemux, track_id)) {

qtdemux_check_track_is_in_trex() or similar seems more descriptive here

If I'm not mistaken you can also just use qtdemux_parse_trex() here instead,
which is called many lines below in this function... instead of adding and
calling the new get_track_fragment_id()

@@ +8460,3 @@
+  } else {
+    GST_WARNING_OBJECT (qtdemux, "skip track id %u, it's not
fragmented",track_id);
+    return TRUE;

There's a "skip_track" goto label for this here

@@ +11645,3 @@
   }
+  memset (qtdemux->track_fragment_id, 0,sizeof (guint32) *
GST_QTDEMUX_MAX_STREAMS);
+  qtdemux_get_track_fragment_id (qtdemux, mvex);

You don't necessarily have mvex here, see the "if (mvex)" a few lines above. It
should probably be moved in that if block

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list