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

Reply via email to