Commit 355de3be authored by michael's avatar michael

quick patch for adding 3g2 support to ffmpeg (muxer and demuxer). No movie...

quick patch for adding 3g2 support to ffmpeg (muxer and demuxer). No movie fragment support yet patch by (tjraivio cc.hut fi)


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@3959 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 52eb23d4
......@@ -2239,7 +2239,7 @@ static int mov_read_close(AVFormatContext *s)
}
static AVInputFormat mov_iformat = {
"mov,mp4,m4a,3gp",
"mov,mp4,m4a,3gp,3g2",
"QuickTime/MPEG4 format",
sizeof(MOVContext),
mov_probe,
......
......@@ -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;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment