mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-30 04:45:36 +00:00
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:
parent
1fe82925f5
commit
c94b1bd2de
9 changed files with 61 additions and 16 deletions
11
ChangeLog
11
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),
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit a8728f3f810904c94f0b6678a7633d551514f335
|
||||
Subproject commit 55e579eeead04cfde7c63b3a4f5b3d4f72c2f61d
|
|
@ -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
|
||||
|
|
|
@ -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 ();
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue