avformat/mxfenc: simplify d-10 ul handling
This commit is contained in:
		
							parent
							
								
									635a5c11a6
								
							
						
					
					
						commit
						d65aaf8ea9
					
				@ -123,18 +123,8 @@ enum ULIndex {
 | 
				
			|||||||
    INDEX_MPEG2 = 0,
 | 
					    INDEX_MPEG2 = 0,
 | 
				
			||||||
    INDEX_AES3,
 | 
					    INDEX_AES3,
 | 
				
			||||||
    INDEX_WAV,
 | 
					    INDEX_WAV,
 | 
				
			||||||
    INDEX_D10_625_50_50_VIDEO,
 | 
					    INDEX_D10_VIDEO,
 | 
				
			||||||
    INDEX_D10_625_50_50_AUDIO,
 | 
					    INDEX_D10_AUDIO,
 | 
				
			||||||
    INDEX_D10_525_60_50_VIDEO,
 | 
					 | 
				
			||||||
    INDEX_D10_525_60_50_AUDIO,
 | 
					 | 
				
			||||||
    INDEX_D10_625_50_40_VIDEO,
 | 
					 | 
				
			||||||
    INDEX_D10_625_50_40_AUDIO,
 | 
					 | 
				
			||||||
    INDEX_D10_525_60_40_VIDEO,
 | 
					 | 
				
			||||||
    INDEX_D10_525_60_40_AUDIO,
 | 
					 | 
				
			||||||
    INDEX_D10_625_50_30_VIDEO,
 | 
					 | 
				
			||||||
    INDEX_D10_625_50_30_AUDIO,
 | 
					 | 
				
			||||||
    INDEX_D10_525_60_30_VIDEO,
 | 
					 | 
				
			||||||
    INDEX_D10_525_60_30_AUDIO,
 | 
					 | 
				
			||||||
    INDEX_DV,
 | 
					    INDEX_DV,
 | 
				
			||||||
    INDEX_DNXHD,
 | 
					    INDEX_DNXHD,
 | 
				
			||||||
    INDEX_JPEG2000,
 | 
					    INDEX_JPEG2000,
 | 
				
			||||||
@ -179,60 +169,16 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
 | 
				
			|||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x16,0x01,0x01,0x00 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x16,0x01,0x01,0x00 },
 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
				
			||||||
      mxf_write_wav_desc },
 | 
					      mxf_write_wav_desc },
 | 
				
			||||||
    // D-10 625/50 PAL 50mb/s
 | 
					    // D-10 Video
 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 },
 | 
					    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 },
 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x01 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x01 },
 | 
				
			||||||
      mxf_write_cdci_desc },
 | 
					      mxf_write_cdci_desc },
 | 
				
			||||||
 | 
					    // D-10 Audio
 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 },
 | 
					    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 },
 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
				
			||||||
      mxf_write_generic_sound_desc },
 | 
					      mxf_write_generic_sound_desc },
 | 
				
			||||||
    // D-10 525/60 NTSC 50mb/s
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x02,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x02 },
 | 
					 | 
				
			||||||
      mxf_write_cdci_desc },
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x02,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					 | 
				
			||||||
      mxf_write_generic_sound_desc },
 | 
					 | 
				
			||||||
    // D-10 625/50 PAL 40mb/s
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x03,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x03 },
 | 
					 | 
				
			||||||
      mxf_write_cdci_desc },
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x03,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					 | 
				
			||||||
      mxf_write_generic_sound_desc },
 | 
					 | 
				
			||||||
    // D-10 525/60 NTSC 40mb/s
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x04,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x04 },
 | 
					 | 
				
			||||||
      mxf_write_cdci_desc },
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x04,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					 | 
				
			||||||
      mxf_write_generic_sound_desc },
 | 
					 | 
				
			||||||
    // D-10 625/50 PAL 30mb/s
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x05,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x05 },
 | 
					 | 
				
			||||||
      mxf_write_cdci_desc },
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x05,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					 | 
				
			||||||
      mxf_write_generic_sound_desc },
 | 
					 | 
				
			||||||
    // D-10 525/60 NTSC 30mb/s
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x06,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x05,0x01,0x01,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x06 },
 | 
					 | 
				
			||||||
      mxf_write_cdci_desc },
 | 
					 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x06,0x01 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x06,0x01,0x10,0x00 },
 | 
					 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 },
 | 
					 | 
				
			||||||
      mxf_write_generic_sound_desc },
 | 
					 | 
				
			||||||
    // DV
 | 
					    // DV
 | 
				
			||||||
    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x7F,0x01 },
 | 
					    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x7F,0x01 },
 | 
				
			||||||
      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 },
 | 
					      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x18,0x01,0x01,0x00 },
 | 
				
			||||||
@ -269,6 +215,24 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
 | 
				
			|||||||
      NULL },
 | 
					      NULL },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const UID mxf_d10_codec_uls[] = {
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x01 }, // D-10 625/50 PAL 50mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x02 }, // D-10 525/50 NTSC 50mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x03 }, // D-10 625/50 PAL 40mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x04 }, // D-10 525/50 NTSC 40mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x05 }, // D-10 625/50 PAL 30mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x01,0x02,0x01,0x06 }, // D-10 525/50 NTSC 30mb/s
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const UID mxf_d10_container_uls[] = {
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 }, // D-10 625/50 PAL 50mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x02,0x01 }, // D-10 525/50 NTSC 50mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x03,0x01 }, // D-10 625/50 PAL 40mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x04,0x01 }, // D-10 525/50 NTSC 40mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x05,0x01 }, // D-10 625/50 PAL 30mb/s
 | 
				
			||||||
 | 
					    { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x06,0x01 }, // D-10 525/50 NTSC 30mb/s
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct MXFContext {
 | 
					typedef struct MXFContext {
 | 
				
			||||||
    AVClass *av_class;
 | 
					    AVClass *av_class;
 | 
				
			||||||
    int64_t footer_partition_offset;
 | 
					    int64_t footer_partition_offset;
 | 
				
			||||||
@ -2491,6 +2455,7 @@ static int mxf_write_header(AVFormatContext *s)
 | 
				
			|||||||
        if (!sc)
 | 
					        if (!sc)
 | 
				
			||||||
            return AVERROR(ENOMEM);
 | 
					            return AVERROR(ENOMEM);
 | 
				
			||||||
        st->priv_data = sc;
 | 
					        st->priv_data = sc;
 | 
				
			||||||
 | 
					        sc->index = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (((i == 0) ^ (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)) && s->oformat != &ff_mxf_opatom_muxer) {
 | 
					        if (((i == 0) ^ (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)) && s->oformat != &ff_mxf_opatom_muxer) {
 | 
				
			||||||
            av_log(s, AV_LOG_ERROR, "there must be exactly one video stream and it must be the first one\n");
 | 
					            av_log(s, AV_LOG_ERROR, "there must be exactly one video stream and it must be the first one\n");
 | 
				
			||||||
@ -2550,25 +2515,29 @@ static int mxf_write_header(AVFormatContext *s)
 | 
				
			|||||||
                mxf->cbr_index = 1;
 | 
					                mxf->cbr_index = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (s->oformat == &ff_mxf_d10_muxer) {
 | 
					            if (s->oformat == &ff_mxf_d10_muxer) {
 | 
				
			||||||
 | 
					                int ntsc = mxf->time_base.den != 25;
 | 
				
			||||||
 | 
					                int ul_index;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (st->codecpar->codec_id != AV_CODEC_ID_MPEG2VIDEO) {
 | 
					                if (st->codecpar->codec_id != AV_CODEC_ID_MPEG2VIDEO) {
 | 
				
			||||||
                    av_log(s, AV_LOG_ERROR, "error MXF D-10 only support MPEG-2 Video\n");
 | 
					                    av_log(s, AV_LOG_ERROR, "error MXF D-10 only support MPEG-2 Video\n");
 | 
				
			||||||
                    return AVERROR(EINVAL);
 | 
					                    return AVERROR(EINVAL);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if ((sc->video_bit_rate == 50000000) && (mxf->time_base.den == 25)) {
 | 
					                if ((sc->video_bit_rate == 50000000) && (mxf->time_base.den == 25)) {
 | 
				
			||||||
                    sc->index = INDEX_D10_625_50_50_VIDEO;
 | 
					                    ul_index = 0;
 | 
				
			||||||
                } else if ((sc->video_bit_rate == 49999840 || sc->video_bit_rate == 50000000) && (mxf->time_base.den != 25)) {
 | 
					                } else if ((sc->video_bit_rate == 49999840 || sc->video_bit_rate == 50000000) && ntsc) {
 | 
				
			||||||
                    sc->index = INDEX_D10_525_60_50_VIDEO;
 | 
					                    ul_index = 1;
 | 
				
			||||||
                } else if (sc->video_bit_rate == 40000000) {
 | 
					                } else if (sc->video_bit_rate == 40000000) {
 | 
				
			||||||
                    if (mxf->time_base.den == 25) sc->index = INDEX_D10_625_50_40_VIDEO;
 | 
					                    ul_index = 2+ntsc;
 | 
				
			||||||
                    else                          sc->index = INDEX_D10_525_60_40_VIDEO;
 | 
					 | 
				
			||||||
                } else if (sc->video_bit_rate == 30000000) {
 | 
					                } else if (sc->video_bit_rate == 30000000) {
 | 
				
			||||||
                    if (mxf->time_base.den == 25) sc->index = INDEX_D10_625_50_30_VIDEO;
 | 
					                    ul_index = 4+ntsc;
 | 
				
			||||||
                    else                          sc->index = INDEX_D10_525_60_30_VIDEO;
 | 
					 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    av_log(s, AV_LOG_ERROR, "error MXF D-10 only support 30/40/50 mbit/s\n");
 | 
					                    av_log(s, AV_LOG_ERROR, "error MXF D-10 only support 30/40/50 mbit/s\n");
 | 
				
			||||||
                    return -1;
 | 
					                    return -1;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                sc->codec_ul = &mxf_d10_codec_uls[ul_index];
 | 
				
			||||||
 | 
					                sc->container_ul = &mxf_d10_container_uls[ul_index];
 | 
				
			||||||
 | 
					                sc->index = INDEX_D10_VIDEO;
 | 
				
			||||||
                sc->signal_standard = 1;
 | 
					                sc->signal_standard = 1;
 | 
				
			||||||
                sc->color_siting = 0;
 | 
					                sc->color_siting = 0;
 | 
				
			||||||
                sc->frame_size = (int64_t)sc->video_bit_rate *
 | 
					                sc->frame_size = (int64_t)sc->video_bit_rate *
 | 
				
			||||||
@ -2591,7 +2560,8 @@ static int mxf_write_header(AVFormatContext *s)
 | 
				
			|||||||
                    st->codecpar->codec_id != AV_CODEC_ID_PCM_S24LE) {
 | 
					                    st->codecpar->codec_id != AV_CODEC_ID_PCM_S24LE) {
 | 
				
			||||||
                    av_log(s, AV_LOG_ERROR, "MXF D-10 only support 16 or 24 bits le audio\n");
 | 
					                    av_log(s, AV_LOG_ERROR, "MXF D-10 only support 16 or 24 bits le audio\n");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sc->index = ((MXFStreamContext*)s->streams[0]->priv_data)->index + 1;
 | 
					                sc->index = INDEX_D10_AUDIO;
 | 
				
			||||||
 | 
					                sc->container_ul = ((MXFStreamContext*)s->streams[0]->priv_data)->container_ul;
 | 
				
			||||||
                sc->frame_size = 4 + 8 * spf[0].samples_per_frame[0] * 4;
 | 
					                sc->frame_size = 4 + 8 * spf[0].samples_per_frame[0] * 4;
 | 
				
			||||||
            } else if (s->oformat == &ff_mxf_opatom_muxer) {
 | 
					            } else if (s->oformat == &ff_mxf_opatom_muxer) {
 | 
				
			||||||
                AVRational tbc = av_inv_q(mxf->audio_edit_rate);
 | 
					                AVRational tbc = av_inv_q(mxf->audio_edit_rate);
 | 
				
			||||||
@ -2638,7 +2608,7 @@ static int mxf_write_header(AVFormatContext *s)
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!sc->index) {
 | 
					        if (sc->index == -1) {
 | 
				
			||||||
            sc->index = mxf_get_essence_container_ul_index(st->codecpar->codec_id);
 | 
					            sc->index = mxf_get_essence_container_ul_index(st->codecpar->codec_id);
 | 
				
			||||||
            if (sc->index == -1) {
 | 
					            if (sc->index == -1) {
 | 
				
			||||||
                av_log(s, AV_LOG_ERROR, "track %d: could not find essence container ul, "
 | 
					                av_log(s, AV_LOG_ERROR, "track %d: could not find essence container ul, "
 | 
				
			||||||
@ -2647,8 +2617,10 @@ static int mxf_write_header(AVFormatContext *s)
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        sc->codec_ul = &mxf_essence_container_uls[sc->index].codec_ul;
 | 
					        if (!sc->codec_ul)
 | 
				
			||||||
        sc->container_ul = &mxf_essence_container_uls[sc->index].container_ul;
 | 
					            sc->codec_ul = &mxf_essence_container_uls[sc->index].codec_ul;
 | 
				
			||||||
 | 
					        if (!sc->container_ul)
 | 
				
			||||||
 | 
					            sc->container_ul = &mxf_essence_container_uls[sc->index].container_ul;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        memcpy(sc->track_essence_element_key, mxf_essence_container_uls[sc->index].element_ul, 15);
 | 
					        memcpy(sc->track_essence_element_key, mxf_essence_container_uls[sc->index].element_ul, 15);
 | 
				
			||||||
        sc->track_essence_element_key[15] = present[sc->index];
 | 
					        sc->track_essence_element_key[15] = present[sc->index];
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user