* G. N. N. Martin Presented in March 1979 to the Video &
* Data Recording Conference,
* IBM UK Scientific Center held in Southampton July 24-27 1979."
- *
*/
#include <string.h>
+#include "libavutil/attributes.h"
+#include "libavutil/intreadwrite.h"
+
#include "avcodec.h"
#include "rangecoder.h"
-#include "bytestream.h"
-void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size)
+av_cold void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size)
{
c->bytestream_start =
c->bytestream = buf;
c->outstanding_byte = -1;
}
-void ff_init_range_decoder(RangeCoder *c, const uint8_t *buf, int buf_size)
+av_cold void ff_init_range_decoder(RangeCoder *c, const uint8_t *buf,
+ int buf_size)
{
/* cast to avoid compiler warning */
ff_init_range_encoder(c, (uint8_t *)buf, buf_size);
- c->low = bytestream_get_be16(&c->bytestream);
+ c->low = AV_RB16(c->bytestream);
+ c->bytestream += 2;
}
void ff_build_rac_states(RangeCoder *c, int factor, int max_p)
for (i = 0; i < SIZE; i++)
r[i] = av_lfg_get(&prng) % 7;
- for (i = 0; i < SIZE; i++) {
-START_TIMER
+ for (i = 0; i < SIZE; i++)
put_rac(&c, state, r[i] & 1);
-STOP_TIMER("put_rac")
- }
ff_rac_terminate(&c);
memset(state, 128, sizeof(state));
- for (i = 0; i < SIZE; i++) {
-START_TIMER
- if ((r[i] & 1) != get_rac(&c, state))
+ for (i = 0; i < SIZE; i++)
+ if ((r[i] & 1) != get_rac(&c, state)) {
av_log(NULL, AV_LOG_ERROR, "rac failure at %d\n", i);
-STOP_TIMER("get_rac")
- }
+ return 1;
+ }
return 0;
}