From 7ef3e5b593fb984b318d971421a7e687ca69d536 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 1 Oct 2016 13:55:35 +0200 Subject: lavfi/metadata: allow deleting all metadata Reviewed-by: Paul B Mahol Signed-off-by: Marton Balint --- libavfilter/f_metadata.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libavfilter/f_metadata.c') diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c index 1fe713c34a..f4a929c1d5 100644 --- a/libavfilter/f_metadata.c +++ b/libavfilter/f_metadata.c @@ -194,7 +194,7 @@ static av_cold int init(AVFilterContext *ctx) MetadataContext *s = ctx->priv; int ret; - if (!s->key && s->mode != METADATA_PRINT) { + if (!s->key && s->mode != METADATA_PRINT && s->mode != METADATA_DELETE) { av_log(ctx, AV_LOG_WARNING, "Metadata key must be set\n"); return AVERROR(EINVAL); } @@ -328,7 +328,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) return ff_filter_frame(outlink, frame); break; case METADATA_DELETE: - if (e && e->value && s->value && s->compare(s, e->value, s->value)) { + if (!s->key) { + av_dict_free(metadata); + } else if (e && e->value && s->value && s->compare(s, e->value, s->value)) { av_dict_set(metadata, s->key, NULL, 0); } else if (e && e->value) { av_dict_set(metadata, s->key, NULL, 0); -- cgit v1.2.3