slomo gst-plugins-bad: gst-plugins-bad/ gst-plugins-bad/gst/mxf/

[email protected] Mon, 5 Jan 2009 02:34:18 -0800 (PST)
Newsgroups gmane.comp.video.gstreamer.cvs
Message-ID <[email protected]>
--===============1203724344426356506==

CVS Root:       /cvs/gstreamer
Module:         gst-plugins-bad
Changes by:     slomo
Date:           Mon Jan 05 2009  10:34:18 UTC

Log message:
* gst/mxf/mxfdemux.c:
(gst_mxf_demux_handle_header_metadata_update_streams),
(gst_mxf_demux_pad_next_component):
Don't allow negative or zero edit rates to prevent division
by zero and we support negative edit rates anyway.

Modified files:
    .               : ChangeLog
    gst/mxf         : mxfdemux.c

Links:
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ChangeLog.diff?r1=1.3853&r2=1.3854
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/gst/mxf/mxfdemux.c.diff?r1=1.44&r2=1.45

====Begin Diffs====
Index: ChangeLog
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-bad/ChangeLog,v
retrieving revision 1.3853
retrieving revision 1.3854
diff -u -d -r1.3853 -r1.3854
--- ChangeLog	5 Jan 2009 10:28:57 -0000	1.3853
+++ ChangeLog	5 Jan 2009 10:34:01 -0000	1.3854
@@ -1,3 +1,11 @@
+2009-01-05  Sebastian Dröge  <[email protected]>
+
+	* gst/mxf/mxfdemux.c:
+	(gst_mxf_demux_handle_header_metadata_update_streams),
+	(gst_mxf_demux_pad_next_component):
+	Don't allow negative or zero edit rates to prevent division
+	by zero and we support negative edit rates anyway.
 2009-01-05  Mark Nauwelaerts  <[email protected]>
 
 	* ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
Index: mxfdemux.c
RCS file: /cvs/gstreamer/gst-plugins-bad/gst/mxf/mxfdemux.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- mxfdemux.c	5 Jan 2009 10:22:28 -0000	1.44
+++ mxfdemux.c	5 Jan 2009 10:34:03 -0000	1.45
@@ -560,11 +560,11 @@
   for (i = 0; i < demux->preface->content_storage->n_packages; i++) {
     if (demux->preface->content_storage->packages[i] &&
-        MXF_IS_METADATA_MATERIAL_PACKAGE (demux->preface->content_storage->
-            packages[i])) {
+        MXF_IS_METADATA_MATERIAL_PACKAGE (demux->preface->
+            content_storage->packages[i])) {
       ret =
-          MXF_METADATA_GENERIC_PACKAGE (demux->preface->content_storage->
-          packages[i]);
+          MXF_METADATA_GENERIC_PACKAGE (demux->preface->
+          content_storage->packages[i]);
       break;
     }
   }
@@ -701,6 +701,12 @@
       continue;
+    if (track->edit_rate.n <= 0 || track->edit_rate.d <= 0 ||
+        source_track->edit_rate.n <= 0 || source_track->edit_rate.d <= 0) {
+      GST_WARNING_OBJECT (demux, "Track has an invalid edit rate");
+      continue;
+    }
     if (MXF_IS_METADATA_MATERIAL_PACKAGE (current_package) && !component) {
       GST_WARNING_OBJECT (demux,
           "Playing material package but found no component for track");
@@ -968,9 +974,11 @@
     return GST_FLOW_UNEXPECTED;
+  GST_DEBUG_OBJECT (demux, "Switching to component %u", pad->current_component);
   pad->component =
-      MXF_METADATA_SOURCE_CLIP (sequence->structural_components[pad->
-          current_component]);
+      MXF_METADATA_SOURCE_CLIP (sequence->
+      structural_components[pad->current_component]);
   if (pad->component == NULL) {
     GST_ERROR_OBJECT (demux, "No such structural component");
     return GST_FLOW_ERROR;
@@ -978,8 +986,8 @@
   if (!pad->component->source_package
       || !pad->component->source_package->top_level
-      || !MXF_METADATA_GENERIC_PACKAGE (pad->component->
-          source_package)->tracks) {
+      || !MXF_METADATA_GENERIC_PACKAGE (pad->component->source_package)->
+      tracks) {
     GST_ERROR_OBJECT (demux, "Invalid component");
@@ -1011,6 +1019,11 @@
+  if (pad->source_track->edit_rate.n <= 0 ||
+      pad->source_track->edit_rate.d <= 0) {
+    GST_ERROR_OBJECT (demux, "Source track has invalid edit rate");
+    return GST_FLOW_ERROR;
+  }
   pad->current_component_position = 0;
   pad->current_component_drop = pad->source_track->origin;


--===============1203724344426356506==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--===============1203724344426356506==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gstreamer-cvs-verbose mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs-verbose

--===============1203724344426356506==--