[FFmpeg-cvslog] r22015 - in trunk/libavformat: nut.c nut.h nutdec.c nutenc.c
kostya
subversion
Wed Feb 24 07:27:12 CET 2010
Author: kostya
Date: Wed Feb 24 07:27:12 2010
New Revision: 22015
Log:
Introduce metadata conversion table for NUT encoder.
Patch by Anton Khirnov (wyskas, do no evil mail)
Thread "[PATCH] nut metadata conversion table"
Modified:
trunk/libavformat/nut.c
trunk/libavformat/nut.h
trunk/libavformat/nutdec.c
trunk/libavformat/nutenc.c
Modified: trunk/libavformat/nut.c
==============================================================================
--- trunk/libavformat/nut.c Wed Feb 24 07:14:59 2010 (r22014)
+++ trunk/libavformat/nut.c Wed Feb 24 07:27:12 2010 (r22015)
@@ -79,3 +79,16 @@ const Dispositions ff_nut_dispositions[]
{"" , 0}
};
+const AVMetadataConv ff_nut_metadata_conv[] = {
+ { "Author", "artist" },
+ { "X-CreationTime", "date" },
+ { "CreationTime", "date" },
+ { "SourceFilename", "filename" },
+ { "X-Language", "language" },
+ { "X-Disposition", "disposition" },
+ { "X-Replaces", "replaces" },
+ { "X-Depends", "depends" },
+ { "X-Uses", "uses" },
+ { "X-UsesFont", "usesfont" },
+ { 0 },
+};
Modified: trunk/libavformat/nut.h
==============================================================================
--- trunk/libavformat/nut.h Wed Feb 24 07:14:59 2010 (r22014)
+++ trunk/libavformat/nut.h Wed Feb 24 07:27:12 2010 (r22015)
@@ -27,6 +27,7 @@
//#include "libavcodec/mpegaudio.h"
#include "avformat.h"
#include "riff.h"
+#include "metadata.h"
#define MAIN_STARTCODE (0x7A561F5F04ADULL + (((uint64_t)('N'<<8) + 'M')<<48))
#define STREAM_STARTCODE (0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48))
@@ -112,4 +113,6 @@ void ff_nut_add_sp(NUTContext *nut, int6
extern const Dispositions ff_nut_dispositions[];
+extern const AVMetadataConv ff_nut_metadata_conv[];
+
#endif /* AVFORMAT_NUT_H */
Modified: trunk/libavformat/nutdec.c
==============================================================================
--- trunk/libavformat/nutdec.c Wed Feb 24 07:14:59 2010 (r22014)
+++ trunk/libavformat/nutdec.c Wed Feb 24 07:27:12 2010 (r22015)
@@ -915,5 +915,6 @@ AVInputFormat nut_demuxer = {
nut_read_close,
read_seek,
.extensions = "nut",
+ .metadata_conv = ff_nut_metadata_conv,
};
#endif
Modified: trunk/libavformat/nutenc.c
==============================================================================
--- trunk/libavformat/nutenc.c Wed Feb 24 07:14:59 2010 (r22014)
+++ trunk/libavformat/nutenc.c Wed Feb 24 07:27:12 2010 (r22015)
@@ -448,7 +448,7 @@ static int add_info(ByteIOContext *bc, c
static int write_globalinfo(NUTContext *nut, ByteIOContext *bc){
AVFormatContext *s= nut->avf;
- AVMetadataTag *title, *author, *copyright;
+ AVMetadataTag *t = NULL;
ByteIOContext *dyn_bc;
uint8_t *dyn_buf=NULL;
int count=0, dyn_size;
@@ -456,15 +456,8 @@ static int write_globalinfo(NUTContext *
if(ret < 0)
return ret;
- title = av_metadata_get(s->metadata, "Title" , NULL, 0);
- author = av_metadata_get(s->metadata, "Author" , NULL, 0);
- copyright = av_metadata_get(s->metadata, "Copyright", NULL, 0);
-
- if(title ) count+= add_info(dyn_bc, "Title" , title->value);
- if(author ) count+= add_info(dyn_bc, "Author" , author->value);
- if(copyright) count+= add_info(dyn_bc, "Copyright", copyright->value);
- 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
@@ -827,4 +820,5 @@ AVOutputFormat nut_muxer = {
write_trailer,
.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS,
.codec_tag= (const AVCodecTag* const []){ff_codec_bmp_tags, ff_codec_wav_tags, ff_nut_subtitle_tags, 0},
+ .metadata_conv = ff_nut_metadata_conv,
};
More information about the ffmpeg-cvslog
mailing list