Bug 504613 - Handle zero-byte first-frame packets in Theora. p=tterribe@vt.edu, r=chris.double
authorMatthew Gregan <kinetik@flim.org>
Tue, 15 Sep 2009 17:53:49 +1200
changeset 32932 52f06b726ca5439973436f9f00414bce5ff943d2
parent 32931 30dc0db2b1364a1d8b47d14e41495a975276192b
child 32933 e6fd6698d21bf227932991500603705e72877893
push idunknown
push userunknown
push dateunknown
reviewerschris.double
bugs504613
milestone1.9.3a1pre
Bug 504613 - Handle zero-byte first-frame packets in Theora. p=tterribe@vt.edu, r=chris.double
content/media/test/Makefile.in
content/media/test/bug504613.ogv
content/media/test/manifest.js
media/libtheora/README_MOZILLA
media/libtheora/bug504613.patch
media/libtheora/lib/dec/decode.c
media/libtheora/update.sh
--- a/content/media/test/Makefile.in
+++ b/content/media/test/Makefile.in
@@ -120,16 +120,17 @@ endif
 		bug482461.ogv \
 		bug498855-1.ogv \
 		bug498855-2.ogv \
 		bug498855-3.ogv \
 		bug499519.ogv \
 		bug500311.ogv \
 		bug500311.ogv^headers^ \
 		bug501279.ogg \
+		bug504613.ogv \
 		bug504644.ogv \
 		bug506094.ogv \
 		seek.ogv \
 		short-video.ogv \
 		small-shot.ogg \
 		sound.ogg \
 		$(NULL)
 		
new file mode 100644
index 0000000000000000000000000000000000000000..5c7fd015e9ed37923a642ca14d7fe7cbeea860ca
GIT binary patch
literal 35000
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
E09E?p1ONa4
--- a/content/media/test/manifest.js
+++ b/content/media/test/manifest.js
@@ -29,16 +29,18 @@ var gPlayTests = [
   // oggz-chop stream
   { name:"bug482461.ogv", type:"video/ogg", duration:4.24 },
   // With first frame a "duplicate" (empty) frame.
   { name:"bug500311.ogv", type:"video/ogg", duration:1.96 },
   // Small audio file
   { name:"small-shot.ogg", type:"video/ogg" },
   // More audio in file than video.
   { name:"short-video.ogv", type:"video/ogg", duration:1.081 },
+  // First Theora data packet is zero bytes.
+  { name:"bug504613.ogv", type:"video/ogg" },
 
   { name:"bogus.duh", type:"bogus/duh" }
 ];
 
 // These are files that should refuse to play and report an error,
 // without crashing of course.
 // Put files of the same type together in this list so if something crashes
 // we have some idea of which backend is responsible.
--- a/media/libtheora/README_MOZILLA
+++ b/media/libtheora/README_MOZILLA
@@ -10,8 +10,9 @@ Bug 455357 - WinCE LibTheora Pre-defined
   Mozilla WinCE Shunt Library currently includes windows.h header file,
   which causes a conflict with local variables in the oc_dering_block()
   function.  This issue should be cleared up soon, with a reworking of 
   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.
 bug498824.patch: Fix for this bug from libtheora thusnelda branch.
+bug504613.patch: Fix for this bug from libtheora svn r16557.
new file mode 100644
--- /dev/null
+++ b/media/libtheora/bug504613.patch
@@ -0,0 +1,119 @@
+# HG changeset patch
+# User Matthew Gregan <kinetik@flim.org>
+# Date 1252993590 -43200
+# Node ID 2fce745981185aecebad0366b4c2ff45e9f93e95
+# Parent  8dbe8de92cb46f64f8ff80d79f38961eb02e9cbd
+imported patch bug504613
+
+diff --git a/media/libtheora/lib/dec/decode.c b/media/libtheora/lib/dec/decode.c
+--- a/media/libtheora/lib/dec/decode.c
++++ b/media/libtheora/lib/dec/decode.c
+@@ -1846,16 +1846,40 @@ int th_decode_ctl(th_dec_ctx *_dec,int _
+       _dec->stripe_cb.ctx=cb->ctx;
+       _dec->stripe_cb.stripe_decoded=cb->stripe_decoded;
+       return 0;
+     }break;
+     default:return TH_EIMPL;
+   }
+ }
+ 
++/*We're decoding an INTER frame, but have no initialized reference
++   buffers (i.e., decoding did not start on a key frame).
++  We initialize them to a solid gray here.*/
++static void oc_dec_init_dummy_frame(th_dec_ctx *_dec){
++  th_info *info;
++  size_t   yplane_sz;
++  size_t   cplane_sz;
++  int      yhstride;
++  int      yvstride;
++  int      chstride;
++  int      cvstride;
++  _dec->state.ref_frame_idx[OC_FRAME_GOLD]=0;
++  _dec->state.ref_frame_idx[OC_FRAME_PREV]=0;
++  _dec->state.ref_frame_idx[OC_FRAME_SELF]=1;
++  info=&_dec->state.info;
++  yhstride=info->frame_width+2*OC_UMV_PADDING;
++  yvstride=info->frame_height+2*OC_UMV_PADDING;
++  chstride=yhstride>>!(info->pixel_fmt&1);
++  cvstride=yvstride>>!(info->pixel_fmt&2);
++  yplane_sz=(size_t)yhstride*yvstride;
++  cplane_sz=(size_t)chstride*cvstride;
++  memset(_dec->state.ref_frame_data,0x80,yplane_sz+2*cplane_sz);
++}
++
+ int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op,
+  ogg_int64_t *_granpos){
+   int ret;
+   if(_dec==NULL||_op==NULL)return TH_EFAULT;
+   /*A completely empty packet indicates a dropped frame and is treated exactly
+      like an inter frame with no coded blocks.
+     Only proceed if we have a non-empty packet.*/
+   if(_op->bytes!=0){
+@@ -1869,37 +1893,19 @@ int th_decode_packetin(th_dec_ctx *_dec,
+     theorapackB_readinit(&_dec->opb,_op->packet,_op->bytes);
+     ret=oc_dec_frame_header_unpack(_dec);
+     if(ret<0)return ret;
+     /*Select a free buffer to use for the reconstructed version of this
+        frame.*/
+     if(_dec->state.frame_type!=OC_INTRA_FRAME&&
+      (_dec->state.ref_frame_idx[OC_FRAME_GOLD]<0||
+      _dec->state.ref_frame_idx[OC_FRAME_PREV]<0)){
+-      th_info *info;
+-      size_t       yplane_sz;
+-      size_t       cplane_sz;
+-      int          yhstride;
+-      int          yvstride;
+-      int          chstride;
+-      int          cvstride;
+-      /*We're decoding an INTER frame, but have no initialized reference
+-         buffers (i.e., decoding did not start on a key frame).
+-        We initialize them to a solid gray here.*/
+-      _dec->state.ref_frame_idx[OC_FRAME_GOLD]=0;
+-      _dec->state.ref_frame_idx[OC_FRAME_PREV]=0;
+-      _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi=1;
+-      info=&_dec->state.info;
+-      yhstride=info->frame_width+2*OC_UMV_PADDING;
+-      yvstride=info->frame_height+2*OC_UMV_PADDING;
+-      chstride=yhstride>>!(info->pixel_fmt&1);
+-      cvstride=yvstride>>!(info->pixel_fmt&2);
+-      yplane_sz=(size_t)yhstride*yvstride;
+-      cplane_sz=(size_t)chstride*cvstride;
+-      memset(_dec->state.ref_frame_data,0x80,yplane_sz+2*cplane_sz);
++      /*No reference frames yet!*/
++      oc_dec_init_dummy_frame(_dec);
++      refi=_dec->state.ref_frame_idx[OC_FRAME_SELF];
+     }
+     else{
+       for(refi=0;refi==_dec->state.ref_frame_idx[OC_FRAME_GOLD]||
+        refi==_dec->state.ref_frame_idx[OC_FRAME_PREV];refi++);
+       _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi;
+     }
+     if(_dec->state.frame_type==OC_INTRA_FRAME){
+       oc_dec_mark_all_intra(_dec);
+@@ -2036,16 +2042,26 @@ int th_decode_packetin(th_dec_ctx *_dec,
+     }
+ #if defined(OC_DUMP_IMAGES)
+     /*Don't dump images for dropped frames.*/
+     oc_state_dump_frame(&_dec->state,OC_FRAME_SELF,"dec");
+ #endif
+     return 0;
+   }
+   else{
++    if(_dec->state.ref_frame_idx[OC_FRAME_GOLD]<0||
++     _dec->state.ref_frame_idx[OC_FRAME_PREV]<0){
++      int refi;
++      /*No reference frames yet!*/
++      oc_dec_init_dummy_frame(_dec);
++      refi=_dec->state.ref_frame_idx[OC_FRAME_PREV];
++      _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi;
++      memcpy(_dec->pp_frame_buf,_dec->state.ref_frame_bufs[refi],
++       sizeof(_dec->pp_frame_buf[0])*3);
++    }
+     /*Just update the granule position and return.*/
+     _dec->state.granpos=
+      (_dec->state.keyframe_num<<_dec->state.info.keyframe_granule_shift)+
+      (_dec->state.curframe_num-_dec->state.keyframe_num);
+     _dec->state.curframe_num++;
+     if(_granpos!=NULL)*_granpos=_dec->state.granpos;
+     return TH_DUPFRAME;
+   }
--- a/media/libtheora/lib/dec/decode.c
+++ b/media/libtheora/lib/dec/decode.c
@@ -1846,16 +1846,40 @@ int th_decode_ctl(th_dec_ctx *_dec,int _
       _dec->stripe_cb.ctx=cb->ctx;
       _dec->stripe_cb.stripe_decoded=cb->stripe_decoded;
       return 0;
     }break;
     default:return TH_EIMPL;
   }
 }
 
+/*We're decoding an INTER frame, but have no initialized reference
+   buffers (i.e., decoding did not start on a key frame).
+  We initialize them to a solid gray here.*/
+static void oc_dec_init_dummy_frame(th_dec_ctx *_dec){
+  th_info *info;
+  size_t   yplane_sz;
+  size_t   cplane_sz;
+  int      yhstride;
+  int      yvstride;
+  int      chstride;
+  int      cvstride;
+  _dec->state.ref_frame_idx[OC_FRAME_GOLD]=0;
+  _dec->state.ref_frame_idx[OC_FRAME_PREV]=0;
+  _dec->state.ref_frame_idx[OC_FRAME_SELF]=1;
+  info=&_dec->state.info;
+  yhstride=info->frame_width+2*OC_UMV_PADDING;
+  yvstride=info->frame_height+2*OC_UMV_PADDING;
+  chstride=yhstride>>!(info->pixel_fmt&1);
+  cvstride=yvstride>>!(info->pixel_fmt&2);
+  yplane_sz=(size_t)yhstride*yvstride;
+  cplane_sz=(size_t)chstride*cvstride;
+  memset(_dec->state.ref_frame_data,0x80,yplane_sz+2*cplane_sz);
+}
+
 int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op,
  ogg_int64_t *_granpos){
   int ret;
   if(_dec==NULL||_op==NULL)return TH_EFAULT;
   /*A completely empty packet indicates a dropped frame and is treated exactly
      like an inter frame with no coded blocks.
     Only proceed if we have a non-empty packet.*/
   if(_op->bytes!=0){
@@ -1869,37 +1893,19 @@ int th_decode_packetin(th_dec_ctx *_dec,
     theorapackB_readinit(&_dec->opb,_op->packet,_op->bytes);
     ret=oc_dec_frame_header_unpack(_dec);
     if(ret<0)return ret;
     /*Select a free buffer to use for the reconstructed version of this
        frame.*/
     if(_dec->state.frame_type!=OC_INTRA_FRAME&&
      (_dec->state.ref_frame_idx[OC_FRAME_GOLD]<0||
      _dec->state.ref_frame_idx[OC_FRAME_PREV]<0)){
-      th_info *info;
-      size_t       yplane_sz;
-      size_t       cplane_sz;
-      int          yhstride;
-      int          yvstride;
-      int          chstride;
-      int          cvstride;
-      /*We're decoding an INTER frame, but have no initialized reference
-         buffers (i.e., decoding did not start on a key frame).
-        We initialize them to a solid gray here.*/
-      _dec->state.ref_frame_idx[OC_FRAME_GOLD]=0;
-      _dec->state.ref_frame_idx[OC_FRAME_PREV]=0;
-      _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi=1;
-      info=&_dec->state.info;
-      yhstride=info->frame_width+2*OC_UMV_PADDING;
-      yvstride=info->frame_height+2*OC_UMV_PADDING;
-      chstride=yhstride>>!(info->pixel_fmt&1);
-      cvstride=yvstride>>!(info->pixel_fmt&2);
-      yplane_sz=(size_t)yhstride*yvstride;
-      cplane_sz=(size_t)chstride*cvstride;
-      memset(_dec->state.ref_frame_data,0x80,yplane_sz+2*cplane_sz);
+      /*No reference frames yet!*/
+      oc_dec_init_dummy_frame(_dec);
+      refi=_dec->state.ref_frame_idx[OC_FRAME_SELF];
     }
     else{
       for(refi=0;refi==_dec->state.ref_frame_idx[OC_FRAME_GOLD]||
        refi==_dec->state.ref_frame_idx[OC_FRAME_PREV];refi++);
       _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi;
     }
     if(_dec->state.frame_type==OC_INTRA_FRAME){
       oc_dec_mark_all_intra(_dec);
@@ -2036,16 +2042,26 @@ int th_decode_packetin(th_dec_ctx *_dec,
     }
 #if defined(OC_DUMP_IMAGES)
     /*Don't dump images for dropped frames.*/
     oc_state_dump_frame(&_dec->state,OC_FRAME_SELF,"dec");
 #endif
     return 0;
   }
   else{
+    if(_dec->state.ref_frame_idx[OC_FRAME_GOLD]<0||
+     _dec->state.ref_frame_idx[OC_FRAME_PREV]<0){
+      int refi;
+      /*No reference frames yet!*/
+      oc_dec_init_dummy_frame(_dec);
+      refi=_dec->state.ref_frame_idx[OC_FRAME_PREV];
+      _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi;
+      memcpy(_dec->pp_frame_buf,_dec->state.ref_frame_bufs[refi],
+       sizeof(_dec->pp_frame_buf[0])*3);
+    }
     /*Just update the granule position and return.*/
     _dec->state.granpos=
      (_dec->state.keyframe_num<<_dec->state.info.keyframe_granule_shift)+
      (_dec->state.curframe_num-_dec->state.keyframe_num);
     _dec->state.curframe_num++;
     if(_granpos!=NULL)*_granpos=_dec->state.granpos;
     return TH_DUPFRAME;
   }
--- a/media/libtheora/update.sh
+++ b/media/libtheora/update.sh
@@ -51,8 +51,9 @@ cp $1/lib/dec/dequant.h ./lib/dec/dequan
 cp $1/lib/internal.h ./lib/internal.h
 cp $1/include/theora/theora.h ./include/theora/theora.h
 cp $1/include/theora/theoradec.h ./include/theora/theoradec.h
 cp $1/include/theora/codec.h ./include/theora/codec.h
 patch -p3 <455357_wince_local_variable_macro_clash_patch
 patch -p3 <bug498815.patch
 patch -p3 <bug498824.patch
 patch -p0 <bug498770.patch
+patch -p3 <bug504613.patch