Bug 498815 - libtheora update - r=doublec rs=roc

This commit is contained in:
Tim Terriberry 2009-06-19 15:11:15 +12:00
parent fc3386c99f
commit addeb69d4c
3 changed files with 37 additions and 5 deletions

View File

@ -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.

View File

@ -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);

View File

@ -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);