raw.c
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C语言 代码 · 共 972 行 · 第 1/2 页
C
972 行
AVInputFormat ac3_demuxer = { "ac3", NULL_IF_CONFIG_SMALL("raw AC-3"), 0, ac3_probe, audio_read_header, raw_read_partial_packet, raw_read_close, .flags= AVFMT_GENERIC_INDEX, .extensions = "ac3", .value = CODEC_ID_AC3,};#endif#ifdef CONFIG_MUXERSAVOutputFormat ac3_muxer = { "ac3", NULL_IF_CONFIG_SMALL("raw AC-3"), "audio/x-ac3", "ac3", 0, CODEC_ID_AC3, CODEC_ID_NONE, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};AVOutputFormat dts_muxer = { "dts", NULL_IF_CONFIG_SMALL("raw DTS"), "audio/x-dca", "dts", 0, CODEC_ID_DTS, CODEC_ID_NONE, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat dirac_demuxer = { "dirac", NULL_IF_CONFIG_SMALL("raw Dirac"), 0, dirac_probe, video_read_header, raw_read_partial_packet, raw_read_close, .flags= AVFMT_GENERIC_INDEX, .value = CODEC_ID_DIRAC,};#ifdef CONFIG_MUXERSAVOutputFormat dirac_muxer = { "dirac", NULL_IF_CONFIG_SMALL("raw Dirac"), NULL, "drc", 0, CODEC_ID_NONE, CODEC_ID_DIRAC, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endifAVInputFormat dts_demuxer = { "dts", NULL_IF_CONFIG_SMALL("raw DTS"), 0, dts_probe, audio_read_header, raw_read_partial_packet, raw_read_close, .flags= AVFMT_GENERIC_INDEX, .extensions = "dts", .value = CODEC_ID_DTS,};AVInputFormat aac_demuxer = { "aac", NULL_IF_CONFIG_SMALL("ADTS AAC"), 0, NULL, audio_read_header, raw_read_partial_packet, raw_read_close, .flags= AVFMT_GENERIC_INDEX, .extensions = "aac", .value = CODEC_ID_AAC,};AVInputFormat gsm_demuxer = { "gsm", NULL_IF_CONFIG_SMALL("GSM"), 0, NULL, audio_read_header, raw_read_partial_packet, raw_read_close, .flags= AVFMT_GENERIC_INDEX, .extensions = "gsm", .value = CODEC_ID_GSM,};#ifdef CONFIG_ROQ_MUXERAVOutputFormat roq_muxer ={ "RoQ", NULL_IF_CONFIG_SMALL("id RoQ format"), NULL, "roq", 0, CODEC_ID_ROQ_DPCM, CODEC_ID_ROQ, roq_write_header, raw_write_packet,};#endif //CONFIG_ROQ_MUXERAVInputFormat h261_demuxer = { "h261", NULL_IF_CONFIG_SMALL("raw H.261"), 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_MUXERSAVOutputFormat h261_muxer = { "h261", NULL_IF_CONFIG_SMALL("raw H.261"), "video/x-h261", "h261", 0, CODEC_ID_NONE, CODEC_ID_H261, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat h263_demuxer = { "h263", NULL_IF_CONFIG_SMALL("raw H.263"), 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_MUXERSAVOutputFormat h263_muxer = { "h263", NULL_IF_CONFIG_SMALL("raw H.263"), "video/x-h263", "h263", 0, CODEC_ID_NONE, CODEC_ID_H263, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat m4v_demuxer = { "m4v", NULL_IF_CONFIG_SMALL("raw MPEG-4 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_MUXERSAVOutputFormat m4v_muxer = { "m4v", NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), NULL, "m4v", 0, CODEC_ID_NONE, CODEC_ID_MPEG4, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat h264_demuxer = { "h264", NULL_IF_CONFIG_SMALL("raw H.264 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_MUXERSAVOutputFormat h264_muxer = { "h264", NULL_IF_CONFIG_SMALL("raw H.264 video format"), NULL, "h264", 0, CODEC_ID_NONE, CODEC_ID_H264, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat mpegvideo_demuxer = { "mpegvideo", NULL_IF_CONFIG_SMALL("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_MUXERSAVOutputFormat mpeg1video_muxer = { "mpeg1video", NULL_IF_CONFIG_SMALL("MPEG video"), "video/x-mpeg", "mpg,mpeg,m1v", 0, CODEC_ID_NONE, CODEC_ID_MPEG1VIDEO, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERS#ifdef CONFIG_MUXERSAVOutputFormat mpeg2video_muxer = { "mpeg2video", NULL_IF_CONFIG_SMALL("MPEG-2 video"), NULL, "m2v", 0, CODEC_ID_NONE, CODEC_ID_MPEG2VIDEO, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat mjpeg_demuxer = { "mjpeg", NULL_IF_CONFIG_SMALL("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", NULL_IF_CONFIG_SMALL("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_MUXERSAVOutputFormat mjpeg_muxer = { "mjpeg", NULL_IF_CONFIG_SMALL("MJPEG video"), "video/x-mjpeg", "mjpg,mjpeg", 0, CODEC_ID_NONE, CODEC_ID_MJPEG, NULL, raw_write_packet, .flags= AVFMT_NOTIMESTAMPS,};#endif //CONFIG_MUXERSAVInputFormat vc1_demuxer = { "vc1", NULL_IF_CONFIG_SMALL("raw VC-1"), 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,\ NULL_IF_CONFIG_SMALL(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,\ NULL_IF_CONFIG_SMALL(long_name),\ NULL,\ ext,\ 0,\ codec,\ CODEC_ID_NONE,\ 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#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->pts= pkt->dts= pkt->pos / packet_size; pkt->stream_index = 0; if (ret != packet_size) { return AVERROR(EIO); } else { return 0; }}AVInputFormat rawvideo_demuxer = { "rawvideo", NULL_IF_CONFIG_SMALL("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_MUXERSAVOutputFormat rawvideo_muxer = { "rawvideo", NULL_IF_CONFIG_SMALL("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_MUXERSstatic int null_write_packet(struct AVFormatContext *s, AVPacket *pkt){ return 0;}AVOutputFormat null_muxer = { "null", NULL_IF_CONFIG_SMALL("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 + =
减小字号Ctrl + -
显示快捷键?