[svn] / trunk / xvidcore / src / bitstream / bitstream.h Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/bitstream/bitstream.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1699, Fri Apr 14 07:24:47 2006 UTC revision 2177, Sun Nov 3 11:50:49 2019 UTC
# Line 19  Line 19 
19   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
20   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21   *   *
22   * $Id: bitstream.h,v 1.23 2006-04-14 07:24:47 Skal Exp $   * $Id$
23   *   *
24   ****************************************************************************/   ****************************************************************************/
25    
# Line 137  Line 137 
137    
138  void BitstreamWriteVolHeader(Bitstream * const bs,  void BitstreamWriteVolHeader(Bitstream * const bs,
139                                                           const MBParam * pParam,                                                           const MBParam * pParam,
140                                                           const FRAMEINFO * const frame);                                                           const FRAMEINFO * const frame,
141                                                             const int num_slices);
142    
143  void BitstreamWriteVopHeader(Bitstream * const bs,  void BitstreamWriteVopHeader(Bitstream * const bs,
144                                                           const MBParam * pParam,                                                           const MBParam * pParam,
# Line 162  Line 163 
163                                 const FRAMEINFO * const frame,                                 const FRAMEINFO * const frame,
164                                 int mbnum);                                 int mbnum);
165    
166    /*****************************************************************************
167     * Bitstream
168     ****************************************************************************/
169    
170    /* Input buffer should be readable as full chunks of 8bytes, including
171    the end of the buffer. Padding might be appropriate. If only chunks
172    of 4bytes are applicable, define XVID_SAFE_BS_TAIL. Note that this will
173    slow decoding, so consider this as a last-resort solution */
174    #ifndef XVID_HAVE_PADDED_BS_BUFFER
175    #define XVID_SAFE_BS_TAIL
176    #endif
177    
178  /* initialise bitstream structure */  /* initialise bitstream structure */
179    
180  static void __inline  static void __inline
# Line 193  Line 206 
206  #endif  #endif
207          bs->bufb = tmp;          bs->bufb = tmp;
208    
209          bs->pos = bs->initpos = bitpos*8;          bs->pos = bs->initpos = (uint32_t) bitpos*8;
210          /* preserve the intervening bytes */          /* preserve the intervening bytes */
211          if (bs->initpos > 0)          if (bs->initpos > 0)
212                  bs->buf = bs->bufa & (0xffffffff << (32 - bs->initpos));                  bs->buf = bs->bufa & (0xffffffff << (32 - bs->initpos));
# Line 263  Line 276 
276                  uint32_t tmp;                  uint32_t tmp;
277    
278                  bs->bufa = bs->bufb;                  bs->bufa = bs->bufb;
279    #if defined(XVID_SAFE_BS_TAIL)
280                    if (bs->tail<(bs->start+((bs->length+3)>>2)))
281    #endif
282                    {
283                  tmp = *((uint32_t *) bs->tail + 2);                  tmp = *((uint32_t *) bs->tail + 2);
284  #ifndef ARCH_IS_BIG_ENDIAN  #ifndef ARCH_IS_BIG_ENDIAN
285                  BSWAP(tmp);                  BSWAP(tmp);
286  #endif  #endif
287                  bs->bufb = tmp;                  bs->bufb = tmp;
288                  bs->tail++;                  bs->tail++;
289                    }
290    #if defined(XVID_SAFE_BS_TAIL)
291                    else {
292                            bs->bufb = 0;
293                    }
294    #endif
295                  bs->pos -= 32;                  bs->pos -= 32;
296          }          }
297  }  }

Legend:
Removed from v.1699  
changed lines
  Added in v.2177

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4