#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "dirac.h"
#include "put_bits.h"
#include "internal.h"
#include "version.h"
#include "vc2enc_dwt.h"
#include "diractab.h"
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 (VC2EncContext *s, PutBitContext *pb, int sx, int sy, 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 78 of file vc2enc.c.
◆ put_vc2_ue_uint()
Definition at line 183 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()
◆ rate_control()
◆ calc_slice_sizes()
◆ encode_hq_slice()
◆ encode_slices()
◆ dwt_plane()
◆ encode_frame()
◆ vc2_encode_frame()
◆ vc2_encode_end()
◆ vc2_encode_init()
◆ base_video_fmts
◆ base_video_fmts_len
◆ vc2_qm_col_tab
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 426 of file vc2enc.c.
Referenced by init_quant_matrix().
◆ vc2_qm_flat_tab
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 434 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,
"wavelet_idx"},
{
"5_3",
"LeGall (5,3)", 0,
AV_OPT_TYPE_CONST, {.i64 =
VC2_TRANSFORM_5_3}, INT_MIN, INT_MAX,
VC2ENC_FLAGS,
"wavelet_idx"},
}
Definition at line 1193 of file vc2enc.c.
◆ vc2enc_class
Initial value:= {
.class_name = "SMPTE VC-2 encoder",
}
Definition at line 1210 of file vc2enc.c.
◆ vc2enc_defaults
Initial value:= {
{ "b", "600000000" },
}
Definition at line 1218 of file vc2enc.c.
◆ allowed_pix_fmts
◆ ff_vc2_encoder
#define FF_CODEC_CAP_INIT_THREADSAFE
The codec does not modify any global variables in the init function, allowing to call the init functi...
static av_cold int init(AVCodecContext *avctx)
#define AV_PIX_FMT_YUV420P10
static av_cold int vc2_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet)
static const AVCodecDefault defaults[]
#define AV_PIX_FMT_YUV444P10
static const AVClass vc2enc_class
static enum AVPixelFormat pix_fmts[]
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
#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[]
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
#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.
static const AVCodecDefault vc2enc_defaults[]
static av_cold int vc2_encode_end(AVCodecContext *avctx)
#define AV_PIX_FMT_YUV420P12
@ 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