Commit 6ac6e3d1 authored by Richard Buteau's avatar Richard Buteau Committed by Carl Eugen Hoyos
Browse files

Fix aspect ratio for files that have it stored in

Fixes issue 690.

Patch by Richard Buteau, rbuteau rgbnetworks com

Originally committed as revision 25158 to svn://
parent 9c193cc4
......@@ -467,7 +467,15 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
value_len = get_le16(pb);
if (!value_type && value_len%2)
value_len += 1;
get_tag(s, name, value_type, value_len);
* My sample has that stream set to 0 maybe that mean the container.
* Asf stream count start at 1. I am using 0 to the container value since it's unused
if (!strcmp(name, "AspectRatioX")){
dar[0].num= get_value(s->pb, value_type);
} else if(!strcmp(name, "AspectRatioY")){
dar[0].den= get_value(s->pb, value_type);
} else get_tag(s, name, value_type, value_len);
} else if (!guidcmp(&g, &ff_asf_metadata_header)) {
int n, stream_num, name_len, value_len, value_type, value_num;
......@@ -626,11 +634,16 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
AVStream *st = s->streams[stream_num];
if (!st->codec->bit_rate)
st->codec->bit_rate = bitrate[i];
if (dar[i].num > 0 && dar[i].den > 0)
if (dar[i].num > 0 && dar[i].den > 0){
dar[i].num, dar[i].den, INT_MAX);
//av_log(s, AV_LOG_ERROR, "dar %d:%d sar=%d:%d\n", dar[i].num, dar[i].den, st->sample_aspect_ratio.num, st->sample_aspect_ratio.den);
} else if ((dar[0].num > 0) && (dar[0].den > 0) && (st->codec->codec_type==CODEC_TYPE_VIDEO)) // Use ASF container value if the stream doesn't AR set.
dar[0].num, dar[0].den, INT_MAX);
//av_log(s, AV_LOG_INFO, "i=%d, st->codec->codec_type:%d, dar %d:%d sar=%d:%d\n", i, st->codec->codec_type, dar[i].num, dar[i].den, st->sample_aspect_ratio.num, st->sample_aspect_ratio.den);
// copy and convert language codes to the frontend
if (asf->streams[i].stream_language_index < 128) {
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