summaryrefslogtreecommitdiffstats
path: root/gst/mxf/mxfdemux.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/mxf/mxfdemux.c')
-rw-r--r--gst/mxf/mxfdemux.c40
1 files changed, 32 insertions, 8 deletions
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
index 93318859..79d58cba 100644
--- a/gst/mxf/mxfdemux.c
+++ b/gst/mxf/mxfdemux.c
@@ -18,11 +18,36 @@
*/
/* 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;
}