Read bits_per_coded_sample from V_MS/VFW/FOURCC mkv files.
Fixes ticket #3425.
This commit is contained in:
		
							parent
							
								
									2673357048
								
							
						
					
					
						commit
						96fc2908f0
					
				@ -1605,6 +1605,7 @@ static int matroska_read_header(AVFormatContext *s)
 | 
			
		||||
        uint32_t fourcc = 0;
 | 
			
		||||
        AVIOContext b;
 | 
			
		||||
        char* key_id_base64 = NULL;
 | 
			
		||||
        int bit_depth = -1;
 | 
			
		||||
 | 
			
		||||
        /* Apply some sanity checks. */
 | 
			
		||||
        if (track->type != MATROSKA_TRACK_TYPE_VIDEO &&
 | 
			
		||||
@ -1708,6 +1709,7 @@ static int matroska_read_header(AVFormatContext *s)
 | 
			
		||||
            && track->codec_priv.size >= 40
 | 
			
		||||
            && track->codec_priv.data != NULL) {
 | 
			
		||||
            track->ms_compat = 1;
 | 
			
		||||
            bit_depth = AV_RL16(track->codec_priv.data + 14);
 | 
			
		||||
            fourcc = AV_RL32(track->codec_priv.data + 16);
 | 
			
		||||
            codec_id = ff_codec_get_id(ff_codec_bmp_tags, fourcc);
 | 
			
		||||
            extradata_offset = 40;
 | 
			
		||||
@ -1879,6 +1881,8 @@ static int matroska_read_header(AVFormatContext *s)
 | 
			
		||||
 | 
			
		||||
            st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
 | 
			
		||||
            st->codec->codec_tag  = fourcc;
 | 
			
		||||
            if (bit_depth >= 0)
 | 
			
		||||
                st->codec->bits_per_coded_sample = bit_depth;
 | 
			
		||||
            st->codec->width  = track->video.pixel_width;
 | 
			
		||||
            st->codec->height = track->video.pixel_height;
 | 
			
		||||
            av_reduce(&st->sample_aspect_ratio.num,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user