Browse Source

opus_rc: add macros for checkpoint rollback

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
tags/n3.4
Rostislav Pehlivanov 9 years ago
parent
commit
a66121d964
1 changed files with 14 additions and 0 deletions
  1. +14
    -0
      libavcodec/opus_rc.h

+ 14
- 0
libavcodec/opus_rc.h View File

@@ -109,4 +109,18 @@ void ff_opus_rc_dec_raw_init(OpusRangeCoder *rc, const uint8_t *rightend, ui
void ff_opus_rc_enc_end(OpusRangeCoder *rc, uint8_t *dst, int size);
void ff_opus_rc_enc_init(OpusRangeCoder *rc);

#define OPUS_RC_CHECKPOINT_UPDATE(rc) \
rc_rollback_bits = opus_rc_tell_frac(rc); \
rc_rollback_ctx = *rc

#define OPUS_RC_CHECKPOINT_SPAWN(rc) \
uint32_t rc_rollback_bits = opus_rc_tell_frac(rc); \
OpusRangeCoder rc_rollback_ctx = *rc \

#define OPUS_RC_CHECKPOINT_BITS(rc) \
(opus_rc_tell_frac(rc) - rc_rollback_bits)

#define OPUS_RC_CHECKPOINT_ROLLBACK(rc) \
memcpy(rc, &rc_rollback_ctx, sizeof(OpusRangeCoder)); \

#endif /* AVCODEC_OPUS_RC_H */

Loading…
Cancel
Save