d78ef68025c4de08bffaa318d0057d8affac81a1 |
|
07-Oct-2010 |
Glenn Kasten <gkasten@google.com> |
More tests and bug fixes New tests: - urimime.c tests audio player with URI data source and MIME data format - dim.c tests DynamicInterfaceManagement - engine.c new test cases: - create more than one engine simultaneously - exit application without destroying engine first Bug fixes: - Can't request SLBufferQueueItf or its alias SLAndroidSimpleBufferQueueItf if the data source is not a buffer queue. - BufferQueue interface is explicit on AudioPlayer. - OutputMixExt is unavailable (internal) on AudioPlayer. - There was a nested mutex lock when resuming a non-suspended interface. - This implementation supports at most one engine, so check for that - Class configuration table had wrong entry for DynamicInterfaceManagement on 4 of 10 classes. Restore most of the infrastructure for removing interfaces (code review): - DynamicInterfaceManagement is included, but body of RemoveInterface is compiled out, and replaced by FEATURE_UNSUPPORTED until all our deinit hooks are clean. - Remove hook must be called with mutex locked, rather than unlocked as before. The remove hook is called during IDynamicInterfaceManagement::RemoveInterface and Object::Destroy, so the entry conditions must be the same. - Add NULL remove hooks to the interface hook table. Change-Id: I328dd254ed24a32b220996a6d9592cc8c0f4e943 Miscellaneous: - Always memset object to garbage in Object::Destroy to catch broken applications. - Add comments about how GetInterface manipulates the v-table pointer (code review). - Re-enable DynamicInterfaceManagement for testing the example code.
/system/media/opensles/tests/sandbox/dim.c
|