From 46901b44a7fded19a282fa5b14c473d805638407 Mon Sep 17 00:00:00 2001 From: Marco Bascetta Date: Fri, 22 Dec 2017 09:48:13 +0100 Subject: [PATCH 20/23] tools/mediastream: accept also custom alsa card --- tools/mediastream.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tools/mediastream.c b/tools/mediastream.c index 1c1f1727..ecf04ab6 100644 --- a/tools/mediastream.c +++ b/tools/mediastream.c @@ -687,15 +687,20 @@ static void video_stream_event_cb(void *user_pointer, const MSFilter *f, const u static MSSndCard *get_sound_card(MSSndCardManager *manager, const char* card_name) { MSSndCard *play = ms_snd_card_manager_get_card(manager,card_name); if (play == NULL) { - const MSList *list = ms_snd_card_manager_get_list(manager); - char * cards = ms_strdup(""); - while (list) { - MSSndCard *card = (MSSndCard*)list->data; - cards = ms_strcat_printf(cards, "- %s\n", ms_snd_card_get_string_id(card)); - list = list->next; + play = ms_alsa_card_new_custom(card_name, card_name); + if (play != NULL) { + ms_snd_card_manager_add_card(manager, play); + } else { + const MSList *list = ms_snd_card_manager_get_list(manager); + char * cards = ms_strdup(""); + while (list) { + MSSndCard *card = (MSSndCard*)list->data; + cards = ms_strcat_printf(cards, "- %s\n", ms_snd_card_get_string_id(card)); + list = list->next; + } + ms_fatal("Specified card '%s' but could not find it. Available cards are:\n%s", card_name, cards); + ms_free(cards); } - ms_fatal("Specified card '%s' but could not find it. Available cards are:\n%s", card_name, cards); - ms_free(cards); } return play; } -- 2.11.0