From 27e084bd61c9aea372876bdc543732c2dc5e056a Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Wed, 15 Aug 2001 13:06:33 +0000 Subject: [PATCH] added raw mjpeg Originally committed as revision 94 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libav/raw.c | 32 ++++++++++++++++++++++++++------ libav/utils.c | 2 ++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/libav/raw.c b/libav/raw.c index ecdce89492..7e4965e9ef 100644 --- a/libav/raw.c +++ b/libav/raw.c @@ -76,11 +76,10 @@ static int raw_read_header(AVFormatContext *s, st->codec.height = ap->height; break; default: - abort(); - break; + return -1; } } else { - abort(); + return -1; } return 0; } @@ -130,9 +129,7 @@ static int mp3_read_header(AVFormatContext *s, st->codec.codec_type = CODEC_TYPE_AUDIO; st->codec.codec_id = CODEC_ID_MP2; - /* XXX: read the first frame and extract rate and channels */ - st->codec.sample_rate = 44100; - st->codec.channels = 2; + /* the parameters will be extracted from the compressed bitstream */ return 0; } @@ -150,6 +147,14 @@ static int video_read_header(AVFormatContext *s, st->codec.codec_type = CODEC_TYPE_VIDEO; st->codec.codec_id = s->format->video_codec; + /* for mjpeg, specify frame rate */ + if (st->codec.codec_id == CODEC_ID_MJPEG) { + if (ap) { + st->codec.frame_rate = ap->frame_rate; + } else { + st->codec.frame_rate = 25 * FRAME_RATE_BASE; + } + } return 0; } @@ -211,6 +216,21 @@ AVFormat mpeg1video_format = { raw_read_close, }; +AVFormat mjpeg_format = { + "mjpeg", + "MJPEG video", + "video/x-mjpeg", + "mjpg,mjpeg", + 0, + CODEC_ID_MJPEG, + raw_write_header, + raw_write_packet, + raw_write_trailer, + video_read_header, + raw_read_packet, + raw_read_close, +}; + AVFormat pcm_format = { "pcm", "pcm raw format", diff --git a/libav/utils.c b/libav/utils.c index b5f4697de9..87f3f01da6 100644 --- a/libav/utils.c +++ b/libav/utils.c @@ -132,12 +132,14 @@ void register_all(void) register_avformat(&ac3_format); register_avformat(&mpeg_mux_format); register_avformat(&mpeg1video_format); + register_avformat(&mjpeg_format); register_avformat(&h263_format); register_avformat(&rm_format); register_avformat(&asf_format); register_avformat(&avi_format); register_avformat(&mpjpeg_format); register_avformat(&jpeg_format); + register_avformat(&single_jpeg_format); register_avformat(&swf_format); register_avformat(&wav_format); register_avformat(&pcm_format); -- GitLab