[FFmpeg-trac] #3531(undetermined:open): ffmpeg hangs converting a possibly broken avi file (was: ffplay can't play any video frame)
FFmpeg
trac at avcodec.org
Fri Apr 4 10:11:31 CEST 2014
#3531: ffmpeg hangs converting a possibly broken avi file
-------------------------------------+-------------------------------------
Reporter: hxuanyu | Owner:
Type: defect | Status: open
Priority: important | Component:
Version: git-master | undetermined
Keywords: avi | Resolution:
deadlock regression | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by cehoyos):
* status: new => open
* reproduced: 0 => 1
* priority: normal => important
* version: unspecified => git-master
* keywords: => avi deadlock regression
Comment:
(Works fine here with ffplay.)
Regression since 574dcb5b - possibly related to tickets #1796 and #3208.
{{{
(gdb) r -i Lake.avi -qscale 2 out.avi
Starting program: ffmpeg_g -i Lake.avi -qscale 2 out.avi
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ffmpeg version N-62122-g16509d3 Copyright (c) 2000-2014 the FFmpeg
developers
built on Apr 4 2014 09:59:31 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 52. 73.100 / 52. 73.100
libavcodec 55. 56.107 / 55. 56.107
libavformat 55. 36.101 / 55. 36.101
libavdevice 55. 11.100 / 55. 11.100
libavfilter 4. 3.100 / 4. 3.100
libswscale 2. 6.100 / 2. 6.100
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, avi, from 'Lake.avi':
Duration: 00:00:11.51, start: 0.000000, bitrate: 129297 kb/s
Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p, 720x480
[SAR 1:1 DAR 3:2], 29.97 tbr, 1000k tbn, 2000k tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p,
128 kb/s
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, avi, to 'out.avi':
Metadata:
ISFT : Lavf55.36.101
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 720x480 [SAR
1:1 DAR 3:2], q=2-31, 200 kb/s, 29.97 tbn, 29.97 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 44100 Hz, stereo, fltp,
192 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg4)
Stream #0:1 -> #0:1 (mp3 -> ac3)
Press [q] to stop, [?] for help
}}}
hangs here
{{{
Program received signal SIGINT, Interrupt.
ff_index_search_timestamp (flags=0, wanted_timestamp=<optimized out>,
nb_entries=11511001,
entries=0x7fffd477d010) at libavformat/utils.c:1822
1822 while (m >= 0 && m < nb_entries &&
(gdb) bt
#0 ff_index_search_timestamp (flags=0, wanted_timestamp=<optimized out>,
nb_entries=11511001, entries=0x7fffd477d010) at
libavformat/utils.c:1822
#1 av_index_search_timestamp (st=st at entry=0x1924140,
wanted_timestamp=<optimized out>,
flags=flags at entry=0) at libavformat/utils.c:1833
#2 0x000000000050fa50 in avi_read_packet (s=0x1923900, pkt=<optimized
out>)
at libavformat/avidec.c:1371
#3 0x00000000005e7666 in ff_read_packet (s=s at entry=0x1923900,
pkt=pkt at entry=0x7fffffffd630)
at libavformat/utils.c:767
#4 0x00000000005e9c30 in read_frame_internal (s=0x1923900,
pkt=0x7fffffffda10)
at libavformat/utils.c:1436
#5 0x00000000005eab06 in av_read_frame (s=0x1923900,
pkt=pkt at entry=0x7fffffffda10)
at libavformat/utils.c:1557
#6 0x0000000000480d85 in get_input_packet (pkt=0x7fffffffda10,
f=0x1b1ff20)
at ffmpeg.c:3184
#7 process_input (file_index=0) at ffmpeg.c:3221
#8 0x0000000000468db0 in transcode_step () at ffmpeg.c:3507
#9 transcode () at ffmpeg.c:3559
#10 main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:3739
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x5eae80 to 0x5eaec0:
0x00000000005eae80 <av_index_search_timestamp+160>: lea
(%r9,%rdx,8),%rdx
0x00000000005eae84 <av_index_search_timestamp+164>: jmp 0x5eae9d
<av_index_search_timestamp+189>
0x00000000005eae86 <av_index_search_timestamp+166>: nopw
%cs:0x0(%rax,%rax,1)
0x00000000005eae90 <av_index_search_timestamp+176>: movzbl
0x10(%rdx),%ecx
0x00000000005eae94 <av_index_search_timestamp+180>: add $0x18,%rdx
0x00000000005eae98 <av_index_search_timestamp+184>: and $0x1,%ecx
0x00000000005eae9b <av_index_search_timestamp+187>: jne 0x5eaf00
<av_index_search_timestamp+288>
0x00000000005eae9d <av_index_search_timestamp+189>: add $0x1,%eax
=> 0x00000000005eaea0 <av_index_search_timestamp+192>: cmp %eax,%r10d
0x00000000005eaea3 <av_index_search_timestamp+195>: jg 0x5eae90
<av_index_search_timestamp+176>
0x00000000005eaea5 <av_index_search_timestamp+197>: nopl (%rax)
0x00000000005eaea8 <av_index_search_timestamp+200>: cmp %eax,%r10d
0x00000000005eaeab <av_index_search_timestamp+203>: mov
$0xffffffff,%edx
0x00000000005eaeb0 <av_index_search_timestamp+208>: cmove %edx,%eax
0x00000000005eaeb3 <av_index_search_timestamp+211>: repz retq
0x00000000005eaeb5 <av_index_search_timestamp+213>: nopl (%rax)
0x00000000005eaeb8 <av_index_search_timestamp+216>: add %r10d,%r8d
0x00000000005eaebb <av_index_search_timestamp+219>: jmpq 0x5eae18
<av_index_search_timestamp+56>
End of assembler dump.
(gdb) info register
rax 0x3f7876 4159606
rbx 0x19249c0 26364352
rcx 0x0 0
rdx 0x7fffda6b1b20 140736857840416
rsi 0xf554e8 16078056
rdi 0x1eaa9d 2009757
rbp 0x0 0x0
rsp 0x7fffffffd428 0x7fffffffd428
r8 0xa38df 669919
r9 0x7fffd477d010 140736758009872
r10 0xafa4d9 11511001
r11 0x0 0
r12 0x1924130 26362160
r13 0x1924e80 26365568
r14 0x1924130 26362160
r15 0x7fffffffd630 140737488344624
rip 0x5eaea0 0x5eaea0 <av_index_search_timestamp+192>
eflags 0x202 [ IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3531#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list