Commit 1522767d authored by Baptiste Coudurier's avatar Baptiste Coudurier Committed by Michael Niedermayer

compute output format before setting language patch by (Baptiste COUDURIER...

compute output format before setting language patch by (Baptiste COUDURIER <baptiste.coudurier smartjog com)

Originally committed as revision 5093 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 289f999d
...@@ -1389,6 +1389,27 @@ static int mov_write_header(AVFormatContext *s) ...@@ -1389,6 +1389,27 @@ static int mov_write_header(AVFormatContext *s)
MOVContext *mov = s->priv_data; MOVContext *mov = s->priv_data;
int i; int i;
/* Default mode == MP4 */
mov->mode = MODE_MP4;
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_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 ) {
av_log(s, AV_LOG_ERROR, "PSP mode need one video and one audio stream\n");
return -1;
}
mov_write_uuidprof_tag(pb,s);
}
}
for(i=0; i<s->nb_streams; i++){ for(i=0; i<s->nb_streams; i++){
AVCodecContext *c= s->streams[i]->codec; AVCodecContext *c= s->streams[i]->codec;
...@@ -1409,29 +1430,7 @@ static int mov_write_header(AVFormatContext *s) ...@@ -1409,29 +1430,7 @@ static int mov_write_header(AVFormatContext *s)
av_log(s, AV_LOG_INFO, "Warning, using MS style audio codec tag, the file may be unplayable!\n"); av_log(s, AV_LOG_INFO, "Warning, using MS style audio codec tag, the file may be unplayable!\n");
} }
} }
/* don't know yet if mp4 or not */ mov->tracks[i].language = ff_mov_iso639_to_lang(s->streams[i]->language, mov->mode != MODE_MOV);
mov->tracks[i].language = ff_mov_iso639_to_lang(s->streams[i]->language, 1);
}
/* Default mode == MP4 */
mov->mode = MODE_MP4;
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_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 ) {
av_log(s, AV_LOG_ERROR, "PSP mode need one video and one audio stream\n");
return -1;
}
mov_write_uuidprof_tag(pb,s);
}
} }
for (i=0; i<MAX_STREAMS; i++) { for (i=0; i<MAX_STREAMS; i++) {
......
...@@ -137,7 +137,7 @@ stddev: 0.00 PSNR:99.99 bytes:7602176 ...@@ -137,7 +137,7 @@ stddev: 0.00 PSNR:99.99 bytes:7602176
7200000 ./data/a-dv.dv 7200000 ./data/a-dv.dv
c2082cd8adf417c4ebc32654e446cba1 *./data/out.yuv c2082cd8adf417c4ebc32654e446cba1 *./data/out.yuv
stddev: 8.86 PSNR:29.17 bytes:7602176 stddev: 8.86 PSNR:29.17 bytes:7602176
bd0db310a36ad94bcd4448abe0a88368 *./data/a-svq1.mov 733d55faec85f437f534771c145973d2 *./data/a-svq1.mov
1379827 ./data/a-svq1.mov 1379827 ./data/a-svq1.mov
bbff871d1475e1eee4231a08e075de2c *./data/out.yuv bbff871d1475e1eee4231a08e075de2c *./data/out.yuv
stddev: 10.99 PSNR:27.30 bytes:7602176 stddev: 10.99 PSNR:27.30 bytes:7602176
......
...@@ -22,7 +22,7 @@ c9050b51f6d6636cdda3160d43463bc3 *./data/b-libav.ts ...@@ -22,7 +22,7 @@ c9050b51f6d6636cdda3160d43463bc3 *./data/b-libav.ts
794934a02582f8dfc85d1856514cf37c *./data/b-libav.flv 794934a02582f8dfc85d1856514cf37c *./data/b-libav.flv
339325 ./data/b-libav.flv 339325 ./data/b-libav.flv
./data/b-libav.flv CRC=0x7b9076f8 ./data/b-libav.flv CRC=0x7b9076f8
e4ed8d635d867e2f5980fd9c73c9cf3d *./data/b-libav.mov 4eecc0b7b09a6696f6d0f811f637612e *./data/b-libav.mov
369873 ./data/b-libav.mov 369873 ./data/b-libav.mov
./data/b-libav.mov CRC=0x48f5a90d ./data/b-libav.mov CRC=0x48f5a90d
8bf16d40a2ec19fa36b124a928e47e23 *./data/b-libav.nut 8bf16d40a2ec19fa36b124a928e47e23 *./data/b-libav.nut
......
...@@ -137,7 +137,7 @@ stddev: 0.00 PSNR:99.99 bytes:7602176 ...@@ -137,7 +137,7 @@ stddev: 0.00 PSNR:99.99 bytes:7602176
7200000 ./data/a-dv.dv 7200000 ./data/a-dv.dv
bb69dda7a84a5b166434e28e1243d3d1 *./data/out.yuv bb69dda7a84a5b166434e28e1243d3d1 *./data/out.yuv
stddev: 2.99 PSNR:38.59 bytes:7602176 stddev: 2.99 PSNR:38.59 bytes:7602176
5b02b6ae7ffa257a66ae9857a992fdfe *./data/a-svq1.mov e4896d19f536c420cb17fac162d1f95b *./data/a-svq1.mov
769527 ./data/a-svq1.mov 769527 ./data/a-svq1.mov
44777d1ddbccd0ef7f8d08394465670c *./data/out.yuv 44777d1ddbccd0ef7f8d08394465670c *./data/out.yuv
stddev: 3.44 PSNR:37.38 bytes:7602176 stddev: 3.44 PSNR:37.38 bytes:7602176
......
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