diff options
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 48 |
1 files changed, 44 insertions, 4 deletions
@@ -177,9 +177,7 @@ Test if `xrandr --output DP-1 --scale 1.5` captures correct size on nvidia. Fix cursor position and scale when scaling x11 display. -Support surround audio in application audio recording. Right now only stereo and mono sound is supported. - -Support application audio recording without pulseaudio combined sink. +Support application audio recording without pipewire combined sink. Support transposing (rotating) with vaapi. This isn't supported on many devices with rgb buffer, but its supported with nv12 buffer (on intel at least). @@ -248,7 +246,8 @@ Support high quality scaling with -s by using lanczos. Support spanning multiple monitors with region capture. This would also allow the user to record multiple monitors at the same time, the same way screen-direct works on nvidia x11. -When webcam support is added also support v4l2loopback? this is done by using avdevice_register_all(); and -c v4l2 -o /dev/video0; but it needs to output raw data as well instead of h264 and possibly yuv420p. Maybe add a -k yuv420p option to do that. +When webcam support is added also support v4l2loopback? this is done by using avdevice_register_all(); and -c v4l2 -o /dev/video0; but it needs to output raw data as well instead of h264 and possibly yuv420p. Maybe add a -k yuv420p option to do that or -k rgb. + This would be implemented by outputting the raw data directly into the output file, without using the video encoder. Do proper exit, to call gsr_capture_destroy which will properly stop gsr-kms-server. Otherwise there can be zombie gsr-kms-server on error. @@ -269,3 +268,44 @@ Fix opengl context broken after suspend on nvidia by using this: https://registr HDR looks incorrect, brightest point gets cut off. Make "screen" capture the preferred monitor. + +When webcam support is added add the option to add it as a second video track, to make it easier to edit in video editors. + +Fix constant framerate not working properly on amd/intel because capture framerate gets locked to the same framerate as + game framerate, which doesn't work well when you need to encode multiple duplicate frames (AMD/Intel is slow at encoding!). + It also appears to skip audio frames on nvidia wayland? why? that should be fine, but it causes video stuttering because of audio/video sync. + +Add option to pass a fd (from socketpair) to use for rpc. In the rpc have a common header, with protocol version, data type and data in an enum. + +Add the option to set audio track name, for example with -a "track-name:blabla|device:default_output|app:firefox" + +Maybe disable qp/vbr for replay. In that case we can preallocate all replay data (for both ram and disk) and write to that directly when receiving packet (dont do that when also recording at the same time). + That could improve performance/disk write optimization and maybe even reduce ram usage because of less blocks/fragmentation. + +When rpc is added add the option to add/remove audio devices/app audio and also overlays (from new capture sources). + +Support hdr screenshot. + +Recreate opengl context on loss. This can happen if there is a gpu driver bug, causing context to need to be recreated. This is a nice improvement to not break recording even with buggy driver. + +Support saving video with surround sound. Surround sound audio capture does work, but it gets downmixed to stereo. + +Add (render) plugin support. To simplify it (and possibly best performance) create one rgba texture (with the size of the output video) that is used across all plugins. + Create a framebuffer and set this texture and the target and set the framebuffer as active before calling the plugins. + Then the plugins can render simply by doing simple opengl draw functions. + Maybe send some metadata to the plugin, such as video (and framebuffer) size. Although this data can be retrieved from the active framebuffer. + +Either support webcam support with raw yuyv, mapping the buffer directly to opengl. Or use mjpeg, mapping the buffer directly to vaapi jpeg decoder and then get then map the decoded buffer to opengl. + Some webcams dont support raw yuyv and many webcams support higher framerates for mjpeg. + +Allow medium, high, very_high and ultra quality for -bm cbr. If that is used then it will automatically estimate the best bitrate for that quality based on resolution and fps. + Maybe do this in the ui instead (or both?), to show estimated file size. + +Maybe remove shader compute code. It doesn't seem necessary anymore now that glSwapBuffer/glFinish isn't used. dbus server isn't needed anymore either, the code can be moved back to the gpu screen recorder process. + +Add proper check if opengl functions are supported. dlsym for the symbol will return a no-op function if it's not supported, so it silently fails if used. + +Colors are offset to bottom left by 1 pixel or so on steam deck in landscape mode. + +When constant framerate is used (and for audio) multiple frames need to be encoded after resuming from suspend. + The clock jumps forward by around 2-3 seconds (on my machine). Is there a way to make sure the clock doesn't jump forward?
\ No newline at end of file |