Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2022-07-10 21:32:55 +0300
committerMarton Balint <cus@passwd.hu>2022-07-17 23:12:31 +0300
commit83feded4926272904e4abcecaa573e61d457a0db (patch)
treebe547be3ea188fe9340c7ef2ffbaf0bae267129a
parent2720715dab70f40025a1d209e746b6c0f188a9d4 (diff)
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> (cherry picked from commit 64f04df37942c1b1fc11df0f99ffba7834c33f34)
-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,