Opened 14 years ago
Closed 13 years ago
#273 closed defect (fixed)
h264 video decoding aborts due to too low number of "slices"
Reported by: | gerhard_s | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avcodec |
Version: | unspecified | Keywords: | h264 slice MAX_SLICES |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
I'm using h264 video codec for VoIP between linphone (on my machine, openSUSE 11.4, x86_64, using ffmpeg git dated on 20110604 and libx264-115) and Bria 3.2 (on Windows 7) on the other end.
I had the problem that after a few seconds the call terminated issuing
the message "Too many slices, increase MAX_SLICES and recompile".
I patched h264.h by increasing MAX_SLICES from 16 to 32 and now it works fine again.
I think MAX_SLICES is currently too low, should be increased to at least 32.
I don't know if Bria would send even more slices if the bandwidth was even bigger or video resolution was bigger. Is there a limit given by the codec for a reasonable upper threshold?
Change History (7)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
Status: | new → open |
---|
Could you confirm "abort"/"terminated"?
I thought "Too many slices" should only affect output visually, but shouldn't be a fatal error.
comment:3 by , 14 years ago
Unfortunately, it is.
It seems to trigger this piece of code in avcodec/h264.c:
if(h->slice_num >= MAX_SLICES){
av_log(s->avctx, AV_LOG_ERROR, "Too many slices, increase MAX_SLICES and recompile\n");
}
the result of which is a crash (log level = AV_LOG_ERROR).
comment:4 by , 14 years ago
Could you elaborate?
(av_log is supposed to print a message, not to crash.)
comment:5 by , 14 years ago
Unless there are vissual artifacts/the decode output differs or a crash/abort is reproduced, i see no reason to increase the parameter.
It could be made less chatty and scary maybe though.
comment:6 by , 14 years ago
I'm new here, so please cut me some slack. Sorry if I'm reporting it in the wrong place.
I'm using another system, 32-bit Arch Linux, and I got the same message "Too many slices, increase MAX_SLICES and recompile". when trying to watch some videos with mplayer2. This only happens with a couple of videos from the same source e.g. http://blip.tv/day9tv/ogs-mc-p-vs-sen-z-g1-dreamhack-summer-group-d-5290388
I got horrible artifacts and A/V desync / slo-mo video. A quick websearch returned this page so I increased the MAX_SLICES from 16 to 32 - as the OP suggested. This allowed me to actually watch the video - it wasn't slow, but the artifacts were still there if I e.g. fast-forwarded 10 seconds I had to wait a couple seconds until the window with the video finished "redrawing" (it looked like you would wipe the artifacts clean from left to right) and my terminal was still flooded with the same messages.
I then increased MAX_SLICES from 32 to 64 and I get no more "Too many slices" messages, but the artifacts still appear if I fast forward / backward the video.
Should I open a separate bug report?
comment:7 by , 13 years ago
Reproduced by developer: | set |
---|---|
Resolution: | → fixed |
Status: | open → closed |
locally fixed, will be pushed soon
In case "Bria" is too unspecific, it's available on counterpath.com