Opened 12 years ago

Closed 12 years ago

#633 closed defect (fixed)

lowres with some dvvideo files doesn't work correctly

Reported by: ami_stuff Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: dvvideo lowres
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

ffmpeg -vlowres 1 -i dvcp.avi out.avi

file from ticket #159

C:\>ffmpeg -i C:\dvcp.avi
ffmpeg version N-34318-g8475ec1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Oct 31 2011 17:50:05 with gcc 4.6.1
  configuration: --enable-gpl --enable-version3 --enable-runtime-cpudetect --ena
ble-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --ena
ble-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --en
able-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib

  libavutil    51. 22. 0 / 51. 22. 0
  libavcodec   53. 26. 0 / 53. 26. 0
  libavformat  53. 18. 0 / 53. 18. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 45. 3 /  2. 45. 3
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[avi @ 020A2320] parser not found for codec dvvideo, packets or times may be inv
alid.
Input #0, avi, from 'C:\dvcp.avi':
  Duration: 00:00:00.64, start: 0.000000, bitrate: 28907 kb/s
    Stream #0:0: Video: dvvideo (dvsd / 0x64737664), yuv420p, 720x576 [SAR 16:15
 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
At least one output file must be specified

Change History (5)

comment:1 by Carl Eugen Hoyos, 12 years ago

Reproduced by developer: set
Status: newopen

Crashes with ffplay (different backtraces possible)

gdb) r -lowres 1 -i dvcp.avi

Starting program: ffplay_g -lowres 1 -i dvcp.avi
[Thread debugging using libthread_db enabled]
ffplay version N-34647-geb4fc6a, Copyright (c) 2003-2011 the FFmpeg developers
  built on Nov 10 2011 15:57:39 with gcc 4.5.3
  configuration: --cc='/usr/local/gcc-4.5.3/bin/gcc -m32'
  libavutil    51. 24. 1 / 51. 24. 1
  libavcodec   53. 31. 0 / 53. 31. 0
  libavformat  53. 20. 0 / 53. 20. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 47. 2 /  2. 47. 2
  libswscale    2.  1. 0 /  2.  1. 0
[New Thread 0xf78e2b70 (LWP 17101)]
[New Thread 0xf6f29b70 (LWP 17102)]
[avi @ 0x8dfa320] parser not found for codec dvvideo, packets or times may be invalid.
Input #0, avi, from 'dvcp.avi':
  Duration: 00:00:00.64, start: 0.000000, bitrate: 28907 kb/s
    Stream #0:0: Video: dvvideo (dvsd / 0x64737664), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[New Thread 0xf6728b70 (LWP 17103)]
[New Thread 0xf5f27b70 (LWP 17104)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf6728b70 (LWP 17103)]
0x081b8767 in put_pixels_clamped4_c (line_size=192, pixels=0xf5624670 "", block=0xf6726a70)
    at libavcodec/dsputil.c:396
396             pixels[0] = cm[block[0]];
#0  0x081b8767 in put_pixels_clamped4_c (line_size=192, pixels=0xf5624670 "", block=0xf6726a70)
    at libavcodec/dsputil.c:396
#1  ff_jref_idct4_put (line_size=192, pixels=0xf5624670 "", block=0xf6726a70) at libavcodec/dsputil.c:2749
#2  0x082080ec in dv_decode_video_segment (avctx=0x8dfa820, arg=0x8870a20) at libavcodec/dv.c:633
#3  0x084bcbbe in avcodec_default_execute (c=0x8dfa820, func=0x8207630 <dv_decode_video_segment>,
    arg=0x8870a20, ret=0x0, count=270, size=12) at libavcodec/utils.c:478
#4  0x082046da in dvvideo_decode_frame (avctx=0x8dfa820, data=0xf5600480, data_size=0xf672814c,
    avpkt=0xf6728108) at libavcodec/dv.c:1099
#5  0x084bdde1 in avcodec_decode_video2 (avctx=0x8dfa820, picture=0xf5600480, got_picture_ptr=0xf672814c,
    avpkt=0xf6728108) at libavcodec/utils.c:819
#6  0x0804f30e in get_video_frame (pkt=0xf6728108, pts=<value optimized out>, frame=0xf5600480,
    is=0xf6f2a020) at ffplay.c:1483
#7  input_request_frame (pkt=0xf6728108, pts=<value optimized out>, frame=0xf5600480, is=0xf6f2a020)
    at ffplay.c:1656
#8  0x0805f7af in avfilter_request_frame (link=0xf5600840) at libavfilter/avfilter.c:520
#9  0x08063d7b in av_buffersink_get_buffer_ref (ctx=0xf56005c0, bufref=0xf6728318, flags=0)
    at libavfilter/sink_buffer.c:128
#10 0x0805037a in video_thread (arg=0xf6f2a020) at ffplay.c:1822
#11 0xf7e50391 in ?? () from /usr/lib/libSDL-1.2.so.0
#12 0xf7e9c6eb in ?? () from /usr/lib/libSDL-1.2.so.0
#13 0xf7e2c6e5 in start_thread () from /lib/libpthread.so.0
#14 0xf7e2c600 in ?? () from /lib/libpthread.so.0
(gdb) disass $pc-13 $pc+32
Dump of assembler code from 0x81b875a to 0x81b8787:
0x081b875a <put_pixels_clamped4_c+0>:   movswl (%ebx),%eax
0x081b875d <put_pixels_clamped4_c+3>:   lea    0x10(%ebx),%edx
0x081b8760 <put_pixels_clamped4_c+6>:   movzbl 0x882e620(%eax),%eax
0x081b8767 <put_pixels_clamped4_c+13>:  mov    %al,(%esi)
0x081b8769 <put_pixels_clamped4_c+15>:  movswl 0x2(%ebx),%eax
0x081b876d <put_pixels_clamped4_c+19>:  movzbl 0x882e620(%eax),%eax
0x081b8774 <put_pixels_clamped4_c+26>:  mov    %al,0x1(%esi)
0x081b8777 <put_pixels_clamped4_c+29>:  movswl 0x4(%ebx),%eax
0x081b877b <put_pixels_clamped4_c+33>:  movzbl 0x882e620(%eax),%eax
0x081b8782 <put_pixels_clamped4_c+40>:  mov    %al,0x2(%esi)
0x081b8785 <put_pixels_clamped4_c+43>:  movswl 0x6(%ebx),%eax
End of assembler dump.
(gdb) info register
eax            0x7d     125
ecx            0x7e     126
edx            0xf6726a80       -160273792
ebx            0xf6726a70       -160273808
esp            0xf67264d0       0xf67264d0
ebp            0xc0     0xc0
esi            0xf5624670       -178108816
edi            0xc0     192
eip            0x81b8767        0x81b8767 <put_pixels_clamped4_c+13>
eflags         0x210282 [ SF IF RF ID ]
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x0      0
gs             0x63     99

comment:2 by Carl Eugen Hoyos, 12 years ago

Keywords: crash SIGSEGV dvvideo added

comment:3 by Michael Niedermayer, 12 years ago

Cant reproduce with either ffplay nor ffmpeg

comment:4 by Carl Eugen Hoyos, 12 years ago

Keywords: lowres added; crash SIGSEGV removed
Version: unspecifiedgit-master

The crash is not reproducible anymore, lowres does not work correctly for the sample.

comment:5 by reimar, 12 years ago

Resolution: fixed
Status: openclosed

The workaround for ticket 159 failed to handle the lowres case.

Note: See TracTickets for help on using tickets.