Replace time-windowed bitrate management setup with a one-pass
[platform/upstream/libvorbis.git] / lib / floor1.c
index 28c0f80..8f7c195 100644 (file)
@@ -11,7 +11,7 @@
  ********************************************************************
 
  function: floor backend 1 implementation
- last mod: $Id: floor1.c,v 1.26 2003/02/15 07:10:07 xiphmont Exp $
+ last mod: $Id: floor1.c,v 1.27 2003/12/30 11:02:22 xiphmont Exp $
 
  ********************************************************************/
 
@@ -757,7 +757,8 @@ int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look,
 }
 
 
-int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look,
+int floor1_encode(oggpack_buffer *opb,vorbis_block *vb,
+                 vorbis_look_floor1 *look,
                  int *post,int *ilogmask){
 
   long i,j;
@@ -840,13 +841,13 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look,
     
     /* we have everything we need. pack it out */
     /* mark nontrivial floor */
-    oggpack_write(&vb->opb,1,1);
+    oggpack_write(opb,1,1);
       
     /* beginning/end post */
     look->frames++;
     look->postbits+=ilog(look->quant_q-1)*2;
-    oggpack_write(&vb->opb,out[0],ilog(look->quant_q-1));
-    oggpack_write(&vb->opb,out[1],ilog(look->quant_q-1));
+    oggpack_write(opb,out[0],ilog(look->quant_q-1));
+    oggpack_write(opb,out[1],ilog(look->quant_q-1));
       
       
     /* partition by partition */
@@ -884,7 +885,7 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look,
        }
        /* write it */
        look->phrasebits+=
-         vorbis_book_encode(books+info->class_book[class],cval,&vb->opb);
+         vorbis_book_encode(books+info->class_book[class],cval,opb);
        
 #ifdef TRAIN_FLOOR1
        {
@@ -906,7 +907,7 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look,
          /* hack to allow training with 'bad' books */
          if(out[j+k]<(books+book)->entries)
            look->postbits+=vorbis_book_encode(books+book,
-                                              out[j+k],&vb->opb);
+                                              out[j+k],opb);
          /*else
            fprintf(stderr,"+!");*/
          
@@ -951,7 +952,7 @@ int floor1_encode(vorbis_block *vb,vorbis_look_floor1 *look,
       return(1);
     }
   }else{
-    oggpack_write(&vb->opb,0,1);
+    oggpack_write(opb,0,1);
     memset(ilogmask,0,vb->pcmend/2*sizeof(*ilogmask));
     seq++;
     return(0);