diff options
Diffstat (limited to 'gst/mxf/mxfdemux.c')
-rw-r--r-- | gst/mxf/mxfdemux.c | 40 |
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; } |