| FFmpeg
    4.0
    | 
IMC - Intel Music Coder A mdct based codec using a 256 points large transform divided into 32 bands with some mix of scale factors. More...
#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.
| #define IMC_BLOCK_SIZE 64 | 
Definition at line 50 of file imc.c.
Referenced by imc_decode_frame().
| #define BANDS 32 | 
Definition at line 52 of file imc.c.
Referenced by bit_allocation(), imc_adjust_bit_allocation(), imc_calculate_coeffs(), imc_decode_block(), imc_decode_init(), imc_decode_level_coefficients(), imc_decode_level_coefficients2(), imc_decode_level_coefficients_raw(), imc_get_coeffs(), imc_get_skip_coeff(), imc_read_level_coeffs(), imc_read_level_coeffs_raw(), imc_refine_bit_allocation(), inverse_quant_coeff(), mpc7_decode_frame(), mpc7_decode_init(), and mpc8_decode_init().
| #define COEFFS 256 | 
Definition at line 53 of file imc.c.
Referenced by imc_decode_block(), imc_decode_frame(), imc_decode_init(), and imc_imdct256().
| 
 | inlinestatic | 
Definition at line 120 of file imc.c.
Referenced by iac_generate_tabs().
| 
 | static | 
Definition at line 125 of file imc.c.
Referenced by imc_decode_init().
| 
 | static | 
| 
 | static | 
Definition at line 272 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 327 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 355 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 366 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 400 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 420 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Perform bit allocation depending on bits available.
Definition at line 445 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 621 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 677 of file imc.c.
Referenced by imc_refine_bit_allocation().
| 
 | static | 
Definition at line 719 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 752 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 792 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 820 of file imc.c.
Referenced by imc_decode_block().
| 
 | static | 
Definition at line 864 of file imc.c.
Referenced by imc_decode_frame().
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
Definition at line 113 of file imc.c.
Referenced by imc_decode_init().
| 
 | static | 
Definition at line 118 of file imc.c.
Referenced by imc_decode_init(), and ir2_decode_init().
 1.8.13
 1.8.13