demux: mp4: check handler before dereferencing sample entry
[vlc.git] / test / libvlc / equalizer.c
blobd260230bc091e5a2b0082ca804895ab1afe6dda4
1 /*
2 * equalizer.c - libvlc smoke test
3 */
5 #include <string.h>
6 #include <math.h>
8 #include "test.h"
10 static void test_equalizer (const char ** argv, int argc)
12 libvlc_instance_t *vlc;
13 libvlc_media_player_t *mp;
14 libvlc_equalizer_t *equalizer;
15 unsigned u_presets, u_bands;
17 log ("Testing equalizer\n");
19 vlc = libvlc_new (argc, argv);
20 assert (NULL != vlc);
22 mp = libvlc_media_player_new (vlc);
23 assert (NULL != mp);
25 // presets
27 log ("Testing equalizer presets\n");
29 u_presets = libvlc_audio_equalizer_get_preset_count();
30 assert (u_presets > 0);
32 for (unsigned i = 0; i < u_presets; i++)
34 assert (NULL != libvlc_audio_equalizer_get_preset_name(i));
36 equalizer = libvlc_audio_equalizer_new_from_preset(i);
37 assert (equalizer);
39 libvlc_audio_equalizer_release(equalizer);
42 // preset out of range
44 assert (NULL == libvlc_audio_equalizer_get_preset_name(u_presets));
45 assert (NULL == libvlc_audio_equalizer_new_from_preset(u_presets));
47 // bands
49 log ("Testing equalizer bands\n");
51 u_bands = libvlc_audio_equalizer_get_band_count();
52 assert (u_bands > 0);
54 for (unsigned i = 0; i < u_bands; i++)
55 assert (-1.0f != libvlc_audio_equalizer_get_band_frequency(i));
57 // band out of range
59 assert (-1.0f == libvlc_audio_equalizer_get_band_frequency(u_bands));
61 // initialisation
63 log ("Testing equalizer initialisation\n");
65 equalizer = libvlc_audio_equalizer_new();
66 assert (equalizer);
68 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 0.0f);
70 for (unsigned i = 0; i < u_bands; i++)
71 assert (libvlc_audio_equalizer_get_amp_at_index(equalizer, i) == 0.0f);
73 // preamp (range -20.0 to 20.0)
75 log ("Testing equalizer preamp\n");
77 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 19.9f));
78 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 19.9f);
80 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.0f));
81 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
83 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, 20.1f));
84 assert (libvlc_audio_equalizer_get_preamp(equalizer) == 20.0f);
86 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -19.9f));
87 assert (libvlc_audio_equalizer_get_preamp(equalizer) == -19.9f);
89 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.0f));
90 assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
92 assert (0 == libvlc_audio_equalizer_set_preamp (equalizer, -20.1f));
93 assert (libvlc_audio_equalizer_get_preamp(equalizer) == -20.0f);
95 // amp at index (range -20.0 to 20.0)
97 log ("Testing equalizer amp at index\n");
99 for (unsigned i = 0; i < u_bands; i++)
101 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 19.9f, i));
102 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 19.9f);
104 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 20.0f, i));
105 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 20.0f);
107 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 20.1f, i));
108 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == 20.0f);
110 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -19.9f, i));
111 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -19.9f);
113 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -20.0f, i));
114 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -20.0f);
116 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -20.1f, i));
117 assert (libvlc_audio_equalizer_get_amp_at_index (equalizer, i) == -20.0f);
120 // amp at index out of range
122 assert (isnan(libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands)));
123 assert (-1 == libvlc_audio_equalizer_set_amp_at_index (equalizer, 19.9f, u_bands));
125 // no equalizer
127 log ("Testing release NULL\n");
129 libvlc_audio_equalizer_release (NULL);
131 // media player
133 log ("Testing set equalizer\n");
135 assert (0 == libvlc_media_player_set_equalizer(mp, NULL));
136 assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
138 // maximum string length (test string concatenation)
140 log ("Testing equalizer-bands string limit\n");
142 for (unsigned i = 0; i < u_bands; i++)
143 assert (0 == libvlc_audio_equalizer_set_amp_at_index (equalizer, -19.1234567f, i));
145 assert (0 == libvlc_media_player_set_equalizer(mp, equalizer));
147 // cleanup
149 log ("Testing equalizer cleanup\n");
151 libvlc_audio_equalizer_release (equalizer);
153 log ("Finished testing equalizer\n");
155 libvlc_media_player_release (mp);
157 libvlc_release (vlc);
160 int main (void)
162 test_init();
164 test_equalizer (test_defaults_args, test_defaults_nargs);
166 return 0;