Skip to content

Commit

Permalink
fftools: provide media type info for devices
Browse files Browse the repository at this point in the history
fftools now print info about what media type(s), if any, are provided by
sink and source avdevices.

Signed-off-by: Diederick Niehorster <[email protected]>
Reviewed-by: Roger Pack <[email protected]>
  • Loading branch information
dcnieho authored and GyanD committed Dec 24, 2021
1 parent e4b9aee commit 5c90c13
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions fftools/cmdutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -2244,9 +2244,29 @@ double get_rotation(int32_t *displaymatrix)
}

#if CONFIG_AVDEVICE
static void print_device_list(const AVDeviceInfoList *device_list)
{
// print devices
for (int i = 0; i < device_list->nb_devices; i++) {
const AVDeviceInfo *device = device_list->devices[i];
printf("%c %s [%s] (", device_list->default_device == i ? '*' : ' ',
device->device_name, device->device_description);
if (device->nb_media_types > 0) {
for (int j = 0; j < device->nb_media_types; ++j) {
const char* media_type = av_get_media_type_string(device->media_types[j]);
if (j > 0)
printf(", ");
printf("%s", media_type ? media_type : "unknown");
}
} else {
printf("none");
}
printf(")\n");
}
}
static int print_device_sources(const AVInputFormat *fmt, AVDictionary *opts)
{
int ret, i;
int ret;
AVDeviceInfoList *device_list = NULL;

if (!fmt || !fmt->priv_class || !AV_IS_INPUT_DEVICE(fmt->priv_class->category))
Expand All @@ -2258,10 +2278,7 @@ static int print_device_sources(const AVInputFormat *fmt, AVDictionary *opts)
goto fail;
}

for (i = 0; i < device_list->nb_devices; i++) {
printf("%c %s [%s]\n", device_list->default_device == i ? '*' : ' ',
device_list->devices[i]->device_name, device_list->devices[i]->device_description);
}
print_device_list(device_list);

fail:
avdevice_free_list_devices(&device_list);
Expand All @@ -2270,7 +2287,7 @@ static int print_device_sources(const AVInputFormat *fmt, AVDictionary *opts)

static int print_device_sinks(const AVOutputFormat *fmt, AVDictionary *opts)
{
int ret, i;
int ret;
AVDeviceInfoList *device_list = NULL;

if (!fmt || !fmt->priv_class || !AV_IS_OUTPUT_DEVICE(fmt->priv_class->category))
Expand All @@ -2282,10 +2299,7 @@ static int print_device_sinks(const AVOutputFormat *fmt, AVDictionary *opts)
goto fail;
}

for (i = 0; i < device_list->nb_devices; i++) {
printf("%c %s [%s]\n", device_list->default_device == i ? '*' : ' ',
device_list->devices[i]->device_name, device_list->devices[i]->device_description);
}
print_device_list(device_list);

fail:
avdevice_free_list_devices(&device_list);
Expand Down

0 comments on commit 5c90c13

Please sign in to comment.