Opened 3 years ago

Closed 3 years ago

#8955 closed defect (fixed)

ffplay, zmq example doesn't work

Reported by: Michael Koch Owned by:
Priority: important Component: swscale
Version: git-master Keywords: zmq example crash regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

This command line is given as an example in the official documentation of the zmq filter. https://www.ffmpeg.org/ffmpeg-all.html#zmq_002c-azmq

ffplay -dumpgraph 1 -f lavfi
"color=s=100x100:c=red[l];color=s=100x100:c=blue[r];nullsrc=s=200x100,zmq[bg];[bg][l]overlay[bg+l];[bg+l][r]overlay at my=x=100"

The problem is that ffplay exits after 1-5 seconds (or sometimes even longer) without any error message, and without showing the output window. I'm not sending any commands to the zmq filter.
Known workaround: Change the size of nullsrc to 400x200, then it works.

C:\Users\astro\Desktop>c:\ffmpeg\ffplay -dumpgraph 1 -f lavfi
"color=s=100x100:c=red[l];color=s=100x100:c=blue[r];nullsrc=s=200x100,zmq[bg];[bg][l]overlay[bg+l];[bg+l][r]overlay at my=x=100"
ffplay version 2020-10-21-git-289e964873-essentials_build-www.gyan.dev
Copyright (c) 2003-2020 the FFmpeg developers

built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static

--disable-w32threads --disable-autodetect --enable-fontconfig
--enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
--enable-lzma --enable-zlib --enable-libsrt --enable-libssh
--enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom
--enable-libopenjpeg --enable-libvpx --enable-libass
--enable-libfreetype --enable-libfribidi --enable-libvidstab
--enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm
--enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc
--enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme
--enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame
--enable-libtheora --enable-libvo-amrwbenc --enable-libgsm
--enable-libopencore-amrnb --enable-libopus --enable-libspeex
--enable-libvorbis --enable-librubberband

libavutil 56. 60.100 / 56. 60.100
libavcodec 58.111.101 / 58.111.101
libavformat 58. 62.100 / 58. 62.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 88.100 / 7. 88.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100

+----------------+0 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
| Parsed_color_0 |default--[100x100 1:1 yuva420p]--Parsed_overlay_4:overlay
| (color) |
+----------------+

+----------------+
| Parsed_color_1 |default--[100x100 1:1 yuva420p]--overlay at my:overlay
| (color) |
+----------------+

+------------------+
| Parsed_nullsrc_2 |default--[200x100 1:1 yuva420p]--Parsed_zmq_3:default
| (nullsrc) |
+------------------+

+--------------+
Parsed_nullsrc_2:default--[200x100 1:1 yuva420p]--default| Parsed_zmq_3
|default--[200x100 1:1 yuva420p]--Parsed_overlay_4:main

| (zmq) |

+--------------+

+------------------+
Parsed_zmq_3:default----[200x100 1:1 yuva420p]-----main|
Parsed_overlay_4 |default--[200x100 1:1 yuva420p]--overlay at my:main
Parsed_color_0:default--[100x100 1:1 yuva420p]--overlay| (overlay) |
+------------------+

+------------+
Parsed_overlay_4:default--[200x100 1:1 yuva420p]-----main| overlay at my
|default--[200x100 1:1 yuva420p]--out:default
Parsed_color_1:default----[100x100 1:1 yuva420p]--overlay| (overlay) |
+------------+

+--------------+

overlay at my:default--[200x100 1:1 yuva420p]--default| out |

| (buffersink) |
+--------------+

Input #0, lavfi, from
'color=s=100x100:c=red[l];color=s=100x100:c=blue[r];nullsrc=s=200x100,zmq[bg];[bg][l]overlay[bg+l];[bg+l][r]overlay at my=x=100':

Duration: N/A, start: 0.000000, bitrate: N/A

Stream #0:0: Video: rawvideo (Y4[11][8] / 0x80B3459), yuva420p,

200x100 [SAR 1:1 DAR 2:1], 25 tbr, 25 tbn, 25 tbc

Change History (3)

comment:1 by Michael Koch, 3 years ago

Of course I'm not using "overlay at my" in my command line, but instead "overlay@my". Sorry, this was somehow changed during copy and paste.

comment:2 by Marton Balint, 3 years ago

Analyzed by developer: set
Component: ffplayswscale
Keywords: crash regression added
Priority: normalimportant
Reproduced by developer: set
Status: newopen

This is due to an unaligned read in swscale/x86/yuv2rgb, will send patch.

comment:3 by Marton Balint, 3 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.