Commit 96fc2908 authored by Carl Eugen Hoyos's avatar Carl Eugen Hoyos

Read bits_per_coded_sample from V_MS/VFW/FOURCC mkv files.

Fixes ticket #3425.
parent 26733570
...@@ -1605,6 +1605,7 @@ static int matroska_read_header(AVFormatContext *s) ...@@ -1605,6 +1605,7 @@ static int matroska_read_header(AVFormatContext *s)
uint32_t fourcc = 0; uint32_t fourcc = 0;
AVIOContext b; AVIOContext b;
char* key_id_base64 = NULL; char* key_id_base64 = NULL;
int bit_depth = -1;
/* Apply some sanity checks. */ /* Apply some sanity checks. */
if (track->type != MATROSKA_TRACK_TYPE_VIDEO && if (track->type != MATROSKA_TRACK_TYPE_VIDEO &&
...@@ -1708,6 +1709,7 @@ static int matroska_read_header(AVFormatContext *s) ...@@ -1708,6 +1709,7 @@ static int matroska_read_header(AVFormatContext *s)
&& track->codec_priv.size >= 40 && track->codec_priv.size >= 40
&& track->codec_priv.data != NULL) { && track->codec_priv.data != NULL) {
track->ms_compat = 1; track->ms_compat = 1;
bit_depth = AV_RL16(track->codec_priv.data + 14);
fourcc = AV_RL32(track->codec_priv.data + 16); fourcc = AV_RL32(track->codec_priv.data + 16);
codec_id = ff_codec_get_id(ff_codec_bmp_tags, fourcc); codec_id = ff_codec_get_id(ff_codec_bmp_tags, fourcc);
extradata_offset = 40; extradata_offset = 40;
...@@ -1879,6 +1881,8 @@ static int matroska_read_header(AVFormatContext *s) ...@@ -1879,6 +1881,8 @@ static int matroska_read_header(AVFormatContext *s)
st->codec->codec_type = AVMEDIA_TYPE_VIDEO; st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
st->codec->codec_tag = fourcc; 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->width = track->video.pixel_width;
st->codec->height = track->video.pixel_height; st->codec->height = track->video.pixel_height;
av_reduce(&st->sample_aspect_ratio.num, av_reduce(&st->sample_aspect_ratio.num,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment