32 int raten, rated, aspectn, aspectd, ret;
34 const char *colorspace =
"";
35 const char *colorrange =
"";
50 if (aspectn == 0 && aspectd == 1)
62 colorrange =
" XCOLORRANGE=LIMITED";
65 colorrange =
" XCOLORRANGE=FULL";
71 switch (field_order) {
76 default: inter =
'p';
break;
81 colorspace =
" Cmono";
84 colorspace =
" Cmono9";
87 colorspace =
" Cmono10";
90 colorspace =
" Cmono12";
93 colorspace =
" Cmono16";
96 colorspace =
" C411 XYSCSS=411";
99 colorspace =
" C420jpeg XYSCSS=420JPEG";
100 colorrange =
" XCOLORRANGE=FULL";
103 colorspace =
" C422 XYSCSS=422";
104 colorrange =
" XCOLORRANGE=FULL";
107 colorspace =
" C444 XYSCSS=444";
108 colorrange =
" XCOLORRANGE=FULL";
114 default: colorspace =
" C420jpeg XYSCSS=420JPEG";
break;
118 colorspace =
" C422 XYSCSS=422";
121 colorspace =
" C444 XYSCSS=444";
124 colorspace =
" C420p9 XYSCSS=420P9";
127 colorspace =
" C422p9 XYSCSS=422P9";
130 colorspace =
" C444p9 XYSCSS=444P9";
133 colorspace =
" C420p10 XYSCSS=420P10";
136 colorspace =
" C422p10 XYSCSS=422P10";
139 colorspace =
" C444p10 XYSCSS=444P10";
142 colorspace =
" C420p12 XYSCSS=420P12";
145 colorspace =
" C422p12 XYSCSS=422P12";
148 colorspace =
" C444p12 XYSCSS=444P12";
151 colorspace =
" C420p14 XYSCSS=420P14";
154 colorspace =
" C422p14 XYSCSS=422P14";
157 colorspace =
" C444p14 XYSCSS=444P14";
160 colorspace =
" C420p16 XYSCSS=420P16";
163 colorspace =
" C422p16 XYSCSS=422P16";
166 colorspace =
" C444p16 XYSCSS=444P16";
172 aspectn, aspectd, colorspace, colorrange);
175 "Error. YUV4MPEG stream header write failed.\n");
190 const uint8_t *ptr, *ptr1, *ptr2;
271 if (
s->nb_streams != 1)
279 switch (
s->streams[0]->codecpar->format) {
282 "stream, some mjpegtools might not work.\n");
314 "Use '-strict -1' to encode to this pixel format.\n",
319 "Mjpegtools will not work.\n");
323 "yuv444p, yuv422p, yuv420p, yuv411p and gray8 pixel formats. "
324 "And using 'strict -1' also yuv444p9, yuv422p9, yuv420p9, "
325 "yuv444p10, yuv422p10, yuv420p10, "
326 "yuv444p12, yuv422p12, yuv420p12, "
327 "yuv444p14, yuv422p14, yuv420p14, "
328 "yuv444p16, yuv422p16, yuv420p16, "
329 "gray9, gray10, gray12 "
330 "and gray16 pixel formats. "
331 "Use -pix_fmt to select one.\n");
339 .
name =
"yuv4mpegpipe",
#define FF_COMPLIANCE_NORMAL
int avio_printf(AVIOContext *s, const char *fmt,...) av_printf_format(2
Writes a formatted string to the context.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
#define AV_CEIL_RSHIFT(a, b)
@ AV_CODEC_ID_WRAPPED_AVFRAME
Passthrough codec, AVFrames wrapped in AVPacket.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
Reduce a fraction.
common internal API header
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
#define FF_DISABLE_DEPRECATION_WARNINGS
#define FF_ENABLE_DEPRECATION_WARNINGS
int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift)
Utility function to access log2_chroma_w log2_chroma_h from the pixel format AVPixFmtDescriptor.
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown.
#define AV_PIX_FMT_YUV420P16
#define AV_PIX_FMT_YUV444P12
#define AV_PIX_FMT_YUV444P9
@ AVCHROMA_LOC_TOPLEFT
ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2.
@ AVCHROMA_LOC_LEFT
MPEG-2/4 4:2:0, H.264 default for 4:2:0.
#define AV_PIX_FMT_YUV420P10
#define AV_PIX_FMT_YUV422P9
@ AVCOL_RANGE_MPEG
Narrow or limited range content.
@ AVCOL_RANGE_JPEG
Full range content.
#define AV_PIX_FMT_YUV420P12
#define AV_PIX_FMT_YUV422P12
#define AV_PIX_FMT_YUV422P10
#define AV_PIX_FMT_GRAY12
#define AV_PIX_FMT_YUV420P9
#define AV_PIX_FMT_YUV420P14
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
@ AV_PIX_FMT_GRAY8
Y , 8bpp.
@ AV_PIX_FMT_YUV411P
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
@ AV_PIX_FMT_YUVJ422P
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting col...
@ AV_PIX_FMT_YUVJ444P
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
@ AV_PIX_FMT_YUVJ420P
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting col...
#define AV_PIX_FMT_YUV422P14
#define AV_PIX_FMT_GRAY10
#define AV_PIX_FMT_YUV422P16
#define AV_PIX_FMT_GRAY16
#define AV_PIX_FMT_YUV444P14
#define AV_PIX_FMT_YUV444P16
#define AV_PIX_FMT_YUV444P10
enum AVFieldOrder field_order
Field order.
enum AVFieldOrder field_order
Video only.
enum AVChromaLocation chroma_location
enum AVColorRange color_range
Video only.
This structure describes decoded (raw) audio or video data.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
This structure stores compressed data.
AVCodecParameters * codecpar
Codec parameters associated with this stream.
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown)
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
attribute_deprecated AVCodecContext * codec
static int yuv4_write_header(AVFormatContext *s)
static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
AVOutputFormat ff_yuv4mpegpipe_muxer
static int yuv4_init(AVFormatContext *s)