FFmpeg
|
#include "config_components.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
#include "libavutil/mem_internal.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "decode.h"
#include "get_bits.h"
#include "hwaccel_internal.h"
#include "hwconfig.h"
#include "idctdsp.h"
#include "profiles.h"
#include "proresdec.h"
#include "proresdata.h"
#include "thread.h"
Go to the source code of this file.
Macros | |
#define | LONG_BITSTREAM_READER |
#define | ALPHA_SHIFT_16_TO_10(alpha_val) (alpha_val >> 6) |
#define | ALPHA_SHIFT_8_TO_10(alpha_val) ((alpha_val << 2) | (alpha_val >> 6)) |
#define | ALPHA_SHIFT_16_TO_12(alpha_val) (alpha_val >> 4) |
#define | ALPHA_SHIFT_8_TO_12(alpha_val) ((alpha_val << 4) | (alpha_val >> 4)) |
#define | HWACCEL_MAX (CONFIG_PRORES_VIDEOTOOLBOX_HWACCEL) |
#define | DECODE_CODEWORD(val, codebook, SKIP) |
#define | TOSIGNED(x) (((x) >> 1) ^ (-((x) & 1))) |
#define | FIRST_DC_CB 0xB8 |
Functions | |
static void | unpack_alpha (GetBitContext *gb, uint16_t *dst, int num_coeffs, const int num_bits, const int decode_precision) |
static void | unpack_alpha_10 (GetBitContext *gb, uint16_t *dst, int num_coeffs, const int num_bits) |
static void | unpack_alpha_12 (GetBitContext *gb, uint16_t *dst, int num_coeffs, const int num_bits) |
static av_cold int | decode_init (AVCodecContext *avctx) |
static int | decode_frame_header (ProresContext *ctx, const uint8_t *buf, const int data_size, AVCodecContext *avctx) |
static int | decode_picture_header (AVCodecContext *avctx, const uint8_t *buf, const int buf_size) |
static av_always_inline int | decode_dc_coeffs (GetBitContext *gb, int16_t *out, int blocks_per_slice) |
static av_always_inline int | decode_ac_coeffs (AVCodecContext *avctx, GetBitContext *gb, int16_t *out, int blocks_per_slice) |
static int | decode_slice_luma (AVCodecContext *avctx, SliceContext *slice, uint16_t *dst, int dst_stride, const uint8_t *buf, unsigned buf_size, const int16_t *qmat) |
static int | decode_slice_chroma (AVCodecContext *avctx, SliceContext *slice, uint16_t *dst, int dst_stride, const uint8_t *buf, unsigned buf_size, const int16_t *qmat, int log2_blocks_per_mb) |
static void | decode_slice_alpha (const ProresContext *ctx, uint16_t *dst, int dst_stride, const uint8_t *buf, int buf_size, int blocks_per_slice) |
Decode alpha slice plane. More... | |
static int | decode_slice_thread (AVCodecContext *avctx, void *arg, int jobnr, int threadnr) |
static int | decode_picture (AVCodecContext *avctx) |
static int | decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt) |
static av_cold int | decode_close (AVCodecContext *avctx) |
Variables | |
static const uint8_t | dc_codebook [7] = { 0x04, 0x28, 0x28, 0x4D, 0x4D, 0x70, 0x70} |
static const uint8_t | run_to_cb [16] = { 0x06, 0x06, 0x05, 0x05, 0x04, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x4C } |
static const uint8_t | lev_to_cb [10] = { 0x04, 0x0A, 0x05, 0x06, 0x04, 0x28, 0x28, 0x28, 0x28, 0x4C } |
const FFCodec | ff_prores_decoder |
Known FOURCCs: 'apch' (HQ), 'apcn' (SD), 'apcs' (LT), 'apco' (Proxy), 'ap4h' (4444), 'ap4x' (4444 XQ)
Definition in file proresdec.c.
#define LONG_BITSTREAM_READER |
Definition at line 29 of file proresdec.c.
#define ALPHA_SHIFT_16_TO_10 | ( | alpha_val | ) | (alpha_val >> 6) |
Definition at line 49 of file proresdec.c.
#define ALPHA_SHIFT_8_TO_10 | ( | alpha_val | ) | ((alpha_val << 2) | (alpha_val >> 6)) |
Definition at line 50 of file proresdec.c.
#define ALPHA_SHIFT_16_TO_12 | ( | alpha_val | ) | (alpha_val >> 4) |
Definition at line 51 of file proresdec.c.
#define ALPHA_SHIFT_8_TO_12 | ( | alpha_val | ) | ((alpha_val << 4) | (alpha_val >> 4)) |
Definition at line 52 of file proresdec.c.
#define HWACCEL_MAX (CONFIG_PRORES_VIDEOTOOLBOX_HWACCEL) |
Definition at line 426 of file proresdec.c.
#define TOSIGNED | ( | x | ) | (((x) >> 1) ^ (-((x) & 1))) |
Definition at line 458 of file proresdec.c.
#define FIRST_DC_CB 0xB8 |
Definition at line 460 of file proresdec.c.
|
inlinestatic |
Definition at line 54 of file proresdec.c.
Referenced by unpack_alpha_10(), and unpack_alpha_12().
|
static |
Definition at line 115 of file proresdec.c.
Referenced by decode_init().
|
static |
Definition at line 125 of file proresdec.c.
Referenced by decode_init().
|
static |
Definition at line 135 of file proresdec.c.
|
static |
Definition at line 201 of file proresdec.c.
Referenced by decode_frame().
|
static |
Definition at line 321 of file proresdec.c.
Referenced by decode_frame().
|
static |
Definition at line 464 of file proresdec.c.
Referenced by decode_slice_chroma(), and decode_slice_luma().
|
static |
Definition at line 495 of file proresdec.c.
Referenced by decode_slice_chroma(), and decode_slice_luma().
|
static |
Definition at line 538 of file proresdec.c.
Referenced by decode_slice_thread().
|
static |
Definition at line 572 of file proresdec.c.
Referenced by decode_slice_thread().
|
static |
Decode alpha slice plane.
Definition at line 609 of file proresdec.c.
Referenced by decode_slice_thread().
|
static |
Definition at line 639 of file proresdec.c.
Referenced by decode_picture().
|
static |
Definition at line 757 of file proresdec.c.
Referenced by decode_frame().
|
static |
Definition at line 776 of file proresdec.c.
|
static |
Definition at line 846 of file proresdec.c.
|
static |
Definition at line 462 of file proresdec.c.
Referenced by decode_dc_coeffs().
|
static |
Definition at line 492 of file proresdec.c.
Referenced by decode_ac_coeffs().
|
static |
Definition at line 493 of file proresdec.c.
Referenced by decode_ac_coeffs().
const FFCodec ff_prores_decoder |
Definition at line 867 of file proresdec.c.