#include <stdlib.h>
#include <string.h>
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "avcodec.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "decode.h"
#include "get_bits.h"
#include "lossless_videodsp.h"
#include "thread.h"
Go to the source code of this file.
|
| static int | huff_build (AVCodecContext *avctx, const uint8_t len[], uint16_t codes_pos[33], VLC *vlc, VLC_MULTI *multi, int nb_elems, void *logctx) |
| |
| static void | magicyuv_median_pred16 (uint16_t *dst, const uint16_t *src1, const uint16_t *diff, intptr_t w, int *left, int *left_top, int max) |
| |
| static int | magy_decode_slice10 (AVCodecContext *avctx, void *tdata, int j, int threadnr) |
| |
| static int | magy_decode_slice (AVCodecContext *avctx, void *tdata, int j, int threadnr) |
| |
| static int | build_huffman (AVCodecContext *avctx, const uint8_t *table, int table_size, int max) |
| |
| static int | magy_decode_frame (AVCodecContext *avctx, AVFrame *p, int *got_frame, AVPacket *avpkt) |
| |
| static av_cold int | magy_decode_init (AVCodecContext *avctx) |
| |
| static av_cold int | magy_decode_end (AVCodecContext *avctx) |
| |
◆ CACHED_BITSTREAM_READER
◆ VLC_BITS
◆ READ_PLANE
| #define READ_PLANE |
( |
| dst, |
|
|
| plane, |
|
|
| b, |
|
|
| c ) |
Value:{ \
x = 0; \
if (ret <= 0) \
x += ret; \
} \
}
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define CACHED_BITSTREAM_READER
static av_always_inline int get_vlc2(GetBitContext *s, const VLCElem *table, int bits, int max_depth)
Parse a vlc code.
static int get_bits_left(GetBitContext *gb)
static int get_vlc_multi(GetBitContext *s, uint8_t *dst, av_unused const VLC_MULTI_ELEM *const Jtable, const VLCElem *const table, const int bits, const int max_depth, av_unused const int symbols_size)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition at line 123 of file magicyuv.c.
Referenced by magy_decode_slice(), and magy_decode_slice10().
◆ Prediction
| Enumerator |
|---|
| LEFT | |
| GRADIENT | |
| MEDIAN | |
Definition at line 45 of file magicyuv.c.
◆ huff_build()
| static int huff_build |
( |
AVCodecContext * | avctx, |
|
|
const uint8_t | len[], |
|
|
uint16_t | codes_pos[33], |
|
|
VLC * | vlc, |
|
|
VLC_MULTI * | multi, |
|
|
int | nb_elems, |
|
|
void * | logctx ) |
|
static |
◆ magicyuv_median_pred16()
| static void magicyuv_median_pred16 |
( |
uint16_t * | dst, |
|
|
const uint16_t * | src1, |
|
|
const uint16_t * | diff, |
|
|
intptr_t | w, |
|
|
int * | left, |
|
|
int * | left_top, |
|
|
int | max ) |
|
static |
◆ magy_decode_slice10()
| static int magy_decode_slice10 |
( |
AVCodecContext * | avctx, |
|
|
void * | tdata, |
|
|
int | j, |
|
|
int | threadnr ) |
|
static |
◆ magy_decode_slice()
| static int magy_decode_slice |
( |
AVCodecContext * | avctx, |
|
|
void * | tdata, |
|
|
int | j, |
|
|
int | threadnr ) |
|
static |
◆ build_huffman()
| static int build_huffman |
( |
AVCodecContext * | avctx, |
|
|
const uint8_t * | table, |
|
|
int | table_size, |
|
|
int | max ) |
|
static |
◆ magy_decode_frame()
◆ magy_decode_init()
◆ magy_decode_end()
◆ ff_magicyuv_decoder
Initial value:= {
.p.name = "magicyuv",
}
static av_cold void close(AVCodecParserContext *s)
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
static av_cold int magy_decode_init(AVCodecContext *avctx)
static av_cold int magy_decode_end(AVCodecContext *avctx)
static int magy_decode_frame(AVCodecContext *avctx, AVFrame *p, int *got_frame, AVPacket *avpkt)
Definition at line 682 of file magicyuv.c.