FFmpeg
Functions
rangecoder.c File Reference

Range coder. More...

#include <string.h>
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "rangecoder.h"

Go to the source code of this file.

Functions

av_cold void ff_init_range_encoder (RangeCoder *c, uint8_t *buf, int buf_size)
 
av_cold void ff_init_range_decoder (RangeCoder *c, const uint8_t *buf, int buf_size)
 
void ff_build_rac_states (RangeCoder *c, int factor, int max_p)
 
int ff_rac_terminate (RangeCoder *c, int version)
 Terminates the range coder. More...
 
int ff_rac_check_termination (RangeCoder *c, int version)
 Check if at the current position there is a valid looking termination. More...
 

Detailed Description

Range coder.

based upon "Range encoding: an algorithm for removing redundancy from a digitised message. 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."

Definition in file rangecoder.c.

Function Documentation

av_cold void ff_init_range_encoder ( RangeCoder c,
uint8_t buf,
int  buf_size 
)
av_cold void ff_init_range_decoder ( RangeCoder c,
const uint8_t buf,
int  buf_size 
)

Definition at line 53 of file rangecoder.c.

Referenced by decode_frame(), main(), predictor_calc_error(), and read_extra_header().

void ff_build_rac_states ( RangeCoder c,
int  factor,
int  max_p 
)
int ff_rac_terminate ( RangeCoder c,
int  version 
)

Terminates the range coder.

Parameters
versionversion 0 requires the decoder to know the data size in bytes version 1 needs about 1 bit more space but does not need to carry the size from encoder to decoder

Definition at line 109 of file rangecoder.c.

Referenced by encode_frame(), encode_slice(), main(), predictor_calc_error(), and write_extradata().

int ff_rac_check_termination ( RangeCoder c,
int  version 
)

Check if at the current position there is a valid looking termination.

Parameters
versionversion 0 requires the decoder to know the data size in bytes version 1 needs about 1 bit more space but does not need to carry the size from encoder to decoder
Returns
negative AVERROR code on error or non negative.

Definition at line 125 of file rangecoder.c.

Referenced by main().