gst/mxf/: Major update of the TODO lists. There's still much to do.

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.
This commit is contained in:
Sebastian Dröge 2008-12-12 10:29:31 +00:00
parent 1fe82925f5
commit c94b1bd2de
9 changed files with 61 additions and 16 deletions

View file

@ -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),

2
common

@ -1 +1 @@
Subproject commit a8728f3f810904c94f0b6678a7633d551514f335
Subproject commit 55e579eeead04cfde7c63b3a4f5b3d4f72c2f61d

View 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

View 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 ();

View file

@ -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;
}

View file

@ -21,6 +21,12 @@
* 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");

View 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];

View 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

View 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