I think all you need to do for tests is:
* create playback path with video, check that source supports thinning, set thinning through session -> wait for an event -> check GetRate() output on the source; * create playback path with audio (presumably that does not support thinning?), repeat.
There is no need to trace that SetRate() is called, we know that it will be as it's the only method with such purpose.
Regarding thin_committed I still don't see why you need it, why existing field presentation.thin is not enough?