diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-09-12 11:08:25 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2012-09-12 10:44:10 +0100 |
commit | 0b2dd2e72366f10d30581bf3758a640fb5e186ed (patch) | |
tree | c6f7e69ab3011c78c3b8ac47a647079ae2a7dc94 /gst-libs | |
parent | 2c3eaf527b3224b9be9ec7fe9d7f26fef9e5eb87 (diff) | |
download | gstreamer-plugins-bad-0b2dd2e72366f10d30581bf3758a640fb5e186ed.tar.gz |
codecparsers: vc1: fix aspect ratio calculation.
ASPECT_HORIZ_SIZE and ASPECT_VERT_SIZE are syntax elements that hold
binary encodings of sizes ranging from 1 to 256. Thus, the calculated
pixel-aspect-ratio was off by one.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=683858
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/codecparsers/gstvc1parser.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c index a82e46e16..bc94823cf 100644 --- a/gst-libs/gst/codecparsers/gstvc1parser.c +++ b/gst-libs/gst/codecparsers/gstvc1parser.c @@ -837,10 +837,13 @@ parse_sequence_header_advanced (GstVC1SeqHdr * seqhdr, GstBitReader * br) READ_UINT8 (br, advanced->aspect_ratio, 4); if (advanced->aspect_ratio == 15) { + /* Aspect Width (6.1.14.3.2) and Aspect Height (6.1.14.3.3) + * syntax elements hold a binary encoding of sizes ranging + * from 1 to 256 */ READ_UINT8 (br, advanced->aspect_horiz_size, 8); READ_UINT8 (br, advanced->aspect_vert_size, 8); - advanced->par_n = advanced->aspect_horiz_size; - advanced->par_d = advanced->aspect_vert_size; + advanced->par_n = 1 + advanced->aspect_horiz_size; + advanced->par_d = 1 + advanced->aspect_vert_size; } else { advanced->par_n = aspect_ratios[advanced->aspect_ratio].par_n; advanced->par_d = aspect_ratios[advanced->aspect_ratio].par_d; |