Ticket #1744 (new defect)

Opened 8 months ago

Last modified 4 weeks ago

SDL out freezes

Reported by: rogerdpack Owned by:
Priority: normal Component: avdevice
Version: unspecified Keywords: sdl
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

Basically, no matter what you play with SDL out in windows, it plays for a few seconds, then output window stops updating. Console continues playing on though.

How to reproduce:

% ffmpeg version N-44123-g5d55830 Copyright (c) 2000-2012 the FFmpeg developers
  built on Sep  2 2012 20:23:29 with gcc 4.7.1 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-pthreads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      51. 70.100 / 51. 70.100
  libavcodec     54. 55.100 / 54. 55.100
  libavformat    54. 25.104 / 54. 25.104
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3. 15.102 /  3. 15.102
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[mpeg2video @ 003ccde0] ac-tex damaged at 40 7
[mpeg2video @ 003ccde0] Warning MVs not available
[mpeg2video @ 003ccde0] concealing 1035 DC, 1035 AC, 1035 MV errors in I frame
[mpeg @ 003cc420] max_analyze_duration 5000000 reached at 5024000
Input #0, mpeg, from '\vids\sintel.mpg':
  Duration: 00:14:47.58, start: 0.233367, bitrate: 4132 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [SAR 32:27 DAR 16:9], 7000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, 5.1(side), s16, 448 kb/s
[sdl @ 040812c0] w:720 h:480 fmt:yuv420p sar:32/27 -> w:720 h:405
Output #0, sdl, to 'yo':
  Metadata:
    encoder         : Lavf54.25.104
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 [SAR 32:27 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video -> rawvideo)
Press [q] to stop, [?] for help
[mpeg2video @ 003ccde0] ac-tex damaged at 40 7
[mpeg2video @ 003ccde0] Warning MVs not available
[mpeg2video @ 003ccde0] concealing 1035 DC, 1035 AC, 1035 MV errors in I frame
frame= 1059 fps= 56 q=0.0 Lsize=       0kB time=00:00:38.77 bitrate=   0.0kbits/s
video:536119kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.000000%

I think the window is "moving" for some reason, and it's not responding to that. I wonder if the fix is to just integrate with "real" ffplay, but anyway this one reproduces quite easily in windows, just drag the window anywhere and output freezes, basically.

Attachments

sdl_out_window_shifts.mp4 Download (1.4 MB) - added by rogerdpack 8 months ago.
you can see the window location "shifting" at the end, and after that the updates stop

Change History

Changed 8 months ago by rogerdpack

you can see the window location "shifting" at the end, and after that the updates stop

comment:1 Changed 8 months ago by cehoyos

I may not understand the issue, but I cannot reproduce anything similar to "plays for a few seconds, then output window stops updating". ffmpeg -f sdl plays as fast as hardware allows here, no freezes.

comment:2 Changed 8 months ago by cehoyos

  • Keywords sdl added

comment:3 Changed 8 months ago by rogerdpack

seems to reproduce quite readily here (windows 7).
 http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20120914-git-8bdba0b-win32-static.7z

ffmpeg-20120914-git-8bdba0b-win32-static\bin\ffmpeg.exe -i sintel.mpg

-f sdl "title"

I wasn't able to reproduce the failure in Linux however...

To encourage the failure moving the window around while it's playing can sometimes cause the problem to appear more quickly, but it usually only takes about 10 seconds without any help.

comment:4 Changed 7 months ago by rogerdpack

some how I missed the original command line. It was basically

$ ffmpeg -i sintel.mpg -f sdl "title"

comment:5 Changed 7 months ago by rogerdpack

Current work around is to pipe from ffmpeg to stdout, to ffplay  http://superuser.com/questions/322216/how-can-i-pipe-output-of-ffmpeg-to-ffplay

Though you might be able to use lavfi with dshow as an input to ffplay (I haven't quite got that one going though).

comment:6 Changed 3 months ago by richardpl

  • Component changed from undetermined to avdevice

comment:7 Changed 4 weeks ago by rogerdpack

perhaps it should call SDL_PumpEvents or SDL_PollEvent somehow? See also #1743

Last edited 4 weeks ago by rogerdpack (previous) (diff)
Note: See TracTickets for help on using tickets.