summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-09-12 11:08:25 +0200
committerTim-Philipp Müller <tim@centricular.net>2012-09-12 10:44:10 +0100
commit0b2dd2e72366f10d30581bf3758a640fb5e186ed (patch)
treec6f7e69ab3011c78c3b8ac47a647079ae2a7dc94 /gst-libs
parent2c3eaf527b3224b9be9ec7fe9d7f26fef9e5eb87 (diff)
downloadgstreamer-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.c7
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;