#include "libavutil/opt.h"
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.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 | LAMBDA_FRAC_BITS 10 |
#define | BUCKET_BITS 8 |
#define | RADIX_PASSES 4 |
#define | NBUCKETS (1 << BUCKET_BITS) |
Functions | |
int | dct_quantize_c (MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow) |
static av_always_inline void | dnxhd_get_pixels_8x4 (DCTELEM *restrict block, const uint8_t *pixels, int line_size) |
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 LAMBDA_FRAC_BITS 10 |
#define NBUCKETS (1 << BUCKET_BITS) |
#define RADIX_PASSES 4 |
#define RC_VARIANCE 1 |
Definition at line 25 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 33 of file dnxhdenc.c.
int dct_quantize_c | ( | MpegEncContext * | s, | |
DCTELEM * | block, | |||
int | n, | |||
int | qscale, | |||
int * | overflow | |||
) |
Definition at line 3693 of file mpegvideo_enc.c.
Referenced by dnxhd_encode_init(), encode_mb_internal(), and MPV_encode_init().
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 409 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 835 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 166 of file dnxhdenc.c.
static int dnxhd_encode_picture | ( | AVCodecContext * | avctx, | |
unsigned char * | buf, | |||
int | buf_size, | |||
void * | data | |||
) | [static] |
Definition at line 774 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 366 of file dnxhdenc.c.
Referenced by dnxhd_calc_bits_thread(), and dnxhd_encode_thread().
static av_always_inline void dnxhd_get_pixels_8x4 | ( | DCTELEM *restrict | block, | |
const uint8_t * | pixels, | |||
int | line_size | |||
) | [static] |
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 62 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 396 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 39 of file dnxhdenc.c.
Definition at line 39 of file dnxhdenc.c.
Referenced by av_register_all(), and avcodec_register_all().
Initial value:
{ "dnxhd", AVMEDIA_TYPE_VIDEO, CODEC_ID_DNXHD, sizeof(DNXHDEncContext), dnxhd_encode_init, dnxhd_encode_picture, dnxhd_encode_end, .capabilities = CODEC_CAP_SLICE_THREADS, .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV422P, PIX_FMT_NONE}, .long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"), .priv_class = &class, }
Definition at line 864 of file dnxhdenc.c.
options | ( | ) | [static] |
Initial value:
{ {"nitris_compat", "encode with Avid Nitris compatibility", 0x42, FF_OPT_TYPE_INT, {.dbl = 0}, 0, 1, VE}, {NULL} }
Definition at line 35 of file dnxhdenc.c.