[FFmpeg-cvslog] ffmpeg_hw: Treat empty device string as no device setting

Mark Thompson git at videolan.org
Mon Jun 3 01:05:40 EEST 2019


ffmpeg | branch: master | Mark Thompson <sw at jkqxz.net> | Mon May  6 15:30:24 2019 +0100| [a4448637380d9397a7ea5d644e9853af90a66a89] | committer: Mark Thompson

ffmpeg_hw: Treat empty device string as no device setting

The implementation will use some default in this case.  The empty string
is not a meaningful device for any existing hardware type, and indeed
OpenCL treats it identically to no device already to work around the lack
of this setting on the command line.

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

 fftools/ffmpeg_hw.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/fftools/ffmpeg_hw.c b/fftools/ffmpeg_hw.c
index d454ae7179..962d8f7d5a 100644
--- a/fftools/ffmpeg_hw.c
+++ b/fftools/ffmpeg_hw.c
@@ -155,10 +155,12 @@ int hw_device_init_from_string(const char *arg, HWDevice **dev_out)
         ++p;
         q = strchr(p, ',');
         if (q) {
-            device = av_strndup(p, q - p);
-            if (!device) {
-                err = AVERROR(ENOMEM);
-                goto fail;
+            if (q - p > 0) {
+                device = av_strndup(p, q - p);
+                if (!device) {
+                    err = AVERROR(ENOMEM);
+                    goto fail;
+                }
             }
             err = av_dict_parse_string(&options, q + 1, "=", ",", 0);
             if (err < 0) {
@@ -168,7 +170,8 @@ int hw_device_init_from_string(const char *arg, HWDevice **dev_out)
         }
 
         err = av_hwdevice_ctx_create(&device_ref, type,
-                                     device ? device : p, options, 0);
+                                     q ? device : p[0] ? p : NULL,
+                                     options, 0);
         if (err < 0)
             goto fail;
 



More information about the ffmpeg-cvslog mailing list