Read bits_per_coded_sample from V_MS/VFW/FOURCC mkv files.

Fixes ticket #3425.
This commit is contained in:
Carl Eugen Hoyos 2014-02-26 00:02:51 +01:00
parent 2673357048
commit 96fc2908f0
1 changed files with 4 additions and 0 deletions

View File

@ -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,