FFmpeg
Data Structures | Macros | Functions
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 "rangecoder.h"

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
 
#define put_rac(C, S, B)
 

Functions

static int shift (int a, int b)
 
static int shift_down (int a, int b)
 
static av_always_inline av_flatten void put_symbol (RangeCoder *c, uint8_t *state, int v, int is_signed, uint64_t rc_stat[256][2], uint64_t rc_stat2[32][2])
 
static av_flatten int get_symbol (RangeCoder *c, uint8_t *state, int is_signed)
 
static int intlist_write (RangeCoder *c, uint8_t *state, int *buf, int entries, int base_2_part)
 
static int intlist_read (RangeCoder *c, uint8_t *state, 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:

Definition in file sonic.c.

Macro Definition Documentation

#define MAX_CHANNELS   2

Definition at line 43 of file sonic.c.

Referenced by predictor_calc_error().

#define MID_SIDE   0

Definition at line 45 of file sonic.c.

Referenced by predictor_calc_error().

#define LEFT_SIDE   1

Definition at line 46 of file sonic.c.

Referenced by predictor_calc_error().

#define RIGHT_SIDE   2

Definition at line 47 of file sonic.c.

Referenced by predictor_calc_error().

#define LATTICE_SHIFT   10

Definition at line 74 of file sonic.c.

Referenced by predictor_calc_error(), and predictor_init_state().

#define SAMPLE_SHIFT   4

Definition at line 75 of file sonic.c.

Referenced by predictor_calc_error().

#define LATTICE_FACTOR   (1 << LATTICE_SHIFT)

Definition at line 76 of file sonic.c.

Referenced by predictor_calc_error().

#define SAMPLE_FACTOR   (1 << SAMPLE_SHIFT)

Definition at line 77 of file sonic.c.

Referenced by predictor_calc_error().

#define BASE_QUANT   0.6

Definition at line 79 of file sonic.c.

Referenced by predictor_calc_error().

#define RATE_VARIATION   3.0

Definition at line 80 of file sonic.c.

Referenced by predictor_calc_error().

#define put_rac (   C,
  S,
  B 
)
Value:
do{\
if(rc_stat){\
rc_stat[*(S)][B]++;\
rc_stat2[(S)-state][B]++;\
}\
}while(0)
#define S(s, c, i)
#define B
Definition: huffyuvdsp.h:32
if(ret)
s EdgeDetect Foobar g libavfilter vf_edgedetect c libavfilter vf_foobar c edit libavfilter and add an entry for foobar following the pattern of the other filters edit libavfilter allfilters and add an entry for foobar following the pattern of the other filters configure make j< whatever > ffmpeg ffmpeg i you should get a foobar png with Lena edge detected That s your new playground is ready Some little details about what s going which in turn will define variables for the build system and the C
#define put_rac(C, S, B)
static struct @316 state

Referenced by put_symbol().

Function Documentation

static int shift ( int  a,
int  b 
)
inlinestatic

Definition at line 82 of file sonic.c.

Referenced by ac3_lshift_int16_c(), ac3_rshift_int32_c(), add_vector_and_shift(), adpcm_decode_frame(), adpcm_ima_expand_nibble(), adpcm_ima_wav_expand_nibble(), adpcm_sbpro_expand_nibble(), apply_dependent_coupling_fixed(), apply_independent_coupling_fixed(), aptx_invert_quantization(), av_image_copy_to_buffer(), av_q2intfloat(), av_read_image_line2(), av_write_image_line2(), avf_read_packet(), bfi_decode_frame(), bidir_refine(), blend_pixel(), blend_pixel16(), bytestream2_get_levarint(), calc_predictor_params(), check_decorrelate(), check_decorrelate_stereo(), chs_assemble_msbs_lsbs(), chs_get_lsb_width(), code_filter_coeffs(), combine_residual_frame(), copy_block(), copy_samples(), copyadd_block(), decode_bmv_frame(), decode_frame(), decode_init_static(), decode_inter_plane(), decode_plane(), dequant(), direct_search(), dpcm_decode_frame(), dv_audio_12to16(), encode_frame(), encode_q_branch(), encode_residual_ch(), epzs_motion_search2(), epzs_motion_search_internal(), estimate_motion_b(), estimate_sid_gain(), exponents_from_scale_factors(), extend_edges(), ff_celp_lp_synthesis_filter(), ff_convert_matrix(), ff_dca_core_dequantize(), ff_dca_xll_filter_frame(), ff_draw_round_to_sub(), ff_estimate_p_frame_motion(), ff_gmc_c(), ff_h263_decode_motion(), ff_hevc_hls_residual_coding(), ff_ivi_inverse_haar_4x4(), ff_ivi_inverse_haar_8x8(), ff_jpegls_decode_lse(), ff_jpegls_decode_picture(), ff_line_noise_c(), ff_nelly_get_sample_bits(), ff_png_pass_row_size(), ff_pre_estimate_p_frame_motion(), ff_print_debug_info2(), ff_sws_alphablendaway(), ff_tta_filter_init(), fic_idct(), fill_elements(), filter_3800(), flac_decorrelate_indep_c(), flac_decorrelate_ls_c(), flac_decorrelate_ms_c(), flac_decorrelate_rs_c(), flac_lpc_encode_c(), FUNC(), generate_noise(), get_amv(), get_bucket(), get_value_cached(), h261_probe(), h263_mv4_search(), horizontal_compose_haari_TMPL(), horizontal_fill(), imdct_half_32(), imdct_half_64(), init_decoder(), init_dequant4_coeff_table(), init_dequant8_coeff_table(), init_sample_buffers(), initFilter(), interleave_TMPL(), l1_unscale(), l2_unscale_group(), linear_scale_factor(), linemask_matches(), long_filter_high_3800(), long_term_filter(), lossless_matrix_coeffs(), lpc2lsp(), lpc_encode_unrolled(), lsp_quantize(), main(), maskedmerge16(), mpeg4_decode_studio_block(), mpeg_decode_motion(), msmpeg4v2_decode_motion(), noise(), opengl_fill_color_map(), packed16togbra16(), parse_tonal(), permutate_in_line(), picmemset(), planar_rgb16_to_a(), planar_rgb16_to_uv(), planar_rgb16_to_y(), planarCopyWrapper(), planarToP01xWrapper(), postprocess_chroma(), predict(), predictor_calc_error(), predictor_decode_mono_3800(), predictor_decode_stereo_3800(), prefetch_motion(), premultiply16offset(), premultiply16yuv(), print_stats(), ps_tableinit(), put_hevc_epel_bi_h(), put_hevc_epel_bi_hv(), put_hevc_epel_bi_v(), put_hevc_epel_bi_w_h(), put_hevc_epel_bi_w_hv(), put_hevc_epel_bi_w_v(), put_hevc_epel_uni_h(), put_hevc_epel_uni_hv(), put_hevc_epel_uni_v(), put_hevc_epel_uni_w_h(), put_hevc_epel_uni_w_hv(), put_hevc_epel_uni_w_v(), put_hevc_pel_bi_pixels(), put_hevc_pel_bi_w_pixels(), put_hevc_pel_uni_w_pixels(), put_hevc_qpel_bi_h(), put_hevc_qpel_bi_hv(), put_hevc_qpel_bi_v(), put_hevc_qpel_bi_w_h(), put_hevc_qpel_bi_w_hv(), put_hevc_qpel_bi_w_v(), put_hevc_qpel_uni_h(), put_hevc_qpel_uni_hv(), put_hevc_qpel_uni_v(), put_hevc_qpel_uni_w_h(), put_hevc_qpel_uni_w_hv(), put_hevc_qpel_uni_w_v(), quantize(), ra144_encode_frame(), radix_sort_pass(), range_decode_culshift(), renorm(), renorm_cabac_decoder_once(), sab_diamond_search(), sao_band_filter(), sbc_unpack_frame(), sbr_hf_apply_noise(), sbr_hf_assemble(), sbr_hf_inverse_filter(), scale_coefs(), set_filter_params(), set_sample_rate_params(), shift_stereo(), sign_extend(), signed_shift(), snow_horizontal_compose_lift_lead_out(), soft_thresholding(), softfloat_reciprocal(), sws_getShiftedVec(), transform_4x4_luma(), tta_filter_process_c(), ttaenc_filter_process_c(), unpack_14(), update_initial_timestamps(), vc1_put_ver_16b_shift2_mmi(), vc2_encode_init(), vector_multiplication(), vector_rmultiplication(), vp56_rac_renorm(), wavpack_encode_block(), write_element(), write_fat_sector(), wv_get_value_float(), xa_decode(), yuv2p010cX_c(), yuv2p010l1_c(), yuv2p010lX_c(), yuv2p016cX_c(), yuv2plane1_16_c_template(), yuv2plane1_float(), yuv2plane1_float_bswap_c_template(), yuv2plane1_float_c_template(), yuv2planeX_10_c_template(), yuv2planeX_16_c_template(), yuv2planeX_float_bswap_c_template(), and yuv2planeX_float_c_template().

static int shift_down ( int  a,
int  b 
)
inlinestatic

Definition at line 87 of file sonic.c.

Referenced by predictor_calc_error(), and predictor_init_state().

static av_always_inline av_flatten void put_symbol ( RangeCoder c,
uint8_t state,
int  v,
int  is_signed,
uint64_t  rc_stat[256][2],
uint64_t  rc_stat2[32][2] 
)
static

Definition at line 92 of file sonic.c.

Referenced by intlist_write(), and predictor_calc_error().

static av_flatten int get_symbol ( RangeCoder c,
uint8_t state,
int  is_signed 
)
inlinestatic

Definition at line 139 of file sonic.c.

Referenced by intlist_read(), and predictor_calc_error().

static int intlist_write ( RangeCoder c,
uint8_t state,
int buf,
int  entries,
int  base_2_part 
)
inlinestatic

Definition at line 160 of file sonic.c.

Referenced by intlist_read(), and predictor_calc_error().

static int intlist_read ( RangeCoder c,
uint8_t state,
int buf,
int  entries,
int  base_2_part 
)
inlinestatic

Definition at line 170 of file sonic.c.

Referenced by predictor_calc_error().

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

Definition at line 448 of file sonic.c.

Referenced by predictor_calc_error().

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

Definition at line 465 of file sonic.c.