diff --git a/device/buffer_list.c b/device/buffer_list.c index 4ad07de..5c2cf21 100644 --- a/device/buffer_list.c +++ b/device/buffer_list.c @@ -86,7 +86,7 @@ void buffer_list_close(buffer_list_t *buf_list) int buffer_list_set_stream(buffer_list_t *buf_list, bool do_on) { - if (!buf_list) { + if (!buf_list || !buf_list->dev->hw->buffer_list_set_stream) { return -1; } diff --git a/device/device.c b/device/device.c index 25c4c5b..7151ac8 100644 --- a/device/device.c +++ b/device/device.c @@ -181,10 +181,10 @@ int device_set_stream(device_t *dev, bool do_on) int device_video_force_key(device_t *dev) { - if (!dev || dev->hw->device_video_force_key(dev) < 0) - return -1; + if (dev && dev->hw->device_video_force_key) + return dev->hw->device_video_force_key(dev); - return 0; + return -1; } void device_dump_options(device_t *dev, FILE *stream) @@ -235,11 +235,11 @@ int device_set_rotation(device_t *dev, bool vflip, bool hflip) int device_set_option_string(device_t *dev, const char *key, const char *value) { - if (!dev) { - return 0; + if (dev && dev->hw->device_set_option) { + return dev->hw->device_set_option(dev, key, value); } - return dev->hw->device_set_option(dev, key, value); + return -1; } void device_set_option_list(device_t *dev, const char *option_list)