⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 raw.c

📁 ffmpeg源码分析
💻 C
📖 第 1 页 / 共 2 页
字号:
    "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 + -