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;
|
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)
|
|||||||
&& 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)
|
|||||||
|
|
||||||
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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user