]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/f_sendcmd.c
lavfi/sendcmd: improve error reporting and robustness in case of missing commands
[ffmpeg] / libavfilter / f_sendcmd.c
index e1e649c5082ec7e7cdd74330964602aff3a65d9c..7cb958b7898c696b44f1a285c43419dfc874e208 100644 (file)
@@ -318,6 +318,9 @@ static int parse_intervals(Interval **intervals, int *nb_intervals,
     *intervals = NULL;
     *nb_intervals = 0;
 
+    if (!buf)
+        return 0;
+
     while (1) {
         Interval interval;
 
@@ -373,9 +376,9 @@ static av_cold int init(AVFilterContext *ctx)
     SendCmdContext *sendcmd = ctx->priv;
     int ret, i, j;
 
-    if (sendcmd->commands_filename && sendcmd->commands_str) {
+    if ((!!sendcmd->commands_filename + !!sendcmd->commands_str) != 1) {
         av_log(ctx, AV_LOG_ERROR,
-               "Only one of the filename or commands options must be specified\n");
+               "One and only one of the filename or commands options must be specified\n");
         return AVERROR(EINVAL);
     }
 
@@ -404,7 +407,7 @@ static av_cold int init(AVFilterContext *ctx)
         return ret;
 
     if (sendcmd->nb_intervals == 0) {
-        av_log(ctx, AV_LOG_ERROR, "No commands\n");
+        av_log(ctx, AV_LOG_ERROR, "No commands were specified\n");
         return AVERROR(EINVAL);
     }