Go to the source code of this file.
|
static av_always_inline void | put_vc2_ue_uint (PutBitContext *pb, uint32_t val) |
|
static av_always_inline int | count_vc2_ue_uint (uint32_t val) |
|
static void | encode_parse_info (VC2EncContext *s, enum DiracParseCodes pcode) |
|
static void | encode_parse_params (VC2EncContext *s) |
|
static void | encode_frame_size (VC2EncContext *s) |
|
static void | encode_sample_fmt (VC2EncContext *s) |
|
static void | encode_scan_format (VC2EncContext *s) |
|
static void | encode_frame_rate (VC2EncContext *s) |
|
static void | encode_aspect_ratio (VC2EncContext *s) |
|
static void | encode_clean_area (VC2EncContext *s) |
|
static void | encode_signal_range (VC2EncContext *s) |
|
static void | encode_color_spec (VC2EncContext *s) |
|
static void | encode_source_params (VC2EncContext *s) |
|
static void | encode_seq_header (VC2EncContext *s) |
|
static void | encode_picture_header (VC2EncContext *s) |
|
static void | encode_slice_params (VC2EncContext *s) |
|
static void | init_quant_matrix (VC2EncContext *s) |
|
static void | encode_quant_matrix (VC2EncContext *s) |
|
static void | encode_transform_params (VC2EncContext *s) |
|
static void | encode_wavelet_transform (VC2EncContext *s) |
|
static void | encode_picture_start (VC2EncContext *s) |
|
static void | encode_subband (const VC2EncContext *s, PutBitContext *pb, int sx, int sy, const SubBand *b, int quant) |
|
static int | count_hq_slice (SliceArgs *slice, int quant_idx) |
|
static int | rate_control (AVCodecContext *avctx, void *arg) |
|
static int | calc_slice_sizes (VC2EncContext *s) |
|
static int | encode_hq_slice (AVCodecContext *avctx, void *arg) |
|
static int | encode_slices (VC2EncContext *s) |
|
static int | dwt_plane (AVCodecContext *avctx, void *arg) |
|
static int | encode_frame (VC2EncContext *s, AVPacket *avpkt, const AVFrame *frame, const char *aux_data, const int header_size, int field) |
|
static av_cold int | vc2_encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet) |
|
static av_cold int | vc2_encode_end (AVCodecContext *avctx) |
|
static av_cold int | vc2_encode_init (AVCodecContext *avctx) |
|
◆ SSIZE_ROUND
#define SSIZE_ROUND |
( |
|
b | ) |
(FFALIGN((b), s->size_scaler) + 4 + s->prefix_bytes) |
◆ SLICE_REDIST_TOTAL
#define SLICE_REDIST_TOTAL 150 |
◆ QUANT
#define QUANT |
( |
|
c, |
|
|
|
mul, |
|
|
|
add, |
|
|
|
shift |
|
) |
| (((mul) * (c) + (add)) >> (shift)) |
◆ VC2ENC_FLAGS
◆ VC2_QM
Enumerator |
---|
VC2_QM_DEF | |
VC2_QM_COL | |
VC2_QM_FLAT | |
VC2_QM_NB | |
Definition at line 82 of file vc2enc.c.
◆ put_vc2_ue_uint()
Definition at line 189 of file vc2enc.c.
Referenced by encode_aspect_ratio(), encode_color_spec(), encode_frame_rate(), encode_frame_size(), encode_parse_params(), encode_quant_matrix(), encode_sample_fmt(), encode_scan_format(), encode_seq_header(), encode_signal_range(), encode_slice_params(), encode_subband(), and encode_transform_params().
◆ count_vc2_ue_uint()
◆ encode_parse_info()
◆ encode_parse_params()
◆ encode_frame_size()
◆ encode_sample_fmt()
◆ encode_scan_format()
◆ encode_frame_rate()
◆ encode_aspect_ratio()
◆ encode_clean_area()
◆ encode_signal_range()
◆ encode_color_spec()
◆ encode_source_params()
◆ encode_seq_header()
◆ encode_picture_header()
◆ encode_slice_params()
◆ init_quant_matrix()
◆ encode_quant_matrix()
◆ encode_transform_params()
◆ encode_wavelet_transform()
◆ encode_picture_start()
◆ encode_subband()
◆ count_hq_slice()
static int count_hq_slice |
( |
SliceArgs * |
slice, |
|
|
int |
quant_idx |
|
) |
| |
|
static |
◆ rate_control()
◆ calc_slice_sizes()
◆ encode_hq_slice()
◆ encode_slices()
◆ dwt_plane()
◆ encode_frame()
static int encode_frame |
( |
VC2EncContext * |
s, |
|
|
AVPacket * |
avpkt, |
|
|
const AVFrame * |
frame, |
|
|
const char * |
aux_data, |
|
|
const int |
header_size, |
|
|
int |
field |
|
) |
| |
|
static |
◆ vc2_encode_frame()
◆ vc2_encode_end()
◆ vc2_encode_init()
◆ base_video_fmts
◆ base_video_fmts_len
◆ vc2_qm_col_tab
const uint8_t vc2_qm_col_tab[][4] |
|
static |
Initial value:= {
{20, 9, 15, 4},
{ 0, 6, 6, 4},
{ 0, 3, 3, 5},
{ 0, 3, 5, 1},
{ 0, 11, 10, 11}
}
Definition at line 435 of file vc2enc.c.
Referenced by init_quant_matrix().
◆ vc2_qm_flat_tab
const uint8_t vc2_qm_flat_tab[][4] |
|
static |
Initial value:= {
{ 0, 0, 0, 0},
{ 0, 0, 0, 0},
{ 0, 0, 0, 0},
{ 0, 0, 0, 0},
{ 0, 0, 0, 0}
}
Definition at line 443 of file vc2enc.c.
Referenced by init_quant_matrix().
◆ vc2enc_options
Initial value:= {
{
"9_7",
"Deslauriers-Dubuc (9,7)", 0,
AV_OPT_TYPE_CONST, {.i64 =
VC2_TRANSFORM_9_7}, INT_MIN, INT_MAX,
VC2ENC_FLAGS, .unit =
"wavelet_idx"},
{
"5_3",
"LeGall (5,3)", 0,
AV_OPT_TYPE_CONST, {.i64 =
VC2_TRANSFORM_5_3}, INT_MIN, INT_MAX,
VC2ENC_FLAGS, .unit =
"wavelet_idx"},
}
Definition at line 1196 of file vc2enc.c.
◆ vc2enc_class
Initial value:= {
.class_name = "SMPTE VC-2 encoder",
}
Definition at line 1213 of file vc2enc.c.
◆ vc2enc_defaults
Initial value:= {
{ "b", "600000000" },
}
Definition at line 1221 of file vc2enc.c.
◆ allowed_pix_fmts
◆ ff_vc2_encoder
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
@ AVCOL_RANGE_JPEG
Full range content.
#define AV_PIX_FMT_YUV420P10
static av_cold int vc2_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet)
#define FF_CODEC_ENCODE_CB(func)
#define AV_PIX_FMT_YUV444P10
static const AVClass vc2enc_class
@ AV_OPT_TYPE_DOUBLE
Underlying C type is double.
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
#define CODEC_LONG_NAME(str)
#define LIBAVUTIL_VERSION_INT
static const AVOption vc2enc_options[]
const char * av_default_item_name(void *ptr)
Return the context name.
#define AV_PIX_FMT_YUV422P10
static enum AVPixelFormat allowed_pix_fmts[]
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_PIX_FMT_YUV422P12
static av_cold int vc2_encode_init(AVCodecContext *avctx)
#define AV_PIX_FMT_YUV444P12
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
@ AVCOL_RANGE_MPEG
Narrow or limited range content.
static av_cold int vc2_encode_end(AVCodecContext *avctx)
static const FFCodecDefault vc2enc_defaults[]
#define AV_PIX_FMT_YUV420P12
@ AV_OPT_TYPE_INT
Underlying C type is int.
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
@ AV_CLASS_CATEGORY_ENCODER
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.