Hi all, I am using AudioRecord to get raw PCM data from the audio device and do some extra processing with NDK. It works fine in the first 16 seconds, and crashes after that. There is meaningful debug info I can refer to. Here is my code and the Log info. Please help! thanks!
class AudioReceiveThread extends Thread { private InetAddress serverAddr; private InputStream inStream; int callback_count = 0; short[] mAudioLocalBuffer = null; public void run() { super.run(); mAudioEncodedBuffer = new byte[1000]; // mAudioLocalBuffer = new short[4000]; /* audio */ mRecordListener = new OnRecordPositionUpdateListener() { public void onPeriodicNotification(AudioRecord recorder) { mAudioLocalBuffer = new short[4000]; byte mode = 6; mSamplesRead = recorder.read(mAudioLocalBuffer, 0, AUDIO_BUFFER_SAMPLEREAD_SIZE); if (mSamplesRead > 0) { // do something here... System.out.println("Read samples\n"); System.out.println(mSamplesRead); System.out.println(callback_count); System.out.println("Going to encode\n"); n = EncoderInterfaceEncode(mode, mAudioLocalBuffer,mAudioEncodedBuffer,0); System.out.println("After Encoder...\n"); System.out.println(n); callback_count++; } else { System.out.println("Read nothig\n"); } mAudioLocalBuffer = null; } public void onMarkerReached(AudioRecord recorder) { System.out.println("What? Hu!? Where am I?"); } }; try { mAudioRecorder = new AudioRecord( android.media.MediaRecorder.AudioSource.MIC, AUDIO_SAMPLE_FREQ, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, AUDIO_BUFFER_BYTESIZE); } catch (Exception e) { System.out.println("Unable to init audio recording!"); } EncoderInterfaceInit(0); mAudioBuffer = new short[AUDIO_BUFFER_SAMPLEREAD_SIZE]; mAudioRecorder.setPositionNotificationPeriod(AUDIO_BUFFER_SAMPLEREAD_SIZE/ 2); mAudioRecorder.setRecordPositionUpdateListener(mRecordListener); mAudioRecorder.startRecording(); // /* test if I can read anything at all... (and yes, this here works!) */ mSamplesRead = mAudioRecorder.read(mAudioBuffer, 0, AUDIO_BUFFER_SAMPLEREAD_SIZE); } } Log Info: 05-07 14:59:20.040: INFO/System.out(3994): Read samples 05-07 14:59:20.040: INFO/System.out(3994): 4000 05-07 14:59:20.040: INFO/System.out(3994): 36 05-07 14:59:20.040: INFO/System.out(3994): Going to encode 05-07 14:59:20.040: DEBUG/libnav(3994): Before Encode, mode = 6, forceSpeech = 0 05-07 14:59:20.050: DEBUG/libnav(3994): After Encode 05-07 14:59:20.060: INFO/System.out(3994): After Encoder... 05-07 14:59:20.060: INFO/System.out(3994): 27 05-07 14:59:20.210: INFO/DEBUG(2965): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 05-07 14:59:20.210: INFO/DEBUG(2965): Build fingerprint: 'tmobile/kila/ dream/trout:1.6/DMD64/21415:user/ota-rel-keys,release-keys' 05-07 14:59:20.210: INFO/DEBUG(2965): pid: 3994, tid: 3994 >>> com.example.LiveStreamer <<< 05-07 14:59:20.210: INFO/DEBUG(2965): signal 11 (SIGSEGV), fault addr 170c8554 05-07 14:59:20.210: INFO/DEBUG(2965): r0 00000000 r1 0000032c r2 170c8534 r3 45114508 05-07 14:59:20.210: INFO/DEBUG(2965): r4 00000003 r5 be91a328 r6 4000c238 r7 00000061 05-07 14:59:20.220: INFO/DEBUG(2965): r8 be91a2f0 r9 4328b2b0 10 4000c238 fp ad083e1c 05-07 14:59:20.220: INFO/DEBUG(2965): ip 4000c1e8 sp be91a2a0 lr 00000003 pc ad01622c cpsr 60000010 05-07 14:59:20.380: INFO/DEBUG(2965): #00 pc 0001622c / system/lib/libdvm.so 05-07 14:59:20.380: INFO/DEBUG(2965): #01 pc 00016c44 / system/lib/libdvm.so 05-07 14:59:20.380: INFO/DEBUG(2965): #02 pc 000146f8 / system/lib/libdvm.so 05-07 14:59:20.390: INFO/DEBUG(2965): #03 pc 00014818 / system/lib/libdvm.so 05-07 14:59:20.390: INFO/DEBUG(2965): #04 pc 0001492c / system/lib/libdvm.so 05-07 14:59:20.390: INFO/DEBUG(2965): #05 pc 00016c8c / system/lib/libdvm.so 05-07 14:59:20.390: INFO/DEBUG(2965): #06 pc 000153e4 / system/lib/libdvm.so 05-07 14:59:20.400: INFO/DEBUG(2965): #07 pc 0001583c / system/lib/libdvm.so 05-07 14:59:20.400: INFO/DEBUG(2965): #08 pc 000159a4 / system/lib/libdvm.so 05-07 14:59:20.400: INFO/DEBUG(2965): #09 pc 0005a90c / system/lib/libdvm.so 05-07 14:59:20.410: INFO/DEBUG(2965): #10 pc 0005aa2c / system/lib/libdvm.so 05-07 14:59:20.410: INFO/DEBUG(2965): #11 pc 0005ab2c / system/lib/libdvm.so 05-07 14:59:20.410: INFO/DEBUG(2965): #12 pc 00012790 / system/lib/libdvm.so 05-07 14:59:20.410: INFO/DEBUG(2965): #13 pc 00017be4 / system/lib/libdvm.so 05-07 14:59:20.420: INFO/DEBUG(2965): #14 pc 0001762c / system/lib/libdvm.so 05-07 14:59:20.420: INFO/DEBUG(2965): #15 pc 000529a8 / system/lib/libdvm.so 05-07 14:59:20.440: INFO/DEBUG(2965): #16 pc 00059eda / system/lib/libdvm.so 05-07 14:59:20.440: INFO/DEBUG(2965): #17 pc 00013198 / system/lib/libdvm.so 05-07 14:59:20.440: INFO/DEBUG(2965): #18 pc 00017be4 / system/lib/libdvm.so 05-07 14:59:20.440: INFO/DEBUG(2965): #19 pc 0001762c / system/lib/libdvm.so 05-07 14:59:20.450: INFO/DEBUG(2965): #20 pc 0005282c / system/lib/libdvm.so 05-07 14:59:20.450: INFO/DEBUG(2965): #21 pc 0003f790 / system/lib/libdvm.so 05-07 14:59:20.450: INFO/DEBUG(2965): #22 pc 0002be2c / system/lib/libandroid_runtime.so 05-07 14:59:20.450: INFO/DEBUG(2965): #23 pc 0002c92e / system/lib/libandroid_runtime.so 05-07 14:59:20.460: INFO/DEBUG(2965): #24 pc 00008bf2 / system/bin/app_process 05-07 14:59:20.460: INFO/DEBUG(2965): #25 pc 0000bd60 / system/lib/libc.so 05-07 14:59:20.460: INFO/DEBUG(2965): #26 pc b000163c / system/bin/linker 05-07 14:59:20.460: INFO/DEBUG(2965): stack: 05-07 14:59:20.470: INFO/DEBUG(2965): be91a260 8041930c /data/ data/com.example.LiveStreamer/lib/libLiveStreamer.so 05-07 14:59:20.470: INFO/DEBUG(2965): be91a264 00000003 05-07 14:59:20.470: INFO/DEBUG(2965): be91a268 be91a264 [stack] 05-07 14:59:20.470: INFO/DEBUG(2965): be91a26c 00000001 05-07 14:59:20.470: INFO/DEBUG(2965): be91a270 8041930c /data/ data/com.example.LiveStreamer/lib/libLiveStreamer.so 05-07 14:59:20.470: INFO/DEBUG(2965): be91a274 00000007 05-07 14:59:20.470: INFO/DEBUG(2965): be91a278 be91a29c [stack] 05-07 14:59:20.470: INFO/DEBUG(2965): be91a27c 0000000e 05-07 14:59:20.470: INFO/DEBUG(2965): be91a280 be91a668 [stack] 05-07 14:59:20.470: INFO/DEBUG(2965): be91a284 be91a29c [stack] 05-07 14:59:20.470: INFO/DEBUG(2965): be91a288 afe43c90 05-07 14:59:20.480: INFO/DEBUG(2965): be91a28c 00000003 05-07 14:59:20.480: INFO/DEBUG(2965): be91a290 8041930c /data/ data/com.example.LiveStreamer/lib/libLiveStreamer.so 05-07 14:59:20.480: INFO/DEBUG(2965): be91a294 afbc12fd /system/ lib/liblog.so 05-07 14:59:20.480: INFO/DEBUG(2965): be91a298 df002777 05-07 14:59:20.480: INFO/DEBUG(2965): be91a29c e3a070ad 05-07 14:59:20.480: INFO/DEBUG(2965): #00 be91a2a0 0000032c 05-07 14:59:20.480: INFO/DEBUG(2965): be91a2a4 170c8534 05-07 14:59:20.480: INFO/DEBUG(2965): be91a2a8 0004000a [heap] 05-07 14:59:20.480: INFO/DEBUG(2965): be91a2ac 0000000e 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2b0 be91a328 [stack] 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2b4 4000c238 /dev/ ashmem/mspace/dalvik-heap/zygote/0 (deleted) 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2b8 00000061 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2bc be91a2f0 [stack] 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2c0 ad016c18 /system/ lib/libdvm.so 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2c4 4000c238 /dev/ ashmem/mspace/dalvik-heap/zygote/0 (deleted) 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2c8 be91a544 [stack] 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2cc ad016c48 /system/ lib/libdvm.so 05-07 14:59:20.490: INFO/DEBUG(2965): #01 be91a2d0 ffff0001 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2d4 00000213 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2d8 00021300 [heap] 05-07 14:59:20.490: INFO/DEBUG(2965): be91a2dc 444f8850 /dev/ ashmem/dalvik-heap-bitmap/mark/0 (deleted) 05-07 14:59:20.500: INFO/DEBUG(2965): be91a2e0 ad083e1c /system/ lib/libdvm.so 05-07 14:59:20.500: INFO/DEBUG(2965): be91a2e4 ad0146fc /system/ lib/libdvm.so 05-07 14:59:22.050: INFO/ActivityManager(82): Process com.example.LiveStreamer (pid 3994) has died. 05-07 14:59:22.060: INFO/WindowManager(82): WIN DEATH: Window{4317b180 com.example.LiveStreamer/com.example.LiveStreamer.LiveStreamer paused=false} 05-07 14:59:22.060: INFO/WindowManager(82): WIN DEATH: Window{432ba260 SurfaceView paused=false} 05-07 14:59:22.100: DEBUG/Zygote(50): Process 3994 terminated by signal (11) 05-07 14:59:22.110: WARN/UsageStats(82): Unexpected resume of com.android.launcher while already resumed in com.example.LiveStreamer 05-07 14:59:22.150: DEBUG/CameraService(51): stopRecording (pid 51) 05-07 14:59:22.150: DEBUG/CameraService(51): stopRecording(), hardware stopped OK 05-07 14:59:22.150: INFO/OMXVenc(51): send_command::690 attempt to move to new state 2 05-07 14:59:22.160: INFO/OMXVenc(51): process_state_change::2452 Req to Move to Idle: Call venc_stop 05-07 14:59:22.160: INFO/OMXVenc(51): process_DL_status::2610 got DL status for VENC_CMD_STOP 05-07 14:59:22.160: INFO/OMXVenc(51): process_DL_status::2681 encoder already moves to idle state. call event handler now 05-07 14:59:22.170: INFO/OMXVenc(51): send_command::690 attempt to move to new state 1 05-07 14:59:22.180: ERROR/QCOmxcore(51): OMXCORE API : Free Handle 2d6a4 05-07 14:59:22.200: INFO/OMXVenc(51): component_deinit::1912 deinitializing component... 05-07 14:59:22.200: ERROR/QCOmxcore(51): Unloading the dynamic library for OMX.qcom.video.encoder.mpeg4 05-07 14:59:22.200: DEBUG/CameraService(51): stopPreview (pid 51) 05-07 14:59:22.270: DEBUG/dalvikvm(150): GC freed 4122 objects / 229720 bytes in 1632ms 05-07 14:59:22.300: WARN/InputManagerService(82): Got RemoteException sending setActive(false) notification to pid 3994 uid 10034 05-07 14:59:22.370: INFO/QualcommCameraHardware(51): deinitPreview E 05-07 14:59:22.370: INFO/QualcommCameraHardware(51): deinitPreview X 05-07 14:59:22.370: DEBUG/CameraService(51): stopPreview(), hardware stopped OK 05-07 14:59:22.370: DEBUG/CameraService(51): Client::disconnect() E (pid 51 client 0x3036c) 05-07 14:59:22.370: DEBUG/CameraService(51): hardware teardown 05-07 14:59:22.370: DEBUG/QualcommCameraHardware(51): release E 05-07 14:59:22.370: DEBUG/QualcommCameraHardware(51): release X 05-07 14:59:22.370: DEBUG/CameraService(51): removeClient (pid 51) done 05-07 14:59:22.370: DEBUG/CameraService(51): Client::disconnect() X (pid 51) 05-07 14:59:22.370: DEBUG/CameraService(51): Client::~Client E (pid 51, client 0x3036c) 05-07 14:59:22.390: DEBUG/QualcommCameraHardware(51): frame_thread X 05-07 14:59:22.390: DEBUG/QualcommCameraHardware(51): ~QualcommCameraHardware E 05-07 14:59:22.390: DEBUG/QualcommCameraHardware(51): ~QualcommCameraHardware X 05-07 14:59:22.400: DEBUG/CameraService(51): Client::disconnect() E (pid 51 client 0x3036c) 05-07 14:59:22.400: DEBUG/CameraService(51): Client::~Client X (pid 51) 05-07 14:59:27.520: DEBUG/dalvikvm(373): GC freed 25 objects / 1144 bytes in 103ms 05-07 14:59:32.540: DEBUG/dalvikvm(231): GC freed 169 objects / 11560 bytes in 119ms 05-07 14:59:37.530: DEBUG/dalvikvm(360): GC freed 251 objects / 13248 bytes in 108ms -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en