Go to the documentation of this file.
22 #include "config_components.h"
54 #define GET_PACKET_SIZE(w, h) (((w + 47) / 48) * 48 * h * 8 / 3)
82 if (
s->nb_linesize != n) {
84 "pixel format has %d plane\n",
93 size_t linesize[4] = {0};
94 for (
int i = 0;
i < n;
i++) {
95 if (
s->linesize[
i] <
s->raw_bytes[
i]) {
97 "minimum required size is %d for width %d\n",
98 s->linesize[
i],
i,
s->raw_bytes[
i],
s->width);
101 if (
s->linesize[
i] >
s->raw_bytes[
i])
102 s->has_padding =
true;
103 linesize[
i] =
s->linesize[
i];
106 size_t plane_size[4] = {0};
108 s->frame_size = plane_size[0] + plane_size[1] + plane_size[2] + plane_size[3];
134 packet_size =
s->width *
s->height * pgroup / xinc;
146 if (packet_size == 0)
163 if (!
s->has_padding) {
181 for (
int i = 0;
i <
s->nb_linesize;
i++) {
182 int shift = (
i == 1 ||
i == 2) ?
desc->log2_chroma_h : 0;
186 for (
int j = 0; j <
h; j++) {
188 if (
ret !=
s->raw_bytes[
i]) {
201 p +=
s->raw_bytes[
i];
209 #define OFFSET(x) offsetof(RawVideoDemuxerContext, x)
210 #define DEC AV_OPT_FLAG_DECODING_PARAM
214 #define BITPACKED_OPTION_OFFSET 1 // skip stride option
217 #define V210_OPTION_OFFSET 2 // skip stride and pixel_format option
231 .
p.
name =
"rawvideo",
234 .p.extensions =
"yuv,cif,qcif,rgb",
249 #if CONFIG_BITPACKED_DEMUXER
251 .
p.
name =
"bitpacked",
254 .p.extensions =
"bitpacked",
261 #endif // CONFIG_BITPACKED_DEMUXER
270 #if CONFIG_V210_DEMUXER
275 .p.extensions =
"v210",
282 #endif // CONFIG_V210_DEMUXER
284 #if CONFIG_V210X_DEMUXER
289 .p.extensions =
"yuv10",
296 #endif // CONFIG_V210X_DEMUXER
AVPixelFormat
Pixel format.
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
enum AVMediaType codec_type
General type of the encoded data.
AVStream * avformat_new_stream(AVFormatContext *s, const struct AVCodec *c)
Add a new stream to a media file.
#define BITPACKED_OPTION_OFFSET
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
#define AVERROR_EOF
End of file.
@ AV_OPT_TYPE_VIDEO_RATE
Underlying C type is AVRational.
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel used by the pixel format described by pixdesc.
uint32_t codec_tag
Additional information about the codec (corresponds to the AVI FOURCC).
AVRational framerate
AVRational describing framerate, set by a private option.
static const AVOption rawvideo_options[]
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt)
const FFInputFormat ff_rawvideo_demuxer
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
static int rawvideo_read_header(AVFormatContext *ctx)
#define V210_OPTION_OFFSET
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define AV_PKT_FLAG_CORRUPT
The packet content is corrupted.
#define AV_PIX_FMT_YUV422P16
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
int av_image_fill_linesizes(int linesizes[4], enum AVPixelFormat pix_fmt, int width)
Fill plane linesizes for an image with pixel format pix_fmt and width width.
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
#define AV_CEIL_RSHIFT(a, b)
const struct AVInputFormat * iformat
The input container format.
static enum AVPixelFormat pix_fmt
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
Rescale a 64-bit integer by 2 rational numbers.
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
AVCodecParameters * codecpar
Codec parameters associated with this stream.
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
int av_image_fill_plane_sizes(size_t sizes[4], enum AVPixelFormat pix_fmt, int height, const ptrdiff_t linesizes[4])
Fill plane sizes for an image with pixel format pix_fmt and height height.
Rational number (pair of numerator and denominator).
@ AV_OPT_TYPE_IMAGE_SIZE
Underlying C type is two consecutive integers.
const char * av_default_item_name(void *ptr)
Return the context name.
AVIOContext * pb
I/O context.
#define AV_PIX_FMT_YUV422P10
#define GET_PACKET_SIZE(w, h)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static int shift(int a, int b)
@ AV_OPT_TYPE_FLAG_ARRAY
May be combined with another regular option type to declare an array option.
int height
Integers describing video size, set by a private option.
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed.
int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height, int align)
Return the size in bytes of the amount of data required to store an image with the given parameters.
int flags
A combination of AV_PKT_FLAG values.
static int read_header(FFV1Context *f, RangeCoder *c)
static int rawvideo_read_packet(AVFormatContext *ctx, AVPacket *pkt)
#define i(width, name, range_min, range_max)
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
static const AVClass v210_demuxer_class
@ AV_PIX_FMT_UYVY422
packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
enum AVPixelFormat pix_fmt
static const FFInputFormat * ffifmt(const AVInputFormat *fmt)
@ AV_OPT_TYPE_INT
Underlying C type is int.
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
IDirect3DDxgiInterfaceAccess _COM_Outptr_ void ** p
@ AV_OPT_TYPE_PIXEL_FMT
Underlying C type is enum AVPixelFormat.
int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
int bits_per_coded_sample
The number of bits per sample in the codedwords.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
This structure stores compressed data.
int64_t pos
byte position in stream, -1 if unknown
int64_t bit_rate
The average bitrate of the encoded data (in bits per second).
static const AVClass bitpacked_demuxer_class
static const av_unused uint8_t * skip_bytes(CABACContext *c, int n)
Skip n bytes and reset the decoder.
#define MKTAG(a, b, c, d)
static const AVClass rawvideo_demuxer_class
int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx)
Check if the given dimension of an image is valid, meaning that all bytes of the image can be address...
void * priv_data
Format private data.