2015-11-26 41 views
7

kullanarak kamera akışı video karesini deşifre ederken bir hata var Uygulamam var, IP kameradan gelen video karelerinin kodunu çözüyorum ama 'da bulunan ve bad_access'i oluşturan yöntem, neyin yanlış olduğunu anlayamıyorum.FFMpeg iOS

Bu uygulama eski kitaplıklar FFMpeg ile çalışıyordu, ancak elma politikasıyla, uygulamayı yayınlamak için arm64'ü destekledim, bu yüzden kol64'ü desteklemek için kitaplıklarımı güncelleştirdim ve bundan sonra bu sorun oluştu.

[h264 @ 0x1071400] sps_id 12 out of range 
[h264 @ 0x1071400] pps_id 417 out of range 
[h264 @ 0x1071400] sps_id 3 out of range 
[h264 @ 0x1071400] sps_id 32 out of range 
[h264 @ 0x1071400] sps_id 6 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 32 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 3 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 32 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 32 out of range 
[h264 @ 0x1071400] sps_id 3 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] pps_id 418 out of range 
[h264 @ 0x1071400] Partitioned H.264 support is incomplete 
[h264 @ 0x1071400] sps_id 6 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 1 out of range 
[h264 @ 0x1071400] non-existing PPS 3 referenced 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] slice type 10 too large at 0 0 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] non-existing PPS 2 referenced 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] slice type 29 too large at 0 0 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] sps_id 2 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] sps_id 0 out of range 
[h264 @ 0x1071400] slice type 32 too large at 0 0 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] slice type 32 too large at 0 0 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] slice type 32 too large at 0 0 
[h264 @ 0x1071400] decode_slice_header error 
[h264 @ 0x1071400] slice type 32 too large at 0 0 

Komple hata günlüğü:https://drive.google.com/file/d/0B-Nh7ci6wLX0OVlxaXV4aGpJems/view?usp=sharing

İşte

ekran görüntüsü

enter image description here

bad_access uygulama aşağıdaki günlük üretmekte iken olduğu

Crash Giriş:http://crashes.to/s/6765d63b540

Not: Başka herhangi bir şey gerekiyorsa, yorum lütfen.

+0

Bu ekran görüntüsü, kilitlenme günlüğüyle eşleşmiyor gibi görünüyor. Kilitlenme günlüğü, NULL öğesinin geçersiz kılınmasına benzer. Ayrıca, parametre değerlerini bilmek de yararlı olacaktır. – trojanfoe

+0

görmek istediğiniz parametreler. Bana ihtiyacın olan şeyi söyle. –

+0

Bu yönteme – trojanfoe

cevap

3

Sorunumu çözdüm Sorun, avcodec_alloc_frame() amortismanlı yöntemle ilgiliydi.

Ben

m_pCodecCtx = avcodec_alloc_context3(m_pCodec); 
    if(m_pCodecCtx == NULL) 
    { 
     NSLog(@"if(pCodecCtx == NULL)\n"); 
     return ; 
    } 
    [g_Lock lock]; 
    //¥Úø™codec°£»Áπ˚¥Úø™≥…𶵃ª∞£¨∑÷≈‰AVFrame£  
    if(avcodec_open2(m_pCodecCtx, m_pCodec, NULL) >= 0)  
    {  
     m_pFrame = avcodec_alloc_frame(); /* Allocate video frame */ 

    } 
    [g_Lock unlock]; 

Sonra sonunda güncellenecek benim başlık dosyalarının yapıcı

aşağıdaki kodu kullanıyordum, sonra ben çok yöntemin avcodec_alloc_frame() değer kaybetmesi hakkında uyarılar, ben av_frame_alloc() güncellemiş var ve sorunsuz çalıştı!