I am developing recorder in my application on WinCE. I am using fmodce.dll (version 3.74). I use FSOUND_Record_StartSample(samp, TRUE) to start recording and pass second parameter TRUE as I wanted to loop through the same buffer for recording when it reaches to end. I am writing to a wav file in background continuos thread which is working. But my FSOUND_Record_Stop just hangs and never returns when I pass second parameter to FSOUND_Record_StartSample as TRUE. If I pass FALSE then my FSOUND_Record_Stop api call returns by stoping the recording. But when I am passing FALSE parameter to start recording its not looping through again and I just get the first buffer size of data in my wav file. Could you please help me by giving some input?
Summary issues –
1) FSOUND_Record_Stop hangs when I pass TRUE to FSOUND_Record_StartSample
2) If I pass FALSE to FSOUND_Record_StartSample then FSOUND_Record_Stop works but then recorder doesn’t loop through the buffer again and I can’t record more than my buffer size
- Mangesh asked 12 years ago
I also tried FSOUND_Sample_SetMode(samp, FSOUND_LOOP_NORMAL); API immediatly after FSOUND_Sample_Alloc function call returns successfully to set FSOUND_LOOP_NORMAL explicitly. But still the FSOUND_Record_Stop hangs when I am passing TRUE to FSOUND_Record_SampleStrat. Please tell me if its a bug in fmod or I forgot to do something in my code.
I have created a simple test app to varify if FSOUND_Record_Stop hang issue is caused by my background thread which writes to a file or its a bug in fmod itself. I observed same kind of behaviour irrespective of my thread. When ever I am calling FSOUND_Record_StatSample with TRUE parameter its starts recording and loops through but always hangs when I call FSOUND_Record_Stop and try to stop the recording. Could you please tell me if you have some solution on this? Its really a dead end right now.
Thanks & Regards,
I found the problem. When my buffer loops and wraps, somehow it was passing a -ve value to FSOUND_Sample_Lock API as third parameter. When I converted that -ve value to proper wrapped positive value with respect to my buffer length. FSound_Record_Stop is not hanging. I still believe that there is some bug in either FSOUND_Sample_Lock or FSOUND_Record_Stop API which hangs when -ve value comes as input. I think fmod should handle that and return the proper error code instead of just hang.
Please login first to submit.