You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	lavf/mxfdec: Set codec_tag AVup for Avid 1:1 input.
This commit is contained in:
		| @@ -69,6 +69,11 @@ const MXFCodecUL ff_mxf_pixel_format_uls[] = { | ||||
|     { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },  0,    AV_PIX_FMT_NONE }, | ||||
| }; | ||||
|  | ||||
| const MXFCodecUL ff_mxf_codec_tag_uls[] = { | ||||
|     { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0E,0x04,0x03,0x01,0x01,0x03,0x01,0x00 }, 15, MKTAG('A', 'V', 'u', 'p') }, /* Avid 1:1 */ | ||||
|     { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },  0,                         0 }, | ||||
| }; | ||||
|  | ||||
| static const struct { | ||||
|     enum AVPixelFormat pix_fmt; | ||||
|     const char data[16]; | ||||
|   | ||||
| @@ -78,6 +78,7 @@ typedef struct { | ||||
| extern const MXFCodecUL ff_mxf_data_definition_uls[]; | ||||
| extern const MXFCodecUL ff_mxf_codec_uls[]; | ||||
| extern const MXFCodecUL ff_mxf_pixel_format_uls[]; | ||||
| extern const MXFCodecUL ff_mxf_codec_tag_uls[]; | ||||
|  | ||||
| int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum AVPixelFormat *pix_fmt); | ||||
| const MXFSamplesPerFrame *ff_mxf_get_samples_per_frame(AVFormatContext *s, AVRational time_base); | ||||
|   | ||||
| @@ -2045,6 +2045,9 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) | ||||
|                                                   &descriptor->essence_codec_ul); | ||||
|                     st->codec->pix_fmt = (enum AVPixelFormat)pix_fmt_ul->id; | ||||
|                     if (st->codec->pix_fmt == AV_PIX_FMT_NONE) { | ||||
|                         st->codec->codec_tag = mxf_get_codec_ul(ff_mxf_codec_tag_uls, | ||||
|                                                                 &descriptor->essence_codec_ul)->id; | ||||
|                         if (!st->codec->codec_tag) { | ||||
|                         /* support files created before RP224v10 by defaulting to UYVY422 | ||||
|                            if subsampling is 4:2:2 and component depth is 8-bit */ | ||||
|                         if (descriptor->horiz_subsampling == 2 && | ||||
| @@ -2052,6 +2055,7 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) | ||||
|                             descriptor->component_depth == 8) { | ||||
|                             st->codec->pix_fmt = AV_PIX_FMT_UYVY422; | ||||
|                         } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user