diff --git a/libavformat/smacker.c b/libavformat/smacker.c index 1d54e8e917..d04c8b91a6 100644 --- a/libavformat/smacker.c +++ b/libavformat/smacker.c @@ -34,6 +34,8 @@ #define SMACKER_PAL 0x01 #define SMACKER_FLAG_RING_FRAME 0x01 +#define SMACKER_FLAG_Y_INTERLACE (1 << 1) +#define SMACKER_FLAG_Y_DOUBLE (1 << 2) enum SAudFlags { SMK_AUD_PACKED = 0x80, @@ -144,6 +146,9 @@ static int smacker_read_header(AVFormatContext *s) avpriv_set_pts_info(st, 33, pts_inc, tbase); st->duration = smk->frames; + st->sample_aspect_ratio = (AVRational){ 1, 1 + + !!(flags & (SMACKER_FLAG_Y_INTERLACE | SMACKER_FLAG_Y_DOUBLE)) }; + /* init video codec */ par = st->codecpar; par->width = width; diff --git a/tests/ref/fate/smacker-video b/tests/ref/fate/smacker-video index 9325d91a22..4635ef55f1 100644 --- a/tests/ref/fate/smacker-video +++ b/tests/ref/fate/smacker-video @@ -2,7 +2,7 @@ #media_type 0: video #codec_id 0: rawvideo #dimensions 0: 320x200 -#sar 0: 0/1 +#sar 0: 1/1 0, 0, 0, 1, 192000, 0x8926d7fc 0, 1, 1, 1, 192000, 0x2506d384 0, 2, 2, 1, 192000, 0x9a8dc93a