This fixes the iterating of input and output devices
In the previous implementation the first input or output device
was skipped when device_next was called with prev = NULL
From f90823e8dccf5751e88b8990f5789d8f67e7c496 Mon Sep 17 00:00:00 2001
From: Felix Matouschek <fe...@matouschek.org>
Date: Wed, 14 Mar 2018 13:14:07 +0100
Subject: [PATCH] Fix iterating of input and output devices
To: ffmpeg-devel@ffmpeg.org
In the previous implementation the first input or output device
was skipped when device_next was called with prev = NULL
Signed-off-by: Felix Matouschek <fe...@matouschek.org>
---
libavdevice/alldevices.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c
index 4c89649b97..271a3182a0 100644
--- a/libavdevice/alldevices.c
+++ b/libavdevice/alldevices.c
@@ -126,16 +126,13 @@ static void *device_next(void *prev, int output,
ff_thread_once(&av_device_next_init, av_device_init_next);
- if (!prev && !(prev = (output ? (void*)outdev_list[0] : (void*)indev_list[0])))
- return NULL;
-
do {
if (output) {
- if (!(prev = ((AVOutputFormat *)prev)->next))
+ if (!(prev = prev ? ((AVInputFormat *)prev)->next : (void*)outdev_list[0]))
break;
pc = ((AVOutputFormat *)prev)->priv_class;
} else {
- if (!(prev = ((AVInputFormat *)prev)->next))
+ if (!(prev = prev ? ((AVInputFormat *)prev)->next : (void*)indev_list[0]))
break;
pc = ((AVInputFormat *)prev)->priv_class;
}
--
2.14.1.windows.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel