sonic.c File Reference

Simple free lossless/lossy audio codec Based on Paul Francis Harrison's Bonk (http://www.logarithmic.net/pfh/bonk) Written and designed by Alex Beregszaszi. More...

#include "avcodec.h"
#include "get_bits.h"
#include "golomb.h"
#include "internal.h"
Include dependency graph for sonic.c:

Go to the source code of this file.

Data Structures

struct  SonicContext
 

Macros

#define MAX_CHANNELS   2
 
#define MID_SIDE   0
 
#define LEFT_SIDE   1
 
#define RIGHT_SIDE   2
 
#define LATTICE_SHIFT   10
 
#define SAMPLE_SHIFT   4
 
#define LATTICE_FACTOR   (1 << LATTICE_SHIFT)
 
#define SAMPLE_FACTOR   (1 << SAMPLE_SHIFT)
 
#define BASE_QUANT   0.6
 
#define RATE_VARIATION   3.0
 

Typedefs

typedef struct SonicContext SonicContext
 

Functions

static int divide (int a, int b)
 
static int shift (int a, int b)
 
static int shift_down (int a, int b)
 
static int intlist_write (PutBitContext *pb, int *buf, int entries, int base_2_part)
 
static int intlist_read (GetBitContext *gb, int *buf, int entries, int base_2_part)
 
static void predictor_init_state (int *k, int *state, int order)
 
static int predictor_calc_error (int *k, int *state, int order, int error)
 

Detailed Description

Simple free lossless/lossy audio codec Based on Paul Francis Harrison's Bonk (http://www.logarithmic.net/pfh/bonk) Written and designed by Alex Beregszaszi.

TODO:

  • CABAC put/get_symbol
  • independent quantizer for channels
  • >2 channels support
  • more decorrelation types
  • more tap_quant tests
  • selectable intlist writers/readers (bonk-style, golomb, cabac)

Definition in file sonic.c.

Macro Definition Documentation

#define BASE_QUANT   0.6

Definition at line 75 of file sonic.c.

Referenced by predictor_calc_error().

#define LATTICE_FACTOR   (1 << LATTICE_SHIFT)

Definition at line 72 of file sonic.c.

Referenced by predictor_calc_error().

#define LATTICE_SHIFT   10

Definition at line 70 of file sonic.c.

Referenced by predictor_calc_error(), and predictor_init_state().

#define LEFT_SIDE   1

Definition at line 44 of file sonic.c.

Referenced by predictor_calc_error().

#define MAX_CHANNELS   2

Definition at line 41 of file sonic.c.

Referenced by predictor_calc_error().

#define MID_SIDE   0

Definition at line 43 of file sonic.c.

Referenced by predictor_calc_error().

#define RATE_VARIATION   3.0

Definition at line 76 of file sonic.c.

Referenced by predictor_calc_error().

#define RIGHT_SIDE   2

Definition at line 45 of file sonic.c.

Referenced by predictor_calc_error().

#define SAMPLE_FACTOR   (1 << SAMPLE_SHIFT)

Definition at line 73 of file sonic.c.

Referenced by predictor_calc_error().

#define SAMPLE_SHIFT   4

Definition at line 71 of file sonic.c.

Referenced by predictor_calc_error().

Typedef Documentation

typedef struct SonicContext SonicContext

Function Documentation

static int divide ( int  a,
int  b 
)
inlinestatic

Definition at line 78 of file sonic.c.

Referenced by predictor_calc_error().

static int intlist_read ( GetBitContext gb,
int *  buf,
int  entries,
int  base_2_part 
)
inlinestatic

Definition at line 107 of file sonic.c.

Referenced by predictor_calc_error().

static int intlist_write ( PutBitContext pb,
int *  buf,
int  entries,
int  base_2_part 
)
inlinestatic

Definition at line 97 of file sonic.c.

Referenced by intlist_read(), and predictor_calc_error().

static int predictor_calc_error ( int *  k,
int *  state,
int  order,
int  error 
)
static

Definition at line 382 of file sonic.c.

static void predictor_init_state ( int *  k,
int *  state,
int  order 
)
static

Definition at line 365 of file sonic.c.

Referenced by predictor_calc_error().

static int shift ( int  a,
int  b 
)
inlinestatic

Definition at line 86 of file sonic.c.

Referenced by ac3_lshift_int16_c(), ac3_rshift_int32_c(), adpcm_decode_frame(), adpcm_ima_expand_nibble(), adpcm_sbpro_expand_nibble(), av_image_copy_to_buffer(), av_read_image_line(), av_write_image_line(), bfi_decode_frame(), bidir_refine(), blend_pixel(), calc_predictor_params(), copy_samples(), DECLARE_ALIGNED(), decode_bmv_frame(), decode_frame(), decode_init_static(), direct_search(), dpcm_decode_frame(), dv_audio_12to16(), encode_frame(), encode_q_branch(), encode_residual_ch(), epzs_motion_search2(), epzs_motion_search4(), epzs_motion_search_internal(), estimate_sid_gain(), exponents_from_scale_factors(), ff_celp_lp_synthesis_filter(), ff_convert_matrix(), ff_draw_round_to_sub(), ff_estimate_motion_b(), ff_estimate_p_frame_motion(), ff_gmc_c(), ff_h263_decode_motion(), ff_ivi_inverse_haar_8x8(), ff_jpegls_decode_picture(), ff_nelly_get_sample_bits(), ff_png_pass_row_size(), ff_pre_estimate_p_frame_motion(), ff_print_debug_info2(), ff_vc1_parse_frame_header(), ff_vc1_parse_frame_header_adv(), filter_3800(), flac_decorrelate_indep_c(), flac_decorrelate_ls_c(), flac_decorrelate_ms_c(), flac_decorrelate_rs_c(), flac_lpc_encode_c(), generate_noise(), get_amv(), get_bucket(), get_value_cached(), h263_mv4_search(), init_dequant4_coeff_table(), init_dequant8_coeff_table(), init_sample_buffers(), initFilter(), l1_unscale(), l2_unscale_group(), lag_get_rac(), line_noise_c(), line_noise_mmx(), line_noise_mmxext(), linear_scale_factor(), long_filter_high_3800(), long_term_filter(), lpc_encode_unrolled(), main(), mpeg_decode_motion(), msmpeg4v2_decode_motion(), noise(), permutate_in_line(), picmemset(), planarCopyWrapper(), predictor_calc_error(), predictor_decode_mono_3800(), predictor_decode_stereo_3800(), prefetch_motion(), print_stats(), ra144_encode_frame(), radix_sort_pass(), range_decode_culshift(), renorm(), renorm_cabac_decoder_once(), sab_diamond_search(), set_sample_rate_params(), sign_extend(), signed_shift(), snow_horizontal_compose_lift_lead_out(), softfloat_reciprocal(), sws_getShiftedVec(), update_initial_timestamps(), vp56_rac_renorm(), write_element(), write_fat_sector(), wv_get_value_float(), xa_decode(), yuv2plane1_10_c_template(), yuv2plane1_16_c_template(), yuv2planeX_10_c_template(), and yuv2planeX_16_c_template().

static int shift_down ( int  a,
int  b 
)
inlinestatic

Definition at line 91 of file sonic.c.

Referenced by predictor_calc_error(), and predictor_init_state().