libavdevice/decklink: add support for -sources and -sinks arguments

Add support for enumerating the sources/sinks via the ffmpeg
command line options, as opposed to having to create a real pipeline
and use the "-list_devices" option which does exit() after dumping
out the options.

Note that this patch preserves the existing "-list_devices" option,
but now shares common code for the actual enumeration.

Updated to reflect feedback from Marton Balint <cus@passwd.hu>.

Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Devin Heitmueller 2017-10-06 08:55:43 -04:00 committed by Marton Balint
parent ff6de6b180
commit 278588cd0b
8 changed files with 104 additions and 10 deletions

View file

@ -39,6 +39,7 @@ extern "C" {
#include "libavutil/time.h"
#include "libavutil/mathematics.h"
#include "libavutil/reverse.h"
#include "avdevice.h"
#if CONFIG_LIBZVBI
#include <libzvbi.h>
#endif
@ -868,7 +869,7 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx)
/* List available devices. */
if (ctx->list_devices) {
ff_decklink_list_devices(avctx);
ff_decklink_list_devices_legacy(avctx, 1, 0);
return AVERROR_EXIT;
}
@ -1063,4 +1064,9 @@ int ff_decklink_read_packet(AVFormatContext *avctx, AVPacket *pkt)
return 0;
}
int ff_decklink_list_input_devices(AVFormatContext *avctx, struct AVDeviceInfoList *device_list)
{
return ff_decklink_list_devices(avctx, device_list, 1, 0);
}
} /* extern "C" */