29 #define CLIP(v) av_clip(v, 4, 1019)
30 #define CLIP8(v) av_clip(v, 1, 254)
32 #define WRITE_PIXELS(a, b, c) \
35 val |= (CLIP(*b++) << 10) | \
41 #define WRITE_PIXELS8(a, b, c) \
43 val = (CLIP8(*a++) << 2); \
44 val |= (CLIP8(*b++) << 12) | \
45 (CLIP8(*c++) << 22); \
58 for (i = 0; i < width - 11; i += 12) {
71 const uint16_t *v,
uint8_t *dst,
77 for (i = 0; i < width - 5; i += 6) {
100 if (avctx->
width & 1) {
105 #if FF_API_CODED_FRAME
120 const AVFrame *pic,
int *got_packet)
123 int aligned_width = ((avctx->
width + 47) / 48) * 48;
124 int stride = aligned_width * 8 / 3;
125 int line_padding = stride - ((avctx->
width * 8 + 11) / 12) * 4;
138 const uint16_t *y = (
const uint16_t *)pic->
data[0];
139 const uint16_t *
u = (
const uint16_t *)pic->
data[1];
140 const uint16_t *v = (
const uint16_t *)pic->
data[2];
143 const int sample_w = avctx->
width / sample_size;
147 w = sample_w * sample_size;
155 for (; w < avctx->
width - 5; w += 6) {
161 if (w < avctx->
width - 1) {
165 if (w == avctx->
width - 2) {
170 if (w < avctx->
width - 3) {
171 val |= (
CLIP(*
u++) << 10) | (
CLIP(*y++) << 20);
175 val =
CLIP(*v++) | (
CLIP(*y++) << 10);
180 memset(dst, 0, line_padding);
192 const int sample_w = avctx->
width / sample_size;
194 for (h = 0; h < avctx->
height; h++) {
196 w = sample_w * sample_size;
204 for (; w < avctx->
width - 5; w += 6) {
210 if (w < avctx->
width - 1) {
213 val =
CLIP8(*y++) << 2;
214 if (w == avctx->
width - 2) {
219 if (w < avctx->
width - 3) {
220 val |= (
CLIP8(*u++) << 12) | (
CLIP8(*y++) << 22);
224 val = (
CLIP8(*v++) << 2) | (
CLIP8(*y++) << 12);
228 memset(dst, 0, line_padding);
238 if (side_data && side_data->
size) {
242 memcpy(buf, side_data->
data, side_data->
size);
246 if (side_data && side_data->
size) {
250 memcpy(buf, side_data->
data, side_data->
size);
#define WRITE_PIXELS(a, b, c)
const char const char void * val
This structure describes decoded (raw) audio or video data.
static void v210_planar_pack_8_c(const uint8_t *y, const uint8_t *u, const uint8_t *v, uint8_t *dst, ptrdiff_t width)
int64_t bit_rate
the average bitrate
static av_cold int init(AVCodecContext *avctx)
ATSC A53 Part 4 Closed Captions.
AVFrameSideData * av_frame_get_side_data(const AVFrame *frame, enum AVFrameSideDataType type)
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size)
Check AVPacket size and/or allocate data.
#define u(width, name, range_min, range_max)
Structure to hold side data for an AVFrame.
int bits_per_coded_sample
bits per sample/pixel from the demuxer (needed for huffyuv).
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
ATSC A53 Part 4 Closed Captions.
const char * name
Name of the codec implementation.
void(* pack_line_8)(const uint8_t *y, const uint8_t *u, const uint8_t *v, uint8_t *dst, ptrdiff_t width)
av_cold void ff_v210enc_init(V210EncContext *s)
int flags
A combination of AV_PKT_FLAG values.
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
int64_t ff_guess_coded_bitrate(AVCodecContext *avctx)
Get an estimated video bitrate based on frame size, frame rate and coded bits per pixel...
enum AVPictureType pict_type
Picture type of the frame.
int width
picture width / height.
static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic, int *got_packet)
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
static av_cold int encode_init(AVCodecContext *avctx)
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames...
Libavcodec external API header.
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
main external API structure.
void ff_v210enc_init_x86(V210EncContext *s)
static enum AVPixelFormat pix_fmts[]
#define AV_PIX_FMT_YUV422P10
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
#define WRITE_PIXELS8(a, b, c)
GLint GLenum GLboolean GLsizei stride
#define FF_DISABLE_DEPRECATION_WARNINGS
common internal api header.
static void v210_planar_pack_10_c(const uint16_t *y, const uint16_t *u, const uint16_t *v, uint8_t *dst, ptrdiff_t width)
attribute_deprecated AVFrame * coded_frame
the picture in the bitstream
#define FF_ENABLE_DEPRECATION_WARNINGS
void(* pack_line_10)(const uint16_t *y, const uint16_t *u, const uint16_t *v, uint8_t *dst, ptrdiff_t width)
uint8_t * av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, int size)
Allocate new information of a packet.
AVPixelFormat
Pixel format.
This structure stores compressed data.