aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-11-03 05:38:12 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2012-12-10 23:57:14 +0100
commit08d75bf545f3fa9caad3f508b82d3da1ca709ed3 (patch)
tree9d67c977615c5fbc2c92aa7af38227dea88e7e63
parent19de5478f0279c8df7b33eae6013df7a7f64456d (diff)
downloadffmpeg-08d75bf545f3fa9caad3f508b82d3da1ca709ed3.tar.gz
asfdec: parse aspect ratio payload extension
Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 343c73e252d3e3c1e5d2037c2e8eb14b504f1e6f) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/asfdec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index f963aa807b..06f76ba4a7 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -946,6 +946,7 @@ static int asf_read_frame_header(AVFormatContext *s, AVIOContext *pb){
}
if (asf->packet_replic_size >= 8) {
int64_t end = avio_tell(pb) + asf->packet_replic_size;
+ AVRational aspect;
asf->packet_obj_size = avio_rl32(pb);
if(asf->packet_obj_size >= (1<<24) || asf->packet_obj_size <= 0){
av_log(s, AV_LOG_ERROR, "packet_obj_size invalid\n");
@@ -968,6 +969,13 @@ static int asf_read_frame_header(AVFormatContext *s, AVIOContext *pb){
case 0x50:
// duration = avio_rl16(pb);
break;
+ case 0x54:
+ aspect.num = avio_r8(pb);
+ aspect.den = avio_r8(pb);
+ if (aspect.num > 0 && aspect.den > 0) {
+ s->streams[asf->stream_index]->sample_aspect_ratio = aspect;
+ }
+ break;
case 0x2A:
avio_skip(pb, 8);
ts0= avio_rl64(pb);