mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 08:42:39 +00: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
|
@item delete
|
||||||
If @code{value} is set, delete only keys that have such value.
|
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
|
@item print
|
||||||
Print key and its value if metadata was found. If @code{key} is not set print all
|
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
|
@end table
|
||||||
|
|
||||||
@item key
|
@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
|
@item value
|
||||||
Set metadata value which will be used. This option is mandatory for
|
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;
|
MetadataContext *s = ctx->priv;
|
||||||
int ret;
|
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");
|
av_log(ctx, AV_LOG_WARNING, "Metadata key must be set\n");
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
}
|
}
|
||||||
@ -328,7 +328,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
|||||||
return ff_filter_frame(outlink, frame);
|
return ff_filter_frame(outlink, frame);
|
||||||
break;
|
break;
|
||||||
case METADATA_DELETE:
|
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);
|
av_dict_set(metadata, s->key, NULL, 0);
|
||||||
} else if (e && e->value) {
|
} else if (e && e->value) {
|
||||||
av_dict_set(metadata, s->key, NULL, 0);
|
av_dict_set(metadata, s->key, NULL, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user