📄 raw.c
字号:
"raw flac",
0,
flac_probe,
flac_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "flac",
};
#ifdef CONFIG_MUXERS
AVOutputFormat flac_muxer = {
"flac",
"raw flac",
"audio/x-flac",
"flac",
0,
CODEC_ID_FLAC,
0,
flac_write_header,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
#ifdef CONFIG_AC3_DEMUXER
AVInputFormat ac3_demuxer = {
"ac3",
"raw ac3",
0,
ac3_probe,
ac3_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "ac3",
};
#endif
#ifdef CONFIG_MUXERS
AVOutputFormat ac3_muxer = {
"ac3",
"raw ac3",
"audio/x-ac3",
"ac3",
0,
CODEC_ID_AC3,
0,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat dts_demuxer = {
"dts",
"raw dts",
0,
NULL,
dts_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "dts",
};
AVInputFormat aac_demuxer = {
"aac",
"ADTS AAC",
0,
NULL,
aac_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "aac",
};
#ifdef CONFIG_ROQ_MUXER
AVOutputFormat roq_muxer =
{
"RoQ",
"Id RoQ format",
NULL,
"roq",
0,
CODEC_ID_ROQ_DPCM,
CODEC_ID_ROQ,
roq_write_header,
raw_write_packet,
};
#endif //CONFIG_ROQ_MUXER
AVInputFormat h261_demuxer = {
"h261",
"raw h261",
0,
h261_probe,
video_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "h261",
.value = CODEC_ID_H261,
};
#ifdef CONFIG_MUXERS
AVOutputFormat h261_muxer = {
"h261",
"raw h261",
"video/x-h261",
"h261",
0,
0,
CODEC_ID_H261,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat h263_demuxer = {
"h263",
"raw h263",
0,
h263_probe,
video_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
// .extensions = "h263", //FIXME remove after writing mpeg4_probe
.value = CODEC_ID_H263,
};
#ifdef CONFIG_MUXERS
AVOutputFormat h263_muxer = {
"h263",
"raw h263",
"video/x-h263",
"h263",
0,
0,
CODEC_ID_H263,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat m4v_demuxer = {
"m4v",
"raw MPEG4 video format",
0,
mpeg4video_probe, /** probing for mpeg4 data */
video_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "m4v", //FIXME remove after writing mpeg4_probe
.value = CODEC_ID_MPEG4,
};
#ifdef CONFIG_MUXERS
AVOutputFormat m4v_muxer = {
"m4v",
"raw MPEG4 video format",
NULL,
"m4v",
0,
CODEC_ID_NONE,
CODEC_ID_MPEG4,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat h264_demuxer = {
"h264",
"raw H264 video format",
0,
NULL /*mpegvideo_probe*/,
video_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe
.value = CODEC_ID_H264,
};
#ifdef CONFIG_MUXERS
AVOutputFormat h264_muxer = {
"h264",
"raw H264 video format",
NULL,
"h264",
0,
CODEC_ID_NONE,
CODEC_ID_H264,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat mpegvideo_demuxer = {
"mpegvideo",
"MPEG video",
0,
mpegvideo_probe,
video_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.value = CODEC_ID_MPEG1VIDEO,
};
#ifdef CONFIG_MUXERS
AVOutputFormat mpeg1video_muxer = {
"mpeg1video",
"MPEG video",
"video/x-mpeg",
"mpg,mpeg,m1v",
0,
0,
CODEC_ID_MPEG1VIDEO,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
#ifdef CONFIG_MUXERS
AVOutputFormat mpeg2video_muxer = {
"mpeg2video",
"MPEG2 video",
NULL,
"m2v",
0,
0,
CODEC_ID_MPEG2VIDEO,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat mjpeg_demuxer = {
"mjpeg",
"MJPEG video",
0,
NULL,
video_read_header,
raw_read_partial_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "mjpg,mjpeg",
.value = CODEC_ID_MJPEG,
};
AVInputFormat ingenient_demuxer = {
"ingenient",
"Ingenient MJPEG",
0,
NULL,
video_read_header,
ingenient_read_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "cgi", // FIXME
.value = CODEC_ID_MJPEG,
};
#ifdef CONFIG_MUXERS
AVOutputFormat mjpeg_muxer = {
"mjpeg",
"MJPEG video",
"video/x-mjpeg",
"mjpg,mjpeg",
0,
0,
CODEC_ID_MJPEG,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
AVInputFormat vc1_demuxer = {
"vc1",
"raw vc1",
0,
NULL /* vc1_probe */,
video_read_header,
raw_read_partial_packet,
raw_read_close,
.extensions = "vc1",
.value = CODEC_ID_VC1,
};
/* pcm formats */
#define PCMINPUTDEF(name, long_name, ext, codec) \
AVInputFormat pcm_ ## name ## _demuxer = {\
#name,\
long_name,\
0,\
NULL,\
raw_read_header,\
raw_read_packet,\
raw_read_close,\
pcm_read_seek,\
.flags= AVFMT_GENERIC_INDEX,\
.extensions = ext,\
.value = codec,\
};
#define PCMOUTPUTDEF(name, long_name, ext, codec) \
AVOutputFormat pcm_ ## name ## _muxer = {\
#name,\
long_name,\
NULL,\
ext,\
0,\
codec,\
0,\
NULL,\
raw_write_packet,\
.flags= AVFMT_NOTIMESTAMPS,\
};
#if !defined(CONFIG_MUXERS) && defined(CONFIG_DEMUXERS)
#define PCMDEF(name, long_name, ext, codec) \
PCMINPUTDEF(name, long_name, ext, codec)
#elif defined(CONFIG_MUXERS) && !defined(CONFIG_DEMUXERS)
#define PCMDEF(name, long_name, ext, codec) \
PCMOUTPUTDEF(name, long_name, ext, codec)
#elif defined(CONFIG_MUXERS) && defined(CONFIG_DEMUXERS)
#define PCMDEF(name, long_name, ext, codec) \
PCMINPUTDEF(name, long_name, ext, codec)\
PCMOUTPUTDEF(name, long_name, ext, codec)
#else
#define PCMDEF(name, long_name, ext, codec)
#endif
#ifdef WORDS_BIGENDIAN
#define BE_DEF(s) s
#define LE_DEF(s) NULL
#else
#define BE_DEF(s) NULL
#define LE_DEF(s) s
#endif
PCMDEF(s16le, "pcm signed 16 bit little endian format",
LE_DEF("sw"), CODEC_ID_PCM_S16LE)
PCMDEF(s16be, "pcm signed 16 bit big endian format",
BE_DEF("sw"), CODEC_ID_PCM_S16BE)
PCMDEF(u16le, "pcm unsigned 16 bit little endian format",
LE_DEF("uw"), CODEC_ID_PCM_U16LE)
PCMDEF(u16be, "pcm unsigned 16 bit big endian format",
BE_DEF("uw"), CODEC_ID_PCM_U16BE)
PCMDEF(s8, "pcm signed 8 bit format",
"sb", CODEC_ID_PCM_S8)
PCMDEF(u8, "pcm unsigned 8 bit format",
"ub", CODEC_ID_PCM_U8)
PCMDEF(mulaw, "pcm mu law format",
"ul", CODEC_ID_PCM_MULAW)
PCMDEF(alaw, "pcm A law format",
"al", CODEC_ID_PCM_ALAW)
static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt)
{
int packet_size, ret, width, height;
AVStream *st = s->streams[0];
width = st->codec->width;
height = st->codec->height;
packet_size = avpicture_get_size(st->codec->pix_fmt, width, height);
if (packet_size < 0)
return -1;
ret= av_get_packet(&s->pb, pkt, packet_size);
pkt->stream_index = 0;
if (ret != packet_size) {
return AVERROR(EIO);
} else {
return 0;
}
}
AVInputFormat rawvideo_demuxer = {
"rawvideo",
"raw video format",
0,
NULL,
raw_read_header,
rawvideo_read_packet,
raw_read_close,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "yuv,cif,qcif,rgb",
.value = CODEC_ID_RAWVIDEO,
};
#ifdef CONFIG_MUXERS
AVOutputFormat rawvideo_muxer = {
"rawvideo",
"raw video format",
NULL,
"yuv,rgb",
0,
CODEC_ID_NONE,
CODEC_ID_RAWVIDEO,
NULL,
raw_write_packet,
.flags= AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
#ifdef CONFIG_MUXERS
static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt)
{
return 0;
}
AVOutputFormat null_muxer = {
"null",
"null video format",
NULL,
NULL,
0,
#ifdef WORDS_BIGENDIAN
CODEC_ID_PCM_S16BE,
#else
CODEC_ID_PCM_S16LE,
#endif
CODEC_ID_RAWVIDEO,
NULL,
null_write_packet,
.flags = AVFMT_NOFILE | AVFMT_RAWPICTURE | AVFMT_NOTIMESTAMPS,
};
#endif //CONFIG_MUXERS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -