diff --git a/media/libtheora/README_MOZILLA b/media/libtheora/README_MOZILLA index a2b8e196006..ae4b9d922fc 100644 --- a/media/libtheora/README_MOZILLA +++ b/media/libtheora/README_MOZILLA @@ -13,3 +13,4 @@ Bug 455357 - WinCE LibTheora Pre-defined Macro usage in local variable the WinCE Shunt Library (Bug 456788 - reduce windows ce shunt impact). Until then, this simple patch allows WinCE to finish compiling. +bug498815.patch: Fix for this bug from libtheora svn r16143. diff --git a/media/libtheora/bug498815.patch b/media/libtheora/bug498815.patch new file mode 100644 index 00000000000..0408c4cc62a --- /dev/null +++ b/media/libtheora/bug498815.patch @@ -0,0 +1,30 @@ +Index: decinfo.c +=================================================================== +--- decinfo.c (revision 16127) ++++ decinfo.c (working copy) +@@ -70,12 +70,8 @@ + _info->pic_height=(ogg_uint32_t)val; + theorapackB_read(_opb,8,&val); + _info->pic_x=(ogg_uint32_t)val; +- /*Note: The sense of pic_y is inverted in what we pass back to the +- application compared to how it is stored in the bitstream. +- This is because the bitstream uses a right-handed coordinate system, while +- applications expect a left-handed one.*/ + theorapackB_read(_opb,8,&val); +- _info->pic_y=_info->frame_height-_info->pic_height-(ogg_uint32_t)val; ++ _info->pic_y=(ogg_uint32_t)val; + theorapackB_read(_opb,32,&val); + _info->fps_numerator=(ogg_uint32_t)val; + theorapackB_read(_opb,32,&val); +@@ -86,6 +82,11 @@ + _info->fps_numerator==0||_info->fps_denominator==0){ + return TH_EBADHEADER; + } ++ /*Note: The sense of pic_y is inverted in what we pass back to the ++ application compared to how it is stored in the bitstream. ++ This is because the bitstream uses a right-handed coordinate system, while ++ applications expect a left-handed one.*/ ++ _info->pic_y=_info->frame_height-_info->pic_height-_info->pic_y; + theorapackB_read(_opb,24,&val); + _info->aspect_numerator=(ogg_uint32_t)val; + theorapackB_read(_opb,24,&val); diff --git a/media/libtheora/lib/dec/decinfo.c b/media/libtheora/lib/dec/decinfo.c index 3c4ba868a6d..e51d63e2128 100644 --- a/media/libtheora/lib/dec/decinfo.c +++ b/media/libtheora/lib/dec/decinfo.c @@ -70,12 +70,8 @@ static int oc_info_unpack(oggpack_buffer *_opb,th_info *_info){ _info->pic_height=(ogg_uint32_t)val; theorapackB_read(_opb,8,&val); _info->pic_x=(ogg_uint32_t)val; - /*Note: The sense of pic_y is inverted in what we pass back to the - application compared to how it is stored in the bitstream. - This is because the bitstream uses a right-handed coordinate system, while - applications expect a left-handed one.*/ theorapackB_read(_opb,8,&val); - _info->pic_y=_info->frame_height-_info->pic_height-(ogg_uint32_t)val; + _info->pic_y=(ogg_uint32_t)val; theorapackB_read(_opb,32,&val); _info->fps_numerator=(ogg_uint32_t)val; theorapackB_read(_opb,32,&val); @@ -86,6 +82,11 @@ static int oc_info_unpack(oggpack_buffer *_opb,th_info *_info){ _info->fps_numerator==0||_info->fps_denominator==0){ return TH_EBADHEADER; } + /*Note: The sense of pic_y is inverted in what we pass back to the + application compared to how it is stored in the bitstream. + This is because the bitstream uses a right-handed coordinate system, while + applications expect a left-handed one.*/ + _info->pic_y=_info->frame_height-_info->pic_height-_info->pic_y; theorapackB_read(_opb,24,&val); _info->aspect_numerator=(ogg_uint32_t)val; theorapackB_read(_opb,24,&val);