mixer: rework the control mixers to use the parser

Using the parser for the spa_pod_sequence in the data buffers is
required in order to safely read the pods while there could be
concurrent writes.

See #4822
This commit is contained in:
Wim Taymans 2025-07-29 15:28:48 +02:00
parent e317edcfb9
commit 3785896533
3 changed files with 117 additions and 85 deletions

View file

@ -1270,7 +1270,7 @@ PWTEST(pod_parser)
spa_assert_se(spa_pod_parser_push_object(&p, &f, SPA_TYPE_OBJECT_Format, NULL) == -EPROTO);
spa_assert_se(p.state.offset == 0);
spa_assert_se(spa_pod_parser_push_object(&p, &f, SPA_TYPE_OBJECT_Props, NULL) == 0);
spa_assert_se(p.state.offset == 392);
spa_assert_se(p.state.offset == sizeof(struct spa_pod_object));
spa_assert_se(spa_pod_parser_frame(&p, &f) == val.P);
spa_zero(val);