Well I thought I was all set to get this straightened out but it looks like there's a few details still left to do. Since we're only dealing with SoundDevShutDownIn and StopASIFDMAADC I took a closer look and it seems that there are some more cameras to check out.
...
SoundDevActiveIn: 5D2, 5D3, 5DSM, 6D, 7D, 7D2M, 7DM, 50D, 60D, 70D, 80D, 100D, 500D, 550D, 600D, 650D, 700D, 750D, 760D, 1100D, 1200D, 1300D, EOSM, EOSM2
SoundDevShutDownIn: 5D3, 5DSM, 6D, 7D, 7D2M, 7DM, 70D, 80D, 100D, 650D, 700D, 750D, 760D, 1200D, 1300D, EOSM, EOSM2.
StartASIFDMAADC: 5D2, 5D3, 6D, 7D, 7DM, 50D, 60D, 70D, 100D, 500D, 550D, 600D, 650D, 700D, 1100D, 1200D, 1300D, EOSM, EOSM2.
StopASIFDMAADC: 6D, 70D, 100D, 500D, 1200D, 1300D, EOSM, EOSM2.
Would be great if you can get a dm-spy log with these functions, to see when/how Canon code calls them (as it's not obvious for me from the disassembly).
Please note I don't know what I'm doing - this part of the code is not mine.
I don't know what I'm doing either but looking at the 5D3 stubs:
5D3.113
// NSTUB( ???, SoundDevShutDownIn) /* present on 7D.203, 6D.113, 650D.104, EOSM.202, 700D.113 */
// NSTUB( ???, StopASIFDMAADC) /* present on 7D.203, 6D.113, EOSM.202 */
5D3.123
NSTUB(0xFF10E7B0, StopASIFDMAADC)
...
// NSTUB( ???, SoundDevShutDownIn) /* present on 7D.203, 6D.113, 700D.111, 650D.104, EOSM.202 */
So StopASIFDMAADC showed up after the firmware update but not SoundDevShutDownIn or maybe since it was commented out the address wasn't saved either? Did someone throw out the baby with the bath water or is it really missing? More testing to do see what happens when using StopASIFDMAADC on the 5D3.123.
Another test is to run dm-spy and look at what the logs reveal about SoundDevShutDownIn and StopASIFDMAADC on various cameras.
This is what we learned about the cameras tested so far:
- Cameras that can use both SoundDevShutDownIn and StopASIFDMAADC or just StopASIFDMAADC to stop the audio: 6D, 70D, 100D
- Cameras that use neither SoundDevShutDownIn or StopASIFDMAADC to stop the audio: 7D, 650D, 700D
- Camera that can only use StopASIFDMAADC to stop the audio: EOSM
The 7D is a special case because it also works with SoundDevShutDownIn which is the way mlv_snd is currently coded. In fact it is the only camera that works with the mlv_snd audio shut down code but since it doesn't seem to make a difference whether or not that stub is active we could assume that it isn't necessary.
So no models that we tested so far really need this:
/* some models may need this */
SoundDevShutDownIn();
audio_configure(1);
However, the 6D, 70D, 100D and EOSM need this:
StopASIFDMAADC();
audio_configure(1);