There are couple of ways to report a problem:
- you can use GitHub issues for reporting bugs. You need to register, but it is only matter of filling username and password.
- alternativey you can use our an e-mail conference ultragrid-dev _at_ cesnet.cz which leads to developers of UltraGrid
- if not sure if the problem is a bug, you can also use GitHub discussions to ask a question.
Please try to follow these rules when reporting a bug if possible:
-
test the issue with latest version of UltraGrid (either release or continuous channel), preferably using our official binary builds
-
if relevant, attach information about your environment (SW/HW)
-
report a minimal broken example demonstrating the problem -- this mainly means removing irrelevant parameters from UltraGrid command-line. Explicit parameters' specification like video mode or similar properties is however encouraged.
-
if the problem is specific to some device, try to use either testcard to generate the signal that isn't displayed correctly or GL/SDL display to display the broken signal, recommended reported use-cases:
uv -t testcard:codec=RGB -d ndi # problems with NDI display # problems with DeckLink cap. (`-d gl` can be omitted eg. for a crash) uv -t decklink[:args] -d gl uv -t testcard -c libavcodec:encoder=libx264 -d gl # compression problem
not recommended:
# not sure what the signal actually is and if probiem is in cap. or disp uv -t decklink[:args] -d decklink[:args] # not run on localhost; use only to report network problems uv -t testcard -c libavcodec[:params] receiver # bloated uv -t testcard -c libavcodec -m 1400 -l 30M -T 32 # using developer-only parameters uv [params] --param xyz=val
If testcard isn't capable to produce a signal, that is complex enough to demonstrate the problem, you can try following videos to vidcap file (
-t file:<filename>
):- filesamples.com
- Ultra Video Group Dataset
- archive.org, eg. Elephants Dream, Sintel, BloodSpell or Big Buck Bunny
Following hints are rather to be considered if you consider it relevant. It also doesn't necessarily need to be present in the first bug report but requested by developers:
-
If you suspect that the issue may not be always replicable, you can use a script ultragrid-bugreport-collect.sh to collect data about a computer and attach its result (Linux/macOS).
-
If the problem is a crash (segmentation fault, abort), if possible, attach a core dump (if generated) and the binary (if you compiled by yourself, otherwise the executable version). If core dump is not generated, a backtrace (see below) might have been generated to standard error output so please attach this. Also the terminal output containg the error context would be helpful.
If reporting a bug, you can also decode the stacktrace for the bug report. The following is intended mainly for advanced users with UltraGrid compiled from source, don't bother with it not sure. Requires addr2line and objdump.
Eg. we have a stacktrace saved as stacktrace.txt:
Backtrace:
./bin/uv(+0x21b946)[0x562ebedee946]
/lib/x86_64-linux-gnu/libc.so.6(+0x41950)[0x7f7d9dfe4950]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f7d9dfe48cb]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x116)[0x7f7d9dfc9864]
./bin/uv(main+0x2b93)[0x562ebedf7141]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf2)[0x7f7d9dfcbcb2]
./bin/uv(_start+0x2e)[0x562ebecd7b9e]
In UltraGrid sources there is a script tools/stacktrace_addr2line.sh
.
You can use that to decode the stacktrace addresses to human-readable symbols:
$ ./tools/stacktrace_addr2line.sh < stacktrace.txt
Decoding ../build-devel-linux/bin/uv(+0x21b946)[0x563cded2e946]
crash_signal_handler(int)
/home/martin/Projects/ultragrid/build-devel-linux/../src/main.cpp:301
Decoding /lib/x86_64-linux-gnu/libc.so.6(+0x41950)[0x7fc826d85950]
killpg
??:?
Decoding /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fc826d858cb]
??
??:0
Decoding /lib/x86_64-linux-gnu/libc.so.6(abort+0x116)[0x7fc826d6a864]
??
??:0
Decoding ../build-devel-linux/bin/uv(main+0x2b93)[0x563cded37141]
main
/home/martin/Projects/ultragrid/build-devel-linux/../src/main.cpp:1313
Decoding /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf2)[0x7fc826d6ccb2]
??
??:0
Decoding ../build-devel-linux/bin/uv(_start+0x2e)[0x563cdec17b9e]
_start
??:?
Note: The script needs to be called from the same directory as UltraGrid was called for the script to be able to find the executable.