mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavfi/metadata: allow deleting all metadata
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
d946424f19
commit
7ef3e5b593
@ -16059,7 +16059,8 @@ Modify value of already present key.
|
||||
|
||||
@item delete
|
||||
If @code{value} is set, delete only keys that have such value.
|
||||
Otherwise, delete key.
|
||||
Otherwise, delete key. If @code{key} is not set, delete all metadata values in
|
||||
the frame.
|
||||
|
||||
@item print
|
||||
Print key and its value if metadata was found. If @code{key} is not set print all
|
||||
@ -16067,7 +16068,7 @@ metadata values available in frame.
|
||||
@end table
|
||||
|
||||
@item key
|
||||
Set key used with all modes. Must be set for all modes except @code{print}.
|
||||
Set key used with all modes. Must be set for all modes except @code{print} and @code{delete}.
|
||||
|
||||
@item value
|
||||
Set metadata value which will be used. This option is mandatory for
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user