summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2013-01-30 18:38:38 +0100
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2013-02-05 11:17:32 +0100
commit221c88310e75acb1d31f4392ac5779f9e7d39162 (patch)
treefc35397b1ec3e75afc906ce60748eb04ac6f182d
parent61b96ee75e7fcaa0a7aabdce9a66d675b1ef622f (diff)
mpeg2: fix decoding of 4K videos.
Account for slice_vertical_position_extension when vertical_size > 2800.
-rw-r--r--gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c b/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c
index ae788493..c69761f1 100644
--- a/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c
+++ b/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c
@@ -883,7 +883,7 @@ decode_slice(
GstBitReader br;
gint mb_x, mb_y, mb_inc;
guint macroblock_offset;
- guint8 slice_vertical_position_extension;
+ guint8 slice_vertical_position_extension = 0;
guint8 quantiser_scale_code;
guint8 intra_slice = 0;
guint8 extra_bit_slice, junk8;
@@ -922,7 +922,7 @@ decode_slice(
}
macroblock_offset = gst_bit_reader_get_pos(&br);
- mb_y = slice_no;
+ mb_y = ((guint)slice_vertical_position_extension << 7) + slice_no;
mb_x = -1;
do {
if (!decode_vlc(&br, &mb_inc, mpeg2_mbaddr_vlc_table,