ffmpeg | branch: master | Anton Khirnov <an...@khirnov.net> | Thu Aug  8 
17:35:55 2024 +0200| [00f5a34c9a5f0adee28aca11971918d6aca48745] | committer: 
Anton Khirnov

fftools/cmdutils: tighten condition for media type stream specifiers

Require the character indicating media type to be followed by a
non-alphanumeric character (or end of string).

Needed by future syntax extensions.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=00f5a34c9a5f0adee28aca11971918d6aca48745
---

 fftools/cmdutils.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index a9a7ff4194..1573106d8b 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -988,6 +988,12 @@ FILE *get_preset_file(char *filename, size_t filename_size,
     return f;
 }
 
+static int cmdutils_isalnum(char c)
+{
+    return (c >= '0' && c <= '9') ||
+           (c >= 'A' && c <= 'Z') ||
+           (c >= 'a' && c <= 'z');
+}
 
 void stream_specifier_uninit(StreamSpecifier *ss)
 {
@@ -1024,8 +1030,9 @@ int stream_specifier_parse(StreamSpecifier *ss, const 
char *spec,
 
             // this terminates the specifier
             break;
-        } else if (*spec == 'v' || *spec == 'a' || *spec == 's' || *spec == 
'd' ||
-                   *spec == 't' || *spec == 'V') { /* opt:[vasdtV] */
+        } else if ((*spec == 'v' || *spec == 'a' || *spec == 's' ||
+                    *spec == 'd' || *spec == 't' || *spec == 'V') &&
+                   !cmdutils_isalnum(*(spec + 1))) { /* opt:[vasdtV] */
             if (ss->media_type != AVMEDIA_TYPE_UNKNOWN) {
                 av_log(logctx, AV_LOG_ERROR, "Stream type specified multiple 
times\n");
                 ret = AVERROR(EINVAL);

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to