[Libav-user] "Internal error, slice end before start" may cause a crash

Julian Herrera julian.herrera at tvgenius.net
Thu Jul 18 13:22:54 CEST 2013


Hello,

I've developed a MPEG2-TS video player for iPad using ffmpeg and 
sometimes I get the following error message whilst performing a seek 
operation:

"internal error, slice end before start"

Most of times the video keeps playing normally after the operation is 
finished, but a few times (actually rarely) the app crashes (without 
outputting that message) inside avcodec_decode_video2() function. This 
is the lldb backtrace of the crash:

* thread #12: tid = 0x2903, 0x00315576 
astra`ff_thread_report_progress(f=0x00000000, n=0, field=0) + 10 at 
pthread.c:682, stop reason = EXC_BAD_ACCESS (code=1,address=0x144)
     frame #0: 0x00315576 astra`ff_thread_report_progress(f=0x00000000, 
n=0, field=0) + 10 at pthread.c:682
     frame #1: 0x002f8f6c astra`ff_MPV_report_decode_progress() + 52 at 
mpegvideo.c:3104
     frame #2: 0x002dd6e6 astra`mpeg_decode_slice(s=0x0f9eaa00, 
buf=0x03985a14) + 7854 at mpeg12.c:1813
     frame #3: 0x002db046 astra`decode_chunks(avctx=0x0f9e1a00, 
picture=0x1083b840, got_output=0x03985d60, buf=0x0fa03000) + 7302 at 
mpeg12.c:2511
     frame #4: 0x002d9378 astra`mpeg_decode_frame(avctx=0x0f9e1a00, 
data=0x1083b840, got_output=0x03985d60) + 816 at mpeg12.c:2580
     frame #5: 0x0035ee0c astra`avcodec_decode_video2(avctx=0x0f9e1a00, 
picture=0x1083b840, got_picture_ptr=0x03985d60, avpkt=0x10894500) + 292 
at utils.c:1624
     frame #6: 0x0010fe20 astra`-[RBVideoDecoder 
decodeVideoPacket](self=0x00e20b60, _cmd=0x00444bcf) + 1768 at 
RBVideoDecoder.m:1087
     frame #7: 0x3509da80 Foundation`-[NSThread main] + 72
     frame #8: 0x35131590 Foundation`__NSThread__main__ + 1048
     frame #9: 0x34f21734 libsystem_c.dylib`_pthread_start + 320

The line where it crashes (pthread.c:682) from the function (void 
ff_thread_report_progress(AVFrame *f, int n, int field)) is the following:

volatile int *progress = f->thread_opaque;

That is, the AVFrame * f passed to that function is null. Is this a 
known error? Could you guys suggest a starting point to investigate this 
issue?

Thanks in advance.

Julian



More information about the Libav-user mailing list