X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fnutenc.c;h=e06a85f54fb3565cd2a250c7bb3d1ec8ea4f45e4;hb=47b229dbabfebf3ae0b45583514e8f282ca612a8;hp=3482d5234a30a58605a70422286e6c1555104428;hpb=259182121336fdb1d15be50b3693904f1e2879e7;p=ffmpeg diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c index 3482d5234a3..e06a85f54fb 100644 --- a/libavformat/nutenc.c +++ b/libavformat/nutenc.c @@ -448,6 +448,7 @@ static int add_info(ByteIOContext *bc, const char *type, const char *value){ static int write_globalinfo(NUTContext *nut, ByteIOContext *bc){ AVFormatContext *s= nut->avf; + AVMetadataTag *t = NULL; ByteIOContext *dyn_bc; uint8_t *dyn_buf=NULL; int count=0, dyn_size; @@ -455,11 +456,8 @@ static int write_globalinfo(NUTContext *nut, ByteIOContext *bc){ if(ret < 0) return ret; - if(s->title [0]) count+= add_info(dyn_bc, "Title" , s->title); - if(s->author [0]) count+= add_info(dyn_bc, "Author" , s->author); - if(s->copyright[0]) count+= add_info(dyn_bc, "Copyright", s->copyright); - if(!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) - count+= add_info(dyn_bc, "Encoder" , LIBAVFORMAT_IDENT); + while ((t = av_metadata_get(s->metadata, "", t, AV_METADATA_IGNORE_SUFFIX))) + count += add_info(dyn_bc, t->key, t->value); put_v(bc, 0); //stream_if_plus1 put_v(bc, 0); //chapter_id @@ -799,6 +797,9 @@ static int write_trailer(AVFormatContext *s){ while(nut->header_count<3) write_headers(nut, bc); put_flush_packet(bc); + ff_nut_free_sp(nut); + av_freep(&nut->stream); + av_freep(&nut->time_base); return 0; } @@ -821,5 +822,6 @@ AVOutputFormat nut_muxer = { write_packet, write_trailer, .flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS, - .codec_tag= (const AVCodecTag* const []){codec_bmp_tags, codec_wav_tags, ff_nut_subtitle_tags, 0}, + .codec_tag= (const AVCodecTag* const []){ff_codec_bmp_tags, ff_codec_wav_tags, ff_nut_subtitle_tags, 0}, + .metadata_conv = ff_nut_metadata_conv, };