|
FFmpeg
|
#include <stddef.h>#include "libavutil/channel_layout.h"#include "libavutil/mem.h"#include "avcodec.h"#include "bytestream.h"#include "codec_internal.h"#include "decode.h"#include "get_bits.h"Go to the source code of this file.
Data Structures | |
| struct | SmackVContext |
| struct | HuffEntry |
| struct | HuffContext |
| Context used for code reconstructing. More... | |
| struct | DBCtx |
Macros | |
| #define | SMKTREE_BITS 9 |
| #define | SMK_NODE 0x80000000 |
| #define | SMKTREE_DECODE_MAX_RECURSION FFMIN(32, 3 * SMKTREE_BITS) |
| #define | SMKTREE_DECODE_BIG_MAX_RECURSION 500 |
| #define | UNCHECKED_BITSTREAM_READER 1 |
| #define | BITSTREAM_READER_LE |
Enumerations | |
| enum | SmkBlockTypes { SMK_BLK_MONO = 0, SMK_BLK_FULL = 1, SMK_BLK_SKIP = 2, SMK_BLK_FILL = 3 } |
Functions | |
| static int | smacker_decode_tree (AVCodecContext *avctx, GetBitContext *gb, HuffContext *hc, int length) |
| Decode local frame tree. More... | |
| static int | smacker_decode_bigtree (AVCodecContext *avctx, GetBitContext *gb, DBCtx *ctx, int length) |
| Decode header tree. More... | |
| static int | smacker_decode_header_tree (SmackVContext *smk, GetBitContext *gb, int **recodes, int *last, int size) |
| Store large tree as FFmpeg's vlc codes. More... | |
| static int | decode_header_trees (SmackVContext *smk) |
| static av_always_inline void | last_reset (int *recode, int *last) |
| static av_always_inline int | smk_get_code (GetBitContext *gb, int *recode, int *last) |
| static int | decode_frame (AVCodecContext *avctx, AVFrame *rframe, int *got_frame, AVPacket *avpkt) |
| static av_cold int | decode_end (AVCodecContext *avctx) |
| static av_cold int | decode_init (AVCodecContext *avctx) |
| static av_cold int | smka_decode_init (AVCodecContext *avctx) |
| static int | smka_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt) |
| Decode Smacker audio data. More... | |
Variables | |
| static const int | block_runs [64] |
| const FFCodec | ff_smacker_decoder |
| const FFCodec | ff_smackaud_decoder |
Smacker decoder
Definition in file smacker.c.
| #define SMKTREE_DECODE_MAX_RECURSION FFMIN(32, 3 * SMKTREE_BITS) |
| enum SmkBlockTypes |
|
static |
Decode local frame tree.
Can read SMKTREE_DECODE_MAX_RECURSION before the first check; does not overread gb on success.
Definition at line 111 of file smacker.c.
Referenced by smacker_decode_header_tree(), and smka_decode_frame().
|
static |
Decode header tree.
Checks before the first read, can overread by 6 * SMKTREE_BITS on success.
Definition at line 142 of file smacker.c.
Referenced by smacker_decode_header_tree().
|
static |
Store large tree as FFmpeg's vlc codes.
Can read FFMAX(1 + SMKTREE_DECODE_MAX_RECURSION, 2 + 3 * 16) bits before the first check; can overread by 6 * SMKTREE_BITS + 1 on success.
Definition at line 198 of file smacker.c.
Referenced by decode_header_trees().
|
static |
Definition at line 274 of file smacker.c.
Referenced by decode_init().
|
static |
Definition at line 346 of file smacker.c.
Referenced by decode_frame().
|
static |
Definition at line 352 of file smacker.c.
Referenced by decode_frame().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 89 of file smacker.c.
Referenced by decode_frame().
| const FFCodec ff_smacker_decoder |
| const FFCodec ff_smackaud_decoder |
1.8.17