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