Browse Source

Use of new bitstream in vorbis_enc.c.

Patch by Bartłomiej Wołowiec b wolowiec AT students mimuw edu pl

Originally committed as revision 15622 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Bartłomiej Wołowiec Benoit Fouet 16 years ago
parent
commit
757d91a6e6
1 changed files with 3 additions and 46 deletions
  1. +3
    -46
      libavcodec/vorbis_enc.c

+ 3
- 46
libavcodec/vorbis_enc.c View File

@@ -30,6 +30,9 @@
#include "vorbis.h"
#include "vorbis_enc_data.h"

#define BITSTREAM_WRITER_LE
#include "bitstream.h"

#undef NDEBUG
#include <assert.h>

@@ -122,52 +125,6 @@ typedef struct {
int64_t sample_count;
} venc_context_t;

typedef struct {
int total;
int total_pos;
int pos;
uint8_t * buf_ptr;
} PutBitContext;

static inline void init_put_bits(PutBitContext * pb, uint8_t * buf, int buffer_len) {
pb->total = buffer_len * 8;
pb->total_pos = 0;
pb->pos = 0;
pb->buf_ptr = buf;
}

static void put_bits(PutBitContext * pb, int bits, uint64_t val) {
if ((pb->total_pos += bits) >= pb->total) return;
if (!bits) return;
if (pb->pos) {
if (pb->pos > bits) {
*pb->buf_ptr |= val << (8 - pb->pos);
pb->pos -= bits;
bits = 0;
} else {
*pb->buf_ptr++ |= (val << (8 - pb->pos)) & 0xFF;
val >>= pb->pos;
bits -= pb->pos;
pb->pos = 0;
}
}
for (; bits >= 8; bits -= 8) {
*pb->buf_ptr++ = val & 0xFF;
val >>= 8;
}
if (bits) {
*pb->buf_ptr = val;
pb->pos = 8 - bits;
}
}

static inline void flush_put_bits(PutBitContext * pb) {
}

static inline int put_bits_count(PutBitContext * pb) {
return pb->total_pos;
}

static inline void put_codeword(PutBitContext * pb, codebook_t * cb, int entry) {
assert(entry >= 0);
assert(entry < cb->nentries);


Loading…
Cancel
Save