#include "libavutil/opt.h"
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "mpegvideo_common.h"
#include "dnxhdenc.h"
Go to the source code of this file.
Defines | |
#define | RC_VARIANCE 1 |
#define | VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
#define | DNX10BIT_QMAT_SHIFT 18 |
#define | LAMBDA_FRAC_BITS 10 |
#define | BUCKET_BITS 8 |
#define | RADIX_PASSES 4 |
#define | NBUCKETS (1 << BUCKET_BITS) |
Functions | |
static void | dnxhd_8bit_get_pixels_8x4_sym (DCTELEM *restrict block, const uint8_t *pixels, int line_size) |
static av_always_inline void | dnxhd_10bit_get_pixels_8x4_sym (DCTELEM *restrict block, const uint8_t *pixels, int line_size) |
static int | dnxhd_10bit_dct_quantize (MpegEncContext *ctx, DCTELEM *block, int n, int qscale, int *overflow) |
static int | dnxhd_init_vlc (DNXHDEncContext *ctx) |
static int | dnxhd_init_qmat (DNXHDEncContext *ctx, int lbias, int cbias) |
static int | dnxhd_init_rc (DNXHDEncContext *ctx) |
static int | dnxhd_encode_init (AVCodecContext *avctx) |
static int | dnxhd_write_header (AVCodecContext *avctx, uint8_t *buf) |
static av_always_inline void | dnxhd_encode_dc (DNXHDEncContext *ctx, int diff) |
static av_always_inline void | dnxhd_encode_block (DNXHDEncContext *ctx, DCTELEM *block, int last_index, int n) |
static av_always_inline void | dnxhd_unquantize_c (DNXHDEncContext *ctx, DCTELEM *block, int n, int qscale, int last_index) |
static av_always_inline int | dnxhd_ssd_block (DCTELEM *qblock, DCTELEM *block) |
static av_always_inline int | dnxhd_calc_ac_bits (DNXHDEncContext *ctx, DCTELEM *block, int last_index) |
static av_always_inline void | dnxhd_get_blocks (DNXHDEncContext *ctx, int mb_x, int mb_y) |
static av_always_inline int | dnxhd_switch_matrix (DNXHDEncContext *ctx, int i) |
static int | dnxhd_calc_bits_thread (AVCodecContext *avctx, void *arg, int jobnr, int threadnr) |
static int | dnxhd_encode_thread (AVCodecContext *avctx, void *arg, int jobnr, int threadnr) |
static void | dnxhd_setup_threads_slices (DNXHDEncContext *ctx) |
static int | dnxhd_mb_var_thread (AVCodecContext *avctx, void *arg, int jobnr, int threadnr) |
static int | dnxhd_encode_rdo (AVCodecContext *avctx, DNXHDEncContext *ctx) |
static int | dnxhd_find_qscale (DNXHDEncContext *ctx) |
static int | get_bucket (int value, int shift) |
static void | radix_count (const RCCMPEntry *data, int size, int buckets[RADIX_PASSES][NBUCKETS]) |
static void | radix_sort_pass (RCCMPEntry *dst, const RCCMPEntry *data, int size, int buckets[NBUCKETS], int pass) |
static void | radix_sort (RCCMPEntry *data, int size) |
static int | dnxhd_encode_fast (AVCodecContext *avctx, DNXHDEncContext *ctx) |
static void | dnxhd_load_picture (DNXHDEncContext *ctx, const AVFrame *frame) |
static int | dnxhd_encode_picture (AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data) |
static int | dnxhd_encode_end (AVCodecContext *avctx) |
Variables | |
static const AVOption | options [] |
class { | |
dnxhd | |
av_default_item_name | |
options | |
}; | |
AVCodec | ff_dnxhd_encoder |
#define BUCKET_BITS 8 |
#define DNX10BIT_QMAT_SHIFT 18 |
Definition at line 37 of file dnxhdenc.c.
Referenced by dnxhd_10bit_dct_quantize(), and dnxhd_init_qmat().
#define LAMBDA_FRAC_BITS 10 |
#define NBUCKETS (1 << BUCKET_BITS) |
#define RADIX_PASSES 4 |
#define RC_VARIANCE 1 |
Definition at line 27 of file dnxhdenc.c.
Referenced by dnxhd_calc_bits_thread(), and dnxhd_encode_fast().
#define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
Definition at line 36 of file dnxhdenc.c.
static int dnxhd_10bit_dct_quantize | ( | MpegEncContext * | ctx, | |
DCTELEM * | block, | |||
int | n, | |||
int | qscale, | |||
int * | overflow | |||
) | [static] |
static av_always_inline void dnxhd_10bit_get_pixels_8x4_sym | ( | DCTELEM *restrict | block, | |
const uint8_t * | pixels, | |||
int | line_size | |||
) | [static] |
static void dnxhd_8bit_get_pixels_8x4_sym | ( | DCTELEM *restrict | block, | |
const uint8_t * | pixels, | |||
int | line_size | |||
) | [static] |
static av_always_inline int dnxhd_calc_ac_bits | ( | DNXHDEncContext * | ctx, | |
DCTELEM * | block, | |||
int | last_index | |||
) | [static] |
static int dnxhd_calc_bits_thread | ( | AVCodecContext * | avctx, | |
void * | arg, | |||
int | jobnr, | |||
int | threadnr | |||
) | [static] |
Definition at line 509 of file dnxhdenc.c.
Referenced by dnxhd_encode_rdo(), and dnxhd_find_qscale().
static av_always_inline void dnxhd_encode_block | ( | DNXHDEncContext * | ctx, | |
DCTELEM * | block, | |||
int | last_index, | |||
int | n | |||
) | [static] |
static av_always_inline void dnxhd_encode_dc | ( | DNXHDEncContext * | ctx, | |
int | diff | |||
) | [static] |
static int dnxhd_encode_end | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 964 of file dnxhdenc.c.
static int dnxhd_encode_fast | ( | AVCodecContext * | avctx, | |
DNXHDEncContext * | ctx | |||
) | [static] |
static int dnxhd_encode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 235 of file dnxhdenc.c.
static int dnxhd_encode_picture | ( | AVCodecContext * | avctx, | |
unsigned char * | buf, | |||
int | buf_size, | |||
void * | data | |||
) | [static] |
Definition at line 903 of file dnxhdenc.c.
static int dnxhd_encode_rdo | ( | AVCodecContext * | avctx, | |
DNXHDEncContext * | ctx | |||
) | [static] |
static int dnxhd_encode_thread | ( | AVCodecContext * | avctx, | |
void * | arg, | |||
int | jobnr, | |||
int | threadnr | |||
) | [static] |
static int dnxhd_find_qscale | ( | DNXHDEncContext * | ctx | ) | [static] |
static av_always_inline void dnxhd_get_blocks | ( | DNXHDEncContext * | ctx, | |
int | mb_x, | |||
int | mb_y | |||
) | [static] |
Definition at line 469 of file dnxhdenc.c.
Referenced by dnxhd_calc_bits_thread(), and dnxhd_encode_thread().
static int dnxhd_init_qmat | ( | DNXHDEncContext * | ctx, | |
int | lbias, | |||
int | cbias | |||
) | [static] |
static int dnxhd_init_rc | ( | DNXHDEncContext * | ctx | ) | [static] |
static int dnxhd_init_vlc | ( | DNXHDEncContext * | ctx | ) | [static] |
Definition at line 102 of file dnxhdenc.c.
static void dnxhd_load_picture | ( | DNXHDEncContext * | ctx, | |
const AVFrame * | frame | |||
) | [static] |
static int dnxhd_mb_var_thread | ( | AVCodecContext * | avctx, | |
void * | arg, | |||
int | jobnr, | |||
int | threadnr | |||
) | [static] |
static void dnxhd_setup_threads_slices | ( | DNXHDEncContext * | ctx | ) | [static] |
static av_always_inline int dnxhd_switch_matrix | ( | DNXHDEncContext * | ctx, | |
int | i | |||
) | [static] |
Definition at line 503 of file dnxhdenc.c.
Referenced by dnxhd_calc_bits_thread(), and dnxhd_encode_thread().
static av_always_inline void dnxhd_unquantize_c | ( | DNXHDEncContext * | ctx, | |
DCTELEM * | block, | |||
int | n, | |||
int | qscale, | |||
int | last_index | |||
) | [static] |
static int dnxhd_write_header | ( | AVCodecContext * | avctx, | |
uint8_t * | buf | |||
) | [static] |
static int get_bucket | ( | int | value, | |
int | shift | |||
) | [inline, static] |
static void radix_count | ( | const RCCMPEntry * | data, | |
int | size, | |||
int | buckets[RADIX_PASSES][NBUCKETS] | |||
) | [static] |
static void radix_sort | ( | RCCMPEntry * | data, | |
int | size | |||
) | [static] |
static void radix_sort_pass | ( | RCCMPEntry * | dst, | |
const RCCMPEntry * | data, | |||
int | size, | |||
int | buckets[NBUCKETS], | |||
int | pass | |||
) | [static] |
const { ... } [static] |
av_default_item_name |
Definition at line 43 of file dnxhdenc.c.
Definition at line 43 of file dnxhdenc.c.
Referenced by av_register_all(), and avcodec_register_all().
Initial value:
{ .name = "dnxhd", .type = AVMEDIA_TYPE_VIDEO, .id = CODEC_ID_DNXHD, .priv_data_size = sizeof(DNXHDEncContext), .init = dnxhd_encode_init, .encode = dnxhd_encode_picture, .close = dnxhd_encode_end, .capabilities = CODEC_CAP_SLICE_THREADS, .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV422P, PIX_FMT_YUV422P10, PIX_FMT_NONE}, .long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"), .priv_class = &class, }
Definition at line 993 of file dnxhdenc.c.
options [static] |
Initial value:
{ {"nitris_compat", "encode with Avid Nitris compatibility", 0x42, AV_OPT_TYPE_INT, {.dbl = 0}, 0, 1, VE}, {NULL} }
Definition at line 39 of file dnxhdenc.c.