📄 raw.c
字号:
"aac", "ADTS AAC", 0, NULL, aac_read_header, raw_read_partial_packet, raw_read_close, .extensions = "aac",};AVInputFormat h261_iformat = { "h261", "raw h261", 0, h261_probe, video_read_header, raw_read_partial_packet, raw_read_close, .extensions = "h261", .value = CODEC_ID_H261,};#ifdef CONFIG_MUXERSAVOutputFormat h261_oformat = { "h261", "raw h261", "video/x-h261", "h261", 0, 0, CODEC_ID_H261, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERSAVInputFormat h263_iformat = { "h263", "raw h263", 0, h263_probe, video_read_header, raw_read_partial_packet, raw_read_close,// .extensions = "h263", //FIXME remove after writing mpeg4_probe .value = CODEC_ID_H263,};#ifdef CONFIG_MUXERSAVOutputFormat h263_oformat = { "h263", "raw h263", "video/x-h263", "h263", 0, 0, CODEC_ID_H263, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERSAVInputFormat m4v_iformat = { "m4v", "raw MPEG4 video format", 0, NULL /*mpegvideo_probe*/, video_read_header, raw_read_partial_packet, raw_read_close, .extensions = "m4v", //FIXME remove after writing mpeg4_probe .value = CODEC_ID_MPEG4,};#ifdef CONFIG_MUXERSAVOutputFormat m4v_oformat = { "m4v", "raw MPEG4 video format", NULL, "m4v", 0, CODEC_ID_NONE, CODEC_ID_MPEG4, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERSAVInputFormat h264_iformat = { "h264", "raw H264 video format", 0, NULL /*mpegvideo_probe*/, video_read_header, raw_read_partial_packet, raw_read_close, .extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe .value = CODEC_ID_H264,};#ifdef CONFIG_MUXERSAVOutputFormat h264_oformat = { "h264", "raw H264 video format", NULL, "h264", 0, CODEC_ID_NONE, CODEC_ID_H264, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERSAVInputFormat mpegvideo_iformat = { "mpegvideo", "MPEG video", 0, mpegvideo_probe, video_read_header, raw_read_partial_packet, raw_read_close, .value = CODEC_ID_MPEG1VIDEO,};#ifdef CONFIG_MUXERSAVOutputFormat mpeg1video_oformat = { "mpeg1video", "MPEG video", "video/x-mpeg", "mpg,mpeg,m1v", 0, 0, CODEC_ID_MPEG1VIDEO, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERS#ifdef CONFIG_MUXERSAVOutputFormat mpeg2video_oformat = { "mpeg2video", "MPEG2 video", NULL, "m2v", 0, 0, CODEC_ID_MPEG2VIDEO, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERSAVInputFormat mjpeg_iformat = { "mjpeg", "MJPEG video", 0, NULL, video_read_header, raw_read_partial_packet, raw_read_close, .extensions = "mjpg,mjpeg", .value = CODEC_ID_MJPEG,};AVInputFormat ingenient_iformat = { "ingenient", "Ingenient MJPEG", 0, NULL, video_read_header, ingenient_read_packet, raw_read_close, .extensions = "cgi", // FIXME .value = CODEC_ID_MJPEG,};#ifdef CONFIG_MUXERSAVOutputFormat mjpeg_oformat = { "mjpeg", "MJPEG video", "video/x-mjpeg", "mjpg,mjpeg", 0, 0, CODEC_ID_MJPEG, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERS/* pcm formats */#define PCMINPUTDEF(name, long_name, ext, codec) \AVInputFormat pcm_ ## name ## _iformat = {\ #name,\ long_name,\ 0,\ NULL,\ raw_read_header,\ raw_read_packet,\ raw_read_close,\ pcm_read_seek,\ .extensions = ext,\ .value = codec,\};#if !defined(CONFIG_MUXERS) && defined(CONFIG_DEMUXERS)#define PCMDEF(name, long_name, ext, codec) \ PCMINPUTDEF(name, long_name, ext, codec)#else#define PCMDEF(name, long_name, ext, codec) \ PCMINPUTDEF(name, long_name, ext, codec)\\AVOutputFormat pcm_ ## name ## _oformat = {\ #name,\ long_name,\ NULL,\ ext,\ 0,\ codec,\ 0,\ raw_write_header,\ raw_write_packet,\ raw_write_trailer,\};#endif //CONFIG_MUXERS#ifdef WORDS_BIGENDIAN#define BE_DEF(s) s#define LE_DEF(s) NULL#else#define BE_DEF(s) NULL#define LE_DEF(s) s#endifPCMDEF(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_IO; } else { return 0; }}AVInputFormat rawvideo_iformat = { "rawvideo", "raw video format", 0, NULL, raw_read_header, rawvideo_read_packet, raw_read_close, .extensions = "yuv,cif,qcif", .value = CODEC_ID_RAWVIDEO,};#ifdef CONFIG_MUXERSAVOutputFormat rawvideo_oformat = { "rawvideo", "raw video format", NULL, "yuv", 0, CODEC_ID_NONE, CODEC_ID_RAWVIDEO, raw_write_header, raw_write_packet, raw_write_trailer,};#endif //CONFIG_MUXERS#ifdef CONFIG_MUXERSstatic int null_write_packet(struct AVFormatContext *s, AVPacket *pkt){ return 0;}AVOutputFormat null_oformat = { "null", "null video format", NULL, NULL, 0,#ifdef WORDS_BIGENDIAN CODEC_ID_PCM_S16BE,#else CODEC_ID_PCM_S16LE,#endif CODEC_ID_RAWVIDEO, raw_write_header, null_write_packet, raw_write_trailer, .flags = AVFMT_NOFILE | AVFMT_RAWPICTURE,};#endif //CONFIG_MUXERS#ifndef CONFIG_MUXERS#define av_register_output_format(format)#endif#ifndef CONFIG_DEMUXERS#define av_register_input_format(format)#endifint raw_init(void){ av_register_input_format(&shorten_iformat); av_register_input_format(&ac3_iformat); av_register_output_format(&ac3_oformat); av_register_input_format(&aac_iformat); av_register_input_format(&dts_iformat); av_register_input_format(&h261_iformat); av_register_output_format(&h261_oformat); av_register_input_format(&h263_iformat); av_register_output_format(&h263_oformat); av_register_input_format(&m4v_iformat); av_register_output_format(&m4v_oformat); av_register_input_format(&h264_iformat); av_register_output_format(&h264_oformat); av_register_input_format(&mpegvideo_iformat); av_register_output_format(&mpeg1video_oformat); av_register_output_format(&mpeg2video_oformat); av_register_input_format(&mjpeg_iformat); av_register_output_format(&mjpeg_oformat); av_register_input_format(&ingenient_iformat); av_register_input_format(&pcm_s16le_iformat); av_register_output_format(&pcm_s16le_oformat); av_register_input_format(&pcm_s16be_iformat); av_register_output_format(&pcm_s16be_oformat); av_register_input_format(&pcm_u16le_iformat); av_register_output_format(&pcm_u16le_oformat); av_register_input_format(&pcm_u16be_iformat); av_register_output_format(&pcm_u16be_oformat); av_register_input_format(&pcm_s8_iformat); av_register_output_format(&pcm_s8_oformat); av_register_input_format(&pcm_u8_iformat); av_register_output_format(&pcm_u8_oformat); av_register_input_format(&pcm_mulaw_iformat); av_register_output_format(&pcm_mulaw_oformat); av_register_input_format(&pcm_alaw_iformat); av_register_output_format(&pcm_alaw_oformat); av_register_input_format(&rawvideo_iformat); av_register_output_format(&rawvideo_oformat); av_register_output_format(&null_oformat); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -