[Bug 769048] qtmux: prores-related fixes

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Sep 28 17:53:02 UTC 2016


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

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

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

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

::: gst/isomp4/atoms.c
@@ +3917,3 @@

+AtomInfo *
+build_fiel_extension_prores (const gchar * interlace_mode, gboolean tff)

This one should be merged with the one for JPEG2000. It is a standard MOV atom
that is also relevant for other codecs, and we should always write it for MOV
if we know a field order or about interlacing

The one for JPEG2000 is also wrong (it only writes one byte, and it has a
off-by-one in that byte...)


This one depends on the other bug, we should proxy this in a generic way

@@ +3935,3 @@
+      field_order = tff ? 9 : 14;
+    else if (!g_strcmp0 (interlace_mode, "mixed"))
+      field_order = tff ? 1 : 6;

This is wrong, "mixed" does not mean that. AFAIU 1 and 6 are the same as 9 and
14, just that the fields are spatially flipped (bottom field is first line). We
don't support that at all currently (ffmpeg does).

@@ +3948,3 @@
+
+AtomInfo *
+build_colr_extension (GstVideoColorimetry colorimetry)

This is a standard MP4 atom, we should probably always write it if we can.

We should proxy the colorimetry on compressed caps too, see the other bug

@@ +4003,3 @@
+
+  /* colour specification box */
+  GST_WRITE_UINT32_LE (data, FOURCC_nclc);

This should be nclx for MP4, nclc for MOV/etc

@@ +4008,3 @@
+  GST_WRITE_UINT16_BE (data + 6, transfer_function);    /* transfer function
*/
+  GST_WRITE_UINT16_BE (data + 8, matrix);
+

For MP4 we also need to write the color range at the end: 0_255 is 0x80, 16_235
is 0x00 (all but the first bit are reserved so far)

::: gst/isomp4/gstqtmux.c
@@ +4213,3 @@
     variant = gst_structure_get_string (structure, "variant");
+    colorimetry_str = gst_structure_get_string (structure, "colorimetry");
+    interlace_mode = gst_structure_get_string (structure, "interlace-mode");

We should do all this generally for all video codecs

-- 
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