aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2022-07-10 20:32:55 +0200
committerMarton Balint <cus@passwd.hu>2022-07-17 22:03:41 +0200
commit64f04df37942c1b1fc11df0f99ffba7834c33f34 (patch)
tree3b67bb69843f2c138e839c9a815a70314537225d
parent940169b8aab406a8b1ccee4a9705a1e06b76d035 (diff)
downloadffmpeg-64f04df37942c1b1fc11df0f99ffba7834c33f34.tar.gz
avdevice/avdevice: fix return value of avdevice_list_devices()
According to API docs avdevice_list_devices(), avdevice_list_input_sources() and avdevice_list_input_sinks() should return the number of autodetected devices on success. This is redundant with AVDeviceInfoList->nb_devices so it was not noticed earlier that none of the underlying device list functions work like that. Let's fix it in generic code to make it in line with the API docs. Fixes ticket #9820. Signed-off-by: Marton Balint <cus@passwd.hu>
-rw-r--r--libavdevice/avdevice.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c
index b4fb272eb6..58996404b3 100644
--- a/libavdevice/avdevice.c
+++ b/libavdevice/avdevice.c
@@ -75,9 +75,11 @@ int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
ret = s->oformat->get_device_list(s, *device_list);
else
ret = s->iformat->get_device_list(s, *device_list);
- if (ret < 0)
+ if (ret < 0) {
avdevice_free_list_devices(device_list);
- return ret;
+ return ret;
+ }
+ return (*device_list)->nb_devices;
}
static int list_devices_for_context(AVFormatContext *s, AVDictionary *options,