#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) |
|
#define SSIZE_ROUND |
( |
|
b | ) |
(FFALIGN((b), s->size_scaler) + 4 + s->prefix_bytes) |
#define SLICE_REDIST_TOTAL 150 |
#define QUANT |
( |
|
c, |
|
|
|
mul, |
|
|
|
add, |
|
|
|
shift |
|
) |
| (((mul) * (c) + (add)) >> (shift)) |
Enumerator |
---|
VC2_QM_DEF |
|
VC2_QM_COL |
|
VC2_QM_FLAT |
|
VC2_QM_NB |
|
Definition at line 78 of file vc2enc.c.
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().
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().
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().
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 1191 of file vc2enc.c.
Initial value:= {
.class_name = "SMPTE VC-2 encoder",
}
#define LIBAVUTIL_VERSION_INT
const char * av_default_item_name(void *ptr)
Return the context name.
static const AVOption vc2enc_options[]
Definition at line 1208 of file vc2enc.c.
Initial value:= {
{ "b", "600000000" },
}
Definition at line 1216 of file vc2enc.c.
Initial value:= {
}
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
#define AV_PIX_FMT_YUV420P12
#define AV_PIX_FMT_YUV422P12
#define AV_PIX_FMT_YUV444P10
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
#define AV_PIX_FMT_YUV420P10
#define AV_PIX_FMT_YUV422P10
#define AV_PIX_FMT_YUV444P12
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition at line 1221 of file vc2enc.c.
Initial value:= {
.name = "vc2",
}
static av_cold int vc2_encode_init(AVCodecContext *avctx)
static av_cold int init(AVCodecContext *avctx)
static av_cold int vc2_encode_end(AVCodecContext *avctx)
#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 vc2_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static const AVCodecDefault vc2enc_defaults[]
static const AVCodecDefault defaults[]
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
static enum AVPixelFormat pix_fmts[]
static enum AVPixelFormat allowed_pix_fmts[]
static const AVClass vc2enc_class
Definition at line 1228 of file vc2enc.c.