[FFmpeg-devel] [PATCH 3/5] metadata: add av_metadata_clone_ctx() function
Anton Khirnov
anton
Sun Oct 3 21:14:24 CEST 2010
From: Anton Khirnov <wyskas at gmail.com>
---
libavformat/avformat.h | 7 +++++++
libavformat/metadata.c | 17 +++++++++++++++++
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index a9fb39f..ab4cf05 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -214,6 +214,13 @@ int av_metadata_clone(AVMetadata **src, AVMetadata **dst, const AVMetadataConv *
const char *pattern, int flags);
/**
+ * Clone all (global, per-stream, per-program, per-chapter) metadata from src to
+ * dst. Parameters have the same meaning as for av_metadata_clone().
+ */
+void av_metadata_clone_ctx(struct AVFormatContext *src, struct AVFormatContext *dst,
+ const AVMetadataConv *dst_fmt, const uint8_t *pattern, int flags);
+
+/**
* Free all the memory allocated for an AVMetadata struct.
*/
void av_metadata_free(AVMetadata **m);
diff --git a/libavformat/metadata.c b/libavformat/metadata.c
index 2a91219..16ddb34 100644
--- a/libavformat/metadata.c
+++ b/libavformat/metadata.c
@@ -211,3 +211,20 @@ int av_metadata_clone(AVMetadata **src, AVMetadata **dst, const AVMetadataConv *
return 0;
}
+
+void av_metadata_clone_ctx(AVFormatContext *src, AVFormatContext *dst, const AVMetadataConv *dst_fmt,
+ const uint8_t *pattern, int flags)
+{
+ int i;
+ av_metadata_clone(&src->metadata, &dst->metadata, dst_fmt, pattern, flags);
+ for (i = 0; i < FFMIN(src->nb_streams, dst->nb_streams); i++)
+ av_metadata_clone(&src->streams[i]->metadata, &dst->streams[i]->metadata,
+ dst_fmt, pattern, flags);
+ for (i = 0; i < FFMIN(src->nb_chapters, dst->nb_chapters); i++)
+ av_metadata_clone(&src->chapters[i]->metadata, &dst->chapters[i]->metadata,
+ dst_fmt, pattern, flags);
+ for (i = 0; i < FFMIN(src->nb_programs, dst->nb_programs); i++)
+ av_metadata_clone(&src->programs[i]->metadata, &dst->programs[i]->metadata,
+ dst_fmt, pattern, flags);
+
+}
--
1.7.1
More information about the ffmpeg-devel
mailing list