summaryrefslogtreecommitdiff
path: root/chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c')
-rw-r--r--chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c b/chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c
index 2ec18138543..962d8f7d5a4 100644
--- a/chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c
+++ b/chromium/third_party/ffmpeg/fftools/ffmpeg_hw.c
@@ -99,7 +99,7 @@ int hw_device_init_from_string(const char *arg, HWDevice **dev_out)
// -> av_hwdevice_ctx_create_derived()
AVDictionary *options = NULL;
- char *type_name = NULL, *name = NULL, *device = NULL;
+ const char *type_name = NULL, *name = NULL, *device = NULL;
enum AVHWDeviceType type;
HWDevice *dev, *src;
AVBufferRef *device_ref = NULL;
@@ -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;