Exemple #1
0
void
WriteMainDataBits( unsigned long int val,
                   unsigned int nbits,
                   BF_FrameResults *results )
{
/*    assert( nbits <= 32 );*/
    if ( BitCount == ThisFrameSize )
    {
        BitCount = write_side_info();
        BitsRemaining = ThisFrameSize - BitCount;
    }
    if ( nbits == 0 )
        return;
    if ( nbits > BitsRemaining )
    {
        unsigned extra = val >> (nbits - BitsRemaining);
        nbits -= BitsRemaining;
        (*PutBits)( extra, BitsRemaining, user_config );
        BitCount = write_side_info();
        BitsRemaining = ThisFrameSize - BitCount;
        (*PutBits)( val, nbits, user_config );
    }
Exemple #2
0
static void WriteMainDataBits(unsigned long int val,
                              unsigned int nbits,
                              shine_global_config *config)
{
  unsigned int extra;

  /* assert( nbits <= 32 ); */
  if (config->formatbits.BitCount == config->mpeg.bits_per_frame)
    {
      config->formatbits.BitCount      = write_side_info(config);
      config->formatbits.BitsRemaining = config->mpeg.bits_per_frame - config->formatbits.BitCount;
    }
  if (nbits == 0) return;
  if (nbits > config->formatbits.BitsRemaining)
    {
      extra  = val >> (nbits - config->formatbits.BitsRemaining);
      nbits -= config->formatbits.BitsRemaining;
      shine_putbits( &config->bs, extra, config->formatbits.BitsRemaining);
      config->formatbits.BitCount = write_side_info(config);
      config->formatbits.BitsRemaining = config->mpeg.bits_per_frame - config->formatbits.BitCount;
      shine_putbits( &config->bs, val, nbits);
    }