diff options
author | tjraivio@cc.hut.fi <tjraivio@cc.hut.fi> | 2005-02-16 23:14:38 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2005-02-16 23:14:38 +0000 |
commit | 8536ab896443f75291252f47a590d05b901fb983 (patch) | |
tree | ab2c004da859c9934f4566c97d7842e5a532998b /libavformat/movenc.c | |
parent | 0078e9b9c5ea90ce51bc4a0c1eaff32167256d4d (diff) | |
download | ffmpeg-8536ab896443f75291252f47a590d05b901fb983.tar.gz |
quick patch for adding 3g2 support to ffmpeg (muxer and demuxer). No movie fragment support yet patch by (tjraivio cc.hut fi)
Originally committed as revision 3959 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/movenc.c')
-rw-r--r-- | libavformat/movenc.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 39069b3dc5..85965786f9 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -32,6 +32,7 @@ #define MODE_3GP 2 #define MODE_PSP 3 // example working PSP command line: // ffmpeg -i testinput.avi -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4 +#define MODE_3G2 4 typedef struct MOVIentry { unsigned int flags, pos, size; @@ -1210,6 +1211,8 @@ int mov_write_ftyp_tag(ByteIOContext *pb, AVFormatContext *s) if ( mov->mode == MODE_3GP ) put_tag(pb, "3gp4"); + else if ( mov->mode == MODE_3G2 ) + put_tag(pb, "3g2a"); else if ( mov->mode == MODE_PSP ) put_tag(pb, "MSNV"); else @@ -1219,6 +1222,8 @@ int mov_write_ftyp_tag(ByteIOContext *pb, AVFormatContext *s) if ( mov->mode == MODE_3GP ) put_tag(pb, "3gp4"); + else if ( mov->mode == MODE_3G2 ) + put_tag(pb, "3g2a"); else if ( mov->mode == MODE_PSP ) put_tag(pb, "MSNV"); else @@ -1311,10 +1316,12 @@ static int mov_write_header(AVFormatContext *s) if (s->oformat != NULL) { if (!strcmp("3gp", s->oformat->name)) mov->mode = MODE_3GP; + else if (!strcmp("3g2", s->oformat->name)) mov->mode = MODE_3G2; else if (!strcmp("mov", s->oformat->name)) mov->mode = MODE_MOV; else if (!strcmp("psp", s->oformat->name)) mov->mode = MODE_PSP; - if ( mov->mode == MODE_3GP || mov->mode == MODE_MP4 || mov->mode == MODE_PSP ) + if ( mov->mode == MODE_3GP || mov->mode == MODE_3G2 || + mov->mode == MODE_MP4 || mov->mode == MODE_PSP ) mov_write_ftyp_tag(pb,s); if ( mov->mode == MODE_PSP ) { if ( s->nb_streams != 2 ) { @@ -1509,11 +1516,25 @@ static AVOutputFormat psp_oformat = { mov_write_trailer, }; +static AVOutputFormat _3g2_oformat = { + "3g2", + "3gp2 format", + NULL, + "3g2", + sizeof(MOVContext), + CODEC_ID_AMR_NB, + CODEC_ID_H263, + mov_write_header, + mov_write_packet, + mov_write_trailer, +}; + int movenc_init(void) { av_register_output_format(&mov_oformat); av_register_output_format(&_3gp_oformat); av_register_output_format(&mp4_oformat); av_register_output_format(&psp_oformat); + av_register_output_format(&_3g2_oformat); return 0; } |