FFmpeg
|
#include <math.h>
#include <stddef.h>
#include <stdio.h>
#include "libavutil/channel_layout.h"
#include "libavutil/ffmath.h"
#include "libavutil/float_dsp.h"
#include "libavutil/internal.h"
#include "avcodec.h"
#include "bswapdsp.h"
#include "get_bits.h"
#include "fft.h"
#include "internal.h"
#include "sinewin.h"
#include "imcdata.h"
Go to the source code of this file.
Data Structures | |
struct | IMCChannel |
struct | IMCContext |
Macros | |
#define | IMC_BLOCK_SIZE 64 |
#define | IMC_FRAME_ID 0x21 |
#define | BANDS 32 |
#define | COEFFS 256 |
#define | VLC_TABLES_SIZE 9512 |
Functions | |
static double | freq2bark (double freq) |
static av_cold void | iac_generate_tabs (IMCContext *q, int sampling_rate) |
static av_cold int | imc_decode_init (AVCodecContext *avctx) |
static void | imc_calculate_coeffs (IMCContext *q, float *flcoeffs1, float *flcoeffs2, int *bandWidthT, float *flcoeffs3, float *flcoeffs5) |
static void | imc_read_level_coeffs (IMCContext *q, int stream_format_code, int *levlCoeffs) |
static void | imc_read_level_coeffs_raw (IMCContext *q, int stream_format_code, int *levlCoeffs) |
static void | imc_decode_level_coefficients (IMCContext *q, int *levlCoeffBuf, float *flcoeffs1, float *flcoeffs2) |
static void | imc_decode_level_coefficients2 (IMCContext *q, int *levlCoeffBuf, float *old_floor, float *flcoeffs1, float *flcoeffs2) |
static void | imc_decode_level_coefficients_raw (IMCContext *q, int *levlCoeffBuf, float *flcoeffs1, float *flcoeffs2) |
static int | bit_allocation (IMCContext *q, IMCChannel *chctx, int stream_format_code, int freebits, int flag) |
Perform bit allocation depending on bits available. More... | |
static void | imc_get_skip_coeff (IMCContext *q, IMCChannel *chctx) |
static void | imc_adjust_bit_allocation (IMCContext *q, IMCChannel *chctx, int summer) |
Increase highest' band coefficient sizes as some bits won't be used. More... | |
static void | imc_imdct256 (IMCContext *q, IMCChannel *chctx, int channels) |
static int | inverse_quant_coeff (IMCContext *q, IMCChannel *chctx, int stream_format_code) |
static void | imc_get_coeffs (AVCodecContext *avctx, IMCContext *q, IMCChannel *chctx) |
static void | imc_refine_bit_allocation (IMCContext *q, IMCChannel *chctx) |
static int | imc_decode_block (AVCodecContext *avctx, IMCContext *q, int ch) |
static int | imc_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
static av_cold int | imc_decode_close (AVCodecContext *avctx) |
static av_cold void | flush (AVCodecContext *avctx) |
Variables | |
static VLC | huffman_vlc [4][4] |
static const int | vlc_offsets [17] |
static VLC_TYPE | vlc_tables [VLC_TABLES_SIZE][2] |
IMC - Intel Music Coder A mdct based codec using a 256 points large transform divided into 32 bands with some mix of scale factors. Only mono is supported.
Definition in file imc.c.
|
inlinestatic |
Definition at line 122 of file imc.c.
Referenced by iac_generate_tabs().
|
static |
Definition at line 127 of file imc.c.
Referenced by imc_decode_init().
|
static |
|
static |
Definition at line 274 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 329 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 357 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 368 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 402 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 422 of file imc.c.
Referenced by imc_decode_block().
|
static |
Perform bit allocation depending on bits available.
Definition at line 447 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 623 of file imc.c.
Referenced by imc_refine_bit_allocation().
|
static |
Increase highest' band coefficient sizes as some bits won't be used.
Definition at line 679 of file imc.c.
Referenced by imc_refine_bit_allocation().
|
static |
Definition at line 721 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 754 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 794 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 822 of file imc.c.
Referenced by imc_decode_block().
|
static |
Definition at line 866 of file imc.c.
Referenced by imc_decode_frame().
|
static |
|
static |
|
static |
|
static |
Definition at line 111 of file imc.c.
Referenced by imc_decode_init(), and imc_read_level_coeffs().
|
static |
Definition at line 115 of file imc.c.
Referenced by imc_decode_init().
|
static |
Definition at line 120 of file imc.c.
Referenced by imc_decode_init(), and ir2_decode_init().