[PATCH 4/5] add new essence container uls and wrapping methods

storyparts storyparts
Thu Apr 15 12:05:09 CEST 2010


---
 libavformat/mxfdec.c |   57 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 1cd15ac..b3a88e6 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -137,6 +137,14 @@ typedef struct {
 enum MXFWrappingScheme {
     Frame,
     Clip,
+    Custom,
+    CustomStripe,
+    CustomPES,
+    CustomFixedAudioSize,
+    CustomSplice,
+    CustomClosedGOP,
+    CustomSlave,
+    CustomUnconstrained,
 };
 
 typedef struct {
@@ -662,17 +670,60 @@ static void *mxf_resolve_strong_ref(MXFContext *mxf, UID *strong_ref, enum MXFMe
 static const MXFContainerUL mxf_essence_container_uls[] = {
     // video essence container uls
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x01 }, 16, CODEC_ID_MPEG2VIDEO, Frame }, /* MPEG-ES Frame wrapped */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x02 }, 16, CODEC_ID_MPEG2VIDEO,  Clip }, /* Clip-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x03 }, 16, CODEC_ID_MPEG2VIDEO, CustomStripe }, /* CustomStripe-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x04 }, 16, CODEC_ID_MPEG2VIDEO, CustomPES }, /* CustomPES-wrapped MPEG-ES VideoStream-0 SID */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x05 }, 16, CODEC_ID_MPEG2VIDEO, CustomFixedAudioSize }, /* CustomFixedAudioSize-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x06 }, 16, CODEC_ID_MPEG2VIDEO, CustomSplice }, /* CustomSplice-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x07 }, 16, CODEC_ID_MPEG2VIDEO, CustomClosedGOP }, /* CustomClosedGOP-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x08 }, 16, CODEC_ID_MPEG2VIDEO, CustomSlave }, /* CustomSlave-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x7F }, 16, CODEC_ID_MPEG2VIDEO, CustomUnconstrained }, /* CustomUnconstrained-wrapped MPEG-ES VideoStream-0 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x01 }, 16, CODEC_ID_MPEG2VIDEO, Frame }, /* Frame-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x02 }, 16, CODEC_ID_MPEG2VIDEO,  Clip }, /* Clip-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x03 }, 16, CODEC_ID_MPEG2VIDEO, CustomStripe }, /* CustomStripe-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x04 }, 16, CODEC_ID_MPEG2VIDEO, CustomPES }, /* CustomPES-wrapped MPEG-ES VideoStream-1 SID */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x05 }, 16, CODEC_ID_MPEG2VIDEO, CustomFixedAudioSize }, /* CustomFixedAudioSize-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x06 }, 16, CODEC_ID_MPEG2VIDEO, CustomSplice }, /* CustomSplice-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x07 }, 16, CODEC_ID_MPEG2VIDEO, CustomClosedGOP }, /* CustomClosedGOP-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x08 }, 16, CODEC_ID_MPEG2VIDEO, CustomSlave }, /* CustomSlave-wrapped MPEG-ES VideoStream-1 */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x7F }, 16, CODEC_ID_MPEG2VIDEO, CustomUnconstrained }, /* CustomUnconstrained-wrapped MPEG-ES VideoStream-1 */
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0xe0,0x02 }, 16, CODEC_ID_MPEG2VIDEO,  Clip }, /* MPEG-ES Clip wrapped, 0xe0 MPV stream id */
-    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x04,0x61,0x07 }, 16, CODEC_ID_MPEG2VIDEO,  Clip }, /* MPEG-ES Custom wrapped, 0x61 ??? stream id */
-    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* DV 625 25mbps */
-    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x3F,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* DV IEC 625 25mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x02,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped IEC-DV 625x50I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x02,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped IEC-DV 625x50I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x03,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped IEC-DV 525x59.94I 25Mbps SMPTE-322M */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x03,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped IEC-DV 525x59.94I 25Mbps SMPTE-322M */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x04,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped IEC-DV 625x50I 25Mbps SMPTE-322M */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x04,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped IEC-DV 625x50I 25Mbps SMPTE-322M */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x3F,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped IEC-DV UndefinedSource 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x3F,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped IEC-DV UndefinedSource 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x40,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 525x59.94I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x40,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 525x59.94I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 625x50I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x41,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 625x50I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 625x50I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x41,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 625x50I 25Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x51,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 625x50I 50Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x51,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 625x50I 50Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x60,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 1080x59.94I 100Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x60,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 1080x59.94I 100Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x61,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 1080x50I 100Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x61,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 1080x50I 100Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x62,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 720x59.94P 100Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x62,0x02 }, 16,    CODEC_ID_DVVIDEO,  Clip }, /* Clip-wrapped DV-based 720x59.94P 100Mbps */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x63,0x01 }, 16,    CODEC_ID_DVVIDEO, Frame }, /* Frame-wrapped DV-based 720x50P 100Mbps */
+
     // sound essence container uls
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x06,0x01,0x00 }, 16,  CODEC_ID_PCM_S16LE, Frame }, /* BWF Frame wrapped */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x06,0x02,0x00 }, 16,  CODEC_ID_PCM_S16LE,  Clip }, /* Clip-wrapped Broadcast Wave audio data */
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x06,0x03,0x00 }, 16,  CODEC_ID_PCM_S16LE, Frame }, /* AES Frame wrapped */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x06,0x04,0x00 }, 16,  CODEC_ID_PCM_S16LE,  Clip }, /* Clip-wrapped AES3 audio data */
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x40,0x01 }, 16,        CODEC_ID_MP2, Frame }, /* MPEG-ES Frame wrapped, 0x40 ??? stream id */
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0xc0,0x01 }, 16,        CODEC_ID_MP2, Frame }, /* MPEG-ES Frame wrapped, 0xc0 MPA stream id */
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0xc0,0x02 }, 16,        CODEC_ID_MP2,  Clip }, /* MPEG-ES Clip wrapped, 0xc0 MPA stream id */
     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 }, 14,  CODEC_ID_PCM_S16LE, Frame }, /* D-10 Mapping 50Mbps PAL Extended Template */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x03,0x0D,0x01,0x03,0x01,0x02,0x0A,0x01,0x00 }, 16,   CODEC_ID_PCM_ALAW, Frame }, /* Frame-wrapped A-law Audio */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x03,0x0D,0x01,0x03,0x01,0x02,0x0A,0x02,0x00 }, 16,   CODEC_ID_PCM_ALAW,  Clip }, /* Clip-wrapped A-law Audio */
+    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x03,0x0D,0x01,0x03,0x01,0x02,0x0A,0x03,0x00 }, 16,   CODEC_ID_PCM_ALAW, Custom }, /* Custom-wrapped A-law Audio */
     { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 16,       CODEC_ID_NONE, Frame },
 };
 
-- 
1.6.6.1


--------------000300090005060804010403
Content-Type: text/x-patch;
 name="0005-extend-MXFIndexTableSegment.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="0005-extend-MXFIndexTableSegment.patch"




More information about the ffmpeg-devel mailing list