| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * AVI muxer | 2  * AVI muxer | 
| 3  * Copyright (c) 2000 Fabrice Bellard | 3  * Copyright (c) 2000 Fabrice Bellard | 
| 4  * | 4  * | 
| 5  * This file is part of FFmpeg. | 5  * This file is part of FFmpeg. | 
| 6  * | 6  * | 
| 7  * FFmpeg is free software; you can redistribute it and/or | 7  * FFmpeg is free software; you can redistribute it and/or | 
| 8  * modify it under the terms of the GNU Lesser General Public | 8  * modify it under the terms of the GNU Lesser General Public | 
| 9  * License as published by the Free Software Foundation; either | 9  * License as published by the Free Software Foundation; either | 
| 10  * version 2.1 of the License, or (at your option) any later version. | 10  * version 2.1 of the License, or (at your option) any later version. | 
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 283             break; | 283             break; | 
| 284         case AVMEDIA_TYPE_AUDIO: | 284         case AVMEDIA_TYPE_AUDIO: | 
| 285             if (ff_put_wav_header(pb, stream) < 0) { | 285             if (ff_put_wav_header(pb, stream) < 0) { | 
| 286                 return -1; | 286                 return -1; | 
| 287             } | 287             } | 
| 288             break; | 288             break; | 
| 289         default: | 289         default: | 
| 290             return -1; | 290             return -1; | 
| 291         } | 291         } | 
| 292         ff_end_tag(pb, strf); | 292         ff_end_tag(pb, strf); | 
| 293         if ((t = av_metadata_get(s->streams[i]->metadata, "strn", NULL, 0))) { | 293         if ((t = av_metadata_get(s->streams[i]->metadata, "title", NULL, 0))) { | 
| 294             avi_write_info_tag(s->pb, t->key, t->value); |  | 
| 295             t = NULL; |  | 
| 296         } |  | 
| 297         //FIXME a limitation of metadata conversion system |  | 
| 298         else if ((t = av_metadata_get(s->streams[i]->metadata, "INAM", NULL, 0))
     ) { |  | 
| 299             avi_write_info_tag(s->pb, "strn", t->value); | 294             avi_write_info_tag(s->pb, "strn", t->value); | 
| 300             t = NULL; | 295             t = NULL; | 
| 301         } | 296         } | 
| 302       } | 297       } | 
| 303 | 298 | 
| 304         if (!url_is_streamed(pb)) { | 299         if (!url_is_streamed(pb)) { | 
| 305             unsigned char tag[5]; | 300             unsigned char tag[5]; | 
| 306             int j; | 301             int j; | 
| 307 | 302 | 
| 308             /* Starting to lay out AVI OpenDML master index. | 303             /* Starting to lay out AVI OpenDML master index. | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 368         put_le32(pb, 248); | 363         put_le32(pb, 248); | 
| 369         for (i = 0; i < 248; i+= 4) | 364         for (i = 0; i < 248; i+= 4) | 
| 370              put_le32(pb, 0); | 365              put_le32(pb, 0); | 
| 371         ff_end_tag(pb, avi->odml_list); | 366         ff_end_tag(pb, avi->odml_list); | 
| 372     } | 367     } | 
| 373 | 368 | 
| 374     ff_end_tag(pb, list1); | 369     ff_end_tag(pb, list1); | 
| 375 | 370 | 
| 376     list2 = ff_start_tag(pb, "LIST"); | 371     list2 = ff_start_tag(pb, "LIST"); | 
| 377     put_tag(pb, "INFO"); | 372     put_tag(pb, "INFO"); | 
|  | 373     ff_metadata_conv(&s->metadata, ff_avi_metadata_conv, NULL); | 
| 378     for (i = 0; *ff_avi_tags[i]; i++) { | 374     for (i = 0; *ff_avi_tags[i]; i++) { | 
| 379         if ((t = av_metadata_get(s->metadata, ff_avi_tags[i], NULL, AV_METADATA_
     MATCH_CASE))) | 375         if ((t = av_metadata_get(s->metadata, ff_avi_tags[i], NULL, AV_METADATA_
     MATCH_CASE))) | 
| 380             avi_write_info_tag(s->pb, t->key, t->value); | 376             avi_write_info_tag(s->pb, t->key, t->value); | 
| 381     } | 377     } | 
| 382     ff_end_tag(pb, list2); | 378     ff_end_tag(pb, list2); | 
| 383 | 379 | 
| 384     /* some padding for easier tag editing */ | 380     /* some padding for easier tag editing */ | 
| 385     list2 = ff_start_tag(pb, "JUNK"); | 381     list2 = ff_start_tag(pb, "JUNK"); | 
| 386     for (i = 0; i < 1016; i += 4) | 382     for (i = 0; i < 1016; i += 4) | 
| 387         put_le32(pb, 0); | 383         put_le32(pb, 0); | 
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 640     "video/x-msvideo", | 636     "video/x-msvideo", | 
| 641     "avi", | 637     "avi", | 
| 642     sizeof(AVIContext), | 638     sizeof(AVIContext), | 
| 643     CODEC_ID_MP2, | 639     CODEC_ID_MP2, | 
| 644     CODEC_ID_MPEG4, | 640     CODEC_ID_MPEG4, | 
| 645     avi_write_header, | 641     avi_write_header, | 
| 646     avi_write_packet, | 642     avi_write_packet, | 
| 647     avi_write_trailer, | 643     avi_write_trailer, | 
| 648     .codec_tag= (const AVCodecTag* const []){ff_codec_bmp_tags, ff_codec_wav_tag
     s, 0}, | 644     .codec_tag= (const AVCodecTag* const []){ff_codec_bmp_tags, ff_codec_wav_tag
     s, 0}, | 
| 649     .flags= AVFMT_VARIABLE_FPS, | 645     .flags= AVFMT_VARIABLE_FPS, | 
| 650     .metadata_conv = ff_avi_metadata_conv, |  | 
| 651 }; | 646 }; | 
| OLD | NEW | 
|---|