gst/mxf/: Major update of the TODO lists. There's still much to do.
authorSebastian Dröge <slomo@circular-chaos.org>
Fri, 12 Dec 2008 10:29:31 +0000 (10:29 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Fri, 12 Dec 2008 10:29:31 +0000 (10:29 +0000)
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c:
* gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
* gst/mxf/mxfdemux.c:
* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
* gst/mxf/mxfjpeg2000.c:
* gst/mxf/mxfmpeg.c:
* gst/mxf/mxfup.c:
Major update of the TODO lists. There's still much to do.

ChangeLog
common
gst/mxf/mxfaes-bwf.c
gst/mxf/mxfalaw.c
gst/mxf/mxfdemux.c
gst/mxf/mxfdv-dif.c
gst/mxf/mxfjpeg2000.c
gst/mxf/mxfmpeg.c
gst/mxf/mxfup.c

index 8890cfa..0b31b7e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-12-12  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
+
+       * gst/mxf/mxfaes-bwf.c:
+       * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
+       * gst/mxf/mxfdemux.c:
+       * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
+       * gst/mxf/mxfjpeg2000.c:
+       * gst/mxf/mxfmpeg.c:
+       * gst/mxf/mxfup.c:
+       Major update of the TODO lists. There's still much to do. 
+
 2008-12-11  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
        * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_metadata_track),
diff --git a/common b/common
index a8728f3..55e579e 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit a8728f3f810904c94f0b6678a7633d551514f335
+Subproject commit 55e579eeead04cfde7c63b3a4f5b3d4f72c2f61d
index a62d270..98e0f72 100644 (file)
@@ -25,6 +25,7 @@
  * - Handle the case were a track only references specific channels
  *   of the essence (ChannelID property)
  * - Add support for more codecs 
+ * - Handle more of the metadata inside the descriptors
  */
 
 #ifdef HAVE_CONFIG_H
index 89faed4..847eb90 100644 (file)
@@ -115,7 +115,8 @@ mxf_alaw_create_caps (MXFMetadataGenericPackage * package,
             ((gdouble) s->audio_sampling_rate.d) + 0.5),
         "channels", G_TYPE_INT, s->channel_count, NULL);
 
-    /* TODO: Handle channel layout somehow? */
+    /* TODO: Handle channel layout somehow?
+     * Or is alaw limited to two channels? */
     if (!*tags)
       *tags = gst_tag_list_new ();
 
index 9331885..79d58cb 100644 (file)
  */
 
 /* TODO:
- *   - start at correct position of the component, switch components
- *   - seeking support
- *   - timecode tracks
- *   - descriptive metadata
- *   - generic container system items
+ *   - GObjectify structural metadata to get rid of the current inheritance mess
+ *   - Implement support for DMS-1 and descriptive metadata tracks
+ *   - Differentiate UL and UUIDs, the former can define an object system
+ *     (i.e. mxf_ul_is_a() and friends could be implemented), see SMPTE S336M.
+ *     The latter are just 16 byte unique identifiers
+ *   - Check everything for correctness vs. SMPTE S336M, some things can probably
+ *     be generalized/simplified
+ *   - Correctly timestamp essence streams and start/stop at the correct positions.
+ *     Also switch between different structural components after one has ended.
+ *   - Seeking support: IndexTableSegments and skip-to-position seeks, needs correct
+ *     timestamp calculation, etc.
+ *   - Handle timecode tracks correctly (where is this documented?)
+ *   - Handle Generic container system items
+ *   - Use an "essence element/track handling" registry instead of the large if-then-else
+ *     block when detecting the codec
+ *   - Force synchronization of tracks. Packets that have the timestamp are not required
+ *     to be stored at the same position in the essence stream, especially if tracks
+ *     with different source packages (body sid) are used.
+ *   - Implement correct support for clip-wrapped essence elements.
+ *   - Add a "tracks" property to select the tracks that should be used from the
+ *     selected package.
+ *   - Post structural metadata and descriptive metadata trees as a message on the bus
+ *     and send them downstream as event.
+ *   - Multichannel audio needs channel layouts, define them (SMPTE S320M?).
+ *   - Correctly handle the different rectangles and aspect-ratio for video
+ *   - Add support for non-standard MXF used by Avid (bug #561922).
+ *
+ *   - Implement SMPTE D11 essence and the digital cinema/MXF specs
+ *
+ *   - Implement a muxer ;-)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1316,9 +1341,8 @@ gst_mxf_demux_handle_header_metadata_resolve_references (GstMXFDemux * demux)
           MXFMetadataEssenceContainerData, i);
 
       for (j = 0; j < demux->content_storage.n_essence_container_data; j++) {
-        if (mxf_ul_is_equal (&demux->
-                content_storage.essence_container_data_uids[j],
-                &data->instance_uid)) {
+        if (mxf_ul_is_equal (&demux->content_storage.
+                essence_container_data_uids[j], &data->instance_uid)) {
           demux->content_storage.essence_container_data[j] = data;
           break;
         }
index f92e71f..79512f4 100644 (file)
  * Generic Container
  */
 
+/* TODO:
+ *  - playbin hangs on a lot of MXF/DV-DIF files (bug #563827)
+ *  - decodebin2 creates loops inside the linking graph (bug #563828)
+ *  - Forwarding of timestamps in dvdemux?
+ */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -91,8 +97,8 @@ mxf_dv_dif_create_caps (MXFMetadataGenericPackage * package,
   }
 
   for (i = 0; i < track->n_descriptor; i++) {
-    if (((MXFMetadataGenericDescriptor *) track->
-            descriptor[i])->is_file_descriptor
+    if (((MXFMetadataGenericDescriptor *) track->descriptor[i])->
+        is_file_descriptor
         && ((MXFMetadataGenericDescriptor *) track->descriptor[i])->type !=
         MXF_METADATA_MULTIPLE_DESCRIPTOR) {
       f = track->descriptor[i];
@@ -109,7 +115,6 @@ mxf_dv_dif_create_caps (MXFMetadataGenericPackage * package,
 
   /* TODO: might be video or audio only, use values of the generic sound/picture
    * descriptor in the caps in that case
-   * Also dvdemux might not forward timestamps
    */
   if (f->essence_container.u[13] == 0x02) {
     GST_DEBUG ("Found DV-DIF stream");
index c9e78fa..7ccb481 100644 (file)
@@ -23,6 +23,7 @@
 
 /* TODO:
  *  - parse the jpeg2000 sub-descriptor, see SMPTE 422M 7.2
+ *  - Add support for XYZ colorspace
  */
 
 #ifdef HAVE_CONFIG_H
@@ -107,8 +108,8 @@ mxf_jpeg2000_create_caps (MXFMetadataGenericPackage * package,
       p = (MXFMetadataGenericPictureEssenceDescriptor *) track->descriptor[i];
       f = track->descriptor[i];
       break;
-    } else if (((MXFMetadataGenericDescriptor *) track->
-            descriptor[i])->is_file_descriptor
+    } else if (((MXFMetadataGenericDescriptor *) track->descriptor[i])->
+        is_file_descriptor
         && ((MXFMetadataGenericDescriptor *) track->descriptor[i])->type !=
         MXF_METADATA_MULTIPLE_DESCRIPTOR) {
       f = track->descriptor[i];
index 810474a..608ecc2 100644 (file)
@@ -24,7 +24,8 @@
 /* TODO:
  * - Handle PES streams
  * - Fix TS/PS demuxers to forward timestamps
- * - Handle sound/data somehow
+ * - h264 support (see SMPTE RP2008)
+ * - AAC support
  */
 
 #ifdef HAVE_CONFIG_H
index a9e0826..3b5259e 100644 (file)
@@ -23,6 +23,7 @@
 
 /* TODO: 
  *   - Handle CDCI essence
+ *   - Handle more formats with RGBA descriptor (4:4:4 / 4:4:4:4 YUV, RGB656, ...)
  *   - Correctly transform for the GStreamer strides
  *   - Handle all the dimensions and other properties in the picture
  *     essence descriptors correctly according to S377M Annex E