MaartenBaert / ssr

SimpleScreenRecorder, a screen recorder for Linux
http://www.maartenbaert.be/simplescreenrecorder/
GNU General Public License v3.0
2.59k stars 290 forks source link

nativeResourceForScreen: null screen with Teeworlds #365

Open Lucki opened 9 years ago

Lucki commented 9 years ago

Maybe this is very program-specific, but i'll report this anyway: I've recorded some Teeworlds. While recording, I've tabbed out of the game (it was in window mode). As soon as I get back to the game, SSR crashed and left an open-ended video file. This is reproducible.

SSR-terminal:

==================== SSR gestartet ====================
SimpleScreenRecorder 0.3.3
Compiled with GCC 5.1.0
Qt: header 5.4.1, lib 5.5.0
libavformat: header 56.25.101, lib 56.36.100
libavcodec: header 56.26.100, lib 56.41.100
libavutil: header 54.20.100, lib 54.27.100
libswscale: header 3.1.101, lib 3.1.101
[CPUFeatures::Detect] CPU Merkmale: mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 avx
[ALSAInput::GetSourceList] Generiere Quell-Liste...
[ALSAInput::GetSourceList] Karte gefunden: [hw:0] Xonar DX
[ALSAInput::GetSourceList] Gerät gefunden: [hw:0,0] Xonar DX: Multichannel
[ALSAInput::GetSourceList] Gerät gefunden: [hw:0,1] Xonar DX: Digital
[ALSAInput::GetSourceList] Karte gefunden: [hw:1] HDA NVidia
[PulseAudioInput::GetSourceList] Generiere Quell-Liste...
[SourceNamesCallback] Quelle gefunden: [alsa_output.pci-0000_03_04.0.analog-surround-71.monitor] Monitor of CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) Analog Surround 7.1
[SourceNamesCallback] Quelle gefunden: [alsa_input.pci-0000_03_04.0.analog-stereo] CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar DX)) Analog Stereo
[SourceNamesCallback] Quelle gefunden: [jack_in] Jack source (PulseAudio JACK Source)
[SourceNamesCallback] Quelle gefunden: [jack_out.monitor] Monitor of Jack sink (PulseAudio JACK Sink)
[PageRecord::StartPage] Start-Seite...
[SSRVideoStreamWatcher::Init] Bereits existierender Stream video-385227907-5038-glx0001-teeworlds hinzugefügt.
[PageRecord::StartPage] Seite gestartet.
[GLInjectInput::InputThread] Eingabe-Prozess gestartet.
[SSRVideoStreamReader::Init] Video Stream Reader wurde erzeugt.
[SimpleSynth::Init] Warnung: Puffer-Größe 2048 wird nicht unterstützt, es wird 3072 anstatt verwendet. Das ist kein Problem.
[SimpleSynth::SynthThread] Synth-Prozess gestartet.
[MakeThreadHighPriority] Verwende Echtzeit-Priorität.
[PageRecord::StartOutput] Ausgabe wird gestoppt...
[Muxer::Init] Verwende Format matroska (Matroska).
[Muxer::AddStream] Verwende Codec libx264 (libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10).
[VideoEncoder::PrepareStream] Verwende Pixel-Format yuv420
[libx264 @ 0x24f1440] using SAR=1/1
[libx264 @ 0x24f1440] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x24f1440] profile High 4:4:4 Predictive, level 4.0, 4:2:0 8-bit
[libx264 @ 0x24f1440] 264 - core 148 r2579 73ae2d1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=0 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=0 threads=4 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=cqp mbtree=0 qp=0
[BaseEncoder::EncoderThread] Starte Kodierungs-Prozess.
[Muxer::MuxerThread] Muxer-Prozess gestartet.
[PageRecord::StartOutput] Ausgabe gestartet.
[Synchronizer::SynchronizerThread] Synchronisierungs-Prozess gestartet.
[PageRecord::StartInput] Eingabe wird gestartet...
[PageRecord::StartInput] Eingabe gestartet.
nativeResourceForScreen: null screen
nativeResourceForScreen: null screen
nativeResourceForScreen: null screen
nativeResourceForScreen: null screen
nativeResourceForScreen: null screen
nativeResourceForScreen: null screen
[1]    24565 segmentation fault (core dumped)  simplescreenrecorder

Game-terminal:

ssr-glinject: LD_PRELOAD = :libssr-glinject.so
ssr-glinject: command = ./teeworlds
[SSR-GLInject] Library loaded (64-bit).
[…game stuff here…]
[SSR-GLInject] Hooked: dlsym(XDestroyWindow).
[SSR-GLInject] Hooked: dlsym(XNextEvent).
[SSR-GLInject] Hooked: dlsym(XDestroyWindow).
[SSR-GLInject] Hooked: dlsym(XNextEvent).
[SSR-GLInject] Hooked: dlsym(glXGetProcAddressARB).
[SSR-GLInject] Hooked: glXGetProcAddressARB(glXSwapBuffers).
[…game stuff here…]
[SSR-GLInject] Warning: glXSwapBuffers called without existing frame grabber, creating one assuming window == drawable.
[SSR-GLInject] [GLXFrameGrabber 1] Created GLX frame grabber.
[SSR-GLInject] [/dev/shm/ssr-channel-lucki/video-385227907-5038-glx0001-teeworlds] Created video stream.
[SSR-GLInject] OpenGL version = 4.5 (4.5.0 NVIDIA 352.41).
[SSR-GLInject] [/dev/shm/ssr-channel-lucki/video-385227907-5038-glx0001-teeworlds] frame size = 1920x1080.
[…game stuff here…]
[SSR-GLInject] [/dev/shm/ssr-channel-lucki/video-385227907-5038-glx0001-teeworlds] Destroyed video stream.
[SSR-GLInject] [GLXFrameGrabber 1] Destroyed GLX frame grabber.
[SSR-GLInject] Library unloaded.
MaartenBaert commented 9 years ago

Looks like a bug in Qt5. Could you try compiling with Qt4 and see whether it is also affected?

Possibly the same bug: https://github.com/tux3/qTox/issues/2144

Lucki commented 9 years ago

Sorry, but i'm not able to reproduce this anymore - even with qt5. I have no idea, what happened there. But now, SSR crashed after finishing the video. With qt5 again. I'll try it with qt4 next time - stay tuned.

Lucki commented 9 years ago

Quick report here: It only happens with qt5. I can't really tell when or in which context, that's always different or sometimes doesn't happen at all. Qt4 seems fine so far.