Mercurial > libavformat.hg
changeset 677:6d6a11ba402a libavformat
quick patch for adding 3g2 support to ffmpeg (muxer and demuxer). No movie fragment support yet patch by (tjraivio cc.hut fi)
author | michael |
---|---|
date | Wed, 16 Feb 2005 23:14:38 +0000 |
parents | 8512c400e3bc |
children | 9b2cda2905cc |
files | mov.c movenc.c |
diffstat | 2 files changed, 23 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mov.c Wed Feb 16 23:11:11 2005 +0000 +++ b/mov.c Wed Feb 16 23:14:38 2005 +0000 @@ -2239,7 +2239,7 @@ } static AVInputFormat mov_iformat = { - "mov,mp4,m4a,3gp", + "mov,mp4,m4a,3gp,3g2", "QuickTime/MPEG4 format", sizeof(MOVContext), mov_probe,
--- a/movenc.c Wed Feb 16 23:11:11 2005 +0000 +++ b/movenc.c Wed Feb 16 23:14:38 2005 +0000 @@ -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 @@ 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 @@ 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 @@ 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 @@ 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; }