diff options
author | Mark Thompson <sw@jkqxz.net> | 2019-05-06 15:30:24 +0100 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2019-06-02 22:58:22 +0100 |
commit | a4448637380d9397a7ea5d644e9853af90a66a89 (patch) | |
tree | 82fcc5a87c5dc48927f20a5fe60b97fc51fb2835 | |
parent | 1f8b36329f20ea08eafe3823b1e1b3785d74768d (diff) |
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.
-rw-r--r-- | fftools/ffmpeg_hw.c | 13 |
1 files 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; |