muhku / FreeStreamer

A low-memory footprint streaming audio player for iOS and OS X
http://muhku.github.io/FreeStreamer/
Other
2.11k stars 436 forks source link

crash AudioConverterFillComplexBuffer #396

Open lefex opened 6 years ago

lefex commented 6 years ago

When played. Sometime it will crash. But I can found what happened. I only found it crashed in method decodeSinglePacket when called AudioConverterFillComplexBuffer. I need you help. Thank you very muth. There are two crash log that log in console when crash.

Example1:

malloc: error for object 0x7f9036813610: incorrect checksum for freed object - object was probably modified after being freed. set a breakpoint in malloc_error_break to debug objc[4610]: autorelease pool page 0x7f90368df000 corrupted magic 0x80000000 0x80000000 0x80000000 0x80000000 should be 0xa1a1a1a1 0x4f545541 0x454c4552 0x21455341 pthread 0x8000000080000000 should be 0x7000069b1000

Example2: malloc: error for object 0x60400001a05c: pointer being freed was not allocated set a breakpoint in malloc_error_break to debug */ OSStatus err = AudioConverterFillComplexBuffer(THIS->m_audioConverter,

yongkangwang commented 6 years ago

Thank you for your feedback. And can you take a picture for the  crash page.

------------------------------------------------------------------发件人:Lefe_x notifications@github.com发送时间:2018年1月20日(星期六) 14:20收件人:muhku/FreeStreamer FreeStreamer@noreply.github.com抄 送:Subscribed subscribed@noreply.github.com主 题:[muhku/FreeStreamer] crash AudioConverterFillComplexBuffer (#396) When played. Sometime it will crash. But I can found what happened. I only found it crashed in method decodeSinglePacket when called AudioConverterFillComplexBuffer. I need you help. Thank you very muth. There are two crash log that log in console when crash.Example1:malloc: *** error for object 0x7f9036813610: incorrect checksum for freed object - object was probably modified after being freed.

*** set a breakpoint in malloc_error_break to debug

objc[4610]: autorelease pool page 0x7f90368df000 corrupted

magic 0x80000000 0x80000000 0x80000000 0x80000000

should be 0xa1a1a1a1 0x4f545541 0x454c4552 0x21455341

pthread 0x8000000080000000

should be 0x7000069b1000Example2:

malloc: *** error for object 0x60400001a05c: pointer being freed was not allocated

*** set a breakpoint in malloc_error_break to debug

*/

OSStatus err = AudioConverterFillComplexBuffer(THIS->m_audioConverter,— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

lefex commented 6 years ago

crashMethod.png

It crash this method and log in console like:

streamIsReadyReadLine 1088: Audio_Stream::streamIsReadyRead
streamIsReadyReadLine 1144: AudioFileStreamOpen, file parser started..
streamHasBytesAvailableLine 342: Caching started for stream : file:///Users/wangsuyan/Library/Developer/CoreSimulator/Devices/AD246F27-0AEC-4C82-8478-DBCED0CBC911/data/Containers/Data/Application/710CA735-C4CF-4172-ACB7-381BF5C1553E/Library/Caches/ATPlayerCache/FSCache-f06ddeb6692eac6459121e3ed2d171c7989f8e08
propertyValueCallbackLine 2344: file parser propertyValueCallback AudioDataByteCount: 6939083
propertyValueCallbackLine 2356: file parser propertyValueCallback AudioDataPacketCount: 25545
propertyValueCallbackLine 2332: file parser propertyValueCallback dataoffset: 113070
propertyValueCallbackLine 2422: file parser propertyValueCallback ReadyToProducePackets, AudioConverterNew, audioQueue()->init
AiTing_DEV(3860,0x7000037e8000) malloc: *** error for object 0x60400001a05c: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
lefex commented 6 years ago
(lldb) bt
* thread #101, stop reason = signal SIGABRT
    frame #0: 0x000000010aeb4d42 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x000000010aeec457 libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x000000010ab740e7 libsystem_c.dylib`abort + 127
    frame #3: 0x000000010acaef42 libsystem_malloc.dylib`free + 521
    frame #4: 0x00000001322f5df3 AudioCodecs`void std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >::__push_back_slow_path<unsigned int>(unsigned int&&) + 193
    frame #5: 0x00000001322f572d AudioCodecs`SBRFrequencyBand::cumVectorSum(unsigned int, unsigned char const*, unsigned int) + 165
    frame #6: 0x00000001322f564b AudioCodecs`SBRFrequencyBand::SBRCalculateMasterBandTable(unsigned int, unsigned int, unsigned int, unsigned int) + 1131
    frame #7: 0x00000001323b8090 AudioCodecs`SBRChannelElement::ResetSBRFreqBandTables() + 212
    frame #8: 0x00000001323ba341 AudioCodecs`SBRChannelPairElement::Deserialize(TBitstreamReader<unsigned int>&, int&) + 179
    frame #9: 0x00000001323b7dae AudioCodecs`SBRChannelElement::Deserialize(TBitstreamReader<unsigned int>&, int&, bool) + 182
    frame #10: 0x00000001323153a4 AudioCodecs`SBRDecoder::Deserialize(TBitstreamReader<unsigned int>&, int&, ElementTagAndID) + 164
    frame #11: 0x0000000132337aa1 AudioCodecs`AACDecoder::GetExtensionPayload(TBitstreamReader<unsigned int>&, int&, ElementTagAndID) + 217
    frame #12: 0x00000001323372bc AudioCodecs`AACDecoder::Deserialize(TBitstreamReader<unsigned int>&, bool) + 708
    frame #13: 0x0000000132336fef AudioCodecs`AACDecoder::Deserialize(unsigned char const*, unsigned int) + 43
    frame #14: 0x0000000132337bce AudioCodecs`AACDecoder::DecodeFrame(unsigned char const*, unsigned int, FrameOutRecord&) + 86
    frame #15: 0x00000001322ee515 AudioCodecs`MP4HEAACDecoder<AACDecoder>::DecodeFrame(unsigned char const*, unsigned int, FrameOutRecord&) + 311
    frame #16: 0x00000001323ddac2 AudioCodecs`ACMP4AACBaseDecoder::ProduceOutputBufferList(AudioBufferList*, unsigned int&, AudioStreamPacketDescription*) + 504
    frame #17: 0x00000001323dd8ba AudioCodecs`ACMP4AACBaseDecoder::ProduceOutputPackets(void*, unsigned int&, unsigned int&, AudioStreamPacketDescription*) + 58
    frame #18: 0x00000001322ad11c AudioCodecs`ProduceOutputPackets(void*, void*, unsigned int*, unsigned int*, AudioStreamPacketDescription*, unsigned int*) + 20
    frame #19: 0x00000001089f5062 AudioToolbox`CodecConverter::DecoderFillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription*) + 914
    frame #20: 0x0000000108942ef6 AudioToolbox`AudioConverterChain::RenderOutput(CABufferList*, unsigned int, unsigned int&, AudioStreamPacketDescription*) + 102
    frame #21: 0x000000010891eea9 AudioToolbox`BufferedAudioConverter::FillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription*) + 825
    frame #22: 0x0000000108ae81ad AudioToolbox`AudioConverterFillComplexBuffer + 1037
  * frame #23: 0x00000001008def97 AiTing_DEV`astreamer::Audio_Stream::decodeSinglePacket(timer=0x0000600000971f40, info=0x00007fb987ae9000) at audio_stream.mm:1884
    frame #24: 0x0000000102fda2a4 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
    frame #25: 0x0000000102fd9f62 CoreFoundation`__CFRunLoopDoTimer + 1026
    frame #26: 0x0000000102fd9b1a CoreFoundation`__CFRunLoopDoTimers + 266
    frame #27: 0x0000000102fd1534 CoreFoundation`__CFRunLoopRun + 2308
    frame #28: 0x0000000102fd09b9 CoreFoundation`CFRunLoopRunSpecific + 409
    frame #29: 0x000000010300ceb3 CoreFoundation`CFRunLoopRun + 99
    frame #30: 0x00000001008d6d6f AiTing_DEV`astreamer::Audio_Stream::decodeLoop(data=0x00007fb987ae9000) at audio_stream.mm:1996
    frame #31: 0x000000010aee993b libsystem_pthread.dylib`_pthread_body + 180
    frame #32: 0x000000010aee9887 libsystem_pthread.dylib`_pthread_start + 286
    frame #33: 0x000000010aee908d libsystem_pthread.dylib`thread_start + 13
(lldb) po encoderDataCallback
(AiTing_DEV`astreamer::Audio_Stream::encoderDataCallback(OpaqueAudioConverter*, unsigned int*, AudioBufferList*, AudioStreamPacketDescription**, void*) at audio_stream.mm:2239)
lefex commented 6 years ago

7d7310db5a242c1c1f01eda45.png

The crash at here. Thanks. I hope you can deal with this crash.