diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi index a38a32e17d..7d3266af8e 100644 --- a/doc/ffmpeg.texi +++ b/doc/ffmpeg.texi @@ -339,8 +339,8 @@ see @ref{date syntax,,the Date section in the ffmpeg-utils(1) manual,ffmpeg-util Set a metadata key/value pair. An optional @var{metadata_specifier} may be given to set metadata -on streams or chapters. See @code{-map_metadata} documentation for -details. +on streams, chapters or programs. See @code{-map_metadata} +documentation for details. This option overrides metadata set with @code{-map_metadata}. It is also possible to delete metadata by using an empty value. diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index e03ad891d0..669976bcb0 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -2466,6 +2466,13 @@ loop_end: } m = &oc->chapters[index]->metadata; break; + case 'p': + if (index < 0 || index >= oc->nb_programs) { + av_log(NULL, AV_LOG_FATAL, "Invalid program index %d in metadata specifier.\n", index); + exit_program(1); + } + m = &oc->programs[index]->metadata; + break; default: av_log(NULL, AV_LOG_FATAL, "Invalid metadata specifier %s.\n", o->metadata[i].specifier); exit_program(1);