kai: check boundaries more strictly
authorkomh <komh@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 29 May 2019 09:57:32 +0000 (09:57 +0000)
committerkomh <komh@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 29 May 2019 09:57:32 +0000 (09:57 +0000)
Suggested by reimar.

git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@38147 b3059339-0415-0410-9bf9-f77b7e298cf2

libao2/ao_kai.c

index 98a3e49..3cf84b7 100644 (file)
@@ -166,7 +166,8 @@ static int init(int rate, int channels, int format, int flags)
         {NULL}
     };
 
-    const char *audioDriver[] = {"DART", "UNIAUD",};
+    const char *audioDriver[] = {"UNKNOWN", "DART", "UNIAUD",};
+    int nAudioDriver = sizeof(audioDriver) / sizeof(*audioDriver);
 
     if (subopt_parse(ao_subdevice, subopts) != 0) {
         print_help();
@@ -190,7 +191,7 @@ static int init(int rate, int channels, int format, int flags)
 
     kaiCaps(&kc);
     mp_msg(MSGT_AO, MSGL_V, "KAI: selected audio driver = %s\n",
-           audioDriver[kc.ulMode - 1]);
+           audioDriver[kc.ulMode >= nAudioDriver ? 0 : kc.ulMode]);
     mp_msg(MSGT_AO, MSGL_V, "KAI: PDD name = %s, maximum channels = %lu\n",
            kc.szPDDName, kc.ulMaxChannels);