[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