chmap_sel: improve speaker replacement handling

This didn't really work since the last time the channel map fallback
code was touched. In some cases, quite bad results were selected.
This commit is contained in:
wm4
2015-06-12 19:23:46 +02:00
parent 55624a70ee
commit afdc060bb3
2 changed files with 46 additions and 15 deletions

View File

@@ -87,6 +87,20 @@ static void test_mp_chmap_sel_fallback_reject_unknown(void **state) {
assert_string_equal(mp_chmap_to_str(&b), "5.1");
}
static void test_mp_chmap_sel_fallback_more_replacements(void **state) {
test_sel("quad", "quad(side)", LAYOUTS("quad(side)", "stereo"));
test_sel("quad", "7.0", LAYOUTS("quad(side)", "7.0"));
test_sel("quad", "7.0", LAYOUTS("7.0", "quad(side)"));
test_sel("quad", "7.1(wide-side)", LAYOUTS("7.1(wide-side)", "stereo"));
test_sel("quad", "7.1(wide-side)", LAYOUTS("stereo", "7.1(wide-side)"));
test_sel("quad", "fl-fr-fc-bl-br",
LAYOUTS("fl-fr-fc-bl-br", "fl-fr-sl-sr"));
test_sel("quad", "fl-fr-bl-br-na-na-na-na",
LAYOUTS("fl-fr-bl-br-na-na-na-na", "quad(side)", "stereo"));
test_sel("quad", "fl-fr-bl-br-na-na-na-na",
LAYOUTS("stereo", "quad(side)", "fl-fr-bl-br-na-na-na-na"));
}
int main(void) {
const UnitTest tests[] = {
unit_test(test_mp_chmap_sel_fallback_upmix),
@@ -101,6 +115,7 @@ int main(void) {
unit_test(test_mp_chmap_sel_fallback_no_downmix),
unit_test(test_mp_chmap_sel_fallback_minimal_downmix),
unit_test(test_mp_chmap_sel_fallback_reject_unknown),
unit_test(test_mp_chmap_sel_fallback_more_replacements),
};
return run_tests(tests);
}