From 67704ac59c7f75895dcc536985c3f4b909173f41 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sun, 28 Aug 2016 14:07:43 +0200 Subject: [PATCH] New upstream version 0.15.4+dfsg1 --- CMakeLists.txt | 1 + README | 2 +- cmake/Modules/FindLibVLC.cmake | 72 ++ cmake/Modules/FindLibspeexdsp.cmake | 68 ++ cmake/external/ObsPluginHelpers.cmake | 40 +- deps/w32-pthreads/CMakeLists.txt | 5 +- deps/w32-pthreads/w32-pthreadsConfig.cmake.in | 15 + .../w32-pthreadsConfigVersion.cmake.in | 0 libobs-d3d11/d3d11-shader.cpp | 13 + libobs-d3d11/d3d11-subsystem.hpp | 1 + libobs-opengl/gl-shader.c | 11 + libobs-opengl/gl-subsystem.h | 1 + libobs/graphics/effect.c | 16 + libobs/graphics/effect.h | 1 + libobs/graphics/graphics-imports.c | 1 + libobs/graphics/graphics-internal.h | 2 + libobs/graphics/graphics.c | 10 + libobs/graphics/graphics.h | 4 + libobs/graphics/image-file.c | 11 +- libobs/graphics/matrix4.c | 53 +- libobs/graphics/shader-parser.c | 5 +- libobs/obs-audio-controls.c | 58 +- libobs/obs-config.h | 4 +- libobs/obs-data.c | 13 +- libobs/obs-data.h | 1 + libobs/obs-encoder.c | 5 +- libobs/obs-encoder.h | 3 + libobs/obs-internal.h | 18 +- libobs/obs-module.c | 12 +- libobs/obs-module.h | 4 +- libobs/obs-output-delay.c | 23 +- libobs/obs-output.c | 339 +++++--- libobs/obs-output.h | 2 +- libobs/obs-properties.c | 24 +- libobs/obs-properties.h | 13 +- libobs/obs-scene.c | 176 ++++- libobs/obs-scene.h | 5 +- libobs/obs-service.c | 6 +- libobs/obs-source-transition.c | 50 +- libobs/obs-source.c | 56 +- libobs/obs-video.c | 3 +- libobs/obs-windows.c | 22 +- libobs/obs.c | 7 + libobs/obs.h | 10 + libobs/util/cf-parser.h | 9 + libobs/util/dstr.h | 8 +- libobs/util/platform-cocoa.m | 32 +- libobs/util/platform-nix.c | 21 +- libobs/util/platform-windows.c | 31 +- libobs/util/platform.c | 23 + libobs/util/platform.h | 5 + obs/CMakeLists.txt | 4 +- obs/audio-encoders.cpp | 2 +- obs/data/locale.ini | 5 +- obs/data/locale/ar-SA.ini | 28 +- obs/data/locale/bg-BG.ini | 2 + obs/data/locale/ca-ES.ini | 25 + obs/data/locale/cs-CZ.ini | 25 + obs/data/locale/da-DK.ini | 2 + obs/data/locale/de-DE.ini | 25 + obs/data/locale/el-GR.ini | 2 + obs/data/locale/en-US.ini | 30 + obs/data/locale/es-ES.ini | 25 + obs/data/locale/et-EE.ini | 255 +++++++ obs/data/locale/eu-ES.ini | 51 +- obs/data/locale/fi-FI.ini | 90 ++- obs/data/locale/fr-FR.ini | 39 +- obs/data/locale/gl-ES.ini | 2 + obs/data/locale/he-IL.ini | 37 + obs/data/locale/hr-HR.ini | 8 + obs/data/locale/hu-HU.ini | 25 + obs/data/locale/it-IT.ini | 87 +++ obs/data/locale/ja-JP.ini | 27 +- obs/data/locale/ko-KR.ini | 25 + obs/data/locale/lt-LT.ini | 79 ++ obs/data/locale/ms-MY.ini | 49 +- obs/data/locale/nb-NO.ini | 98 ++- obs/data/locale/nl-NL.ini | 25 + obs/data/locale/pl-PL.ini | 26 + obs/data/locale/pt-BR.ini | 12 + obs/data/locale/pt-PT.ini | 55 ++ obs/data/locale/ro-RO.ini | 2 + obs/data/locale/ru-RU.ini | 25 + obs/data/locale/sk-SK.ini | 2 + obs/data/locale/sl-SI.ini | 2 + obs/data/locale/sr-CS.ini | 8 + obs/data/locale/sr-SP.ini | 8 + obs/data/locale/sv-SE.ini | 32 +- obs/data/locale/ta-IN.ini | 2 + obs/data/locale/th-TH.ini | 2 + obs/data/locale/tr-TR.ini | 2 + obs/data/locale/uk-UA.ini | 200 ++++- obs/data/locale/vi-VN.ini | 30 +- obs/data/locale/zh-CN.ini | 25 + obs/data/locale/zh-TW.ini | 134 ++-- obs/forms/OBSBasic.ui | 471 +++++++----- obs/forms/OBSBasicSettings.ui | 280 ++++--- obs/forms/OBSBasicSourceSelect.ui | 4 +- obs/obs-app.cpp | 23 +- obs/obs-app.hpp | 3 + obs/platform-windows.cpp | 15 + obs/platform.hpp | 1 + obs/properties-view.cpp | 78 +- obs/properties-view.hpp | 1 + obs/window-basic-filters.cpp | 21 + obs/window-basic-main-outputs.cpp | 58 +- obs/window-basic-main-outputs.hpp | 3 +- obs/window-basic-main-transitions.cpp | 5 + obs/window-basic-main.cpp | 357 ++++++++- obs/window-basic-main.hpp | 16 +- obs/window-basic-preview.cpp | 16 + obs/window-basic-preview.hpp | 5 + obs/window-basic-settings.cpp | 96 ++- obs/window-basic-source-select.cpp | 43 +- obs/window-basic-status-bar.cpp | 14 +- obs/window-basic-status-bar.hpp | 2 + obs/window-projector.cpp | 11 +- plugins/CMakeLists.txt | 3 + .../coreaudio-encoder/data/locale/fi-FI.ini | 2 +- .../coreaudio-encoder/data/locale/it-IT.ini | 2 + .../coreaudio-encoder/data/locale/nb-NO.ini | 2 + .../coreaudio-encoder/data/locale/pt-PT.ini | 2 + plugins/coreaudio-encoder/encoder.cpp | 3 +- plugins/coreaudio-encoder/windows-imports.h | 2 +- plugins/decklink/data/locale/pt-PT.ini | 1 + .../decklink/decklink-device-discovery.cpp | 2 +- plugins/image-source/CMakeLists.txt | 11 +- plugins/image-source/data/locale/ar-SA.ini | 1 + plugins/image-source/data/locale/bg-BG.ini | 1 + plugins/image-source/data/locale/ca-ES.ini | 11 + plugins/image-source/data/locale/cs-CZ.ini | 11 + plugins/image-source/data/locale/da-DK.ini | 1 + plugins/image-source/data/locale/de-DE.ini | 11 + plugins/image-source/data/locale/el-GR.ini | 1 + plugins/image-source/data/locale/en-US.ini | 11 + plugins/image-source/data/locale/es-ES.ini | 11 + plugins/image-source/data/locale/eu-ES.ini | 11 + plugins/image-source/data/locale/fi-FI.ini | 11 + plugins/image-source/data/locale/fr-FR.ini | 11 + plugins/image-source/data/locale/gl-ES.ini | 1 + plugins/image-source/data/locale/he-IL.ini | 11 + plugins/image-source/data/locale/hr-HR.ini | 11 + plugins/image-source/data/locale/hu-HU.ini | 11 + plugins/image-source/data/locale/it-IT.ini | 11 + plugins/image-source/data/locale/ja-JP.ini | 11 + plugins/image-source/data/locale/ko-KR.ini | 11 + plugins/image-source/data/locale/nb-NO.ini | 11 + plugins/image-source/data/locale/nl-NL.ini | 11 + plugins/image-source/data/locale/pl-PL.ini | 11 + plugins/image-source/data/locale/pt-BR.ini | 11 + plugins/image-source/data/locale/pt-PT.ini | 11 + plugins/image-source/data/locale/ro-RO.ini | 1 + plugins/image-source/data/locale/ru-RU.ini | 11 + plugins/image-source/data/locale/sk-SK.ini | 1 + plugins/image-source/data/locale/sl-SI.ini | 1 + plugins/image-source/data/locale/sr-CS.ini | 11 + plugins/image-source/data/locale/sr-SP.ini | 11 + plugins/image-source/data/locale/sv-SE.ini | 11 + plugins/image-source/data/locale/th-TH.ini | 1 + plugins/image-source/data/locale/tr-TR.ini | 1 + plugins/image-source/data/locale/zh-CN.ini | 11 + plugins/image-source/data/locale/zh-TW.ini | 11 + plugins/image-source/image-source.c | 31 +- plugins/image-source/obs-slideshow.c | 528 +++++++++++++ plugins/linux-alsa/data/locale/cs-CZ.ini | 2 +- plugins/linux-alsa/data/locale/he-IL.ini | 3 + plugins/linux-alsa/data/locale/it-IT.ini | 3 + plugins/linux-alsa/data/locale/nb-NO.ini | 3 + plugins/linux-alsa/data/locale/pt-PT.ini | 3 + plugins/linux-capture/data/locale/ar-SA.ini | 3 +- plugins/linux-capture/data/locale/fi-FI.ini | 2 +- plugins/linux-capture/data/locale/he-IL.ini | 1 + plugins/linux-capture/data/locale/it-IT.ini | 1 + plugins/linux-capture/data/locale/nb-NO.ini | 3 +- plugins/linux-capture/data/locale/pt-PT.ini | 1 + plugins/linux-capture/data/locale/zh-TW.ini | 1 + plugins/linux-capture/xcompcap-helper.cpp | 43 +- plugins/linux-capture/xcompcap-helper.hpp | 29 +- plugins/linux-capture/xcompcap-main.cpp | 72 +- plugins/linux-capture/xcomposite-main.cpp | 3 +- plugins/linux-jack/data/locale/nb-NO.ini | 2 +- .../linux-pulseaudio/data/locale/cs-CZ.ini | 4 +- .../linux-pulseaudio/data/locale/fi-FI.ini | 4 +- plugins/linux-pulseaudio/pulse-wrapper.c | 12 + plugins/linux-v4l2/data/locale/ar-SA.ini | 3 + plugins/linux-v4l2/data/locale/zh-TW.ini | 1 + plugins/mac-avcapture/data/locale/cs-CZ.ini | 2 +- plugins/mac-avcapture/data/locale/it-IT.ini | 8 + plugins/mac-avcapture/data/locale/nb-NO.ini | 8 + plugins/mac-avcapture/data/locale/pt-PT.ini | 7 + plugins/mac-avcapture/data/locale/zh-TW.ini | 10 + plugins/mac-capture/data/locale/fi-FI.ini | 8 +- plugins/mac-capture/data/locale/nl-NL.ini | 6 +- plugins/mac-capture/data/locale/zh-TW.ini | 8 +- plugins/mac-syphon/data/locale/zh-TW.ini | 13 + plugins/mac-vth264/data/locale/fi-FI.ini | 12 +- plugins/mac-vth264/data/locale/pt-PT.ini | 14 + plugins/mac-vth264/data/locale/zh-TW.ini | 14 + plugins/obs-ffmpeg/data/locale/fi-FI.ini | 8 +- plugins/obs-ffmpeg/data/locale/he-IL.ini | 17 + plugins/obs-ffmpeg/data/locale/hr-HR.ini | 2 + plugins/obs-ffmpeg/data/locale/it-IT.ini | 21 + plugins/obs-ffmpeg/data/locale/nb-NO.ini | 26 +- plugins/obs-ffmpeg/data/locale/pl-PL.ini | 2 + plugins/obs-ffmpeg/data/locale/pt-BR.ini | 12 + plugins/obs-ffmpeg/data/locale/pt-PT.ini | 21 + plugins/obs-ffmpeg/data/locale/ru-RU.ini | 2 + plugins/obs-ffmpeg/data/locale/sr-CS.ini | 2 + plugins/obs-ffmpeg/data/locale/sr-SP.ini | 2 + plugins/obs-ffmpeg/data/locale/sv-SE.ini | 2 + plugins/obs-ffmpeg/data/locale/zh-TW.ini | 35 +- plugins/obs-ffmpeg/obs-ffmpeg-mux.c | 58 +- plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c | 5 +- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 72 +- plugins/obs-filters/CMakeLists.txt | 26 +- plugins/obs-filters/async-delay-filter.c | 2 +- plugins/obs-filters/crop-filter.c | 45 +- plugins/obs-filters/data/crop_filter.effect | 5 +- plugins/obs-filters/data/locale/ar-SA.ini | 2 +- plugins/obs-filters/data/locale/ca-ES.ini | 10 +- plugins/obs-filters/data/locale/cs-CZ.ini | 12 +- plugins/obs-filters/data/locale/da-DK.ini | 1 - plugins/obs-filters/data/locale/de-DE.ini | 10 +- plugins/obs-filters/data/locale/el-GR.ini | 1 - plugins/obs-filters/data/locale/en-US.ini | 12 +- plugins/obs-filters/data/locale/es-ES.ini | 10 +- plugins/obs-filters/data/locale/eu-ES.ini | 10 +- plugins/obs-filters/data/locale/fi-FI.ini | 15 +- plugins/obs-filters/data/locale/fr-FR.ini | 14 +- plugins/obs-filters/data/locale/gl-ES.ini | 1 - plugins/obs-filters/data/locale/he-IL.ini | 10 +- plugins/obs-filters/data/locale/hr-HR.ini | 1 - plugins/obs-filters/data/locale/hu-HU.ini | 10 +- plugins/obs-filters/data/locale/it-IT.ini | 11 +- plugins/obs-filters/data/locale/ja-JP.ini | 10 +- plugins/obs-filters/data/locale/ko-KR.ini | 10 +- plugins/obs-filters/data/locale/nb-NO.ini | 3 +- plugins/obs-filters/data/locale/nl-NL.ini | 10 +- plugins/obs-filters/data/locale/pl-PL.ini | 10 +- plugins/obs-filters/data/locale/pt-BR.ini | 1 - plugins/obs-filters/data/locale/pt-PT.ini | 2 +- plugins/obs-filters/data/locale/ro-RO.ini | 1 - plugins/obs-filters/data/locale/ru-RU.ini | 10 +- plugins/obs-filters/data/locale/sr-CS.ini | 1 - plugins/obs-filters/data/locale/sr-SP.ini | 1 - plugins/obs-filters/data/locale/sv-SE.ini | 8 +- plugins/obs-filters/data/locale/tr-TR.ini | 1 - plugins/obs-filters/data/locale/zh-CN.ini | 10 +- plugins/obs-filters/data/locale/zh-TW.ini | 62 ++ plugins/obs-filters/noise-suppress-filter.c | 297 ++++++++ plugins/obs-filters/obs-filters-config.h.in | 11 + plugins/obs-filters/obs-filters.c | 9 + plugins/obs-filters/scale-filter.c | 342 +++++++++ plugins/obs-filters/scroll-filter.c | 14 + plugins/obs-outputs/CMakeLists.txt | 4 +- plugins/obs-outputs/data/locale/en-US.ini | 1 + plugins/obs-outputs/data/locale/fi-FI.ini | 2 +- plugins/obs-outputs/data/locale/zh-TW.ini | 2 +- plugins/obs-outputs/flv-output.c | 8 +- plugins/obs-outputs/net-if.c | 270 +++++++ plugins/obs-outputs/net-if.h | 76 ++ plugins/obs-outputs/rtmp-stream.c | 93 ++- plugins/obs-transitions/CMakeLists.txt | 1 + plugins/obs-transitions/data/locale/en-US.ini | 38 + plugins/obs-transitions/data/locale/it-IT.ini | 14 + plugins/obs-transitions/data/locale/nb-NO.ini | 14 + plugins/obs-transitions/data/locale/nl-NL.ini | 2 +- plugins/obs-transitions/data/locale/pt-BR.ini | 1 + plugins/obs-transitions/data/locale/pt-PT.ini | 14 + plugins/obs-transitions/data/locale/zh-TW.ini | 11 +- .../data/luma_wipe_transition.effect | 61 ++ .../data/luma_wipes/barndoor-botleft.png | Bin 0 -> 62429 bytes .../data/luma_wipes/barndoor-h.png | Bin 0 -> 3145 bytes .../data/luma_wipes/barndoor-topleft.png | Bin 0 -> 63617 bytes .../data/luma_wipes/barndoor-v.png | Bin 0 -> 2160 bytes .../data/luma_wipes/blinds-h.png | Bin 0 -> 2130 bytes .../data/luma_wipes/box-botleft.png | Bin 0 -> 5881 bytes .../data/luma_wipes/box-botright.png | Bin 0 -> 6682 bytes .../data/luma_wipes/box-topleft.png | Bin 0 -> 5485 bytes .../data/luma_wipes/box-topright.png | Bin 0 -> 5412 bytes .../obs-transitions/data/luma_wipes/burst.png | Bin 0 -> 109421 bytes .../data/luma_wipes/checkerboard-small.png | Bin 0 -> 15211 bytes .../data/luma_wipes/circles.png | Bin 0 -> 109989 bytes .../obs-transitions/data/luma_wipes/clock.png | Bin 0 -> 84455 bytes .../obs-transitions/data/luma_wipes/cloud.png | Bin 0 -> 294101 bytes .../data/luma_wipes/curtain.png | Bin 0 -> 85373 bytes .../obs-transitions/data/luma_wipes/fan.png | Bin 0 -> 45732 bytes .../data/luma_wipes/fractal.png | Bin 0 -> 131975 bytes .../obs-transitions/data/luma_wipes/iris.png | Bin 0 -> 40275 bytes .../data/luma_wipes/linear-h.png | Bin 0 -> 3703 bytes .../data/luma_wipes/linear-topleft.png | Bin 0 -> 60404 bytes .../data/luma_wipes/linear-topright.png | Bin 0 -> 61290 bytes .../data/luma_wipes/linear-v.png | Bin 0 -> 2008 bytes .../data/luma_wipes/parallel-zigzag-h.png | Bin 0 -> 22031 bytes .../data/luma_wipes/parallel-zigzag-v.png | Bin 0 -> 17589 bytes .../data/luma_wipes/sinus9.png | Bin 0 -> 55830 bytes .../data/luma_wipes/spiral.png | Bin 0 -> 84643 bytes .../data/luma_wipes/square.png | Bin 0 -> 4155 bytes .../data/luma_wipes/squares.png | Bin 0 -> 4355 bytes .../data/luma_wipes/stripes.png | Bin 0 -> 8019 bytes .../data/luma_wipes/strips-h.png | Bin 0 -> 22334 bytes .../data/luma_wipes/strips-v.png | Bin 0 -> 18285 bytes .../data/luma_wipes/watercolor.png | Bin 0 -> 78842 bytes .../data/luma_wipes/wipes.json | 36 + .../data/luma_wipes/zigzag-h.png | Bin 0 -> 22290 bytes .../data/luma_wipes/zigzag-v.png | Bin 0 -> 18138 bytes plugins/obs-transitions/obs-transitions.c | 2 + .../obs-transitions/transition-luma-wipe.c | 213 ++++++ plugins/obs-x264/data/locale/et-EE.ini | 4 + plugins/obs-x264/data/locale/fi-FI.ini | 8 +- plugins/obs-x264/data/locale/he-IL.ini | 1 + plugins/obs-x264/data/locale/hr-HR.ini | 1 + plugins/obs-x264/data/locale/it-IT.ini | 1 + plugins/obs-x264/data/locale/nb-NO.ini | 1 + plugins/obs-x264/data/locale/pl-PL.ini | 1 + plugins/obs-x264/data/locale/pt-BR.ini | 1 + plugins/obs-x264/data/locale/pt-PT.ini | 1 + plugins/obs-x264/data/locale/sr-CS.ini | 1 + plugins/obs-x264/data/locale/sr-SP.ini | 1 + plugins/obs-x264/data/locale/sv-SE.ini | 1 + plugins/obs-x264/data/locale/zh-TW.ini | 15 +- plugins/obs-x264/obs-x264.c | 17 +- plugins/rtmp-services/data/locale/zh-TW.ini | 1 + plugins/rtmp-services/data/package.json | 4 +- plugins/rtmp-services/data/services.json | 178 ++++- plugins/text-freetype2/data/locale/zh-TW.ini | 3 +- plugins/text-freetype2/text-freetype2.c | 2 - plugins/vlc-video/CMakeLists.txt | 41 + plugins/vlc-video/data/locale/ca-ES.ini | 8 + plugins/vlc-video/data/locale/cs-CZ.ini | 8 + plugins/vlc-video/data/locale/de-DE.ini | 8 + plugins/vlc-video/data/locale/en-US.ini | 7 + plugins/vlc-video/data/locale/es-ES.ini | 8 + plugins/vlc-video/data/locale/eu-ES.ini | 8 + plugins/vlc-video/data/locale/fi-FI.ini | 8 + plugins/vlc-video/data/locale/fr-FR.ini | 8 + plugins/vlc-video/data/locale/he-IL.ini | 8 + plugins/vlc-video/data/locale/hr-HR.ini | 8 + plugins/vlc-video/data/locale/hu-HU.ini | 8 + plugins/vlc-video/data/locale/it-IT.ini | 8 + plugins/vlc-video/data/locale/ja-JP.ini | 8 + plugins/vlc-video/data/locale/ko-KR.ini | 8 + plugins/vlc-video/data/locale/nb-NO.ini | 8 + plugins/vlc-video/data/locale/nl-NL.ini | 8 + plugins/vlc-video/data/locale/pl-PL.ini | 8 + plugins/vlc-video/data/locale/pt-BR.ini | 8 + plugins/vlc-video/data/locale/pt-PT.ini | 8 + plugins/vlc-video/data/locale/ru-RU.ini | 8 + plugins/vlc-video/data/locale/sr-CS.ini | 8 + plugins/vlc-video/data/locale/sr-SP.ini | 8 + plugins/vlc-video/data/locale/sv-SE.ini | 8 + plugins/vlc-video/data/locale/zh-CN.ini | 8 + plugins/vlc-video/data/locale/zh-TW.ini | 8 + plugins/vlc-video/vlc-video-plugin.c | 201 +++++ plugins/vlc-video/vlc-video-plugin.h | 229 ++++++ plugins/vlc-video/vlc-video-source.c | 721 ++++++++++++++++++ test/test-input/test-filter.c | 3 +- test/test-input/test-random.c | 3 +- test/test-input/test-sinewave.c | 3 +- 359 files changed, 8423 insertions(+), 1050 deletions(-) create mode 100644 cmake/Modules/FindLibVLC.cmake create mode 100644 cmake/Modules/FindLibspeexdsp.cmake create mode 100644 deps/w32-pthreads/w32-pthreadsConfig.cmake.in create mode 100644 deps/w32-pthreads/w32-pthreadsConfigVersion.cmake.in create mode 100644 obs/data/locale/et-EE.ini create mode 100644 plugins/image-source/obs-slideshow.c create mode 100644 plugins/linux-alsa/data/locale/he-IL.ini create mode 100644 plugins/linux-alsa/data/locale/it-IT.ini create mode 100644 plugins/linux-alsa/data/locale/nb-NO.ini create mode 100644 plugins/linux-alsa/data/locale/pt-PT.ini create mode 100644 plugins/mac-syphon/data/locale/zh-TW.ini create mode 100644 plugins/mac-vth264/data/locale/pt-PT.ini create mode 100644 plugins/mac-vth264/data/locale/zh-TW.ini create mode 100644 plugins/obs-filters/data/locale/zh-TW.ini create mode 100644 plugins/obs-filters/noise-suppress-filter.c create mode 100644 plugins/obs-filters/obs-filters-config.h.in create mode 100644 plugins/obs-filters/scale-filter.c create mode 100644 plugins/obs-outputs/net-if.c create mode 100644 plugins/obs-outputs/net-if.h create mode 100644 plugins/obs-transitions/data/locale/it-IT.ini create mode 100644 plugins/obs-transitions/data/locale/nb-NO.ini create mode 100644 plugins/obs-transitions/data/locale/pt-PT.ini create mode 100644 plugins/obs-transitions/data/luma_wipe_transition.effect create mode 100644 plugins/obs-transitions/data/luma_wipes/barndoor-botleft.png create mode 100644 plugins/obs-transitions/data/luma_wipes/barndoor-h.png create mode 100644 plugins/obs-transitions/data/luma_wipes/barndoor-topleft.png create mode 100644 plugins/obs-transitions/data/luma_wipes/barndoor-v.png create mode 100644 plugins/obs-transitions/data/luma_wipes/blinds-h.png create mode 100644 plugins/obs-transitions/data/luma_wipes/box-botleft.png create mode 100644 plugins/obs-transitions/data/luma_wipes/box-botright.png create mode 100644 plugins/obs-transitions/data/luma_wipes/box-topleft.png create mode 100644 plugins/obs-transitions/data/luma_wipes/box-topright.png create mode 100644 plugins/obs-transitions/data/luma_wipes/burst.png create mode 100644 plugins/obs-transitions/data/luma_wipes/checkerboard-small.png create mode 100644 plugins/obs-transitions/data/luma_wipes/circles.png create mode 100644 plugins/obs-transitions/data/luma_wipes/clock.png create mode 100644 plugins/obs-transitions/data/luma_wipes/cloud.png create mode 100644 plugins/obs-transitions/data/luma_wipes/curtain.png create mode 100644 plugins/obs-transitions/data/luma_wipes/fan.png create mode 100644 plugins/obs-transitions/data/luma_wipes/fractal.png create mode 100644 plugins/obs-transitions/data/luma_wipes/iris.png create mode 100644 plugins/obs-transitions/data/luma_wipes/linear-h.png create mode 100644 plugins/obs-transitions/data/luma_wipes/linear-topleft.png create mode 100644 plugins/obs-transitions/data/luma_wipes/linear-topright.png create mode 100644 plugins/obs-transitions/data/luma_wipes/linear-v.png create mode 100644 plugins/obs-transitions/data/luma_wipes/parallel-zigzag-h.png create mode 100644 plugins/obs-transitions/data/luma_wipes/parallel-zigzag-v.png create mode 100644 plugins/obs-transitions/data/luma_wipes/sinus9.png create mode 100644 plugins/obs-transitions/data/luma_wipes/spiral.png create mode 100644 plugins/obs-transitions/data/luma_wipes/square.png create mode 100644 plugins/obs-transitions/data/luma_wipes/squares.png create mode 100644 plugins/obs-transitions/data/luma_wipes/stripes.png create mode 100644 plugins/obs-transitions/data/luma_wipes/strips-h.png create mode 100644 plugins/obs-transitions/data/luma_wipes/strips-v.png create mode 100644 plugins/obs-transitions/data/luma_wipes/watercolor.png create mode 100644 plugins/obs-transitions/data/luma_wipes/wipes.json create mode 100644 plugins/obs-transitions/data/luma_wipes/zigzag-h.png create mode 100644 plugins/obs-transitions/data/luma_wipes/zigzag-v.png create mode 100644 plugins/obs-transitions/transition-luma-wipe.c create mode 100644 plugins/obs-x264/data/locale/et-EE.ini create mode 100644 plugins/vlc-video/CMakeLists.txt create mode 100644 plugins/vlc-video/data/locale/ca-ES.ini create mode 100644 plugins/vlc-video/data/locale/cs-CZ.ini create mode 100644 plugins/vlc-video/data/locale/de-DE.ini create mode 100644 plugins/vlc-video/data/locale/en-US.ini create mode 100644 plugins/vlc-video/data/locale/es-ES.ini create mode 100644 plugins/vlc-video/data/locale/eu-ES.ini create mode 100644 plugins/vlc-video/data/locale/fi-FI.ini create mode 100644 plugins/vlc-video/data/locale/fr-FR.ini create mode 100644 plugins/vlc-video/data/locale/he-IL.ini create mode 100644 plugins/vlc-video/data/locale/hr-HR.ini create mode 100644 plugins/vlc-video/data/locale/hu-HU.ini create mode 100644 plugins/vlc-video/data/locale/it-IT.ini create mode 100644 plugins/vlc-video/data/locale/ja-JP.ini create mode 100644 plugins/vlc-video/data/locale/ko-KR.ini create mode 100644 plugins/vlc-video/data/locale/nb-NO.ini create mode 100644 plugins/vlc-video/data/locale/nl-NL.ini create mode 100644 plugins/vlc-video/data/locale/pl-PL.ini create mode 100644 plugins/vlc-video/data/locale/pt-BR.ini create mode 100644 plugins/vlc-video/data/locale/pt-PT.ini create mode 100644 plugins/vlc-video/data/locale/ru-RU.ini create mode 100644 plugins/vlc-video/data/locale/sr-CS.ini create mode 100644 plugins/vlc-video/data/locale/sr-SP.ini create mode 100644 plugins/vlc-video/data/locale/sv-SE.ini create mode 100644 plugins/vlc-video/data/locale/zh-CN.ini create mode 100644 plugins/vlc-video/data/locale/zh-TW.ini create mode 100644 plugins/vlc-video/vlc-video-plugin.c create mode 100644 plugins/vlc-video/vlc-video-plugin.h create mode 100644 plugins/vlc-video/vlc-video-source.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 8df8f9d..1d4f8db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") include(ObsHelpers) include(ObsCpack) +include(GNUInstallDirs) if(MSVC AND NOT EXISTS "${CMAKE_BINARY_DIR}/ALL_BUILD.vcxproj.user") file(GENERATE diff --git a/README b/README index 50545b6..c11d512 100644 --- a/README +++ b/README @@ -98,7 +98,7 @@ What was wrong with the original OBS? - The devices and audio code was poor, I had no idea what I was getting into when I started writing them in. I did not realize beforehand all the device-specific quirks that each device/system could have. Some devices - had bad timing and quirks that I never aniticipated while writing them. + had bad timing and quirks that I never anticipated while writing them. I struggled with devices, and my original design for the audio subsystem for example morphed over and over into an abomination that, though works, is basically this giant duct-taped zombie monster. diff --git a/cmake/Modules/FindLibVLC.cmake b/cmake/Modules/FindLibVLC.cmake new file mode 100644 index 0000000..3f68885 --- /dev/null +++ b/cmake/Modules/FindLibVLC.cmake @@ -0,0 +1,72 @@ +# Once done these will be defined: +# +# LIBVLC_FOUND +# LIBVLC_INCLUDE_DIRS +# LIBVLC_LIBRARIES +# +# For use in OBS: +# +# VLC_INCLUDE_DIR + +find_package(PkgConfig QUIET) +if (PKG_CONFIG_FOUND) + pkg_check_modules(_VLC QUIET VLC) +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(_lib_suffix 64) +else() + set(_lib_suffix 32) +endif() + +find_path(VLC_INCLUDE_DIR + NAMES libvlc.h + HINTS + ENV VLCPath${_lib_suffix} + ENV VLCPath + ENV DepsPath${_lib_suffix} + ENV DepsPath + ${VLCPath${_lib_suffix}} + ${VLCPath} + ${DepsPath${_lib_suffix}} + ${DepsPath} + ${_VLC_INCLUDE_DIRS} + PATHS + /usr/include /usr/local/include /opt/local/include /sw/include + PATH_SUFFIXES + vlc include/vlc include) + +find_library(VLC_LIB + NAMES ${_VLC_LIBRARIES} VLC libVLC + HINTS + ENV VLCPath${_lib_suffix} + ENV VLCPath + ENV DepsPath${_lib_suffix} + ENV DepsPath + ${VLCPath${_lib_suffix}} + ${VLCPath} + ${DepsPath${_lib_suffix}} + ${DepsPath} + ${_VLC_LIBRARY_DIRS} + PATHS + /usr/lib /usr/local/lib /opt/local/lib /sw/lib + PATH_SUFFIXES + lib${_lib_suffix} lib + libs${_lib_suffix} libs + bin${_lib_suffix} bin + ../lib${_lib_suffix} ../lib + ../libs${_lib_suffix} ../libs + ../bin${_lib_suffix} ../bin) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(LibVLC_INCLUDES DEFAULT_MSG VLC_INCLUDE_DIR) +find_package_handle_standard_args(LibVLC DEFAULT_MSG VLC_LIB VLC_INCLUDE_DIR) +mark_as_advanced(VLC_INCLUDE_DIR VLC_LIB) + +if(LIBVLC_INCLUDES_FOUND) + set(LIBVLC_INCLUDE_DIRS ${VLC_INCLUDE_DIR}) +endif() + +if(LIBVLC_FOUND) + set(LIBVLC_LIBRARIES ${VLC_LIB}) +endif() diff --git a/cmake/Modules/FindLibspeexdsp.cmake b/cmake/Modules/FindLibspeexdsp.cmake new file mode 100644 index 0000000..be1d972 --- /dev/null +++ b/cmake/Modules/FindLibspeexdsp.cmake @@ -0,0 +1,68 @@ +# Once done these will be defined: +# +# LIBSPEEXDSP_FOUND +# LIBSPEEXDSP_INCLUDE_DIRS +# LIBSPEEXDSP_LIBRARIES +# +# For use in OBS: +# +# SPEEXDSP_INCLUDE_DIR + +find_package(PkgConfig QUIET) +if (PKG_CONFIG_FOUND) + pkg_check_modules(_SPEEXDSP QUIET speexdsp libspeexdsp) +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(_lib_suffix 64) +else() + set(_lib_suffix 32) +endif() + +find_path(SPEEXDSP_INCLUDE_DIR + NAMES speex/speex_preprocess.h + HINTS + ENV speexPath${_lib_suffix} + ENV speexPath + ENV DepsPath${_lib_suffix} + ENV DepsPath + ${speexPath${_lib_suffix}} + ${speexPath} + ${DepsPath${_lib_suffix}} + ${DepsPath} + ${_SPEEXDSP_INCLUDE_DIRS} + PATHS + /usr/include /usr/local/include /opt/local/include /sw/include + PATH_SUFFIXES + include) + +find_library(SPEEXDSP_LIB + NAMES ${_SPEEXDSP_LIBRARIES} speexdsp libspeexdsp + HINTS + ENV speexPath${_lib_suffix} + ENV speexPath + ENV DepsPath${_lib_suffix} + ENV DepsPath + ${speexPath${_lib_suffix}} + ${speexPath} + ${DepsPath${_lib_suffix}} + ${DepsPath} + ${_SPEEXDSP_LIBRARY_DIRS} + PATHS + /usr/lib /usr/local/lib /opt/local/lib /sw/lib + PATH_SUFFIXES + lib${_lib_suffix} lib + libs${_lib_suffix} libs + bin${_lib_suffix} bin + ../lib${_lib_suffix} ../lib + ../libs${_lib_suffix} ../libs + ../bin${_lib_suffix} ../bin) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Libspeexdsp DEFAULT_MSG SPEEXDSP_LIB SPEEXDSP_INCLUDE_DIR) +mark_as_advanced(SPEEXDSP_INCLUDE_DIR SPEEXDSP_LIB) + +if(LIBSPEEXDSP_FOUND) + set(LIBSPEEXDSP_INCLUDE_DIRS ${SPEEXDSP_INCLUDE_DIR}) + set(LIBSPEEXDSP_LIBRARIES ${SPEEXDSP_LIB}) +endif() diff --git a/cmake/external/ObsPluginHelpers.cmake b/cmake/external/ObsPluginHelpers.cmake index abc3185..b0651dc 100644 --- a/cmake/external/ObsPluginHelpers.cmake +++ b/cmake/external/ObsPluginHelpers.cmake @@ -106,13 +106,13 @@ endfunction() # 'target' is the destination target project being installed to # 'additional_target' specifies the additional binary function(install_external_plugin_bin_to_data target additional_target) - install(TARGETS ${target} + install(TARGETS ${additional_target} LIBRARY DESTINATION "data" RUNTIME DESTINATION "data") - add_custom_command(TARGET ${target} POST_BUILD + add_custom_command(TARGET ${additional_target} POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy - "$" - "${EXTERNAL_PLUGIN_OUTPUT_DIR}/$/${plugin_target}/data/$" + "$" + "${EXTERNAL_PLUGIN_OUTPUT_DIR}/$/${target}/data/$" VERBATIM) endfunction() @@ -128,12 +128,36 @@ function(install_external_plugin_bin_to_arch_data target additional_target) set(_bit_suffix "/32bit") endif() - install(TARGETS ${target} + install(TARGETS ${additional_target} LIBRARY DESTINATION "data${_bit_suffix}" RUNTIME DESTINATION "data${_bit_suffix}") - add_custom_command(TARGET ${target} POST_BUILD + add_custom_command(TARGET ${additional_target} POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy - "$" - "${EXTERNAL_PLUGIN_OUTPUT_DIR}/$/${plugin_target}/data${_bit_suffix}/$" + "$" + "${EXTERNAL_PLUGIN_OUTPUT_DIR}/$/${target}/data${_bit_suffix}/$" + VERBATIM) +endfunction() + +# Installs an additional file in an architecture-specific data directory on windows/linux (data/32bit or data/64bit). Does not apply for mac. +# 'target' is the destination target project being installed to +# 'additional_target' specifies the additional binary +function(install_external_plugin_data_file_to_arch_data target additional_target file_target) + if(APPLE) + set(_bit_suffix "") + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(_bit_suffix "/64bit") + else() + set(_bit_suffix "/32bit") + endif() + + get_filename_component(file_target_name ${file_target} NAME) + + install(TARGETS ${additional_target} + LIBRARY DESTINATION "data${_bit_suffix}" + RUNTIME DESTINATION "data${_bit_suffix}") + add_custom_command(TARGET ${additional_target} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + "${file_target}" + "${EXTERNAL_PLUGIN_OUTPUT_DIR}/$/${target}/data${_bit_suffix}/${file_target_name}" VERBATIM) endfunction() diff --git a/deps/w32-pthreads/CMakeLists.txt b/deps/w32-pthreads/CMakeLists.txt index 497d5ab..992ec69 100644 --- a/deps/w32-pthreads/CMakeLists.txt +++ b/deps/w32-pthreads/CMakeLists.txt @@ -19,7 +19,8 @@ add_library(w32-pthreads SHARED target_compile_definitions(w32-pthreads PRIVATE __CLEANUP_C PTW32_BUILD) target_include_directories(w32-pthreads - PUBLIC .) + PUBLIC + "$") target_link_libraries(w32-pthreads) -install_obs_core(w32-pthreads) +install_obs_core(w32-pthreads EXPORT w32-pthreads) diff --git a/deps/w32-pthreads/w32-pthreadsConfig.cmake.in b/deps/w32-pthreads/w32-pthreadsConfig.cmake.in new file mode 100644 index 0000000..2fe4aec --- /dev/null +++ b/deps/w32-pthreads/w32-pthreadsConfig.cmake.in @@ -0,0 +1,15 @@ +# - Config file for the w32-pthreads package +# It defines the following variables +# THREADS_INCLUDE_DIRS +# THREADS_LIBRARIES + +set(W32_PTHREADS_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") + +# Cleanup possible relative paths +get_filename_component(W32_PTHREADS_INCLUDE_DIRS "${THREADS_INCLUDE_DIRS}" ABSOLUTE) + +if(NOT TARGET w32-pthreads) + include("${CMAKE_CURRENT_LIST_DIR}/w32-pthreadsTarget.cmake") +endif() + +set(W32_PTHREADS_LIBRARIES w32-pthreads) diff --git a/deps/w32-pthreads/w32-pthreadsConfigVersion.cmake.in b/deps/w32-pthreads/w32-pthreadsConfigVersion.cmake.in new file mode 100644 index 0000000..e69de29 diff --git a/libobs-d3d11/d3d11-shader.cpp b/libobs-d3d11/d3d11-shader.cpp index f4e27a7..95cfbb0 100644 --- a/libobs-d3d11/d3d11-shader.cpp +++ b/libobs-d3d11/d3d11-shader.cpp @@ -222,10 +222,18 @@ inline void gs_shader::UpdateParam(vector &constData, upload = true; param.changed = false; } + } else if (param.curValue.size() == sizeof(gs_texture_t*)) { gs_texture_t *tex; memcpy(&tex, param.curValue.data(), sizeof(gs_texture_t*)); device_load_texture(device, tex, param.textureID); + + if (param.nextSampler) { + ID3D11SamplerState *state = param.nextSampler->state; + device->context->PSSetSamplers(param.textureID, 1, + &state); + param.nextSampler = nullptr; + } } } @@ -384,3 +392,8 @@ void gs_shader_set_default(gs_sparam_t *param) shader_setval_inline(param, param->defaultValue.data(), param->defaultValue.size()); } + +void gs_shader_set_next_sampler(gs_sparam_t *param, gs_samplerstate_t *sampler) +{ + param->nextSampler = sampler; +} diff --git a/libobs-d3d11/d3d11-subsystem.hpp b/libobs-d3d11/d3d11-subsystem.hpp index 8d70391..d413508 100644 --- a/libobs-d3d11/d3d11-subsystem.hpp +++ b/libobs-d3d11/d3d11-subsystem.hpp @@ -356,6 +356,7 @@ struct gs_shader_param { gs_shader_param_type type; uint32_t textureID; + struct gs_sampler_state *nextSampler = nullptr; int arrayCount; diff --git a/libobs-opengl/gl-shader.c b/libobs-opengl/gl-shader.c index 650b29e..1ffcce4 100644 --- a/libobs-opengl/gl-shader.c +++ b/libobs-opengl/gl-shader.c @@ -487,6 +487,12 @@ static void program_set_param_data(struct gs_program *program, } } else if (pp->param->type == GS_SHADER_PARAM_TEXTURE) { + if (pp->param->next_sampler) { + program->device->cur_samplers[pp->param->sampler_id] = + pp->param->next_sampler; + pp->param->next_sampler = NULL; + } + glUniform1i(pp->obj, pp->param->texture_id); device_load_texture(program->device, pp->param->texture, pp->param->texture_id); @@ -720,3 +726,8 @@ void gs_shader_set_default(gs_sparam_t *param) { gs_shader_set_val(param, param->def_value.array, param->def_value.num); } + +void gs_shader_set_next_sampler(gs_sparam_t *param, gs_samplerstate_t *sampler) +{ + param->next_sampler = sampler; +} diff --git a/libobs-opengl/gl-subsystem.h b/libobs-opengl/gl-subsystem.h index 8f360b9..4467876 100644 --- a/libobs-opengl/gl-subsystem.h +++ b/libobs-opengl/gl-subsystem.h @@ -300,6 +300,7 @@ struct gs_shader_param { char *name; gs_shader_t *shader; + gs_samplerstate_t *next_sampler; GLint texture_id; size_t sampler_id; int array_count; diff --git a/libobs/graphics/effect.c b/libobs/graphics/effect.c index 26623f4..737391d 100644 --- a/libobs/graphics/effect.c +++ b/libobs/graphics/effect.c @@ -125,6 +125,8 @@ void gs_technique_end(gs_technique_t *tech) da_free(param->cur_val); param->changed = false; + if (param->next_sampler) + param->next_sampler = NULL; } } @@ -147,6 +149,9 @@ static void upload_shader_params(struct darray *pass_params, bool changed_only) struct gs_effect_param *eparam = param->eparam; gs_sparam_t *sparam = param->sparam; + if (eparam->next_sampler) + gs_shader_set_next_sampler(sparam, eparam->next_sampler); + if (changed_only && !eparam->changed) continue; @@ -378,3 +383,14 @@ void gs_effect_set_default(gs_eparam_t *param) effect_setval_inline(param, param->default_val.array, param->default_val.num); } + +void gs_effect_set_next_sampler(gs_eparam_t *param, gs_samplerstate_t *sampler) +{ + if (!param) { + blog(LOG_ERROR, "gs_effect_set_next_sampler: invalid param"); + return; + } + + if (param->type == GS_SHADER_PARAM_TEXTURE) + param->next_sampler = sampler; +} diff --git a/libobs/graphics/effect.h b/libobs/graphics/effect.h index 8eb5464..d76fb85 100644 --- a/libobs/graphics/effect.h +++ b/libobs/graphics/effect.h @@ -57,6 +57,7 @@ struct gs_effect_param { DARRAY(uint8_t) default_val; gs_effect_t *effect; + gs_samplerstate_t *next_sampler; /*char *full_name; float scroller_min, scroller_max, scroller_inc, scroller_mul;*/ diff --git a/libobs/graphics/graphics-imports.c b/libobs/graphics/graphics-imports.c index dbe1eb6..6d00b9a 100644 --- a/libobs/graphics/graphics-imports.c +++ b/libobs/graphics/graphics-imports.c @@ -167,6 +167,7 @@ bool load_graphics_imports(struct gs_exports *exports, void *module, GRAPHICS_IMPORT(gs_shader_set_texture); GRAPHICS_IMPORT(gs_shader_set_val); GRAPHICS_IMPORT(gs_shader_set_default); + GRAPHICS_IMPORT(gs_shader_set_next_sampler); /* OSX/Cocoa specific functions */ #ifdef __APPLE__ diff --git a/libobs/graphics/graphics-internal.h b/libobs/graphics/graphics-internal.h index 6c2333d..f009cc7 100644 --- a/libobs/graphics/graphics-internal.h +++ b/libobs/graphics/graphics-internal.h @@ -225,6 +225,8 @@ struct gs_exports { void (*gs_shader_set_val)(gs_sparam_t *param, const void *val, size_t size); void (*gs_shader_set_default)(gs_sparam_t *param); + void (*gs_shader_set_next_sampler)(gs_sparam_t *param, + gs_samplerstate_t *sampler); #ifdef __APPLE__ /* OSX/Cocoa specific functions */ diff --git a/libobs/graphics/graphics.c b/libobs/graphics/graphics.c index f273bdb..a1f466d 100644 --- a/libobs/graphics/graphics.c +++ b/libobs/graphics/graphics.c @@ -2089,6 +2089,16 @@ void gs_shader_set_default(gs_sparam_t *param) graphics->exports.gs_shader_set_default(param); } +void gs_shader_set_next_sampler(gs_sparam_t *param, gs_samplerstate_t *sampler) +{ + graphics_t *graphics = thread_graphics; + + if (!gs_valid_p("gs_shader_set_next_sampler", param)) + return; + + graphics->exports.gs_shader_set_next_sampler(param, sampler); +} + void gs_texture_destroy(gs_texture_t *tex) { graphics_t *graphics = thread_graphics; diff --git a/libobs/graphics/graphics.h b/libobs/graphics/graphics.h index 584d29e..6c7fc66 100644 --- a/libobs/graphics/graphics.h +++ b/libobs/graphics/graphics.h @@ -325,6 +325,8 @@ EXPORT void gs_shader_set_vec4(gs_sparam_t *param, const struct vec4 *val); EXPORT void gs_shader_set_texture(gs_sparam_t *param, gs_texture_t *val); EXPORT void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size); EXPORT void gs_shader_set_default(gs_sparam_t *param); +EXPORT void gs_shader_set_next_sampler(gs_sparam_t *param, + gs_samplerstate_t *sampler); /* --------------------------------------------------- * effect functions @@ -393,6 +395,8 @@ EXPORT void gs_effect_set_vec4(gs_eparam_t *param, const struct vec4 *val); EXPORT void gs_effect_set_texture(gs_eparam_t *param, gs_texture_t *val); EXPORT void gs_effect_set_val(gs_eparam_t *param, const void *val, size_t size); EXPORT void gs_effect_set_default(gs_eparam_t *param); +EXPORT void gs_effect_set_next_sampler(gs_eparam_t *param, + gs_samplerstate_t *sampler); /* --------------------------------------------------- * texture render helper functions diff --git a/libobs/graphics/image-file.c b/libobs/graphics/image-file.c index 4b05154..b68539d 100644 --- a/libobs/graphics/image-file.c +++ b/libobs/graphics/image-file.c @@ -318,9 +318,10 @@ void gs_image_file_update_texture(gs_image_file_t *image) if (!image->is_animated_gif || !image->loaded) return; - if (image->animation_frame_cache[image->cur_frame]) { - gs_texture_set_image(image->texture, - image->animation_frame_cache[image->cur_frame], - image->gif.width * 4, false); - } + if (!image->animation_frame_cache[image->cur_frame]) + decode_new_frame(image, image->cur_frame); + + gs_texture_set_image(image->texture, + image->animation_frame_cache[image->cur_frame], + image->gif.width * 4, false); } diff --git a/libobs/graphics/matrix4.c b/libobs/graphics/matrix4.c index 12d1ebd..a0a7a25 100644 --- a/libobs/graphics/matrix4.c +++ b/libobs/graphics/matrix4.c @@ -231,7 +231,7 @@ void matrix4_scale_i(struct matrix4 *dst, const struct vec3 *v, bool matrix4_inv(struct matrix4 *dst, const struct matrix4 *m) { - struct vec4 *dstv = (struct vec4 *)dst; + struct vec4 *dstv; float det; float m3x3[9]; int i, j, sign; @@ -261,25 +261,38 @@ bool matrix4_inv(struct matrix4 *dst, const struct matrix4 *m) void matrix4_transpose(struct matrix4 *dst, const struct matrix4 *m) { - struct matrix4 temp; + if (dst == m) { + struct matrix4 temp = *m; + matrix4_transpose(dst, &temp); + return; + } - /* TODO: Add SSE */ - temp.x.x = m->x.x; - temp.x.y = m->y.x; - temp.x.z = m->z.x; - temp.x.w = m->t.x; - temp.y.x = m->x.y; - temp.y.y = m->y.y; - temp.y.z = m->z.y; - temp.y.w = m->t.y; - temp.z.x = m->x.z; - temp.z.y = m->y.z; - temp.z.z = m->z.z; - temp.z.w = m->t.z; - temp.t.x = m->x.w; - temp.t.y = m->y.w; - temp.t.z = m->z.w; - temp.t.w = m->t.w; +#ifdef NO_INTRINSICS + dst->x.x = m->x.x; + dst->x.y = m->y.x; + dst->x.z = m->z.x; + dst->x.w = m->t.x; + dst->y.x = m->x.y; + dst->y.y = m->y.y; + dst->y.z = m->z.y; + dst->y.w = m->t.y; + dst->z.x = m->x.z; + dst->z.y = m->y.z; + dst->z.z = m->z.z; + dst->z.w = m->t.z; + dst->t.x = m->x.w; + dst->t.y = m->y.w; + dst->t.z = m->z.w; + dst->t.w = m->t.w; +#else + __m128 a0 = _mm_unpacklo_ps(m->x.m, m->z.m); + __m128 a1 = _mm_unpacklo_ps(m->y.m, m->t.m); + __m128 a2 = _mm_unpackhi_ps(m->x.m, m->z.m); + __m128 a3 = _mm_unpackhi_ps(m->y.m, m->t.m); - matrix4_copy(dst, &temp); + dst->x.m = _mm_unpacklo_ps(a0, a1); + dst->y.m = _mm_unpackhi_ps(a0, a1); + dst->z.m = _mm_unpacklo_ps(a2, a3); + dst->t.m = _mm_unpackhi_ps(a2, a3); +#endif } diff --git a/libobs/graphics/shader-parser.c b/libobs/graphics/shader-parser.c index 2d852bd..6771d4c 100644 --- a/libobs/graphics/shader-parser.c +++ b/libobs/graphics/shader-parser.c @@ -119,8 +119,7 @@ void shader_sampler_convert(struct shader_sampler *ss, else if (astrcmpi(state, "MaxAnisotropy") == 0) info->max_anisotropy = (int)strtol(value, NULL, 10); else if (astrcmpi(state, "BorderColor") == 0) - info->border_color = (*value == '#') ? - strtol(value + 1, NULL, 16) : 0; + info->border_color = strtol(value + 1, NULL, 16); } } @@ -138,7 +137,7 @@ static int sp_parse_sampler_state_item(struct shader_parser *sp, ret = cf_next_token_should_be(&sp->cfp, "=", ";", NULL); if (ret != PARSE_SUCCESS) goto fail; - ret = cf_next_name(&sp->cfp, &value, "value name", ";"); + ret = cf_next_token_copy(&sp->cfp, &value); if (ret != PARSE_SUCCESS) goto fail; ret = cf_next_token_should_be(&sp->cfp, ";", ";", NULL); diff --git a/libobs/obs-audio-controls.c b/libobs/obs-audio-controls.c index 6e3ee33..cae7c9e 100644 --- a/libobs/obs-audio-controls.c +++ b/libobs/obs-audio-controls.c @@ -395,10 +395,13 @@ static void volmeter_update_audio_settings(obs_volmeter_t *volmeter) { audio_t *audio = obs_get_audio(); const unsigned int sr = audio_output_get_sample_rate(audio); + uint32_t channels = (uint32_t)audio_output_get_channels(audio); - volmeter->channels = (uint32_t)audio_output_get_channels(audio); + pthread_mutex_lock(&volmeter->mutex); + volmeter->channels = channels; volmeter->update_frames = volmeter->update_ms * sr / 1000; volmeter->peakhold_frames = volmeter->peakhold_ms * sr / 1000; + pthread_mutex_unlock(&volmeter->mutex); } obs_fader_t *obs_fader_create(enum obs_fader_type type) @@ -544,22 +547,24 @@ float obs_fader_get_mul(obs_fader_t *fader) bool obs_fader_attach_source(obs_fader_t *fader, obs_source_t *source) { signal_handler_t *sh; + float vol; if (!fader || !source) return false; obs_fader_detach_source(fader); - pthread_mutex_lock(&fader->mutex); - sh = obs_source_get_signal_handler(source); signal_handler_connect(sh, "volume", fader_source_volume_changed, fader); signal_handler_connect(sh, "destroy", fader_source_destroyed, fader); + vol = obs_source_get_volume(source); + + pthread_mutex_lock(&fader->mutex); fader->source = source; - fader->cur_db = mul_to_db(obs_source_get_volume(source)); + fader->cur_db = mul_to_db(vol); pthread_mutex_unlock(&fader->mutex); @@ -569,25 +574,25 @@ bool obs_fader_attach_source(obs_fader_t *fader, obs_source_t *source) void obs_fader_detach_source(obs_fader_t *fader) { signal_handler_t *sh; + obs_source_t *source; if (!fader) return; pthread_mutex_lock(&fader->mutex); + source = fader->source; + fader->source = NULL; + pthread_mutex_unlock(&fader->mutex); - if (!fader->source) - goto exit; + if (!source) + return; - sh = obs_source_get_signal_handler(fader->source); + sh = obs_source_get_signal_handler(source); signal_handler_disconnect(sh, "volume", fader_source_volume_changed, fader); signal_handler_disconnect(sh, "destroy", fader_source_destroyed, fader); - fader->source = NULL; - -exit: - pthread_mutex_unlock(&fader->mutex); } void obs_fader_add_callback(obs_fader_t *fader, obs_fader_changed_t callback, @@ -674,14 +679,13 @@ void obs_volmeter_destroy(obs_volmeter_t *volmeter) bool obs_volmeter_attach_source(obs_volmeter_t *volmeter, obs_source_t *source) { signal_handler_t *sh; + float vol; if (!volmeter || !source) return false; obs_volmeter_detach_source(volmeter); - pthread_mutex_lock(&volmeter->mutex); - sh = obs_source_get_signal_handler(source); signal_handler_connect(sh, "volume", volmeter_source_volume_changed, volmeter); @@ -689,9 +693,12 @@ bool obs_volmeter_attach_source(obs_volmeter_t *volmeter, obs_source_t *source) volmeter_source_destroyed, volmeter); obs_source_add_audio_capture_callback(source, volmeter_source_data_received, volmeter); + vol = obs_source_get_volume(source); + + pthread_mutex_lock(&volmeter->mutex); volmeter->source = source; - volmeter->cur_db = mul_to_db(obs_source_get_volume(source)); + volmeter->cur_db = mul_to_db(vol); pthread_mutex_unlock(&volmeter->mutex); @@ -701,27 +708,26 @@ bool obs_volmeter_attach_source(obs_volmeter_t *volmeter, obs_source_t *source) void obs_volmeter_detach_source(obs_volmeter_t *volmeter) { signal_handler_t *sh; + obs_source_t *source; if (!volmeter) return; pthread_mutex_lock(&volmeter->mutex); + source = volmeter->source; + volmeter->source = NULL; + pthread_mutex_unlock(&volmeter->mutex); - if (!volmeter->source) - goto exit; + if (!source) + return; - sh = obs_source_get_signal_handler(volmeter->source); + sh = obs_source_get_signal_handler(source); signal_handler_disconnect(sh, "volume", volmeter_source_volume_changed, volmeter); signal_handler_disconnect(sh, "destroy", volmeter_source_destroyed, volmeter); - obs_source_remove_audio_capture_callback(volmeter->source, + obs_source_remove_audio_capture_callback(source, volmeter_source_data_received, volmeter); - - volmeter->source = NULL; - -exit: - pthread_mutex_unlock(&volmeter->mutex); } void obs_volmeter_set_update_interval(obs_volmeter_t *volmeter, @@ -732,8 +738,9 @@ void obs_volmeter_set_update_interval(obs_volmeter_t *volmeter, pthread_mutex_lock(&volmeter->mutex); volmeter->update_ms = ms; - volmeter_update_audio_settings(volmeter); pthread_mutex_unlock(&volmeter->mutex); + + volmeter_update_audio_settings(volmeter); } unsigned int obs_volmeter_get_update_interval(obs_volmeter_t *volmeter) @@ -755,8 +762,9 @@ void obs_volmeter_set_peak_hold(obs_volmeter_t *volmeter, const unsigned int ms) pthread_mutex_lock(&volmeter->mutex); volmeter->peakhold_ms = ms; - volmeter_update_audio_settings(volmeter); pthread_mutex_unlock(&volmeter->mutex); + + volmeter_update_audio_settings(volmeter); } unsigned int obs_volmeter_get_peak_hold(obs_volmeter_t *volmeter) diff --git a/libobs/obs-config.h b/libobs/obs-config.h index 4172595..6450cfa 100644 --- a/libobs/obs-config.h +++ b/libobs/obs-config.h @@ -34,14 +34,14 @@ * * Reset to zero each major version */ -#define LIBOBS_API_MINOR_VER 14 +#define LIBOBS_API_MINOR_VER 15 /* * Increment if backward-compatible bug fix * * Reset to zero each major or minor version */ -#define LIBOBS_API_PATCH_VER 2 +#define LIBOBS_API_PATCH_VER 4 #define MAKE_SEMANTIC_VERSION(major, minor, patch) \ ((major << 24) | \ diff --git a/libobs/obs-data.c b/libobs/obs-data.c index 41b33f4..5f94b32 100644 --- a/libobs/obs-data.c +++ b/libobs/obs-data.c @@ -156,10 +156,13 @@ static inline obs_data_t *get_item_autoselect_obj(struct obs_data_item *item) static inline obs_data_array_t *get_item_array(struct obs_data_item *item) { + obs_data_array_t **array; + if (!item) return NULL; - return *(obs_data_array_t**)get_item_data(item); + array = (obs_data_array_t**)get_item_data(item); + return array ? *array : NULL; } static inline obs_data_array_t *get_item_default_array( @@ -1495,6 +1498,14 @@ enum obs_data_number_type obs_data_item_numtype(obs_data_item_t *item) return num->type; } +const char *obs_data_item_get_name(obs_data_item_t *item) +{ + if (!item) + return NULL; + + return get_item_name(item); +} + void obs_data_item_set_string(obs_data_item_t **item, const char *val) { obs_set_string(NULL, item, NULL, val, set_item); diff --git a/libobs/obs-data.h b/libobs/obs-data.h index c07b110..824d23a 100644 --- a/libobs/obs-data.h +++ b/libobs/obs-data.h @@ -195,6 +195,7 @@ EXPORT void obs_data_item_remove(obs_data_item_t **item); /* Gets Item type */ EXPORT enum obs_data_type obs_data_item_gettype(obs_data_item_t *item); EXPORT enum obs_data_number_type obs_data_item_numtype(obs_data_item_t *item); +EXPORT const char *obs_data_item_get_name(obs_data_item_t *item); /* Item set functions */ EXPORT void obs_data_item_set_string(obs_data_item_t **item, const char *val); diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index a0e54f5..e1ce46f 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -108,7 +108,7 @@ static struct obs_encoder *create_encoder(const char *id, &obs->data.encoders_mutex, &obs->data.first_encoder); - blog(LOG_INFO, "encoder '%s' (%s) created", name, id); + blog(LOG_DEBUG, "encoder '%s' (%s) created", name, id); return encoder; } @@ -229,7 +229,7 @@ static void obs_encoder_actually_destroy(obs_encoder_t *encoder) da_free(encoder->outputs); pthread_mutex_unlock(&encoder->outputs_mutex); - blog(LOG_INFO, "encoder '%s' destroyed", encoder->context.name); + blog(LOG_DEBUG, "encoder '%s' destroyed", encoder->context.name); free_audio_buffers(encoder); @@ -809,6 +809,7 @@ static inline void do_encode(struct obs_encoder *encoder, * you do not want to use relative timestamps here */ pkt.dts_usec = encoder->start_ts / 1000 + packet_dts_usec(&pkt) - encoder->offset_usec; + pkt.sys_dts_usec = pkt.dts_usec; pthread_mutex_lock(&encoder->callbacks_mutex); diff --git a/libobs/obs-encoder.h b/libobs/obs-encoder.h index 89a782a..bb393f5 100644 --- a/libobs/obs-encoder.h +++ b/libobs/obs-encoder.h @@ -58,6 +58,9 @@ struct encoder_packet { /* DTS in microseconds */ int64_t dts_usec; + /* System DTS in microseconds */ + int64_t sys_dts_usec; + /** * Packet priority * diff --git a/libobs/obs-internal.h b/libobs/obs-internal.h index e9df2f2..429aa7b 100644 --- a/libobs/obs-internal.h +++ b/libobs/obs-internal.h @@ -238,6 +238,7 @@ struct obs_core_video { gs_effect_t *lanczos_effect; gs_effect_t *bilinear_lowres_effect; gs_effect_t *premultiplied_alpha_effect; + gs_samplerstate_t *point_sampler; gs_stagesurf_t *mapped_surface; int cur_texture; @@ -781,20 +782,25 @@ struct obs_output { bool received_video; bool received_audio; + volatile bool data_active; + volatile bool end_data_capture_thread_active; int64_t video_offset; int64_t audio_offsets[MAX_AUDIO_MIXES]; int64_t highest_audio_ts; int64_t highest_video_ts; + pthread_t end_data_capture_thread; + os_event_t *stopping_event; pthread_mutex_t interleaved_mutex; DARRAY(struct encoder_packet) interleaved_packets; + int stop_code; int reconnect_retry_sec; int reconnect_retry_max; int reconnect_retries; int reconnect_retry_cur_sec; - bool reconnecting; pthread_t reconnect_thread; os_event_t *reconnect_stop_event; + volatile bool reconnecting; volatile bool reconnect_thread_active; uint32_t starting_drawn_count; @@ -804,8 +810,7 @@ struct obs_output { int total_frames; - bool active; - volatile bool stopped; + volatile bool active; video_t *video; audio_t *audio; obs_encoder_t *video_encoder; @@ -831,8 +836,8 @@ struct obs_output { uint32_t delay_flags; uint32_t delay_cur_flags; volatile long delay_restart_refs; - bool delay_active; - bool delay_capturing; + volatile bool delay_active; + volatile bool delay_capturing; }; static inline void do_output_signal(struct obs_output *output, @@ -849,7 +854,8 @@ extern void obs_output_cleanup_delay(obs_output_t *output); extern bool obs_output_delay_start(obs_output_t *output); extern void obs_output_delay_stop(obs_output_t *output); extern bool obs_output_actual_start(obs_output_t *output); -extern void obs_output_actual_stop(obs_output_t *output, bool force); +extern void obs_output_actual_stop(obs_output_t *output, bool force, + uint64_t ts); extern const struct obs_output_info *find_output(const char *id); diff --git a/libobs/obs-module.c b/libobs/obs-module.c index 638ae69..41c46a4 100644 --- a/libobs/obs-module.c +++ b/libobs/obs-module.c @@ -84,7 +84,7 @@ int obs_open_module(obs_module_t **module, const char *path, if (!module || !path || !obs) return MODULE_ERROR; - blog(LOG_INFO, "---------------------------------"); + blog(LOG_DEBUG, "---------------------------------"); mod.module = os_dlopen(path); if (!mod.module) { @@ -104,7 +104,7 @@ int obs_open_module(obs_module_t **module, const char *path, mod.next = obs->first_module; if (mod.file) { - blog(LOG_INFO, "Loading module: %s", mod.file); + blog(LOG_DEBUG, "Loading module: %s", mod.file); } *module = bmemdup(&mod, sizeof(mod)); @@ -138,6 +138,14 @@ bool obs_init_module(obs_module_t *module) return module->loaded; } +void obs_log_loaded_modules(void) +{ + blog(LOG_INFO, " Loaded Modules:"); + + for (obs_module_t *mod = obs->first_module; !!mod; mod = mod->next) + blog(LOG_INFO, " %s", mod->file); +} + const char *obs_get_module_file_name(obs_module_t *module) { return module ? module->file : NULL; diff --git a/libobs/obs-module.h b/libobs/obs-module.h index 7b98904..5d446db 100644 --- a/libobs/obs-module.h +++ b/libobs/obs-module.h @@ -133,7 +133,7 @@ MODULE_EXTERN obs_module_t *obs_current_module(void); /** * Returns the location to a module data file associated with the current * module. Free with bfree when complete. Equivalent to: - * obs_find_module_file(obs_current_modile(), file); + * obs_find_module_file(obs_current_module(), file); */ #define obs_module_file(file) obs_find_module_file(obs_current_module(), file) @@ -141,7 +141,7 @@ MODULE_EXTERN obs_module_t *obs_current_module(void); * Returns the location to a module config file associated with the current * module. Free with bfree when complete. Will return NULL if configuration * directory is not set. Equivalent to: - * obs_module_get_config_path(obs_current_modile(), file); + * obs_module_get_config_path(obs_current_module(), file); */ #define obs_module_config_path(file) \ obs_module_get_config_path(obs_current_module(), file) diff --git a/libobs/obs-output-delay.c b/libobs/obs-output-delay.c index 8073968..2bcc6bb 100644 --- a/libobs/obs-output-delay.c +++ b/libobs/obs-output-delay.c @@ -18,6 +18,16 @@ #include #include "obs-internal.h" +static inline bool delay_active(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->delay_active); +} + +static inline bool delay_capturing(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->delay_capturing); +} + static inline void push_packet(struct obs_output *output, struct encoder_packet *packet, uint64_t t) { @@ -37,7 +47,7 @@ static inline void process_delay_data(struct obs_output *output, { switch (dd->msg) { case DELAY_MSG_PACKET: - if (!output->delay_active || !output->delay_capturing) + if (!delay_active(output) || !delay_capturing(output)) obs_free_encoder_packet(&dd->packet); else output->delay_callback(output, &dd->packet); @@ -46,7 +56,7 @@ static inline void process_delay_data(struct obs_output *output, obs_output_actual_start(output); break; case DELAY_MSG_STOP: - obs_output_actual_stop(output, false); + obs_output_actual_stop(output, false, dd->ts); break; } } @@ -63,7 +73,7 @@ void obs_output_cleanup_delay(obs_output_t *output) } output->active_delay_ns = 0; - output->delay_restart_refs = 0; + os_atomic_set_long(&output->delay_restart_refs, 0); } static inline bool pop_packet(struct obs_output *output, uint64_t t) @@ -129,7 +139,7 @@ bool obs_output_delay_start(obs_output_t *output) .ts = os_gettime_ns(), }; - if (!output->delay_active) { + if (!delay_active(output)) { bool can_begin = obs_output_can_begin_data_capture(output, 0); if (!can_begin) return false; @@ -141,8 +151,9 @@ bool obs_output_delay_start(obs_output_t *output) circlebuf_push_back(&output->delay_data, &dd, sizeof(dd)); pthread_mutex_unlock(&output->delay_mutex); - if (output->delay_active) { - os_atomic_inc_long(&output->delay_restart_refs); + os_atomic_inc_long(&output->delay_restart_refs); + + if (delay_active(output)) { do_output_signal(output, "starting"); return true; } diff --git a/libobs/obs-output.c b/libobs/obs-output.c index d450a6f..21f6745 100644 --- a/libobs/obs-output.c +++ b/libobs/obs-output.c @@ -20,7 +20,35 @@ #include "obs.h" #include "obs-internal.h" -static inline void signal_stop(struct obs_output *output, int code); +static inline bool active(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->active); +} + +static inline bool reconnecting(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->reconnecting); +} + +static inline bool stopping(const struct obs_output *output) +{ + return os_event_try(output->stopping_event) == EAGAIN; +} + +static inline bool delay_active(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->delay_active); +} + +static inline bool delay_capturing(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->delay_capturing); +} + +static inline bool data_capture_ending(const struct obs_output *output) +{ + return os_atomic_load_bool(&output->end_data_capture_thread_active); +} const struct obs_output_info *find_output(const char *id) { @@ -76,9 +104,13 @@ obs_output_t *obs_output_create(const char *id, const char *name, goto fail; if (pthread_mutex_init(&output->delay_mutex, NULL) != 0) goto fail; + if (os_event_init(&output->stopping_event, OS_EVENT_TYPE_MANUAL) != 0) + goto fail; if (!init_output_handlers(output, name, settings, hotkey_data)) goto fail; + os_event_signal(output->stopping_event); + if (!info) { blog(LOG_ERROR, "Output ID '%s' not found", id); @@ -114,7 +146,7 @@ obs_output_t *obs_output_create(const char *id, const char *name, &obs->data.outputs_mutex, &obs->data.first_output); - blog(LOG_INFO, "output '%s' (%s) created", name, id); + blog(LOG_DEBUG, "output '%s' (%s) created", name, id); return output; fail: @@ -134,18 +166,22 @@ void obs_output_destroy(obs_output_t *output) if (output) { obs_context_data_remove(&output->context); - blog(LOG_INFO, "output '%s' destroyed", output->context.name); + blog(LOG_DEBUG, "output '%s' destroyed", output->context.name); + + if (output->valid && active(output)) + obs_output_actual_stop(output, true, 0); + + os_event_wait(output->stopping_event); + if (data_capture_ending(output)) + pthread_join(output->end_data_capture_thread, NULL); - if (output->valid && output->active) - obs_output_actual_stop(output, true); if (output->service) output->service->output = NULL; - - free_packets(output); - if (output->context.data) output->info.destroy(output->context.data); + free_packets(output); + if (output->video_encoder) { obs_encoder_remove_output(output->video_encoder, output); @@ -159,6 +195,7 @@ void obs_output_destroy(obs_output_t *output) } } + os_event_destroy(output->stopping_event); pthread_mutex_destroy(&output->interleaved_mutex); pthread_mutex_destroy(&output->delay_mutex); os_event_destroy(output->reconnect_stop_event); @@ -180,7 +217,8 @@ bool obs_output_actual_start(obs_output_t *output) { bool success = false; - output->stopped = false; + os_event_wait(output->stopping_event); + output->stop_code = 0; if (output->context.data) success = output->info.start(output->context.data); @@ -194,7 +232,7 @@ bool obs_output_actual_start(obs_output_t *output) output->starting_lagged_count = obs->video.lagged_frames; } - if (output->delay_restart_refs) + if (os_atomic_load_long(&output->delay_restart_refs)) os_atomic_dec_long(&output->delay_restart_refs); return success; @@ -222,6 +260,11 @@ bool obs_output_start(obs_output_t *output) } } +static inline bool data_active(struct obs_output *output) +{ + return os_atomic_load_bool(&output->data_active); +} + static void log_frame_info(struct obs_output *output) { struct obs_core_video *video = &obs->video; @@ -272,27 +315,47 @@ static void log_frame_info(struct obs_output *output) dropped, percentage_dropped); } -void obs_output_actual_stop(obs_output_t *output, bool force) +static inline void signal_stop(struct obs_output *output); + +void obs_output_actual_stop(obs_output_t *output, bool force, uint64_t ts) { - output->stopped = true; + bool call_stop = true; + bool was_reconnecting = false; - os_event_signal(output->reconnect_stop_event); - if (output->reconnect_thread_active) - pthread_join(output->reconnect_thread, NULL); + if (stopping(output)) + return; + os_event_reset(output->stopping_event); - if (output->context.data) - output->info.stop(output->context.data); - - if (output->video) - log_frame_info(output); - - if (output->delay_active && (force || !output->delay_restart_refs)) { - output->delay_active = false; - obs_output_end_data_capture(output); + was_reconnecting = reconnecting(output) && !delay_active(output); + if (reconnecting(output)) { + os_event_signal(output->reconnect_stop_event); + if (output->reconnect_thread_active) + pthread_join(output->reconnect_thread, NULL); } - if (force || !output->delay_active) - signal_stop(output, OBS_OUTPUT_SUCCESS); + if (force) { + if (delay_active(output)) { + call_stop = delay_capturing(output); + os_atomic_set_bool(&output->delay_active, false); + os_atomic_set_bool(&output->delay_capturing, false); + output->stop_code = OBS_OUTPUT_SUCCESS; + obs_output_end_data_capture(output); + os_event_signal(output->stopping_event); + } else { + call_stop = data_active(output); + } + } else { + call_stop = data_active(output); + } + + if (output->context.data && call_stop) { + output->info.stop(output->context.data, ts); + + } else if (was_reconnecting) { + output->stop_code = OBS_OUTPUT_SUCCESS; + signal_stop(output); + os_event_signal(output->stopping_event); + } } void obs_output_stop(obs_output_t *output) @@ -302,26 +365,40 @@ void obs_output_stop(obs_output_t *output) return; if (!output->context.data) return; + if (!active(output) && !reconnecting(output)) + return; + if (reconnecting(output)) { + obs_output_force_stop(output); + return; + } encoded = (output->info.flags & OBS_OUTPUT_ENCODED) != 0; if (encoded && output->active_delay_ns) { obs_output_delay_stop(output); - } else { - obs_output_actual_stop(output, false); + + } else if (!stopping(output)) { do_output_signal(output, "stopping"); + obs_output_actual_stop(output, false, os_gettime_ns()); } } void obs_output_force_stop(obs_output_t *output) { - obs_output_actual_stop(output, true); + if (!obs_output_valid(output, "obs_output_force_stop")) + return; + + if (!stopping(output)) { + output->stop_code = 0; + do_output_signal(output, "stopping"); + obs_output_actual_stop(output, true, 0); + } } bool obs_output_active(const obs_output_t *output) { return (output != NULL) ? - (output->active || output->reconnecting) : false; + (active(output) || reconnecting(output)) : false; } static inline obs_data_t *get_defaults(const struct obs_output_info *info) @@ -442,7 +519,7 @@ void obs_output_set_mixer(obs_output_t *output, size_t mixer_idx) if (!obs_output_valid(output, "obs_output_set_mixer")) return; - if (!output->active) + if (!active(output)) output->mixer_idx = mixer_idx; } @@ -547,7 +624,7 @@ void obs_output_set_service(obs_output_t *output, obs_service_t *service) { if (!obs_output_valid(output, "obs_output_set_service")) return; - if (output->active || !service || service->active) + if (active(output) || !service || service->active) return; if (service->output) @@ -580,7 +657,7 @@ uint64_t obs_output_get_total_bytes(const obs_output_t *output) if (!output->info.get_total_bytes) return 0; - if (output->delay_active && !output->delay_capturing) + if (delay_active(output) && !delay_capturing(output)) return 0; return output->info.get_total_bytes(output->context.data); @@ -610,7 +687,7 @@ void obs_output_set_preferred_size(obs_output_t *output, uint32_t width, if ((output->info.flags & OBS_OUTPUT_VIDEO) == 0) return; - if (output->active) { + if (active(output)) { blog(LOG_WARNING, "output '%s': Cannot set the preferred " "resolution while the output is active", obs_output_get_name(output)); @@ -879,8 +956,7 @@ static inline void send_interleaved(struct obs_output *output) output->total_frames++; da_erase(output->interleaved_packets, 0); - if (!output->stopped) - output->info.encoded_packet(output->context.data, &out); + output->info.encoded_packet(output->context.data, &out); obs_free_encoder_packet(&out); } @@ -940,7 +1016,7 @@ static int prune_premature_packets(struct obs_output *output) int max_idx; int64_t duration_usec; int64_t max_diff = 0; - int64_t diff; + int64_t diff = 0; video_idx = find_first_packet_type_idx(output, OBS_ENCODER_VIDEO, 0); if (video_idx == -1) { @@ -1212,6 +1288,9 @@ static void interleave_packets(void *data, struct encoder_packet *packet) struct encoder_packet out; bool was_started; + if (!active(output)) + return; + if (packet->type == OBS_ENCODER_AUDIO) packet->track_idx = get_track_index(output, packet); @@ -1223,6 +1302,9 @@ static void interleave_packets(void *data, struct encoder_packet *packet) !packet->keyframe) { discard_unused_audio_packets(output, packet->dts_usec); pthread_mutex_unlock(&output->interleaved_mutex); + + if (output->active_delay_ns) + obs_free_encoder_packet(packet); return; } @@ -1263,22 +1345,24 @@ static void default_encoded_callback(void *param, struct encoder_packet *packet) { struct obs_output *output = param; - if (packet->type == OBS_ENCODER_AUDIO) - packet->track_idx = get_track_index(output, packet); + if (data_active(output)) { + if (packet->type == OBS_ENCODER_AUDIO) + packet->track_idx = get_track_index(output, packet); - if (!output->stopped) output->info.encoded_packet(output->context.data, packet); + + if (packet->type == OBS_ENCODER_VIDEO) + output->total_frames++; + } + if (output->active_delay_ns) obs_free_encoder_packet(packet); - - if (packet->type == OBS_ENCODER_VIDEO) - output->total_frames++; } static void default_raw_video_callback(void *param, struct video_data *frame) { struct obs_output *output = param; - if (!output->stopped) + if (data_active(output)) output->info.raw_video(output->context.data, frame); output->total_frames++; } @@ -1287,8 +1371,10 @@ static void default_raw_audio_callback(void *param, size_t mix_idx, struct audio_data *frames) { struct obs_output *output = param; - if (!output->stopped) - output->info.raw_audio(output->context.data, frames); + if (!data_active(output)) + return; + + output->info.raw_audio(output->context.data, frames); UNUSED_PARAMETER(mix_idx); } @@ -1342,7 +1428,7 @@ static void hook_data_capture(struct obs_output *output, bool encoded, output->delay_cur_flags = output->delay_flags; output->delay_callback = encoded_callback; encoded_callback = process_delay; - output->delay_active = true; + os_atomic_set_bool(&output->delay_active, true); blog(LOG_INFO, "Output '%s': %"PRIu32" second delay " "active, preserve on disconnect is %s", @@ -1390,13 +1476,13 @@ static inline void signal_reconnect_success(struct obs_output *output) do_output_signal(output, "reconnect_success"); } -static inline void signal_stop(struct obs_output *output, int code) +static inline void signal_stop(struct obs_output *output) { struct calldata params; uint8_t stack[128]; calldata_init_fixed(¶ms, stack, sizeof(stack)); - calldata_set_int(¶ms, "code", code); + calldata_set_int(¶ms, "code", output->stop_code); calldata_set_ptr(¶ms, "output", output); signal_handler_signal(output->context.signals, "stop", ¶ms); } @@ -1424,8 +1510,11 @@ bool obs_output_can_begin_data_capture(const obs_output_t *output, if (!obs_output_valid(output, "obs_output_can_begin_data_capture")) return false; - if (output->delay_active) return true; - if (output->active) return false; + if (delay_active(output)) return true; + if (active(output)) return false; + + if (data_capture_ending(output)) + pthread_join(output->end_data_capture_thread, NULL); convert_flags(output, flags, &encoded, &has_video, &has_audio, &has_service); @@ -1492,7 +1581,7 @@ bool obs_output_initialize_encoders(obs_output_t *output, uint32_t flags) if (!obs_output_valid(output, "obs_output_initialize_encoders")) return false; - if (output->active) return output->delay_active; + if (active(output)) return delay_active(output); convert_flags(output, flags, &encoded, &has_video, &has_audio, &has_service); @@ -1514,17 +1603,17 @@ bool obs_output_initialize_encoders(obs_output_t *output, uint32_t flags) static bool begin_delayed_capture(obs_output_t *output) { - if (output->delay_capturing) + if (delay_capturing(output)) return false; pthread_mutex_lock(&output->interleaved_mutex); reset_packet_data(output); - output->delay_capturing = true; + os_atomic_set_bool(&output->delay_capturing, true); pthread_mutex_unlock(&output->interleaved_mutex); - if (output->reconnecting) { + if (reconnecting(output)) { signal_reconnect_success(output); - output->reconnecting = false; + os_atomic_set_bool(&output->reconnecting, false); } else { signal_start(output); } @@ -1539,8 +1628,8 @@ bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags) if (!obs_output_valid(output, "obs_output_begin_data_capture")) return false; - if (output->delay_active) return begin_delayed_capture(output); - if (output->active) return false; + if (delay_active(output)) return begin_delayed_capture(output); + if (active(output)) return false; output->total_frames = 0; @@ -1551,19 +1640,20 @@ bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags) has_service)) return false; + os_atomic_set_bool(&output->data_active, true); hook_data_capture(output, encoded, has_video, has_audio); if (has_service) obs_service_activate(output->service); do_output_signal(output, "activate"); - output->active = true; + os_atomic_set_bool(&output->active, true); - if (output->reconnecting) { + if (reconnecting(output)) { signal_reconnect_success(output); - output->reconnecting = false; + os_atomic_set_bool(&output->reconnecting, false); - } else if (output->delay_active) { + } else if (delay_active(output)) { do_output_signal(output, "starting"); } else { @@ -1584,20 +1674,11 @@ static inline void stop_audio_encoders(obs_output_t *output, } } -void obs_output_end_data_capture(obs_output_t *output) +static void *end_data_capture_thread(void *data) { bool encoded, has_video, has_audio, has_service; encoded_callback_t encoded_callback; - - if (!obs_output_valid(output, "obs_output_end_data_capture")) - return; - - if (output->delay_active) { - output->delay_capturing = false; - return; - } - - if (!output->active) return; + obs_output_t *output = data; convert_flags(output, 0, &encoded, &has_video, &has_audio, &has_service); @@ -1631,7 +1712,66 @@ void obs_output_end_data_capture(obs_output_t *output) obs_output_cleanup_delay(output); do_output_signal(output, "deactivate"); - output->active = false; + os_atomic_set_bool(&output->active, false); + os_event_signal(output->stopping_event); + os_atomic_set_bool(&output->end_data_capture_thread_active, false); + + return NULL; +} + +static void obs_output_end_data_capture_internal(obs_output_t *output, + bool signal) +{ + int ret; + + if (!obs_output_valid(output, "obs_output_end_data_capture")) + return; + + if (!active(output) || !data_active(output)) { + if (signal) { + signal_stop(output); + output->stop_code = OBS_OUTPUT_SUCCESS; + } + return; + } + + if (delay_active(output)) { + os_atomic_set_bool(&output->delay_capturing, false); + + if (!os_atomic_load_long(&output->delay_restart_refs)) { + os_atomic_set_bool(&output->delay_active, false); + } else { + os_event_signal(output->stopping_event); + return; + } + } + + os_atomic_set_bool(&output->data_active, false); + + if (output->video) + log_frame_info(output); + + if (data_capture_ending(output)) + pthread_join(output->end_data_capture_thread, NULL); + + os_atomic_set_bool(&output->end_data_capture_thread_active, true); + ret = pthread_create(&output->end_data_capture_thread, NULL, + end_data_capture_thread, output); + if (ret != 0) { + blog(LOG_WARNING, "Failed to create end_data_capture_thread " + "for output '%s'!", output->context.name); + end_data_capture_thread(output); + } + + if (signal) { + signal_stop(output); + output->stop_code = OBS_OUTPUT_SUCCESS; + } +} + +void obs_output_end_data_capture(obs_output_t *output) +{ + obs_output_end_data_capture_internal(output, true); } static void *reconnect_thread(void *param) @@ -1647,48 +1787,51 @@ static void *reconnect_thread(void *param) if (os_event_try(output->reconnect_stop_event) == EAGAIN) pthread_detach(output->reconnect_thread); else - output->reconnecting = false; + os_atomic_set_bool(&output->reconnecting, false); output->reconnect_thread_active = false; return NULL; } +#define MAX_RETRY_SEC (15 * 60) + static void output_reconnect(struct obs_output *output) { int ret; - if (!output->reconnecting) { + if (!reconnecting(output)) { output->reconnect_retry_cur_sec = output->reconnect_retry_sec; output->reconnect_retries = 0; } if (output->reconnect_retries >= output->reconnect_retry_max) { - output->reconnecting = false; - if (output->delay_active) { - output->delay_active = false; - obs_output_end_data_capture(output); - } - signal_stop(output, OBS_OUTPUT_DISCONNECTED); + output->stop_code = OBS_OUTPUT_DISCONNECTED; + os_atomic_set_bool(&output->reconnecting, false); + if (delay_active(output)) + os_atomic_set_bool(&output->delay_active, false); + obs_output_end_data_capture(output); return; } - if (!output->reconnecting) { - output->reconnecting = true; + if (!reconnecting(output)) { + os_atomic_set_bool(&output->reconnecting, true); os_event_reset(output->reconnect_stop_event); } if (output->reconnect_retries) { output->reconnect_retry_cur_sec *= 2; + if (output->reconnect_retry_cur_sec > MAX_RETRY_SEC) + output->reconnect_retry_cur_sec = MAX_RETRY_SEC; } output->reconnect_retries++; + output->stop_code = OBS_OUTPUT_DISCONNECTED; ret = pthread_create(&output->reconnect_thread, NULL, &reconnect_thread, output); if (ret < 0) { blog(LOG_WARNING, "Failed to create reconnect thread"); - output->reconnecting = false; - signal_stop(output, OBS_OUTPUT_DISCONNECTED); + os_atomic_set_bool(&output->reconnecting, false); } else { blog(LOG_INFO, "Output '%s': Reconnecting in %d seconds..", output->context.name, @@ -1698,22 +1841,30 @@ static void output_reconnect(struct obs_output *output) } } +static inline bool can_reconnect(const obs_output_t *output, int code) +{ + bool reconnect_active = output->reconnect_retry_max != 0; + + return (reconnecting(output) && code != OBS_OUTPUT_SUCCESS) || + (reconnect_active && code == OBS_OUTPUT_DISCONNECTED); +} + void obs_output_signal_stop(obs_output_t *output, int code) { if (!obs_output_valid(output, "obs_output_signal_stop")) return; - obs_output_end_data_capture(output); + output->stop_code = code; - if ((output->reconnecting && code != OBS_OUTPUT_SUCCESS) || - code == OBS_OUTPUT_DISCONNECTED) { + if (can_reconnect(output, code)) { + if (delay_active(output)) + os_atomic_inc_long(&output->delay_restart_refs); + obs_output_end_data_capture_internal(output, false); output_reconnect(output); } else { - if (output->delay_active) { - output->delay_active = false; - obs_output_end_data_capture(output); - } - signal_stop(output, code); + if (delay_active(output)) + os_atomic_set_bool(&output->delay_active, false); + obs_output_end_data_capture(output); } } diff --git a/libobs/obs-output.h b/libobs/obs-output.h index 03629e3..1b42530 100644 --- a/libobs/obs-output.h +++ b/libobs/obs-output.h @@ -42,7 +42,7 @@ struct obs_output_info { void (*destroy)(void *data); bool (*start)(void *data); - void (*stop)(void *data); + void (*stop)(void *data, uint64_t ts); void (*raw_video)(void *data, struct video_data *frame); void (*raw_audio)(void *data, struct audio_data *frames); diff --git a/libobs/obs-properties.c b/libobs/obs-properties.c index a0e7cd3..c2d5a99 100644 --- a/libobs/obs-properties.c +++ b/libobs/obs-properties.c @@ -62,7 +62,7 @@ struct list_data { }; struct editable_list_data { - bool allow_files; + enum obs_editable_list_type type; char *filter; char *default_path; }; @@ -145,6 +145,7 @@ struct obs_properties; struct obs_property { const char *name; const char *desc; + const char *long_desc; enum obs_property_type type; bool visible; bool enabled; @@ -503,7 +504,7 @@ obs_property_t *obs_properties_add_font(obs_properties_t *props, obs_property_t *obs_properties_add_editable_list(obs_properties_t *props, const char *name, const char *desc, - bool allow_files, const char *filter, + enum obs_editable_list_type type, const char *filter, const char *default_path) { if (!props || has_prop(props, name)) return NULL; @@ -511,7 +512,7 @@ obs_property_t *obs_properties_add_editable_list(obs_properties_t *props, OBS_PROPERTY_EDITABLE_LIST); struct editable_list_data *data = get_property_data(p); - data->allow_files = allow_files; + data->type = type; data->filter = bstrdup(filter); data->default_path = bstrdup(default_path); return p; @@ -584,7 +585,8 @@ bool obs_property_button_clicked(obs_property_t *p, void *obj) struct button_data *data = get_type_data(p, OBS_PROPERTY_BUTTON); if (data && data->callback) - return data->callback(p->parent, p, context->data); + return data->callback(p->parent, p, + (context ? context->data : NULL)); } return false; @@ -605,6 +607,11 @@ void obs_property_set_description(obs_property_t *p, const char *description) if (p) p->desc = description; } +void obs_property_set_long_description(obs_property_t *p, const char *long_desc) +{ + if (p) p->long_desc = long_desc; +} + const char *obs_property_name(obs_property_t *p) { return p ? p->name : NULL; @@ -615,6 +622,11 @@ const char *obs_property_description(obs_property_t *p) return p ? p->desc : NULL; } +const char *obs_property_long_description(obs_property_t *p) +{ + return p ? p->long_desc : NULL; +} + enum obs_property_type obs_property_get_type(obs_property_t *p) { return p ? p->type : OBS_PROPERTY_INVALID; @@ -863,11 +875,11 @@ double obs_property_list_item_float(obs_property_t *p, size_t idx) data->items.array[idx].d : 0.0; } -bool obs_property_editable_list_allow_files(obs_property_t *p) +enum obs_editable_list_type obs_property_editable_list_type(obs_property_t *p) { struct editable_list_data *data = get_type_data(p, OBS_PROPERTY_EDITABLE_LIST); - return data ? data->allow_files : false; + return data ? data->type : OBS_EDITABLE_LIST_TYPE_STRINGS; } const char *obs_property_editable_list_filter(obs_property_t *p) diff --git a/libobs/obs-properties.h b/libobs/obs-properties.h index 8d400a6..c3b7446 100644 --- a/libobs/obs-properties.h +++ b/libobs/obs-properties.h @@ -70,6 +70,12 @@ enum obs_combo_type { OBS_COMBO_TYPE_LIST, }; +enum obs_editable_list_type { + OBS_EDITABLE_LIST_TYPE_STRINGS, + OBS_EDITABLE_LIST_TYPE_FILES, + OBS_EDITABLE_LIST_TYPE_FILES_AND_URLS +}; + enum obs_path_type { OBS_PATH_FILE, OBS_PATH_FILE_SAVE, @@ -202,7 +208,7 @@ EXPORT obs_property_t *obs_properties_add_font(obs_properties_t *props, EXPORT obs_property_t *obs_properties_add_editable_list(obs_properties_t *props, const char *name, const char *description, - bool allow_files, const char *filter, + enum obs_editable_list_type type, const char *filter, const char *default_path); EXPORT obs_property_t *obs_properties_add_frame_rate(obs_properties_t *props, @@ -229,9 +235,12 @@ EXPORT void obs_property_set_enabled(obs_property_t *p, bool enabled); EXPORT void obs_property_set_description(obs_property_t *p, const char *description); +EXPORT void obs_property_set_long_description(obs_property_t *p, + const char *long_description); EXPORT const char * obs_property_name(obs_property_t *p); EXPORT const char * obs_property_description(obs_property_t *p); +EXPORT const char * obs_property_long_description(obs_property_t *p); EXPORT enum obs_property_type obs_property_get_type(obs_property_t *p); EXPORT bool obs_property_enabled(obs_property_t *p); EXPORT bool obs_property_visible(obs_property_t *p); @@ -281,7 +290,7 @@ EXPORT const char *obs_property_list_item_string(obs_property_t *p, size_t idx); EXPORT long long obs_property_list_item_int(obs_property_t *p, size_t idx); EXPORT double obs_property_list_item_float(obs_property_t *p, size_t idx); -EXPORT bool obs_property_editable_list_allow_files(obs_property_t *p); +EXPORT enum obs_editable_list_type obs_property_editable_list_type(obs_property_t *p); EXPORT const char *obs_property_editable_list_filter(obs_property_t *p); EXPORT const char *obs_property_editable_list_default_path(obs_property_t *p); diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index 3fa74e3..d12eabc 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -337,6 +337,8 @@ static void update_item_transform(struct obs_scene_item *item) matrix4_translate3f(&item->draw_transform, &item->draw_transform, item->pos.x, item->pos.y, 0.0f); + item->output_scale = scale; + /* ----------------------- */ if (item->bounds_type != OBS_BOUNDS_NONE) { @@ -383,15 +385,76 @@ static inline bool crop_enabled(const struct obs_sceneitem_crop *crop) return crop->left || crop->right || crop->top || crop->bottom; } +static inline bool scale_filter_enabled(const struct obs_scene_item *item) +{ + return item->scale_filter != OBS_SCALE_DISABLE; +} + +static inline bool item_is_scene(const struct obs_scene_item *item) +{ + return item->source && item->source->info.type == OBS_SOURCE_TYPE_SCENE; +} + +static inline bool item_texture_enabled(const struct obs_scene_item *item) +{ + return crop_enabled(&item->crop) || scale_filter_enabled(item) || + item_is_scene(item); +} + +static void render_item_texture(struct obs_scene_item *item) +{ + gs_texture_t *tex = gs_texrender_get_texture(item->item_render); + gs_effect_t *effect = obs->video.default_effect; + enum obs_scale_type type = item->scale_filter; + uint32_t cx = gs_texture_get_width(tex); + uint32_t cy = gs_texture_get_height(tex); + + if (type != OBS_SCALE_DISABLE) { + if (type == OBS_SCALE_POINT) { + gs_eparam_t *image = gs_effect_get_param_by_name( + effect, "image"); + gs_effect_set_next_sampler(image, + obs->video.point_sampler); + + } else if (!close_float(item->output_scale.x, 1.0f, EPSILON) || + !close_float(item->output_scale.y, 1.0f, EPSILON)) { + gs_eparam_t *scale_param; + + if (item->output_scale.x < 0.5f || + item->output_scale.y < 0.5f) { + effect = obs->video.bilinear_lowres_effect; + } else if (type == OBS_SCALE_BICUBIC) { + effect = obs->video.bicubic_effect; + } else if (type == OBS_SCALE_LANCZOS) { + effect = obs->video.lanczos_effect; + } + + scale_param = gs_effect_get_param_by_name(effect, + "base_dimension_i"); + if (scale_param) { + struct vec2 base_res_i = { + 1.0f / (float)cx, + 1.0f / (float)cy + }; + + gs_effect_set_vec2(scale_param, &base_res_i); + } + } + } + + while (gs_effect_loop(effect, "Draw")) + obs_source_draw(tex, 0, 0, 0, 0, 0); +} + static inline void render_item(struct obs_scene_item *item) { - if (item->crop_render) { + if (item->item_render) { uint32_t width = obs_source_get_width(item->source); uint32_t height = obs_source_get_height(item->source); uint32_t cx = calc_cx(item, width); uint32_t cy = calc_cy(item, height); - if (cx && cy && gs_texrender_begin(item->crop_render, cx, cy)) { + if (cx && cy && gs_texrender_begin(item->item_render, cx, cy)) { float cx_scale = (float)width / (float)cx; float cy_scale = (float)height / (float)cy; struct vec4 clear_color; @@ -408,17 +471,14 @@ static inline void render_item(struct obs_scene_item *item) 0.0f); obs_source_video_render(item->source); - gs_texrender_end(item->crop_render); + gs_texrender_end(item->item_render); } } gs_matrix_push(); gs_matrix_mul(&item->draw_transform); - if (item->crop_render) { - gs_texture_t *tex = gs_texrender_get_texture(item->crop_render); - - while (gs_effect_loop(obs->video.default_effect, "Draw")) - obs_source_draw(tex, 0, 0, 0, 0, 0); + if (item->item_render) { + render_item_texture(item); } else { obs_source_video_render(item->source); } @@ -433,8 +493,8 @@ static void scene_video_tick(void *data, float seconds) video_lock(scene); item = scene->first_item; while (item) { - if (item->crop_render) - gs_texrender_reset(item->crop_render); + if (item->item_render) + gs_texrender_reset(item->item_render); item = item->next; } video_unlock(scene); @@ -511,6 +571,7 @@ static void scene_load_item(struct obs_scene *scene, obs_data_t *item_data) { const char *name = obs_data_get_string(item_data, "name"); obs_source_t *source = obs_get_source_by_name(name); + const char *scale_filter_str; struct obs_scene_item *item; bool visible; @@ -553,15 +614,29 @@ static void scene_load_item(struct obs_scene *scene, obs_data_t *item_data) item->crop.right = (uint32_t)obs_data_get_int(item_data, "crop_right"); item->crop.bottom = (uint32_t)obs_data_get_int(item_data, "crop_bottom"); - if (item->crop_render && !crop_enabled(&item->crop)) { + scale_filter_str = obs_data_get_string(item_data, "scale_filter"); + item->scale_filter = OBS_SCALE_DISABLE; + + if (scale_filter_str) { + if (astrcmpi(scale_filter_str, "point") == 0) + item->scale_filter = OBS_SCALE_POINT; + else if (astrcmpi(scale_filter_str, "bilinear") == 0) + item->scale_filter = OBS_SCALE_BILINEAR; + else if (astrcmpi(scale_filter_str, "bicubic") == 0) + item->scale_filter = OBS_SCALE_BICUBIC; + else if (astrcmpi(scale_filter_str, "lanczos") == 0) + item->scale_filter = OBS_SCALE_LANCZOS; + } + + if (item->item_render && !item_texture_enabled(item)) { obs_enter_graphics(); - gs_texrender_destroy(item->crop_render); - item->crop_render = NULL; + gs_texrender_destroy(item->item_render); + item->item_render = NULL; obs_leave_graphics(); - } else if (!item->crop_render && crop_enabled(&item->crop)) { + } else if (!item->item_render && item_texture_enabled(item)) { obs_enter_graphics(); - item->crop_render = gs_texrender_create(GS_RGBA, GS_ZS_NONE); + item->item_render = gs_texrender_create(GS_RGBA, GS_ZS_NONE); obs_leave_graphics(); } @@ -595,6 +670,7 @@ static void scene_save_item(obs_data_array_t *array, { obs_data_t *item_data = obs_data_create(); const char *name = obs_source_get_name(item->source); + const char *scale_filter; obs_data_set_string(item_data, "name", name); obs_data_set_bool (item_data, "visible", item->user_visible); @@ -610,6 +686,19 @@ static void scene_save_item(obs_data_array_t *array, obs_data_set_int (item_data, "crop_right", (int)item->crop.right); obs_data_set_int (item_data, "crop_bottom", (int)item->crop.bottom); + if (item->scale_filter == OBS_SCALE_POINT) + scale_filter = "point"; + else if (item->scale_filter == OBS_SCALE_BILINEAR) + scale_filter = "bilinear"; + else if (item->scale_filter == OBS_SCALE_BICUBIC) + scale_filter = "bicubic"; + else if (item->scale_filter == OBS_SCALE_LANCZOS) + scale_filter = "lanczos"; + else + scale_filter = "disable"; + + obs_data_set_string(item_data, "scale_filter", scale_filter); + obs_data_array_push_back(array, item_data); obs_data_release(item_data); } @@ -1197,6 +1286,12 @@ obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source) item->visible = true; } + if (item_texture_enabled(item)) { + obs_enter_graphics(); + item->item_render = gs_texrender_create(GS_RGBA, GS_ZS_NONE); + obs_leave_graphics(); + } + full_lock(scene); last = scene->first_item; @@ -1227,9 +1322,9 @@ obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source) static void obs_sceneitem_destroy(obs_sceneitem_t *item) { if (item) { - if (item->crop_render) { + if (item->item_render) { obs_enter_graphics(); - gs_texrender_destroy(item->crop_render); + gs_texrender_destroy(item->item_render); obs_leave_graphics(); } obs_hotkey_pair_unregister(item->toggle_visibility); @@ -1305,7 +1400,7 @@ void obs_sceneitem_select(obs_sceneitem_t *item, bool select) uint8_t stack[128]; const char *command = select ? "item_select" : "item_deselect"; - if (!item || item->selected == select) + if (!item || item->selected == select || !item->parent) return; item->selected = select; @@ -1695,7 +1790,7 @@ static inline bool crop_equal(const struct obs_sceneitem_crop *crop1, void obs_sceneitem_set_crop(obs_sceneitem_t *item, const struct obs_sceneitem_crop *crop) { - bool now_enabled; + bool item_tex_now_enabled; if (!obs_ptr_valid(item, "obs_sceneitem_set_crop")) return; @@ -1704,16 +1799,17 @@ void obs_sceneitem_set_crop(obs_sceneitem_t *item, if (crop_equal(crop, &item->crop)) return; - now_enabled = crop_enabled(crop); + item_tex_now_enabled = crop_enabled(crop) || + scale_filter_enabled(item) || item_is_scene(item); obs_enter_graphics(); - if (!now_enabled) { - gs_texrender_destroy(item->crop_render); - item->crop_render = NULL; + if (!item_tex_now_enabled) { + gs_texrender_destroy(item->item_render); + item->item_render = NULL; - } else if (!item->crop_render) { - item->crop_render = gs_texrender_create(GS_RGBA, GS_ZS_NONE); + } else if (!item->item_render) { + item->item_render = gs_texrender_create(GS_RGBA, GS_ZS_NONE); } memcpy(&item->crop, crop, sizeof(*crop)); @@ -1738,6 +1834,36 @@ void obs_sceneitem_get_crop(const obs_sceneitem_t *item, memcpy(crop, &item->crop, sizeof(*crop)); } +void obs_sceneitem_set_scale_filter(obs_sceneitem_t *item, + enum obs_scale_type filter) +{ + if (!obs_ptr_valid(item, "obs_sceneitem_set_scale_filter")) + return; + + item->scale_filter = filter; + + obs_enter_graphics(); + + if (!item_texture_enabled(item)) { + gs_texrender_destroy(item->item_render); + item->item_render = NULL; + + } else if (!item->item_render) { + item->item_render = gs_texrender_create(GS_RGBA, GS_ZS_NONE); + } + + obs_leave_graphics(); + + update_item_transform(item); +} + +enum obs_scale_type obs_sceneitem_get_scale_filter( + obs_sceneitem_t *item) +{ + return obs_ptr_valid(item, "obs_sceneitem_get_scale_filter") ? + item->scale_filter : OBS_SCALE_DISABLE; +} + void obs_sceneitem_defer_update_begin(obs_sceneitem_t *item) { if (!obs_ptr_valid(item, "obs_sceneitem_defer_update_begin")) diff --git a/libobs/obs-scene.h b/libobs/obs-scene.h index 3c953a3..8dbe8b8 100644 --- a/libobs/obs-scene.h +++ b/libobs/obs-scene.h @@ -40,7 +40,7 @@ struct obs_scene_item { bool visible; bool selected; - gs_texrender_t *crop_render; + gs_texrender_t *item_render; struct obs_sceneitem_crop crop; struct vec2 pos; @@ -53,6 +53,9 @@ struct obs_scene_item { uint32_t last_width; uint32_t last_height; + struct vec2 output_scale; + enum obs_scale_type scale_filter; + struct matrix4 box_transform; struct matrix4 draw_transform; diff --git a/libobs/obs-service.c b/libobs/obs-service.c index c9ef6b3..9a4a4e9 100644 --- a/libobs/obs-service.c +++ b/libobs/obs-service.c @@ -66,8 +66,7 @@ static obs_service_t *obs_service_create_internal(const char *id, &obs->data.services_mutex, &obs->data.first_service); - blog(private ? LOG_DEBUG : LOG_INFO, "service '%s' (%s) created", - name, id); + blog(LOG_DEBUG, "service '%s' (%s) created", name, id); return service; } @@ -92,8 +91,7 @@ static void actually_destroy_service(struct obs_service *service) if (service->output) service->output->service = NULL; - blog(service->context.private ? LOG_DEBUG : LOG_INFO, - "service '%s' destroyed", service->context.name); + blog(LOG_DEBUG, "service '%s' destroyed", service->context.name); obs_context_data_free(&service->context); if (service->owns_info_id) diff --git a/libobs/obs-source-transition.c b/libobs/obs-source-transition.c index fb079dd..d92be31 100644 --- a/libobs/obs-source-transition.c +++ b/libobs/obs-source-transition.c @@ -99,14 +99,26 @@ void obs_transition_clear(obs_source_t *transition) void add_alignment(struct vec2 *v, uint32_t align, int cx, int cy); +static inline uint32_t get_cx(obs_source_t *tr) +{ + return tr->transition_cx ? + tr->transition_cx : tr->transition_actual_cx; +} + +static inline uint32_t get_cy(obs_source_t *tr) +{ + return tr->transition_cy ? + tr->transition_cy : tr->transition_actual_cy; +} + static void recalculate_transition_matrix(obs_source_t *tr, size_t idx) { obs_source_t *child; struct matrix4 mat; struct vec2 pos; struct vec2 scale; - float tr_cx = (float)tr->transition_actual_cx; - float tr_cy = (float)tr->transition_actual_cy; + float tr_cx = (float)get_cx(tr); + float tr_cy = (float)get_cy(tr); float source_cx; float source_cy; float tr_aspect = tr_cx / tr_cy; @@ -368,6 +380,9 @@ bool obs_transition_start(obs_source_t *transition, obs_source_dosignal(transition, "source_transition_start", "transition_start"); + recalculate_transition_size(transition); + recalculate_transition_matrices(transition); + /* TODO: Add mode */ UNUSED_PARAMETER(mode); return true; @@ -596,8 +611,8 @@ void obs_transition_enum_sources(obs_source_t *transition, static inline void render_child(obs_source_t *transition, obs_source_t *child, size_t idx) { - uint32_t cx = transition->transition_actual_cx; - uint32_t cy = transition->transition_actual_cy; + uint32_t cx = get_cx(transition); + uint32_t cy = get_cy(transition); struct vec4 blank; if (!child) return; @@ -605,6 +620,7 @@ static inline void render_child(obs_source_t *transition, if (gs_texrender_begin(transition->transition_texrender[idx], cx, cy)) { vec4_zero(&blank); gs_clear(GS_CLEAR_COLOR, &blank, 0.0f, 0); + gs_ortho(0.0f, (float)cx, 0.0f, (float)cy, -100.0f, 100.0f); gs_matrix_push(); gs_matrix_mul(&transition->transition_matrices[idx]); @@ -633,6 +649,7 @@ void obs_transition_video_render(obs_source_t *transition, obs_transition_video_render_callback_t callback) { struct transition_state state; + struct matrix4 matrices[2]; bool locked = false; bool stopped = false; bool video_stopped = false; @@ -655,6 +672,8 @@ void obs_transition_video_render(obs_source_t *transition, } } copy_transition_state(transition, &state); + matrices[0] = transition->transition_matrices[0]; + matrices[1] = transition->transition_matrices[1]; unlock_transition(transition); @@ -663,6 +682,8 @@ void obs_transition_video_render(obs_source_t *transition, if (state.transitioning_video && locked && callback) { gs_texture_t *tex[2]; + uint32_t cx; + uint32_t cy; for (size_t i = 0; i < 2; i++) { if (state.s[i]) { @@ -675,17 +696,26 @@ void obs_transition_video_render(obs_source_t *transition, } } - callback(transition->context.data, tex[0], tex[1], t, - transition->transition_actual_cx, - transition->transition_actual_cy); + cx = get_cx(transition); + cy = get_cy(transition); + if (cx && cy) + callback(transition->context.data, tex[0], tex[1], t, + cx, cy); } else if (state.transitioning_audio) { - if (state.s[1]) + if (state.s[1]) { + gs_matrix_push(); + gs_matrix_mul(&matrices[1]); obs_source_video_render(state.s[1]); - + gs_matrix_pop(); + } } else { - if (state.s[0]) + if (state.s[0]) { + gs_matrix_push(); + gs_matrix_mul(&matrices[0]); obs_source_video_render(state.s[0]); + gs_matrix_pop(); + } } if (locked) diff --git a/libobs/obs-source.c b/libobs/obs-source.c index e465dc0..044e688 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -338,7 +338,7 @@ static obs_source_t *obs_source_create_internal(const char *id, if (!source->context.data) blog(LOG_ERROR, "Failed to create source '%s'!", name); - blog(private ? LOG_DEBUG : LOG_INFO, "%ssource '%s' (%s) created", + blog(LOG_DEBUG, "%ssource '%s' (%s) created", private ? "private " : "", name, id); obs_source_dosignal(source, "source_create", NULL); @@ -405,6 +405,14 @@ obs_source_t *obs_source_duplicate(obs_source_t *source, return source; } + if (source->info.type == OBS_SOURCE_TYPE_SCENE) { + obs_scene_t *scene = obs_scene_from_source(source); + obs_scene_t *new_scene = obs_scene_duplicate(scene, new_name, + create_private ? OBS_SCENE_DUP_PRIVATE_COPY : + OBS_SCENE_DUP_COPY); + return obs_scene_get_source(new_scene); + } + settings = obs_data_create(); obs_data_apply(settings, source->context.settings); @@ -482,8 +490,7 @@ void obs_source_destroy(struct obs_source *source) obs_context_data_remove(&source->context); - blog(source->context.private ? LOG_DEBUG : LOG_INFO, - "%ssource '%s' destroyed", + blog(LOG_DEBUG, "%ssource '%s' destroyed", source->context.private ? "private " : "", source->context.name); @@ -882,15 +889,12 @@ void obs_source_activate(obs_source_t *source, enum view_type type) if (!obs_source_valid(source, "obs_source_activate")) return; - if (os_atomic_inc_long(&source->show_refs) == 1) { - obs_source_enum_active_tree(source, show_tree, NULL); - } + os_atomic_inc_long(&source->show_refs); + obs_source_enum_active_tree(source, show_tree, NULL); if (type == MAIN_VIEW) { - if (os_atomic_inc_long(&source->activate_refs) == 1) { - obs_source_enum_active_tree(source, activate_tree, - NULL); - } + os_atomic_inc_long(&source->activate_refs); + obs_source_enum_active_tree(source, activate_tree, NULL); } } @@ -899,12 +903,14 @@ void obs_source_deactivate(obs_source_t *source, enum view_type type) if (!obs_source_valid(source, "obs_source_deactivate")) return; - if (os_atomic_dec_long(&source->show_refs) == 0) { + if (os_atomic_load_long(&source->show_refs) > 0) { + os_atomic_dec_long(&source->show_refs); obs_source_enum_active_tree(source, hide_tree, NULL); } if (type == MAIN_VIEW) { - if (os_atomic_dec_long(&source->activate_refs) == 0) { + if (os_atomic_load_long(&source->activate_refs) > 0) { + os_atomic_dec_long(&source->activate_refs); obs_source_enum_active_tree(source, deactivate_tree, NULL); } @@ -1268,7 +1274,7 @@ static inline bool set_planar420_sizes(struct obs_source *source, size += size/2; source->async_convert_width = frame->width; - source->async_convert_height = (size / frame->width + 1) & 0xFFFFFFFE; + source->async_convert_height = size / frame->width; source->async_texture_format = GS_R8; source->async_plane_offset[0] = (int)(frame->data[1] - frame->data[0]); source->async_plane_offset[1] = (int)(frame->data[2] - frame->data[0]); @@ -1282,7 +1288,7 @@ static inline bool set_nv12_sizes(struct obs_source *source, size += size/2; source->async_convert_width = frame->width; - source->async_convert_height = (size / frame->width + 1) & 0xFFFFFFFE; + source->async_convert_height = size / frame->width; source->async_texture_format = GS_R8; source->async_plane_offset[0] = (int)(frame->data[1] - frame->data[0]); return true; @@ -1857,8 +1863,7 @@ void obs_source_filter_add(obs_source_t *source, obs_source_t *filter) signal_handler_signal(source->context.signals, "filter_add", &cd); if (source && filter) - blog(source->context.private ? LOG_DEBUG : LOG_INFO, - "- filter '%s' (%s) added to source '%s'", + blog(LOG_DEBUG, "- filter '%s' (%s) added to source '%s'", filter->context.name, filter->info.id, source->context.name); } @@ -1894,8 +1899,7 @@ static bool obs_source_filter_remove_refless(obs_source_t *source, signal_handler_signal(source->context.signals, "filter_remove", &cd); if (source && filter) - blog(source->context.private ? LOG_DEBUG : LOG_INFO, - "- filter '%s' (%s) removed from source '%s'", + blog(LOG_DEBUG, "- filter '%s' (%s) removed from source '%s'", filter->context.name, filter->info.id, source->context.name); @@ -2599,7 +2603,8 @@ void obs_source_set_name(obs_source_t *source, const char *name) if (!obs_source_valid(source, "obs_source_set_name")) return; - if (!name || !*name || strcmp(name, source->context.name) != 0) { + if (!name || !*name || !source->context.name || + strcmp(name, source->context.name) != 0) { struct calldata data; char *prev_name = bstrdup(source->context.name); obs_context_data_setname(&source->context, name); @@ -2677,7 +2682,7 @@ bool obs_source_process_filter_begin(obs_source_t *filter, enum obs_allow_direct_render allow_direct) { obs_source_t *target, *parent; - uint32_t target_flags, parent_flags; + uint32_t parent_flags; int cx, cy; if (!obs_ptr_valid(filter, "obs_source_process_filter_begin")) @@ -2697,7 +2702,6 @@ bool obs_source_process_filter_begin(obs_source_t *filter, return false; } - target_flags = target->info.output_flags; parent_flags = parent->info.output_flags; cx = get_base_width(target); cy = get_base_height(target); @@ -2750,7 +2754,7 @@ void obs_source_process_filter_tech_end(obs_source_t *filter, gs_effect_t *effec { obs_source_t *target, *parent; gs_texture_t *texture; - uint32_t target_flags, parent_flags; + uint32_t parent_flags; if (!filter) return; @@ -2760,7 +2764,6 @@ void obs_source_process_filter_tech_end(obs_source_t *filter, gs_effect_t *effec if (!target || !parent) return; - target_flags = target->info.output_flags; parent_flags = parent->info.output_flags; const char *tech = tech_name ? tech_name : "Draw"; @@ -2779,14 +2782,13 @@ void obs_source_process_filter_end(obs_source_t *filter, gs_effect_t *effect, { obs_source_t *target, *parent; gs_texture_t *texture; - uint32_t target_flags, parent_flags; + uint32_t parent_flags; if (!obs_ptr_valid(filter, "obs_source_process_filter_end")) return; target = obs_filter_get_target(filter); parent = obs_filter_get_parent(filter); - target_flags = target->info.output_flags; parent_flags = parent->info.output_flags; if (can_bypass(target, parent, parent_flags, filter->allow_direct)) { @@ -2910,7 +2912,11 @@ static void enum_source_tree_callback(obs_source_t *parent, obs_source_t *child, void *param) { struct source_enum_data *data = param; + bool is_transition = child->info.type == OBS_SOURCE_TYPE_TRANSITION; + if (is_transition) + obs_transition_enum_sources(child, + enum_source_tree_callback, param); if (child->info.enum_active_sources) { if (child->context.data) { child->info.enum_active_sources(child->context.data, diff --git a/libobs/obs-video.c b/libobs/obs-video.c index bc06a2c..6b046a9 100644 --- a/libobs/obs-video.c +++ b/libobs/obs-video.c @@ -126,7 +126,8 @@ static inline gs_effect_t *get_scale_effect_internal( switch (video->scale_type) { case OBS_SCALE_BILINEAR: return video->default_effect; case OBS_SCALE_LANCZOS: return video->lanczos_effect; - case OBS_SCALE_BICUBIC:; + case OBS_SCALE_BICUBIC: + default:; } return video->bicubic_effect; diff --git a/libobs/obs-windows.c b/libobs/obs-windows.c index e282a27..8bc4683 100644 --- a/libobs/obs-windows.c +++ b/libobs/obs-windows.c @@ -163,7 +163,7 @@ static void log_available_memory(void) #ifdef _WIN64 const char *note = ""; #else - const char *note = " (NOTE: 4 gigs max is normal for 32bit programs)"; + const char *note = " (NOTE: 2 or 4 gigs max is normal for 32bit programs)"; #endif blog(LOG_INFO, "Physical Memory: %luMB Total, %luMB Free%s", @@ -181,6 +181,25 @@ static void log_windows_version(void) ver.major, ver.minor, ver.build, ver.revis); } +static void log_admin_status(void) +{ + SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY; + PSID admin_group; + BOOL success; + + success = AllocateAndInitializeSid(&auth, 2, + SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, + 0, 0, 0, 0, 0, 0, &admin_group); + if (success) { + if (!CheckTokenMembership(NULL, admin_group, &success)) + success = false; + FreeSid(admin_group); + } + + blog(LOG_INFO, "Running as administrator: %s", + success ? "true" : "false"); +} + typedef HRESULT (WINAPI *dwm_is_composition_enabled_t)(BOOL*); static void log_aero(void) @@ -219,6 +238,7 @@ void log_system_info(void) log_processor_cores(); log_available_memory(); log_windows_version(); + log_admin_status(); log_aero(); } diff --git a/libobs/obs.c b/libobs/obs.c index 3c93b86..0601343 100644 --- a/libobs/obs.c +++ b/libobs/obs.c @@ -231,6 +231,7 @@ static int obs_init_graphics(struct obs_video_info *ovi) struct obs_core_video *video = &obs->video; uint8_t transparent_tex_data[2*2*4] = {0}; const uint8_t *transparent_tex = transparent_tex_data; + struct gs_sampler_info point_sampler = {0}; bool success = true; int errorcode; @@ -296,6 +297,8 @@ static int obs_init_graphics(struct obs_video_info *ovi) NULL); bfree(filename); + video->point_sampler = gs_samplerstate_create(&point_sampler); + obs->video.transparent_texture = gs_texture_create(2, 2, GS_RGBA, 1, &transparent_tex, 0); @@ -315,6 +318,8 @@ static int obs_init_graphics(struct obs_video_info *ovi) success = false; if (!video->transparent_texture) success = false; + if (!video->point_sampler) + success = false; gs_leave_context(); return success ? OBS_VIDEO_SUCCESS : OBS_VIDEO_FAIL; @@ -459,6 +464,8 @@ static void obs_free_graphics(void) gs_texture_destroy(video->transparent_texture); + gs_samplerstate_destroy(video->point_sampler); + gs_effect_destroy(video->default_effect); gs_effect_destroy(video->default_rect_effect); gs_effect_destroy(video->opaque_effect); diff --git a/libobs/obs.h b/libobs/obs.h index bc2d995..d9ba78b 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -112,6 +112,8 @@ enum obs_allow_direct_render { }; enum obs_scale_type { + OBS_SCALE_DISABLE, + OBS_SCALE_POINT, OBS_SCALE_BICUBIC, OBS_SCALE_BILINEAR, OBS_SCALE_LANCZOS @@ -338,6 +340,9 @@ EXPORT int obs_open_module(obs_module_t **module, const char *path, */ EXPORT bool obs_init_module(obs_module_t *module); +/** Logs loaded modules */ +EXPORT void obs_log_loaded_modules(void); + /** Returns the module file name */ EXPORT const char *obs_get_module_file_name(obs_module_t *module); @@ -1253,6 +1258,11 @@ EXPORT void obs_sceneitem_set_crop(obs_sceneitem_t *item, EXPORT void obs_sceneitem_get_crop(const obs_sceneitem_t *item, struct obs_sceneitem_crop *crop); +EXPORT void obs_sceneitem_set_scale_filter(obs_sceneitem_t *item, + enum obs_scale_type filter); +EXPORT enum obs_scale_type obs_sceneitem_get_scale_filter( + obs_sceneitem_t *item); + EXPORT void obs_sceneitem_defer_update_begin(obs_sceneitem_t *item); EXPORT void obs_sceneitem_defer_update_end(obs_sceneitem_t *item); diff --git a/libobs/util/cf-parser.h b/libobs/util/cf-parser.h index 05b2482..b8538d2 100644 --- a/libobs/util/cf-parser.h +++ b/libobs/util/cf-parser.h @@ -264,6 +264,15 @@ static inline int cf_next_name(struct cf_parser *p, char **dst, return cf_get_name(p, dst, name, goto_token); } +static inline int cf_next_token_copy(struct cf_parser *p, char **dst) +{ + if (!cf_next_valid_token(p)) + return PARSE_EOF; + + cf_copy_token(p, dst); + return PARSE_SUCCESS; +} + static inline int cf_get_name_ref(struct cf_parser *p, struct strref *dst, const char *name, const char *goto_token) { diff --git a/libobs/util/dstr.h b/libobs/util/dstr.h index c367c09..a07ae1c 100644 --- a/libobs/util/dstr.h +++ b/libobs/util/dstr.h @@ -237,9 +237,11 @@ static inline void dstr_copy_dstr(struct dstr *dst, const struct dstr *src) if (dst->array) dstr_free(dst); - dstr_ensure_capacity(dst, src->len + 1); - memcpy(dst->array, src->array, src->len + 1); - dst->len = src->len; + if (src->len) { + dstr_ensure_capacity(dst, src->len + 1); + memcpy(dst->array, src->array, src->len + 1); + dst->len = src->len; + } } static inline void dstr_reserve(struct dstr *dst, const size_t capacity) diff --git a/libobs/util/platform-cocoa.m b/libobs/util/platform-cocoa.m index 7d8b105..29076d6 100644 --- a/libobs/util/platform-cocoa.m +++ b/libobs/util/platform-cocoa.m @@ -69,11 +69,12 @@ uint64_t os_gettime_ns(void) return f(); } -/* gets the location ~/Library/Application Support/[name] */ -int os_get_config_path(char *dst, size_t size, const char *name) +/* gets the location [domain mask]/Library/Application Support/[name] */ +static int os_get_path_internal(char *dst, size_t size, const char *name, + NSSearchPathDomainMask domainMask) { NSArray *paths = NSSearchPathForDirectoriesInDomains( - NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSApplicationSupportDirectory, domainMask, YES); if([paths count] == 0) bcrash("Could not get home directory (platform-cocoa)"); @@ -87,10 +88,11 @@ int os_get_config_path(char *dst, size_t size, const char *name) return snprintf(dst, size, "%s/%s", base_path, name); } -char *os_get_config_path_ptr(const char *name) +static char *os_get_path_ptr_internal(const char *name, + NSSearchPathDomainMask domainMask) { NSArray *paths = NSSearchPathForDirectoriesInDomains( - NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSApplicationSupportDirectory, domainMask, YES); if([paths count] == 0) bcrash("Could not get home directory (platform-cocoa)"); @@ -113,6 +115,26 @@ char *os_get_config_path_ptr(const char *name) return path.array; } +int os_get_config_path(char *dst, size_t size, const char *name) +{ + return os_get_path_internal(dst, size, name, NSUserDomainMask); +} + +char *os_get_config_path_ptr(const char *name) +{ + return os_get_path_ptr_internal(name, NSUserDomainMask); +} + +int os_get_program_data_path(char *dst, size_t size, const char *name) +{ + return os_get_path_internal(dst, size, name, NSLocalDomainMask); +} + +char *os_get_program_data_path_ptr(const char *name) +{ + return os_get_path_ptr_internal(name, NSLocalDomainMask); +} + struct os_cpu_usage_info { int64_t last_cpu_time; int64_t last_sys_time; diff --git a/libobs/util/platform-nix.c b/libobs/util/platform-nix.c index e1bc921..6c7b4ba 100644 --- a/libobs/util/platform-nix.c +++ b/libobs/util/platform-nix.c @@ -49,7 +49,11 @@ void *os_dlopen(const char *path) return NULL; dstr_init_copy(&dylib_name, path); +#ifdef __APPLE__ + if (!dstr_find(&dylib_name, ".so") && !dstr_find(&dylib_name, ".dylib")) +#else if (!dstr_find(&dylib_name, ".so")) +#endif dstr_cat(&dylib_name, ".so"); void *res = dlopen(dylib_name.array, RTLD_LAZY); @@ -68,7 +72,8 @@ void *os_dlsym(void *module, const char *func) void os_dlclose(void *module) { - dlclose(module); + if (module) + dlclose(module); } #if !defined(__APPLE__) @@ -236,6 +241,20 @@ char *os_get_config_path_ptr(const char *name) #endif } +int os_get_program_data_path(char *dst, size_t size, const char *name) +{ + return snprintf(dst, size, "/usr/local/share/%s", !!name ? name : ""); +} + +char *os_get_program_data_path_ptr(const char *name) +{ + size_t len = snprintf(NULL, 0, "/usr/local/share/%s", !!name ? name : ""); + char *str = bmalloc(len + 1); + snprintf(str, len + 1, "/usr/local/share/%s", !!name ? name : ""); + str[len] = 0; + return str; +} + #endif bool os_file_exists(const char *path) diff --git a/libobs/util/platform-windows.c b/libobs/util/platform-windows.c index 119426c..2e33cfa 100644 --- a/libobs/util/platform-windows.c +++ b/libobs/util/platform-windows.c @@ -208,12 +208,13 @@ uint64_t os_gettime_ns(void) return (uint64_t)time_val; } -/* returns %appdata%\[name] on windows */ -int os_get_config_path(char *dst, size_t size, const char *name) +/* returns [folder]\[name] on windows */ +static int os_get_path_internal(char *dst, size_t size, const char *name, + int folder) { wchar_t path_utf16[MAX_PATH]; - SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, + SHGetFolderPathW(NULL, folder, NULL, SHGFP_TYPE_CURRENT, path_utf16); if (os_wcs_to_utf8(path_utf16, 0, dst, size) != 0) { @@ -231,13 +232,13 @@ int os_get_config_path(char *dst, size_t size, const char *name) return -1; } -char *os_get_config_path_ptr(const char *name) +static char *os_get_path_ptr_internal(const char *name, int folder) { char *ptr; wchar_t path_utf16[MAX_PATH]; struct dstr path; - SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, + SHGetFolderPathW(NULL, folder, NULL, SHGFP_TYPE_CURRENT, path_utf16); os_wcs_to_utf8_ptr(path_utf16, 0, &ptr); @@ -247,6 +248,26 @@ char *os_get_config_path_ptr(const char *name) return path.array; } +int os_get_config_path(char *dst, size_t size, const char *name) +{ + return os_get_path_internal(dst, size, name, CSIDL_APPDATA); +} + +char *os_get_config_path_ptr(const char *name) +{ + return os_get_path_ptr_internal(name, CSIDL_APPDATA); +} + +int os_get_program_data_path(char *dst, size_t size, const char *name) +{ + return os_get_path_internal(dst, size, name, CSIDL_COMMON_APPDATA); +} + +char *os_get_program_data_path_ptr(const char *name) +{ + return os_get_path_ptr_internal(name, CSIDL_COMMON_APPDATA); +} + bool os_file_exists(const char *path) { WIN32_FIND_DATAW wfd; diff --git a/libobs/util/platform.c b/libobs/util/platform.c index af031e6..ffccf8a 100644 --- a/libobs/util/platform.c +++ b/libobs/util/platform.c @@ -633,3 +633,26 @@ int os_mkdirs(const char *dir) dstr_free(&dir_str); return ret; } + +const char *os_get_path_extension(const char *path) +{ + struct dstr temp; + size_t pos = 0; + char *period; + char *slash; + + dstr_init_copy(&temp, path); + dstr_replace(&temp, "\\", "/"); + + slash = strrchr(temp.array, '/'); + period = strrchr(temp.array, '.'); + if (period) + pos = (size_t)(period - temp.array); + + dstr_free(&temp); + + if (!period || slash > period) + return NULL; + + return path + pos; +} diff --git a/libobs/util/platform.h b/libobs/util/platform.h index 8081717..b08c40a 100644 --- a/libobs/util/platform.h +++ b/libobs/util/platform.h @@ -108,11 +108,16 @@ EXPORT uint64_t os_gettime_ns(void); EXPORT int os_get_config_path(char *dst, size_t size, const char *name); EXPORT char *os_get_config_path_ptr(const char *name); +EXPORT int os_get_program_data_path(char *dst, size_t size, const char *name); +EXPORT char *os_get_program_data_path_ptr(const char *name); + EXPORT bool os_file_exists(const char *path); EXPORT size_t os_get_abs_path(const char *path, char *abspath, size_t size); EXPORT char *os_get_abs_path_ptr(const char *path); +EXPORT const char *os_get_path_extension(const char *path); + struct os_dir; typedef struct os_dir os_dir_t; diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt index c98b9bc..4185188 100644 --- a/obs/CMakeLists.txt +++ b/obs/CMakeLists.txt @@ -228,7 +228,7 @@ install_obs_core(obs) install_obs_data(obs data obs-studio) if (UNIX AND UNIX_STRUCTURE AND NOT APPLE) - install(FILES dist/obs.desktop DESTINATION share/applications) + install(FILES dist/obs.desktop DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications) install(FILES forms/images/obs.png - DESTINATION share/icons/hicolor/256x256/apps) + DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/icons/hicolor/256x256/apps) endif() diff --git a/obs/audio-encoders.cpp b/obs/audio-encoders.cpp index b1b1d60..09bec9e 100644 --- a/obs/audio-encoders.cpp +++ b/obs/audio-encoders.cpp @@ -189,7 +189,7 @@ static void PopulateBitrateMap() << " kbit/s: '" << EncoderName(entry.second) << "' (" << entry.second << ')'; - blog(LOG_INFO, "AAC encoder bitrate mapping:%s", + blog(LOG_DEBUG, "AAC encoder bitrate mapping:%s", ss.str().c_str()); }); } diff --git a/obs/data/locale.ini b/obs/data/locale.ini index 5c40ddd..0e4e93f 100644 --- a/obs/data/locale.ini +++ b/obs/data/locale.ini @@ -116,4 +116,7 @@ Name=Tiếng Việt Name=தமிழ் [lt-LT] -Name=Lietuvių kalba \ No newline at end of file +Name=Lietuvių kalba + +[et-EE] +Name=eesti keel \ No newline at end of file diff --git a/obs/data/locale/ar-SA.ini b/obs/data/locale/ar-SA.ini index e1d53c5..f1b1678 100644 --- a/obs/data/locale/ar-SA.ini +++ b/obs/data/locale/ar-SA.ini @@ -1,6 +1,6 @@ Language="العربية" -Region="جامعة الدول العربية" +Region="الوطن العربي" OK="موافق" Apply="تطبيق" @@ -91,7 +91,9 @@ Output.ConnectFail.Error="حدث خطأ غير متوقع عند محاولة ا Output.ConnectFail.Disconnected="تم قطع الاتصال من السيرفر." Output.RecordFail.Title="فشل في بدء التسجيل" +Output.RecordNoSpace.Msg="لا توجد مساحة كافية على القرص لمتابعة التسجيل." Output.RecordError.Title="خطأ في التسجيل" +Output.RecordError.Msg="حدث خطأ غير محدد أثناء التسجيل." Output.BadPath.Title="مسار الملف غير صحيح" Output.BadPath.Text="مسار الإخراج ملف تكوين غير صالح. الرجاء التحقق من الإعدادات الخاصة بك للتأكد من أنه تم تعيين مسار ملف صحيح." @@ -109,6 +111,10 @@ LicenseAgreement.Exit="خروج" Remux.SourceFile="تسجيل OBS" Remux.TargetFile="الملف الهدف" Remux.OBSRecording="تسجيل OBS" +Remux.SelectRecording="إختر تسجيل OBS …" +Remux.SelectTarget="إختر الملف الهدف …" +Remux.FileExistsTitle="الملف الهدف موجود" +Remux.FileExists="الملف الهدف موجود، هل تريد استبداله؟" UpdateAvailable="تحديث جديد متوفر" UpdateAvailable.Text="الإصدار %1.%2.%3 متوفر الآن. انقر هنا للتتحميل" @@ -125,6 +131,7 @@ Basic.DisplayCapture="التقاط الشاشة" Basic.Main.PreviewConextMenu.Enable="تمكين المعاينة" + Deinterlacing.Discard="تجاهل" Basic.Main.AddSceneDlg.Title="أضف المشهد" @@ -230,6 +237,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="التحرك &للقمة" Basic.MainMenu.Edit.Order.MoveToBottom="التحرك &للقاع" Basic.MainMenu.Edit.AdvAudio="&خصائص الصوت المتقدمة" + Basic.MainMenu.SceneCollection="&مجموعة المشاهد" Basic.MainMenu.Profile="&الملف الشخصي" @@ -247,6 +255,10 @@ Basic.Settings.Confirm="لديك تغييرات غير محفوظة. هل تري Basic.Settings.General="عام" Basic.Settings.General.Theme="السمة" Basic.Settings.General.Language="اللغة" +Basic.Settings.General.ScreenSnapping="جذب المصادر لحافة الشاشة" +Basic.Settings.General.CenterSnapping="جذب المصادر للمركز العمودي والأفقي" +Basic.Settings.General.SourceSnapping="جذب المصادر للمصادر الأخرى" +Basic.Settings.General.SnapDistance="حساسية الجذب" Basic.Settings.Stream="بث" Basic.Settings.Stream.StreamType="نوع البث" @@ -254,9 +266,22 @@ Basic.Settings.Stream.StreamType="نوع البث" Basic.Settings.Output="المخرج" Basic.Settings.Output.Format="صيغة التسجيل" Basic.Settings.Output.Encoder="مرمّز" +Basic.Settings.Output.SelectDirectory="حدد دليل التسجيل" +Basic.Settings.Output.SelectFile="حدد ملف التسجيل" Basic.Settings.Output.Mode="نوع المخرج" Basic.Settings.Output.Mode.Simple="بسيط" Basic.Settings.Output.Mode.Adv="متقدم" +Basic.Settings.Output.Mode.FFmpeg="مخرج FFmpeg" +Basic.Settings.Output.Simple.SavePath="مسار التسجيل" +Basic.Settings.Output.Simple.RecordingQuality="جودة التسجيل" +Basic.Settings.Output.Simple.RecordingQuality.Small="جودة عالية، حجم ملف متوسط" +Basic.Settings.Output.Simple.RecordingQuality.HQ="جودة لا تُميز، حجم ملف كبير" +Basic.Settings.Output.Simple.RecordingQuality.Lossless="جودة غير فقودة، حجم ملف كبير بشكل هائل" +Basic.Settings.Output.Simple.Warn.Lossless.Msg="هل أنت متأكد أنك تريد استخدام الجودة الغير فقودة؟" +Basic.Settings.Output.Simple.Warn.Lossless.Title="تحذير الجودة الغير فقودة!" +Basic.Settings.Output.Simple.Encoder.Software="برمجية (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="عتاد (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="عتاد (NVENC)" Basic.Settings.Output.VideoBitrate="معدل البت للفيديو" Basic.Settings.Output.AudioBitrate="معدل البت للصوت" Basic.Settings.Output.Reconnect="إعادة الاتصال تلقائياً" @@ -264,6 +289,7 @@ Basic.Settings.Output.RetryDelay="إعادة محاولة تأخير (ثوان)" Basic.Settings.Output.MaxRetries="أقصى عدد للمحاولات" +Basic.Settings.Output.Adv.Recording.Type.Standard="قياسي" Basic.Settings.Output.Adv.FFmpeg.SaveFilter.All="‮كل الملفات" Basic.Settings.Output.Adv.FFmpeg.Format="صيغة الحاوية" diff --git a/obs/data/locale/bg-BG.ini b/obs/data/locale/bg-BG.ini index 1499e6a..fa2a20b 100644 --- a/obs/data/locale/bg-BG.ini +++ b/obs/data/locale/bg-BG.ini @@ -111,6 +111,7 @@ Basic.DisplayCapture="Заснемане на екрана" Basic.Main.PreviewConextMenu.Enable="Разреши преглед" + Basic.Main.AddSceneDlg.Title="Добави сцена" Basic.Main.AddSceneDlg.Text="Моля, въведете името на сцената" @@ -222,6 +223,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Премести &най-отгоре" Basic.MainMenu.Edit.Order.MoveToBottom="Премести най-о&тдолу" + Basic.MainMenu.Help="&Помощ" Basic.MainMenu.Help.Logs="\"Log\" &файлове" Basic.MainMenu.Help.Logs.UploadCurrentLog="Качи &текущия \"Log\" файл" diff --git a/obs/data/locale/ca-ES.ini b/obs/data/locale/ca-ES.ini index 540d82a..beff9c2 100644 --- a/obs/data/locale/ca-ES.ini +++ b/obs/data/locale/ca-ES.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS és actualment actiu. Tots els directes/gravacions s'atur ConfirmRemove.Title="Confirmeu la supressió" ConfirmRemove.Text="Esteu segur que voleu suprimir «$1»?" +ConfirmRemove.TextMultiple="¿Segur que vols esborrar %1 elements?" Output.ConnectFail.Title="Error en connectar" Output.ConnectFail.BadPath="Ruta o adreça URL no vàlida. Si us plau, comproveu la configuració per confirmar que són vàlids." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Captura de pantalla" Basic.Main.PreviewConextMenu.Enable="Habilita la visualització prèvia" +ScaleFiltering="Escala de filtratge" +ScaleFiltering.Point="Punt" +ScaleFiltering.Bilinear="Bilineal" +ScaleFiltering.Bicubic="Bicúbic" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Desentrellaçar" Deinterlacing.Discard="Descarta" Deinterlacing.Retro="Retro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Configuració canviada" Basic.PropertiesWindow.Confirm="Hi ha canvis no desats. Voleu mantenir-los?" Basic.PropertiesWindow.NoProperties="No hi ha propietats disponibles" Basic.PropertiesWindow.AddFiles="Afegeix fitxers" +Basic.PropertiesWindow.AddDir="Afegir directori" Basic.PropertiesWindow.AddURL="Afegeix el camí o l'URL" +Basic.PropertiesWindow.AddEditableListDir="Afegir directori a '%1'" Basic.PropertiesWindow.AddEditableListFiles="Afegeix fitxers a '%1'" Basic.PropertiesWindow.AddEditableListEntry="Afegeix una entrada a '%1'" Basic.PropertiesWindow.EditEditableListEntry="Edita l'entrada de '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="S'està connectant..." Basic.Main.StartRecording="Inicia l'enregistrament" Basic.Main.StartStreaming="Inicia l'enregistrament" Basic.Main.StopRecording="Atura l'enregistrament" +Basic.Main.StoppingRecording="Aturant l'enregistrament..." Basic.Main.StopStreaming="Atura l'enregistrament" +Basic.Main.StoppingStreaming="Aturant la transmissió..." Basic.Main.ForceStopStreaming="Atura l'enregistrament (descarta el retard)" Basic.MainMenu.File="&Fitxer" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mou a la part &superior" Basic.MainMenu.Edit.Order.MoveToBottom="Mou a la part &inferior" Basic.MainMenu.Edit.AdvAudio="&Propietats avançades d'àudio" +Basic.MainMenu.View="Veure" +Basic.MainMenu.View.Toolbars="Barres d'eines" +Basic.MainMenu.View.Toolbars.Listboxes="Quadre de Llista" +Basic.MainMenu.View.SceneTransitions="Transicions d'escena" +Basic.MainMenu.View.StatusBar="Barra d'estat" + Basic.MainMenu.SceneCollection="&Col·lecció d'escenes" Basic.MainMenu.Profile="&Perfil" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Llengua" Basic.Settings.General.WarnBeforeStartingStream="Mostra diàleg de confirmació quan s'iniciï una transmissió" Basic.Settings.General.WarnBeforeStoppingStream="Mostra diàleg de confirmació quan s'aturi una transmissió" +Basic.Settings.General.HideProjectorCursor="Amaga el cursor sobre projectors" Basic.Settings.General.Snapping="Ajustament d'alineació de la font" Basic.Settings.General.ScreenSnapping="Ajustar les fonts a la vora de la pantalla" Basic.Settings.General.CenterSnapping="Ajustar les fonts al centre horitzontal i vertical" Basic.Settings.General.SourceSnapping="Ajustar les fonts a altres fonts" Basic.Settings.General.SnapDistance="Ajusta la sensibilitat" +Basic.Settings.General.RecordWhenStreaming="Enregistra automàticament quan es transmet" +Basic.Settings.General.KeepRecordingWhenStreamStops="Mantenir l'enregistrament quan s'atura la transmissió" Basic.Settings.Stream="Directe" Basic.Settings.Stream.StreamType="Tipus de directe" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Retard de \"prémer-per-parlar\"" Basic.Settings.Audio.UnknownAudioDevice="[Dispositiu no connectat o no disponible]" Basic.Settings.Advanced="Avançat" +Basic.Settings.Advanced.General.ProcessPriority="Prioritat del procés" +Basic.Settings.Advanced.General.ProcessPriority.High="Alta" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Per sobre del normal" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normal" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Inactiva" Basic.Settings.Advanced.FormatWarning="Advertiment: Els formats de color diferents de NV12 estan destinats principalment per a la gravació i no són recomanables quan es fa un directe. Fer un directe pot comportar un major ús de CPU a causa de la conversió de format de color." Basic.Settings.Advanced.Audio.BufferingTime="Temps de buffer d'àudio" Basic.Settings.Advanced.Video.ColorFormat="Format del color" diff --git a/obs/data/locale/cs-CZ.ini b/obs/data/locale/cs-CZ.ini index 9f20351..3ab6a3a 100644 --- a/obs/data/locale/cs-CZ.ini +++ b/obs/data/locale/cs-CZ.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="Ukončením budou všechna vysílání/záznamy zastavena. Jst ConfirmRemove.Title="Potvrzení odebrání" ConfirmRemove.Text="Opravdu si přejete odebrat '$1'?" +ConfirmRemove.TextMultiple="Opravdu si přejete odebrat %1 položky ?" Output.ConnectFail.Title="Spojení se nezdařilo" Output.ConnectFail.BadPath="Chybná cesta nebo adresa připojení. Zkontrolujte, prosím, správnost svých nastavení." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Záznam obrazovky" Basic.Main.PreviewConextMenu.Enable="Povolit náhled" +ScaleFiltering="Filtrování rozsahu" +ScaleFiltering.Point="Bod" +ScaleFiltering.Bilinear="Bilineární" +ScaleFiltering.Bicubic="Bikubický" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Odstranění prokladu" Deinterlacing.Discard="Zahození" Deinterlacing.Retro="Retro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Nastavení upraveno" Basic.PropertiesWindow.Confirm="Chcete ponechat neuložená nastavení ?" Basic.PropertiesWindow.NoProperties="Nejsou k dispozici žádné vlatnosti" Basic.PropertiesWindow.AddFiles="Přidat soubory" +Basic.PropertiesWindow.AddDir="Přidat složku" Basic.PropertiesWindow.AddURL="Přidat cestu/URL" +Basic.PropertiesWindow.AddEditableListDir="Přidat složku do '%1'" Basic.PropertiesWindow.AddEditableListFiles="Přidat soubory do '%1'" Basic.PropertiesWindow.AddEditableListEntry="Přidat položku do '%1'" Basic.PropertiesWindow.EditEditableListEntry="Upravit položku z '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="Připojování..." Basic.Main.StartRecording="Začít nahrávat" Basic.Main.StartStreaming="Začít vysílat" Basic.Main.StopRecording="Zastavit nahrávání" +Basic.Main.StoppingRecording="Zastavuji nahrávání..." Basic.Main.StopStreaming="Zastavit vysílání" +Basic.Main.StoppingStreaming="Zastavuji vysílání..." Basic.Main.ForceStopStreaming="Zastavit vysání (bez zpoždění)" Basic.MainMenu.File="Soubor (&F)" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Posunout na vršek (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="Posunout na spodek (&B)" Basic.MainMenu.Edit.AdvAudio="Rozšířené vl&astnosti zvuku" +Basic.MainMenu.View="Zobrazit (&V)" +Basic.MainMenu.View.Toolbars="Liš&ty nástrojů" +Basic.MainMenu.View.Toolbars.Listboxes="Seznamy (&L)" +Basic.MainMenu.View.SceneTransitions="Pře&chody scény" +Basic.MainMenu.View.StatusBar="&Stavový řádek" + Basic.MainMenu.SceneCollection="Kolekce &scén" Basic.MainMenu.Profile="&Profil" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Vzhled" Basic.Settings.General.Language="Jazyk" Basic.Settings.General.WarnBeforeStartingStream="Vyžadovat potvrzení pro spuštění vysílání" Basic.Settings.General.WarnBeforeStoppingStream="Vyžadovat potvrzení pro ukončení vysílání" +Basic.Settings.General.HideProjectorCursor="Skrýt kurzor přes projektor" Basic.Settings.General.Snapping="Přichycování zdrojů" Basic.Settings.General.ScreenSnapping="Přichytávat zdroje k okraji obrazovky" Basic.Settings.General.CenterSnapping="Přichytávat zdroje k vertikálnímu a horizontálnímu středu" Basic.Settings.General.SourceSnapping="Přichytávat zdroje k ostatním zdrojům" Basic.Settings.General.SnapDistance="Citlivost přichycení" +Basic.Settings.General.RecordWhenStreaming="Automaticky nahrávat při vysílání" +Basic.Settings.General.KeepRecordingWhenStreamStops="Pokračovat v nahrávání i po zastavení vysílání" Basic.Settings.Stream="Vysílání" Basic.Settings.Stream.StreamType="Typ vysílání" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Zpoždění" Basic.Settings.Audio.UnknownAudioDevice="[Zařízení není připojeno nebo není k dispozici]" Basic.Settings.Advanced="Rozšířené" +Basic.Settings.Advanced.General.ProcessPriority="Priorita procesu" +Basic.Settings.Advanced.General.ProcessPriority.High="Vysoká" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Vyšší než normální" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normální" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Nečinný" Basic.Settings.Advanced.FormatWarning="Varování: Jiné formáty barev než je NV12 jsou primárně určeny pro nahrávání a neměly by být použity pro vysílání. Použití při vysílání zvýší využití CPU." Basic.Settings.Advanced.Audio.BufferingTime="Čas vyrovnávací paměti zvuku" Basic.Settings.Advanced.Video.ColorFormat="Formát barev" diff --git a/obs/data/locale/da-DK.ini b/obs/data/locale/da-DK.ini index 7aa3e1e..86f009d 100644 --- a/obs/data/locale/da-DK.ini +++ b/obs/data/locale/da-DK.ini @@ -140,6 +140,7 @@ Basic.DisplayCapture="Indfang display" Basic.Main.PreviewConextMenu.Enable="Aktiver visning" + Deinterlacing="Deinterlacing" Deinterlacing.Discard="Kassér" Deinterlacing.Retro="Retro" @@ -277,6 +278,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Flyt til &Toppen" Basic.MainMenu.Edit.Order.MoveToBottom="Flyt til &Bunden" Basic.MainMenu.Edit.AdvAudio="&Avancerede lydegenskaber" + Basic.MainMenu.SceneCollection="&Scenesamling" Basic.MainMenu.Profile="&Profil" diff --git a/obs/data/locale/de-DE.ini b/obs/data/locale/de-DE.ini index d251c05..5404756 100644 --- a/obs/data/locale/de-DE.ini +++ b/obs/data/locale/de-DE.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS ist derzeit aktiv. Alle Streams/Aufnahmen werden beendet. ConfirmRemove.Title="Entfernen bestätigen" ConfirmRemove.Text="Sind Sie sicher, dass Sie '$1' entfernen möchten?" +ConfirmRemove.TextMultiple="Sind Sie sicher, dass Sie %1 Elemente löschen möchten?" Output.ConnectFail.Title="Verbindung fehlgeschlagen" Output.ConnectFail.BadPath="Ungültiger Pfad oder Verbindungs-URL. Bitte überprüfen Sie Ihre Einstellungen und stellen Sie sicher, dass diese korrekt sind." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Monitoraufnahme" Basic.Main.PreviewConextMenu.Enable="Vorschau aktivieren" +ScaleFiltering="Skalierungsfilterung" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinear" +ScaleFiltering.Bicubic="Bicubic" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Zeilenentflechtung (Deinterlacing)" Deinterlacing.Discard="Verwerfen" Deinterlacing.Retro="Retro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Einstellungen geändert" Basic.PropertiesWindow.Confirm="Es gibt ungesicherte Änderungen. Möchten Sie diese behalten?" Basic.PropertiesWindow.NoProperties="Keine Eigenschaften verfügbar" Basic.PropertiesWindow.AddFiles="Dateien hinzufügen" +Basic.PropertiesWindow.AddDir="Verzeichnis hinzufügen" Basic.PropertiesWindow.AddURL="Pfad/URL hinzufügen" +Basic.PropertiesWindow.AddEditableListDir="Verzeichnis zu '%1' hinzufügen" Basic.PropertiesWindow.AddEditableListFiles="Dateien zu '%1' hinzufügen" Basic.PropertiesWindow.AddEditableListEntry="Eintrag zu '%1' hinzufügen" Basic.PropertiesWindow.EditEditableListEntry="Eintrag aus '%1' bearbeiten" @@ -250,7 +259,9 @@ Basic.Main.Connecting="Verbinden..." Basic.Main.StartRecording="Aufnahme starten" Basic.Main.StartStreaming="Streaming starten" Basic.Main.StopRecording="Aufnahme stoppen" +Basic.Main.StoppingRecording="Stoppe Aufnahme..." Basic.Main.StopStreaming="Streaming stoppen" +Basic.Main.StoppingStreaming="Stoppe Stream..." Basic.Main.ForceStopStreaming="Streaming stoppen (Verzögerung verwerfen)" Basic.MainMenu.File="Datei (&F)" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Ganz nach oben bewegen (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="Ganz nach unten &bewegen" Basic.MainMenu.Edit.AdvAudio="Erweiterte &Audioeigenschaften" +Basic.MainMenu.View="Ansicht (&V)" +Basic.MainMenu.View.Toolbars="Werkzeugleisten (&T)" +Basic.MainMenu.View.Toolbars.Listboxes="&Listenfelder" +Basic.MainMenu.View.SceneTransitions="Szenenübergänge (&c)" +Basic.MainMenu.View.StatusBar="&Statusleiste" + Basic.MainMenu.SceneCollection="&Szenen-Sammlung" Basic.MainMenu.Profile="&Profil" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Motiv" Basic.Settings.General.Language="Sprache" Basic.Settings.General.WarnBeforeStartingStream="Bestätigungsdialog beim Streamstart anzeigen" Basic.Settings.General.WarnBeforeStoppingStream="Bestätigungsdialog beim Streamstop anzeigen" +Basic.Settings.General.HideProjectorCursor="Mauszeiger über Projektoren verstecken" Basic.Settings.General.Snapping="Quellenausrichtung" Basic.Settings.General.ScreenSnapping="Quellen am Bildschirmrand ausrichten" Basic.Settings.General.CenterSnapping="Quellen zur horizontalen und vertikalen Mitte ausrichten" Basic.Settings.General.SourceSnapping="Quellen an anderen Quellen ausrichten" Basic.Settings.General.SnapDistance="Ausrichtungsempfindlichkeit" +Basic.Settings.General.RecordWhenStreaming="Stream automatisch aufnehmen" +Basic.Settings.General.KeepRecordingWhenStreamStops="Weiter aufnehmen, wenn der Livestream stoppt" Basic.Settings.Stream="Stream" Basic.Settings.Stream.StreamType="Stream Typ" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Push-To-Talk Verzögerung" Basic.Settings.Audio.UnknownAudioDevice="[Gerät nicht angeschlossen oder nicht verfügbar]" Basic.Settings.Advanced="Erweitert" +Basic.Settings.Advanced.General.ProcessPriority="Prozesspriorität" +Basic.Settings.Advanced.General.ProcessPriority.High="Hoch" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Höher als normal" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normal" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Niedrig" Basic.Settings.Advanced.FormatWarning="Warnung: Andere Farbformate als NV12 sind in erster Linie für die Aufnahme bestimmt und sind für Streaming nicht zu empfehlen. Die erforderliche Farbformatkonvertierung kann eine erhöhte CPU-Auslastung hervorrufen." Basic.Settings.Advanced.Audio.BufferingTime="Audio Pufferungszeit" Basic.Settings.Advanced.Video.ColorFormat="Farbformat" diff --git a/obs/data/locale/el-GR.ini b/obs/data/locale/el-GR.ini index 26b041c..9412b86 100644 --- a/obs/data/locale/el-GR.ini +++ b/obs/data/locale/el-GR.ini @@ -112,6 +112,7 @@ Basic.DisplayCapture="Σύλληψη Οθόνης" Basic.Main.PreviewConextMenu.Enable="Ενεργοποίηση Προεπισκόπησης" + Basic.Main.AddSceneDlg.Title="Προσθήκη Σκηνής" Basic.Main.AddSceneDlg.Text="Παρακαλώ εισάγετε το όνομα της σκηνής" @@ -231,6 +232,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Μετακίνηση στην Κορυφή( Basic.MainMenu.Edit.Order.MoveToBottom="Μετακίνηση τελέιως Κάτω(&B)" Basic.MainMenu.Edit.AdvAudio="Ιδιότητες(&A) Ήχου για Προχωρημένους" + Basic.MainMenu.SceneCollection="&Συλλογή Σκηνών" Basic.MainMenu.Profile="&Προφίλ" diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini index 90cb492..5be0dc1 100644 --- a/obs/data/locale/en-US.ini +++ b/obs/data/locale/en-US.ini @@ -101,6 +101,7 @@ ConfirmExit.Text="OBS is currently active. All streams/recordings will be shut # confirm delete dialog box ConfirmRemove.Title="Confirm Remove" ConfirmRemove.Text="Are you sure you wish to remove '$1'?" +ConfirmRemove.TextMultiple="Are you sure you wish to remove %1 items?" # output connect messages Output.ConnectFail.Title="Failed to connect" @@ -168,6 +169,13 @@ Basic.DisplayCapture="Display Capture" # display context menu Basic.Main.PreviewConextMenu.Enable="Enable Preview" +# scale filtering +ScaleFiltering="Scale Filtering" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinear" +ScaleFiltering.Bicubic="Bicubic" +ScaleFiltering.Lanczos="Lanczos" + # deinterlacing Deinterlacing="Deinterlacing" Deinterlacing.Discard="Discard" @@ -220,7 +228,9 @@ Basic.PropertiesWindow.ConfirmTitle="Settings Changed" Basic.PropertiesWindow.Confirm="There are unsaved changes. Do you want to keep them?" Basic.PropertiesWindow.NoProperties="No properties available" Basic.PropertiesWindow.AddFiles="Add Files" +Basic.PropertiesWindow.AddDir="Add Directory" Basic.PropertiesWindow.AddURL="Add Path/URL" +Basic.PropertiesWindow.AddEditableListDir="Add directory to '%1'" Basic.PropertiesWindow.AddEditableListFiles="Add files to '%1'" Basic.PropertiesWindow.AddEditableListEntry="Add entry to '%1'" Basic.PropertiesWindow.EditEditableListEntry="Edit entry from '%1'" @@ -291,7 +301,9 @@ Basic.Main.Connecting="Connecting..." Basic.Main.StartRecording="Start Recording" Basic.Main.StartStreaming="Start Streaming" Basic.Main.StopRecording="Stop Recording" +Basic.Main.StoppingRecording="Stopping Recording..." Basic.Main.StopStreaming="Stop Streaming" +Basic.Main.StoppingStreaming="Stopping Stream..." Basic.Main.ForceStopStreaming="Stop Streaming (discard delay)" # basic mode file menu @@ -312,6 +324,7 @@ Basic.MainMenu.Edit.Undo="&Undo" Basic.MainMenu.Edit.Redo="&Redo" Basic.MainMenu.Edit.UndoAction="&Undo $1" Basic.MainMenu.Edit.RedoAction="&Redo $1" +Basic.MainMenu.Edit.LockPreview="&Lock Preview" Basic.MainMenu.Edit.Transform="&Transform" Basic.MainMenu.Edit.Transform.EditTransform="&Edit Transform..." Basic.MainMenu.Edit.Transform.ResetTransform="&Reset Transform" @@ -330,6 +343,13 @@ Basic.MainMenu.Edit.Order.MoveToTop="Move to &Top" Basic.MainMenu.Edit.Order.MoveToBottom="Move to &Bottom" Basic.MainMenu.Edit.AdvAudio="&Advanced Audio Properties" +# basic mode view menu +Basic.MainMenu.View="&View" +Basic.MainMenu.View.Toolbars="&Toolbars" +Basic.MainMenu.View.Toolbars.Listboxes="&Listboxes" +Basic.MainMenu.View.SceneTransitions="S&cene Transitions" +Basic.MainMenu.View.StatusBar="&Status Bar" + # basic mode profile/scene collection menus Basic.MainMenu.SceneCollection="&Scene Collection" Basic.MainMenu.Profile="&Profile" @@ -355,11 +375,14 @@ Basic.Settings.General.Theme="Theme" Basic.Settings.General.Language="Language" Basic.Settings.General.WarnBeforeStartingStream="Show confirmation dialog when starting streams" Basic.Settings.General.WarnBeforeStoppingStream="Show confirmation dialog when stopping streams" +Basic.Settings.General.HideProjectorCursor="Hide cursor over projectors" Basic.Settings.General.Snapping="Source Alignment Snapping" Basic.Settings.General.ScreenSnapping="Snap Sources to edge of screen" Basic.Settings.General.CenterSnapping="Snap Sources to horizontal and vertical center" Basic.Settings.General.SourceSnapping="Snap Sources to other sources" Basic.Settings.General.SnapDistance="Snap Sensitivity" +Basic.Settings.General.RecordWhenStreaming="Automatically record when streaming" +Basic.Settings.General.KeepRecordingWhenStreamStops="Keep recording when stream stops" # basic mode 'stream' settings Basic.Settings.Stream="Stream" @@ -488,6 +511,11 @@ Basic.Settings.Audio.UnknownAudioDevice="[Device not connected or not available] # basic mode 'advanced' settings Basic.Settings.Advanced="Advanced" +Basic.Settings.Advanced.General.ProcessPriority="Process Priority" +Basic.Settings.Advanced.General.ProcessPriority.High="High" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Above Normal" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normal" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Idle" Basic.Settings.Advanced.FormatWarning="Warning: Color formats other than NV12 are primarily intended for recording, and are not recommended when streaming. Streaming may incur increased CPU usage due to color format conversion." Basic.Settings.Advanced.Audio.BufferingTime="Audio Buffering Time" Basic.Settings.Advanced.Video.ColorFormat="Color Format" @@ -499,6 +527,8 @@ Basic.Settings.Advanced.StreamDelay="Stream Delay" Basic.Settings.Advanced.StreamDelay.Duration="Duration (seconds)" Basic.Settings.Advanced.StreamDelay.Preserve="Preserve cutoff point (increase delay) when reconnecting" Basic.Settings.Advanced.StreamDelay.MemoryUsage="Estimated Memory Usage: %1 MB" +Basic.Settings.Advanced.Network="Network" +Basic.Settings.Advanced.Network.BindToIP="Bind to IP" # advanced audio properties Basic.AdvAudio="Advanced Audio Properties" diff --git a/obs/data/locale/es-ES.ini b/obs/data/locale/es-ES.ini index eb8d5c7..20ce8c3 100644 --- a/obs/data/locale/es-ES.ini +++ b/obs/data/locale/es-ES.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS esta siendo usado. Todas las transmisiones/grabaciones ser ConfirmRemove.Title="Confirmar borrado" ConfirmRemove.Text="¿Seguro que desea eliminar '$1'?" +ConfirmRemove.TextMultiple="¿Seguro que quieres eliminar %1 elementos?" Output.ConnectFail.Title="Error al conectarse" Output.ConnectFail.BadPath="URL ruta de acceso o conexión no válida. Por favor, compruebe su configuración para confirmar que está correcta." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Captura de pantalla" Basic.Main.PreviewConextMenu.Enable="Habilitar previsualización" +ScaleFiltering="Escala de filtrado" +ScaleFiltering.Point="Punto" +ScaleFiltering.Bilinear="Bilineal" +ScaleFiltering.Bicubic="Bicúbico" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Desentrelazado" Deinterlacing.Discard="Descartar" Deinterlacing.Retro="Retro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Configuración cambiada" Basic.PropertiesWindow.Confirm="Hay cambios sin guardar. ¿Deseas conservarlos?" Basic.PropertiesWindow.NoProperties="No hay propiedades disponibles" Basic.PropertiesWindow.AddFiles="Agregar archivos" +Basic.PropertiesWindow.AddDir="Añadir Carpeta" Basic.PropertiesWindow.AddURL="Añadir ruta/URL" +Basic.PropertiesWindow.AddEditableListDir="Añadir Carpeta a '%1'" Basic.PropertiesWindow.AddEditableListFiles="Añadir archivos a '%1'" Basic.PropertiesWindow.AddEditableListEntry="Agregar entrada a '%1'" Basic.PropertiesWindow.EditEditableListEntry="Editar entrada de '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="Conectando..." Basic.Main.StartRecording="Iniciar grabación" Basic.Main.StartStreaming="Iniciar Transmisión" Basic.Main.StopRecording="Detener grabación" +Basic.Main.StoppingRecording="Deteniendo la grabación..." Basic.Main.StopStreaming="Detener Transmisión" +Basic.Main.StoppingStreaming="Deteniendo la trasmisión..." Basic.Main.ForceStopStreaming="Parar Transmisión (descartar retraso)" Basic.MainMenu.File="&Archivo" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mover a la &cima" Basic.MainMenu.Edit.Order.MoveToBottom="Mover al &fondo" Basic.MainMenu.Edit.AdvAudio="Propiedades de &Audio avanzadas" +Basic.MainMenu.View="Vista" +Basic.MainMenu.View.Toolbars="&Barra de Herramientas" +Basic.MainMenu.View.Toolbars.Listboxes="&Cuadro de Lista" +Basic.MainMenu.View.SceneTransitions="&Transición de Escenas" +Basic.MainMenu.View.StatusBar="&Barra de Estado" + Basic.MainMenu.SceneCollection="&Colección de Escenas" Basic.MainMenu.Profile="&Perfil" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Idioma" Basic.Settings.General.WarnBeforeStartingStream="Mostrar diálogo de confirmación cuando se inicia una transmisión" Basic.Settings.General.WarnBeforeStoppingStream="Mostrar diálogo de confirmación cuando se para una transmisión" +Basic.Settings.General.HideProjectorCursor="Ocultar el cursor sobre proyectores" Basic.Settings.General.Snapping="Ajuste de alineación de la fuente" Basic.Settings.General.ScreenSnapping="Ajustar las fuentes al borde de la pantalla" Basic.Settings.General.CenterSnapping="Ajustar las fuentes al centro horizontal y vertical" Basic.Settings.General.SourceSnapping="Ajustar las fuentes a otras fuentes" Basic.Settings.General.SnapDistance="Ajustar la sensibilidad" +Basic.Settings.General.RecordWhenStreaming="Grabar automáticamente cuando se transmite" +Basic.Settings.General.KeepRecordingWhenStreamStops="Mantener la grabación cuando se detiene la trasmision" Basic.Settings.Stream="Emision" Basic.Settings.Stream.StreamType="Tipo de Emision" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Retraso de Pulsar para Hablar" Basic.Settings.Audio.UnknownAudioDevice="[Dispositivo no conectado o no está disponible]" Basic.Settings.Advanced="Avanzado" +Basic.Settings.Advanced.General.ProcessPriority="Proceso prioritario" +Basic.Settings.Advanced.General.ProcessPriority.High="Alta" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Mayor a Normal" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normal" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Inactiva" Basic.Settings.Advanced.FormatWarning="ADVERTENCIA: Formatos de Color que no sean NV12 están diseñados principalmente para la grabación y no se recomiendan al retransmitir. La retransmisión puede incurrir en mayor uso de la CPU debido a la conversión de formato de color." Basic.Settings.Advanced.Audio.BufferingTime="Tiempo de búfer de audio" Basic.Settings.Advanced.Video.ColorFormat="Formato de color" diff --git a/obs/data/locale/et-EE.ini b/obs/data/locale/et-EE.ini new file mode 100644 index 0000000..87c0edd --- /dev/null +++ b/obs/data/locale/et-EE.ini @@ -0,0 +1,255 @@ + +Language="Eesti" +Region="Eesti" + +OK="Olgu" +Apply="Rakenda" +Cancel="Loobu" +Close="Sulge" +Save="Salvesta" +Discard="Loobu muudatustest" +Disable="Välja lülitatud" +Yes="Jah" +No="Ei" +Add="Lisa" +Remove="Eemalda" +Rename="Nimeta ümber" +Interact="Kasuta" +Filters="Filtrid" +Properties="Omadused" +MoveUp="Liiguta üles" +MoveDown="Liiguta alla" +Settings="Sätted" +Display="Kuva" +Name="Nimi" +Exit="Välju" +Mixer="Mikser" +Browse="Sirvi" +Mono="Mono" +Stereo="Stereo" +DroppedFrames="Vahele jäetud kaadreid %1 (%2%)" +PreviewProjector="Projektor täisekraanil (eelvaade)" +SceneProjector="Projektor täisekraanil (stseen)" +SourceProjector="Projektor täisekraanil (allikas)" +Clear="Eemalda" +Revert="Tühista" +Show="Näita" +Hide="Peida" +Untitled="Nimetu" +New="Uus" +Duplicate="Tee koopia" +Enable="Sisse lülitatud" +DisableOSXVSync="Lülita OSX V-Sync välja" +ResetOSXVSyncOnExit="Lähtesta OSX V-Sync väljumisel" +HighResourceUsage="Kodeering on ülekoormatud! Proovi kasutada madalamaid videosätteid või kiiremaid kodeerimissätteid." +Transition="Üleminek" +QuickTransitions="Valitud üleminekud" +Left="Vasakult" +Right="Paremalt" +Top="Ülalt" +Bottom="Alt" + +QuickTransitions.SwapScenes="Vaheta üleminekul eelvaade ja väljund" +QuickTransitions.SwapScenesTT="Vahetab pärast üleminekut eelvaate ja väljundi stseenid (kui väljundi esialgne stseen on veel olemas).\nEsialgsele stseenile tehtud muudatusi ei pöörata tagasi." +QuickTransitions.DuplicateScene="Tee stseenist koopia" +QuickTransitions.HotkeyName="Valitud üleminek: %1" + +Basic.AddTransition="Lisa seadistatav üleminek" +Basic.RemoveTransition="Eemalda seadistatav üleminek" +Basic.TransitionProperties="Ülemineku omadused" +Basic.SceneTransitions="Stseeni üleminekud" +Basic.TransitionDuration="Kestus" +Basic.TogglePreviewProgramMode="Stuudiorežiim" + +TransitionNameDlg.Text="Sisesta ülemineku nimi" +TransitionNameDlg.Title="Ülemineku nimi" + +TitleBar.Profile="Profiil" +TitleBar.Scenes="Stseenid" + +NameExists.Title="Nimi on juba kasutusel" +NameExists.Text="See nimi on juba kasutuses." + +NoNameEntered.Title="Palun sisesta sobiv nimi" +NoNameEntered.Text="Tühja nime ei saa kasutada." + +ConfirmStart.Title="Alustada voogedastusega?" +ConfirmStart.Text="Kas soovid kindlasti voogedastust alustada?" + +ConfirmStop.Title="Lõpetada voogedastus?" +ConfirmStop.Text="Kas soovid kindlasti voogedastust lõpetada?" + +ConfirmExit.Title="Kas väljuda OBS-ist?" +ConfirmExit.Text="OBS on hetkel aktiivne. Kõik voogedastused ja salvestused peatatakse. Kas soovid kindlasti väljuda?" + +ConfirmRemove.Title="Ümbernimetamise kinnitamine" +ConfirmRemove.Text="Kas soovid kindlasti eemaldada '$1'?" + +Output.ConnectFail.Title="Ühendamine ei õnnestunud" +Output.ConnectFail.BadPath="Vigane rada või ühenduse URL. Palun veendu, et valitud sätted on õiged." +Output.ConnectFail.ConnectFailed="Serveriga ühendamine ebaõnnestus" + + + + +LicenseAgreement.Exit="Välju" + +Remux.SourceFile="OBS-i salvestus" +Remux.TargetFile="Sihtfail" +Remux.Remux="Konverteeri" +Remux.OBSRecording="OBS-i salvestus" +Remux.FinishedTitle="Konverteerimine valmis" +Remux.Finished="Salvestus on ümber kodeeritud" +Remux.FinishedError="Salvestus on ümber kodeeritud, aga fail võib olla poolik" +Remux.SelectRecording="Vali OBS-i salvestus…" +Remux.SelectTarget="Vali sihtfail…" +Remux.FileExistsTitle="Sihtfail on olemas" +Remux.FileExists="Sihtfail on juba olemas, kas soovid selle asendada?" +Remux.ExitUnfinishedTitle="Kodeerimine on pooleli" +Remux.ExitUnfinished="Kodeerimine ei ole veel lõpetatud. Kui kodeerimine peatada, siis võib sihtfail olla kasutuskõlbmatu.\nKas soovid kindlasti kodeerimise peatada?" + +UpdateAvailable="Värskendus on saadaval" +UpdateAvailable.Text="Saadaval on version %1.%2.%3. Allalaadimiseks vajuta siia" + +Basic.DesktopDevice1="Töölaua heli" +Basic.DesktopDevice2="Töölaua heli 2" + +Basic.Scene="Stseen" + +Basic.Main.PreviewConextMenu.Enable="Lülita eelvaade sisse" + + + +Basic.Main.AddSceneDlg.Title="Stseeni lisamine" +Basic.Main.AddSceneDlg.Text="Sisesta stseeni nimi" + +Basic.Main.DefaultSceneName.Text="Stseen %1" + + + +AddProfile.Title="Profiili lisamine" +AddProfile.Text="Sisesta uue profiili nimi" + +RenameProfile.Title="Profiili ümbernimetamine" + +Basic.Main.PreviewDisabled="Eelvaade on hetkel välja lülitatud" + +Basic.SourceSelect="Loo/vali allikas" +Basic.SourceSelect.CreateNew="Loo uus" +Basic.SourceSelect.AddExisting="Lisa olemasolev" +Basic.SourceSelect.AddVisible="Tee allikas nähtavaks" + +Basic.PropertiesWindow="'%1' omadused" + + + + +Basic.Filters="Filtrid" +Basic.Filters.AudioFilters="Helifiltrid" +Basic.Filters.AddFilter.Title="Filtri nimi" + +Basic.TransformWindow.Rotation="Pööramine" +Basic.TransformWindow.Size="Suurus" +Basic.TransformWindow.Alignment="Joondamine" +Basic.TransformWindow.Crop="Kärbi" + +Basic.TransformWindow.Alignment.TopLeft="Ülale vasakule" +Basic.TransformWindow.Alignment.TopCenter="Ülale keskele" +Basic.TransformWindow.Alignment.TopRight="Ülale paremale" +Basic.TransformWindow.Alignment.CenterLeft="Keskele vasakule" +Basic.TransformWindow.Alignment.Center="Keskele" +Basic.TransformWindow.Alignment.CenterRight="Keskele paremale" +Basic.TransformWindow.Alignment.BottomLeft="Alla vasakule" +Basic.TransformWindow.Alignment.BottomCenter="Alla keskele" +Basic.TransformWindow.Alignment.BottomRight="Alla paremale" + + +Basic.Main.AddSourceHelp.Title="Allikat ei saa lisada" +Basic.Main.AddSourceHelp.Text="Allika lisamiseks peab olema vähemalt üks stseen." + +Basic.Main.Scenes="Stseenid" +Basic.Main.Sources="Allikad" +Basic.Main.Connecting="Ühendamine..." +Basic.Main.StartRecording="Alusta salvestamist" +Basic.Main.StartStreaming="Alusta voogedastust" +Basic.Main.StopRecording="Lõpeta salvestamine" +Basic.Main.StopStreaming="Lõpeta voogedastus" + +Basic.MainMenu.File="&Fail" +Basic.MainMenu.File.Export="&Ekspordi" +Basic.MainMenu.File.Import="&Impordi" +Basic.MainMenu.File.ShowRecordings="Ava salvestuste kaust (&R)" +Basic.MainMenu.File.Settings="&Sätted" +Basic.MainMenu.File.ShowSettingsFolder="Ava sätete kaust" +Basic.MainMenu.File.ShowProfileFolder="Ava profiilide kaust" +Basic.MainMenu.AlwaysOnTop="&Alati pealmine" +Basic.MainMenu.File.Exit="Välju (&X)" + +Basic.MainMenu.Edit="Muuda (&E)" +Basic.MainMenu.Edit.Undo="Võta tagasi (&U)" + + + +Basic.MainMenu.Help.Logs="&Logifailid" +Basic.MainMenu.Help.CheckForUpdates="Otsi värskendusi" + + +Basic.Settings.General.Language="Keel" + +Basic.Settings.Stream="Voogedastus" +Basic.Settings.Stream.StreamType="Voogedastuse tüüp" + +Basic.Settings.Output="Väljund" +Basic.Settings.Output.Format="Salvestusvorming" +Basic.Settings.Output.SelectDirectory="Vali salvestuskaust" +Basic.Settings.Output.Mode="Väljundrežiim" +Basic.Settings.Output.Mode.Simple="Lihtne" +Basic.Settings.Output.Mode.Adv="Täpsemad seaded" +Basic.Settings.Output.Simple.Encoder.Software="Tarkvara (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Riistvara (QSV)" + +Basic.Settings.Output.Adv.AudioTrack="Helirada" +Basic.Settings.Output.Adv.Streaming="Voogedastus" +Basic.Settings.Output.Adv.Audio.Track1="Rada 1" +Basic.Settings.Output.Adv.Audio.Track2="Rada 2" +Basic.Settings.Output.Adv.Audio.Track3="Rada 3" +Basic.Settings.Output.Adv.Audio.Track4="Rada 4" + +Basic.Settings.Output.Adv.Recording="Salvestus" +Basic.Settings.Output.Adv.Recording.Type="Tüüp" +Basic.Settings.Output.Adv.Recording.Filename="Failinime vorming" +Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Kirjuta üle, kui fail on olemas" +Basic.Settings.Output.Adv.FFmpeg.Type="FFmpeg väljundi tüüp" +Basic.Settings.Output.Adv.FFmpeg.Type.URL="Kirjuta URL-ile" +Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Kirjuta faili" +Basic.Settings.Output.Adv.FFmpeg.SaveFilter.All="Kõik failid" +Basic.Settings.Output.Adv.FFmpeg.SavePathURL="Faili rada või URL" +Basic.Settings.Output.Adv.FFmpeg.FormatAudio="Heli" +Basic.Settings.Output.Adv.FFmpeg.FormatVideo="Video" +Basic.Settings.Output.Adv.FFmpeg.FormatDefault="Vaikevorming" + + + +Basic.Settings.Video="Video" +Basic.Settings.Video.Adapter="Kuvaadapter:" +Basic.Settings.Video.Numerator="Lugeja:" +Basic.Settings.Video.Denominator="Nimetaja:" +Basic.Settings.Video.InvalidResolution="Eraldusvõime ei sobi. See peab olema kujul [width]x[height] (nt 1920x1080)" + + + +Basic.Settings.Advanced.Video.ColorRange.Partial="Osaline" +Basic.Settings.Advanced.Video.ColorRange.Full="Täielik" + +Basic.AdvAudio.Name="Nimi" +Basic.AdvAudio.Volume="Helitugevus (%)" +Basic.AdvAudio.AudioTracks="Rajad" + + + +Hotkeys.Insert="Sisesta" +Hotkeys.Delete="Kustuta" + + + + diff --git a/obs/data/locale/eu-ES.ini b/obs/data/locale/eu-ES.ini index 73e37f5..97586a9 100644 --- a/obs/data/locale/eu-ES.ini +++ b/obs/data/locale/eu-ES.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS jardunean dago. Transmisio/grabazio guztiak itzaliko dira. ConfirmRemove.Title="Baieztatu kentzea" ConfirmRemove.Text="Ziur zaude '$1' kendu nahi duzula?" +ConfirmRemove.TextMultiple="Seguru zaude %1 elementuak ezabatu nahi dituzula?" Output.ConnectFail.Title="Huts egin du konektatzean" Output.ConnectFail.BadPath="Helburu edo konexio-URL okerra. Egiaztatu zure ezarpenak baliozkoak direla baieztatzeko." @@ -117,8 +118,8 @@ LicenseAgreement.Exit="Irten" Remux.SourceFile="OBS Grabazioa" Remux.TargetFile="Helburu-fitxategia" -Remux.Remux="Bermultiplexatu" -Remux.OBSRecording="OBS Grabazioa" +Remux.Remux="Multiplexatu" +Remux.OBSRecording="OBS grabazioa" Remux.FinishedTitle="Bihurketa amaituta" Remux.Finished="Grabazioa bihurtuta" Remux.FinishedError="Grabazioa bihurtua, baina fitxategia osatu gabe egon daiteke" @@ -126,7 +127,7 @@ Remux.SelectRecording="Hautatu OBS grabazioa…" Remux.SelectTarget="Hautatu helburu-fitxategia…" Remux.FileExistsTitle="Helburu-fitxategia badago" Remux.FileExists="Helburu-fitxategia badago, ordeztea nahi duzu?" -Remux.ExitUnfinishedTitle="Bermultiplexaketa garatzen" +Remux.ExitUnfinishedTitle="Multiplexazioa martxan" Remux.ExitUnfinished="Bihurketa ez da amaitu, orain gelditzeak fitxategi-helburua erabiltezin bihur dezake.\nZiur zaude bihurtzea gelditu nahi duzula?" UpdateAvailable="Eguneraketa eskuragarria" @@ -134,16 +135,22 @@ UpdateAvailable.Text="%1.%2.%3 bertsioa eskuragarri dago. Klikatu Basic.DesktopDevice1="Mahaigaineko audioa" Basic.DesktopDevice2="Mahaigaineko audioa 2" -Basic.AuxDevice1="Mik/Osag" -Basic.AuxDevice2="Mik/Osag 2" +Basic.AuxDevice1="Mikro/Osag" +Basic.AuxDevice2="Mikro/Osag 2" Basic.AuxDevice3="Mik/Osag 3" -Basic.AuxDevice4="Mik/Osag 4" +Basic.AuxDevice4="Mikro/Osag 4" Basic.Scene="Eszena" Basic.DisplayCapture="Pantaila-kaptura" Basic.Main.PreviewConextMenu.Enable="Gaitu aurrebista" +ScaleFiltering="Eskalaren iragazketa" +ScaleFiltering.Point="Puntua" +ScaleFiltering.Bilinear="Bilineala" +ScaleFiltering.Bicubic="Bikubikoa" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Desgurutzelarkatzea" Deinterlacing.Discard="Baztertu" Deinterlacing.Retro="Retro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Ezarpenak aldatuta" Basic.PropertiesWindow.Confirm="Gorde gabeko aldaketak daude. Nahi duzu dagoena mantentzea?" Basic.PropertiesWindow.NoProperties="Ezaugarriak ez daude eskuragarri" Basic.PropertiesWindow.AddFiles="Gehitu fitxategiak" +Basic.PropertiesWindow.AddDir="Gehitu direktorioa" Basic.PropertiesWindow.AddURL="Gehitu bidea/URL-a" +Basic.PropertiesWindow.AddEditableListDir="Gehitu direktorioa '%1'-ra" Basic.PropertiesWindow.AddEditableListFiles="Gehitu fitxategiak '%1'-ra" Basic.PropertiesWindow.AddEditableListEntry="Gehitu sarrera '%1'-ra" Basic.PropertiesWindow.EditEditableListEntry="Editatu sarrera '%1'-tik" @@ -250,14 +259,16 @@ Basic.Main.Connecting="Konektatzen..." Basic.Main.StartRecording="Hasi grabazioa" Basic.Main.StartStreaming="Hasi transmisioa" Basic.Main.StopRecording="Gelditu grabazioa" +Basic.Main.StoppingRecording="Grabazioa gelditzen..." Basic.Main.StopStreaming="Gelditu transmisioa" +Basic.Main.StoppingStreaming="Transmisioa gelditzen..." Basic.Main.ForceStopStreaming="Gelditu transmisioa (baztertu atzerapena)" Basic.MainMenu.File="&Fitxategia" Basic.MainMenu.File.Export="&Esportatu" Basic.MainMenu.File.Import="&Inportatu" -Basic.MainMenu.File.ShowRecordings="Erakutsi &Grabazioak" -Basic.MainMenu.File.Remux="&Bermultiplexaketa Grabaketak" +Basic.MainMenu.File.ShowRecordings="Erakutsi &grabazioak" +Basic.MainMenu.File.Remux="Multiplexatu grabazioak" Basic.MainMenu.File.Settings="&Ezarpenak" Basic.MainMenu.File.ShowSettingsFolder="Erakutsi ezarpenen karpeta" Basic.MainMenu.File.ShowProfileFolder="Erakutsi profilaren karpeta" @@ -270,10 +281,10 @@ Basic.MainMenu.Edit.Redo="&Berregin" Basic.MainMenu.Edit.UndoAction="&Desegin $1" Basic.MainMenu.Edit.RedoAction="&Berregin $1" Basic.MainMenu.Edit.Transform="&Eraldatu" -Basic.MainMenu.Edit.Transform.EditTransform="E&ditatu Eraldaketa..." -Basic.MainMenu.Edit.Transform.ResetTransform="&Berrezarri Eraldaketa" +Basic.MainMenu.Edit.Transform.EditTransform="E&ditatu eraldaketa..." +Basic.MainMenu.Edit.Transform.ResetTransform="&Berrezarri eraldaketa" Basic.MainMenu.Edit.Transform.Rotate90CW="Biratu 90 gradu erlojuaren norabidean" -Basic.MainMenu.Edit.Transform.Rotate90CCW="Itzulikatu 90 gradu erlojuaren kontrako norabidean" +Basic.MainMenu.Edit.Transform.Rotate90CCW="Biratu 90 gradu erlojuaren kontrako norabidean" Basic.MainMenu.Edit.Transform.Rotate180="Biratu 180 gradu" Basic.MainMenu.Edit.Transform.FlipHorizontal="Irauli &horizontala" Basic.MainMenu.Edit.Transform.FlipVertical="Irauli &bertikala" @@ -287,11 +298,17 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mugitu &goraino" Basic.MainMenu.Edit.Order.MoveToBottom="Mugitu &beheraino" Basic.MainMenu.Edit.AdvAudio="&Audio ezarpen aurreratuak" +Basic.MainMenu.View="Ikusi" +Basic.MainMenu.View.Toolbars="&Tresna barrak" +Basic.MainMenu.View.Toolbars.Listboxes="&Zerrenda-kutxak" +Basic.MainMenu.View.SceneTransitions="&Eszenen trantsizioak" +Basic.MainMenu.View.StatusBar="Egoera-barra" + Basic.MainMenu.SceneCollection="&Eszena-bilduma" Basic.MainMenu.Profile="&Profila" Basic.MainMenu.Help="&Laguntza" -Basic.MainMenu.Help.Website="Ikusi &Webgunea" +Basic.MainMenu.Help.Website="Ikusi &webgunea" Basic.MainMenu.Help.Logs="&Egunkari-fitxategiak" Basic.MainMenu.Help.Logs.ShowLogs="&Erakutsi egunkari-fitxategiak" Basic.MainMenu.Help.Logs.UploadCurrentLog="Kargatu &uneko egunkari-fitxategiak" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Gaia" Basic.Settings.General.Language="Hizkuntza" Basic.Settings.General.WarnBeforeStartingStream="Erakutsi baieztapen elkarrizketa transmisioak hasterakoan" Basic.Settings.General.WarnBeforeStoppingStream="Erakutsi baieztapen elkarrizketa transmisioak gelditzerakoan" +Basic.Settings.General.HideProjectorCursor="Ezkutatu kurtsorea proiekzioetan" Basic.Settings.General.Snapping="Iturburuaren lerrokatzearen doitzea" Basic.Settings.General.ScreenSnapping="Doitu iturburuak pantailaren ertzera" Basic.Settings.General.CenterSnapping="Doitu iturburuak bertikalki eta horizontalki erdira" Basic.Settings.General.SourceSnapping="Doitu iturburuak beste iturburuetara" Basic.Settings.General.SnapDistance="Doitu sentikortasuna" +Basic.Settings.General.RecordWhenStreaming="Grabatu automatikoki transmisioa egitean" +Basic.Settings.General.KeepRecordingWhenStreamStops="Mantendu grabazioa transmisioa gelditzean" Basic.Settings.Stream="Transmisioa" Basic.Settings.Stream.StreamType="Transmisio-mota" @@ -370,7 +390,7 @@ Basic.Settings.Output.Adv.Recording.Type.Standard="Estandarra" Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Irteera pertsonalizatua (FFmpeg)" Basic.Settings.Output.Adv.Recording.UseStreamEncoder="(Erabili transmisio kodetzailea)" Basic.Settings.Output.Adv.Recording.Filename="Fitxategi-izenaren formatua" -Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Gainidatzi fitxategia badago" +Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Gainidatzi fitxategia" Basic.Settings.Output.Adv.FFmpeg.Type="FFmpeg Irteera-mota" Basic.Settings.Output.Adv.FFmpeg.Type.URL="Irteera URL-ra" Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Irteera fitxategira" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Sakatu-hitz-egiteko atzerapena" Basic.Settings.Audio.UnknownAudioDevice="[Gailua konektatu gabe edo ez dago eskuragarri]" Basic.Settings.Advanced="Aurreratua" +Basic.Settings.Advanced.General.ProcessPriority="Prozesuaren lehentasuna" +Basic.Settings.Advanced.General.ProcessPriority.High="Altua" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Normala baino handiagoa" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normala" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Inaktiboa" Basic.Settings.Advanced.FormatWarning="Oharra: NV12 ez diren kolore formatuak grabaziorako dira gehienbat, eta ez daude gomendatuta transmisiorako. Transmisioak PUZ erabilpena handitu dezake kolore formatu bihurketa dela medio." Basic.Settings.Advanced.Audio.BufferingTime="Audio bufferratze denbora" Basic.Settings.Advanced.Video.ColorFormat="Kolore formatua" diff --git a/obs/data/locale/fi-FI.ini b/obs/data/locale/fi-FI.ini index dc3ba0d..5d623f8 100644 --- a/obs/data/locale/fi-FI.ini +++ b/obs/data/locale/fi-FI.ini @@ -87,12 +87,13 @@ ConfirmExit.Text="OBS on aktiivinen. Kaikki lähetykset/tallennukset suljetaan. ConfirmRemove.Title="Vahvista poisto" ConfirmRemove.Text="Haluatko varmasti poistaa '$1'?" +ConfirmRemove.TextMultiple="Haluatko varmasti poistaa %1 kohdetta?" Output.ConnectFail.Title="Yhdistäminen epäonnistui" Output.ConnectFail.BadPath="Viallinen polku tai yhteysosoite. Tarkista, että asetuksesi ovat kunnossa." Output.ConnectFail.ConnectFailed="Palvelimelle yhdistäminen epäonnistui" Output.ConnectFail.InvalidStream="Kanavaa tai lähetysavainta ei voida käyttää. Tarkista lähetysavain varmuuden vuoksi. Jos se kuitenkin on oikein, vika saattaa olla yhdistettävässä palvelimessa." -Output.ConnectFail.Error="Odottamaton virhe ilmeni, kun palvelimelle yritettiin yhdistää. Lisää tietoa saat lokitiedostosta." +Output.ConnectFail.Error="Odottamaton virhe ilmeni palvelimeen yhdistäessä. Lisää tietoa saat lokitiedostosta." Output.ConnectFail.Disconnected="Yhteys palvelimeen katkaistiin." Output.RecordFail.Title="Tallennuksen aloittaminen epäonnistui" @@ -127,7 +128,7 @@ Remux.SelectTarget="Valitse kohdetiedosto ..." Remux.FileExistsTitle="Kohdetiedosto on jo olemassa" Remux.FileExists="Kohdetiedosto on jo olemassa, haluatko korvata sen?" Remux.ExitUnfinishedTitle="Muunto on käynnissä" -Remux.ExitUnfinished="Muunto ei ole valmis. Jos keskeytät nyt, kohdetiedostosta saattaa tulla käyttökelvoton.\nHaluatko varmasti pysäyttää remuxauksen?" +Remux.ExitUnfinished="Muunto ei ole valmis. Jos keskeytät nyt, kohdetiedostosta saattaa tulla käyttökelvoton.\nHaluatko varmasti pysäyttää muunnon?" UpdateAvailable="Uusi päivitys saatavilla" UpdateAvailable.Text="Versio %1.%2.%3 on nyt saatavilla. Lataa tästä" @@ -140,10 +141,12 @@ Basic.AuxDevice3="Mic/Aux 3" Basic.AuxDevice4="Mic/Aux 4" Basic.Scene="Skene" -Basic.DisplayCapture="Kaappaa monitori" +Basic.DisplayCapture="Monitori" Basic.Main.PreviewConextMenu.Enable="Näytä esikatselu" +ScaleFiltering="Asteikko suodatus" + Deinterlacing="Lomituksen poisto (Deinterlace)" Deinterlacing.Discard="Ohita" Deinterlacing.Retro="Retro" @@ -186,7 +189,9 @@ Basic.PropertiesWindow.ConfirmTitle="Asetukset ovat muuttuneet" Basic.PropertiesWindow.Confirm="Muutoksia ei ole vielä tallennettu. Haluatko pitää muutokset?" Basic.PropertiesWindow.NoProperties="Ominaisuuksia ei ole saatavilla" Basic.PropertiesWindow.AddFiles="Lisää tiedostoja" +Basic.PropertiesWindow.AddDir="Lisää kansio" Basic.PropertiesWindow.AddURL="Lisää polku/URL-osoite" +Basic.PropertiesWindow.AddEditableListDir="Lisää kansio \"%1\":n" Basic.PropertiesWindow.AddEditableListFiles="Lisää tiedostoja '%1'" Basic.PropertiesWindow.AddEditableListEntry="Lisää merkintä '%1'" Basic.PropertiesWindow.EditEditableListEntry="Muokkaa merkintää '%1'" @@ -228,7 +233,7 @@ Basic.TransformWindow.Alignment.TopCenter="Yläkeski" Basic.TransformWindow.Alignment.TopRight="Yläoikea" Basic.TransformWindow.Alignment.CenterLeft="Keskivasen" Basic.TransformWindow.Alignment.Center="Keskellä" -Basic.TransformWindow.Alignment.CenterRight="Keskioieka" +Basic.TransformWindow.Alignment.CenterRight="Keskioikea" Basic.TransformWindow.Alignment.BottomLeft="Alavasen" Basic.TransformWindow.Alignment.BottomCenter="Alakeski" Basic.TransformWindow.Alignment.BottomRight="Alaoikea" @@ -242,7 +247,7 @@ Basic.TransformWindow.BoundsType.ScaleToHeight="Skaalaa korkeuden rajoihin" Basic.TransformWindow.BoundsType.Stretch="Venytä rajoihin" Basic.Main.AddSourceHelp.Title="Lähdettä ei voi lisätä" -Basic.Main.AddSourceHelp.Text="Tarvitset vähintään yhden skenen, jotta voit lisätä lähteen." +Basic.Main.AddSourceHelp.Text="Tarvitset vähintään yhden skenen lisätäksesi lähteen." Basic.Main.Scenes="Skenet" Basic.Main.Sources="Lähteet" @@ -250,7 +255,9 @@ Basic.Main.Connecting="Yhdistetään..." Basic.Main.StartRecording="Aloita tallennus" Basic.Main.StartStreaming="Aloita lähetys" Basic.Main.StopRecording="Pysäytä tallennus" +Basic.Main.StoppingRecording="Pysäytetään tallennusta..." Basic.Main.StopStreaming="Pysäytä lähetys" +Basic.Main.StoppingStreaming="Pysäytetään lähetystä..." Basic.Main.ForceStopStreaming="Lopeta lähetys (ohita viive)" Basic.MainMenu.File="&Tiedosto" @@ -272,9 +279,9 @@ Basic.MainMenu.Edit.RedoAction="T&ee uudelleen $1" Basic.MainMenu.Edit.Transform="Muu&nna" Basic.MainMenu.Edit.Transform.EditTransform="M&uokkaa muunnosta..." Basic.MainMenu.Edit.Transform.ResetTransform="&Nollaa muunnos" -Basic.MainMenu.Edit.Transform.Rotate90CW="Pyöritä 90 astetta myötäpäivään" -Basic.MainMenu.Edit.Transform.Rotate90CCW="Pyöritä 90 astetta vastapäivään" -Basic.MainMenu.Edit.Transform.Rotate180="Pyöritä 180 astetta" +Basic.MainMenu.Edit.Transform.Rotate90CW="Kierrä 90 astetta myötäpäivään" +Basic.MainMenu.Edit.Transform.Rotate90CCW="Kierrä 90 astetta vastapäivään" +Basic.MainMenu.Edit.Transform.Rotate180="Kierrä 180 astetta" Basic.MainMenu.Edit.Transform.FlipHorizontal="Käännä &vaakatasossa" Basic.MainMenu.Edit.Transform.FlipVertical="Käännä &pystytasossa" Basic.MainMenu.Edit.Transform.FitToScreen="&Sovita ikkunaan" @@ -287,6 +294,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Siirrä &ylimmäksi" Basic.MainMenu.Edit.Order.MoveToBottom="Siirrä &alimmaksi" Basic.MainMenu.Edit.AdvAudio="&Äänen lisäominaisuudet" +Basic.MainMenu.View="&Näkymät" +Basic.MainMenu.View.Toolbars="&Työkalurivit" +Basic.MainMenu.View.Toolbars.Listboxes="&Luetteluruudut" +Basic.MainMenu.View.SceneTransitions="&Skene-siirtymät" +Basic.MainMenu.View.StatusBar="&Tilapalkki" + Basic.MainMenu.SceneCollection="&Skene-kokoelma" Basic.MainMenu.Profile="&Profiili" @@ -296,10 +309,10 @@ Basic.MainMenu.Help.Logs="&Lokitiedostot" Basic.MainMenu.Help.Logs.ShowLogs="&Näytä lokitiedostot" Basic.MainMenu.Help.Logs.UploadCurrentLog="Lähetä n&ykyinen lokitiedosto" Basic.MainMenu.Help.Logs.UploadLastLog="Lähetä edellinen lokitiedosto" -Basic.MainMenu.Help.Logs.ViewCurrentLog="&Katso nykyinen loki" +Basic.MainMenu.Help.Logs.ViewCurrentLog="Näytä ny&kyinen loki" Basic.MainMenu.Help.CheckForUpdates="Tarkista päivitykset" -Basic.Settings.ProgramRestart="Ohjelma pitää käynnistää uudelleen, jotta asetukset tulevat voimaan." +Basic.Settings.ProgramRestart="Ohjelma on käynnistettävä uudelleen, jotta asetukset tulevat voimaan." Basic.Settings.ConfirmTitle="Vahvista muutokset" Basic.Settings.Confirm="Sinulla on tallentamattomia muutoksia. Tallennetaanko?" @@ -307,12 +320,14 @@ Basic.Settings.General="Yleiset" Basic.Settings.General.Theme="Teema" Basic.Settings.General.Language="Kieli" Basic.Settings.General.WarnBeforeStartingStream="Näytä varmistus-ikkuna kun lähetys aloitetaan" -Basic.Settings.General.WarnBeforeStoppingStream="Näytä varmistusikkuna kun lähetys pysäytetään" +Basic.Settings.General.WarnBeforeStoppingStream="Näytä varmistus-ikkuna kun lähetys pysäytetään" Basic.Settings.General.Snapping="Lähteiden kiinnitys" Basic.Settings.General.ScreenSnapping="Kiinnitä lähteitä ruudun reunaan" Basic.Settings.General.CenterSnapping="Kiinnitä lähteitä vaaka- sekä pystysuunnan keskilinjaan" Basic.Settings.General.SourceSnapping="Kiinnitä lähteitä muihin lähteisiin" Basic.Settings.General.SnapDistance="Kiinnityksen herkkyys" +Basic.Settings.General.RecordWhenStreaming="Tallenna automaattisesti kun lähetetään" +Basic.Settings.General.KeepRecordingWhenStreamStops="Jatka tallennusta lähetyksen loputtua" Basic.Settings.Stream="Lähetys" Basic.Settings.Stream.StreamType="Lähetystyyppi" @@ -329,10 +344,10 @@ Basic.Settings.Output.Mode.Adv="Kehittynyt" Basic.Settings.Output.Mode.FFmpeg="FFmpeg ulostulo" Basic.Settings.Output.Simple.SavePath="Tallennuksen polku" Basic.Settings.Output.Simple.RecordingQuality="Tallennuksen laatu" -Basic.Settings.Output.Simple.RecordingQuality.Stream="Lähetyksen laatu" +Basic.Settings.Output.Simple.RecordingQuality.Stream="Sama kuin lähetyksessä" Basic.Settings.Output.Simple.RecordingQuality.Small="Korkea laatu, keskikokoinen tiedostokoko" Basic.Settings.Output.Simple.RecordingQuality.HQ="Erottamaton laatu, suuri tiedostokoko" -Basic.Settings.Output.Simple.RecordingQuality.Lossless="Häviötön laatu, jättimäinen tiedostokoko" +Basic.Settings.Output.Simple.RecordingQuality.Lossless="Häviötön laatu, valtava tiedostokoko" Basic.Settings.Output.Simple.Warn.VideoBitrate="Varoitus: Kuvan bitrate asetetaan arvoon %1, joka on yläraja valitsemassasi palvelussa. Jos haluat varmasti mennä %1:n yli, poista valinta lisäasetuksista kohdasta \"Rajoita bitrate lähetyspalvelun suosituksiin\"." Basic.Settings.Output.Simple.Warn.AudioBitrate="Varoitus: Äänen bitrate asetetaan arvoon %1, joka on yläraja valitsemassasi palvelussa. Jos haluat varmasti mennä %1:n yli, poista valinta lisäasetuksista kohdasta \"Rajoita bitrate lähetyspalvelun suosituksiin\"." Basic.Settings.Output.Simple.Warn.Encoder="Varoitus: Tallentaminen lähetyksestä eroavalla laadulla vaatii prosessorilta lisätyötä jos lähetät ja tallennat samanaikaisesti." @@ -340,20 +355,20 @@ Basic.Settings.Output.Simple.Warn.Lossless="Varoitus: Häviötön laatu luo jär Basic.Settings.Output.Simple.Warn.Lossless.Msg="Haluatko varmasti käyttää häviötöntä laatua?" Basic.Settings.Output.Simple.Warn.Lossless.Title="Häviötön laatu!" Basic.Settings.Output.Simple.Warn.MultipleQSV="Varoitus: Et voi käyttää useampaa QSV-enkooderia lähettäessä ja tallentaessa samaan aikaan. Jos haluat tehdä molempia yhtä aikaa, vaihda lähetys tai tallennus-enkooderi." -Basic.Settings.Output.Simple.Encoder.Software="Software (x264)" -Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Laitteisto (QSV)" -Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Laitteisto (NVENC)" -Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 matala CPU-käyttö, lisää tiedostokokoa)" +Basic.Settings.Output.Simple.Encoder.Software="Ohjelmistopohjainen (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Laitteistopohjainen (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Laitteistopohjainen (NVENC)" +Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Ohjelmistopohjainen (x264 matala CPU-käyttö, lisää tiedostokokoa)" Basic.Settings.Output.VideoBitrate="Kuvan bitrate" Basic.Settings.Output.AudioBitrate="Äänen bitrate" Basic.Settings.Output.Reconnect="Automaattinen uudelleenyhdistys" Basic.Settings.Output.RetryDelay="Uudelleenyrityksen viive (sekunteja)" Basic.Settings.Output.MaxRetries="Uudelleenyhdistyksien määrä" Basic.Settings.Output.Advanced="Käytä enkooderin lisäasetuksia" -Basic.Settings.Output.EncoderPreset="Enkooderin asetus (korkeampi lisää tehon kulutusta)" -Basic.Settings.Output.CustomEncoderSettings="Valinnaiset enkooderiasetukset" -Basic.Settings.Output.CustomMuxerSettings="Valinnaiset muuntaja-asetukset" -Basic.Settings.Output.NoSpaceFileName="Generoi tiedostonimi ilman välilyöntejä" +Basic.Settings.Output.EncoderPreset="Enkooderin asetus (hitaampi asetus lisää suorittimen käyttöä)" +Basic.Settings.Output.CustomEncoderSettings="Valinnaiset enkooderin asetukset" +Basic.Settings.Output.CustomMuxerSettings="Valinnaiset muuntajan asetukset" +Basic.Settings.Output.NoSpaceFileName="Luo tiedostonimi ilman välilyöntejä" Basic.Settings.Output.Adv.Rescale="Uudelleenskaalaa ulostulo" Basic.Settings.Output.Adv.AudioTrack="Ääniraita" @@ -382,23 +397,23 @@ Basic.Settings.Output.Adv.FFmpeg.FormatAudio="Ääni" Basic.Settings.Output.Adv.FFmpeg.FormatVideo="Kuva" Basic.Settings.Output.Adv.FFmpeg.FormatDefault="Oletusmuoto" Basic.Settings.Output.Adv.FFmpeg.FormatDesc="Säiliömuodon kuvaus" -Basic.Settings.Output.Adv.FFmpeg.FormatDescDef="Ääni/Kuva koodekki arvataan tiedostopäätteen tai osoitteen perusteella" +Basic.Settings.Output.Adv.FFmpeg.FormatDescDef="Ääni/Kuva koodekki päätellään tiedostopäätteen tai osoitteen perusteella" Basic.Settings.Output.Adv.FFmpeg.AVEncoderDefault="Oletus" Basic.Settings.Output.Adv.FFmpeg.AVEncoderDisable="Poista enkooderi käytöstä" Basic.Settings.Output.Adv.FFmpeg.VEncoder="Videoenkooderi" -Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings="Video-enkooderin asetukset" +Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings="Videoenkooderin asetukset" Basic.Settings.Output.Adv.FFmpeg.AEncoder="Äänienkooderi" -Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Ääni-enkooderin asetukset" -Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Mukserin asetukset" +Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Äänienkooderin asetukset" +Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Muunnon asetukset" FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" -FilenameFormatting.TT="%CCYY vuosi, neljä digits\n%YY vuoden kaksi viimeistä numeroa (00-99)\n%MM kuukauden desimaalin numero (01-12) \n%DD nolla-pehmustettu kuukauden päivänä (01-31)\n%hh Fi 24h muodossa (00-23)\n%mm minuutin (00-59) \n%ss toinen (00-61) \n%% A % sign\n%a Abbreviated arkipäivä name\n%A koko päivän name\n%b Abbreviated kuukauden name\n%B Kuukauden koko kuukauden, päivän name\n%d nolla-pehmustettu (01-31)\n%H tunnin 24h muodossa (00-23) \n%I Fi 12h muodossa (01-12)\n%m kuukauden desimaalilukuna (01-12)\n%M minuutin (00-59) \n%p AM tai PM designation\n%S toinen (00-61)\n%y vuoden kaksi viimeistä numeroa (00-99)\n%Y Year\n%z ISO 8601 offset UTC tai timezone\n tai abbreviation\n%Z Aikavyöhykkeen nimi tai abbreviation\n" +FilenameFormatting.TT="%CCYY vuosi, neljä numeroa\n%YY Vuosi, kaksi viimeistä numeroa (00-99)\n%MM Kuukausi, kymmenlukuna (01-12) \n%DD Päivä, nolla-etuliitteellä (01-31)\n%hh Tunti, 24-tunnin muodossa (00-23)\n%mm Minuutti (00-59) \n%ss Sekunti (00-61) \n%% %-merkki\n%a Lyhennetty viikonpäivän nimi\n%A Täysi viikonpäivän nimi\n%b Lyhennetty kuukauden nimi\n%B Täysi kuukauden nimi\n%d Kuukauden päivä, nolla-etuliitteellä (01-31)\n%H Tunti, 24-tunnin muodossa (00-23) \n%I Tunti, 12-tunnin muodossa (01-12)\n%m Kuukausi, kymmenlukuna (01-12)\n%M Minuutti (00-59) \n%p AM tai PM merkintä\n%S Sekunti (00-61)\n%y Vuosi, kaksi viimeistä numeroa (00-99)\n%Y Vuosi\n%z ISO 8601 standardin mukainen ajan esittämistapa, UTC tai aikavyöhykkeestä\n Nimi tai lyhennne\n%Z Aikavyöhykkeen nimi tai lyhenne\n" Basic.Settings.Video="Kuva" Basic.Settings.Video.Adapter="Näytönohjain:" Basic.Settings.Video.BaseResolution="Piirtoalueen resoluutio:" -Basic.Settings.Video.ScaledResolution="Skaalattu resoluutio:" +Basic.Settings.Video.ScaledResolution="Ulostulon (skaalattu) resoluutio:" Basic.Settings.Video.DownscaleFilter="Skaalaussuodatin:" Basic.Settings.Video.DisableAeroWindows="Poista Aero käytöstä (Vain Windows)" Basic.Settings.Video.FPS="FPS:" @@ -412,7 +427,7 @@ Basic.Settings.Video.InvalidResolution="Vialliset resoluution asetus. Muodon pi Basic.Settings.Video.CurrentlyActive="Kuvan ulostulo on tällä hetkellä käytössä. Kytke pois kaikki ulostulot vaihtaaksesi kuva-asetuksia." Basic.Settings.Video.DisableAero="Poista Aero käytöstä" -Basic.Settings.Video.DownscaleFilter.Bilinear="Bilinear (nopein, sumeutuu skaalattaessa)" +Basic.Settings.Video.DownscaleFilter.Bilinear="Bilinear (nopein, mutta epätarkka skaalattaessa)" Basic.Settings.Video.DownscaleFilter.Bicubic="Bicubic (Terävöity skaalaus, 16 näytettä)" Basic.Settings.Video.DownscaleFilter.Lanczos="Lanczos (Terävöity skaalaus, 32 näytettä)" @@ -424,16 +439,21 @@ Basic.Settings.Audio.DesktopDevice2="Äänentoistolaite 2" Basic.Settings.Audio.AuxDevice="Mic/Aux -äänilaite" Basic.Settings.Audio.AuxDevice2="Mic/Aux -äänilaite 2" Basic.Settings.Audio.AuxDevice3="Mic/Aux -äänilaite 3" -Basic.Settings.Audio.EnablePushToMute="Käytä Push-to-mute" -Basic.Settings.Audio.PushToMuteDelay="Push-to-mute viive" -Basic.Settings.Audio.EnablePushToTalk="Käytä Push-to-talk" -Basic.Settings.Audio.PushToTalkDelay="Push-to-talk viive" +Basic.Settings.Audio.EnablePushToMute="Ota Push-to-mute käyttöön" +Basic.Settings.Audio.PushToMuteDelay="Push-to-muten viive" +Basic.Settings.Audio.EnablePushToTalk="Ota Push-to-talk käyttöön" +Basic.Settings.Audio.PushToTalkDelay="Push-to-talkin viive" Basic.Settings.Audio.UnknownAudioDevice="[Laitetta ei ole yhdistetty tai se ei ole saatavissa]" Basic.Settings.Advanced="Lisäasetukset" -Basic.Settings.Advanced.FormatWarning="Varoitus: Muut väriformaatit kuin NV12, ovat tarkoitettuja tallentamiseen eikä niitä suositella lähetyksiin. Lähetykset saattavat johtaa suurempaan CPU:n kulutukseen väriformaatin muutoksen vuoksi." +Basic.Settings.Advanced.General.ProcessPriority="Prosessin prioriteetti" +Basic.Settings.Advanced.General.ProcessPriority.High="Suuri" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Suurempi kuin normaali" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normaali" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Pieni" +Basic.Settings.Advanced.FormatWarning="Varoitus: Muut kuin NV12 väriformaatit ovat tarkoitettuja tallentamiseen, eikä niitä suositella lähettämiseen. Väriformaation konversio saattaa johtaa korkeampaan suorittimen käyttöön lähettämisessä." Basic.Settings.Advanced.Audio.BufferingTime="Äänen puskurointiaika" -Basic.Settings.Advanced.Video.ColorFormat="Värimuoto" +Basic.Settings.Advanced.Video.ColorFormat="Väriformaatti" Basic.Settings.Advanced.Video.ColorSpace="YUV väriavaruus" Basic.Settings.Advanced.Video.ColorRange="YUV värialue" Basic.Settings.Advanced.Video.ColorRange.Partial="Osittainen" @@ -448,7 +468,7 @@ Basic.AdvAudio.Name="Nimi" Basic.AdvAudio.Volume="Äänenvoimakkuus (%)" Basic.AdvAudio.Mono="Miksaa yksikanavaiseksi" Basic.AdvAudio.Panning="Balanssi" -Basic.AdvAudio.SyncOffset="Sync Offset (ms)" +Basic.AdvAudio.SyncOffset="Synkronoinnin viivästys (ms)" Basic.AdvAudio.AudioTracks="Raidat" Basic.Settings.Hotkeys="Pikanäppäimet" diff --git a/obs/data/locale/fr-FR.ini b/obs/data/locale/fr-FR.ini index 82b1495..ad76135 100644 --- a/obs/data/locale/fr-FR.ini +++ b/obs/data/locale/fr-FR.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS est actuellement actif. Tous les streams/enregistrements ConfirmRemove.Title="Confirmer la suppression" ConfirmRemove.Text="Êtes-vous sûr de vouloir supprimer « $1 » ?" +ConfirmRemove.TextMultiple="Voulez-vous vraiment supprimer %1 éléments ?" Output.ConnectFail.Title="Échec de la connexion" Output.ConnectFail.BadPath="Adresse de connexion ou chemin invalide. Veuillez vérifier vos paramètres afin de confirmer leur validité." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Afficher la capture" Basic.Main.PreviewConextMenu.Enable="Activer l'aperçu" +ScaleFiltering="Échelle de filtrage" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinéaire" +ScaleFiltering.Bicubic="Bicubique" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Désentrelacement" Deinterlacing.Discard="Abandonner" Deinterlacing.Retro="Rétro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Paramètres modifiés" Basic.PropertiesWindow.Confirm="Des modifications n'ont pas été enregistrées. Voulez-vous les conserver ?" Basic.PropertiesWindow.NoProperties="Aucune propriété disponible" Basic.PropertiesWindow.AddFiles="Ajouter des fichiers" +Basic.PropertiesWindow.AddDir="Ajouter un répertoire" Basic.PropertiesWindow.AddURL="Ajouter un chemin/URL" +Basic.PropertiesWindow.AddEditableListDir="Ajouter un répertoire à '%1'" Basic.PropertiesWindow.AddEditableListFiles="Ajouter des fichiers à '%1'" Basic.PropertiesWindow.AddEditableListEntry="Ajouter une entrée à '%1'" Basic.PropertiesWindow.EditEditableListEntry="Éditer l'entrée de '%1'" @@ -200,10 +209,10 @@ Basic.InteractionWindow="Intéragir avec '%1'" Basic.StatusBar.Reconnecting="Déconnecté, reconnexion dans %2 seconde(s) (tentative n° %1)" Basic.StatusBar.AttemptingReconnect="Tentative de reconnexion... (tentative n° %1)" Basic.StatusBar.ReconnectSuccessful="Reconnexion réussie" -Basic.StatusBar.Delay="Délai (%1 s)" -Basic.StatusBar.DelayStartingIn="Délai (commence dans %1 s)" -Basic.StatusBar.DelayStoppingIn="Délai (s'arrête dans %1 s)" -Basic.StatusBar.DelayStartingStoppingIn="Délai (s'arrête dans %1 s, commence dans %2 s)" +Basic.StatusBar.Delay="Retard (%1 s)" +Basic.StatusBar.DelayStartingIn="Retard (commence dans %1 s)" +Basic.StatusBar.DelayStoppingIn="Retard (s'arrête dans %1 s)" +Basic.StatusBar.DelayStartingStoppingIn="Retard (s'arrête dans %1 s, commence dans %2 s)" Basic.Filters="Filtres" Basic.Filters.AsyncFilters="Filtres audio/vidéo" @@ -250,8 +259,10 @@ Basic.Main.Connecting="Connexion en cours..." Basic.Main.StartRecording="Démarrer l'enregistrement" Basic.Main.StartStreaming="Commencer le streaming" Basic.Main.StopRecording="Arrêter l'enregistrement" +Basic.Main.StoppingRecording="Arrêt de l'enregistrement..." Basic.Main.StopStreaming="Arrêter le streaming" -Basic.Main.ForceStopStreaming="Arrêter le streaming (annule le délai)" +Basic.Main.StoppingStreaming="Arrêt du stream..." +Basic.Main.ForceStopStreaming="Arrêter le streaming (annule le retard)" Basic.MainMenu.File="&Fichier" Basic.MainMenu.File.Export="&Exporter" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Déplacer tout en &haut" Basic.MainMenu.Edit.Order.MoveToBottom="Déplacer tout en &bas" Basic.MainMenu.Edit.AdvAudio="Propriétés audio &avancées" +Basic.MainMenu.View="&Afficher" +Basic.MainMenu.View.Toolbars="&Barres d'outils" +Basic.MainMenu.View.Toolbars.Listboxes="&Listes" +Basic.MainMenu.View.SceneTransitions="&Transition de scènes" +Basic.MainMenu.View.StatusBar="&Barre d'état" + Basic.MainMenu.SceneCollection="Collection de &scènes" Basic.MainMenu.Profile="&Profil" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Thème" Basic.Settings.General.Language="Langue" Basic.Settings.General.WarnBeforeStartingStream="Afficher une boîte de dialogue de confirmation au démarrage d'un stream" Basic.Settings.General.WarnBeforeStoppingStream="Afficher une boîte de dialogue de confirmation à l'arrêt d'un stream" +Basic.Settings.General.HideProjectorCursor="Cacher le curseur sur les projecteurs" Basic.Settings.General.Snapping="Déclenchement d'alignement des sources" Basic.Settings.General.ScreenSnapping="Déclencher avec les bords de l'écran" Basic.Settings.General.CenterSnapping="Déclencher avec le centre de l'écran" Basic.Settings.General.SourceSnapping="Déclencher avec d'autres sources" Basic.Settings.General.SnapDistance="Sensibilité du déclenchement" +Basic.Settings.General.RecordWhenStreaming="Enregistrer automatiquement lors d'un stream" +Basic.Settings.General.KeepRecordingWhenStreamStops="Continuer à enregistrer lorsque le stream s’arrête" Basic.Settings.Stream="Flux" Basic.Settings.Stream.StreamType="Type de diffusion" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Délai du Push-to-talk" Basic.Settings.Audio.UnknownAudioDevice="[Périphérique non connecté ou non disponible]" Basic.Settings.Advanced="Avancé" +Basic.Settings.Advanced.General.ProcessPriority="Priorité du processus" +Basic.Settings.Advanced.General.ProcessPriority.High="Haute" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Supérieure à la normale" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normale" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Basse" Basic.Settings.Advanced.FormatWarning="Attention : les formats de couleur autres que NV12 sont principalement destinés à l'enregistrement, et ne sont pas recommandés pour le streaming. Le streaming peut pâtir d'une utilisation élevée du CPU due à la conversion de format de couleur." Basic.Settings.Advanced.Audio.BufferingTime="Temps de mise en mémoire tampon audio" Basic.Settings.Advanced.Video.ColorFormat="Format de couleur" @@ -438,9 +463,9 @@ Basic.Settings.Advanced.Video.ColorSpace="Espace de couleur YUV" Basic.Settings.Advanced.Video.ColorRange="Gamme de couleurs YUV" Basic.Settings.Advanced.Video.ColorRange.Partial="Partielle" Basic.Settings.Advanced.Video.ColorRange.Full="Complète" -Basic.Settings.Advanced.StreamDelay="Délai du stream" +Basic.Settings.Advanced.StreamDelay="Retard du stream" Basic.Settings.Advanced.StreamDelay.Duration="Durée (en secondes)" -Basic.Settings.Advanced.StreamDelay.Preserve="Préserver le point de coupure (augmente le délai) lors d'une reconnexion" +Basic.Settings.Advanced.StreamDelay.Preserve="Préserver le point de coupure (augmente le retard) lors d'une reconnexion" Basic.Settings.Advanced.StreamDelay.MemoryUsage="Utilisation estimée de la mémoire : %1 Mo" Basic.AdvAudio="Propriétés audio avancées" diff --git a/obs/data/locale/gl-ES.ini b/obs/data/locale/gl-ES.ini index ea5f0f7..604d47e 100644 --- a/obs/data/locale/gl-ES.ini +++ b/obs/data/locale/gl-ES.ini @@ -125,6 +125,7 @@ Basic.DisplayCapture="Captura de pantalla" Basic.Main.PreviewConextMenu.Enable="Habilitar vista previa" + Basic.Main.AddSceneDlg.Title="Engadir escena" Basic.Main.AddSceneDlg.Text="Por favor, insire un nome para a escena" @@ -242,6 +243,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Levar para a cima" Basic.MainMenu.Edit.Order.MoveToBottom="Levar para abaixo" Basic.MainMenu.Edit.AdvAudio="Propiedades de audio &avanzadas" + Basic.MainMenu.SceneCollection="&Colección de escenas" Basic.MainMenu.Profile="&Perfil" diff --git a/obs/data/locale/he-IL.ini b/obs/data/locale/he-IL.ini index 3a59890..0f4bc61 100644 --- a/obs/data/locale/he-IL.ini +++ b/obs/data/locale/he-IL.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="תוכנת OBS פעילה כעת. כל הזרמת נתוני ConfirmRemove.Title="אשר הסרה" ConfirmRemove.Text="האם אתה בטוח שברצונך להסיר את '$1'?" +ConfirmRemove.TextMultiple="האם אתה בטוח שברצונך להסיר %1 פריטים?" Output.ConnectFail.Title="ההתחברות נכשלה" Output.ConnectFail.BadPath="URL לא חוקי של נתיב או חיבור. נא בדוק את ההגדרות שלך כדי לוודא כי הם נכונים." @@ -118,6 +119,7 @@ LicenseAgreement.Exit="יציאה" Remux.SourceFile="הקלטת OBS" Remux.TargetFile="קובץ היעד" Remux.Remux="המרה" +Remux.OBSRecording="הקלטת OBS" Remux.FinishedTitle="המרה הסתיימה" Remux.Finished="הקלטה הומרה" Remux.FinishedError="הקלטה הומרה, אבל הקובץ עשוי להיות לא שלם" @@ -143,6 +145,12 @@ Basic.DisplayCapture="הצג לכידת מסך" Basic.Main.PreviewConextMenu.Enable="אפשר תצוגה מקדימה" +ScaleFiltering="מסנן קנה מידה" +ScaleFiltering.Point="נקודה" +ScaleFiltering.Bilinear="ביליניארי" +ScaleFiltering.Bicubic="ביקיוביק" +ScaleFiltering.Lanczos="לנזוס" + Deinterlacing="ביטול שזירה" Deinterlacing.Discard="אל תשמור" Deinterlacing.Retro="רטרו" @@ -185,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="הגדרות שונו" Basic.PropertiesWindow.Confirm="יש שינויים שלא נשמרו. האם ברצונך לשמור אותם?" Basic.PropertiesWindow.NoProperties="אין מאפיינים זמינים" Basic.PropertiesWindow.AddFiles="הוסף קבצים" +Basic.PropertiesWindow.AddDir="הוסף ספריה" Basic.PropertiesWindow.AddURL="הוסף נתיב/כתובת" +Basic.PropertiesWindow.AddEditableListDir="הוסף ספריה ל '%1'" Basic.PropertiesWindow.AddEditableListFiles="הוסף קבצים '%1'" Basic.PropertiesWindow.AddEditableListEntry="הוסף ערך ל- '%1'" Basic.PropertiesWindow.EditEditableListEntry="ערוך ערך של '%1'" @@ -249,7 +259,9 @@ Basic.Main.Connecting="מתחבר..." Basic.Main.StartRecording="התחל הקלטה" Basic.Main.StartStreaming="התחל הזרמת נתונים" Basic.Main.StopRecording="עצור הקלטה" +Basic.Main.StoppingRecording="עוצר הקלטה..." Basic.Main.StopStreaming="עצור זרם נתונים" +Basic.Main.StoppingStreaming="עוצר זרם נתונים..." Basic.Main.ForceStopStreaming="עצור זרם נתונים (בטל השהייה)" Basic.MainMenu.File="קובץ(&F)" @@ -286,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="הזז לקצה עליון(&T)" Basic.MainMenu.Edit.Order.MoveToBottom="הזז לקצה תחתון(&B)" Basic.MainMenu.Edit.AdvAudio="מאפייני קול מתקדמים(&A)" +Basic.MainMenu.View="&מבט" +Basic.MainMenu.View.Toolbars="&סרגלי כלים" +Basic.MainMenu.View.Toolbars.Listboxes="&תיבות רשימה" +Basic.MainMenu.View.SceneTransitions="&מעברי סצינות" +Basic.MainMenu.View.StatusBar="&שורת מצב" + Basic.MainMenu.SceneCollection="אוסף סצינות(&S)" Basic.MainMenu.Profile="פרופיל(&P)" @@ -307,6 +325,14 @@ Basic.Settings.General.Theme="ערכת עיצוב" Basic.Settings.General.Language="שפה" Basic.Settings.General.WarnBeforeStartingStream="הצג תיבת דו-שיח לאישור בעת הפעלת זרם נתונים" Basic.Settings.General.WarnBeforeStoppingStream="הצג תיבת דו-שיח לאישור בעת עצירת זרם נתונים" +Basic.Settings.General.HideProjectorCursor="הסתר את הסמן מעל מקרנים" +Basic.Settings.General.Snapping="יישור הצמדת מקור" +Basic.Settings.General.ScreenSnapping="הצמד מקורות לקצה המסך" +Basic.Settings.General.CenterSnapping="הצמד מקורות למרכז אופקי ואנכי" +Basic.Settings.General.SourceSnapping="הצמד מקור למקור נוסף" +Basic.Settings.General.SnapDistance="רגישות צמד" +Basic.Settings.General.RecordWhenStreaming="הקלטה אוטומטית בעת הזרמת נתונים" +Basic.Settings.General.KeepRecordingWhenStreamStops="המשך הקלטה כאשר הזרמת נתונים מפסיקה" Basic.Settings.Stream="זרם נתונים" Basic.Settings.Stream.StreamType="סוג זרם נתונים" @@ -316,6 +342,7 @@ Basic.Settings.Output.Format="פורמט הקלטה" Basic.Settings.Output.Encoder="מקודד" Basic.Settings.Output.SelectDirectory="בחר ספריית הקלטות" Basic.Settings.Output.SelectFile="בחר קובץ הקלטה" +Basic.Settings.Output.EnforceBitrate="אכוף מגבלות קצב נתונים של שירות הזרמת הנתונים" Basic.Settings.Output.Mode="מצב פלט" Basic.Settings.Output.Mode.Simple="פשוט" Basic.Settings.Output.Mode.Adv="מתקדם" @@ -326,11 +353,16 @@ Basic.Settings.Output.Simple.RecordingQuality.Stream="כמו זרם הנתוני Basic.Settings.Output.Simple.RecordingQuality.Small="איכות גבוהה, גודל קובץ בינוני" Basic.Settings.Output.Simple.RecordingQuality.HQ="איכות בלתי מובחנת, גודל קובץ גדול" Basic.Settings.Output.Simple.RecordingQuality.Lossless="ללא אובדן איכות, גודל קובץ עצום" +Basic.Settings.Output.Simple.Warn.VideoBitrate="אזהרה: קצב הזרמת הוידאו יוגדר ל %1, כאשר זה הגבול העליון עבור שירות הזרמת הנתונים הנוכחי. אם אתה בטוח שאתה רוצה לעבור מעל %1, אפשר את אפשרויות קידוד מתקדמות ובטל סימון \"אכוף הגבלות קצב הזרמת נתונים\"." +Basic.Settings.Output.Simple.Warn.AudioBitrate="אזהרה: קצב הזרמת האודיו יוגדר ל %1, כאשר זה הגבול העליון עבור שירות הזרמת הנתונים הנוכחי. אם אתה בטוח שאתה רוצה לעבור מעל %1, אפשר את אפשרויות קידוד מתקדמות ובטל סימון \"אכוף הגבלות קצב הזרמת נתונים\"." Basic.Settings.Output.Simple.Warn.Encoder="אזהרה: הקלטה עם מקודד תוכנה באיכות שונה מאשר זרם הנתונים ידרוש שימוש במשאבי מעבד נוספים אם מתבצעת הקלטה וזרם נתונים במקביל." Basic.Settings.Output.Simple.Warn.Lossless="אזהרה: איכות ללא אובדן יוצר גדלי קבצים גדולים מאוד! איכות ללא אובדן נתונים יכול להשתמש ביותר מ-7 ג'יגה-בתים של שטח דיסק לדקה ברזולוציות גבוהות ופריימים. שימוש באיכות ללא אובדן אינו מומלץ להקלטות ארוכות אלא אם קיים שטח דיסק פנוי גדול מאד." Basic.Settings.Output.Simple.Warn.Lossless.Msg="האם אתה בטוח שברצונך להשתמש באיכות ללא אובדן איכות?" Basic.Settings.Output.Simple.Warn.Lossless.Title="אזהרה איכות ללא אובדן איכות!" +Basic.Settings.Output.Simple.Warn.MultipleQSV="אזהרה: לא ניתן להשתמש במקודדי QSV נפרדים מרובים בעת הזרמת נתונים והקלטה במקביל. אם ברצונך להזרים ולהקליט בו זמנית, נא בצע שינוי במקודד ההקלטה או מקודד זרם הנתונים." Basic.Settings.Output.Simple.Encoder.Software="תוכנה (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="חומרה (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="חומרה (NVENC)" Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="תוכנה (x 264 השימוש בהגדרת מעבד נמוך, גודל הקובץ גדל)" Basic.Settings.Output.VideoBitrate="קצב סיביות וידאו" Basic.Settings.Output.AudioBitrate="קצב סיביות שמע" @@ -419,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="השהיית לחץ-כדי-לדבר" Basic.Settings.Audio.UnknownAudioDevice="[התקן לא מחובר או לא זמין]" Basic.Settings.Advanced="הגדרות מתקדמות" +Basic.Settings.Advanced.General.ProcessPriority="עדיפות תהליך" +Basic.Settings.Advanced.General.ProcessPriority.High="גבוה" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="מעל לרגיל" +Basic.Settings.Advanced.General.ProcessPriority.Normal="רגיל" +Basic.Settings.Advanced.General.ProcessPriority.Idle="לא פעיל" Basic.Settings.Advanced.FormatWarning="אזהרה: תבניות צבע שונות מ-NV12 נועדו בעיקר עבור הקלטה, והם אינם מומלצות בעת הזרמת נתונים. הזרמת נתונים עלולה לגרום למשאבי עיבוד מוגברים כתוצאה מהמרת תבנית צבע." Basic.Settings.Advanced.Audio.BufferingTime="זמן אוגר שמע" Basic.Settings.Advanced.Video.ColorFormat="תבנית צבע" diff --git a/obs/data/locale/hr-HR.ini b/obs/data/locale/hr-HR.ini index 5bed0d7..5b7052b 100644 --- a/obs/data/locale/hr-HR.ini +++ b/obs/data/locale/hr-HR.ini @@ -118,6 +118,7 @@ LicenseAgreement.Exit="Izlaz" Remux.SourceFile="OBS snimak" Remux.TargetFile="Datoteka" Remux.Remux="Remux" +Remux.OBSRecording="OBS snimak" Remux.FinishedTitle="Remux završen" Remux.Finished="Završen remux snimka" Remux.FinishedError="Remux završen, ali datoteka možda nije kompletirana" @@ -143,6 +144,7 @@ Basic.DisplayCapture="Prikaži ulaz" Basic.Main.PreviewConextMenu.Enable="Omogući pregled" + Deinterlacing="Deinterlejsing" Deinterlacing.Discard="Odbaci" Deinterlacing.Retro="Retro" @@ -185,7 +187,9 @@ Basic.PropertiesWindow.ConfirmTitle="Podešavanja promenjena" Basic.PropertiesWindow.Confirm="Postoje podešavanja koja nisu sačuvana. Da li želite da ih sačuvate?" Basic.PropertiesWindow.NoProperties="Nema dostupnih svojstava" Basic.PropertiesWindow.AddFiles="Dodaj datoteke" +Basic.PropertiesWindow.AddDir="Dodaj direktorijum" Basic.PropertiesWindow.AddURL="Dodaj putanju/URL" +Basic.PropertiesWindow.AddEditableListDir="Dodaj direktorijum u '%1'" Basic.PropertiesWindow.AddEditableListFiles="Dodaj datoteke u '%1'" Basic.PropertiesWindow.AddEditableListEntry="Dodaj zapise u '%1'" Basic.PropertiesWindow.EditEditableListEntry="Izmeni zapise za '%1'" @@ -249,7 +253,9 @@ Basic.Main.Connecting="Povezivanje..." Basic.Main.StartRecording="Počni snimanje" Basic.Main.StartStreaming="Počni strimovanje" Basic.Main.StopRecording="Zaustavi snimanje" +Basic.Main.StoppingRecording="Zaustavljanje snimanja..." Basic.Main.StopStreaming="Zaustavi strimovanje" +Basic.Main.StoppingStreaming="Zaustavljanje emitovanja..." Basic.Main.ForceStopStreaming="Zaustavi strimovanje (poništi odlaganje)" Basic.MainMenu.File="&Fajl" @@ -286,6 +292,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Pomeri na vrh (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="Pomeri na dno (&B)" Basic.MainMenu.Edit.AdvAudio="N&apredna podešavanja zvuka" + Basic.MainMenu.SceneCollection="Kolekcija &scena" Basic.MainMenu.Profile="&Profil" @@ -307,6 +314,7 @@ Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Jezik" Basic.Settings.General.WarnBeforeStartingStream="Prikaži prozor za potvrdu kada se započinju strimovi" Basic.Settings.General.WarnBeforeStoppingStream="Prikaži prozor za potvrdu kada se zaustavljaju strimovi" +Basic.Settings.General.HideProjectorCursor="Sakrij pokazivač na projektorima" Basic.Settings.General.Snapping="Poravnavanje privlačenjem izvora" Basic.Settings.General.ScreenSnapping="Privuci izvore ivici ekrana" Basic.Settings.General.CenterSnapping="Privuci izvore horizontalnoj i vertikalnoj sredini" diff --git a/obs/data/locale/hu-HU.ini b/obs/data/locale/hu-HU.ini index 2759f5b..0d31e26 100644 --- a/obs/data/locale/hu-HU.ini +++ b/obs/data/locale/hu-HU.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="Az OBS jelenleg aktív. Minden stream és/vagy felvétel le fo ConfirmRemove.Title="Eltávolítás megerősítése" ConfirmRemove.Text="\"$1\" eltávolítására készül, biztos benne?" +ConfirmRemove.TextMultiple="\"%1\" elem eltávolítására készül, biztos benne?" Output.ConnectFail.Title="Csatlakozás sikertelen" Output.ConnectFail.BadPath="Érvénytelen elérési út vagy kapcsolati URL cím. Kérem, ellenőrizze a beállításokat és győződjön meg az érvényességükről." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Képernyő felvétel" Basic.Main.PreviewConextMenu.Enable="Előnézet bekapcsolása" +ScaleFiltering="Skála-szűrés" +ScaleFiltering.Point="Pont" +ScaleFiltering.Bilinear="Bilineáris" +ScaleFiltering.Bicubic="Kettős köbös" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Váltottsorosság" Deinterlacing.Discard="Elvetés" Deinterlacing.Retro="Retró mód" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Beállítások módosultak" Basic.PropertiesWindow.Confirm="Változtatásai nincsenek elmentve. Szeretné megtartani őket?" Basic.PropertiesWindow.NoProperties="Nincsenek elérhető tulajdonságok" Basic.PropertiesWindow.AddFiles="Fájlok hozzáadása" +Basic.PropertiesWindow.AddDir="Mappa hozzáadása" Basic.PropertiesWindow.AddURL="Elérési út/URL hozzáadása" +Basic.PropertiesWindow.AddEditableListDir="Könyvtár hozzáadása: '%1'" Basic.PropertiesWindow.AddEditableListFiles="Fájlok hozzáadása: '%1'" Basic.PropertiesWindow.AddEditableListEntry="Bejegyzés hozzáadása: '%1'" Basic.PropertiesWindow.EditEditableListEntry="Bejegyzés szerkesztése: '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="Kapcsolódás..." Basic.Main.StartRecording="Felvétel indítása" Basic.Main.StartStreaming="Stream indítása" Basic.Main.StopRecording="Felvétel leállítása" +Basic.Main.StoppingRecording="Felvétel leállítása..." Basic.Main.StopStreaming="Stream leállítása" +Basic.Main.StoppingStreaming="Stream leállítása..." Basic.Main.ForceStopStreaming="Stream leállítása (Késleltetés elvetése)" Basic.MainMenu.File="&Fájl" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mozgatás a &Tetejére" Basic.MainMenu.Edit.Order.MoveToBottom="Mozgatás az &Aljára" Basic.MainMenu.Edit.AdvAudio="&Speciális hangtulajdonságok" +Basic.MainMenu.View="&Nézet" +Basic.MainMenu.View.Toolbars="&Eszköztárak" +Basic.MainMenu.View.Toolbars.Listboxes="&Gombsor" +Basic.MainMenu.View.SceneTransitions="&Jelenet átmenetek" +Basic.MainMenu.View.StatusBar="&Állapotsor" + Basic.MainMenu.SceneCollection="&Jelenet gyűjtemény" Basic.MainMenu.Profile="&Profil" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Téma" Basic.Settings.General.Language="Nyelv" Basic.Settings.General.WarnBeforeStartingStream="Megerősítő párbeszédpanel megjelenítése stream indításakor" Basic.Settings.General.WarnBeforeStoppingStream="Megerősítő párbeszédpanel megjelenítése stream leállításakor" +Basic.Settings.General.HideProjectorCursor="Projektor nézetben a kurzor elrejtése" Basic.Settings.General.Snapping="Forrás pozicionálásának igazítása" Basic.Settings.General.ScreenSnapping="Források igazítása a képernyő széléhez" Basic.Settings.General.CenterSnapping="Források vízszintes és függőleges középponthoz igazítása" Basic.Settings.General.SourceSnapping="Források igazítása más forrásokhoz" Basic.Settings.General.SnapDistance="Igazítás érzékenysége" +Basic.Settings.General.RecordWhenStreaming="Automatikus felvétel stream esetén" +Basic.Settings.General.KeepRecordingWhenStreamStops="Felvétel folytatása a stream leállása esetén" Basic.Settings.Stream="Stream" Basic.Settings.Stream.StreamType="Stream típusa" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Push-to-talk késleltetés" Basic.Settings.Audio.UnknownAudioDevice="[Eszköz nincs csatlakoztatva vagy nem elérhető]" Basic.Settings.Advanced="Haladó" +Basic.Settings.Advanced.General.ProcessPriority="Folyamat Prioritás szintje" +Basic.Settings.Advanced.General.ProcessPriority.High="Magas" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Normál feletti" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normál" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Tétlen" Basic.Settings.Advanced.FormatWarning="Figyelem: Az NV12-től eltérő színformátumok elsősorban felvételhez vannak és nem ajánlott a használatuk streamekhez. Adás közben megnövekedett processzor igényt okozhat a színkonverzió." Basic.Settings.Advanced.Audio.BufferingTime="Audio pufferelési idő" Basic.Settings.Advanced.Video.ColorFormat="Színformátum" diff --git a/obs/data/locale/it-IT.ini b/obs/data/locale/it-IT.ini index 5fd9b25..5532c4b 100644 --- a/obs/data/locale/it-IT.ini +++ b/obs/data/locale/it-IT.ini @@ -44,9 +44,28 @@ ResetOSXVSyncOnExit="Reimpostare V-Sync OSX in uscita" HighResourceUsage="Codifica in sovraccarico! È consigliabile abbassare le impostazioni video o utilizzare un settaggio predefinito di codifica più veloce." Transition="Transizione" QuickTransitions="Transizioni rapide" +Left="Sinistra" +Right="Destra" +Top="Alto" +Bottom="Basso" +QuickTransitions.SwapScenes="Scambia Scena Preview/Uscita dopo la Transizione" +QuickTransitions.SwapScenesTT="Scambia la scena in uniscita con quella in preview dopo la transizione (ammesso che la scena in uscita originale ci sia ancora).\nQuesto non modificherà eventuali cambiamenti apportati alla scena di uscita originale." +QuickTransitions.DuplicateScene="Duplica Scena" +QuickTransitions.DuplicateSceneTT="Quando si modifica la stessa scena, permette di modificare la trasformazione/visibilità di source senza modificare l'output. \nPer modificare le proprietà delle source senza modificare l'output, abilità 'Source duplicate'.\nCambiare questo valore resetterà la scena output attuale (se esite ancora)." +QuickTransitions.EditProperties="Duplica Risorsa" +QuickTransitions.EditPropertiesTT="Quando si modifica la stessa scena, consente la modifica di risorse senza modificarne l'output. \nQuesto può essere usato solo se 'Scene doppia' è attivo. \nCerte risorse (come media o catture) non lo supportano e devono essere modificate separatamente. \nCambiare questo valore resetterà l'attuale scena di output (se esiste ancora). \n\nAttenzione: Dato che la risorsa verrà duplicata, questo potrebbe richiedere risorse di sistema o video aggiuntive." +QuickTransitions.HotkeyName="Transizioni rapide: %1" +Basic.AddTransition="Aggiungi transizione configurabile" +Basic.RemoveTransition="Rimuovi transizione configurabile" +Basic.TransitionProperties="Proprietà di transizione" +Basic.SceneTransitions="Transizioni di scena" +Basic.TransitionDuration="Durata" +Basic.TogglePreviewProgramMode="Modalità studio" +TransitionNameDlg.Text="Per favore inserisci il nome della transizione" +TransitionNameDlg.Title="Nome transizione" TitleBar.Profile="Profilo" TitleBar.Scenes="Scene" @@ -57,17 +76,24 @@ NameExists.Text="Il nome è già in uso." NoNameEntered.Title="Inserisci un nome valido" NoNameEntered.Text="Non è possibile utilizzare nomi vuoti." +ConfirmStart.Title="Inizia diretta?" +ConfirmStart.Text="Sei sicuro di voler iniziare una diretta?" +ConfirmStop.Title="Interrompere diretta?" +ConfirmStop.Text="Sei sicuro di voler interrompere questa diretta?" ConfirmExit.Title="Uscire da OBS?" ConfirmExit.Text="OBS è attualmente attivo. Tutte le dirette/registrazioni saranno fermate. Sei sicuro di voler uscire?" ConfirmRemove.Title="Conferma la rimozione" ConfirmRemove.Text="Sei sicuro di voler rimuovere '$1'?" +ConfirmRemove.TextMultiple="Sei sicuro di volere rimuovere %1 elementi?" Output.ConnectFail.Title="Impossibile connettersi" Output.ConnectFail.BadPath="Percorso o URL di connessione non valido. Controlla le tue impostazioni per confermare che siano valide." Output.ConnectFail.ConnectFailed="Connessione al server fallita" +Output.ConnectFail.InvalidStream="Impossibile accedere al canale od alla stream key specificata, per favore, controlla di nuovo la tua stream key. +Se è corretta, potrebbe esserci un problema con la connessione con il server." Output.ConnectFail.Error="Si è verificato un errore non previsto durante la connessione al server. Controlla il file di log per più informazioni." Output.ConnectFail.Disconnected="Disconnesso dal server." @@ -94,6 +120,7 @@ LicenseAgreement.Exit="Esci" Remux.SourceFile="Registrazione OBS" Remux.TargetFile="File di destinazione" Remux.Remux="Converti" +Remux.OBSRecording="Registrazione OBS" Remux.FinishedTitle="Conversione finita" Remux.Finished="Registrazione convertita" Remux.FinishedError="Registrazione convertita, ma il file potrebbe essere incompleta" @@ -119,6 +146,23 @@ Basic.DisplayCapture="Mostra cattura" Basic.Main.PreviewConextMenu.Enable="Abilita Anteprima" +ScaleFiltering="Scala di filtraggio" +ScaleFiltering.Point="Punto" +ScaleFiltering.Bilinear="Bilineare" +ScaleFiltering.Bicubic="Bicubico" +ScaleFiltering.Lanczos="Lanczos" + +Deinterlacing="Deinterlacciamento" +Deinterlacing.Discard="Scarta" +Deinterlacing.Retro="Retrò" +Deinterlacing.Blend="Blend" +Deinterlacing.Blend2x="Blend 2x" +Deinterlacing.Linear="Linear" +Deinterlacing.Linear2x="Linear 2x" +Deinterlacing.Yadif="Yadif" +Deinterlacing.Yadif2x="Yadif 2x" +Deinterlacing.TopFieldFirst="Priorità livello superiore" +Deinterlacing.BottomFieldFirst="Priorità livello inferiore" Basic.Main.AddSceneDlg.Title="Aggiungi scena" Basic.Main.AddSceneDlg.Text="Inserisci il nome della scena" @@ -143,17 +187,23 @@ Basic.SourceSelect.AddExisting="Aggiungi esistente" Basic.SourceSelect.AddVisible="Rendi visibile la provenienza" Basic.PropertiesWindow="Proprietà di '%1'" +Basic.PropertiesWindow.AutoSelectFormat="%1 (autoseleziona: %2)" Basic.PropertiesWindow.SelectColor="Seleziona il colore" Basic.PropertiesWindow.SelectFont="Seleziona il tipo di carattere" Basic.PropertiesWindow.ConfirmTitle="Impostazioni modificate" Basic.PropertiesWindow.Confirm="Ci sono modifiche non salvate. Le vuoi mantenere?" Basic.PropertiesWindow.NoProperties="Nessuna proprietà disponibile" Basic.PropertiesWindow.AddFiles="Aggiungi File" +Basic.PropertiesWindow.AddDir="Aggiungi Cartella" Basic.PropertiesWindow.AddURL="Aggiungi Percorso/URL" +Basic.PropertiesWindow.AddEditableListDir="Aggiungi cartella a '%1'" Basic.PropertiesWindow.AddEditableListFiles="Aggiungi file a '%1'" Basic.PropertiesWindow.AddEditableListEntry="Aggiungi voci a '%1'" Basic.PropertiesWindow.EditEditableListEntry="Modifica voce da '%1'" +Basic.PropertiesView.FPS.Simple="Valori FPS semplici" +Basic.PropertiesView.FPS.Rational="Valori FPS razionali" +Basic.PropertiesView.FPS.ValidFPSRanges="Intervalli di FPS validi:" Basic.InteractionWindow="Interagendo con '%1'" @@ -181,6 +231,7 @@ Basic.TransformWindow.Alignment="Allinea posizioni" Basic.TransformWindow.BoundsType="Tipo di casella di delimitazione" Basic.TransformWindow.BoundsAlignment="Allineamento nel riquadro di delimitazione" Basic.TransformWindow.Bounds="Dimensione casella di delimitazione" +Basic.TransformWindow.Crop="Crop" Basic.TransformWindow.Alignment.TopLeft="In alto a sinistra" Basic.TransformWindow.Alignment.TopCenter="In alto al centro" @@ -209,7 +260,9 @@ Basic.Main.Connecting="Connessione..." Basic.Main.StartRecording="Avvia registrazione" Basic.Main.StartStreaming="Avvia trasmissione" Basic.Main.StopRecording="Ferma registrazione" +Basic.Main.StoppingRecording="Fermando la registrazione..." Basic.Main.StopStreaming="Ferma trasmissione" +Basic.Main.StoppingStreaming="Arresto diretta..." Basic.Main.ForceStopStreaming="Ferma Diretta (annulla ritardo)" Basic.MainMenu.File="&File" @@ -220,6 +273,7 @@ Basic.MainMenu.File.Remux="Converti registrazioni" Basic.MainMenu.File.Settings="&Impostazioni" Basic.MainMenu.File.ShowSettingsFolder="Visualizza cartella impostazioni" Basic.MainMenu.File.ShowProfileFolder="Mostra la cartella del profilo" +Basic.MainMenu.AlwaysOnTop="&Sempre in primo piano" Basic.MainMenu.File.Exit="Esci (&X)" Basic.MainMenu.Edit="&Modifica" @@ -245,6 +299,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Sposta in &primo piano" Basic.MainMenu.Edit.Order.MoveToBottom="Sposta in &fondo" Basic.MainMenu.Edit.AdvAudio="Proprietà Audio &Avanzate" +Basic.MainMenu.View="&Visualizza" +Basic.MainMenu.View.Toolbars="&Barre degli strumenti" +Basic.MainMenu.View.Toolbars.Listboxes="&Listboxes" +Basic.MainMenu.View.SceneTransitions="&Transizioni di scena" +Basic.MainMenu.View.StatusBar="&Barra di stato" + Basic.MainMenu.SceneCollection="&Collezione scene" Basic.MainMenu.Profile="&Profilo" @@ -264,6 +324,16 @@ Basic.Settings.Confirm="Hai dei cambiamenti non salvati. Vuoi salvarli?" Basic.Settings.General="Generali" Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Lingua" +Basic.Settings.General.WarnBeforeStartingStream="Chiedi conferma quando si avvia una diretta" +Basic.Settings.General.WarnBeforeStoppingStream="Chiedi conferma quando si termina una diretta" +Basic.Settings.General.HideProjectorCursor="Nascondi cursore sopra proiettori" +Basic.Settings.General.Snapping="Allineamento Snapping Source" +Basic.Settings.General.ScreenSnapping="Snap source nei bordi dello schermo" +Basic.Settings.General.CenterSnapping="Snap source al centro orizzontale e verticale" +Basic.Settings.General.SourceSnapping="Snap sources ad altre sources" +Basic.Settings.General.SnapDistance="Sensibilità Snap" +Basic.Settings.General.RecordWhenStreaming="Registra automaticamente quando si è in diretta" +Basic.Settings.General.KeepRecordingWhenStreamStops="Continua a registrare quando la diretta s'interrompe" Basic.Settings.Stream="Stream" Basic.Settings.Stream.StreamType="Tipo di stream" @@ -273,6 +343,7 @@ Basic.Settings.Output.Format="Formato di registrazione" Basic.Settings.Output.Encoder="Codifica" Basic.Settings.Output.SelectDirectory="Seleziona cartella di registrazione" Basic.Settings.Output.SelectFile="Seleziona file di registrazione" +Basic.Settings.Output.EnforceBitrate="Forza limiti bitrate del servizio Streaming" Basic.Settings.Output.Mode="Modalità di output" Basic.Settings.Output.Mode.Simple="Semplice" Basic.Settings.Output.Mode.Adv="Avanzate" @@ -283,11 +354,16 @@ Basic.Settings.Output.Simple.RecordingQuality.Stream="Stesso della diretta" Basic.Settings.Output.Simple.RecordingQuality.Small="Alta qualità, medie dimensioni del file" Basic.Settings.Output.Simple.RecordingQuality.HQ="Qualità Indistinguibuile, larghe dimensioni del file" Basic.Settings.Output.Simple.RecordingQuality.Lossless="Senza perdità di qualità, dimensioni del file tremendamente larghe" +Basic.Settings.Output.Simple.Warn.VideoBitrate="Avviso: Il bitrate video in streaming verrà impostato su %1, che è il limite superiore per il servizio di streaming corrente. Se sei sicuro di che voler andare di sopra %1, abilita le opzioni avanzate del encorder e deseleziona \"Imponi streaming limiti di servizio bitrate\"." +Basic.Settings.Output.Simple.Warn.AudioBitrate="Avviso: Il bitrate audio in streaming verrà impostato su %1, che è il limite superiore per il servizio di streaming corrente. Se sei sicuro di che voler andare di sopra %1, abilita le opzioni avanzate del encorder e deseleziona \"Imponi streaming limiti di servizio bitrate\"." Basic.Settings.Output.Simple.Warn.Encoder="Attenzione: Registrare con un encoder software ad una qualità diversa dalla diretta richiederà un utilizzo extra della CPU se registri e vai in diretta allo stesso tempo." Basic.Settings.Output.Simple.Warn.Lossless="Attenzione: La qualità Lossless genera file estremamente grandi! La Lossless puo occupare 7 Gigabytes di spazio per minuto ad alte risoluzioni e framerate. La lossless non è consigliata per lunghe registrazione a meno che tu non abbia molto spazio disponibile sul disco rigido." Basic.Settings.Output.Simple.Warn.Lossless.Msg="Sei sicuro di volere utilizzare la qualità lossless?" Basic.Settings.Output.Simple.Warn.Lossless.Title="Avviso sulla qualità lossless!" +Basic.Settings.Output.Simple.Warn.MultipleQSV="Attenzione: Non è possibile usare più encoder QSV quando si è in diretta e si registra allo stesso tempo. Se vuoi andare in diretta e registrare allo stesso tempo, cambia l'encoder per la registrazione o l'encoder per la diretta." Basic.Settings.Output.Simple.Encoder.Software="Software (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Hardware (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Hardware (NVENC)" Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 Preset con basso utilizzo della CPU, aumenta le dimensioni del file)" Basic.Settings.Output.VideoBitrate="Bitrate video" Basic.Settings.Output.AudioBitrate="Bitrate Audio" @@ -297,6 +373,8 @@ Basic.Settings.Output.MaxRetries="Tentativi massimi" Basic.Settings.Output.Advanced="Abilita le impostazioni avanzate di codifica" Basic.Settings.Output.EncoderPreset="Codificatore Preset (superiore = meno CPU)" Basic.Settings.Output.CustomEncoderSettings="Impostazioni codificatore personalizzato" +Basic.Settings.Output.CustomMuxerSettings="Impostazioni Muxer personalizzate" +Basic.Settings.Output.NoSpaceFileName="Genera il nome del file senza spazi" Basic.Settings.Output.Adv.Rescale="Riscala uscita" Basic.Settings.Output.Adv.AudioTrack="Traccia Audio" @@ -312,6 +390,8 @@ Basic.Settings.Output.Adv.Recording.Type="Tipo" Basic.Settings.Output.Adv.Recording.Type.Standard="Standard" Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Output personalizzato (FFmpeg)" Basic.Settings.Output.Adv.Recording.UseStreamEncoder="(Utilizzare il codificatore del flusso)" +Basic.Settings.Output.Adv.Recording.Filename="Formattazione del nome del file" +Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Sovrascrivi il file se già esistente" Basic.Settings.Output.Adv.FFmpeg.Type="Tipo di Output FFmpeg" Basic.Settings.Output.Adv.FFmpeg.Type.URL="Output in URL" Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Output su File" @@ -332,7 +412,9 @@ Basic.Settings.Output.Adv.FFmpeg.AEncoder="Encoder Audio" Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Impostazioni codifica audio (se presente)" Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Impostazioni Muxer (se possibile)" +FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" +FilenameFormatting.TT="%CCYY Anno, quattro cifre\n%YY Anno, ultime due cifre (00-99)\n%MM Mese come numero decimale (01-12)\n%DD Giorno del mese, zero-padded (01-31)\n%hh Ore in formato 24 ore (00-23)\n%mm Minuto (00-59)\n%ss Secondi (00-61)\n%% Un % segno\n%a Giorno della settimana abbreviato\n%A Un nome del giorno della settimana intero\n%b Nome del mese abbreviato\n%B Nome del mese intero\n%d Giorno del mese, zero-padded (01-31)\n%H Ore in formato 24 ore (00-23)\n%I Ore in formato 12 ore (01-12)\n%m Mese come numero decimale (01-12)\n%M Minuto (00-59)\n%p Designazione AM o PM\n%S Secondi (00-61)\n%y Anno, ultime due lettere (00-99)\n%Y Anno\n%z ISO 8601 offset da UTC o fuso orario\n Nome o abbreviazione\n%Z Nome o abbreviazione del fuso orario\n" Basic.Settings.Video="Video" Basic.Settings.Video.Adapter="Adattatore video:" @@ -370,6 +452,11 @@ Basic.Settings.Audio.PushToTalkDelay="Ritardo Push-to-talk" Basic.Settings.Audio.UnknownAudioDevice="[Dispositivo non collegato o non disponibile]" Basic.Settings.Advanced="Avanzate" +Basic.Settings.Advanced.General.ProcessPriority="Priorità del processo" +Basic.Settings.Advanced.General.ProcessPriority.High="Alta" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Superiore al normale" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normale" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Bassa" Basic.Settings.Advanced.FormatWarning="Attenzione: I formati colore diversi da NV12 sono principalmente pensati per la registrazione, e non sono consigliati durante le dirette. Lo streaming può avere un utilizzo maggiore delle CPU a causa della conversione del formato del colore." Basic.Settings.Advanced.Audio.BufferingTime="Tempo di buffer audio" Basic.Settings.Advanced.Video.ColorFormat="Formato colore" diff --git a/obs/data/locale/ja-JP.ini b/obs/data/locale/ja-JP.ini index 432cf92..f63efd3 100644 --- a/obs/data/locale/ja-JP.ini +++ b/obs/data/locale/ja-JP.ini @@ -38,7 +38,7 @@ Hide="非表示" Untitled="無題" New="新規" Duplicate="複製" -Enable=" 有効にする" +Enable="有効にする" DisableOSXVSync="OSX の V-Sync を無効にする" ResetOSXVSyncOnExit="終了時に OSX の V-Sync をリセットする" HighResourceUsage="エンコードが高負荷です! ビデオ設定を下げるかより高速のエンコードプリセットの使用を検討してください。" @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS は現在アクティブです。 すべての配信/録 ConfirmRemove.Title="削除の確認" ConfirmRemove.Text="'$1' を削除してもよろしいですか?" +ConfirmRemove.TextMultiple="選択した %1 項目を削除してもよろしいですか?" Output.ConnectFail.Title="接続失敗" Output.ConnectFail.BadPath="パスかURLが無効です。再確認して下さい。" @@ -144,6 +145,12 @@ Basic.DisplayCapture="画面キャプチャ" Basic.Main.PreviewConextMenu.Enable="プレビュー有効化" +ScaleFiltering="スケールフィルタ" +ScaleFiltering.Point="ポイント" +ScaleFiltering.Bilinear="バイリニア" +ScaleFiltering.Bicubic="バイキュービック" +ScaleFiltering.Lanczos="ランチョス" + Deinterlacing="インターレース解除" Deinterlacing.Discard="破棄" Deinterlacing.Retro="レトロ" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="設定の変更" Basic.PropertiesWindow.Confirm="保存されていない変更があります。それらを維持しますか?" Basic.PropertiesWindow.NoProperties="有効なプロパティがありません" Basic.PropertiesWindow.AddFiles="ファイルを追加" +Basic.PropertiesWindow.AddDir="ディレクトリを追加" Basic.PropertiesWindow.AddURL="Path または URL を追加" +Basic.PropertiesWindow.AddEditableListDir="'%1' にディレクトリを追加" Basic.PropertiesWindow.AddEditableListFiles="ファイルを '%1' に追加" Basic.PropertiesWindow.AddEditableListEntry="'%1' にエントリを追加" Basic.PropertiesWindow.EditEditableListEntry="'%1' からのエントリを編集" @@ -250,7 +259,9 @@ Basic.Main.Connecting="接続中..." Basic.Main.StartRecording="録画開始" Basic.Main.StartStreaming="配信開始" Basic.Main.StopRecording="録画終了" +Basic.Main.StoppingRecording="録画を停止しています..." Basic.Main.StopStreaming="配信終了" +Basic.Main.StoppingStreaming="配信を停止しています..." Basic.Main.ForceStopStreaming="配信停止 (遅延破棄)" Basic.MainMenu.File="ファイル(&F)" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="最上部に移動(&T)" Basic.MainMenu.Edit.Order.MoveToBottom="最下部に移動(&B)" Basic.MainMenu.Edit.AdvAudio="オーディオの詳細プロパティ" +Basic.MainMenu.View="表示" +Basic.MainMenu.View.Toolbars="ツールバー" +Basic.MainMenu.View.Toolbars.Listboxes="リストボックス" +Basic.MainMenu.View.SceneTransitions="シーントランジション" +Basic.MainMenu.View.StatusBar="ステータスバー" + Basic.MainMenu.SceneCollection="シーンコレクション" Basic.MainMenu.Profile="プロファイル" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="テーマ" Basic.Settings.General.Language="言語" Basic.Settings.General.WarnBeforeStartingStream="配信を開始するときに確認ダイアログを表示する" Basic.Settings.General.WarnBeforeStoppingStream="配信を停止するときに確認ダイアログを表示する" +Basic.Settings.General.HideProjectorCursor="プロジェクター上のカーソルを非表示にする" Basic.Settings.General.Snapping="ソース配置のスナップ" Basic.Settings.General.ScreenSnapping="画面の端にソースをスナップする" Basic.Settings.General.CenterSnapping="水平方向および垂直方向の中心にソースをスナップする" Basic.Settings.General.SourceSnapping="他のソースにソースをスナップする" Basic.Settings.General.SnapDistance="スナップ感度" +Basic.Settings.General.RecordWhenStreaming="配信時に自動的に録画" +Basic.Settings.General.KeepRecordingWhenStreamStops="配信が停止しても録画を継続" Basic.Settings.Stream="配信" Basic.Settings.Stream.StreamType="配信種別" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="プッシュ-トーク遅延" Basic.Settings.Audio.UnknownAudioDevice="[デバイスが接続されていないまたは利用不可]" Basic.Settings.Advanced="詳細設定" +Basic.Settings.Advanced.General.ProcessPriority="プロセスの優先度" +Basic.Settings.Advanced.General.ProcessPriority.High="高" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="通常以上" +Basic.Settings.Advanced.General.ProcessPriority.Normal="通常" +Basic.Settings.Advanced.General.ProcessPriority.Idle="低" Basic.Settings.Advanced.FormatWarning="警告: NV12以外のカラーフォーマットは主に録画を想定しており、配信には非推奨です。配信ではカラーフォーマットの変換による CPU使用率の増加が発生する可能性があります。" Basic.Settings.Advanced.Audio.BufferingTime="音声バッファー処理時間" Basic.Settings.Advanced.Video.ColorFormat="カラーフォーマット" diff --git a/obs/data/locale/ko-KR.ini b/obs/data/locale/ko-KR.ini index 2de8b51..57048ec 100644 --- a/obs/data/locale/ko-KR.ini +++ b/obs/data/locale/ko-KR.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS가 현재 작동 중입니다. 모든 방송/녹화가 중 ConfirmRemove.Title="제거 확인" ConfirmRemove.Text="'$1'을 정말로 제거하시겠습니까?" +ConfirmRemove.TextMultiple="정말로 %1 개의 항목을 제거하겠습니까?" Output.ConnectFail.Title="연결에 실패했음" Output.ConnectFail.BadPath="잘못된 경로 혹은 연결 주소입니다. 유효한 값인지 설정을 확인하시기 바랍니다. " @@ -144,6 +145,12 @@ Basic.DisplayCapture="캡처 표시" Basic.Main.PreviewConextMenu.Enable="미리보기 활성화" +ScaleFiltering="비율 필터링" +ScaleFiltering.Point="점" +ScaleFiltering.Bilinear="이중선형" +ScaleFiltering.Bicubic="쌍삼차" +ScaleFiltering.Lanczos="란초스" + Deinterlacing="디인터레이싱" Deinterlacing.Discard="저장 안함" Deinterlacing.Retro="레트로" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="설정이 변경됨" Basic.PropertiesWindow.Confirm="아직 저장하지 않은 변경 사항이 있습니다. 변경을 유지하겠습니까?" Basic.PropertiesWindow.NoProperties="가능한 설정이 없음" Basic.PropertiesWindow.AddFiles="파일 추가" +Basic.PropertiesWindow.AddDir="디렉토리 추가" Basic.PropertiesWindow.AddURL="경로 또는 URL 추가" +Basic.PropertiesWindow.AddEditableListDir="'%1 에 디렉터리 항목 추가" Basic.PropertiesWindow.AddEditableListFiles="'%1' 에 파일 추가" Basic.PropertiesWindow.AddEditableListEntry="'%1 에 항목 추가" Basic.PropertiesWindow.EditEditableListEntry="'%1' 내 항목 수정" @@ -250,7 +259,9 @@ Basic.Main.Connecting="연결 중..." Basic.Main.StartRecording="녹화 시작" Basic.Main.StartStreaming="방송 시작" Basic.Main.StopRecording="녹화 중단" +Basic.Main.StoppingRecording="녹화를 중단합니다...." Basic.Main.StopStreaming="방송 중단" +Basic.Main.StoppingStreaming="방송을 중지합니다..." Basic.Main.ForceStopStreaming="방송 중지(지연된 분량도 마무리없이 즉시 송출 중단)" Basic.MainMenu.File="파일(&F)" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="가장 위로 올리기(&T)" Basic.MainMenu.Edit.Order.MoveToBottom="가장 아래로 내리기(&B)" Basic.MainMenu.Edit.AdvAudio="오디오 고급 설정(&A)" +Basic.MainMenu.View="보기(&V)" +Basic.MainMenu.View.Toolbars="도구 모음(&T)" +Basic.MainMenu.View.Toolbars.Listboxes="목록 상자(&L)" +Basic.MainMenu.View.SceneTransitions="장면 전환(&C)" +Basic.MainMenu.View.StatusBar="상태 표시줄(&S)" + Basic.MainMenu.SceneCollection="장면 모음(&S)" Basic.MainMenu.Profile="프로파일(&P)" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="테마" Basic.Settings.General.Language="언어" Basic.Settings.General.WarnBeforeStartingStream="방송을 시작할 때 확인 대화 상자 표시" Basic.Settings.General.WarnBeforeStoppingStream="방송을 중단할 때 확인 대화 상자 표시" +Basic.Settings.General.HideProjectorCursor="프로젝터 위 커서 숨기기" Basic.Settings.General.Snapping="소스를 자석처럼 달라붙여서 정렬" Basic.Settings.General.ScreenSnapping="소스를 화면 변두리에 붙임" Basic.Settings.General.CenterSnapping="소스를 수평과 수직 중앙에 붙임" Basic.Settings.General.SourceSnapping="소스를 다른 소스에 붙임" Basic.Settings.General.SnapDistance="자석 감도" +Basic.Settings.General.RecordWhenStreaming="방송 시 자동으로 녹화" +Basic.Settings.General.KeepRecordingWhenStreamStops="방송을 중단하더라도 녹화는 유지" Basic.Settings.Stream="방송" Basic.Settings.Stream.StreamType="방송 형식" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="누르며 말하기 지연" Basic.Settings.Audio.UnknownAudioDevice="[장치를 연결하지 않았거나 사용할 수 없음]" Basic.Settings.Advanced="고급" +Basic.Settings.Advanced.General.ProcessPriority="프로세스 우선순위 설정" +Basic.Settings.Advanced.General.ProcessPriority.High="실시간" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="높음" +Basic.Settings.Advanced.General.ProcessPriority.Normal="보통" +Basic.Settings.Advanced.General.ProcessPriority.Idle="낮음" Basic.Settings.Advanced.FormatWarning="경고: NV12 이외의 색상 형식은 주로 녹화를 위한 것이며, 방송에 적합하지 않습니다. 이대로 방송을 하게 되면 형식 전환을 위해 CPU 사용량이 증가할 수 있습니다." Basic.Settings.Advanced.Audio.BufferingTime="오디오 버퍼링 시간" Basic.Settings.Advanced.Video.ColorFormat="색상 형식" diff --git a/obs/data/locale/lt-LT.ini b/obs/data/locale/lt-LT.ini index b9e7f1a..00c8f27 100644 --- a/obs/data/locale/lt-LT.ini +++ b/obs/data/locale/lt-LT.ini @@ -52,23 +52,70 @@ Bottom="Iš apačios" QuickTransitions.SwapScenes="Sukeisti Peržiūros/Išvesties scenas po Perėjimo" QuickTransitions.SwapScenesTT="Sukeičia peržiūros ir išvesties scenas po perėjimo įvykdymo (jei originali išvesties scena vis dar egzistuoja).\nTai neatšauks jokių pakeitimų kurie galima buvo atlikti originalioje išvesties scenoje." QuickTransitions.DuplicateScene="Dubliuoti Sceną" +QuickTransitions.EditProperties="Dubliuoti šaltinius" +QuickTransitions.HotkeyName="Greitasis perėjimas: %1" +Basic.AddTransition="Pridėti konfigūruojamą perėjimą" +Basic.RemoveTransition="Pašalinti konfigūruojamą perėjimą" +Basic.TransitionProperties="Perėjimo savybės" +Basic.SceneTransitions="Scenos perėjimai" +Basic.TransitionDuration="Trukmė" +Basic.TogglePreviewProgramMode="Studijos režimas" +TransitionNameDlg.Text="Prašome įvesti perėjimo pavadinimą" +TransitionNameDlg.Title="Perėjimo pavadinimas" +TitleBar.Profile="Profilis" +TitleBar.Scenes="Scenos" +NameExists.Title="Pavadinimas jau egzistuoja" +NameExists.Text="Toks pavadinimas jau naudojamas." +NoNameEntered.Title="Prašome įvesti tinkamą pavadinimą" +NoNameEntered.Text="Negalite naudoti tuščio pavadinimo." +ConfirmStart.Title="Pradėti transliaciją?" +ConfirmStart.Text="Ar esate įsitikinęs, kad norite pradėti transliavimą?" +ConfirmStop.Title="Stabdyti transliaciją?" +ConfirmStop.Text="Ar esate įsitikinęs, kad norite stabdyti transliavimą?" +ConfirmExit.Title="Išeiti iš OBS?" +ConfirmExit.Text="OBS metu yra aktyvus. Visos transliacijos/įrašymai bus išjungti. Ar tikrai norite išeiti?" +ConfirmRemove.Title="Pašalinimo patvirtinimas" +ConfirmRemove.Text="Ar tikrai norite pašalinti '$1'?" +Output.ConnectFail.Title="Nepavyko prisijungti" +Output.ConnectFail.BadPath="Neteisingas kelias arba jungimosi URL. Prašome patikrinti nustatymus ir įsitikinti, kad jie teisingi." +Output.ConnectFail.ConnectFailed="Nepavyko prisijungti prie serverio" +Output.ConnectFail.Error="Netikėta klaida bandant jungtis į serverį. Daugiau informacijos žurnalo faile." +Output.ConnectFail.Disconnected="Atjungtas nuo serverio." +Output.RecordFail.Title="Nepavyko pradėti įrašo" +Output.RecordFail.Unsupported="Išvesties formatas nepalaikomas arba nepalaiko daugiau vieno garso takelio. Prašome patikrinti nustatymus ir bandyti vėl." +Output.RecordNoSpace.Title="Nepakanka vietos diske" +Output.RecordNoSpace.Msg="Nėra pakankamai vietos diske, kad tęsti įrašymą." +Output.RecordError.Title="Įrašymo klaida" +Output.RecordError.Msg="Nenustatyta klaida įrašant." +Output.BadPath.Title="Blogas failo kelias" +Output.BadPath.Text="Nustatytas išvesties failo kelias yra netinkamas. Prašome patikrinti nustatymus, kad įsitikintumėte, jog nustatytas failo kelias yra teisingas." +LogReturnDialog="Žurnalas įkeltas sėkmingai" +LogReturnDialog.CopyURL="Kopijuoti adresą" +LogReturnDialog.ErrorUploadingLog="Žurnalo failo įkėlimo klaida" +LicenseAgreement="Licencinė sutartis" +LicenseAgreement.PleaseReview="Prašome peržiūrėti licencijos sąlygas prieš OBS naudojimą. Naudodamasis šia programa, jūs pripažįstate, kad perskaitėte ir sutikite su GNU General Public License v2.0 (anglų k.) sąlygomis. Prašome slinkti žemyn, kad pamatytumėte likusią sutarties dalį." +LicenseAgreement.ClickIAgreeToContinue="Jei sutinkate su sutarties sąlygomis, pasirinkite Aš sutinku, kad tęsti. Jūs privalote sutikti su sutartimi, kad naudotis OBS." +LicenseAgreement.IAgree="Sutinku" +LicenseAgreement.Exit="Išeiti" +Remux.SourceFile="OBS įrašas" Remux.TargetFile="Paskirties failas" Remux.Remux="Permiksuoti" +Remux.OBSRecording="OBS įrašas" Remux.FinishedTitle="Permiksavimas baigtas" Remux.Finished="Įrašas permiksuotas" Remux.FinishedError="Įrašas permiksuotas, tačiau failas gali būti neužbaigtas" @@ -94,6 +141,12 @@ Basic.DisplayCapture="Ekrano perėmimas" Basic.Main.PreviewConextMenu.Enable="Įjungti peržiūrą" +ScaleFiltering="Mastelio filtras" +ScaleFiltering.Point="Taškas" +ScaleFiltering.Bilinear="Dvilinijinis" +ScaleFiltering.Bicubic="Bikubinis" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Perėjimo šalinimas" Deinterlacing.Discard="Atmesti" Deinterlacing.Retro="Retro" @@ -130,12 +183,32 @@ Basic.SourceSelect.AddVisible="Padaryti šaltinį matomu" Basic.PropertiesWindow="'%1' savybės" Basic.PropertiesWindow.AutoSelectFormat="%1 (automatinis pasirinkimas: %2)" +Basic.PropertiesWindow.SelectColor="Pasirinkti spalvą" +Basic.PropertiesWindow.SelectFont="Pasirinkti šriftą" +Basic.PropertiesWindow.ConfirmTitle="Nustatymai pakeisti" +Basic.PropertiesWindow.Confirm="Yra neišsaugotų pakeitimų. Ar norite juos išlaikyti?" +Basic.PropertiesWindow.NoProperties="Savybių nėra" +Basic.PropertiesWindow.AddFiles="Pridėti failus" +Basic.PropertiesWindow.AddDir="Pridėti katalogą" +Basic.PropertiesWindow.AddURL="Pridėti kelią/URL" +Basic.TransformWindow.Position="Padėtis" +Basic.TransformWindow.Rotation="Pasukimas" +Basic.TransformWindow.Size="Dydis" +Basic.TransformWindow.Alignment.TopLeft="Viršuje kairėje" +Basic.TransformWindow.Alignment.TopCenter="Viršuje per vidurį" +Basic.TransformWindow.Alignment.TopRight="Viršuje dešinėje" +Basic.TransformWindow.Alignment.CenterLeft="Centruota kairėje" +Basic.TransformWindow.Alignment.Center="Centre" +Basic.TransformWindow.Alignment.CenterRight="Centruoda dešinįje" +Basic.TransformWindow.Alignment.BottomLeft="Apačioje kairėje" +Basic.TransformWindow.Alignment.BottomCenter="Apačioje per vidurį" +Basic.TransformWindow.Alignment.BottomRight="Apačioje dešinėje" Basic.Main.AddSourceHelp.Text="Turite turėti bent 1 sceną, kad galėtumėte pridėti šaltinį." @@ -174,6 +247,12 @@ Basic.MainMenu.Edit.Transform.Rotate180="Pasukti 180 laipsnių" Basic.MainMenu.Edit.Transform.FlipHorizontal="Apversti &horizontaliai" Basic.MainMenu.Edit.Transform.FlipVertical="Apversti &vertikaliai" Basic.MainMenu.Edit.Transform.FitToScreen="Sutalpinti į ekraną" +Basic.MainMenu.Edit.Order="&Rikiavimas" +Basic.MainMenu.Edit.Order.MoveUp="Perkelti aukštyn" +Basic.MainMenu.Edit.Order.MoveDown="Perkelti žemyn" +Basic.MainMenu.Edit.Order.MoveToTop="Perkelti į viršų" +Basic.MainMenu.Edit.Order.MoveToBottom="Perkelti į apačią" + diff --git a/obs/data/locale/ms-MY.ini b/obs/data/locale/ms-MY.ini index 0d03804..924db64 100644 --- a/obs/data/locale/ms-MY.ini +++ b/obs/data/locale/ms-MY.ini @@ -116,6 +116,7 @@ LicenseAgreement.Exit="Keluar" Remux.SourceFile="Rakaman OBS" Remux.TargetFile="Fail sasaran" +Remux.OBSRecording="Rakaman OBS" Remux.SelectRecording="Pilih Rakaman OBS …" Remux.SelectTarget="Pilih fail sasaran …" Remux.FileExistsTitle="Fail sasaran wujud" @@ -136,6 +137,9 @@ Basic.Scene="Adegan" Basic.Main.PreviewConextMenu.Enable="Benarkan Pratonton" +Deinterlacing.Retro="Retro" +Deinterlacing.Linear="Linear" + Basic.Main.AddSceneDlg.Title="Tambah Adegan" Basic.Main.AddSceneDlg.Text="Sila taip nama adegan" @@ -193,6 +197,7 @@ Basic.Filters.Title="Penapis untuk %1" Basic.Filters.AddFilter.Title="Nama penapis" Basic.Filters.AddFilter.Text="Sila nyatakan nama penapis" +Basic.TransformWindow="Pengubahan Item Adegan" Basic.TransformWindow.Position="Kedudukan" Basic.TransformWindow.Rotation="Pusingan" Basic.TransformWindow.Size="Saiz" @@ -220,6 +225,7 @@ Basic.Main.StartRecording="Mula rakaman" Basic.Main.StartStreaming="Mula 'streaming'" Basic.Main.StopRecording="Hentikan rakaman" Basic.Main.StopStreaming="Hentikan 'streaming'" +Basic.Main.ForceStopStreaming="Berhenti 'streaming' (buang kelewatan)" Basic.MainMenu.File="&Fail" Basic.MainMenu.File.Export="&Export" @@ -228,20 +234,57 @@ Basic.MainMenu.File.ShowRecordings="Papar &Rakaman" Basic.MainMenu.File.Settings="&Tetapan" Basic.MainMenu.File.ShowSettingsFolder="Tunjukkan Folder Tetapan" Basic.MainMenu.File.ShowProfileFolder="Tunjukkan Folder Profil" +Basic.MainMenu.AlwaysOnTop="&Sentiasa Di Atas" Basic.MainMenu.File.Exit="Keluar (&X)" +Basic.MainMenu.Edit="&Sunting" Basic.MainMenu.Edit.Undo="&Ubah Balik" Basic.MainMenu.Edit.Redo="Buat Semula (&R)" Basic.MainMenu.Edit.UndoAction="&Ubah Balik $1" +Basic.MainMenu.Edit.RedoAction="&Ubah Semula $1" +Basic.MainMenu.Edit.Transform="&Ubah" +Basic.MainMenu.Edit.Transform.EditTransform="&Sunting Perubahan..." +Basic.MainMenu.Edit.Transform.Rotate90CW="Putarkan 90 darjah mengikut arah jam" +Basic.MainMenu.Edit.Transform.Rotate90CCW="Putarkan 90 darjah melawan arah jam" +Basic.MainMenu.Edit.Transform.Rotate180="Putarkan 180 darjah" +Basic.MainMenu.Edit.Transform.FitToScreen="&Muat di skrin" +Basic.MainMenu.Edit.Transform.StretchToScreen="&Regangkan ke skrin" +Basic.MainMenu.Edit.Order.MoveUp="Gerakkan ke &atas" +Basic.MainMenu.Edit.Order.MoveDown="Gerakkan ke &bawah" +Basic.MainMenu.Profile="&Profil" + +Basic.MainMenu.Help.Website="Lawat laman &Web" +Basic.MainMenu.Help.Logs="Fail &Log" +Basic.MainMenu.Help.Logs.ShowLogs="&Tunjukkan Fail-Fail Log" +Basic.MainMenu.Help.Logs.UploadCurrentLog="Muat naik Fail Log &Kini" +Basic.MainMenu.Help.CheckForUpdates="Semak Versi Baharu" Basic.Settings.ConfirmTitle="Sahkan Perubahan" +Basic.Settings.Confirm="Anda mempunyai perubahan yang tidak disimpan. Simpan perubahan?" + +Basic.Settings.General="Am" +Basic.Settings.General.Theme="Tema" +Basic.Settings.General.Language="Bahasa" +Basic.Settings.General.WarnBeforeStartingStream="Tunjukkan dialog pengesahan ketika memulakan 'stream'" +Basic.Settings.General.WarnBeforeStoppingStream="Tunjukkan dialog pengesahan ketika menghentikan 'stream'" + +Basic.Settings.Stream="'Stream'" +Basic.Settings.Stream.StreamType="Jenis 'Stream'" + +Basic.Settings.Output.Format="Format Rakaman" +Basic.Settings.Output.SelectFile="Pilih Fail Rakaman" +Basic.Settings.Output.Simple.RecordingQuality="Kualiti Rakaman" +Basic.Settings.Output.Simple.RecordingQuality.Stream="Sama seperti 'stream'" +Basic.Settings.Output.Simple.Encoder.Software="Perisian (x264)" +Basic.Settings.Output.Reconnect="Sambung semula secara automatik" +Basic.Settings.Output.RetryDelay="Kelewatan Percubaan (saat)" +Basic.Settings.Output.MaxRetries="Cubaan Maksimum" - - - +Basic.Settings.Output.Adv.Recording="Rakaman" +Basic.Settings.Output.Adv.Recording.Type="Jenis" Basic.Settings.Output.Adv.FFmpeg.Type="Jenis Output FFmpeg" diff --git a/obs/data/locale/nb-NO.ini b/obs/data/locale/nb-NO.ini index 8bf7b83..9683ab6 100644 --- a/obs/data/locale/nb-NO.ini +++ b/obs/data/locale/nb-NO.ini @@ -8,6 +8,7 @@ Cancel="Avbryt" Close="Lukk" Save="Lagre" Discard="Forkast" +Disable="Deaktiver" Yes="Ja" No="Nei" Add="Legg til" @@ -38,10 +39,33 @@ Untitled="Uten navn" New="Ny" Duplicate="Dupliser" Enable="Aktiver" +DisableOSXVSync="Deaktiver OS X v-sync" +ResetOSXVSyncOnExit="Tilbakestill OS X v-sync ved avsluttning" +HighResourceUsage="Koder overbelastet! Vurder nedjustering av videokvaliteten eller en raskere forhåndsinstilling for koderen." Transition="Overgang" +QuickTransitions="Raske overganger" +Left="Venstre" +Right="Høyre" +Top="Topp" +Bottom="Bunn" +QuickTransitions.SwapScenes="Bytt forhåndsvisnings-/utgangsscener etter overgang" +QuickTransitions.SwapScenesTT="Bytter forhåndsvisnings- og utgangsscenen etter overgang, hvis den originale utgangsscenen fortsatt eksisterer.\nDette vil ikke tilbakestille endringer på den originale utgangsscenen." +QuickTransitions.DuplicateScene="Dupliser scene" +QuickTransitions.DuplicateSceneTT="Når denne instillingen er aktiv kan du justere visningen av kilder i den samme scenen uten endring i utgangsvisningen.\nOm du vil endre kildenes instillinger må du aktivere «dupliserte kilder.»\nVed aktivering eller deaktivering av denne instillingen vil utgangsscenen omstilles, om den fortsatt eksisterer." +QuickTransitions.EditProperties="Dupliserte kilder" +QuickTransitions.EditPropertiesTT="Lar deg justere kilders egenskaper i samme scene uten å endre visning i utgangsscenen.\nKan bare brukes om instillingen «duplisert scene» er aktiv.\nEnkelte kilder (som opptak eller mediekilder) støtter ikke denne funksjonen og kan ikke endres separat.\nOm du aktiverer eller deaktiverer denne instillingen vil omstille utgangsscenen om den fortsatt eksisterer.\n\nAdvarsel: kan kreve mer systemressurser ettersom alle kildene i scenen blir duplisert." +QuickTransitions.HotkeyName="Hurtigovergang: %1" +Basic.AddTransition="Legg til konfigurerbar overgang" +Basic.RemoveTransition="Fjern konfigurerbar overgang" +Basic.TransitionProperties="Egenskaper" +Basic.SceneTransitions="Sceneoverganger" +Basic.TransitionDuration="Varighet" +Basic.TogglePreviewProgramMode="Studiomodus" +TransitionNameDlg.Text="Gi et navn til overgangen" +TransitionNameDlg.Title="Overgangsnavn" TitleBar.Profile="Profil" TitleBar.Scenes="Scener" @@ -52,7 +76,11 @@ NameExists.Text="Dette navnet er allerede i bruk." NoNameEntered.Title="Vennligst oppgi et gyldig navn" NoNameEntered.Text="Du kan ikke bruke et tomt navn." +ConfirmStart.Title="Begynn strømming?" +ConfirmStart.Text="Er du sikker på at du vil begynne strømming?" +ConfirmStop.Title="Stans strømming?" +ConfirmStop.Text="Er du sikker på at du vil stanse strømming?" ConfirmExit.Title="Avslutt OBS?" ConfirmExit.Text="OBS er aktiv. Alle strømmer og opptak vil bli stoppet. Er du sikker på at du vil avslutte?" @@ -63,11 +91,12 @@ ConfirmRemove.Text="Er du sikker på at du vil fjerne '$1'?" Output.ConnectFail.Title="Tilkobling misklytes" Output.ConnectFail.BadPath="Ugyldig filbane eller tilkoblings-URL. Vennligst bekreft at instillingene dine er riktige." Output.ConnectFail.ConnectFailed="Kunne ikke koble til tjener." +Output.ConnectFail.InvalidStream="Kunne ikke få adgang til den angitte kanalen eller strømmenøkkelen. Strømmenøkkelen kan være feil eller det kan være et problem med tilkoblingen til tjeneren." Output.ConnectFail.Error="En uventet feil oppstod ved tilkobling til serveren. Detaljert informasjon kan du finne i loggfila." Output.ConnectFail.Disconnected="Koblet fra tjeneren." Output.RecordFail.Title="Kunne ikke starte opptak" -Output.RecordFail.Unsupported="Utdataformatet støttes enten ikke eller støtter ikke mer enn ett lydspor. Kontroller innstillingene og prøv igjen." +Output.RecordFail.Unsupported="Utgangsformatet støttes enten ikke eller støtter ikke mer enn ett lydspor. Kontroller innstillingene og prøv igjen." Output.RecordNoSpace.Title="Ikke nok diskplass" Output.RecordNoSpace.Msg="Det er ikke nok diskplass til å fortsette opptaket." Output.RecordError.Title="Innspillingsfeil" @@ -89,6 +118,7 @@ LicenseAgreement.Exit="Avslutt" Remux.SourceFile="OBS-opptak" Remux.TargetFile="Målfil" Remux.Remux="Remuks" +Remux.OBSRecording="OBS-opptak" Remux.FinishedTitle="Remuksing ferdig" Remux.Finished="Opptak remukset" Remux.FinishedError="Opptak remukset, men filen kan være ufullstendig." @@ -115,6 +145,18 @@ Basic.DisplayCapture="Skjermopptak" Basic.Main.PreviewConextMenu.Enable="Aktiver forhåndsvisning" +Deinterlacing="Avsammenfletting" +Deinterlacing.Discard="Forkast" +Deinterlacing.Retro="Retro" +Deinterlacing.Blend="Bland" +Deinterlacing.Blend2x="Dobbelblanding" +Deinterlacing.Linear="Lineær" +Deinterlacing.Linear2x="Dobbellineær" +Deinterlacing.Yadif="Yadif" +Deinterlacing.Yadif2x="Dobbelyadif" +Deinterlacing.TopFieldFirst="Øverste felt først" +Deinterlacing.BottomFieldFirst="Nederste felt først" + Basic.Main.AddSceneDlg.Title="Ny Scene" Basic.Main.AddSceneDlg.Text="Vennligst gi et navn til scenen." @@ -138,17 +180,23 @@ Basic.SourceSelect.AddExisting="Legg til eksisterende" Basic.SourceSelect.AddVisible="Gjør kilden synlig" Basic.PropertiesWindow="Egenskaper for '%1'" +Basic.PropertiesWindow.AutoSelectFormat="%1 (selvvalg: %2)" Basic.PropertiesWindow.SelectColor="Velg farge" Basic.PropertiesWindow.SelectFont="Velg skrifttype" Basic.PropertiesWindow.ConfirmTitle="Innstillingene er endret" Basic.PropertiesWindow.Confirm="Det er ulagra endringer. Vil du beholde dem?" Basic.PropertiesWindow.NoProperties="Ingen egenskaper tilgjengelige" Basic.PropertiesWindow.AddFiles="Legg til filer" +Basic.PropertiesWindow.AddDir="Legg til mappe" Basic.PropertiesWindow.AddURL="Legg til fil- eller URL-adresse" +Basic.PropertiesWindow.AddEditableListDir="Legg mappe til «%1»" Basic.PropertiesWindow.AddEditableListFiles="Legg filer til '%1'" Basic.PropertiesWindow.AddEditableListEntry="Lag oppføring til '%1'" Basic.PropertiesWindow.EditEditableListEntry="Endre oppføring fra '%1'" +Basic.PropertiesView.FPS.Simple="Bildefrekvens (enkel)" +Basic.PropertiesView.FPS.Rational="Bildefrekvens (rasjonalt tall)" +Basic.PropertiesView.FPS.ValidFPSRanges="Gyldige bildefrekvensrekkevidder:" Basic.InteractionWindow="Kommuniserer med «%1»" @@ -176,6 +224,7 @@ Basic.TransformWindow.Alignment="Posisjonsoppstilling" Basic.TransformWindow.BoundsType="Innholdsavgrensningstype" Basic.TransformWindow.BoundsAlignment="Oppstilling i innholdsavgrensning" Basic.TransformWindow.Bounds="Innholdsavgrensningsstørrelse" +Basic.TransformWindow.Crop="Beskjæring" Basic.TransformWindow.Alignment.TopLeft="Øverst til venstre" Basic.TransformWindow.Alignment.TopCenter="Øverst i midten" @@ -204,7 +253,9 @@ Basic.Main.Connecting="Kobler til…" Basic.Main.StartRecording="Start Opptak" Basic.Main.StartStreaming="Start Strømming" Basic.Main.StopRecording="Stopp Opptak" +Basic.Main.StoppingRecording="Stanser innspilling…" Basic.Main.StopStreaming="Stopp Strømming" +Basic.Main.StoppingStreaming="Stanser strøm…" Basic.Main.ForceStopStreaming="Stopp strømming (forkast forsinkelse)" Basic.MainMenu.File="&Fil" @@ -215,6 +266,7 @@ Basic.MainMenu.File.Remux="Re&muks opptak" Basic.MainMenu.File.Settings="Inn&stillinger" Basic.MainMenu.File.ShowSettingsFolder="Vis innstillingsmappen" Basic.MainMenu.File.ShowProfileFolder="Vis profilmappen" +Basic.MainMenu.AlwaysOnTop="&Alltid synlig" Basic.MainMenu.File.Exit="&Avslutt" Basic.MainMenu.Edit="&Redigér" @@ -240,6 +292,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Legg på &toppen" Basic.MainMenu.Edit.Order.MoveToBottom="Legg på &bunnen" Basic.MainMenu.Edit.AdvAudio="&Avanserte lydinstillinger" + Basic.MainMenu.SceneCollection="&Scenesamling" Basic.MainMenu.Profile="&Profil" @@ -259,30 +312,46 @@ Basic.Settings.Confirm="Du har endringer som ikke er lagret. Vil du lagre?" Basic.Settings.General="Generelt" Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Språk" +Basic.Settings.General.WarnBeforeStartingStream="Vis bekreftelsesdialogboks når du starter strømming" +Basic.Settings.General.WarnBeforeStoppingStream="Vis bekreftelsesdialogboks når stanser strømming" +Basic.Settings.General.HideProjectorCursor="Skjul musepekeren over projektorer" +Basic.Settings.General.Snapping="Festing ved kildejustering" +Basic.Settings.General.ScreenSnapping="Fest kilder til kanten av skjermen" +Basic.Settings.General.CenterSnapping="Fest kilder til vannrett og loddrett midtpunkt" +Basic.Settings.General.SourceSnapping="Fest kilder til andre kilder" +Basic.Settings.General.SnapDistance="Festingfølsomhet" +Basic.Settings.General.RecordWhenStreaming="Spill inn automatisk ved strømming" +Basic.Settings.General.KeepRecordingWhenStreamStops="Fortsett innspilling etter strømming" Basic.Settings.Stream="Strøm" Basic.Settings.Stream.StreamType="Strømmetype" -Basic.Settings.Output="Innspilling" +Basic.Settings.Output="Utgang" Basic.Settings.Output.Format="Opptaksformat" Basic.Settings.Output.Encoder="Koder" Basic.Settings.Output.SelectDirectory="Velg opptaksmappe" Basic.Settings.Output.SelectFile="Velg opptaksfil" -Basic.Settings.Output.Mode="Innspillingsmodus" +Basic.Settings.Output.EnforceBitrate="Håndhev strømmingtjenestens bitrategrense" +Basic.Settings.Output.Mode="Utgangsmodus" Basic.Settings.Output.Mode.Simple="Enkel" Basic.Settings.Output.Mode.Adv="Avansert" -Basic.Settings.Output.Mode.FFmpeg="FFmpeg produkt" +Basic.Settings.Output.Mode.FFmpeg="FFmpeg-utgang" Basic.Settings.Output.Simple.SavePath="Opptaksbane" Basic.Settings.Output.Simple.RecordingQuality="Opptakskvalitet" Basic.Settings.Output.Simple.RecordingQuality.Stream="Samme som strøm" Basic.Settings.Output.Simple.RecordingQuality.Small="Høy kvalitet, middels filstørrelse" Basic.Settings.Output.Simple.RecordingQuality.HQ="Veldig høy kvalitet, stor filstørrelse" Basic.Settings.Output.Simple.RecordingQuality.Lossless="Tapsfri kvalitet, veldig stor filstørrelse" +Basic.Settings.Output.Simple.Warn.VideoBitrate="Advarsel: strømmens bitrate vil settes til %1, som er den øvre grensen for gjeldende strømmetjeneste. Om du ønsker å gå over denne grensen må du aktivere avanserte koderinnstillinger og sørge for at valget for håndheving av strømmetjenestens grense ikke er huket av." +Basic.Settings.Output.Simple.Warn.AudioBitrate="Advarsel: strømmens lydbitrate vil settes til %1, som er den øvre grensen for gjeldende strømmetjeneste. Om du ønsker å gå over denne grensen må du aktivere avanserte koderinnstillinger og sørge for at valget for håndheving av strømmetjenestens grense ikke er huket av." Basic.Settings.Output.Simple.Warn.Encoder="Advarsel: Opptak med programvarekoder i en annen kvalitetsinnstilling enn strømmingen vil kreve ekstra prosessorressurser om du strømmer og tar opp på samme tid." Basic.Settings.Output.Simple.Warn.Lossless="Advarsel: Tapsfri kvalitet resulterer i enormt store filstørrelser! Denne innstillingen kan bruke oppimot 7 GB diskplass per minutt ved opptak med høy oppløsning og bildefrekvens. Tapsfri kvalitet anbefales ikke for lange opptak med mindre du har store mengder diskplass tilgjengelig." Basic.Settings.Output.Simple.Warn.Lossless.Msg="Er du sikker på at du vil bruke tapsfri kvalitet?" Basic.Settings.Output.Simple.Warn.Lossless.Title="Tapsfri kvalitet advarsel!" +Basic.Settings.Output.Simple.Warn.MultipleQSV="Advarsel: du kan ikke bruke flere separate QSV-kodere når du strømmer og tar opp samtidig. Hvis du ønsker gjøre begge på samme tid må du endre strømme- eller opptakskoderen." Basic.Settings.Output.Simple.Encoder.Software="Programvare (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Maskinvare (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Maskinvare (NVENC)" Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Programvare (x264 forhåndsinstilling for liten prosessorbruk, øker filstørrelsen)" Basic.Settings.Output.VideoBitrate="Bildeoverføringshastighet" Basic.Settings.Output.AudioBitrate="Lydoverføringshastighet" @@ -292,8 +361,10 @@ Basic.Settings.Output.MaxRetries="Høyst antall tilkoblingsforsøk" Basic.Settings.Output.Advanced="Aktiver Avanserte Koderinstillinger" Basic.Settings.Output.EncoderPreset="Koderforhåndsinstilling (raskere gir mindre prosessorbelastning)" Basic.Settings.Output.CustomEncoderSettings="Egendefinert koderinstilling" +Basic.Settings.Output.CustomMuxerSettings="Egenfinderte mukserinstillinger" +Basic.Settings.Output.NoSpaceFileName="Lag filnavn uten mellomrom" -Basic.Settings.Output.Adv.Rescale="Reskaler produkt" +Basic.Settings.Output.Adv.Rescale="Reskaler utgang" Basic.Settings.Output.Adv.AudioTrack="Lydspor" Basic.Settings.Output.Adv.Streaming="Strømming" Basic.Settings.Output.Adv.ApplyServiceSettings="Bruk strømmetjenerens koderinstillinger" @@ -305,11 +376,13 @@ Basic.Settings.Output.Adv.Audio.Track4="Spor 4" Basic.Settings.Output.Adv.Recording="Opptak" Basic.Settings.Output.Adv.Recording.Type="Type" Basic.Settings.Output.Adv.Recording.Type.Standard="Standard" -Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Egendefinert FFmpeg produkt" +Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Egendefinert FFmpeg-utgang" Basic.Settings.Output.Adv.Recording.UseStreamEncoder="(Bruk strømkoder)" -Basic.Settings.Output.Adv.FFmpeg.Type="FFmpeg-utdatatype" -Basic.Settings.Output.Adv.FFmpeg.Type.URL="Utdata til URL" -Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Utdata til fil" +Basic.Settings.Output.Adv.Recording.Filename="Filnavnformat" +Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Skriv over om filen eksisterer" +Basic.Settings.Output.Adv.FFmpeg.Type="FFmpeg-utgangstype" +Basic.Settings.Output.Adv.FFmpeg.Type.URL="Utgang til URL" +Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Utgang til fil" Basic.Settings.Output.Adv.FFmpeg.SaveFilter.Common="Vanlige opptaksformater" Basic.Settings.Output.Adv.FFmpeg.SaveFilter.All="Alle filer" Basic.Settings.Output.Adv.FFmpeg.SavePathURL="Filbane eller URL" @@ -327,12 +400,14 @@ Basic.Settings.Output.Adv.FFmpeg.AEncoder="Lydkoder" Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Lydkoderinstillinger (om noen)" Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Mukserinstillinger (om noen)" +FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" +FilenameFormatting.TT="%CCYY år, fire sifre\n%YY år, siste to sifre (00-99)\n%MM måned, som tall (01-12)\n%DD dag i måneden, forranstillt med null (01-31)\n%hh time, i tjuefiretimersformat (00-23)\n%mm minutt (00-59)\n%ss sekund (00-61)\n%% et prosenttegn\n%a forkortet ukedagsnavn\n%A helt ukedagsnavn\n%b forkortet månedsnavn\n%B helt månedsnavn\n%d dag i måneden, forranstillt med null (01-31)\n%H time, i tjuefiretimersformat (00-23)\n%I time, i tolvtimersformat (01-12)\n%m måned, som tall (01-12)\n%M minutt (00-59)\n%p formiddags- og ettermiddagsymbol (AM, PM)\n%S sekund (00-61)\n%y år, siste to sifre (00-99)\n%Y år\n%z ISO 8601 forskyvd fra UTC eller tidssone-\n navn eller -forkortelse\n%Z Tidssonenavn eller -forkortelse\n" Basic.Settings.Video="Bilde" Basic.Settings.Video.Adapter="Bildeadapter:" Basic.Settings.Video.BaseResolution="Grunnoppløsning (lerret):" -Basic.Settings.Video.ScaledResolution="Utdataoppløsning (skalert):" +Basic.Settings.Video.ScaledResolution="Utgangsoppløsning (skalert):" Basic.Settings.Video.DownscaleFilter="Nedskaleringsfilter:" Basic.Settings.Video.DisableAeroWindows="Deaktiver Aero (kun Windows)" Basic.Settings.Video.FPS="FPS:" @@ -343,7 +418,7 @@ Basic.Settings.Video.Numerator="Teller:" Basic.Settings.Video.Denominator="Nevner:" Basic.Settings.Video.Renderer="Renderer:" Basic.Settings.Video.InvalidResolution="Ugyldig oppløsningsverdi. Må være [bredde]x[høyde] (f.eks. 1920x1080)" -Basic.Settings.Video.CurrentlyActive="Bildeinnspilling er aktiv. Vennligst skru av alle innspillinger for å endre bildeinstillingene" +Basic.Settings.Video.CurrentlyActive="Bildeutgang er aktiv. Vennligst stans alle utganger for å endre bildeinstillingene." Basic.Settings.Video.DisableAero="Skru av Aero" Basic.Settings.Video.DownscaleFilter.Bilinear="Bilineær (raskest, men uskarp ved skalering)" @@ -362,6 +437,7 @@ Basic.Settings.Audio.EnablePushToMute="Aktiver demp-ved-trykk" Basic.Settings.Audio.PushToMuteDelay="Demp-ved-trykk forsinkelse" Basic.Settings.Audio.EnablePushToTalk="Aktiver snakk-ved-trykk" Basic.Settings.Audio.PushToTalkDelay="Snakk-ved-trykk forsinkelse" +Basic.Settings.Audio.UnknownAudioDevice="[Enhet ikke tilkoblet eller ikke tilgjengelig]" Basic.Settings.Advanced="Avansert" Basic.Settings.Advanced.FormatWarning="Advarsel: Fargeformater andre enn NV12 er ment for opptak. Disse formatene anbefales ikke ved strømming, da det fører til økt prosessorbruk som følge av fargeformatkonvertering." diff --git a/obs/data/locale/nl-NL.ini b/obs/data/locale/nl-NL.ini index 020e032..cd6fe17 100644 --- a/obs/data/locale/nl-NL.ini +++ b/obs/data/locale/nl-NL.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS is momenteel actief. Alle streams/opnames zullen worden af ConfirmRemove.Title="Bevestig het verwijderen" ConfirmRemove.Text="Weet je zeker dat je '$1' wil verwijderen?" +ConfirmRemove.TextMultiple="Weet je zeker dat je %1 elementen wil verwijderen?" Output.ConnectFail.Title="Kan geen verbinding maken" Output.ConnectFail.BadPath="Ongeldig pad of verbindings-url. Controleer a.u.b. of je instellingen geldig zijn." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Beeldschermcapture" Basic.Main.PreviewConextMenu.Enable="Preview inschakelen" +ScaleFiltering="Schaal-filter" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinear" +ScaleFiltering.Bicubic="Bicubic" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Deinterlacing" Deinterlacing.Discard="Verwerpen" Deinterlacing.Retro="Retro" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Instellingen Aangepast" Basic.PropertiesWindow.Confirm="Er zijn onopgeslagen aanpassingen. Wil je deze bewaren?" Basic.PropertiesWindow.NoProperties="Geen eigenschappen beschikbaar" Basic.PropertiesWindow.AddFiles="Bestanden Toevoegen" +Basic.PropertiesWindow.AddDir="Map Toevoegen" Basic.PropertiesWindow.AddURL="Pad/URL Toevoegen" +Basic.PropertiesWindow.AddEditableListDir="Voeg map toe aan '%1'" Basic.PropertiesWindow.AddEditableListFiles="Voeg bestanden toe aan '%1'" Basic.PropertiesWindow.AddEditableListEntry="Voeg toe aan '%1'" Basic.PropertiesWindow.EditEditableListEntry="Verwijder van '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="Verbinden..." Basic.Main.StartRecording="Opname Starten" Basic.Main.StartStreaming="Stream Starten" Basic.Main.StopRecording="Opname Stoppen" +Basic.Main.StoppingRecording="Opname Stoppen..." Basic.Main.StopStreaming="Stream Stoppen" +Basic.Main.StoppingStreaming="Stream Stoppen..." Basic.Main.ForceStopStreaming="Stop Stream (vertraging negeren)" Basic.MainMenu.File="&Bestand" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Naar Boven Schuiven (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="Naar Onderen Schuiven (&B)" Basic.MainMenu.Edit.AdvAudio="Geavanceerde &Audioinstellingen" +Basic.MainMenu.View="&Beeld" +Basic.MainMenu.View.Toolbars="&Werkbalken" +Basic.MainMenu.View.Toolbars.Listboxes="&Lijsten" +Basic.MainMenu.View.SceneTransitions="S&cène-overgangen" +Basic.MainMenu.View.StatusBar="&Statusbalk" + Basic.MainMenu.SceneCollection="&Scèneverzameling" Basic.MainMenu.Profile="&Profiel" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Thema" Basic.Settings.General.Language="Taal" Basic.Settings.General.WarnBeforeStartingStream="Laat bevestigingsvenster zien bij het starten van streams" Basic.Settings.General.WarnBeforeStoppingStream="Laat bevestiginsvenster zien bij het stoppen van streams" +Basic.Settings.General.HideProjectorCursor="Verberg cursor boven projectors" Basic.Settings.General.Snapping="Bronuitlijning" Basic.Settings.General.ScreenSnapping="Bronnen uitlijnen op de rand van het scherm" Basic.Settings.General.CenterSnapping="Bronnen uitlijnen op het horizontale en verticale midden" Basic.Settings.General.SourceSnapping="Bronnen uitlijnen op andere bronnen" Basic.Settings.General.SnapDistance="Gevoeligheid" +Basic.Settings.General.RecordWhenStreaming="Stream automatisch opnemen" +Basic.Settings.General.KeepRecordingWhenStreamStops="Opname voortzetten als de stream stopt" Basic.Settings.Stream="Stream" Basic.Settings.Stream.StreamType="Stream Type" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Push-to-talk vertraging" Basic.Settings.Audio.UnknownAudioDevice="[Apparaat niet verbonden of niet beschikbaar]" Basic.Settings.Advanced="Geavanceerd" +Basic.Settings.Advanced.General.ProcessPriority="Procesprioriteit" +Basic.Settings.Advanced.General.ProcessPriority.High="Hoog" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Bovennormaal" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normaal" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Laagst" Basic.Settings.Advanced.FormatWarning="Waarschuwing: Andere kleurformaten dan NV12 zijn hoofdzakelijk bedoeld voor opnemen en worden niet aanbevolen om mee te streamen. Streamen kan verhoogd CPU-gebruik opleveren vanwege kleurformaatconversie." Basic.Settings.Advanced.Audio.BufferingTime="Audio Buffertijd" Basic.Settings.Advanced.Video.ColorFormat="Kleurindeling" diff --git a/obs/data/locale/pl-PL.ini b/obs/data/locale/pl-PL.ini index 1eec74f..fbc2f74 100644 --- a/obs/data/locale/pl-PL.ini +++ b/obs/data/locale/pl-PL.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS jest uruchomiony. Wszelkie transmisje czy nagrania zostan ConfirmRemove.Title="Potwierdź usunięcie" ConfirmRemove.Text="Czy na pewno chcesz usunąć '$1'?" +ConfirmRemove.TextMultiple="Liczba elementów do usunięcia: %1. Czy na pewno chcesz je usunąć?" Output.ConnectFail.Title="Nie udało się połączyć" Output.ConnectFail.BadPath="Nieprawidłowa ścieżka lub adres URL połączenia. Sprawdź poprawność ustawień." @@ -118,6 +119,7 @@ LicenseAgreement.Exit="Wyjście" Remux.SourceFile="Nagrywanie OBS" Remux.TargetFile="Plik docelowy" Remux.Remux="Przepakowanie (remux)" +Remux.OBSRecording="Plik nagrania z OBS" Remux.FinishedTitle="Przepakowanie zakończone" Remux.Finished="Nagranie przepakowane" Remux.FinishedError="Nagranie przepakowane ale może być niekompletne" @@ -143,6 +145,12 @@ Basic.DisplayCapture="Przechwytywanie obrazu" Basic.Main.PreviewConextMenu.Enable="Włącz podgląd" +ScaleFiltering="Filtrowanie skalowania" +ScaleFiltering.Point="Punktowe" +ScaleFiltering.Bilinear="Dwuliniowe" +ScaleFiltering.Bicubic="Dwusześcienne" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="Usuwanie przeplotu" Deinterlacing.Discard="Odrzuć" Deinterlacing.Retro="Retro" @@ -185,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Ustawienia zmienione" Basic.PropertiesWindow.Confirm="Czy chcesz zachować niezapisane zmiany?" Basic.PropertiesWindow.NoProperties="Brak właściwości" Basic.PropertiesWindow.AddFiles="Dodaj pliki" +Basic.PropertiesWindow.AddDir="Dodaj folder" Basic.PropertiesWindow.AddURL="Dodaj ścieżkę/adres URL" +Basic.PropertiesWindow.AddEditableListDir="Dodaj folder do '%1'" Basic.PropertiesWindow.AddEditableListFiles="Dodaj pliki do '%1'" Basic.PropertiesWindow.AddEditableListEntry="Dodaj wpis do '%1'" Basic.PropertiesWindow.EditEditableListEntry="Edytuj wpis w '%1'" @@ -249,7 +259,9 @@ Basic.Main.Connecting="Łączenie..." Basic.Main.StartRecording="Rozpocznij nagrywanie" Basic.Main.StartStreaming="Rozpocznij stream" Basic.Main.StopRecording="Zatrzymaj nagrywanie" +Basic.Main.StoppingRecording="Zatrzymywanie nagrywania..." Basic.Main.StopStreaming="Zatrzymaj stream" +Basic.Main.StoppingStreaming="Zatrzymywanie streamowania..." Basic.Main.ForceStopStreaming="Zatrzymaj stream (anuluj opóźnienie)" Basic.MainMenu.File="&Plik" @@ -286,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Przesuń na samą gó&rę" Basic.MainMenu.Edit.Order.MoveToBottom="Przesuń na sa&m dół" Basic.MainMenu.Edit.AdvAudio="Z&aawansowane ustawienia dźwięku" +Basic.MainMenu.View="&Widok" +Basic.MainMenu.View.Toolbars="Paski &narzędzi" +Basic.MainMenu.View.Toolbars.Listboxes="Panele kontrolne &list elementów" +Basic.MainMenu.View.SceneTransitions="Efekty &przejścia scen" +Basic.MainMenu.View.StatusBar="Pasek &stanu" + Basic.MainMenu.SceneCollection="Zbiór &scen" Basic.MainMenu.Profile="&Profil" @@ -307,11 +325,14 @@ Basic.Settings.General.Theme="Motyw" Basic.Settings.General.Language="Język" Basic.Settings.General.WarnBeforeStartingStream="Pokaż komunikat potwierdzenia uruchomienia streamowania" Basic.Settings.General.WarnBeforeStoppingStream="Pokaż komunikat potwierdzenia zatrzymania streamowania" +Basic.Settings.General.HideProjectorCursor="Ukryj kursor podglądu na pełnym ekranie" Basic.Settings.General.Snapping="Przyciąganie elementów źródłowych" Basic.Settings.General.ScreenSnapping="Przyciągaj do krawędzi ekranu" Basic.Settings.General.CenterSnapping="Przyciągaj do poziomego i pionowego środka" Basic.Settings.General.SourceSnapping="Przyciągaj źródła do innych źródeł" Basic.Settings.General.SnapDistance="Czułość przyciągania" +Basic.Settings.General.RecordWhenStreaming="Automatyczne nagrywanie streamu" +Basic.Settings.General.KeepRecordingWhenStreamStops="Zachowaj nagranie po zatrzymaniu streamu" Basic.Settings.Stream="Stream" Basic.Settings.Stream.StreamType="Typ streamu" @@ -430,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Opóźnienie \"naciśnij-aby-mówić\"" Basic.Settings.Audio.UnknownAudioDevice="[Urządzenie niedostępne lub niepodłączone]" Basic.Settings.Advanced="Zaawansowane" +Basic.Settings.Advanced.General.ProcessPriority="Priorytet procesu" +Basic.Settings.Advanced.General.ProcessPriority.High="Wysoki" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Powyżej normalnego" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normalny" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Bezczynny" Basic.Settings.Advanced.FormatWarning="Ostrzeżenie: Formaty koloru inne niż NV12 przeznaczone są głównie do nagrywania i nie są zalecane podczas przesyłania strumieniowego. Użycie innych formatów koloru podczas przesyłania strumieniowego wymagać będzie przekształcenia formatu w locie, co może znacząco zwiększyć obciążenie procesora." Basic.Settings.Advanced.Audio.BufferingTime="Czas buforowania dźwięku" Basic.Settings.Advanced.Video.ColorFormat="Format koloru" diff --git a/obs/data/locale/pt-BR.ini b/obs/data/locale/pt-BR.ini index 42b33e1..8f61f4c 100644 --- a/obs/data/locale/pt-BR.ini +++ b/obs/data/locale/pt-BR.ini @@ -54,6 +54,7 @@ QuickTransitions.SwapScenesTT="Troca a preview e a saída após transicionar (se QuickTransitions.DuplicateScene="Duplicar Cena" QuickTransitions.DuplicateSceneTT="Quando estiver editando a mesma cena, permite editar a visibilidade/transformação de fontes sem modificar a saída.\nPara editar as propriedades das fontes sem modificar a saída, habilite 'Fontes Duplicadas'.\nMudar este valor irá resetar a cena atual de saída (se ainda existir)." QuickTransitions.EditProperties="Duplicar Fontes" +QuickTransitions.EditPropertiesTT="Quando a editar a mesma cena, permite a edição das propriedades de fontes sem modificar a saida.\nIsto só pode ser usado se 'Duplicar Cena' está ativado.\nAlgumas fontes (como a captura e fontes de media) não suportam isto e não podem ser editados separadamente.\nModificar este valor vai redefinir a atual saída de cena (se ele ainda existir).\n\nAviso: Porque fontes vão ser duplicados, isto pode requisitar um sistema extra ou recursos de vídeo." QuickTransitions.HotkeyName="Transição Rápida: %1" Basic.AddTransition="Adicionar Transição Configurável" @@ -117,6 +118,7 @@ LicenseAgreement.Exit="Sair" Remux.SourceFile="OBS Gravando" Remux.TargetFile="Arquivo de destino" Remux.Remux="Remux" +Remux.OBSRecording="Gravação do OBS" Remux.FinishedTitle="Remux finalizado" Remux.Finished="Remux da gravação finalizado" Remux.FinishedError="Remux da gravação finalizado, mas o arquivo pode estar incompleto" @@ -142,12 +144,16 @@ Basic.DisplayCapture="Captura de tela" Basic.Main.PreviewConextMenu.Enable="Ativar pré-vizualização" + +Deinterlacing="Desentrelaçamento" Deinterlacing.Discard="Descartar" Deinterlacing.Retro="Retro" Deinterlacing.Blend="Misturar" Deinterlacing.Blend2x="Misturar 2x" Deinterlacing.Linear="Linear" Deinterlacing.Linear2x="Linear 2x" +Deinterlacing.Yadif="Yadif" +Deinterlacing.Yadif2x="Yadif 2x" Deinterlacing.TopFieldFirst="Campo Superior Primeiro" Deinterlacing.BottomFieldFirst="Campo Inferior Primeiro" @@ -282,6 +288,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mover para o &Topo" Basic.MainMenu.Edit.Order.MoveToBottom="Mover para a &Base" Basic.MainMenu.Edit.AdvAudio="&Propriedades de áudio avançadas" + Basic.MainMenu.SceneCollection="&Coleção de cena" Basic.MainMenu.Profile="&Perfil" @@ -303,6 +310,7 @@ Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Idioma" Basic.Settings.General.WarnBeforeStartingStream="Mostrar diálogo de confirmação quando iniciar transmissões" Basic.Settings.General.WarnBeforeStoppingStream="Mostrar diálogo de confirmação quando terminar transmissões" +Basic.Settings.General.Snapping="Alinhamentos com encaixe na Cena" Basic.Settings.General.ScreenSnapping="Encaixar Fontes ás bordas da tela" Basic.Settings.General.CenterSnapping="Encaixar Fontes aos centros vertical e horizontal" Basic.Settings.General.SourceSnapping="Encaixar fontes com outras fontes" @@ -334,6 +342,8 @@ Basic.Settings.Output.Simple.Warn.Lossless="Aviso: Qualidade Lossless gera arqui Basic.Settings.Output.Simple.Warn.Lossless.Msg="Tem certeza que deseja usar qualidade lossless?" Basic.Settings.Output.Simple.Warn.Lossless.Title="Aviso de qualidade lossless!" Basic.Settings.Output.Simple.Encoder.Software="Software (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Hardware (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Hardware (NVENC)" Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (preset x264 de baixa utilização de CPU, aumenta o tamanho do arquivo)" Basic.Settings.Output.VideoBitrate="Taxa de Bits do Vídeo" Basic.Settings.Output.AudioBitrate="Taxa de Bits do Áudio" @@ -343,6 +353,7 @@ Basic.Settings.Output.MaxRetries="Número Máximo de Tentativas" Basic.Settings.Output.Advanced="Ativar as configurações avançadas do encoder" Basic.Settings.Output.EncoderPreset="Predefinição de codificação (maior = menor uso de CPU)" Basic.Settings.Output.CustomEncoderSettings="Configurações de codificador personalizadas" +Basic.Settings.Output.CustomMuxerSettings="Configurações personalizadas do Muxer" Basic.Settings.Output.NoSpaceFileName="Gerar Nome de Arquivo sem Espaços" Basic.Settings.Output.Adv.Rescale="Redimensionar a saída" @@ -381,6 +392,7 @@ Basic.Settings.Output.Adv.FFmpeg.AEncoder="Codificador de áudio" Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Configurações do codificador de áudio(se houver)" Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Configurações do Muxer (se houver)" +FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" FilenameFormatting.TT="%CCYY Ano, quatro dígitos\n%YY Ano, dois dígitos (00-99)\n%MM Mês como um número decimal (01-12)\n%DD Dia do mês, começando com 0 (01-31)\n%hh Hora, em formato de 24h (00-23)\n%mm Minuto (00-59)\n%ss Segundo (00-61)\n%% A % sign\n%a Dia da Semana abreviado\n%A Nome da Semana completo\n%b Nome do Mês abreviado\n%B Nome do Mês completo\n%d Dia do Mês, começando com 0 (01-31)\n%H Hora, no formato de 24h (00-23)\n%I Hora no formato de 12h (01-12)\n%m Mês como um número decimal (01-12)\n%M Minuto (00-59)\n%p Designação AM ou PM\n%S Segundo (00-61)\n%y Ano, últimos dois dígitos (00-99)\n%Y Ano\n%z ISO 8601 diferença de fuso horário ou de UTC\n nome ou abreviação\n%Z Nome do Fuso Horário ou abreviação\n" diff --git a/obs/data/locale/pt-PT.ini b/obs/data/locale/pt-PT.ini index 95eb5cb..e22eb7a 100644 --- a/obs/data/locale/pt-PT.ini +++ b/obs/data/locale/pt-PT.ini @@ -39,6 +39,9 @@ Untitled="Sem título" New="Novo" Duplicate="Duplicar" Enable="Ativar" +DisableOSXVSync="Desabilitar o OSX V-Sync" +ResetOSXVSyncOnExit="Redefinir o OSX V-Sync na saída" +HighResourceUsage="Codificação sobrecarregado! Considere diminuir a configurações de vídeo ou usar uma predefinição mais rápido de codificação." Transition="Transição" QuickTransitions="Transições rápidas" Left="Esquerda" @@ -46,11 +49,21 @@ Right="Direita" Top="Cima" Bottom="Baixo" +QuickTransitions.SwapScenes="Trocar pré-visualização/saída de cenas Depois de uma Transição" QuickTransitions.DuplicateScene="Duplicar cena" +QuickTransitions.EditProperties="Fontes duplicadas" +QuickTransitions.EditPropertiesTT="Quando a editar a mesma cena, permite a edição das propriedades de fontes sem modificar a saida.\nIsto só pode ser usado se 'Duplicar Cena' está ativado.\nAlgumas fontes (como a captura e fontes de media) não suportam isto e não podem ser editados separadamente.\nModificar este valor vai redefinir a atual saída de cena (se ele ainda existir).\n\nAviso: Porque fontes vão ser duplicados, isto pode requisitar um sistema extra ou recursos de vídeo." +QuickTransitions.HotkeyName="Transição rápida: %1" +Basic.AddTransition="Adicionar Transição Configurável" Basic.RemoveTransition="Remover transição configurável" Basic.TransitionProperties="Propriedades da transição" +Basic.SceneTransitions="Transições de cena" +Basic.TransitionDuration="Duração" +Basic.TogglePreviewProgramMode="Modo de estúdio" +TransitionNameDlg.Text="Por favor, escreva o nome da transição" +TransitionNameDlg.Title="Nome da transição" TitleBar.Profile="Perfil" TitleBar.Scenes="Cenas" @@ -61,7 +74,11 @@ NameExists.Text="O nome já encontra-se em utilização." NoNameEntered.Title="Por favor, introduz um nome válido" NoNameEntered.Text="Não pode utilizar nomes vazios." +ConfirmStart.Title="Começar a transmitir?" +ConfirmStart.Text="Tem a certeza que quer começar a transmissão?" +ConfirmStop.Title="Parar a transmissão?" +ConfirmStop.Text="Tem a certeza que quer parar a transmissão?" ConfirmExit.Title="Sair do OBS?" ConfirmExit.Text="O OBS está ligado. Todas as transmissões e gravações serão paradas. Tem a certeza de que pretende sair?" @@ -72,6 +89,7 @@ ConfirmRemove.Text="Tem a certeza que quer remover '$1'?" Output.ConnectFail.Title="Falha ao ligar" Output.ConnectFail.BadPath="Caminho ou endereço de ligação inválido. Por favor, verifique as suas definições para confirmar que são válidas." Output.ConnectFail.ConnectFailed="Falhou a ligação ao servidor" +Output.ConnectFail.InvalidStream="Não foi possível acessar o canal especificado ou chave de transmissão, por favor ré-verifique a sua chave de transmissão. Se é correto, pode haver um problema de conexão com o servidor." Output.ConnectFail.Error="Ocurreu um erro inesperado ao ligar-se ao servidor. Mais informação no ficheiro Log." Output.ConnectFail.Disconnected="Desligado do servidor." @@ -98,6 +116,7 @@ LicenseAgreement.Exit="Sair" Remux.SourceFile="Gravação do OBS" Remux.TargetFile="Ficheiro de destino" Remux.Remux="Remisturar" +Remux.OBSRecording="Gravação do OBS" Remux.FinishedTitle="Remistura concluída" Remux.Finished="Gravação remisturada" Remux.FinishedError="Gravação remisturada, mas o ficheiro pode estar incompleto" @@ -124,6 +143,18 @@ Basic.DisplayCapture="Captura de Ecrã" Basic.Main.PreviewConextMenu.Enable="Ativar pré-visualização" +Deinterlacing="Desentrelaçamento" +Deinterlacing.Discard="Discartar" +Deinterlacing.Retro="Retro" +Deinterlacing.Blend="Misturar" +Deinterlacing.Blend2x="Misturar 2x" +Deinterlacing.Linear="Linear" +Deinterlacing.Linear2x="Linear 2x" +Deinterlacing.Yadif="Yadif" +Deinterlacing.Yadif2x="Yadif 2x" +Deinterlacing.TopFieldFirst="Campo Superior Primeiro" +Deinterlacing.BottomFieldFirst="Campo Inferior Primeiro" + Basic.Main.AddSceneDlg.Title="Adicionar Cena" Basic.Main.AddSceneDlg.Text="Por favor introduza o nome da cena" @@ -189,6 +220,7 @@ Basic.TransformWindow.Alignment="Alinhamento da Posição" Basic.TransformWindow.BoundsType="Tipo da Caixa de Rebordo" Basic.TransformWindow.BoundsAlignment="Alinhamento da Caixa de Rebordo" Basic.TransformWindow.Bounds="Tamanho da Caixa de Rebordo" +Basic.TransformWindow.Crop="Recortar" Basic.TransformWindow.Alignment.TopLeft="Superior Esquerdo" Basic.TransformWindow.Alignment.TopCenter="Superior Central" @@ -228,6 +260,7 @@ Basic.MainMenu.File.Remux="Re&misturar gravações" Basic.MainMenu.File.Settings="&Definições" Basic.MainMenu.File.ShowSettingsFolder="Mostrar pasta das definições" Basic.MainMenu.File.ShowProfileFolder="Mostrar pasta do perfil" +Basic.MainMenu.AlwaysOnTop="&Sempre em Cima" Basic.MainMenu.File.Exit="&Sair" Basic.MainMenu.Edit="&Editar" @@ -253,6 +286,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mover para p &Topo" Basic.MainMenu.Edit.Order.MoveToBottom="Mover para o Fundo" Basic.MainMenu.Edit.AdvAudio="Propriedades &avançadas de áudio" + Basic.MainMenu.SceneCollection="Coleção de cena" Basic.MainMenu.Profile="&Perfil" @@ -272,6 +306,10 @@ Basic.Settings.Confirm="Voçê tem alterações não salvadas. Deseja salvar as Basic.Settings.General="Geral" Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Idioma" +Basic.Settings.General.WarnBeforeStartingStream="Mostrar caixa de diálogo de confirmação ao iniciar transmissões" +Basic.Settings.General.WarnBeforeStoppingStream="Mostrar caixa de diálogo de confirmação ao parar transmissões" +Basic.Settings.General.Snapping="Alinhamentos com encaixe na Cena" +Basic.Settings.General.SnapDistance="Sensibilidade do Snap" Basic.Settings.Stream="Transmissão" Basic.Settings.Stream.StreamType="Tipo de transmissão" @@ -281,6 +319,7 @@ Basic.Settings.Output.Format="Formato de gravação" Basic.Settings.Output.Encoder="Codificador" Basic.Settings.Output.SelectDirectory="Selecione o diretório de gravação" Basic.Settings.Output.SelectFile="Selecione ficheiro de gravação" +Basic.Settings.Output.EnforceBitrate="Forçar limites de taxa de bits de serviço de transmissão" Basic.Settings.Output.Mode="Modo de saída" Basic.Settings.Output.Mode.Simple="Simples" Basic.Settings.Output.Mode.Adv="Avançado" @@ -289,8 +328,14 @@ Basic.Settings.Output.Simple.SavePath="Caminho da gravação" Basic.Settings.Output.Simple.RecordingQuality="Qualidade da gravação" Basic.Settings.Output.Simple.RecordingQuality.Stream="A mesma da transmissão" Basic.Settings.Output.Simple.RecordingQuality.Small="Alta qualidade, Tamanho médio" +Basic.Settings.Output.Simple.RecordingQuality.HQ="Qualidade indistinguível, Tamanho de Arquivo Grande" +Basic.Settings.Output.Simple.RecordingQuality.Lossless="Sem perda de qualidade, Tamanho de Arquivo Enorme" Basic.Settings.Output.Simple.Warn.Lossless.Msg="Tem a certeza de que pretende utilizar a qualidade sem perdas?" +Basic.Settings.Output.Simple.Warn.Lossless.Title="Aviso de qualidade sem perda!" Basic.Settings.Output.Simple.Encoder.Software="Software (x264)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="Hardware (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="Hardware (NVENC)" +Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 baixa utilização da CPU pré-ajustada, aumenta o tamanho do arquivo)" Basic.Settings.Output.VideoBitrate="Bitrate de Vídeo" Basic.Settings.Output.AudioBitrate="Bitrate de Áudio" Basic.Settings.Output.Reconnect="Religar Automaticamente" @@ -299,6 +344,8 @@ Basic.Settings.Output.MaxRetries="Número Máximo de Tentativas de Religação" Basic.Settings.Output.Advanced="Ativar definições avançadas de codificação" Basic.Settings.Output.EncoderPreset="Predefinição de codificação (maior = menor processamento)" Basic.Settings.Output.CustomEncoderSettings="Definições de codificação personalizadas" +Basic.Settings.Output.CustomMuxerSettings="Configurações personalizadas do Muxer" +Basic.Settings.Output.NoSpaceFileName="Gerar o Nome do Arquivo sem espaço" Basic.Settings.Output.Adv.Rescale="Redimensionar saída" Basic.Settings.Output.Adv.AudioTrack="Faixa de áudio" @@ -314,6 +361,8 @@ Basic.Settings.Output.Adv.Recording.Type="Tipo" Basic.Settings.Output.Adv.Recording.Type.Standard="Padrão" Basic.Settings.Output.Adv.Recording.Type.FFmpegOutput="Saída personalizada (FFmpeg)" Basic.Settings.Output.Adv.Recording.UseStreamEncoder="(Utilizar o codificador da transmissão)" +Basic.Settings.Output.Adv.Recording.Filename="Formatação do nome do arquivo" +Basic.Settings.Output.Adv.Recording.OverwriteIfExists="Substituir, se o arquivo existe" Basic.Settings.Output.Adv.FFmpeg.Type="Tipo de saída FFmpeg" Basic.Settings.Output.Adv.FFmpeg.Type.URL="Exportar para endereço" Basic.Settings.Output.Adv.FFmpeg.Type.RecordToFile="Exportar para ficheiro" @@ -332,11 +381,15 @@ Basic.Settings.Output.Adv.FFmpeg.VEncoder="Codificador de vídeo" Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings="Definições do codificador de vídeo (se houver)" Basic.Settings.Output.Adv.FFmpeg.AEncoder="Codificador de áudio" Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Definições do codificador de áudio (se houver)" +Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Configurações Muxer (se houver)" +FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" Basic.Settings.Video="Vídeo" Basic.Settings.Video.Adapter="Adaptador de Vídeo:" +Basic.Settings.Video.BaseResolution="Resolução de base (tela):" +Basic.Settings.Video.ScaledResolution="Resolução de saída (escalado):" Basic.Settings.Video.DownscaleFilter="Filtro de Escalamento:" Basic.Settings.Video.DisableAeroWindows="Desactivar Aero (apenas no Windows)" Basic.Settings.Video.FPS="FPS:" @@ -366,6 +419,7 @@ Basic.Settings.Audio.EnablePushToMute="Ativar o push-to-mute" Basic.Settings.Audio.PushToMuteDelay="Atrado do push-to-mute" Basic.Settings.Audio.EnablePushToTalk="Ativar o push-to-talk" Basic.Settings.Audio.PushToTalkDelay="Atraso do push-to-talk" +Basic.Settings.Audio.UnknownAudioDevice="[Dispositivo não conectado ou não disponível]" Basic.Settings.Advanced="Avançado" Basic.Settings.Advanced.FormatWarning="Aviso: Formatos de cor diferentes de NV12 destinam-se principalmente a gravação e não são recomendados durante a transmissão. A transmissão pode incorrer numa maior utilização do processador devido à conversão do formato de cor." @@ -377,6 +431,7 @@ Basic.Settings.Advanced.Video.ColorRange.Partial="Parcial" Basic.Settings.Advanced.Video.ColorRange.Full="Total" Basic.Settings.Advanced.StreamDelay="Atraso na trasmissão" Basic.Settings.Advanced.StreamDelay.Duration="Duração (segundos)" +Basic.Settings.Advanced.StreamDelay.Preserve="Preservar o ponto de corte (aumentar atraso) quando reconectar" Basic.Settings.Advanced.StreamDelay.MemoryUsage="Utilização estimada de memória: %1 MB" Basic.AdvAudio="Propriedades avançadas de áudio" diff --git a/obs/data/locale/ro-RO.ini b/obs/data/locale/ro-RO.ini index 6b5b259..9abadd4 100644 --- a/obs/data/locale/ro-RO.ini +++ b/obs/data/locale/ro-RO.ini @@ -143,6 +143,7 @@ Basic.DisplayCapture="Captură de display" Basic.Main.PreviewConextMenu.Enable="Activează previzualizarea" + Deinterlacing="Deîntrețesere" Deinterlacing.Discard="Înlătură" Deinterlacing.Retro="Retro" @@ -286,6 +287,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Mu&tă în vârf" Basic.MainMenu.Edit.Order.MoveToBottom="Mută la fu&nd" Basic.MainMenu.Edit.AdvAudio="Proprietăți audio &avansate" + Basic.MainMenu.SceneCollection="Colecție de &scene" Basic.MainMenu.Profile="&Profil" diff --git a/obs/data/locale/ru-RU.ini b/obs/data/locale/ru-RU.ini index 66975d4..7dbb792 100644 --- a/obs/data/locale/ru-RU.ini +++ b/obs/data/locale/ru-RU.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="В настоящее время OBS активен. Все п ConfirmRemove.Title="Подтвердить удаление" ConfirmRemove.Text="Вы уверены, что хотите удалить '$1'?" +ConfirmRemove.TextMultiple="Вы уверены, что вы хотите удалить %1 элементов?" Output.ConnectFail.Title="Не удалось подключиться" Output.ConnectFail.BadPath="Неверный путь или URL соединения. Пожалуйста, проверьте настройки, чтобы подтвердить, что они являются действительными." @@ -144,6 +145,12 @@ Basic.DisplayCapture="Захват экрана" Basic.Main.PreviewConextMenu.Enable="Включить предпросмотр" +ScaleFiltering="Фильтрация масштаба" +ScaleFiltering.Point="Точечная" +ScaleFiltering.Bilinear="Билинейная" +ScaleFiltering.Bicubic="Бикубическая" +ScaleFiltering.Lanczos="Ланцошная" + Deinterlacing="Устранение чересстрочности" Deinterlacing.Discard="Отклонить" Deinterlacing.Retro="Ретро" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="Настройки изменены" Basic.PropertiesWindow.Confirm="Имеются несохранённые изменения. Желаете сохранить их?" Basic.PropertiesWindow.NoProperties="Нет доступных параметров" Basic.PropertiesWindow.AddFiles="Добавить файлы" +Basic.PropertiesWindow.AddDir="Добавить папку" Basic.PropertiesWindow.AddURL="Добавить путь/URL" +Basic.PropertiesWindow.AddEditableListDir="Добавить папку в '%1'" Basic.PropertiesWindow.AddEditableListFiles="Добавить файлы в '%1'" Basic.PropertiesWindow.AddEditableListEntry="Добавить запись в '%1'" Basic.PropertiesWindow.EditEditableListEntry="Редактировать запись из '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="Соединение..." Basic.Main.StartRecording="Начать запись" Basic.Main.StartStreaming="Запустить трансляцию" Basic.Main.StopRecording="Остановить запись" +Basic.Main.StoppingRecording="Остановка Записи..." Basic.Main.StopStreaming="Остановить трансляцию" +Basic.Main.StoppingStreaming="Остановка вещания..." Basic.Main.ForceStopStreaming="Остановить передачу (отменить задержку)" Basic.MainMenu.File="&Файл" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Переместить &Наверх" Basic.MainMenu.Edit.Order.MoveToBottom="Переместить &Вниз" Basic.MainMenu.Edit.AdvAudio="&Расширенные свойства аудио" +Basic.MainMenu.View="&Посмотреть" +Basic.MainMenu.View.Toolbars="&Панель инструментов" +Basic.MainMenu.View.Toolbars.Listboxes="&Списки" +Basic.MainMenu.View.SceneTransitions="Сцена переходов" +Basic.MainMenu.View.StatusBar="&Строка состояния" + Basic.MainMenu.SceneCollection="Коллекция сцен" Basic.MainMenu.Profile="Профиль" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="Тема" Basic.Settings.General.Language="Язык" Basic.Settings.General.WarnBeforeStartingStream="Показывать окно подтверждения при запуске трансляции" Basic.Settings.General.WarnBeforeStoppingStream="Показывать окно подтверждения при остановке трансляции" +Basic.Settings.General.HideProjectorCursor="Скрыть курсор за проекторы" Basic.Settings.General.Snapping="Привязка расположения источника" Basic.Settings.General.ScreenSnapping="Привязка к краю экрана" Basic.Settings.General.CenterSnapping="Привязка к центру по горизонтали и вертикали" Basic.Settings.General.SourceSnapping="Привязка к другим источникам" Basic.Settings.General.SnapDistance="Чувствительность привязки" +Basic.Settings.General.RecordWhenStreaming="Автоматическая запись при стриме" +Basic.Settings.General.KeepRecordingWhenStreamStops="Сохранить запись, когда стрим остановится" Basic.Settings.Stream="Вещание" Basic.Settings.Stream.StreamType="Тип вещания" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="Задержка включения мик Basic.Settings.Audio.UnknownAudioDevice="[Устройство не подключено или недоступно]" Basic.Settings.Advanced="Расширенные" +Basic.Settings.Advanced.General.ProcessPriority="Приоритет процесса" +Basic.Settings.Advanced.General.ProcessPriority.High="Высокий" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Выше нормального" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Средний" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Низкий" Basic.Settings.Advanced.FormatWarning="Предупреждение: цветовые форматы, отличные от NV12, прежде всего предназначены для записи и не рекомендуются для потокового вещания. Преобразование цветового формата во время вещания может потребовать дополнительную нагрузку на ЦП." Basic.Settings.Advanced.Audio.BufferingTime="Время буферизации аудио" Basic.Settings.Advanced.Video.ColorFormat="Цветовой формат" diff --git a/obs/data/locale/sk-SK.ini b/obs/data/locale/sk-SK.ini index b6c77a2..45db795 100644 --- a/obs/data/locale/sk-SK.ini +++ b/obs/data/locale/sk-SK.ini @@ -82,6 +82,7 @@ Basic.DisplayCapture="Zachytávanie monitora" + Basic.Main.AddSceneDlg.Title="Pridať scénu" Basic.Main.AddSceneDlg.Text="Prosím, zadajte názov scény" @@ -175,6 +176,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Premies&tniť navrch" Basic.MainMenu.Edit.Order.MoveToBottom="Premiestniť naspodok (&B)" + Basic.MainMenu.Help="Pomoc (&H)" Basic.MainMenu.Help.Logs="&Log súbory" Basic.MainMenu.Help.Logs.ShowLogs="Zobraziť log &súbory" diff --git a/obs/data/locale/sl-SI.ini b/obs/data/locale/sl-SI.ini index a7b5b61..adb56a3 100644 --- a/obs/data/locale/sl-SI.ini +++ b/obs/data/locale/sl-SI.ini @@ -80,6 +80,7 @@ Basic.DisplayCapture="Zajemanje zaslona" + Basic.Main.AddSceneDlg.Title="Dodaj seceno" Basic.Main.AddSceneDlg.Text="Prosimo, vnesite ime scene" @@ -172,6 +173,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Premakni na &Vrh" Basic.MainMenu.Edit.Order.MoveToBottom="Premakni na &Dno" + Basic.MainMenu.Help="&Pomoč" Basic.MainMenu.Help.Logs="&Dnevniki" Basic.MainMenu.Help.Logs.ShowLogs="&Pokaži Zapisnik" diff --git a/obs/data/locale/sr-CS.ini b/obs/data/locale/sr-CS.ini index e758e13..a184506 100644 --- a/obs/data/locale/sr-CS.ini +++ b/obs/data/locale/sr-CS.ini @@ -118,6 +118,7 @@ LicenseAgreement.Exit="Izlaz" Remux.SourceFile="OBS snimak" Remux.TargetFile="Datoteka" Remux.Remux="Remux" +Remux.OBSRecording="OBS snimak" Remux.FinishedTitle="Remux završen" Remux.Finished="Završen remux snimka" Remux.FinishedError="Remux završen, ali datoteka možda nije kompletirana" @@ -143,6 +144,7 @@ Basic.DisplayCapture="Prikaži ulaz" Basic.Main.PreviewConextMenu.Enable="Omogući pregled" + Deinterlacing="Deinterlejsing" Deinterlacing.Discard="Odbaci" Deinterlacing.Retro="Retro" @@ -185,7 +187,9 @@ Basic.PropertiesWindow.ConfirmTitle="Podešavanja promenjena" Basic.PropertiesWindow.Confirm="Postoje podešavanja koja nisu sačuvana. Da li želite da ih sačuvate?" Basic.PropertiesWindow.NoProperties="Nema dostupnih svojstava" Basic.PropertiesWindow.AddFiles="Dodaj datoteke" +Basic.PropertiesWindow.AddDir="Dodaj direktorijum" Basic.PropertiesWindow.AddURL="Dodaj putanju/URL" +Basic.PropertiesWindow.AddEditableListDir="Dodaj direktorijum u '%1'" Basic.PropertiesWindow.AddEditableListFiles="Dodaj datoteke u '%1'" Basic.PropertiesWindow.AddEditableListEntry="Dodaj zapise u '%1'" Basic.PropertiesWindow.EditEditableListEntry="Izmeni zapise za '%1'" @@ -249,7 +253,9 @@ Basic.Main.Connecting="Povezivanje..." Basic.Main.StartRecording="Počni snimanje" Basic.Main.StartStreaming="Počni strimovanje" Basic.Main.StopRecording="Zaustavi snimanje" +Basic.Main.StoppingRecording="Zaustavljanje snimanja..." Basic.Main.StopStreaming="Zaustavi strimovanje" +Basic.Main.StoppingStreaming="Zaustavljanje emitovanja..." Basic.Main.ForceStopStreaming="Zaustavi strimovanje (poništi odlaganje)" Basic.MainMenu.File="&Fajl" @@ -286,6 +292,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Pomeri na vrh (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="Pomeri na dno (&B)" Basic.MainMenu.Edit.AdvAudio="N&apredna podešavanja zvuka" + Basic.MainMenu.SceneCollection="Kolekcija &scena" Basic.MainMenu.Profile="&Profil" @@ -307,6 +314,7 @@ Basic.Settings.General.Theme="Tema" Basic.Settings.General.Language="Jezik" Basic.Settings.General.WarnBeforeStartingStream="Prikaži prozor za potvrdu kada se započinju strimovi" Basic.Settings.General.WarnBeforeStoppingStream="Prikaži prozor za potvrdu kada se zaustavljaju strimovi" +Basic.Settings.General.HideProjectorCursor="Sakrij pokazivač na projektorima" Basic.Settings.General.Snapping="Poravnavanje privlačenjem izvora" Basic.Settings.General.ScreenSnapping="Privuci izvore ivici ekrana" Basic.Settings.General.CenterSnapping="Privuci izvore horizontalnoj i vertikalnoj sredini" diff --git a/obs/data/locale/sr-SP.ini b/obs/data/locale/sr-SP.ini index 9181b64..d7f91a4 100644 --- a/obs/data/locale/sr-SP.ini +++ b/obs/data/locale/sr-SP.ini @@ -118,6 +118,7 @@ LicenseAgreement.Exit="Излаз" Remux.SourceFile="OBS снимак" Remux.TargetFile="Датотека" Remux.Remux="Remux" +Remux.OBSRecording="OBS снимак" Remux.FinishedTitle="Remux завршен" Remux.Finished="Завршен remux снимка" Remux.FinishedError="Remux завршен, али датотека можда није комплетирана" @@ -143,6 +144,7 @@ Basic.DisplayCapture="Прикажи улаз" Basic.Main.PreviewConextMenu.Enable="Омогући преглед" + Deinterlacing="Деинтерлејсинг" Deinterlacing.Discard="Одбаци" Deinterlacing.Retro="Ретро" @@ -185,7 +187,9 @@ Basic.PropertiesWindow.ConfirmTitle="Подешавања промењена" Basic.PropertiesWindow.Confirm="Постоје подешавања која нису сачувана. Да ли желите да их сачувате?" Basic.PropertiesWindow.NoProperties="Нема доступних својстава" Basic.PropertiesWindow.AddFiles="Додај датотеке" +Basic.PropertiesWindow.AddDir="Додај директоријум" Basic.PropertiesWindow.AddURL="Додај путању/URL" +Basic.PropertiesWindow.AddEditableListDir="Додај директоријум у '%1'" Basic.PropertiesWindow.AddEditableListFiles="Додај датотеке у '%1'" Basic.PropertiesWindow.AddEditableListEntry="Додај записе у '%1'" Basic.PropertiesWindow.EditEditableListEntry="Измени записе за '%1'" @@ -249,7 +253,9 @@ Basic.Main.Connecting="Повезивање..." Basic.Main.StartRecording="Почни снимање" Basic.Main.StartStreaming="Почни стримовање" Basic.Main.StopRecording="Заустави снимање" +Basic.Main.StoppingRecording="Заустављање снимања..." Basic.Main.StopStreaming="Заустави стримовање" +Basic.Main.StoppingStreaming="Заустављање емитовања..." Basic.Main.ForceStopStreaming="Заустави стримовање (поништи одлагање)" Basic.MainMenu.File="Фајл (&F)" @@ -286,6 +292,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Помери на врх (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="Помери на дно (&B)" Basic.MainMenu.Edit.AdvAudio="Н&апредна подешавања звука" + Basic.MainMenu.SceneCollection="Колекција сцена (&S)" Basic.MainMenu.Profile="Профил (&P)" @@ -307,6 +314,7 @@ Basic.Settings.General.Theme="Тема" Basic.Settings.General.Language="Језик" Basic.Settings.General.WarnBeforeStartingStream="Прикажи прозор за потврду када се започињу стримови" Basic.Settings.General.WarnBeforeStoppingStream="Прикажи прозор за потврду када се заустављају стримови" +Basic.Settings.General.HideProjectorCursor="Сакриј показивач на пројекторима" Basic.Settings.General.Snapping="Поравнавање привлачењем извора" Basic.Settings.General.ScreenSnapping="Привуци изворе ивици екрана" Basic.Settings.General.CenterSnapping="Привуци изворе хоризонталној и вертикалној средини" diff --git a/obs/data/locale/sv-SE.ini b/obs/data/locale/sv-SE.ini index 56d1da6..d475c6c 100644 --- a/obs/data/locale/sv-SE.ini +++ b/obs/data/locale/sv-SE.ini @@ -82,10 +82,12 @@ ConfirmExit.Text="OBS är aktivt. Alla strömmar/inspelningar kommer att stäng ConfirmRemove.Title="Bekräfta borttagning" ConfirmRemove.Text="Vill du verkligen ta bort '$1'?" +ConfirmRemove.TextMultiple="Är du säker på att du vill ta bort %1 poster?" Output.ConnectFail.Title="Anslutning misslyckades" Output.ConnectFail.BadPath="Ogiltig sökväg eller anslutnings-URL. Kontrollera att dina inställningar är korrekta." Output.ConnectFail.ConnectFailed="Kunde inte ansluta till servern" +Output.ConnectFail.InvalidStream="Kunde inte komma åt den valda kanalen eller strömnyckeln, var god dubbelkolla din strömnyckel. Om den stämmer kan det finnas något anslutningsproblem till servern." Output.ConnectFail.Error="Ett oväntat fel uppstod vid anslutning till servern. Se loggfilen för ytterligare information." Output.ConnectFail.Disconnected="Nedkopplad från servern." @@ -138,10 +140,17 @@ Basic.DisplayCapture="Bildskärmskälla" Basic.Main.PreviewConextMenu.Enable="Förhandsvisa" +ScaleFiltering="Skalningsfiltrering" +ScaleFiltering.Bilinear="Bilinjär" +ScaleFiltering.Bicubic="Bikubisk" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing.Discard="Avfärda" Deinterlacing.Retro="Retro" Deinterlacing.Linear="Linjär" Deinterlacing.Linear2x="Linjär 2x" +Deinterlacing.Yadif="Yadif" +Deinterlacing.Yadif2x="Yadif 2x" Deinterlacing.TopFieldFirst="Övre fältet först" Deinterlacing.BottomFieldFirst="Nedre fältet först" @@ -175,7 +184,9 @@ Basic.PropertiesWindow.ConfirmTitle="Inställningarna har ändrats" Basic.PropertiesWindow.Confirm="Det finns osparade ändringar. Vill du behålla dem?" Basic.PropertiesWindow.NoProperties="Inga inställningar tillgängliga" Basic.PropertiesWindow.AddFiles="Lägg till Filer" +Basic.PropertiesWindow.AddDir="Lägg till mapp" Basic.PropertiesWindow.AddURL="Lägg till Sökväg/URL" +Basic.PropertiesWindow.AddEditableListDir="Lägg till mapp i '%1'" Basic.PropertiesWindow.AddEditableListFiles="Lägg till filer i '%1'" Basic.PropertiesView.FPS.Simple="Enkla bildfrekvensvärden" @@ -237,7 +248,9 @@ Basic.Main.Connecting="Ansluter..." Basic.Main.StartRecording="Starta inspelning" Basic.Main.StartStreaming="Börja strömma" Basic.Main.StopRecording="Stoppa inspelning" +Basic.Main.StoppingRecording="Stoppar inspelning..." Basic.Main.StopStreaming="Sluta strömma" +Basic.Main.StoppingStreaming="Stoppar ström..." Basic.Main.ForceStopStreaming="Sluta strömma (ignorera fördröjning)" Basic.MainMenu.File="&Arkiv" @@ -274,6 +287,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="Lägg &överst" Basic.MainMenu.Edit.Order.MoveToBottom="Lägg unders&t" Basic.MainMenu.Edit.AdvAudio="&Avancerade ljudinställningar" +Basic.MainMenu.View="&Visa" +Basic.MainMenu.View.Toolbars="&Verktygsfält" +Basic.MainMenu.View.Toolbars.Listboxes="&Listrutor" +Basic.MainMenu.View.SceneTransitions="S&cenövergångar" +Basic.MainMenu.View.StatusBar="&Statusfält" + Basic.MainMenu.SceneCollection="&Scensamling" Basic.MainMenu.Profile="&Profil" @@ -295,13 +314,16 @@ Basic.Settings.General.Theme=" Tema" Basic.Settings.General.Language="Språk" Basic.Settings.General.WarnBeforeStartingStream="Visa bekräftelsedialog när ström startas" Basic.Settings.General.WarnBeforeStoppingStream="Visa bekräftelsedialog när ström stoppas" +Basic.Settings.General.HideProjectorCursor="Dölj pekaren över projektorer" Basic.Settings.General.ScreenSnapping="Fäst källor till skärmens kant" Basic.Settings.General.CenterSnapping="Fäst källor till den horisontala och vertikala mittenlinjen" Basic.Settings.General.SourceSnapping="Fäst källor till andra källor" Basic.Settings.General.SnapDistance="Fästkänslighet" +Basic.Settings.General.RecordWhenStreaming="Spela automatiskt in vid strömning" +Basic.Settings.General.KeepRecordingWhenStreamStops="Fortsätt spela in när strömmen stoppas" -Basic.Settings.Stream="Stream" -Basic.Settings.Stream.StreamType="Streamtyp" +Basic.Settings.Stream="Ström" +Basic.Settings.Stream.StreamType="Strömtyp" Basic.Settings.Output="Utmatning" Basic.Settings.Output.Format="Inspelningsformat" @@ -371,6 +393,7 @@ Basic.Settings.Output.Adv.FFmpeg.AEncoder="Ljudkodare" Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Ljudkodar-inställningar (om något)" Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Muxerinställningar (om det finns)" +FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" FilenameFormatting.TT="%CCYY År, fyra siffror\n%YY År, de två sista siffrorna (00-99)\n%MM Månad som en siffra (01-12)\n%DD Månadens dag, inledande nolla (01-31)\n%hh Timme i 24-timmarsformat (00-23)\n%mm Minut (00-59)\n%ss Sekund (00-61)\n%% Ett procenttecken\n%a Förkortad veckodag\n%A Fullständig veckodag\n%b Förkortat månadsnamn\n%B Fullständigt månadsnamn\n%d Månadens dag, inledande nolla (01-31)\n%H Timme i 24-timmarsformat (00-23)\n%I Timme i 12-timmarsformat (01-12)\n%m Månad som en siffra (01-12)\n%M Minut (00-59)\n%p AM eller PM\n%S Sekund (00-61)\n%y År, de två sista siffrorna (00-99)\n%Y År\n%z ISO 8601-offset från UTC eller tidszonens\n namn eller förkortning\n%Z Tidszonens namn eller förkortning\n" @@ -410,6 +433,11 @@ Basic.Settings.Audio.PushToTalkDelay="Fördröjning för tryck för att tala" Basic.Settings.Audio.UnknownAudioDevice="[Enheten är inte ansluten eller tillgänglig]" Basic.Settings.Advanced="Avancerat" +Basic.Settings.Advanced.General.ProcessPriority="Processprioritet" +Basic.Settings.Advanced.General.ProcessPriority.High="Hög" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="Över normal" +Basic.Settings.Advanced.General.ProcessPriority.Normal="Normal" +Basic.Settings.Advanced.General.ProcessPriority.Idle="Inaktiv" Basic.Settings.Advanced.FormatWarning="Varning: Andra färgformat än NV12 är avsedda för inspelning och rekommenderas inte för att strömma. Högre processoranvändning kan uppstå vid strömning p.g.a. konvertering av färgformat." Basic.Settings.Advanced.Audio.BufferingTime="Ljudbuffringstid" Basic.Settings.Advanced.Video.ColorFormat="Färgformat" diff --git a/obs/data/locale/ta-IN.ini b/obs/data/locale/ta-IN.ini index 777158e..5514eec 100644 --- a/obs/data/locale/ta-IN.ini +++ b/obs/data/locale/ta-IN.ini @@ -84,6 +84,8 @@ New="புதிய" + + diff --git a/obs/data/locale/th-TH.ini b/obs/data/locale/th-TH.ini index 5228d51..8e0c377 100644 --- a/obs/data/locale/th-TH.ini +++ b/obs/data/locale/th-TH.ini @@ -50,6 +50,7 @@ Basic.Scene="ฉาก" + Basic.Main.AddSceneDlg.Title="เพิ่มฉาก" Basic.Main.DefaultSceneName.Text="ฉาก %1" @@ -87,6 +88,7 @@ Basic.MainMenu.File.Exit="อ&อก" + Basic.MainMenu.Help.CheckForUpdates="ตรวจสอบการอัพเดต" Basic.Settings.ConfirmTitle="ยืนยันการเปลี่ยนแปลง" diff --git a/obs/data/locale/tr-TR.ini b/obs/data/locale/tr-TR.ini index da1061c..67cd2c5 100644 --- a/obs/data/locale/tr-TR.ini +++ b/obs/data/locale/tr-TR.ini @@ -121,6 +121,7 @@ Basic.DisplayCapture="Ekran Yakalama" Basic.Main.PreviewConextMenu.Enable="Önizlemeyi Etkinleştir" + Basic.Main.AddSceneDlg.Title="Sahne Ekle" Basic.Main.AddSceneDlg.Text="Lütfen sahne adını giriniz" @@ -246,6 +247,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="En &Üste Taşı" Basic.MainMenu.Edit.Order.MoveToBottom="En &Alta Taşı" Basic.MainMenu.Edit.AdvAudio="&Gelişmiş Ses Özellikleri" + Basic.MainMenu.SceneCollection="&Sahne Koleksiyonu" Basic.MainMenu.Profile="&Profil" diff --git a/obs/data/locale/uk-UA.ini b/obs/data/locale/uk-UA.ini index 07c0ca9..602a911 100644 --- a/obs/data/locale/uk-UA.ini +++ b/obs/data/locale/uk-UA.ini @@ -6,8 +6,9 @@ OK="Так" Apply="Застосувати" Cancel="Скасувати" Close="Закрити" -Save="зберегти" +Save="Зберегти" Discard="Відхилити" +Disable="Вимкнено" Yes="Так" No="Ні" Add="Додати" @@ -26,6 +27,10 @@ Mixer="Мікшер" Browse="Огляд" Mono="Моно" Stereo="Стерео" +DroppedFrames="Пропущено кадрів %1 (%2%)" +PreviewProjector="Повноекранний Проектор (вікно Перегляду)" +SceneProjector="Повноекранний Проектор (Сцена)" +SourceProjector="Повноекранний Проектор (Джерело)" Clear="Очистити" Revert="Відмінити" Show="Показати" @@ -34,9 +39,33 @@ Untitled="Без назви" New="Новий" Duplicate="Дублювати" Enable="Увімкнути" +DisableOSXVSync="Вимкнути OSX V-Sync" +ResetOSXVSyncOnExit="Відновити OSX V-Sync при виході" +HighResourceUsage="Кодування перевантажено! Треба знизити вимоги до налаштування відео або спробувати швидші налаштування енкодера." +Transition="Відео-перехід" +QuickTransitions="Швидкі відео-переходи" +Left="Зліва" +Right="Зправа" +Top="Зверху" +Bottom="Знизу" +QuickTransitions.SwapScenes="Поміняти місцями сцени Перегляд/Вивід після Відео-переходу" +QuickTransitions.SwapScenesTT="Міняє місцями сцени Перегляд та Вивід після закінчення Відео-переходу (якщо сцена Вивід ще існує).\nЗміні внесені до обох сцен залишаються." +QuickTransitions.DuplicateScene="Використовувати копію сцени" +QuickTransitions.DuplicateSceneTT="Під час редагування поточної сцени дозволяє зберегти Вивід без змін.\nДля можливості редагувати властивості Джерел, увімкніть також 'Використовувати копію Джерел'.\nЗміна цієї опції призведе до оновлення поточної сцени, яка йде на Вивід (якщо вона ще існує)." +QuickTransitions.EditProperties="Використовувати копію Джерел" +QuickTransitions.EditPropertiesTT="Під час редагування поточної сцени, дозволяє редагувати властивості Джерел не змінюючи Вивід.\nЦя опція можлива якщо 'Використовувати копію сцени' вибрана.\nДеякі джерела (наприклад медіа або прилади захвату зображень) не підтримують копіювання, тобто не можна внести окремі зміни у джерело.\nЗміна властивостей таких джерел миттєво змінить Вивід (якщо він ще існує).\n\nУвага: Так як джерела внутрішньо копіюються, то це може призвести до додаткового навантаження на систему та використання відео ресурсів." +QuickTransitions.HotkeyName="Швидкий відео-перехід: %1" +Basic.AddTransition="Додати Відео-перехід що конфігурується" +Basic.RemoveTransition="Видалити Відео-перехід що конфігурується" +Basic.TransitionProperties="Властивості Відео-переходу" +Basic.SceneTransitions="Відео-переходи між Сценами" +Basic.TransitionDuration="Тривалість" +Basic.TogglePreviewProgramMode="Режим Студії" +TransitionNameDlg.Text="Будь ласка, введіть назву для Відео-переходу" +TransitionNameDlg.Title="Назва Відео-переходу" TitleBar.Profile="Профіль" TitleBar.Scenes="Сцени" @@ -47,29 +76,139 @@ NameExists.Text="Ім'я вже використовується." NoNameEntered.Title="Невірно введено ім'я" NoNameEntered.Text="Не можна використовувати порожні назви." +ConfirmStart.Title="Почати трансляцію?" +ConfirmStart.Text="Ви впевнені, що хочете почати трансляцію?" +ConfirmStop.Title="Закінчити трансляцію?" +ConfirmStop.Text="Ви впевнені, що хочете закінчити трансляцію?" ConfirmExit.Title="Вийти з OBS?" +ConfirmExit.Text="OBS ще працює. Всі розпочаті трансляції та записи буде припинено. Ви дійсно хочете вийти?" ConfirmRemove.Title="Підтвердження видалення" ConfirmRemove.Text="Ви дійсно бажаєте видалити \"$1\"?" +ConfirmRemove.TextMultiple="Ви впевнені, що хочете видалити %1 елементів?" Output.ConnectFail.Title="Не вдалося підключитися" +Output.ConnectFail.BadPath="Шлях або URL-адреса недосяжні. Будь ласка, перевірте налаштування програмного забезпечення." Output.ConnectFail.ConnectFailed="Не вдалося підключитися до сервера" +Output.ConnectFail.InvalidStream="Немає доступу до вказаного каналу або до ключа трансляції, будь ласка перевірте свій ключ для трансляцій. Якщо він дійсний, то можливо є проблеми зв'язку з сервером." +Output.ConnectFail.Error="Під час зв'язку з сервером відбулася несподівана помилка. Подробиці знаходяться у лог-файлі." Output.ConnectFail.Disconnected="Від'єднаний від серверу." Output.RecordFail.Title="Не вдалося розпочати запис" +Output.RecordFail.Unsupported="Формат виводу на жаль не підтримується або форматом не підтримується більш однієї звукової доріжки. Будь ласка, перевірте налаштування та повторіть спробу." +Output.RecordNoSpace.Title="Недостатньо простору на диску" +Output.RecordNoSpace.Msg="На диску недостатньо простору для запису." +Output.RecordError.Title="Помилка запису" +Output.RecordError.Msg="Під час запису відбулася несподівана помилка." +Output.BadPath.Title="Недійсний шлях до файлу" +Output.BadPath.Text="Шлях вказаний для виводу файлу недійсний. Будь ласка, перевірте у налаштуваннях, що шлях було вказано вірно." +LogReturnDialog="Лог успішно завантажено" LogReturnDialog.CopyURL="Копіювати посилання" LogReturnDialog.ErrorUploadingLog="Помилка завантаження файлу журналу" +LicenseAgreement="Ліцензійна угода" +LicenseAgreement.PleaseReview="Будь ласка, ознайомтеся з умовами ліцензії, перш ніж використовувати OBS. Використовуючи цю програму, ви підтверджуєте, що ви прочитали і згодні з умовами GNU General Public License v 2.0. Будь ласка, прокрутіть вниз, щоб побачити весь текст угоди." +LicenseAgreement.ClickIAgreeToContinue="Якщо ви згодні з умовами угоди, натисніть кнопку Я згоден(-а), щоб продовжити. Ви повинні прийняти угоду для використання OBS." +LicenseAgreement.IAgree="Я згоден(-а)" LicenseAgreement.Exit="Вихід" +Remux.SourceFile="OBS запис" +Remux.TargetFile="Кінцевий файл" +Remux.Remux="Ремультиплексація" +Remux.OBSRecording="OBS запис" +Remux.FinishedTitle="Ремультиплексацію завершено" +Remux.Finished="Запис ремультиплексовано" +Remux.FinishedError="Запис ремультиплексовано, але схоже файл неповний" +Remux.SelectRecording="Виберіть OBS запис …" +Remux.SelectTarget="Виберіть кінцевий файл …" +Remux.FileExistsTitle="Кінцевий файл існує" +Remux.FileExists="Кінцевий файл існує, ви хочете його замінити?" +Remux.ExitUnfinishedTitle="Ремультиплексація триває" +Remux.ExitUnfinished="Ремультиплексацію не завершено, якщо зупинити зараз, то файл може лишитись пошкодженим.\nВи впевнені, що хочете зупинити ремультиплексацію?" +UpdateAvailable="Доступне оновлення" +UpdateAvailable.Text="Доступна версія %1.%2.%3. Натисніть тут, щоб завантажити" Basic.Scene="Сцена" +Basic.DisplayCapture="Захват екрану" + +Basic.Main.PreviewConextMenu.Enable="Увімкнути вікно Перегляду" + +ScaleFiltering="Фільтр масштабування" +ScaleFiltering.Point="Ступінчастий" +ScaleFiltering.Bilinear="Білінійний" +ScaleFiltering.Bicubic="Бікубічний" +ScaleFiltering.Lanczos="Ланцош" + +Deinterlacing="Деінтерлейсинг" +Deinterlacing.Discard="Discard" +Deinterlacing.Retro="Retro" +Deinterlacing.Blend="Blend" +Deinterlacing.Blend2x="Blend 2x" +Deinterlacing.Linear="Linear" +Deinterlacing.Linear2x="Linear 2x" +Deinterlacing.Yadif="Yadif" +Deinterlacing.Yadif2x="Yadif 2x" +Deinterlacing.TopFieldFirst="Спочатку непарні рядки" +Deinterlacing.BottomFieldFirst="Спочатку парні рядки" + +Basic.Main.AddSceneDlg.Title="Додати Сцену" +Basic.Main.AddSceneDlg.Text="Будь ласка, введіть назву для Сцени" + +Basic.Main.DefaultSceneName.Text="Сцена %1" + +Basic.Main.AddSceneCollection.Title="Додати Набір Сцен" +Basic.Main.AddSceneCollection.Text="Будь ласка, введіть назву для Набору Сцен" + +Basic.Main.RenameSceneCollection.Title="Перейменування Набору Сцен" + +AddProfile.Title="Додати Профіль" +AddProfile.Text="Будь ласка, введіть назву для Профілю" + +RenameProfile.Title="Перейменування Профілю" + +Basic.Main.PreviewDisabled="Вікно Перегляду вимкнено" + +Basic.SourceSelect="Створити/Вибрати Джерело" +Basic.SourceSelect.CreateNew="Створити нове" +Basic.SourceSelect.AddExisting="Додати вже існуюче" +Basic.SourceSelect.AddVisible="Зробити джерело видимим" + +Basic.PropertiesWindow="Властивості для '%1'" +Basic.PropertiesWindow.SelectColor="Вибір кольору" +Basic.PropertiesWindow.SelectFont="Вибір шрифту" +Basic.PropertiesWindow.ConfirmTitle="Змінено налаштування" +Basic.PropertiesWindow.Confirm="Зміни незбережені. Ви хочете їх зберегти?" +Basic.PropertiesWindow.NoProperties="Немає доступних властивостей" + + + + + +Basic.TransformWindow.BoundsType="Тип рамки розміру" +Basic.TransformWindow.BoundsAlignment="Вирівнювання у рамці розміру" + + +Basic.TransformWindow.BoundsType.ScaleInner="Масштабувати до внутрішніх границь" +Basic.TransformWindow.BoundsType.ScaleOuter="Масштабувати до зовнішніх границь" +Basic.TransformWindow.BoundsType.ScaleToWidth="Масштабувати в ширину границь" +Basic.TransformWindow.BoundsType.ScaleToHeight="Масштабувати в висоту границь" +Basic.TransformWindow.BoundsType.Stretch="Розтягнути до границь" + + +Basic.Main.Scenes="Сцени" +Basic.Main.Sources="Джерела" +Basic.Main.Connecting="З'єднання..." +Basic.Main.StopRecording="Зупинити запис" +Basic.Main.StoppingRecording="Запис зупиняється..." +Basic.Main.StopStreaming="Закінчити трансляцію" +Basic.Main.StoppingStreaming="Припинення трансляції..." +Basic.Main.ForceStopStreaming="Закінчити трансляцію (миттєво)" @@ -83,6 +222,7 @@ Basic.Scene="Сцена" +FilenameFormatting.TT="%CCYY Рік, чотири цифри\n%YY Рік, останні дві цифри (00-99)\n%MM Місяць за номером (01-12)\n%DD День місяця, ноль попереду (01-31)\n%hh Години у 24-год. форматі (00-23)\n%mm Мінути (00-59)\n%ss Секунди (00-61)\n%% Знак % \n%a Абревіатура дня тижня\n%A День тижня повністю\n%b Абревіатура місяця\n%B Місяць повністю\n%d День місяця, ноль попереду (01-31)\n%H Години у 24-год. форматі (00-23)\n%I Години у 12-год. форматі (01-12)\n%m Місяць за номером (01-12)\n%M Мінути (00-59)\n%p ДП або ПП позначення\n%S Секунди (00-61)\n%y Рік, останні дві цифри (00-99)\n%Y Рік\n%z ISO 8601 поправка від UTC або часовий\n пояс чи абревіатура\n%Z Часовий пояс чи абревіатура\n" @@ -90,26 +230,44 @@ Basic.Scene="Сцена" - - - - - - - - - - - - - - - - - - - - +Basic.Hotkeys.StopStreaming="Закінчити трансляцію" +Basic.Hotkeys.StartRecording="Почати запис" +Basic.Hotkeys.StopRecording="Зупинити запис" +Basic.Hotkeys.SelectScene="Перейти до сцени" + +Hotkeys.Insert="Insert" +Hotkeys.Delete="Delete" +Hotkeys.Home="Home" +Hotkeys.End="End" +Hotkeys.PageUp="Page Up" +Hotkeys.PageDown="Page Down" +Hotkeys.NumLock="Num Lock" +Hotkeys.ScrollLock="Scroll Lock" +Hotkeys.CapsLock="Caps Lock" +Hotkeys.Backspace="Backspace" +Hotkeys.Tab="Tab" +Hotkeys.Print="Print" +Hotkeys.Pause="Pause" +Hotkeys.Left="Left" +Hotkeys.Right="Right" +Hotkeys.Up="Up" +Hotkeys.Down="Down" +Hotkeys.Windows="Windows" +Hotkeys.Super="Super" +Hotkeys.Menu="Menu" +Hotkeys.Space="Пробіл" +Hotkeys.NumpadNum="Numpad %1" +Hotkeys.NumpadMultiply="Numpad Multiply" +Hotkeys.NumpadDivide="Numpad Divide" +Hotkeys.NumpadAdd="Numpad Add" +Hotkeys.NumpadSubtract="Numpad Subtract" +Hotkeys.NumpadDecimal="Numpad Decimal" +Hotkeys.AppleKeypadNum="%1 (Keypad)" +Hotkeys.AppleKeypadMultiply="* (Keypad)" +Hotkeys.AppleKeypadDivide="/ (Keypad)" +Hotkeys.AppleKeypadAdd="+ (Keypad)" +Hotkeys.AppleKeypadSubtract="- (Keypad)" +Hotkeys.AppleKeypadDecimal=". (Keypad)" diff --git a/obs/data/locale/vi-VN.ini b/obs/data/locale/vi-VN.ini index d00db1c..59b22de 100644 --- a/obs/data/locale/vi-VN.ini +++ b/obs/data/locale/vi-VN.ini @@ -7,7 +7,8 @@ Apply="Áp dụng" Cancel="Hùy" Close="Đóng" Save="Lưu" -Discard="Loại bỏ" +Discard="Bỏ" +Disable="Tắt" Yes="Có" No="Không" Add="Thêm" @@ -26,29 +27,40 @@ Mixer="Máy trộn" Browse="trình duyệt" Mono="Âm thanh đơn" Stereo="Âm thanh nổi" -DroppedFrames="Khung bị bỏ %1 (%2%)" +DroppedFrames="Khung rớt %1 (%2%)" PreviewProjector="Toàn màn hình (xem trước)" SceneProjector="Toàn màn hình (cảnh)" -SourceProjector="Toàn màn hình (mã nguồn)" +SourceProjector="Toàn màn hình (nguồn)" Clear="Xóa" Revert="Phục hồi" Show="Hiện" Hide="Ẩn" Untitled="Chưa Đặt Tên" -New="Tài liệu mới" -Duplicate="tạo bản sao" +New="Mới" +Duplicate="Tạo bản sao" Enable="Kích hoạt" +DisableOSXVSync="Tắt OSX V-Sync" +ResetOSXVSyncOnExit="Đặt lại OSX V-Sync khi Thoát" +Transition="Chuyển tiếp" +QuickTransitions="C. cảnh nhanh" +Left="Trái" +Right="Phải" +Top="Trên" +Bottom="Dưới" + +QuickTransitions.SwapScenes="Hoán đổi cảnh Xem trước/Đầu ra sau khi Chuyển cảnh" +QuickTransitions.SwapScenesTT="Hoán đổi cảnh xem trước và cảnh đầu ra sau khi chuyển cảnh (nếu cảnh đầu ra gốc vẫn tồn tại).\nMọi thay đổi với cảnh đầu ra gốc sẽ không hoàn tác." +QuickTransitions.DuplicateScene="Tạo bản sao cảnh" - -TitleBar.Profile="Hồ sơ cá nhân" +TitleBar.Profile="Cấu hình" TitleBar.Scenes="Cảnh" NameExists.Title="Tên đã tồn tại" NameExists.Text="Tên hiện đang sử dụng." -NoNameEntered.Title="Vui lòng nhập tuổi hợp lệ" +NoNameEntered.Title="Vui lòng nhập tên hợp lệ" NoNameEntered.Text="Bạn không thể sử dụng tên có sản phẩm nào." @@ -114,6 +126,7 @@ Basic.DisplayCapture="Chụp màn hình" Basic.Main.PreviewConextMenu.Enable="Bật xem trước" + Basic.Main.AddSceneDlg.Title="Thêm cảnh" Basic.Main.AddSceneDlg.Text="Vui lòng nhập tên của cảnh" @@ -243,6 +256,7 @@ Basic.MainMenu.Edit.Order.MoveToTop="Chuyển đến đầu trang" Basic.MainMenu.Edit.Order.MoveToBottom="Chuyển đến dưới cùng" Basic.MainMenu.Edit.AdvAudio="Thuộc tính âm thanh nâng cao" + Basic.MainMenu.SceneCollection="& Cảnh bộ sưu tập" Basic.MainMenu.Profile="& Hồ sơ" diff --git a/obs/data/locale/zh-CN.ini b/obs/data/locale/zh-CN.ini index be86f53..e0ec6b4 100644 --- a/obs/data/locale/zh-CN.ini +++ b/obs/data/locale/zh-CN.ini @@ -87,6 +87,7 @@ ConfirmExit.Text="OBS工作中. 所有的流/录像将会停止. 你确定想要 ConfirmRemove.Title="确认移除" ConfirmRemove.Text="确定要删除 '$1' 吗?" +ConfirmRemove.TextMultiple="您确定要删除 %1 项目吗?" Output.ConnectFail.Title="连接失败" Output.ConnectFail.BadPath="无效的路径或URL。请检查您的设置以确认它们是有效的。" @@ -144,6 +145,12 @@ Basic.DisplayCapture="显示捕获" Basic.Main.PreviewConextMenu.Enable="开启预览" +ScaleFiltering="尺度滤波" +ScaleFiltering.Point="点" +ScaleFiltering.Bilinear="双线性算法" +ScaleFiltering.Bicubic="双立方算法" +ScaleFiltering.Lanczos="兰索斯算法" + Deinterlacing="去隔行扫描" Deinterlacing.Discard="舍弃" Deinterlacing.Retro="复古" @@ -186,7 +193,9 @@ Basic.PropertiesWindow.ConfirmTitle="设置已更改" Basic.PropertiesWindow.Confirm="有未保存的更改. 你想要保存他们吗?" Basic.PropertiesWindow.NoProperties="没有可用的属性" Basic.PropertiesWindow.AddFiles="添加文件" +Basic.PropertiesWindow.AddDir="添加目录" Basic.PropertiesWindow.AddURL="添加路径 /URL" +Basic.PropertiesWindow.AddEditableListDir="将目录添加到 '%1'" Basic.PropertiesWindow.AddEditableListFiles="将文件添加到 '%1'" Basic.PropertiesWindow.AddEditableListEntry="将条目添加到 '%1'" Basic.PropertiesWindow.EditEditableListEntry="编辑条目从 '%1'" @@ -250,7 +259,9 @@ Basic.Main.Connecting="连接中..." Basic.Main.StartRecording="开始录制" Basic.Main.StartStreaming="开始串流" Basic.Main.StopRecording="停止录制" +Basic.Main.StoppingRecording="停止录制..." Basic.Main.StopStreaming="停止串流" +Basic.Main.StoppingStreaming="停止推流..." Basic.Main.ForceStopStreaming="停止流 (放弃延迟)" Basic.MainMenu.File="& 文件" @@ -287,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="移至顶部" Basic.MainMenu.Edit.Order.MoveToBottom="移至底部" Basic.MainMenu.Edit.AdvAudio="&高级音频属性" +Basic.MainMenu.View="查看(&V)" +Basic.MainMenu.View.Toolbars="工具栏(&T)" +Basic.MainMenu.View.Toolbars.Listboxes="列表框(&L)" +Basic.MainMenu.View.SceneTransitions="场景过渡(&C)" +Basic.MainMenu.View.StatusBar="状态栏(&S)" + Basic.MainMenu.SceneCollection="&场景集合" Basic.MainMenu.Profile="&档案" @@ -308,11 +325,14 @@ Basic.Settings.General.Theme="主题" Basic.Settings.General.Language="语言" Basic.Settings.General.WarnBeforeStartingStream="启动流时显示确认对话框" Basic.Settings.General.WarnBeforeStoppingStream="停止流时显示确认对话框" +Basic.Settings.General.HideProjectorCursor="隐藏投影仪上的光标" Basic.Settings.General.Snapping="源对齐方式" Basic.Settings.General.ScreenSnapping="对齐源到屏幕边缘" Basic.Settings.General.CenterSnapping="水平和垂直居中对齐源" Basic.Settings.General.SourceSnapping="对齐源跟其他的源" Basic.Settings.General.SnapDistance="对齐的敏感性" +Basic.Settings.General.RecordWhenStreaming="当推流时自动录像" +Basic.Settings.General.KeepRecordingWhenStreamStops="当推流停止时保持录像" Basic.Settings.Stream="串流" Basic.Settings.Stream.StreamType="串流类型" @@ -431,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="按住讲话延时" Basic.Settings.Audio.UnknownAudioDevice="[设备未连接或不可用]" Basic.Settings.Advanced="高级" +Basic.Settings.Advanced.General.ProcessPriority="进程优先级" +Basic.Settings.Advanced.General.ProcessPriority.High="高" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="高于正常" +Basic.Settings.Advanced.General.ProcessPriority.Normal="常规" +Basic.Settings.Advanced.General.ProcessPriority.Idle="空闲" Basic.Settings.Advanced.FormatWarning="警告: NV12 之外的颜色格式主要用于录像, 并不推荐在流式传输时使用. 流可能导致更多的 CPU 使用率, 因为需要颜色格式转换." Basic.Settings.Advanced.Audio.BufferingTime="音频缓冲时间" Basic.Settings.Advanced.Video.ColorFormat="颜色格式" diff --git a/obs/data/locale/zh-TW.ini b/obs/data/locale/zh-TW.ini index c6f71f0..62e80f4 100644 --- a/obs/data/locale/zh-TW.ini +++ b/obs/data/locale/zh-TW.ini @@ -20,10 +20,10 @@ Properties="屬性" MoveUp="向上移動" MoveDown="向下移動" Settings="設定" -Display="顯示器" +Display="螢幕" Name="名稱" Exit="離開" -Mixer="混合器" +Mixer="混音器" Browse="瀏覽" Mono="單聲道" Stereo="立體聲" @@ -40,7 +40,7 @@ New="新增" Duplicate="複製" Enable="啟用" DisableOSXVSync="關閉OSX垂直同步" -ResetOSXVSyncOnExit="離開時重製OSX垂直同步" +ResetOSXVSyncOnExit="離開時重置OSX垂直同步" HighResourceUsage="編碼過載!考慮降低影像設定或使用更快的編碼預設。" Transition="轉場" QuickTransitions="快速轉場" @@ -57,15 +57,15 @@ QuickTransitions.EditProperties="複製來源" QuickTransitions.EditPropertiesTT="在修改同樣的場景時,讓修改影像來源的屬性時不需要修改輸出。\n這只能在'複製場景'被啟動時使用。\n某些來源 (如擷取或是媒體來源) 並不支援此功能且無法被單獨修改。\n變更這個值將會 (如果還存在的話) 重置目前的輸出場景。\n\n警告:由於來源會被複製,這功能可能會使用額外的系統或是影像資源。" QuickTransitions.HotkeyName="快速轉場:%1" -Basic.AddTransition="添加設置轉換動畫" -Basic.RemoveTransition="移除設置轉換動畫" -Basic.TransitionProperties="轉換動畫屬性" +Basic.AddTransition="添加設置轉換" +Basic.RemoveTransition="移除可選的轉場特效" +Basic.TransitionProperties="轉場特效屬性" Basic.SceneTransitions="轉場特效" Basic.TransitionDuration="持續時間" Basic.TogglePreviewProgramMode="工作室模式" -TransitionNameDlg.Text="請輸入轉換動畫名稱" -TransitionNameDlg.Title="轉換動畫名稱" +TransitionNameDlg.Text="請輸入轉場特效名稱" +TransitionNameDlg.Title="轉場特效名稱" TitleBar.Profile="設定檔" TitleBar.Scenes="場景" @@ -87,6 +87,7 @@ ConfirmExit.Text="正在使用 OBS,所有的串流/錄製都將被關閉。您 ConfirmRemove.Title="確認刪除?" ConfirmRemove.Text="您確定要刪除「$1」?" +ConfirmRemove.TextMultiple="您確定要移除這%1個項目嘛?" Output.ConnectFail.Title="連線失敗" Output.ConnectFail.BadPath="無效的路徑或 URL。 請確認您的設定是正確的。" @@ -118,6 +119,7 @@ LicenseAgreement.Exit="離開" Remux.SourceFile="OBS 錄影" Remux.TargetFile="目標檔案" Remux.Remux="重新封裝" +Remux.OBSRecording="OBS錄影" Remux.FinishedTitle="重新封裝完成" Remux.Finished="錄影已被重新封裝" Remux.FinishedError="錄影已被重新封裝,但檔案可能不完整" @@ -143,6 +145,12 @@ Basic.DisplayCapture="截取螢幕" Basic.Main.PreviewConextMenu.Enable="啟用預覽" +ScaleFiltering="縮放濾鏡" +ScaleFiltering.Point="點" +ScaleFiltering.Bilinear="雙線性插值" +ScaleFiltering.Bicubic="雙三次插值" +ScaleFiltering.Lanczos="Lanczos" + Deinterlacing="去交錯" Deinterlacing.Discard="捨棄" Deinterlacing.Retro="復古" @@ -152,6 +160,8 @@ Deinterlacing.Linear="線性" Deinterlacing.Linear2x="線性 2x" Deinterlacing.Yadif="Yadif" Deinterlacing.Yadif2x="Yadif 2x" +Deinterlacing.TopFieldFirst="由偶數場開始" +Deinterlacing.BottomFieldFirst="由奇數場開始" Basic.Main.AddSceneDlg.Title="新增場景" Basic.Main.AddSceneDlg.Text="請輸入場景名稱" @@ -183,12 +193,14 @@ Basic.PropertiesWindow.ConfirmTitle="設定值已變更" Basic.PropertiesWindow.Confirm="有尚未儲存的變更。要保存他們嗎?" Basic.PropertiesWindow.NoProperties="無可用的屬性" Basic.PropertiesWindow.AddFiles="新增檔案" +Basic.PropertiesWindow.AddDir="新增目錄" Basic.PropertiesWindow.AddURL="新增路徑/URL" +Basic.PropertiesWindow.AddEditableListDir="將目錄新增至「%1」" Basic.PropertiesWindow.AddEditableListFiles="將檔案新增至「%1」" Basic.PropertiesWindow.AddEditableListEntry="將項目新增至「%1」" Basic.PropertiesWindow.EditEditableListEntry="編輯「%1」的項目" -Basic.PropertiesView.FPS.Simple="簡單的 FPS 值" +Basic.PropertiesView.FPS.Simple="常用 FPS 值" Basic.PropertiesView.FPS.Rational="有理數 FPS 值" Basic.PropertiesView.FPS.ValidFPSRanges="FPS 的有效範圍:" @@ -214,23 +226,23 @@ Basic.TransformWindow="場景物件變型" Basic.TransformWindow.Position="位置" Basic.TransformWindow.Rotation="旋轉" Basic.TransformWindow.Size="大小" -Basic.TransformWindow.Alignment="位置原點" -Basic.TransformWindow.BoundsType="外框類型" -Basic.TransformWindow.BoundsAlignment="對齊外框" -Basic.TransformWindow.Bounds="外框大小" +Basic.TransformWindow.Alignment="對齊基準" +Basic.TransformWindow.BoundsType="邊框類型" +Basic.TransformWindow.BoundsAlignment="邊框內對齊" +Basic.TransformWindow.Bounds="邊框大小" Basic.TransformWindow.Crop="剪裁" -Basic.TransformWindow.Alignment.TopLeft="左上角" -Basic.TransformWindow.Alignment.TopCenter="水平靠上" -Basic.TransformWindow.Alignment.TopRight="右上角" -Basic.TransformWindow.Alignment.CenterLeft="垂直靠左" -Basic.TransformWindow.Alignment.Center="正中心" -Basic.TransformWindow.Alignment.CenterRight="垂直靠右" -Basic.TransformWindow.Alignment.BottomLeft="左下角" -Basic.TransformWindow.Alignment.BottomCenter="水平靠下" -Basic.TransformWindow.Alignment.BottomRight="右下角" +Basic.TransformWindow.Alignment.TopLeft="置頂靠左" +Basic.TransformWindow.Alignment.TopCenter="置頂居中" +Basic.TransformWindow.Alignment.TopRight="置頂靠右" +Basic.TransformWindow.Alignment.CenterLeft="靠左居中" +Basic.TransformWindow.Alignment.Center="置中" +Basic.TransformWindow.Alignment.CenterRight="靠右居中" +Basic.TransformWindow.Alignment.BottomLeft="置底靠左" +Basic.TransformWindow.Alignment.BottomCenter="置底居中" +Basic.TransformWindow.Alignment.BottomRight="置底靠右" -Basic.TransformWindow.BoundsType.None="無外框" +Basic.TransformWindow.BoundsType.None="無邊框" Basic.TransformWindow.BoundsType.MaxOnly="等比例縮放至框內,不超過原始大小" Basic.TransformWindow.BoundsType.ScaleInner="等比例縮放至框內" Basic.TransformWindow.BoundsType.ScaleOuter="等比例縮放至框外" @@ -247,7 +259,9 @@ Basic.Main.Connecting="連線中……" Basic.Main.StartRecording="開始錄製" Basic.Main.StartStreaming="開始串流" Basic.Main.StopRecording="停止錄製" +Basic.Main.StoppingRecording="停止錄製..." Basic.Main.StopStreaming="停止串流" +Basic.Main.StoppingStreaming="停止串流..." Basic.Main.ForceStopStreaming="停止實況(丟棄延遲)" Basic.MainMenu.File="檔案 (&F)" @@ -274,9 +288,9 @@ Basic.MainMenu.Edit.Transform.Rotate90CCW="逆時針旋轉 90°" Basic.MainMenu.Edit.Transform.Rotate180="旋轉 180°" Basic.MainMenu.Edit.Transform.FlipHorizontal="水平翻轉 (&H)" Basic.MainMenu.Edit.Transform.FlipVertical="垂直翻轉 (&V)" -Basic.MainMenu.Edit.Transform.FitToScreen="適合螢幕 (&F)" -Basic.MainMenu.Edit.Transform.StretchToScreen="拉伸到螢幕 (&S)" -Basic.MainMenu.Edit.Transform.CenterToScreen="垂直至中畫面 (&C)" +Basic.MainMenu.Edit.Transform.FitToScreen="縮放到螢幕大小,不改變比例 (&F)" +Basic.MainMenu.Edit.Transform.StretchToScreen="拉伸到螢幕大小 (&S)" +Basic.MainMenu.Edit.Transform.CenterToScreen="置中畫面 (&C)" Basic.MainMenu.Edit.Order="排序 (&O)" Basic.MainMenu.Edit.Order.MoveUp="向上移動 (&U)" Basic.MainMenu.Edit.Order.MoveDown="向下移動 (&D)" @@ -284,6 +298,12 @@ Basic.MainMenu.Edit.Order.MoveToTop="移至最上層 (&T)" Basic.MainMenu.Edit.Order.MoveToBottom="移至最下層 (&B)" Basic.MainMenu.Edit.AdvAudio="進階音訊屬性(&A)" +Basic.MainMenu.View="檢視(&V)" +Basic.MainMenu.View.Toolbars="工具列(&T)" +Basic.MainMenu.View.Toolbars.Listboxes="列表控制項(&L)" +Basic.MainMenu.View.SceneTransitions="轉場特效(&c)" +Basic.MainMenu.View.StatusBar="狀態列(&S)" + Basic.MainMenu.SceneCollection="場景群組 (&S)" Basic.MainMenu.Profile="設定檔 (&P)" @@ -305,6 +325,14 @@ Basic.Settings.General.Theme="佈景主題" Basic.Settings.General.Language="語言" Basic.Settings.General.WarnBeforeStartingStream="啟動串流時顯示確認對話框" Basic.Settings.General.WarnBeforeStoppingStream="停止串流時顯示確認對話框" +Basic.Settings.General.HideProjectorCursor="當游標在投影上時隱藏游標" +Basic.Settings.General.Snapping="貼齊對準來源" +Basic.Settings.General.ScreenSnapping="來源與螢幕邊緣貼齊" +Basic.Settings.General.CenterSnapping="來源與水平中央以及垂直中央貼齊" +Basic.Settings.General.SourceSnapping="來源與其他來源貼齊" +Basic.Settings.General.SnapDistance="貼齊敏感度" +Basic.Settings.General.RecordWhenStreaming="串流時自動錄製" +Basic.Settings.General.KeepRecordingWhenStreamStops="串流停止時繼續錄製" Basic.Settings.Stream="串流" Basic.Settings.Stream.StreamType="串流類型" @@ -314,30 +342,30 @@ Basic.Settings.Output.Format="錄影格式" Basic.Settings.Output.Encoder="編碼器" Basic.Settings.Output.SelectDirectory="選擇錄影資料夾" Basic.Settings.Output.SelectFile="選擇錄影檔案" -Basic.Settings.Output.EnforceBitrate="強制設定實況流量上限" +Basic.Settings.Output.EnforceBitrate="強制設定串流位元率上限" Basic.Settings.Output.Mode="輸出模式" Basic.Settings.Output.Mode.Simple="簡易" Basic.Settings.Output.Mode.Adv="進階" Basic.Settings.Output.Mode.FFmpeg="FFmpeg 輸出" Basic.Settings.Output.Simple.SavePath="錄影路徑" Basic.Settings.Output.Simple.RecordingQuality="錄影畫質" -Basic.Settings.Output.Simple.RecordingQuality.Stream="與實況同等畫質" +Basic.Settings.Output.Simple.RecordingQuality.Stream="與串流同等畫質" Basic.Settings.Output.Simple.RecordingQuality.Small="高畫質,檔案大小中等" Basic.Settings.Output.Simple.RecordingQuality.HQ="近乎無損畫質,檔案大小巨大" Basic.Settings.Output.Simple.RecordingQuality.Lossless="無損畫質,非常大的檔案" -Basic.Settings.Output.Simple.Warn.VideoBitrate="警告:實況影像流量將會被設為 %1,他是目前實況流量的上限。如果您確定想要超過 %1 的限制,請開啟進階編碼器選項,並取消「強制設定實況流量上限」。" -Basic.Settings.Output.Simple.Warn.AudioBitrate="警告:實況音訊流量將會被設為 %1,他是目前實況流量的上限。如果您確定想要超過 %1 的限制,請開啟進階編碼器選項,並取消「強制設定實況流量上限」。" -Basic.Settings.Output.Simple.Warn.Encoder="警告:如果錄影與實況同時運作,並使用與實況不同的編碼品質設定將會增加額外的CPU使用量" -Basic.Settings.Output.Simple.Warn.Lossless="警告:無損畫質將會產生大容量的暫存檔!無損畫質在高解析度或高幀率時,可能會每分鐘使用高達 7GB(gigabytes)的容量。除非您擁有海量的硬碟空間,否則不建議使用無損畫質錄製長時間的影片。" +Basic.Settings.Output.Simple.Warn.VideoBitrate="警告:串流影像位元率將會被設為 %1,他是目前串流位元率的上限。如果您確定想要超過 %1 的限制,請開啟進階編碼器選項,並取消「強制設定串流位元率上限」。" +Basic.Settings.Output.Simple.Warn.AudioBitrate="警告:實況串流位元率將會被設為 %1,他是目前串流位元率的上限。如果您確定想要超過 %1 的限制,請開啟進階編碼器選項,並取消「強制設定串流位元率上限」。" +Basic.Settings.Output.Simple.Warn.Encoder="警告:如果錄影與串流同時運作,並使用與串流不同的編碼品質設定將會增加額外的CPU使用量" +Basic.Settings.Output.Simple.Warn.Lossless="警告:無損畫質將會產生非常大的檔案!無損畫質在高解析度或高影格率時,可能會每分鐘使用高達 7GB(gigabytes)的容量。除非您擁有非常大量的硬碟空間,否則不建議使用無損畫質錄製長時間的影片。" Basic.Settings.Output.Simple.Warn.Lossless.Msg="你確定你想要使用無損畫質?" Basic.Settings.Output.Simple.Warn.Lossless.Title="無損畫質警告!" -Basic.Settings.Output.Simple.Warn.MultipleQSV="警告 ︰ 在同一時間串流和錄像,您不能使用多個單獨的 QSV 編碼器。 如果你想要在同一時間串流和錄像,請更改錄像編碼器或串流編碼器。" +Basic.Settings.Output.Simple.Warn.MultipleQSV="警告︰同時串流和錄影時,不能使用多個不同的 QSV 編碼器。如果你想要在同一時間串流和錄影,請更改錄影編碼器或串流編碼器。" Basic.Settings.Output.Simple.Encoder.Software="軟體編碼( x264 )" -Basic.Settings.Output.Simple.Encoder.Hardware.QSV="硬體 (QSV)" -Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="硬體 (NVENC)" +Basic.Settings.Output.Simple.Encoder.Hardware.QSV="硬體編碼 (QSV)" +Basic.Settings.Output.Simple.Encoder.Hardware.NVENC="硬體編碼 (NVENC)" Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="軟體編碼( x264 預設低 CPU 使用率,將增加檔案容量 )" -Basic.Settings.Output.VideoBitrate="影像頻率(kbit/s)" -Basic.Settings.Output.AudioBitrate="音效頻率(kbit/s)" +Basic.Settings.Output.VideoBitrate="影像位元率(kbit/s)" +Basic.Settings.Output.AudioBitrate="音效位元率(kbit/s)" Basic.Settings.Output.Reconnect="自動重新連線" Basic.Settings.Output.RetryDelay="重試間隔(秒)" Basic.Settings.Output.MaxRetries="最大嘗試次數" @@ -385,6 +413,7 @@ Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Muxer 設定(如果有才啟 FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z" +FilenameFormatting.TT="%CCYY 年, 四位數\n%YY 年, 末兩位數 (00-99)\n%MM 月(01-12)\n%DD 日(01-31)\n%hh 時(24小時格式, 00-23)\n%mm 分(00-59)\n%ss 秒(00-61)\n%% %符號\n%a 星期, 縮寫\n%A 星期\n%b 月, 縮寫\n%B 月\n%d 日(01-31)\n%H 時(24小時格式, 00-23)\n%I 時(12小時格式, 01-12)\n%m 月(01-12)\n%M 分(00-59)\n%p AM或PM\n%S 秒(00-61)\n%y 年, 末兩位數 (00-99)\n%Y 年\n%z 與UTC時區的時差(ISO 8601格式)或\n 時區名或時區縮寫\n%Z 時區名或縮寫\n" Basic.Settings.Video="影像" Basic.Settings.Video.Adapter="顯示卡:" @@ -392,11 +421,11 @@ Basic.Settings.Video.BaseResolution="來源(全畫面)解析度:" Basic.Settings.Video.ScaledResolution="輸出(縮放)解析度:" Basic.Settings.Video.DownscaleFilter="壓縮方式:" Basic.Settings.Video.DisableAeroWindows="暫時關閉 Aero 特效(僅限 Windows)" -Basic.Settings.Video.FPS="FPS(幀率):" +Basic.Settings.Video.FPS="FPS (影格率):" Basic.Settings.Video.FPSCommon="常用 FPS:" Basic.Settings.Video.FPSInteger="自訂 FPS:" Basic.Settings.Video.FPSFraction="自訂 FPS 比率:" -Basic.Settings.Video.Numerator="幀數(分子):" +Basic.Settings.Video.Numerator="影格數(分子):" Basic.Settings.Video.Denominator="秒數(分母):" Basic.Settings.Video.Renderer="渲染器:" Basic.Settings.Video.InvalidResolution="無效的解析度。 必須表達為 [寬]x[高] (例如:1920x1080)" @@ -422,6 +451,11 @@ Basic.Settings.Audio.PushToTalkDelay="按壓時說話 延遲" Basic.Settings.Audio.UnknownAudioDevice="[設備未連接或不可用]" Basic.Settings.Advanced="進階" +Basic.Settings.Advanced.General.ProcessPriority="程序優先順序" +Basic.Settings.Advanced.General.ProcessPriority.High="高" +Basic.Settings.Advanced.General.ProcessPriority.AboveNormal="在標準以上" +Basic.Settings.Advanced.General.ProcessPriority.Normal="標準" +Basic.Settings.Advanced.General.ProcessPriority.Idle="閒置" Basic.Settings.Advanced.FormatWarning="警告: NV12以外的色彩格式主要用於錄影,並不推薦在串流時使用。串流時可能會因需要轉換色彩格式而增加CPU使用率。" Basic.Settings.Advanced.Audio.BufferingTime="音訊緩衝時間" Basic.Settings.Advanced.Video.ColorFormat="色彩格式" @@ -472,25 +506,25 @@ Hotkeys.Windows="Windows" Hotkeys.Super="超級" Hotkeys.Menu="選單" Hotkeys.Space="空格" -Hotkeys.NumpadNum="數字鍵盤 %1" -Hotkeys.NumpadMultiply="數字鍵 乘號" -Hotkeys.NumpadDivide="數字鍵 除號" -Hotkeys.NumpadAdd="數字鍵 加號" -Hotkeys.NumpadSubtract="數字鍵 減號" -Hotkeys.NumpadDecimal="數字鍵 十進位" +Hotkeys.NumpadNum="九宮鍵 %1" +Hotkeys.NumpadMultiply="九宮鍵 乘號" +Hotkeys.NumpadDivide="九宮鍵 除號" +Hotkeys.NumpadAdd="九宮鍵 加號" +Hotkeys.NumpadSubtract="九宮鍵 減號" +Hotkeys.NumpadDecimal="九宮鍵 十進位" Hotkeys.AppleKeypadNum="%1 (九宮鍵)" Hotkeys.AppleKeypadMultiply="* (九宮鍵)" Hotkeys.AppleKeypadDivide="/ (九宮鍵)" -Hotkeys.AppleKeypadAdd="+ (鍵盤)" -Hotkeys.AppleKeypadSubtract="+ (鍵盤)" -Hotkeys.AppleKeypadDecimal=". (鍵盤)" -Hotkeys.AppleKeypadEqual="+ (鍵盤)" +Hotkeys.AppleKeypadAdd="+ (九宮鍵)" +Hotkeys.AppleKeypadSubtract="+ (九宮鍵)" +Hotkeys.AppleKeypadDecimal=". (九宮鍵)" +Hotkeys.AppleKeypadEqual="+ (九宮鍵)" Hotkeys.MouseButton="滑鼠 %1" Mute="靜音" Unmute="取消靜音" Push-to-mute="按壓時靜音" -Push-to-talk="點擊即說" +Push-to-talk="按壓時說話" SceneItemShow="顯示 「%1」" SceneItemHide="隱藏 「%1」" diff --git a/obs/forms/OBSBasic.ui b/obs/forms/OBSBasic.ui index 0bd0191..76d8e55 100644 --- a/obs/forms/OBSBasic.ui +++ b/obs/forms/OBSBasic.ui @@ -7,7 +7,7 @@ 0 0 - 957 + 1110 724 @@ -575,210 +575,224 @@ - - - - 4 - - - - - - 120 - 0 - - - - - - - - 4 - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 22 - 22 - - - - Basic.AddTransition - - - Basic.AddTransition - - - - - - - :/res/images/add.png:/res/images/add.png - - - true - - - addIconSmall - - - - - - - - 0 - 0 - - - - - 22 - 22 - - - - Basic.RemoveTransition - - - Basic.RemoveTransition - - - - - - - :/res/images/list_remove.png:/res/images/list_remove.png - - - true - - - removeIconSmall - - - - - - - - 0 - 0 - - - - - 22 - 22 - - - - Basic.TransitionProperties - - - Basic.TransitionProperties - - - - - - - :/res/images/configuration21_16.png:/res/images/configuration21_16.png - - - true - - - configIconSmall - - - - - - - - - 4 - - - - - - 0 - 0 - - - - Basic.TransitionDuration - - - transitionDuration - - - - - - - ms - - - 2 - - - 10000 - - - 50 - - - 300 - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - + Basic.SceneTransitions + + + + + 4 + + + 1 + + + 1 + + + 1 + + + 2 + + + + + + 120 + 0 + + + + + + + + 4 + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 22 + 22 + + + + Basic.AddTransition + + + Basic.AddTransition + + + + + + + :/res/images/add.png:/res/images/add.png + + + true + + + addIconSmall + + + + + + + + 0 + 0 + + + + + 22 + 22 + + + + Basic.RemoveTransition + + + Basic.RemoveTransition + + + + + + + :/res/images/list_remove.png:/res/images/list_remove.png + + + true + + + removeIconSmall + + + + + + + + 0 + 0 + + + + + 22 + 22 + + + + Basic.TransitionProperties + + + Basic.TransitionProperties + + + + + + + :/res/images/configuration21_16.png:/res/images/configuration21_16.png + + + true + + + configIconSmall + + + + + + + + + 4 + + + + + + 0 + 0 + + + + Basic.TransitionDuration + + + + + + + ms + + + 2 + + + 10000 + + + 50 + + + 300 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + @@ -790,7 +804,7 @@ 0 0 - 957 + 1110 21 @@ -861,6 +875,7 @@ + @@ -884,8 +899,23 @@ + + + Basic.MainMenu.View + + + + Basic.MainMenu.View.Toolbars + + + + + + + + @@ -1248,6 +1278,47 @@ Basic.MainMenu.AlwaysOnTop + + + true + + + true + + + Basic.MainMenu.View.Toolbars.Listboxes + + + + + true + + + true + + + Basic.MainMenu.View.SceneTransitions + + + + + true + + + true + + + Basic.MainMenu.View.StatusBar + + + + + true + + + Basic.MainMenu.Edit.LockPreview + + diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui index 736b75e..be10b2f 100644 --- a/obs/forms/OBSBasicSettings.ui +++ b/obs/forms/OBSBasicSettings.ui @@ -6,7 +6,7 @@ 0 0 - 896 + 981 667 @@ -185,14 +185,21 @@ - + + + + Basic.Settings.General.RecordWhenStreaming + + + + Qt::Horizontal - + true @@ -285,6 +292,23 @@ + + + + Basic.Settings.General.HideProjectorCursor + + + + + + + false + + + Basic.Settings.General.KeepRecordingWhenStreamStops + + + @@ -2497,8 +2521,8 @@ 0 0 - 80 - 16 + 98 + 28 @@ -2862,9 +2886,9 @@ 0 - 0 - 559 - 563 + -206 + 803 + 820 @@ -2883,6 +2907,28 @@ + + + + Basic.Settings.General + + + + + + Basic.Settings.Advanced.General.ProcessPriority + + + processPriority + + + + + + + + + @@ -3212,6 +3258,28 @@ + + + + Basic.Settings.Advanced.Network + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + + + + Basic.Settings.Advanced.Network.BindToIP + + + + + + @@ -3292,8 +3360,8 @@ setCurrentIndex(int) - 159 - 34 + 310 + 29 241 @@ -3308,8 +3376,8 @@ setCurrentIndex(int) - 586 - 38 + 250 + 39 250 @@ -3324,12 +3392,12 @@ setVisible(bool) - 875 - 360 + 250 + 39 - 875 - 427 + 250 + 39 @@ -3340,12 +3408,12 @@ setVisible(bool) - 875 - 360 + 250 + 39 - 466 - 427 + 250 + 39 @@ -3356,12 +3424,12 @@ setVisible(bool) - 875 - 360 + 250 + 39 - 875 - 503 + 250 + 39 @@ -3372,12 +3440,12 @@ setVisible(bool) - 875 - 360 + 250 + 39 - 466 - 503 + 250 + 39 @@ -3388,12 +3456,12 @@ setCurrentIndex(int) - 705 - 144 + 259 + 48 - 396 - 245 + 241 + 30 @@ -3404,12 +3472,12 @@ setEnabled(bool) - 514 - 344 + 259 + 60 - 748 - 344 + 228 + 50 @@ -3420,12 +3488,12 @@ setEnabled(bool) - 864 - 141 + 259 + 39 - 427 - 178 + 228 + 29 @@ -3436,12 +3504,12 @@ setEnabled(bool) - 864 - 141 + 259 + 60 - 864 - 178 + 228 + 50 @@ -3452,12 +3520,12 @@ setCurrentIndex(int) - 864 - 141 + 259 + 60 - 427 - 215 + 259 + 60 @@ -3468,12 +3536,12 @@ setEnabled(bool) - 864 - 141 + 250 + 39 - 864 - 215 + 250 + 39 @@ -3484,12 +3552,12 @@ setEnabled(bool) - 427 - 355 + 250 + 39 - 862 - 355 + 250 + 39 @@ -3500,12 +3568,12 @@ setEnabled(bool) - 424 - 331 + 250 + 39 - 658 - 331 + 250 + 39 @@ -3516,12 +3584,12 @@ setEnabled(bool) - 875 - 254 + 250 + 39 - 466 - 291 + 250 + 39 @@ -3532,12 +3600,12 @@ setEnabled(bool) - 516 - 411 + 250 + 39 250 - 92 + 39 @@ -3548,12 +3616,12 @@ setEnabled(bool) - 533 - 273 + 250 + 39 - 449 - 301 + 250 + 39 @@ -3564,12 +3632,12 @@ setEnabled(bool) - 690 - 454 + 250 + 39 - 690 - 506 + 250 + 39 @@ -3580,12 +3648,12 @@ setEnabled(bool) - 376 - 196 + 720 + 280 - 305 - 224 + 346 + 306 @@ -3596,12 +3664,12 @@ setEnabled(bool) - 417 - 204 + 761 + 280 - 434 - 234 + 778 + 306 @@ -3612,12 +3680,12 @@ setEnabled(bool) - 476 - 202 + 820 + 280 - 466 - 253 + 810 + 329 @@ -3628,12 +3696,12 @@ setEnabled(bool) - 518 - 204 + 862 + 280 - 515 - 277 + 859 + 352 @@ -3644,12 +3712,12 @@ setEnabled(bool) - 557 - 207 + 866 + 280 866 - 306 + 375 @@ -3660,12 +3728,28 @@ setVisible(bool) - 484 - 147 + 250 + 39 - 483 - 170 + 250 + 39 + + + + + recordWhenStreaming + toggled(bool) + keepRecordStreamStops + setEnabled(bool) + + + 404 + 193 + + + 404 + 219 diff --git a/obs/forms/OBSBasicSourceSelect.ui b/obs/forms/OBSBasicSourceSelect.ui index 455cfd8..07f64ab 100644 --- a/obs/forms/OBSBasicSourceSelect.ui +++ b/obs/forms/OBSBasicSourceSelect.ui @@ -20,7 +20,7 @@ - + Basic.SourceSelect.CreateNew @@ -73,7 +73,7 @@ - radioButton + createNew toggled(bool) sourceName setEnabled(bool) diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index 0422027..232f8c8 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -328,6 +328,8 @@ bool OBSApp::InitGlobalConfigDefaults() config_set_default_string(globalConfig, "General", "Language", DEFAULT_LANG); config_set_default_uint(globalConfig, "General", "MaxLogs", 10); + config_set_default_string(globalConfig, "General", "ProcessPriority", + "Normal"); #if _WIN32 config_set_default_string(globalConfig, "Video", "Renderer", @@ -354,6 +356,16 @@ bool OBSApp::InitGlobalConfigDefaults() "CenterSnapping", false); config_set_default_double(globalConfig, "BasicWindow", "SnapDistance", 10.0); + config_set_default_bool(globalConfig, "BasicWindow", + "RecordWhenStreaming", false); + config_set_default_bool(globalConfig, "BasicWindow", + "KeepRecordingWhenStreamStops", false); + config_set_default_bool(globalConfig, "BasicWindow", + "ShowTransitions", true); + config_set_default_bool(globalConfig, "BasicWindow", + "ShowListboxToolbars", true); + config_set_default_bool(globalConfig, "BasicWindow", + "ShowStatusBar", true); #ifdef __APPLE__ config_set_default_bool(globalConfig, "Video", "DisableOSXVSync", true); @@ -1298,7 +1310,6 @@ static int run_program(fstream &logFile, int argc, char *argv[]) return 0; prof.Stop(); - PrintInitProfile(); return program.exec(); @@ -1424,6 +1435,16 @@ char *GetConfigPathPtr(const char *name) } } +int GetProgramDataPath(char *path, size_t size, const char *name) +{ + return os_get_program_data_path(path, size, name); +} + +char *GetProgramDataPathPtr(const char *name) +{ + return os_get_program_data_path_ptr(name); +} + bool GetFileSafeName(const char *name, std::string &file) { size_t base_len = strlen(name); diff --git a/obs/obs-app.hpp b/obs/obs-app.hpp index 8eac175..a341a82 100644 --- a/obs/obs-app.hpp +++ b/obs/obs-app.hpp @@ -136,6 +136,9 @@ public: int GetConfigPath(char *path, size_t size, const char *name); char *GetConfigPathPtr(const char *name); +int GetProgramDataPath(char *path, size_t size, const char *name); +char *GetProgramDataPathPtr(const char *name); + inline OBSApp *App() {return static_cast(qApp);} inline config_t *GetGlobalConfig() {return App()->GlobalConfig();} diff --git a/obs/platform-windows.cpp b/obs/platform-windows.cpp index c34bbd5..fb4c997 100644 --- a/obs/platform-windows.cpp +++ b/obs/platform-windows.cpp @@ -215,3 +215,18 @@ void SetAlwaysOnTop(QMainWindow *window, bool enable) SetWindowPos(hwnd, enable ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); } + +void SetProcessPriority(const char *priority) +{ + if (!priority) + return; + + if (strcmp(priority, "High") == 0) + SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); + else if (strcmp(priority, "AboveNormal") == 0) + SetPriorityClass(GetCurrentProcess(), ABOVE_NORMAL_PRIORITY_CLASS); + else if (strcmp(priority, "Normal") == 0) + SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); + else if (strcmp(priority, "Idle") == 0) + SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS); +} diff --git a/obs/platform.hpp b/obs/platform.hpp index de9d1c6..a25e4a8 100644 --- a/obs/platform.hpp +++ b/obs/platform.hpp @@ -51,6 +51,7 @@ void SetAlwaysOnTop(QMainWindow *window, bool enable); #ifdef _WIN32 uint32_t GetWindowsVersion(); void SetAeroEnabled(bool enable); +void SetProcessPriority(const char *priority); #endif #ifdef __APPLE__ diff --git a/obs/properties-view.cpp b/obs/properties-view.cpp index 1d16b32..14cd3ff 100644 --- a/obs/properties-view.cpp +++ b/obs/properties-view.cpp @@ -401,7 +401,7 @@ static void AddComboItem(QComboBox *combo, obs_property_t *prop, var = QVariant::fromValue(val); } else if (format == OBS_COMBO_FORMAT_STRING) { - var = obs_property_list_item_string(prop, idx); + var = QByteArray(obs_property_list_item_string(prop, idx)); } combo->addItem(QT_UTF8(name), var); @@ -470,13 +470,16 @@ QWidget *OBSPropertiesView::AddList(obs_property_t *prop, bool &warning) if (type == OBS_COMBO_TYPE_EDITABLE) combo->setEditable(true); + combo->setMaxVisibleItems(40); + string value = from_obs_data(settings, name, format); if (format == OBS_COMBO_FORMAT_STRING && - type == OBS_COMBO_TYPE_EDITABLE) + type == OBS_COMBO_TYPE_EDITABLE) { combo->lineEdit()->setText(QT_UTF8(value.c_str())); - else - idx = combo->findData(QT_UTF8(value.c_str())); + } else { + idx = combo->findData(QByteArray(value.c_str())); + } if (type == OBS_COMBO_TYPE_EDITABLE) return NewWidget(prop, combo, @@ -1518,7 +1521,7 @@ void WidgetInfo::ListChanged(const char *setting) QVariant data; if (type == OBS_COMBO_TYPE_EDITABLE) { - data = combo->currentText(); + data = combo->currentText().toUtf8(); } else { int index = combo->currentIndex(); if (index != -1) @@ -1540,7 +1543,7 @@ void WidgetInfo::ListChanged(const char *setting) break; case OBS_COMBO_FORMAT_STRING: obs_data_set_string(view->settings, setting, - QT_TO_UTF8(data.toString())); + data.toByteArray().constData()); break; } } @@ -1632,6 +1635,8 @@ void WidgetInfo::EditableListChanged() obs_data_set_array(view->settings, setting, array); obs_data_array_release(array); + + ControlChanged(); } void WidgetInfo::ButtonClicked() @@ -1673,7 +1678,7 @@ void WidgetInfo::ControlChanged() if (!PathChanged(setting)) return; break; - case OBS_PROPERTY_EDITABLE_LIST: return; + case OBS_PROPERTY_EDITABLE_LIST: break; case OBS_PROPERTY_FRAME_RATE: if (!FrameRateChanged(widget, setting, view->settings)) return; @@ -1761,12 +1766,15 @@ public: void WidgetInfo::EditListAdd() { - bool allow_files = obs_property_editable_list_allow_files(property); - if (!allow_files) { + enum obs_editable_list_type type = obs_property_editable_list_type( + property); + + if (type == OBS_EDITABLE_LIST_TYPE_STRINGS) { EditListAddText(); return; } + /* Files and URLs */ QMenu popup(view->window()); QAction *action; @@ -1776,11 +1784,19 @@ void WidgetInfo::EditListAdd() this, &WidgetInfo::EditListAddFiles); popup.addAction(action); - action = new QAction(QTStr("Basic.PropertiesWindow.AddURL"), this); + action = new QAction(QTStr("Basic.PropertiesWindow.AddDir"), this); connect(action, &QAction::triggered, - this, &WidgetInfo::EditListAddText); + this, &WidgetInfo::EditListAddDir); popup.addAction(action); + if (type == OBS_EDITABLE_LIST_TYPE_FILES_AND_URLS) { + action = new QAction(QTStr("Basic.PropertiesWindow.AddURL"), + this); + connect(action, &QAction::triggered, + this, &WidgetInfo::EditListAddText); + popup.addAction(action); + } + popup.exec(QCursor::pos()); } @@ -1826,6 +1842,26 @@ void WidgetInfo::EditListAddFiles() EditableListChanged(); } +void WidgetInfo::EditListAddDir() +{ + QListWidget *list = reinterpret_cast(widget); + const char *desc = obs_property_description(property); + const char *default_path = + obs_property_editable_list_default_path(property); + + QString title = QTStr("Basic.PropertiesWindow.AddEditableListDir") + .arg(QT_UTF8(desc)); + + QString dir = QFileDialog::getExistingDirectory( + App()->GetMainWindow(), title, QT_UTF8(default_path)); + + if (dir.isEmpty()) + return; + + list->addItem(dir); + EditableListChanged(); +} + void WidgetInfo::EditListRemove() { QListWidget *list = reinterpret_cast(widget); @@ -1839,7 +1875,8 @@ void WidgetInfo::EditListRemove() void WidgetInfo::EditListEdit() { QListWidget *list = reinterpret_cast(widget); - bool allow_files = obs_property_editable_list_allow_files(property); + enum obs_editable_list_type type = obs_property_editable_list_type( + property); const char *desc = obs_property_description(property); const char *filter = obs_property_editable_list_filter(property); QList selectedItems = list->selectedItems(); @@ -1848,8 +1885,21 @@ void WidgetInfo::EditListEdit() return; QListWidgetItem *item = selectedItems[0]; - EditableItemDialog dialog(widget->window(), item->text(), allow_files, - filter); + + if (type == OBS_EDITABLE_LIST_TYPE_FILES) { + QString path = QFileDialog::getOpenFileName( + App()->GetMainWindow(), QTStr("Browse"), + item->text(), QT_UTF8(filter)); + if (path.isEmpty()) + return; + + item->setText(path); + EditableListChanged(); + return; + } + + EditableItemDialog dialog(widget->window(), item->text(), + type != OBS_EDITABLE_LIST_TYPE_STRINGS, filter); auto title = QTStr("Basic.PropertiesWindow.EditEditableListEntry").arg( QT_UTF8(desc)); dialog.setWindowTitle(title); diff --git a/obs/properties-view.hpp b/obs/properties-view.hpp index 2d58d7c..4a153c7 100644 --- a/obs/properties-view.hpp +++ b/obs/properties-view.hpp @@ -52,6 +52,7 @@ public slots: void EditListAdd(); void EditListAddText(); void EditListAddFiles(); + void EditListAddDir(); void EditListRemove(); void EditListEdit(); void EditListUp(); diff --git a/obs/window-basic-filters.cpp b/obs/window-basic-filters.cpp index 2eeb437..f055d61 100644 --- a/obs/window-basic-filters.cpp +++ b/obs/window-basic-filters.cpp @@ -201,6 +201,16 @@ void OBSBasicFilters::RemoveFilter(OBSSource filter) } } + const char *filterName = obs_source_get_name(filter); + const char *sourceName = obs_source_get_name(source); + if (!sourceName || !filterName) + return; + + const char *filterId = obs_source_get_id(filter); + + blog(LOG_INFO, "User removed filter '%s' (%s) from source '%s'", + filterName, filterId, sourceName); + main->SaveProject(); } @@ -373,6 +383,12 @@ void OBSBasicFilters::AddNewFilter(const char *id) obs_source_t *filter = obs_source_create(id, name.c_str(), nullptr, nullptr); if (filter) { + const char *sourceName = obs_source_get_name(source); + + blog(LOG_INFO, "User added filter '%s' (%s) " + "to source '%s'", + name.c_str(), id, sourceName); + obs_source_filter_add(source, filter); obs_source_release(filter); } @@ -670,6 +686,11 @@ void OBSBasicFilters::FilterNameEdited(QWidget *editor, QListWidget *list) QTStr("NoNameEntered.Text")); } } else { + const char *sourceName = obs_source_get_name(source); + + blog(LOG_INFO, "User renamed filter '%s' on source '%s' to '%s'", + prevName, sourceName, name.c_str()); + listItem->setText(QT_UTF8(name.c_str())); obs_source_set_name(filter, name.c_str()); } diff --git a/obs/window-basic-main-outputs.cpp b/obs/window-basic-main-outputs.cpp index 8dcd875..e94503b 100644 --- a/obs/window-basic-main-outputs.cpp +++ b/obs/window-basic-main-outputs.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "audio-encoders.hpp" #include "window-basic-main.hpp" @@ -27,10 +28,10 @@ static void OBSStreamStopping(void *data, calldata_t *params) int sec = (int)obs_output_get_active_delay(obj); if (sec == 0) - return; - - QMetaObject::invokeMethod(output->main, - "StreamDelayStopping", Q_ARG(int, sec)); + QMetaObject::invokeMethod(output->main, "StreamStopping"); + else + QMetaObject::invokeMethod(output->main, + "StreamDelayStopping", Q_ARG(int, sec)); } static void OBSStartStreaming(void *data, calldata_t *params) @@ -75,6 +76,14 @@ static void OBSStopRecording(void *data, calldata_t *params) UNUSED_PARAMETER(params); } +static void OBSRecordStopping(void *data, calldata_t *params) +{ + BasicOutputHandler *output = static_cast(data); + QMetaObject::invokeMethod(output->main, "RecordStopping"); + + UNUSED_PARAMETER(params); +} + static void FindBestFilename(string &strPath, bool noSpace) { int num = 2; @@ -281,7 +290,7 @@ SimpleOutput::SimpleOutput(OBSBasic *main_) : BasicOutputHandler(main_) streamDelayStarting.Connect(obs_output_get_signal_handler(streamOutput), "starting", OBSStreamStarting, this); - streamDelayStopping.Connect(obs_output_get_signal_handler(streamOutput), + streamStopping.Connect(obs_output_get_signal_handler(streamOutput), "stopping", OBSStreamStopping, this); startStreaming.Connect(obs_output_get_signal_handler(streamOutput), @@ -304,6 +313,8 @@ SimpleOutput::SimpleOutput(OBSBasic *main_) : BasicOutputHandler(main_) "start", OBSStartRecording, this); stopRecording.Connect(obs_output_get_signal_handler(fileOutput), "stop", OBSStopRecording, this); + recordStopping.Connect(obs_output_get_signal_handler(fileOutput), + "stopping", OBSRecordStopping, this); } int SimpleOutput::GetAudioBitrate() const @@ -342,6 +353,7 @@ void SimpleOutput::Update() preset = config_get_string(main->Config(), "SimpleOutput", presetType); + obs_data_set_string(h264Settings, "rate_control", "CBR"); obs_data_set_int(h264Settings, "bitrate", videoBitrate); if (advanced) { @@ -528,6 +540,14 @@ bool SimpleOutput::StartStreaming(obs_service_t *service) "DelaySec"); bool preserveDelay = config_get_bool(main->Config(), "Output", "DelayPreserve"); + const char *bindIP = config_get_string(main->Config(), "Output", + "BindIP"); + + obs_data_t *settings = obs_data_create(); + obs_data_set_string(settings, "bind_ip", bindIP); + obs_output_update(streamOutput, settings); + obs_data_release(settings); + if (!reconnect) maxRetries = 0; @@ -544,6 +564,18 @@ bool SimpleOutput::StartStreaming(obs_service_t *service) return false; } +static void ensure_directory_exists(string &path) +{ + replace(path.begin(), path.end(), '\\', '/'); + + size_t last = path.rfind('/'); + if (last == string::npos) + return; + + string directory = path.substr(0, last); + os_mkdirs(directory.c_str()); +} + bool SimpleOutput::StartRecording() { if (usingRecordingPreset) { @@ -589,11 +621,10 @@ bool SimpleOutput::StartRecording() strPath += GenerateSpecifiedFilename(ffmpegOutput ? "avi" : format, noSpace, filenameFormat); + ensure_directory_exists(strPath); if (!overwriteIfExists) FindBestFilename(strPath, noSpace); - SetupOutputs(); - if (!ffmpegOutput) { obs_output_set_video_encoder(fileOutput, h264Recording); obs_output_set_audio_encoder(fileOutput, aacRecording, 0); @@ -761,7 +792,7 @@ AdvancedOutput::AdvancedOutput(OBSBasic *main_) : BasicOutputHandler(main_) streamDelayStarting.Connect(obs_output_get_signal_handler(streamOutput), "starting", OBSStreamStarting, this); - streamDelayStopping.Connect(obs_output_get_signal_handler(streamOutput), + streamStopping.Connect(obs_output_get_signal_handler(streamOutput), "stopping", OBSStreamStopping, this); startStreaming.Connect(obs_output_get_signal_handler(streamOutput), @@ -773,6 +804,8 @@ AdvancedOutput::AdvancedOutput(OBSBasic *main_) : BasicOutputHandler(main_) "start", OBSStartRecording, this); stopRecording.Connect(obs_output_get_signal_handler(fileOutput), "stop", OBSStopRecording, this); + recordStopping.Connect(obs_output_get_signal_handler(fileOutput), + "stopping", OBSRecordStopping, this); } void AdvancedOutput::UpdateStreamSettings() @@ -1052,6 +1085,14 @@ bool AdvancedOutput::StartStreaming(obs_service_t *service) "DelaySec"); bool preserveDelay = config_get_bool(main->Config(), "Output", "DelayPreserve"); + const char *bindIP = config_get_string(main->Config(), "Output", + "BindIP"); + + obs_data_t *settings = obs_data_create(); + obs_data_set_string(settings, "bind_ip", bindIP); + obs_output_update(streamOutput, settings); + obs_data_release(settings); + if (!reconnect) maxRetries = 0; @@ -1123,6 +1164,7 @@ bool AdvancedOutput::StartRecording() strPath += GenerateSpecifiedFilename(recFormat, noSpace, filenameFormat); + ensure_directory_exists(strPath); if (!overwriteIfExists) FindBestFilename(strPath, noSpace); diff --git a/obs/window-basic-main-outputs.hpp b/obs/window-basic-main-outputs.hpp index ec041c0..186d3b4 100644 --- a/obs/window-basic-main-outputs.hpp +++ b/obs/window-basic-main-outputs.hpp @@ -15,7 +15,8 @@ struct BasicOutputHandler { OBSSignal startStreaming; OBSSignal stopStreaming; OBSSignal streamDelayStarting; - OBSSignal streamDelayStopping; + OBSSignal streamStopping; + OBSSignal recordStopping; inline BasicOutputHandler(OBSBasic *main_) : main(main_) {} diff --git a/obs/window-basic-main-transitions.cpp b/obs/window-basic-main-transitions.cpp index 212b316..1467866 100644 --- a/obs/window-basic-main-transitions.cpp +++ b/obs/window-basic-main-transitions.cpp @@ -562,6 +562,11 @@ void OBSBasic::SetCurrentScene(obs_source_t *scene, bool force) } UpdateSceneSelection(scene); + + bool userSwitched = (!force && !disableSaving); + blog(LOG_INFO, "%s to scene '%s'", + userSwitched ? "User switched" : "Switched", + obs_source_get_name(scene)); } void OBSBasic::CreateProgramDisplay() diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 20eb765..5b8b654 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -90,8 +91,13 @@ static void SetOBSRef(QListWidgetItem *item, T &&val) static void AddExtraModulePaths() { char base_module_dir[512]; +#if defined(_WIN32) || defined(__APPLE__) + int ret = GetProgramDataPath(base_module_dir, sizeof(base_module_dir), + "obs-studio/plugins/%module%"); +#else int ret = GetConfigPath(base_module_dir, sizeof(base_module_dir), "obs-studio/plugins/%module%"); +#endif if (ret <= 0) return; @@ -132,10 +138,15 @@ OBSBasic::OBSBasic(QWidget *parent) int posy = config_get_int(App()->GlobalConfig(), "BasicWindow", "posy"); - if (!WindowPositionValid(posx, posy)) - posx = posy = 0; - - setGeometry(posx, posy, width, height); + if (!WindowPositionValid(posx, posy)) { + QRect rect = App()->desktop()->availableGeometry(); + setGeometry(QStyle::alignedRect( + Qt::LeftToRight, + Qt::AlignCenter, + size(), rect)); + } else { + setGeometry(posx, posy, width, height); + } } char styleSheetPath[512]; @@ -363,6 +374,8 @@ void OBSBasic::Save(const char *file) ui->transitionDuration->value(), transitions, scene, curProgramScene); + obs_data_set_bool(saveData, "preview_locked", ui->preview->Locked()); + if (!obs_data_save_json_safe(saveData, file, "tmp", "bak")) blog(LOG_ERROR, "Could not save scene data to %s", file); @@ -469,6 +482,51 @@ void OBSBasic::LoadSceneListOrder(obs_data_array_t *array) } } +static void LogFilter(obs_source_t*, obs_source_t *filter, void *v_val) +{ + const char *name = obs_source_get_name(filter); + const char *id = obs_source_get_id(filter); + int val = (int)(intptr_t)v_val; + string indent; + + for (int i = 0; i < val; i++) + indent += " "; + + blog(LOG_INFO, "%s- filter: '%s' (%s)", indent.c_str(), name, id); +} + +static bool LogSceneItem(obs_scene_t*, obs_sceneitem_t *item, void*) +{ + obs_source_t *source = obs_sceneitem_get_source(item); + const char *name = obs_source_get_name(source); + const char *id = obs_source_get_id(source); + + blog(LOG_INFO, " - source: '%s' (%s)", name, id); + + obs_source_enum_filters(source, LogFilter, (void*)(intptr_t)2); + return true; +} + +void OBSBasic::LogScenes() +{ + blog(LOG_INFO, "------------------------------------------------"); + blog(LOG_INFO, "Loaded scenes:"); + + for (int i = 0; i < ui->scenes->count(); i++) { + QListWidgetItem *item = ui->scenes->item(i); + OBSScene scene = GetOBSRef(item); + + obs_source_t *source = obs_scene_get_source(scene); + const char *name = obs_source_get_name(source); + + blog(LOG_INFO, "- scene '%s':", name); + obs_scene_enum_items(scene, LogSceneItem, nullptr); + obs_source_enum_filters(source, LogFilter, (void*)(intptr_t)1); + } + + blog(LOG_INFO, "------------------------------------------------"); +} + void OBSBasic::Load(const char *file) { if (!file || !os_file_exists(file)) { @@ -596,6 +654,10 @@ retryScene: RefreshQuickTransitions(); + bool previewLocked = obs_data_get_bool(data, "preview_locked"); + ui->preview->SetLocked(previewLocked); + ui->actionLockPreview->setChecked(previewLocked); + obs_data_release(data); if (!opt_starting_scene.empty()) @@ -613,6 +675,8 @@ retryScene: opt_start_recording = false; } + LogScenes(); + disableSaving--; } @@ -802,6 +866,8 @@ bool OBSBasic::InitBasicConfigDefaults() config_set_default_uint (basicConfig, "Output", "RetryDelay", 10); config_set_default_uint (basicConfig, "Output", "MaxRetries", 20); + config_set_default_string(basicConfig, "Output", "BindIP", "default"); + int i = 0; uint32_t scale_cx = cx; uint32_t scale_cy = cy; @@ -951,8 +1017,10 @@ void OBSBasic::ResetOutputs() } } -#define MAIN_SEPARATOR \ - "=====================================================================" +#define STARTUP_SEPARATOR \ + "==== Startup complete ===============================================" +#define SHUTDOWN_SEPARATOR \ + "==== Shutting down ==================================================" void OBSBasic::OBSInit() { @@ -1001,9 +1069,12 @@ void OBSBasic::OBSInit() InitHotkeys(); AddExtraModulePaths(); + blog(LOG_INFO, "---------------------------------"); obs_load_all_modules(); + blog(LOG_INFO, "---------------------------------"); + obs_log_loaded_modules(); - blog(LOG_INFO, MAIN_SEPARATOR); + blog(LOG_INFO, STARTUP_SEPARATOR); ResetOutputs(); CreateHotkeys(); @@ -1022,6 +1093,21 @@ void OBSBasic::OBSInit() SetPreviewProgramMode(config_get_bool(App()->GlobalConfig(), "BasicWindow", "PreviewProgramMode")); +#define SET_VISIBILITY(name, control) \ + do { \ + if (config_has_user_value(App()->GlobalConfig(), \ + "BasicWindow", name)) { \ + bool visible = config_get_bool(App()->GlobalConfig(), \ + "BasicWindow", name); \ + ui->control->setChecked(visible); \ + } \ + } while (false) + + SET_VISIBILITY("ShowTransitions", toggleSceneTransitions); + SET_VISIBILITY("ShowListboxToolbars", toggleListboxToolbars); + SET_VISIBILITY("ShowStatusBar", toggleStatusBar); +#undef SET_VISIBILITY + { ProfileScope("OBSBasic::Load"); disableSaving--; @@ -1588,6 +1674,12 @@ void OBSBasic::AddScene(OBSSource source) }, &addSceneItem); SaveProject(); + + if (!disableSaving) { + obs_source_t *source = obs_scene_get_source(scene); + blog(LOG_INFO, "User added scene '%s'", + obs_source_get_name(source)); + } } void OBSBasic::RemoveScene(OBSSource source) @@ -1613,6 +1705,11 @@ void OBSBasic::RemoveScene(OBSSource source) } SaveProject(); + + if (!disableSaving) { + blog(LOG_INFO, "User Removed scene '%s'", + obs_source_get_name(source)); + } } void OBSBasic::AddSceneItem(OBSSceneItem item) @@ -1623,24 +1720,39 @@ void OBSBasic::AddSceneItem(OBSSceneItem item) InsertSceneItem(item); SaveProject(); + + if (!disableSaving) { + obs_source_t *sceneSource = obs_scene_get_source(scene); + obs_source_t *itemSource = obs_sceneitem_get_source(item); + blog(LOG_INFO, "User added source '%s' (%s) to scene '%s'", + obs_source_get_name(itemSource), + obs_source_get_id(itemSource), + obs_source_get_name(sceneSource)); + } } void OBSBasic::RemoveSceneItem(OBSSceneItem item) { - obs_scene_t *scene = obs_sceneitem_get_scene(item); + for (int i = 0; i < ui->sources->count(); i++) { + QListWidgetItem *listItem = ui->sources->item(i); - if (GetCurrentScene() == scene) { - for (int i = 0; i < ui->sources->count(); i++) { - QListWidgetItem *listItem = ui->sources->item(i); - - if (GetOBSRef(listItem) == item) { - DeleteListItem(ui->sources, listItem); - break; - } + if (GetOBSRef(listItem) == item) { + DeleteListItem(ui->sources, listItem); + break; } } SaveProject(); + + if (!disableSaving) { + obs_scene_t *scene = obs_sceneitem_get_scene(item); + obs_source_t *sceneSource = obs_scene_get_source(scene); + obs_source_t *itemSource = obs_sceneitem_get_source(item); + blog(LOG_INFO, "User Removed source '%s' (%s) from scene '%s'", + obs_source_get_name(itemSource), + obs_source_get_id(itemSource), + obs_source_get_name(sceneSource)); + } } void OBSBasic::UpdateSceneSelection(OBSSource source) @@ -2149,6 +2261,8 @@ void OBSBasic::SourceRenamed(void *data, calldata_t *params) "RenameSources", Q_ARG(QString, QT_UTF8(newName)), Q_ARG(QString, QT_UTF8(prevName))); + + blog(LOG_INFO, "Source '%s' renamed to '%s'", prevName, newName); } void OBSBasic::DrawBackdrop(float cx, float cy) @@ -2252,13 +2366,20 @@ void OBSBasic::SetService(obs_service_t *newService) service = newService; } -bool OBSBasic::StreamingActive() +bool OBSBasic::StreamingActive() const { if (!outputHandler) return false; return outputHandler->StreamingActive(); } +bool OBSBasic::Active() const +{ + if (!outputHandler) + return false; + return outputHandler->Active(); +} + #ifdef _WIN32 #define IS_WIN32 1 #else @@ -2495,6 +2616,8 @@ void OBSBasic::ClearSceneData() void OBSBasic::closeEvent(QCloseEvent *event) { + blog(LOG_INFO, SHUTDOWN_SEPARATOR); + if (outputHandler && outputHandler->Active()) { QMessageBox::StandardButton button = QMessageBox::question( this, QTStr("ConfirmExit.Title"), @@ -2881,6 +3004,38 @@ QMenu *OBSBasic::AddDeinterlacingMenu(obs_source_t *source) return menu; } +void OBSBasic::SetScaleFilter() +{ + QAction *action = reinterpret_cast(sender()); + obs_scale_type mode = (obs_scale_type)action->property("mode").toInt(); + OBSSceneItem sceneItem = GetCurrentSceneItem(); + + obs_sceneitem_set_scale_filter(sceneItem, mode); +} + +QMenu *OBSBasic::AddScaleFilteringMenu(obs_sceneitem_t *item) +{ + QMenu *menu = new QMenu(QTStr("ScaleFiltering")); + obs_scale_type scaleFilter = obs_sceneitem_get_scale_filter(item); + QAction *action; + +#define ADD_MODE(name, mode) \ + action = menu->addAction(QTStr("" name), this, \ + SLOT(SetScaleFilter())); \ + action->setProperty("mode", (int)mode); \ + action->setCheckable(true); \ + action->setChecked(scaleFilter == mode); + + ADD_MODE("Disable", OBS_SCALE_DISABLE); + ADD_MODE("ScaleFiltering.Point", OBS_SCALE_POINT); + ADD_MODE("ScaleFiltering.Bilinear", OBS_SCALE_BILINEAR); + ADD_MODE("ScaleFiltering.Bicubic", OBS_SCALE_BICUBIC); + ADD_MODE("ScaleFiltering.Lanczos", OBS_SCALE_LANCZOS); +#undef ADD_MODE + + return menu; +} + void OBSBasic::CreateSourcePopupMenu(QListWidgetItem *item, bool preview) { QMenu popup(this); @@ -2897,6 +3052,12 @@ void OBSBasic::CreateSourcePopupMenu(QListWidgetItem *item, bool preview) if (IsPreviewProgramMode()) action->setEnabled(false); + action = popup.addAction( + QTStr("Basic.MainMenu.Edit.LockPreview"), + this, SLOT(on_actionLockPreview_triggered())); + action->setCheckable(true); + action->setChecked(ui->preview->Locked()); + previewProjector = new QMenu(QTStr("PreviewProjector")); AddProjectorMenuMonitors(previewProjector, this, SLOT(OpenPreviewProjector())); @@ -2939,6 +3100,10 @@ void OBSBasic::CreateSourcePopupMenu(QListWidgetItem *item, bool preview) popup.addMenu(AddDeinterlacingMenu(source)); popup.addSeparator(); } + + popup.addMenu(AddScaleFilteringMenu(sceneItem)); + popup.addSeparator(); + popup.addMenu(sourceProjector); popup.addSeparator(); @@ -2992,21 +3157,24 @@ QMenu *OBSBasic::CreateAddSourcePopupMenu() size_t idx = 0; QMenu *popup = new QMenu(QTStr("Add"), this); - while (obs_enum_input_types(idx++, &type)) { - const char *name = obs_source_get_display_name(type); - - if (strcmp(type, "scene") == 0) - continue; + auto addSource = [this, popup] (const char *type, const char *name) { QAction *popupItem = new QAction(QT_UTF8(name), this); popupItem->setData(QT_UTF8(type)); connect(popupItem, SIGNAL(triggered(bool)), this, SLOT(AddSourceFromAction())); popup->addAction(popupItem); + }; + while (obs_enum_input_types(idx++, &type)) { + const char *name = obs_source_get_display_name(type); + + addSource(type, name); foundValues = true; } + addSource("scene", Str("Basic.Scene")); + if (!foundValues) { delete popup; popup = nullptr; @@ -3046,11 +3214,51 @@ void OBSBasic::on_actionAddSource_triggered() void OBSBasic::on_actionRemoveSource_triggered() { - OBSSceneItem item = GetCurrentSceneItem(); - obs_source_t *source = obs_sceneitem_get_source(item); + vector items; - if (source && QueryRemoveSource(source)) - obs_sceneitem_remove(item); + auto func = [] (obs_scene_t *, obs_sceneitem_t *item, void *param) + { + vector &items = + *reinterpret_cast*>(param); + if (obs_sceneitem_selected(item)) + items.emplace_back(item); + return true; + }; + + obs_scene_enum_items(GetCurrentScene(), func, &items); + + if (!items.size()) + return; + + auto removeMultiple = [this] (size_t count) + { + QString text = QTStr("ConfirmRemove.TextMultiple") + .arg(QString::number(count)); + + QMessageBox remove_items(this); + remove_items.setText(text); + QAbstractButton *Yes = remove_items.addButton(QTStr("Yes"), + QMessageBox::YesRole); + remove_items.addButton(QTStr("No"), QMessageBox::NoRole); + remove_items.setIcon(QMessageBox::Question); + remove_items.setWindowTitle(QTStr("ConfirmRemove.Title")); + remove_items.exec(); + + return Yes == remove_items.clickedButton(); + }; + + if (items.size() == 1) { + OBSSceneItem &item = items[0]; + obs_source_t *source = obs_sceneitem_get_source(item); + + if (source && QueryRemoveSource(source)) + obs_sceneitem_remove(item); + } else { + if (removeMultiple(items.size())) { + for (auto &item : items) + obs_sceneitem_remove(item); + } + } } void OBSBasic::on_actionInteract_triggered() @@ -3339,8 +3547,34 @@ void OBSBasic::StartStreaming() ui->streamButton->setText(QTStr("Basic.Main.StartStreaming")); ui->streamButton->setEnabled(true); } + + bool recordWhenStreaming = config_get_bool(GetGlobalConfig(), + "BasicWindow", "RecordWhenStreaming"); + if (recordWhenStreaming) + StartRecording(); } +#ifdef _WIN32 +static inline void UpdateProcessPriority() +{ + const char *priority = config_get_string(App()->GlobalConfig(), + "General", "ProcessPriority"); + if (priority && strcmp(priority, "Normal") != 0) + SetProcessPriority(priority); +} + +static inline void ClearProcessPriority() +{ + const char *priority = config_get_string(App()->GlobalConfig(), + "General", "ProcessPriority"); + if (priority && strcmp(priority, "Normal") != 0) + SetProcessPriority("Normal"); +} +#else +#define UpdateProcessPriority() do {} while(false) +#define ClearProcessPriority() do {} while(false) +#endif + void OBSBasic::StopStreaming() { SaveProject(); @@ -3351,7 +3585,15 @@ void OBSBasic::StopStreaming() if (!outputHandler->Active() && !ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(true); App()->DecrementSleepInhibition(); + ClearProcessPriority(); } + + bool recordWhenStreaming = config_get_bool(GetGlobalConfig(), + "BasicWindow", "RecordWhenStreaming"); + bool keepRecordingWhenStreamStops = config_get_bool(GetGlobalConfig(), + "BasicWindow", "KeepRecordingWhenStreamStops"); + if (recordWhenStreaming && !keepRecordingWhenStreamStops) + StopRecording(); } void OBSBasic::ForceStopStreaming() @@ -3364,7 +3606,15 @@ void OBSBasic::ForceStopStreaming() if (!outputHandler->Active() && !ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(true); App()->DecrementSleepInhibition(); + ClearProcessPriority(); } + + bool recordWhenStreaming = config_get_bool(GetGlobalConfig(), + "BasicWindow", "RecordWhenStreaming"); + bool keepRecordingWhenStreamStops = config_get_bool(GetGlobalConfig(), + "BasicWindow", "KeepRecordingWhenStreamStops"); + if (recordWhenStreaming && !keepRecordingWhenStreamStops) + StopRecording(); } void OBSBasic::StreamDelayStarting(int sec) @@ -3387,6 +3637,7 @@ void OBSBasic::StreamDelayStarting(int sec) if (ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(false); App()->IncrementSleepInhibition(); + UpdateProcessPriority(); } } @@ -3417,11 +3668,17 @@ void OBSBasic::StreamingStart() if (ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(false); App()->IncrementSleepInhibition(); + UpdateProcessPriority(); } blog(LOG_INFO, STREAMING_START); } +void OBSBasic::StreamStopping() +{ + ui->streamButton->setText(QTStr("Basic.Main.StoppingStreaming")); +} + void OBSBasic::StreamingStop(int code) { const char *errorMessage; @@ -3458,6 +3715,7 @@ void OBSBasic::StreamingStop(int code) if (!outputHandler->Active() && !ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(true); App()->DecrementSleepInhibition(); + ClearProcessPriority(); } blog(LOG_INFO, STREAMING_STOP); @@ -3476,10 +3734,16 @@ void OBSBasic::StreamingStop(int code) void OBSBasic::StartRecording() { - SaveProject(); + if (outputHandler->RecordingActive()) + return; - if (!outputHandler->RecordingActive()) - outputHandler->StartRecording(); + SaveProject(); + outputHandler->StartRecording(); +} + +void OBSBasic::RecordStopping() +{ + ui->recordButton->setText(QTStr("Basic.Main.StoppingRecording")); } void OBSBasic::StopRecording() @@ -3492,6 +3756,7 @@ void OBSBasic::StopRecording() if (!outputHandler->Active() && !ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(true); App()->DecrementSleepInhibition(); + ClearProcessPriority(); } } @@ -3503,6 +3768,7 @@ void OBSBasic::RecordingStart() if (ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(false); App()->IncrementSleepInhibition(); + UpdateProcessPriority(); } blog(LOG_INFO, RECORDING_START); @@ -3533,6 +3799,7 @@ void OBSBasic::RecordingStop(int code) if (!outputHandler->Active() && !ui->profileMenu->isEnabled()) { ui->profileMenu->setEnabled(true); App()->DecrementSleepInhibition(); + ClearProcessPriority(); } } @@ -4113,3 +4380,35 @@ int OBSBasic::GetProfilePath(char *path, size_t size, const char *file) const return snprintf(path, size, "%s/%s/%s", profiles_path, profile, file); } + +void OBSBasic::on_toggleSceneTransitions_toggled(bool visible) +{ + ui->sceneTransitionsLabel->setVisible(visible); + ui->transitionsContainer->setVisible(visible); + + config_set_bool(App()->GlobalConfig(), "BasicWindow", + "ShowTransitions", visible); +} + +void OBSBasic::on_toggleListboxToolbars_toggled(bool visible) +{ + ui->sourcesToolbar->setVisible(visible); + ui->scenesToolbar->setVisible(visible); + + config_set_bool(App()->GlobalConfig(), "BasicWindow", + "ShowListboxToolbars", visible); +} + +void OBSBasic::on_toggleStatusBar_toggled(bool visible) +{ + ui->statusbar->setVisible(visible); + + config_set_bool(App()->GlobalConfig(), "BasicWindow", + "ShowStatusBar", visible); +} + +void OBSBasic::on_actionLockPreview_triggered() +{ + ui->preview->ToggleLocked(); + ui->actionLockPreview->setChecked(ui->preview->Locked()); +} diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp index f75feb5..c8d6feb 100644 --- a/obs/window-basic-main.hpp +++ b/obs/window-basic-main.hpp @@ -81,6 +81,7 @@ class OBSBasic : public OBSMainWindow { friend class OBSBasicPreview; friend class OBSBasicStatusBar; + friend class OBSBasicSourceSelect; enum class MoveDir { Up, @@ -203,6 +204,7 @@ private: void AddSceneCollection(bool create_new); void RefreshSceneCollections(); void ChangeSceneCollection(); + void LogScenes(); void LoadProfile(); void ResetProfileData(); @@ -289,12 +291,14 @@ public slots: void StreamDelayStopping(int sec); void StreamingStart(); + void StreamStopping(); void StreamingStop(int errorcode); void StartRecording(); void StopRecording(); void RecordingStart(); + void RecordStopping(); void RecordingStop(int code); void SaveProjectDeferred(); @@ -331,6 +335,8 @@ private slots: void SetDeinterlacingMode(); void SetDeinterlacingOrder(); + void SetScaleFilter(); + private: /* OBS Callbacks */ static void SceneReordered(void *data, calldata_t *params); @@ -366,7 +372,8 @@ public: obs_service_t *GetService(); void SetService(obs_service_t *service); - bool StreamingActive(); + bool StreamingActive() const; + bool Active() const; int ResetVideo(); bool ResetAudio(); @@ -398,6 +405,7 @@ public: void ReorderSceneItem(obs_sceneitem_t *item, size_t idx); QMenu *AddDeinterlacingMenu(obs_source_t *source); + QMenu *AddScaleFilteringMenu(obs_sceneitem_t *item); void CreateSourcePopupMenu(QListWidgetItem *item, bool preview); void UpdateTitleBar(); @@ -453,6 +461,8 @@ private slots: void on_actionMoveToTop_triggered(); void on_actionMoveToBottom_triggered(); + void on_actionLockPreview_triggered(); + void on_streamButton_clicked(); void on_recordButton_clicked(); void on_settingsButton_clicked(); @@ -478,6 +488,10 @@ private slots: void on_actionAlwaysOnTop_triggered(); + void on_toggleSceneTransitions_toggled(bool visible); + void on_toggleListboxToolbars_toggled(bool visible); + void on_toggleStatusBar_toggled(bool visible); + void on_transitions_currentIndexChanged(int index); void on_transitionAdd_clicked(); void on_transitionRemove_clicked(); diff --git a/obs/window-basic-preview.cpp b/obs/window-basic-preview.cpp index 8e7725c..dc2c4f3 100644 --- a/obs/window-basic-preview.cpp +++ b/obs/window-basic-preview.cpp @@ -379,6 +379,11 @@ void OBSBasicPreview::GetStretchHandleData(const vec2 &pos) void OBSBasicPreview::mousePressEvent(QMouseEvent *event) { + if (locked) { + OBSQTDisplay::mousePressEvent(event); + return; + } + OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); float pixelRatio = main->devicePixelRatio(); float x = float(event->x()) - main->previewX / pixelRatio; @@ -451,6 +456,11 @@ void OBSBasicPreview::ProcessClick(const vec2 &pos) void OBSBasicPreview::mouseReleaseEvent(QMouseEvent *event) { + if (locked) { + OBSQTDisplay::mouseReleaseEvent(event); + return; + } + if (mouseDown) { vec2 pos = GetMouseEventPos(event); @@ -941,6 +951,9 @@ void OBSBasicPreview::StretchItem(const vec2 &pos) void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event) { + if (locked) + return; + if (mouseDown) { vec2 pos = GetMouseEventPos(event); @@ -1076,6 +1089,9 @@ bool OBSBasicPreview::DrawSelectedItem(obs_scene_t *scene, void OBSBasicPreview::DrawSceneEditing() { + if (locked) + return; + OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); gs_effect_t *solid = obs_get_base_effect(OBS_EFFECT_SOLID); diff --git a/obs/window-basic-preview.hpp b/obs/window-basic-preview.hpp index 1a25245..c11581b 100644 --- a/obs/window-basic-preview.hpp +++ b/obs/window-basic-preview.hpp @@ -45,6 +45,7 @@ private: bool mouseMoved = false; bool mouseOverItems = false; bool cropping = false; + bool locked = false; static vec2 GetMouseEventPos(QMouseEvent *event); static bool DrawSelectedItem(obs_scene_t *scene, obs_sceneitem_t *item, @@ -80,6 +81,10 @@ public: void DrawSceneEditing(); + inline void SetLocked(bool newLockedVal) {locked = newLockedVal;} + inline void ToggleLocked() {locked = !locked;} + inline bool Locked() const {return locked;} + /* use libobs allocator for alignment because the matrices itemToScreen * and screenToItem may contain SSE data, which will cause SSE * instructions to crash if the data is not aligned to at least a 16 diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index 3fa2dda..fef022b 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -259,7 +259,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) PopulateAACBitrates({ui->simpleOutputABitrate, ui->advOutTrack1Bitrate, ui->advOutTrack2Bitrate, - ui->advOutTrack3Bitrate, ui->advOutTrack3Bitrate}); + ui->advOutTrack3Bitrate, ui->advOutTrack4Bitrate}); ui->listWidget->setAttribute(Qt::WA_MacShowFocusRect, false); @@ -271,6 +271,9 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->theme, COMBO_CHANGED, GENERAL_CHANGED); HookWidget(ui->warnBeforeStreamStart,CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->warnBeforeStreamStop, CHECK_CHANGED, GENERAL_CHANGED); + HookWidget(ui->hideProjectorCursor, CHECK_CHANGED, GENERAL_CHANGED); + HookWidget(ui->recordWhenStreaming, CHECK_CHANGED, GENERAL_CHANGED); + HookWidget(ui->keepRecordStreamStops,CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->snappingEnabled, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->screenSnapping, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->centerSnapping, CHECK_CHANGED, GENERAL_CHANGED); @@ -368,6 +371,8 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->reconnectEnable, CHECK_CHANGED, ADV_CHANGED); HookWidget(ui->reconnectRetryDelay, SCROLL_CHANGED, ADV_CHANGED); HookWidget(ui->reconnectMaxRetries, SCROLL_CHANGED, ADV_CHANGED); + HookWidget(ui->processPriority, COMBO_CHANGED, ADV_CHANGED); + HookWidget(ui->bindToIP, COMBO_CHANGED, ADV_CHANGED); #ifdef _WIN32 uint32_t winVer = GetWindowsVersion(); @@ -383,15 +388,39 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) connect(toggleAero, &QAbstractButton::toggled, this, &OBSBasicSettings::ToggleDisableAero); } + +#define PROCESS_PRIORITY(val) \ + {"Basic.Settings.Advanced.General.ProcessPriority." ## val , val} + + static struct ProcessPriority { + const char *name; + const char *val; + } processPriorities[] = { + PROCESS_PRIORITY("High"), + PROCESS_PRIORITY("AboveNormal"), + PROCESS_PRIORITY("Normal"), + PROCESS_PRIORITY("Idle") + }; +#undef PROCESS_PRIORITY + + for (ProcessPriority pri : processPriorities) + ui->processPriority->addItem(QTStr(pri.name), pri.val); + #else delete ui->rendererLabel; delete ui->renderer; delete ui->adapterLabel; delete ui->adapter; + delete ui->processPriorityLabel; + delete ui->processPriority; + delete ui->advancedGeneralGroupBox; ui->rendererLabel = nullptr; ui->renderer = nullptr; ui->adapterLabel = nullptr; ui->adapter = nullptr; + ui->processPriorityLabel = nullptr; + ui->processPriority = nullptr; + ui->advancedGeneralGroupBox = nullptr; #endif #ifndef __APPLE__ @@ -494,6 +523,20 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) connect(ui->listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(SimpleRecordingEncoderChanged())); + // Get Bind to IP Addresses + obs_properties_t *ppts = obs_get_output_properties("rtmp_output"); + obs_property_t *p = obs_properties_get(ppts, "bind_ip"); + + size_t count = obs_property_list_item_count(p); + for (size_t i = 0; i < count; i++) { + const char *name = obs_property_list_item_name(p, i); + const char *val = obs_property_list_item_string(p, i); + + ui->bindToIP->addItem(QT_UTF8(name), val); + } + + obs_properties_destroy(ppts); + LoadSettings(false); // Add warning checks to advanced output recording section controls @@ -794,6 +837,14 @@ void OBSBasicSettings::LoadGeneralSettings() LoadLanguageList(); LoadThemeList(); + bool recordWhenStreaming = config_get_bool(GetGlobalConfig(), + "BasicWindow", "RecordWhenStreaming"); + ui->recordWhenStreaming->setChecked(recordWhenStreaming); + + bool keepRecordStreamStops = config_get_bool(GetGlobalConfig(), + "BasicWindow", "KeepRecordingWhenStreamStops"); + ui->keepRecordStreamStops->setChecked(keepRecordStreamStops); + bool snappingEnabled = config_get_bool(GetGlobalConfig(), "BasicWindow", "SnappingEnabled"); ui->snappingEnabled->setChecked(snappingEnabled); @@ -814,7 +865,6 @@ void OBSBasicSettings::LoadGeneralSettings() "BasicWindow", "SnapDistance"); ui->snapDistance->setValue(snapDistance); - bool warnBeforeStreamStart = config_get_bool(GetGlobalConfig(), "BasicWindow", "WarnBeforeStartingStream"); ui->warnBeforeStreamStart->setChecked(warnBeforeStreamStart); @@ -823,6 +873,10 @@ void OBSBasicSettings::LoadGeneralSettings() "BasicWindow", "WarnBeforeStoppingStream"); ui->warnBeforeStreamStop->setChecked(warnBeforeStreamStop); + bool hideProjectorCursor = config_get_bool(GetGlobalConfig(), + "BasicWindow", "HideProjectorCursor"); + ui->hideProjectorCursor->setChecked(hideProjectorCursor); + loading = false; } @@ -1771,6 +1825,8 @@ void OBSBasicSettings::LoadAdvancedSettings() "FilenameFormatting"); bool overwriteIfExists = config_get_bool(main->Config(), "Output", "OverwriteIfExists"); + const char *bindIP = config_get_string(main->Config(), "Output", + "BindIP"); loading = true; @@ -1791,6 +1847,8 @@ void OBSBasicSettings::LoadAdvancedSettings() SetComboByName(ui->colorSpace, videoColorSpace); SetComboByValue(ui->colorRange, videoColorRange); + SetComboByValue(ui->bindToIP, bindIP); + if (video_output_active(obs_get_video())) { ui->advancedVideoContainer->setEnabled(false); } @@ -1803,6 +1861,13 @@ void OBSBasicSettings::LoadAdvancedSettings() ui->disableOSXVSync->setChecked(disableOSXVSync); ui->resetOSXVSync->setChecked(resetOSXVSync); ui->resetOSXVSync->setEnabled(disableOSXVSync); +#elif _WIN32 + const char *processPriority = config_get_string(App()->GlobalConfig(), + "General", "ProcessPriority"); + int idx = ui->processPriority->findData(processPriority); + if (idx == -1) + idx = ui->processPriority->findData("Normal"); + ui->processPriority->setCurrentIndex(idx); #endif loading = false; @@ -2157,6 +2222,19 @@ void OBSBasicSettings::SaveGeneralSettings() config_set_bool(GetGlobalConfig(), "BasicWindow", "WarnBeforeStoppingStream", ui->warnBeforeStreamStop->isChecked()); + + config_set_bool(GetGlobalConfig(), "BasicWindow", + "HideProjectorCursor", + ui->hideProjectorCursor->isChecked()); + + if (WidgetChanged(ui->recordWhenStreaming)) + config_set_bool(GetGlobalConfig(), "BasicWindow", + "RecordWhenStreaming", + ui->recordWhenStreaming->isChecked()); + if (WidgetChanged(ui->keepRecordStreamStops)) + config_set_bool(GetGlobalConfig(), "BasicWindow", + "KeepRecordingWhenStreamStops", + ui->keepRecordStreamStops->isChecked()); } void OBSBasicSettings::SaveStream1Settings() @@ -2223,6 +2301,13 @@ void OBSBasicSettings::SaveAdvancedSettings() if (WidgetChanged(ui->renderer)) config_set_string(App()->GlobalConfig(), "Video", "Renderer", QT_TO_UTF8(ui->renderer->currentText())); + + std::string priority = + QT_TO_UTF8(ui->processPriority->currentData().toString()); + config_set_string(App()->GlobalConfig(), "General", "ProcessPriority", + priority.c_str()); + if (main->Active()) + SetProcessPriority(priority.c_str()); #endif #ifdef __APPLE__ @@ -2249,6 +2334,7 @@ void OBSBasicSettings::SaveAdvancedSettings() SaveCheckBox(ui->reconnectEnable, "Output", "Reconnect"); SaveSpinBox(ui->reconnectRetryDelay, "Output", "RetryDelay"); SaveSpinBox(ui->reconnectMaxRetries, "Output", "MaxRetries"); + SaveComboData(ui->bindToIP, "Output", "BindIP"); } static inline const char *OutputModeFromIdx(int idx) @@ -2853,12 +2939,12 @@ void OBSBasicSettings::on_filenameFormatting_textEdited(const QString &text) { #ifdef __APPLE__ size_t invalidLocation = - text.toStdString().find_first_of(":/\\"); + text.toStdString().find_first_of(":"); #elif _WIN32 size_t invalidLocation = - text.toStdString().find_first_of("<>:\"/\\|?*"); + text.toStdString().find_first_of("<>:\"|?*"); #else - size_t invalidLocation = text.toStdString().find_first_of("/"); + size_t invalidLocation = string::npos; #endif if (invalidLocation != string::npos) diff --git a/obs/window-basic-source-select.cpp b/obs/window-basic-source-select.cpp index c27727a..826fb8b 100644 --- a/obs/window-basic-source-select.cpp +++ b/obs/window-basic-source-select.cpp @@ -177,6 +177,21 @@ void OBSBasicSourceSelect::on_buttonBox_rejected() done(DialogCode::Rejected); } +static inline const char *GetSourceDisplayName(const char *id) +{ + if (strcmp(id, "scene") == 0) + return Str("Basic.Scene"); + return obs_source_get_display_name(id); +} + +Q_DECLARE_METATYPE(OBSScene); + +template +static inline T GetOBSRef(QListWidgetItem *item) +{ + return item->data(static_cast(QtDataRole::OBSRef)).value(); +} + OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_) : QDialog (parent), ui (new Ui::OBSBasicSourceSelect), @@ -186,7 +201,7 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_) ui->sourceList->setAttribute(Qt::WA_MacShowFocusRect, false); - QString placeHolderText{QT_UTF8(obs_source_get_display_name(id))}; + QString placeHolderText{QT_UTF8(GetSourceDisplayName(id))}; QString text{placeHolderText}; int i = 1; @@ -202,5 +217,29 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_) installEventFilter(CreateShortcutFilter()); - obs_enum_sources(EnumSources, this); + if (strcmp(id_, "scene") == 0) { + OBSBasic *main = reinterpret_cast( + App()->GetMainWindow()); + OBSSource curSceneSource = main->GetCurrentSceneSource(); + + ui->selectExisting->setChecked(true); + ui->createNew->setChecked(false); + ui->createNew->setEnabled(false); + ui->sourceName->setEnabled(false); + + int count = main->ui->scenes->count(); + for (int i = 0; i < count; i++) { + QListWidgetItem *item = main->ui->scenes->item(i); + OBSScene scene = GetOBSRef(item); + OBSSource sceneSource = obs_scene_get_source(scene); + + if (curSceneSource == sceneSource) + continue; + + const char *name = obs_source_get_name(sceneSource); + ui->sourceList->addItem(QT_UTF8(name)); + } + } else { + obs_enum_sources(EnumSources, this); + } } diff --git a/obs/window-basic-status-bar.cpp b/obs/window-basic-status-bar.cpp index 660544f..64015ef 100644 --- a/obs/window-basic-status-bar.cpp +++ b/obs/window-basic-status-bar.cpp @@ -114,6 +114,8 @@ void OBSBasicStatusBar::UpdateBandwidth() uint64_t bytesSent = obs_output_get_total_bytes(streamOutput); uint64_t bytesSentTime = os_gettime_ns(); + if (bytesSent < lastBytesSent) + bytesSent = 0; if (bytesSent == 0) lastBytesSent = 0; @@ -231,14 +233,21 @@ void OBSBasicStatusBar::Reconnect(int seconds) } } -void OBSBasicStatusBar::ReconnectSuccess() +void OBSBasicStatusBar::ReconnectClear() { - showMessage(QTStr("Basic.StatusBar.ReconnectSuccessful"), 4000); retries = 0; reconnectTimeout = 0; bitrateUpdateSeconds = -1; lastBytesSent = 0; lastBytesSentTime = os_gettime_ns(); + delaySecTotal = 0; + UpdateDelayMsg(); +} + +void OBSBasicStatusBar::ReconnectSuccess() +{ + showMessage(QTStr("Basic.StatusBar.ReconnectSuccessful"), 4000); + ReconnectClear(); if (streamOutput) { delaySecTotal = obs_output_get_active_delay(streamOutput); @@ -312,6 +321,7 @@ void OBSBasicStatusBar::StreamStopped() "reconnect_success", OBSOutputReconnectSuccess, this); + ReconnectClear(); streamOutput = nullptr; clearMessage(); Deactivate(); diff --git a/obs/window-basic-status-bar.hpp b/obs/window-basic-status-bar.hpp index 8fb2850..3f9bc8f 100644 --- a/obs/window-basic-status-bar.hpp +++ b/obs/window-basic-status-bar.hpp @@ -69,4 +69,6 @@ public: void StreamStopped(); void RecordingStarted(obs_output_t *output); void RecordingStopped(); + + void ReconnectClear(); }; diff --git a/obs/window-projector.cpp b/obs/window-projector.cpp index b6091d9..172e7be 100644 --- a/obs/window-projector.cpp +++ b/obs/window-projector.cpp @@ -9,7 +9,8 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_) : OBSQTDisplay (widget, - Qt::Window | Qt::FramelessWindowHint), + Qt::Window | Qt::FramelessWindowHint | + Qt::X11BypassWindowManagerHint), source (source_), removedSignal (obs_source_get_signal_handler(source), "remove", OBSSourceRemoved, this) @@ -26,6 +27,14 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_) connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback); + bool hideCursor = config_get_bool(GetGlobalConfig(), + "BasicWindow", "HideProjectorCursor"); + if (hideCursor) { + QPixmap empty(16, 16); + empty.fill(Qt::transparent); + setCursor(QCursor(empty)); + } + App()->IncrementSleepInhibition(); } diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 8791183..d178acc 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -10,6 +10,7 @@ if(WIN32) add_subdirectory(decklink/win) add_subdirectory(win-mf) add_subdirectory(obs-qsv11) + add_subdirectory(vlc-video) elseif(APPLE) add_subdirectory(coreaudio-encoder) add_subdirectory(mac-avcapture) @@ -17,6 +18,7 @@ elseif(APPLE) add_subdirectory(mac-vth264) add_subdirectory(mac-syphon) add_subdirectory(decklink/mac) + add_subdirectory(vlc-video) elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") add_subdirectory(linux-capture) add_subdirectory(linux-pulseaudio) @@ -24,6 +26,7 @@ elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") add_subdirectory(linux-jack) add_subdirectory(linux-alsa) add_subdirectory(decklink/linux) + add_subdirectory(vlc-video) elseif("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD") add_subdirectory(linux-capture) add_subdirectory(linux-pulseaudio) diff --git a/plugins/coreaudio-encoder/data/locale/fi-FI.ini b/plugins/coreaudio-encoder/data/locale/fi-FI.ini index 0666ac0..0a92d20 100644 --- a/plugins/coreaudio-encoder/data/locale/fi-FI.ini +++ b/plugins/coreaudio-encoder/data/locale/fi-FI.ini @@ -2,5 +2,5 @@ CoreAudioAAC="CoreAudio AAC -enkooderi" Bitrate="Bitrate" AllowHEAAC="Salli HE-AAC" OutputSamplerate="Ulostulon näytetaajuus" -UseInputSampleRate="Käytä sisääntulon näytetaajuutta (saattaa sisältää myös epäsopivia arvoja)" +UseInputSampleRate="Käytä sisääntulon näytetaajuutta (saattaa sisältää myös ei tuettuja arvoja)" diff --git a/plugins/coreaudio-encoder/data/locale/it-IT.ini b/plugins/coreaudio-encoder/data/locale/it-IT.ini index 959543b..dc4ea1e 100644 --- a/plugins/coreaudio-encoder/data/locale/it-IT.ini +++ b/plugins/coreaudio-encoder/data/locale/it-IT.ini @@ -1,4 +1,6 @@ CoreAudioAAC="Encoder CoreAudio AAC" Bitrate="Bitrate" AllowHEAAC="Consenti l'HE-AAC" +OutputSamplerate="Output Sample Rate" +UseInputSampleRate="Usa frequenza di campionamento input (OBS) (potrebbe elencare bitrate non supportati)" diff --git a/plugins/coreaudio-encoder/data/locale/nb-NO.ini b/plugins/coreaudio-encoder/data/locale/nb-NO.ini index 59d98a4..415ebd0 100644 --- a/plugins/coreaudio-encoder/data/locale/nb-NO.ini +++ b/plugins/coreaudio-encoder/data/locale/nb-NO.ini @@ -1,4 +1,6 @@ CoreAudioAAC="CoreAudio AAC-koder" Bitrate="Bitrate" AllowHEAAC="Tillat HE-AAC-koding" +OutputSamplerate="Prøvefrekvens for utgang" +UseInputSampleRate="Bruk prøvefrekvens for inngang (OBS). Kan vise bitrater som ikke er støttet." diff --git a/plugins/coreaudio-encoder/data/locale/pt-PT.ini b/plugins/coreaudio-encoder/data/locale/pt-PT.ini index f1171f2..e2b503c 100644 --- a/plugins/coreaudio-encoder/data/locale/pt-PT.ini +++ b/plugins/coreaudio-encoder/data/locale/pt-PT.ini @@ -1,4 +1,6 @@ CoreAudioAAC="Codificador CoreAudio AAC" Bitrate="Bitrate" AllowHEAAC="Permitir HE-AAC" +OutputSamplerate="Taxa de amostragem de saída" +UseInputSampleRate="Taxa de amostragem de entrada (OBS) Taxa Amostra (pode listar taxas de bit sem suporte)" diff --git a/plugins/coreaudio-encoder/encoder.cpp b/plugins/coreaudio-encoder/encoder.cpp index bd9f9ed..9d6117a 100644 --- a/plugins/coreaudio-encoder/encoder.cpp +++ b/plugins/coreaudio-encoder/encoder.cpp @@ -1346,7 +1346,8 @@ bool obs_module_load(void) { #ifdef _WIN32 if (!load_core_audio()) { - CA_LOG(LOG_WARNING, "Couldn't load CoreAudio AAC encoder"); + CA_LOG(LOG_WARNING, "CoreAudio AAC encoder not installed on " + "the system or couldn't be loaded"); return true; } diff --git a/plugins/coreaudio-encoder/windows-imports.h b/plugins/coreaudio-encoder/windows-imports.h index 37e31b1..695229a 100644 --- a/plugins/coreaudio-encoder/windows-imports.h +++ b/plugins/coreaudio-encoder/windows-imports.h @@ -413,7 +413,7 @@ static bool load_lib(void) #define LOAD_LIB(x, n) x = LoadLibrary(TEXT(n)); \ if (!x) \ - CA_LOG(LOG_WARNING, "Failed loading library '" n "'"); + CA_LOG(LOG_DEBUG, "Failed loading library '" n "'"); LOAD_LIB(audio_toolbox, "CoreAudioToolbox.dll"); #undef LOAD_LIB diff --git a/plugins/decklink/data/locale/pt-PT.ini b/plugins/decklink/data/locale/pt-PT.ini index 9ad1547..18afbb8 100644 --- a/plugins/decklink/data/locale/pt-PT.ini +++ b/plugins/decklink/data/locale/pt-PT.ini @@ -2,4 +2,5 @@ BlackmagicDevice="Dispositivo Blackmagic" Device="Dispositivo" Mode="Modo" Buffering="Utilizar Buffering" +PixelFormat="Formato de pixel" diff --git a/plugins/decklink/decklink-device-discovery.cpp b/plugins/decklink/decklink-device-discovery.cpp index e08f485..d785388 100644 --- a/plugins/decklink/decklink-device-discovery.cpp +++ b/plugins/decklink/decklink-device-discovery.cpp @@ -32,7 +32,7 @@ bool DeckLinkDeviceDiscovery::Init(void) initialized = result == S_OK; if (!initialized) - blog(LOG_INFO, "Failed to start search for DeckLink devices"); + blog(LOG_DEBUG, "Failed to start search for DeckLink devices"); return initialized; } diff --git a/plugins/image-source/CMakeLists.txt b/plugins/image-source/CMakeLists.txt index 9966d04..4159cf5 100644 --- a/plugins/image-source/CMakeLists.txt +++ b/plugins/image-source/CMakeLists.txt @@ -1,11 +1,18 @@ project(image-source) +if(MSVC) + set(image-source_PLATFORM_DEPS + w32-pthreads) +endif() + set(image-source_SOURCES - image-source.c) + image-source.c + obs-slideshow.c) add_library(image-source MODULE ${image-source_SOURCES}) target_link_libraries(image-source - libobs) + libobs + ${image-source_PLATFORM_DEPS}) install_obs_plugin_with_data(image-source data) diff --git a/plugins/image-source/data/locale/ar-SA.ini b/plugins/image-source/data/locale/ar-SA.ini index d75aa98..cba4b29 100644 --- a/plugins/image-source/data/locale/ar-SA.ini +++ b/plugins/image-source/data/locale/ar-SA.ini @@ -2,3 +2,4 @@ ImageInput="الصورة" File="ملف الصورة" UnloadWhenNotShowing="إلغاء تحميل الصورة إذا لم تظهر" + diff --git a/plugins/image-source/data/locale/bg-BG.ini b/plugins/image-source/data/locale/bg-BG.ini index 0788b9f..05cd321 100644 --- a/plugins/image-source/data/locale/bg-BG.ini +++ b/plugins/image-source/data/locale/bg-BG.ini @@ -1,3 +1,4 @@ ImageInput="Изображение" File="Файл с изображение" + diff --git a/plugins/image-source/data/locale/ca-ES.ini b/plugins/image-source/data/locale/ca-ES.ini index e4d2dec..e476e39 100644 --- a/plugins/image-source/data/locale/ca-ES.ini +++ b/plugins/image-source/data/locale/ca-ES.ini @@ -2,3 +2,14 @@ ImageInput="Imatge" File="Fitxer de la imatge" UnloadWhenNotShowing="Descarrega la imatge de la memòria quan no es mostri" +SlideShow="Presentació de diapositives" +SlideShow.TransitionSpeed="Velocitat de la transició (mil·lisegons)" +SlideShow.SlideTime="Temps entre diapositives (mil·lisegons)" +SlideShow.Files="Fitxers d'imatge" +SlideShow.Randomize="Reproducció aleatòria" +SlideShow.Transition="Transició" +SlideShow.Transition.Cut="Tall" +SlideShow.Transition.Fade="Desaparèixer" +SlideShow.Transition.Swipe="De cop" +SlideShow.Transition.Slide="Diapositiva" + diff --git a/plugins/image-source/data/locale/cs-CZ.ini b/plugins/image-source/data/locale/cs-CZ.ini index 7dcfbf9..bcb8f60 100644 --- a/plugins/image-source/data/locale/cs-CZ.ini +++ b/plugins/image-source/data/locale/cs-CZ.ini @@ -2,3 +2,14 @@ ImageInput="Obrázek" File="Soubor obrázku" UnloadWhenNotShowing="Nenačítat při skrytém" +SlideShow="Obrázková prezentace" +SlideShow.TransitionSpeed="Rychlost přechodu (milisekundy)" +SlideShow.SlideTime="Čas mezi snímky (milisekundy)" +SlideShow.Files="Soubory obrázků" +SlideShow.Randomize="Náhodné přehrávání" +SlideShow.Transition="Přechod" +SlideShow.Transition.Cut="Střih" +SlideShow.Transition.Fade="Slábnutí" +SlideShow.Transition.Swipe="Tažení" +SlideShow.Transition.Slide="Sklouznutí" + diff --git a/plugins/image-source/data/locale/da-DK.ini b/plugins/image-source/data/locale/da-DK.ini index 3f43659..75de5c0 100644 --- a/plugins/image-source/data/locale/da-DK.ini +++ b/plugins/image-source/data/locale/da-DK.ini @@ -2,3 +2,4 @@ ImageInput="Billede" File="Billedfil" UnloadWhenNotShowing="Fjern billede fra hukommelsen når det ikke vises" + diff --git a/plugins/image-source/data/locale/de-DE.ini b/plugins/image-source/data/locale/de-DE.ini index b7b5f87..1336cb7 100644 --- a/plugins/image-source/data/locale/de-DE.ini +++ b/plugins/image-source/data/locale/de-DE.ini @@ -2,3 +2,14 @@ ImageInput="Bild" File="Bilddatei" UnloadWhenNotShowing="Entlade Bild, wenn es nicht angezeigt wird" +SlideShow="Diashow" +SlideShow.TransitionSpeed="Geschwindigkeit des Übergangs (Millisekunden)" +SlideShow.SlideTime="Zeit zwischen Bildern (Millisekunden)" +SlideShow.Files="Bilddateien" +SlideShow.Randomize="Zufällige Wiedergabe" +SlideShow.Transition="Übergang" +SlideShow.Transition.Cut="Schnitt" +SlideShow.Transition.Fade="Überblenden" +SlideShow.Transition.Swipe="Swipe" +SlideShow.Transition.Slide="Slide" + diff --git a/plugins/image-source/data/locale/el-GR.ini b/plugins/image-source/data/locale/el-GR.ini index 228453b..dd23c11 100644 --- a/plugins/image-source/data/locale/el-GR.ini +++ b/plugins/image-source/data/locale/el-GR.ini @@ -2,3 +2,4 @@ ImageInput="Εικόνα" File="Αρχείο εικόνας" UnloadWhenNotShowing="Ξεφόρτωση εικόνας όταν δεν εμφανίζεται" + diff --git a/plugins/image-source/data/locale/en-US.ini b/plugins/image-source/data/locale/en-US.ini index 6b0d155..eb5ab61 100644 --- a/plugins/image-source/data/locale/en-US.ini +++ b/plugins/image-source/data/locale/en-US.ini @@ -1,3 +1,14 @@ ImageInput="Image" File="Image File" UnloadWhenNotShowing="Unload image when not showing" + +SlideShow="Image Slide Show" +SlideShow.TransitionSpeed="Transition Speed (milliseconds)" +SlideShow.SlideTime="Time Between Slides (milliseconds)" +SlideShow.Files="Image Files" +SlideShow.Randomize="Randomize Playback" +SlideShow.Transition="Transition" +SlideShow.Transition.Cut="Cut" +SlideShow.Transition.Fade="Fade" +SlideShow.Transition.Swipe="Swipe" +SlideShow.Transition.Slide="Slide" diff --git a/plugins/image-source/data/locale/es-ES.ini b/plugins/image-source/data/locale/es-ES.ini index b7e28b4..d5756b2 100644 --- a/plugins/image-source/data/locale/es-ES.ini +++ b/plugins/image-source/data/locale/es-ES.ini @@ -2,3 +2,14 @@ ImageInput="Imagen" File="Archivo de imagen" UnloadWhenNotShowing="Descargar la imagen mientras no se muestre" +SlideShow="Galería de imágenes" +SlideShow.TransitionSpeed="Velocidad de la transición (milisegundos)" +SlideShow.SlideTime="Tiempo entre diapositivas (milisegundos)" +SlideShow.Files="Archivo de imagen" +SlideShow.Randomize="Reproducción aleatoria" +SlideShow.Transition="Transición" +SlideShow.Transition.Cut="Corte" +SlideShow.Transition.Fade="Desvanecimiento" +SlideShow.Transition.Swipe="Deslizar Rapido" +SlideShow.Transition.Slide="Deslizar" + diff --git a/plugins/image-source/data/locale/eu-ES.ini b/plugins/image-source/data/locale/eu-ES.ini index ab9a648..725fd53 100644 --- a/plugins/image-source/data/locale/eu-ES.ini +++ b/plugins/image-source/data/locale/eu-ES.ini @@ -2,3 +2,14 @@ ImageInput="Irudia" File="Irudi-fitxategia" UnloadWhenNotShowing="Ez kargatu irudia erakusten ez denean" +SlideShow="Irudien diaporama" +SlideShow.TransitionSpeed="Trantsizioaren abiadura (milisegundotan)" +SlideShow.SlideTime="Diapositiben arteko denbora (milisegundotan)" +SlideShow.Files="Irudi fitxategiak" +SlideShow.Randomize="Ausazko erreprodukzioa" +SlideShow.Transition="Trantsizioa" +SlideShow.Transition.Cut="Ebaki" +SlideShow.Transition.Fade="Iraungi" +SlideShow.Transition.Swipe="Korritu" +SlideShow.Transition.Slide="Irristatu" + diff --git a/plugins/image-source/data/locale/fi-FI.ini b/plugins/image-source/data/locale/fi-FI.ini index 6e8ed5b..3ccfcd7 100644 --- a/plugins/image-source/data/locale/fi-FI.ini +++ b/plugins/image-source/data/locale/fi-FI.ini @@ -2,3 +2,14 @@ ImageInput="Kuva" File="Kuvatiedosto" UnloadWhenNotShowing="Vapauta kuva muistista, kun se ei ole näkyvissä" +SlideShow="Diaesitys" +SlideShow.TransitionSpeed="Siirtymän nopeus (millisekuntia)" +SlideShow.SlideTime="Kesto kuvien välissä (millisekunteina)" +SlideShow.Files="Kuvatiedostot" +SlideShow.Randomize="Toista satunnaisesti" +SlideShow.Transition="Siirtymä" +SlideShow.Transition.Cut="Leikkaa" +SlideShow.Transition.Fade="Häivytä" +SlideShow.Transition.Swipe="Pyyhkäise" +SlideShow.Transition.Slide="Liu'uta" + diff --git a/plugins/image-source/data/locale/fr-FR.ini b/plugins/image-source/data/locale/fr-FR.ini index eece777..c7f2b10 100644 --- a/plugins/image-source/data/locale/fr-FR.ini +++ b/plugins/image-source/data/locale/fr-FR.ini @@ -2,3 +2,14 @@ ImageInput="Image" File="Fichier image" UnloadWhenNotShowing="Décharger l'image quand elle n'est pas affichée" +SlideShow="Diaporama" +SlideShow.TransitionSpeed="Vitesse de transition (millisecondes)" +SlideShow.SlideTime="Temps entre chaque diapositive (millisecondes)" +SlideShow.Files="Fichiers image" +SlideShow.Randomize="Lecture aléatoire" +SlideShow.Transition="Transition" +SlideShow.Transition.Cut="Coupure" +SlideShow.Transition.Fade="Fondu" +SlideShow.Transition.Swipe="Balayage" +SlideShow.Transition.Slide="Glissement" + diff --git a/plugins/image-source/data/locale/gl-ES.ini b/plugins/image-source/data/locale/gl-ES.ini index 9f52ac2..e197c31 100644 --- a/plugins/image-source/data/locale/gl-ES.ini +++ b/plugins/image-source/data/locale/gl-ES.ini @@ -2,3 +2,4 @@ ImageInput="Imaxe" File="Ficheiro de imaxe" UnloadWhenNotShowing="Non descargar a imaxe cando non se mostre" + diff --git a/plugins/image-source/data/locale/he-IL.ini b/plugins/image-source/data/locale/he-IL.ini index 92732e6..f482eba 100644 --- a/plugins/image-source/data/locale/he-IL.ini +++ b/plugins/image-source/data/locale/he-IL.ini @@ -2,3 +2,14 @@ ImageInput="תמונה" File="קובץ תמונה" UnloadWhenNotShowing="הסר טעינת תמונה כאשר לא נראה" +SlideShow="מצגת תמונות" +SlideShow.TransitionSpeed="מהירות מעבר (אלפיות שניה)" +SlideShow.SlideTime="זמן בין שקופיות (אלפיות שניה)" +SlideShow.Files="קבצי תמונה" +SlideShow.Randomize="סדר נגינה אקראי" +SlideShow.Transition="מעבר" +SlideShow.Transition.Cut="חתוך" +SlideShow.Transition.Fade="עמעום" +SlideShow.Transition.Swipe="החלקה" +SlideShow.Transition.Slide="הסט" + diff --git a/plugins/image-source/data/locale/hr-HR.ini b/plugins/image-source/data/locale/hr-HR.ini index ebf3736..1a64603 100644 --- a/plugins/image-source/data/locale/hr-HR.ini +++ b/plugins/image-source/data/locale/hr-HR.ini @@ -2,3 +2,14 @@ ImageInput="Slika" File="Datoteka slike" UnloadWhenNotShowing="Ukloni sliku iz memorije kada se ne prikazuje" +SlideShow="Prikazivanje slajdova" +SlideShow.TransitionSpeed="Brzina prelaza (milisekunde)" +SlideShow.SlideTime="Vreme između slajdova (milisekunde)" +SlideShow.Files="Datoteke slika" +SlideShow.Randomize="Nasumična reprodukcija" +SlideShow.Transition="Prelaz" +SlideShow.Transition.Cut="Isecanje" +SlideShow.Transition.Fade="Zatamnjenje" +SlideShow.Transition.Swipe="Prevlačenje" +SlideShow.Transition.Slide="Klizanje" + diff --git a/plugins/image-source/data/locale/hu-HU.ini b/plugins/image-source/data/locale/hu-HU.ini index 876cadf..7bf84f2 100644 --- a/plugins/image-source/data/locale/hu-HU.ini +++ b/plugins/image-source/data/locale/hu-HU.ini @@ -2,3 +2,14 @@ ImageInput="Kép" File="Képfájl" UnloadWhenNotShowing="Kép kitöltése mikor nem jelenik meg" +SlideShow="Képvetítő" +SlideShow.TransitionSpeed="Áttűnési sebesség (ezredmásodperc)" +SlideShow.SlideTime="Diák közti idő (ezredmásodperc)" +SlideShow.Files="Képfájlok" +SlideShow.Randomize="Véletlenszerű lejátszás" +SlideShow.Transition="Átmenet" +SlideShow.Transition.Cut="Kivágás" +SlideShow.Transition.Fade="Áttűnés" +SlideShow.Transition.Swipe="Lapozás" +SlideShow.Transition.Slide="Csúsztatás" + diff --git a/plugins/image-source/data/locale/it-IT.ini b/plugins/image-source/data/locale/it-IT.ini index bbeb964..8824432 100644 --- a/plugins/image-source/data/locale/it-IT.ini +++ b/plugins/image-source/data/locale/it-IT.ini @@ -2,3 +2,14 @@ ImageInput="Immagine" File="File Immagine" UnloadWhenNotShowing="Non caricare immagine se non si vede" +SlideShow="Presentazione immagini" +SlideShow.TransitionSpeed="Velocità di transizione (millisecondi)" +SlideShow.SlideTime="Tempo tra le diapositive (millisecondi)" +SlideShow.Files="Files Immagini" +SlideShow.Randomize="Randomizzare la riproduzione" +SlideShow.Transition="Transizione" +SlideShow.Transition.Cut="Taglio" +SlideShow.Transition.Fade="Dissolvenza" +SlideShow.Transition.Swipe="Scorri" +SlideShow.Transition.Slide="Scivola" + diff --git a/plugins/image-source/data/locale/ja-JP.ini b/plugins/image-source/data/locale/ja-JP.ini index 6a70959..4fa9b81 100644 --- a/plugins/image-source/data/locale/ja-JP.ini +++ b/plugins/image-source/data/locale/ja-JP.ini @@ -2,3 +2,14 @@ ImageInput="画像" File="画像ファイル" UnloadWhenNotShowing="表示中でない画像は読み込まない" +SlideShow="画像スライドショー" +SlideShow.TransitionSpeed="画面切替速度 (ミリ秒)" +SlideShow.SlideTime="スライド時間間隔 (ミリ秒)" +SlideShow.Files="画像ファイル" +SlideShow.Randomize="ランダム再生" +SlideShow.Transition="トランジション" +SlideShow.Transition.Cut="カット" +SlideShow.Transition.Fade="フェード" +SlideShow.Transition.Swipe="スワイプ" +SlideShow.Transition.Slide="スライド" + diff --git a/plugins/image-source/data/locale/ko-KR.ini b/plugins/image-source/data/locale/ko-KR.ini index f81df75..47145cb 100644 --- a/plugins/image-source/data/locale/ko-KR.ini +++ b/plugins/image-source/data/locale/ko-KR.ini @@ -2,3 +2,14 @@ ImageInput="이미지" File="이미지 파일" UnloadWhenNotShowing="이미지가 표시되지 않을 경우 비디오 메모리에서 읽지 않기" +SlideShow="이미지 슬라이드 쇼" +SlideShow.TransitionSpeed="전환 속도 (밀리초)" +SlideShow.SlideTime="슬라이드 간격 (밀리초)" +SlideShow.Files="이미지 파일 형식" +SlideShow.Randomize="무작위 재생" +SlideShow.Transition="전환 방식" +SlideShow.Transition.Cut="자르기" +SlideShow.Transition.Fade="서서히 사라지기" +SlideShow.Transition.Swipe="밀어내기" +SlideShow.Transition.Slide="슬라이드" + diff --git a/plugins/image-source/data/locale/nb-NO.ini b/plugins/image-source/data/locale/nb-NO.ini index 65daf16..4f5f101 100644 --- a/plugins/image-source/data/locale/nb-NO.ini +++ b/plugins/image-source/data/locale/nb-NO.ini @@ -2,3 +2,14 @@ ImageInput="Bilde" File="Bildefil" UnloadWhenNotShowing="Avlast bilde når det ikke vises" +SlideShow="Lysbildefremvisning" +SlideShow.TransitionSpeed="Overgangshastighet (millisekunder)" +SlideShow.SlideTime="Tid mellom lysbilder (millisekunder)" +SlideShow.Files="Bildefiler" +SlideShow.Randomize="Tilfeldig avspilling" +SlideShow.Transition="Overgang" +SlideShow.Transition.Cut="Kutt" +SlideShow.Transition.Fade="Forløpning" +SlideShow.Transition.Swipe="Sveip" +SlideShow.Transition.Slide="Skyv" + diff --git a/plugins/image-source/data/locale/nl-NL.ini b/plugins/image-source/data/locale/nl-NL.ini index e44004b..282474b 100644 --- a/plugins/image-source/data/locale/nl-NL.ini +++ b/plugins/image-source/data/locale/nl-NL.ini @@ -2,3 +2,14 @@ ImageInput="Afbeelding" File="Afbeeldingsbestand" UnloadWhenNotShowing="Niet getoonde afbeeldingen uit het geheugen verwijderen" +SlideShow="Diashow" +SlideShow.TransitionSpeed="Overgangssnelheid (milliseconden)" +SlideShow.SlideTime="Tijd Tussen Dia's (milliseconden)" +SlideShow.Files="Afbeeldingsbestanden" +SlideShow.Randomize="Willekeurige Volgorde" +SlideShow.Transition="Overgang" +SlideShow.Transition.Cut="Knippen" +SlideShow.Transition.Fade="Vervagen" +SlideShow.Transition.Swipe="Vegen" +SlideShow.Transition.Slide="Slide" + diff --git a/plugins/image-source/data/locale/pl-PL.ini b/plugins/image-source/data/locale/pl-PL.ini index 4022954..61ba68a 100644 --- a/plugins/image-source/data/locale/pl-PL.ini +++ b/plugins/image-source/data/locale/pl-PL.ini @@ -2,3 +2,14 @@ ImageInput="Obraz" File="Plik obrazu" UnloadWhenNotShowing="Usuń obraz z pamięci, gdy nie jest pokazywany" +SlideShow="Pokaz slajdów" +SlideShow.TransitionSpeed="Prędkość efektu przejścia (ms)" +SlideShow.SlideTime="Czas wyświetlania slajdu (ms)" +SlideShow.Files="Pliki graficzne" +SlideShow.Randomize="Odtwarzanie losowe" +SlideShow.Transition="Efekt przejścia" +SlideShow.Transition.Cut="Cięcie" +SlideShow.Transition.Fade="Zanikanie" +SlideShow.Transition.Swipe="Przeciągnięcie" +SlideShow.Transition.Slide="Przesunięcie" + diff --git a/plugins/image-source/data/locale/pt-BR.ini b/plugins/image-source/data/locale/pt-BR.ini index 9f45f1c..1de7fc3 100644 --- a/plugins/image-source/data/locale/pt-BR.ini +++ b/plugins/image-source/data/locale/pt-BR.ini @@ -2,3 +2,14 @@ ImageInput="Imagem" File="Arquivo de Imagem" UnloadWhenNotShowing="Descarregar imagem quando não estiver em exibição" +SlideShow="Imagens em Deslize" +SlideShow.TransitionSpeed="Velocidade de transição (milissegundos)" +SlideShow.SlideTime="Tempo entre Deslizes (milissegundos)" +SlideShow.Files="Arquivos de Imagem" +SlideShow.Randomize="Reprodução aleatória" +SlideShow.Transition="Transição" +SlideShow.Transition.Cut="Cortar" +SlideShow.Transition.Fade="Desvanecer" +SlideShow.Transition.Swipe="Deslizar" +SlideShow.Transition.Slide="Deslize" + diff --git a/plugins/image-source/data/locale/pt-PT.ini b/plugins/image-source/data/locale/pt-PT.ini index fc12920..6ae3cb7 100644 --- a/plugins/image-source/data/locale/pt-PT.ini +++ b/plugins/image-source/data/locale/pt-PT.ini @@ -2,3 +2,14 @@ ImageInput="Imagem" File="Ficheiro de imagem" UnloadWhenNotShowing="Descarregar imagem quando não estiver em visualização" +SlideShow="Imagens em Deslize" +SlideShow.TransitionSpeed="Velocidade de transição (milissegundos)" +SlideShow.SlideTime="Tempo entre Deslizes (milissegundos)" +SlideShow.Files="Arquivos de Imagem" +SlideShow.Randomize="Reprodução aleatória" +SlideShow.Transition="Transição" +SlideShow.Transition.Cut="Cortar" +SlideShow.Transition.Fade="Desvanecer" +SlideShow.Transition.Swipe="Deslizar" +SlideShow.Transition.Slide="Deslize" + diff --git a/plugins/image-source/data/locale/ro-RO.ini b/plugins/image-source/data/locale/ro-RO.ini index c93f400..0a262c9 100644 --- a/plugins/image-source/data/locale/ro-RO.ini +++ b/plugins/image-source/data/locale/ro-RO.ini @@ -2,3 +2,4 @@ ImageInput="Imagine" File="Fișier imagine" UnloadWhenNotShowing="Eliberează din memorie imaginea când nu este afișată" + diff --git a/plugins/image-source/data/locale/ru-RU.ini b/plugins/image-source/data/locale/ru-RU.ini index a384665..562e412 100644 --- a/plugins/image-source/data/locale/ru-RU.ini +++ b/plugins/image-source/data/locale/ru-RU.ini @@ -2,3 +2,14 @@ ImageInput="Изображение" File="Файл изображения" UnloadWhenNotShowing="Выгружать изображения, которые не показываются" +SlideShow="Слайдшоу" +SlideShow.TransitionSpeed="Скорость перехода (миллисекунды)" +SlideShow.SlideTime="Время между слайдами (миллисекунды)" +SlideShow.Files="Файлы изображений" +SlideShow.Randomize="Случайное воспроизведение" +SlideShow.Transition="Переход" +SlideShow.Transition.Cut="Обрезать" +SlideShow.Transition.Fade="Затухание" +SlideShow.Transition.Swipe="Перемещение" +SlideShow.Transition.Slide="Сдвиг" + diff --git a/plugins/image-source/data/locale/sk-SK.ini b/plugins/image-source/data/locale/sk-SK.ini index 872ec47..e735524 100644 --- a/plugins/image-source/data/locale/sk-SK.ini +++ b/plugins/image-source/data/locale/sk-SK.ini @@ -2,3 +2,4 @@ ImageInput="Obrázok" File="Súbor s obrázkom" UnloadWhenNotShowing="Uvoľniť obrázok, ak nie je zobrazený" + diff --git a/plugins/image-source/data/locale/sl-SI.ini b/plugins/image-source/data/locale/sl-SI.ini index 25554a8..1c579f1 100644 --- a/plugins/image-source/data/locale/sl-SI.ini +++ b/plugins/image-source/data/locale/sl-SI.ini @@ -2,3 +2,4 @@ ImageInput="Slika" File="Slikovna datoteka" UnloadWhenNotShowing="Ne naloži slike, ko ni prikazana" + diff --git a/plugins/image-source/data/locale/sr-CS.ini b/plugins/image-source/data/locale/sr-CS.ini index ebf3736..1a64603 100644 --- a/plugins/image-source/data/locale/sr-CS.ini +++ b/plugins/image-source/data/locale/sr-CS.ini @@ -2,3 +2,14 @@ ImageInput="Slika" File="Datoteka slike" UnloadWhenNotShowing="Ukloni sliku iz memorije kada se ne prikazuje" +SlideShow="Prikazivanje slajdova" +SlideShow.TransitionSpeed="Brzina prelaza (milisekunde)" +SlideShow.SlideTime="Vreme između slajdova (milisekunde)" +SlideShow.Files="Datoteke slika" +SlideShow.Randomize="Nasumična reprodukcija" +SlideShow.Transition="Prelaz" +SlideShow.Transition.Cut="Isecanje" +SlideShow.Transition.Fade="Zatamnjenje" +SlideShow.Transition.Swipe="Prevlačenje" +SlideShow.Transition.Slide="Klizanje" + diff --git a/plugins/image-source/data/locale/sr-SP.ini b/plugins/image-source/data/locale/sr-SP.ini index 3e7bc80..46d20e8 100644 --- a/plugins/image-source/data/locale/sr-SP.ini +++ b/plugins/image-source/data/locale/sr-SP.ini @@ -2,3 +2,14 @@ ImageInput="Слика" File="Датотека слике" UnloadWhenNotShowing="Уклони слику из меморије када се не приказује" +SlideShow="Приказивање слајдова" +SlideShow.TransitionSpeed="Брзина прелаза (милисекунде)" +SlideShow.SlideTime="Време између слајдова (милисекунде)" +SlideShow.Files="Датотеке слика" +SlideShow.Randomize="Насумична репродукција" +SlideShow.Transition="Прелаз" +SlideShow.Transition.Cut="Исецање" +SlideShow.Transition.Fade="Затамњење" +SlideShow.Transition.Swipe="Превлачење" +SlideShow.Transition.Slide="Клизање" + diff --git a/plugins/image-source/data/locale/sv-SE.ini b/plugins/image-source/data/locale/sv-SE.ini index 4727f33..edd84ab 100644 --- a/plugins/image-source/data/locale/sv-SE.ini +++ b/plugins/image-source/data/locale/sv-SE.ini @@ -2,3 +2,14 @@ ImageInput="Bild" File="Bildfil" UnloadWhenNotShowing="Ta bort bild när den inte visas" +SlideShow="Bildspel" +SlideShow.TransitionSpeed="Övergångshastighet (millisekunder)" +SlideShow.SlideTime="Tid mellan bilder (millisekunder)" +SlideShow.Files="Bildfiler" +SlideShow.Randomize="Slumpa uppspelning" +SlideShow.Transition="Övergång" +SlideShow.Transition.Cut="Klipp" +SlideShow.Transition.Fade="Tona" +SlideShow.Transition.Swipe="Svep" +SlideShow.Transition.Slide="Glid" + diff --git a/plugins/image-source/data/locale/th-TH.ini b/plugins/image-source/data/locale/th-TH.ini index 983783b..b2c3514 100644 --- a/plugins/image-source/data/locale/th-TH.ini +++ b/plugins/image-source/data/locale/th-TH.ini @@ -1,3 +1,4 @@ ImageInput="รูปภาพ" File="ไฟล์รูปภาพ" + diff --git a/plugins/image-source/data/locale/tr-TR.ini b/plugins/image-source/data/locale/tr-TR.ini index 4774a2c..d5ef434 100644 --- a/plugins/image-source/data/locale/tr-TR.ini +++ b/plugins/image-source/data/locale/tr-TR.ini @@ -2,3 +2,4 @@ ImageInput="Görüntü" File="Görüntü Dosyası" UnloadWhenNotShowing="Resim gösterilmediğinde bellekten kaldır" + diff --git a/plugins/image-source/data/locale/zh-CN.ini b/plugins/image-source/data/locale/zh-CN.ini index f569552..14946c0 100644 --- a/plugins/image-source/data/locale/zh-CN.ini +++ b/plugins/image-source/data/locale/zh-CN.ini @@ -2,3 +2,14 @@ ImageInput="图像" File="图像文件" UnloadWhenNotShowing="当不显示时卸载图像" +SlideShow="图像幻灯片放映" +SlideShow.TransitionSpeed="过渡速度(毫秒)" +SlideShow.SlideTime="幻灯片之间时间(毫秒)" +SlideShow.Files="图像文件" +SlideShow.Randomize="随机播放" +SlideShow.Transition="转换" +SlideShow.Transition.Cut="剪切" +SlideShow.Transition.Fade="淡出" +SlideShow.Transition.Swipe="滑动" +SlideShow.Transition.Slide="幻灯片" + diff --git a/plugins/image-source/data/locale/zh-TW.ini b/plugins/image-source/data/locale/zh-TW.ini index 39c928f..6c40828 100644 --- a/plugins/image-source/data/locale/zh-TW.ini +++ b/plugins/image-source/data/locale/zh-TW.ini @@ -2,3 +2,14 @@ ImageInput="圖片" File="圖片檔案" UnloadWhenNotShowing="當不顯示圖片時卸載" +SlideShow="投影片放映" +SlideShow.TransitionSpeed="變更速度 (毫秒)" +SlideShow.SlideTime="圖片間隔 (毫秒)" +SlideShow.Files="圖片檔案" +SlideShow.Randomize="隨機播放" +SlideShow.Transition="變更特效" +SlideShow.Transition.Cut="直接變更" +SlideShow.Transition.Fade="淡入淡出" +SlideShow.Transition.Swipe="滑出" +SlideShow.Transition.Slide="推出" + diff --git a/plugins/image-source/image-source.c b/plugins/image-source/image-source.c index f47d1dc..91ced6c 100644 --- a/plugins/image-source/image-source.c +++ b/plugins/image-source/image-source.c @@ -23,6 +23,7 @@ struct image_source { time_t file_timestamp; float update_time_elapsed; uint64_t last_time; + bool active; gs_image_file_t image; }; @@ -162,6 +163,31 @@ static void image_source_tick(void *data, float seconds) struct image_source *context = data; uint64_t frame_time = obs_get_video_frame_time(); + if (obs_source_active(context->source)) { + if (!context->active) { + if (context->image.is_animated_gif) + context->last_time = frame_time; + context->active = true; + } + + } else { + if (context->active) { + if (context->image.is_animated_gif) { + context->image.cur_frame = 0; + context->image.cur_loop = 0; + context->image.cur_time = 0; + + obs_enter_graphics(); + gs_image_file_update_texture(&context->image); + obs_leave_graphics(); + } + + context->active = false; + } + + return; + } + if (context->last_time && context->image.is_animated_gif) { uint64_t elapsed = frame_time - context->last_time; bool updated = gs_image_file_tick(&context->image, elapsed); @@ -175,8 +201,6 @@ static void image_source_tick(void *data, float seconds) context->last_time = frame_time; - if (!obs_source_showing(context->source)) return; - context->update_time_elapsed += seconds; if (context->update_time_elapsed >= 1.0f) { @@ -246,8 +270,11 @@ static struct obs_source_info image_source_info = { OBS_DECLARE_MODULE() OBS_MODULE_USE_DEFAULT_LOCALE("image-source", "en-US") +extern struct obs_source_info slideshow_info; + bool obs_module_load(void) { obs_register_source(&image_source_info); + obs_register_source(&slideshow_info); return true; } diff --git a/plugins/image-source/obs-slideshow.c b/plugins/image-source/obs-slideshow.c new file mode 100644 index 0000000..3fa7b67 --- /dev/null +++ b/plugins/image-source/obs-slideshow.c @@ -0,0 +1,528 @@ +#include +#include +#include +#include +#include + +#define do_log(level, format, ...) \ + blog(level, "[slideshow: '%s'] " format, \ + obs_source_get_name(ss->source), ##__VA_ARGS__) + +#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__) + +#define S_TR_SPEED "transition_speed" +#define S_SLIDE_TIME "slide_time" +#define S_TRANSITION "transition" +#define S_RANDOMIZE "randomize" +#define S_FILES "files" + +#define TR_CUT "cut" +#define TR_FADE "fade" +#define TR_SWIPE "swipe" +#define TR_SLIDE "slide" + +#define T_(text) obs_module_text("SlideShow." text) +#define T_TR_SPEED T_("TransitionSpeed") +#define T_SLIDE_TIME T_("SlideTime") +#define T_TRANSITION T_("Transition") +#define T_RANDOMIZE T_("Randomize") +#define T_FILES T_("Files") + +#define T_TR_(text) obs_module_text("SlideShow.Transition." text) +#define T_TR_CUT T_TR_("Cut") +#define T_TR_FADE T_TR_("Fade") +#define T_TR_SWIPE T_TR_("Swipe") +#define T_TR_SLIDE T_TR_("Slide") + +/* ------------------------------------------------------------------------- */ + +struct image_file_data { + char *path; + obs_source_t *source; +}; + +struct slideshow { + obs_source_t *source; + + bool randomize; + float slide_time; + uint32_t tr_speed; + const char *tr_name; + obs_source_t *transition; + + float elapsed; + size_t cur_item; + + uint32_t cx; + uint32_t cy; + + pthread_mutex_t mutex; + DARRAY(struct image_file_data) files; +}; + +static obs_source_t *get_transition(struct slideshow *ss) +{ + obs_source_t *tr; + + pthread_mutex_lock(&ss->mutex); + tr = ss->transition; + obs_source_addref(tr); + pthread_mutex_unlock(&ss->mutex); + + return tr; +} + +static obs_source_t *get_source(struct darray *array, const char *path) +{ + DARRAY(struct image_file_data) files; + obs_source_t *source = NULL; + + files.da = *array; + + for (size_t i = 0; i < files.num; i++) { + const char *cur_path = files.array[i].path; + + if (strcmp(path, cur_path) == 0) { + source = files.array[i].source; + obs_source_addref(source); + break; + } + } + + return source; +} + +static obs_source_t *create_source_from_file(const char *file) +{ + obs_data_t *settings = obs_data_create(); + obs_source_t *source; + + obs_data_set_string(settings, "file", file); + obs_data_set_bool(settings, "unload", false); + source = obs_source_create_private("image_source", NULL, settings); + + obs_data_release(settings); + return source; +} + +static void free_files(struct darray *array) +{ + DARRAY(struct image_file_data) files; + files.da = *array; + + for (size_t i = 0; i < files.num; i++) { + bfree(files.array[i].path); + obs_source_release(files.array[i].source); + } + + da_free(files); +} + +static inline size_t random_file(struct slideshow *ss) +{ + return (size_t)rand() % ss->files.num; +} + +/* ------------------------------------------------------------------------- */ + +static const char *ss_getname(void *unused) +{ + UNUSED_PARAMETER(unused); + return obs_module_text("SlideShow"); +} + +static void add_file(struct slideshow *ss, struct darray *array, + const char *path, uint32_t *cx, uint32_t *cy) +{ + DARRAY(struct image_file_data) new_files; + struct image_file_data data; + obs_source_t *new_source; + + new_files.da = *array; + + pthread_mutex_lock(&ss->mutex); + new_source = get_source(&ss->files.da, path); + pthread_mutex_unlock(&ss->mutex); + + if (!new_source) + new_source = get_source(&new_files.da, path); + if (!new_source) + new_source = create_source_from_file(path); + + if (new_source) { + uint32_t new_cx = obs_source_get_width(new_source); + uint32_t new_cy = obs_source_get_height(new_source); + + data.path = bstrdup(path); + data.source = new_source; + da_push_back(new_files, &data); + + if (new_cx > *cx) *cx = new_cx; + if (new_cy > *cy) *cy = new_cy; + } + + *array = new_files.da; +} + +static bool valid_extension(const char *ext) +{ + if (!ext) + return false; + return astrcmpi(ext, ".bmp") == 0 || + astrcmpi(ext, ".tga") == 0 || + astrcmpi(ext, ".png") == 0 || + astrcmpi(ext, ".jpeg") == 0 || + astrcmpi(ext, ".jpg") == 0 || + astrcmpi(ext, ".gif") == 0; +} + +static void ss_update(void *data, obs_data_t *settings) +{ + DARRAY(struct image_file_data) new_files; + DARRAY(struct image_file_data) old_files; + obs_source_t *new_tr = NULL; + obs_source_t *old_tr = NULL; + struct slideshow *ss = data; + obs_data_array_t *array; + const char *tr_name; + uint32_t new_duration; + uint32_t new_speed; + uint32_t cx = 0; + uint32_t cy = 0; + size_t count; + + /* ------------------------------------- */ + /* get settings data */ + + da_init(new_files); + + tr_name = obs_data_get_string(settings, S_TRANSITION); + if (astrcmpi(tr_name, TR_CUT) == 0) + tr_name = "cut_transition"; + else if (astrcmpi(tr_name, TR_SWIPE) == 0) + tr_name = "swipe_transition"; + else if (astrcmpi(tr_name, TR_SLIDE) == 0) + tr_name = "slide_transition"; + else + tr_name = "fade_transition"; + + ss->randomize = obs_data_get_bool(settings, S_RANDOMIZE); + + if (!ss->tr_name || strcmp(tr_name, ss->tr_name) != 0) + new_tr = obs_source_create_private(tr_name, NULL, NULL); + + new_duration = (uint32_t)obs_data_get_int(settings, S_SLIDE_TIME); + new_speed = (uint32_t)obs_data_get_int(settings, S_TR_SPEED); + + array = obs_data_get_array(settings, S_FILES); + count = obs_data_array_count(array); + + /* ------------------------------------- */ + /* create new list of sources */ + + for (size_t i = 0; i < count; i++) { + obs_data_t *item = obs_data_array_item(array, i); + const char *path = obs_data_get_string(item, "value"); + os_dir_t *dir = os_opendir(path); + + if (dir) { + struct dstr dir_path = {0}; + struct os_dirent *ent; + + for (;;) { + const char *ext; + + ent = os_readdir(dir); + if (!ent) + break; + if (ent->directory) + continue; + + ext = os_get_path_extension(ent->d_name); + if (!valid_extension(ext)) + continue; + + dstr_copy(&dir_path, path); + dstr_cat_ch(&dir_path, '/'); + dstr_cat(&dir_path, ent->d_name); + add_file(ss, &new_files.da, dir_path.array, + &cx, &cy); + } + + dstr_free(&dir_path); + os_closedir(dir); + } else { + add_file(ss, &new_files.da, path, &cx, &cy); + } + + obs_data_release(item); + } + + /* ------------------------------------- */ + /* update settings data */ + + pthread_mutex_lock(&ss->mutex); + + old_files.da = ss->files.da; + ss->files.da = new_files.da; + if (new_tr) { + old_tr = ss->transition; + ss->transition = new_tr; + } + + if (new_duration < 50) + new_duration = 50; + if (new_speed > (new_duration - 50)) + new_speed = new_duration - 50; + + ss->tr_speed = new_speed; + ss->tr_name = tr_name; + ss->slide_time = (float)new_duration / 1000.0f; + + pthread_mutex_unlock(&ss->mutex); + + /* ------------------------------------- */ + /* clean up and restart transition */ + + if (old_tr) + obs_source_release(old_tr); + free_files(&old_files.da); + + ss->cx = cx; + ss->cy = cy; + ss->cur_item = 0; + ss->elapsed = 0.0f; + obs_transition_set_size(ss->transition, cx, cy); + obs_transition_set_alignment(ss->transition, OBS_ALIGN_CENTER); + obs_transition_set_scale_type(ss->transition, + OBS_TRANSITION_SCALE_ASPECT); + + if (ss->randomize && ss->files.num) + ss->cur_item = random_file(ss); + if (new_tr) + obs_source_add_active_child(ss->source, new_tr); + if (ss->files.num) + obs_transition_start(ss->transition, OBS_TRANSITION_MODE_AUTO, + ss->tr_speed, + ss->files.array[ss->cur_item].source); + + obs_data_array_release(array); +} + +static void ss_destroy(void *data) +{ + struct slideshow *ss = data; + + obs_source_release(ss->transition); + free_files(&ss->files.da); + pthread_mutex_destroy(&ss->mutex); + bfree(ss); +} + +static void *ss_create(obs_data_t *settings, obs_source_t *source) +{ + struct slideshow *ss = bzalloc(sizeof(*ss)); + ss->source = source; + + pthread_mutex_init_value(&ss->mutex); + if (pthread_mutex_init(&ss->mutex, NULL) != 0) + goto error; + + obs_source_update(source, NULL); + + UNUSED_PARAMETER(settings); + return ss; + +error: + ss_destroy(ss); + return NULL; +} + +static void ss_video_render(void *data, gs_effect_t *effect) +{ + struct slideshow *ss = data; + obs_source_t *transition = get_transition(ss); + + if (transition) { + obs_source_video_render(transition); + obs_source_release(transition); + } + + UNUSED_PARAMETER(effect); +} + +static void ss_video_tick(void *data, float seconds) +{ + struct slideshow *ss = data; + + if (!ss->transition || !ss->slide_time) + return; + + ss->elapsed += seconds; + if (ss->elapsed > ss->slide_time) { + ss->elapsed -= ss->slide_time; + + if (ss->randomize) { + size_t next = ss->cur_item; + if (ss->files.num > 1) { + while (next == ss->cur_item) + next = random_file(ss); + } + ss->cur_item = next; + + } else if (++ss->cur_item >= ss->files.num) { + ss->cur_item = 0; + } + + if (ss->files.num) + obs_transition_start(ss->transition, + OBS_TRANSITION_MODE_AUTO, ss->tr_speed, + ss->files.array[ss->cur_item].source); + } +} + +static inline bool ss_audio_render_(obs_source_t *transition, uint64_t *ts_out, + struct obs_source_audio_mix *audio_output, + uint32_t mixers, size_t channels, size_t sample_rate) +{ + struct obs_source_audio_mix child_audio; + uint64_t source_ts; + + if (obs_source_audio_pending(transition)) + return false; + + source_ts = obs_source_get_audio_timestamp(transition); + if (!source_ts) + return false; + + obs_source_get_audio_mix(transition, &child_audio); + for (size_t mix = 0; mix < MAX_AUDIO_MIXES; mix++) { + if ((mixers & (1 << mix)) == 0) + continue; + + for (size_t ch = 0; ch < channels; ch++) { + float *out = audio_output->output[mix].data[ch]; + float *in = child_audio.output[mix].data[ch]; + + memcpy(out, in, AUDIO_OUTPUT_FRAMES * + MAX_AUDIO_CHANNELS * sizeof(float)); + } + } + + *ts_out = source_ts; + + UNUSED_PARAMETER(sample_rate); + return true; +} + +static bool ss_audio_render(void *data, uint64_t *ts_out, + struct obs_source_audio_mix *audio_output, + uint32_t mixers, size_t channels, size_t sample_rate) +{ + struct slideshow *ss = data; + obs_source_t *transition = get_transition(ss); + bool success; + + if (!transition) + return false; + + success = ss_audio_render_(transition, ts_out, audio_output, mixers, + channels, sample_rate); + + obs_source_release(transition); + return success; +} + +static void ss_enum_sources(void *data, obs_source_enum_proc_t cb, void *param) +{ + struct slideshow *ss = data; + + pthread_mutex_lock(&ss->mutex); + if (ss->transition) + cb(ss->source, ss->transition, param); + pthread_mutex_unlock(&ss->mutex); +} + +static uint32_t ss_width(void *data) +{ + struct slideshow *ss = data; + return ss->transition ? ss->cx : 0; +} + +static uint32_t ss_height(void *data) +{ + struct slideshow *ss = data; + return ss->transition ? ss->cy : 0; +} + +static void ss_defaults(obs_data_t *settings) +{ + obs_data_set_default_string(settings, S_TRANSITION, "fade"); + obs_data_set_default_int(settings, S_SLIDE_TIME, 8000); + obs_data_set_default_int(settings, S_TR_SPEED, 700); +} + +static const char *file_filter = + "Image files (*.bmp *.tga *.png *.jpeg *.jpg *.gif)"; + +static obs_properties_t *ss_properties(void *data) +{ + obs_properties_t *ppts = obs_properties_create(); + struct slideshow *ss = data; + struct dstr path = {0}; + obs_property_t *p; + + p = obs_properties_add_list(ppts, S_TRANSITION, T_TRANSITION, + OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); + obs_property_list_add_string(p, T_TR_CUT, TR_CUT); + obs_property_list_add_string(p, T_TR_FADE, TR_FADE); + obs_property_list_add_string(p, T_TR_SWIPE, TR_SWIPE); + obs_property_list_add_string(p, T_TR_SLIDE, TR_SLIDE); + + obs_properties_add_int(ppts, S_SLIDE_TIME, T_SLIDE_TIME, + 50, 3600000, 50); + obs_properties_add_int(ppts, S_TR_SPEED, T_TR_SPEED, + 0, 3600000, 50); + obs_properties_add_bool(ppts, S_RANDOMIZE, T_RANDOMIZE); + + if (ss) { + pthread_mutex_lock(&ss->mutex); + if (ss->files.num) { + struct image_file_data *last = da_end(ss->files); + const char *slash; + + dstr_copy(&path, last->path); + dstr_replace(&path, "\\", "/"); + slash = strrchr(path.array, '/'); + if (slash) + dstr_resize(&path, slash - path.array + 1); + } + pthread_mutex_unlock(&ss->mutex); + } + + obs_properties_add_editable_list(ppts, S_FILES, T_FILES, + OBS_EDITABLE_LIST_TYPE_FILES, file_filter, path.array); + dstr_free(&path); + + return ppts; +} + +struct obs_source_info slideshow_info = { + .id = "slideshow", + .type = OBS_SOURCE_TYPE_INPUT, + .output_flags = OBS_SOURCE_VIDEO | + OBS_SOURCE_CUSTOM_DRAW | + OBS_SOURCE_COMPOSITE, + .get_name = ss_getname, + .create = ss_create, + .destroy = ss_destroy, + .update = ss_update, + .video_render = ss_video_render, + .video_tick = ss_video_tick, + .audio_render = ss_audio_render, + .enum_active_sources = ss_enum_sources, + .get_width = ss_width, + .get_height = ss_height, + .get_defaults = ss_defaults, + .get_properties = ss_properties +}; diff --git a/plugins/linux-alsa/data/locale/cs-CZ.ini b/plugins/linux-alsa/data/locale/cs-CZ.ini index abd61a4..a9bdfcd 100644 --- a/plugins/linux-alsa/data/locale/cs-CZ.ini +++ b/plugins/linux-alsa/data/locale/cs-CZ.ini @@ -1,3 +1,3 @@ -AlsaInput="Zaznamenávací zařízení zvuku (ALSA)" +AlsaInput="Zařízení pro záznam zvuku (ALSA)" Device="Zařízení" diff --git a/plugins/linux-alsa/data/locale/he-IL.ini b/plugins/linux-alsa/data/locale/he-IL.ini new file mode 100644 index 0000000..7433b99 --- /dev/null +++ b/plugins/linux-alsa/data/locale/he-IL.ini @@ -0,0 +1,3 @@ +AlsaInput="התקן לכידת שמע (ALSA)" +Device="התקן" + diff --git a/plugins/linux-alsa/data/locale/it-IT.ini b/plugins/linux-alsa/data/locale/it-IT.ini new file mode 100644 index 0000000..15b9a46 --- /dev/null +++ b/plugins/linux-alsa/data/locale/it-IT.ini @@ -0,0 +1,3 @@ +AlsaInput="Dispositivo di acquisizione audio (ALSA)" +Device="Dispositivo" + diff --git a/plugins/linux-alsa/data/locale/nb-NO.ini b/plugins/linux-alsa/data/locale/nb-NO.ini new file mode 100644 index 0000000..7e1cfb8 --- /dev/null +++ b/plugins/linux-alsa/data/locale/nb-NO.ini @@ -0,0 +1,3 @@ +AlsaInput="Lydopptaksenhet (ALSA)" +Device="Enhet" + diff --git a/plugins/linux-alsa/data/locale/pt-PT.ini b/plugins/linux-alsa/data/locale/pt-PT.ini new file mode 100644 index 0000000..d272f9b --- /dev/null +++ b/plugins/linux-alsa/data/locale/pt-PT.ini @@ -0,0 +1,3 @@ +AlsaInput="Dispositivo de captura de áudio (ALSA)" +Device="Dispositivo" + diff --git a/plugins/linux-capture/data/locale/ar-SA.ini b/plugins/linux-capture/data/locale/ar-SA.ini index 547458e..da365c6 100644 --- a/plugins/linux-capture/data/locale/ar-SA.ini +++ b/plugins/linux-capture/data/locale/ar-SA.ini @@ -1,6 +1,6 @@ X11SharedMemoryScreenInput="التقاط الشاشة (XSHM)" Screen="الشاشة" -CaptureCursor="مؤشر الالتقاط" +CaptureCursor="التقاط المؤشر" AdvancedSettings="إعدادات متقدمة" XServer="X Server" XCCapture="التقاط النافذة (Xcomposite)" @@ -11,4 +11,5 @@ CropRight="الاقتطاع من اليمين (بكسل)" CropBottom="الاقتطاع من الأسفل (بكسل)" SwapRedBlue="مبادلة بين الأحمر و الأزرق" LockX="قفل السيرفر X عند الالتقاط" +IncludeXBorder="تضمين حواف X" diff --git a/plugins/linux-capture/data/locale/fi-FI.ini b/plugins/linux-capture/data/locale/fi-FI.ini index 129eddd..02cd436 100644 --- a/plugins/linux-capture/data/locale/fi-FI.ini +++ b/plugins/linux-capture/data/locale/fi-FI.ini @@ -3,7 +3,7 @@ Screen="Kuvaruutu" CaptureCursor="Kaappaa kursori" AdvancedSettings="Lisäasetukset" XServer="X Server" -XCCapture="Ikkunakaappaus (Xcomposite)" +XCCapture="Ikkuna (Xcomposite)" Window="Ikkuna" CropTop="Rajaa ylhäältä (pikselit)" CropLeft="Rajaa vasemmalta (pikselit)" diff --git a/plugins/linux-capture/data/locale/he-IL.ini b/plugins/linux-capture/data/locale/he-IL.ini index 3e7b532..96b1a8f 100644 --- a/plugins/linux-capture/data/locale/he-IL.ini +++ b/plugins/linux-capture/data/locale/he-IL.ini @@ -12,4 +12,5 @@ CropBottom="חיתוך תחתון (פיקסלים)" SwapRedBlue="החלף אדום וכחול" LockX="נעל שרת X בעת לכידה" IncludeXBorder="כלול קצה שרת X" +ExcludeAlpha="השתמש בתבנית מרקם ללא אלפא (עקיפת בעיית Mesa)" diff --git a/plugins/linux-capture/data/locale/it-IT.ini b/plugins/linux-capture/data/locale/it-IT.ini index 2e5aba6..a2f3307 100644 --- a/plugins/linux-capture/data/locale/it-IT.ini +++ b/plugins/linux-capture/data/locale/it-IT.ini @@ -12,4 +12,5 @@ CropBottom="Crop Inferiore (pixels)" SwapRedBlue="Inverti rosso e blu" LockX="Blocca l' X Server durante l'acquisizione" IncludeXBorder="Includi X bordi" +ExcludeAlpha="Usa formato texture alfa-less (soluzione di Mesa)" diff --git a/plugins/linux-capture/data/locale/nb-NO.ini b/plugins/linux-capture/data/locale/nb-NO.ini index 211df01..b320b0e 100644 --- a/plugins/linux-capture/data/locale/nb-NO.ini +++ b/plugins/linux-capture/data/locale/nb-NO.ini @@ -10,6 +10,7 @@ CropLeft="Beskjær venstre (piksler)" CropRight="Beskjær høyre (piksler)" CropBottom="Beskjær bunnen (piksler)" SwapRedBlue="Bytt rød og blå" -LockX="Lås X-server under opptak" +LockX="Lås X-tjener under opptak" IncludeXBorder="Inkludér X11-rammen" +ExcludeAlpha="Bruk teksturformat uten alfakanal (Mesa løsning)" diff --git a/plugins/linux-capture/data/locale/pt-PT.ini b/plugins/linux-capture/data/locale/pt-PT.ini index 7ed2b91..4eaec6d 100644 --- a/plugins/linux-capture/data/locale/pt-PT.ini +++ b/plugins/linux-capture/data/locale/pt-PT.ini @@ -12,4 +12,5 @@ CropBottom="Cortar em baixo (píxeis)" SwapRedBlue="Trocar vermelho e azul" LockX="Bloquear X Server durante a captura" IncludeXBorder="Incluir X Border" +ExcludeAlpha="Uso da textura Formato de alfa-menos (solução de Mesa)" diff --git a/plugins/linux-capture/data/locale/zh-TW.ini b/plugins/linux-capture/data/locale/zh-TW.ini index a2af34e..7d02276 100644 --- a/plugins/linux-capture/data/locale/zh-TW.ini +++ b/plugins/linux-capture/data/locale/zh-TW.ini @@ -12,4 +12,5 @@ CropBottom="剪裁底部(px)" SwapRedBlue="交換紅藍顏色" LockX="截取時鎖定 X server" IncludeXBorder="包含X邊框" +ExcludeAlpha="使用不帶有alpha值的材質格式 (Mesa暫時解決方案)" diff --git a/plugins/linux-capture/xcompcap-helper.cpp b/plugins/linux-capture/xcompcap-helper.cpp index 5922a48..cf4f0f6 100644 --- a/plugins/linux-capture/xcompcap-helper.cpp +++ b/plugins/linux-capture/xcompcap-helper.cpp @@ -7,6 +7,7 @@ #include #include +#include #include "xcompcap-helper.hpp" @@ -171,9 +172,9 @@ namespace XCompcap return XScreenNumberOfScreen(attr.screen); } - std::string getWindowName(Window win) + std::string getWindowAtom(Window win, const char *atom) { - Atom netWmName = XInternAtom(disp(), "_NET_WM_NAME", false); + Atom netWmName = XInternAtom(disp(), atom, false); int n; char **list = 0; XTextProperty tp; @@ -199,6 +200,11 @@ namespace XCompcap } } + char *conv = nullptr; + if (os_mbs_to_utf8_ptr(res.c_str(), 0, &conv)) + res = conv; + bfree(conv); + XFree(tp.value); return res; @@ -409,6 +415,39 @@ void XErrorLock::resetError() curErrorText[0] = 0; } +XDisplayLock::XDisplayLock() +{ + islock = false; + lock(); +} + +XDisplayLock::~XDisplayLock() +{ + unlock(); +} + +bool XDisplayLock::isLocked() +{ + return islock; +} + +void XDisplayLock::lock() +{ + if (!islock) { + XLockDisplay(XCompcap::disp()); + islock = true; + } +} + +void XDisplayLock::unlock() +{ + if (islock) { + XSync(XCompcap::disp(), 0); + XUnlockDisplay(XCompcap::disp()); + islock = false; + } +} + ObsGsContextHolder::ObsGsContextHolder() { diff --git a/plugins/linux-capture/xcompcap-helper.hpp b/plugins/linux-capture/xcompcap-helper.hpp index ceb992e..838d84f 100644 --- a/plugins/linux-capture/xcompcap-helper.hpp +++ b/plugins/linux-capture/xcompcap-helper.hpp @@ -48,6 +48,23 @@ class XErrorLock void resetError(); }; +class XDisplayLock +{ + bool islock; + + public: + XDisplayLock(const XDisplayLock&) = delete; + XDisplayLock& operator=(const XDisplayLock&) = delete; + + XDisplayLock(); + ~XDisplayLock(); + + bool isLocked(); + + void unlock(); + void lock(); +}; + class ObsGsContextHolder { public: @@ -65,12 +82,22 @@ namespace XCompcap std::string getWindowCommand(Window win); int getRootWindowScreen(Window root); - std::string getWindowName(Window win); + std::string getWindowAtom(Window win, const char *atom); int getWindowPid(Window win); bool ewmhIsSupported(); std::list getTopLevelWindows(); std::list getAllWindows(); + inline std::string getWindowName(Window win) + { + return getWindowAtom(win, "_NET_WM_NAME"); + } + + inline std::string getWindowClass(Window win) + { + return getWindowAtom(win, "WM_CLASS"); + } + void processEvents(); bool windowWasReconfigured(Window win); } diff --git a/plugins/linux-capture/xcompcap-main.cpp b/plugins/linux-capture/xcompcap-main.cpp index f9cf00c..7a09ecb 100644 --- a/plugins/linux-capture/xcompcap-main.cpp +++ b/plugins/linux-capture/xcompcap-main.cpp @@ -57,11 +57,11 @@ obs_properties_t *XCompcapMain::properties() for (Window win: XCompcap::getTopLevelWindows()) { std::string wname = XCompcap::getWindowName(win); - std::string progpath = XCompcap::getWindowCommand(win); + std::string cls = XCompcap::getWindowClass(win); std::string winid = std::to_string((long long)win); std::string desc = (winid + WIN_STRING_DIV + wname + - WIN_STRING_DIV + progpath); + WIN_STRING_DIV + cls); obs_property_list_add_string(wins, wname.c_str(), desc.c_str()); @@ -106,6 +106,7 @@ void XCompcapMain::defaults(obs_data_t *settings) obs_data_set_default_bool(settings, "exclude_alpha", false); } +#define FIND_WINDOW_INTERVAL 2.0 struct XCompcapMain_private { @@ -137,7 +138,7 @@ struct XCompcapMain_private obs_source_t *source; std::string windowName; - Window win; + Window win = 0; int cut_top, cur_cut_top; int cut_left, cur_cut_left; int cut_right, cur_cut_right; @@ -148,6 +149,8 @@ struct XCompcapMain_private bool include_border; bool exclude_alpha; + double window_check_time = 0.0; + uint32_t width; uint32_t height; uint32_t border; @@ -201,6 +204,8 @@ XCompcapMain::~XCompcapMain() static Window getWindowFromString(std::string wstr) { + XErrorLock xlock; + if (wstr == "") { return XCompcap::getTopLevelWindows().front(); } @@ -211,26 +216,29 @@ static Window getWindowFromString(std::string wstr) } size_t firstMark = wstr.find(WIN_STRING_DIV); + size_t markSize = strlen(WIN_STRING_DIV); if (firstMark == std::string::npos) return (Window)std::stol(wstr); - std::string widstr = wstr.substr(0, firstMark); - Window wid = (Window)std::stol(widstr); + Window wid = 0; - wstr = wstr.substr(firstMark + strlen(WIN_STRING_DIV)); + wstr = wstr.substr(firstMark + markSize); size_t lastMark = wstr.rfind(WIN_STRING_DIV); std::string wname = wstr.substr(0, lastMark); + std::string wcls = wstr.substr(lastMark + markSize); Window matchedNameWin = wid; for (Window cwin: XCompcap::getTopLevelWindows()) { std::string cwinname = XCompcap::getWindowName(cwin); + std::string ccls = XCompcap::getWindowClass(cwin); - if (cwin == wid && wname == cwinname) + if (cwin == wid && wname == cwinname && wcls == ccls) return wid; - if (wname == cwinname) + if (wname == cwinname || + (!matchedNameWin && !wcls.empty() && wcls == ccls)) matchedNameWin = cwin; } @@ -240,7 +248,7 @@ static Window getWindowFromString(std::string wstr) static void xcc_cleanup(XCompcapMain_private *p) { PLock lock(&p->lock); - XErrorLock xlock; + XDisplayLock xlock; if (p->gltex) { gs_texture_destroy(p->gltex); @@ -299,7 +307,9 @@ void XCompcapMain::updateSettings(obs_data_t *settings) xlock.resetError(); - XCompositeRedirectWindow(xdisp, p->win, CompositeRedirectAutomatic); + if (p->win) + XCompositeRedirectWindow(xdisp, p->win, + CompositeRedirectAutomatic); if (xlock.gotError()) { blog(LOG_ERROR, "XCompositeRedirectWindow failed: %s", @@ -307,18 +317,19 @@ void XCompcapMain::updateSettings(obs_data_t *settings) return; } - XSelectInput(xdisp, p->win, StructureNotifyMask | ExposureMask); + if (p->win) + XSelectInput(xdisp, p->win, StructureNotifyMask | ExposureMask); XSync(xdisp, 0); XWindowAttributes attr; - if (!XGetWindowAttributes(xdisp, p->win, &attr)) { + if (!p->win || !XGetWindowAttributes(xdisp, p->win, &attr)) { p->win = 0; p->width = 0; p->height = 0; return; } - if (p->cursor && p->show_cursor) { + if (p->win && p->cursor && p->show_cursor) { Window child; int x, y; @@ -451,8 +462,6 @@ void XCompcapMain::updateSettings(obs_data_t *settings) void XCompcapMain::tick(float seconds) { - UNUSED_PARAMETER(seconds); - if (!obs_source_showing(p->source)) return; @@ -463,21 +472,30 @@ void XCompcapMain::tick(float seconds) XCompcap::processEvents(); - if (XCompcap::windowWasReconfigured(p->win)) - updateSettings(0); + if (p->win && XCompcap::windowWasReconfigured(p->win)) { + p->window_check_time = FIND_WINDOW_INTERVAL; + p->win = 0; + } - XErrorLock xlock; - xlock.resetError(); + XDisplayLock xlock; XWindowAttributes attr; - if (!XGetWindowAttributes(xdisp, p->win, &attr)) { + if (!p->win || !XGetWindowAttributes(xdisp, p->win, &attr)) { + p->window_check_time += (double)seconds; + + if (p->window_check_time < FIND_WINDOW_INTERVAL) + return; + Window newWin = getWindowFromString(p->windowName); - if (XGetWindowAttributes(xdisp, newWin, &attr)) { + p->window_check_time = 0.0; + + if (newWin && XGetWindowAttributes(xdisp, newWin, &attr)) { p->win = newWin; updateSettings(0); + } else { + return; } - return; } if (!p->tex || !p->gltex) @@ -524,11 +542,11 @@ void XCompcapMain::tick(float seconds) void XCompcapMain::render(gs_effect_t *effect) { - PLock lock(&p->lock, true); - if (!p->win) return; + PLock lock(&p->lock, true); + effect = obs_get_base_effect(OBS_EFFECT_OPAQUE); if (!lock.isLocked() || !p->tex) @@ -552,10 +570,16 @@ void XCompcapMain::render(gs_effect_t *effect) uint32_t XCompcapMain::width() { + if (!p->win) + return 0; + return p->width - p->cur_cut_left - p->cur_cut_right; } uint32_t XCompcapMain::height() { + if (!p->win) + return 0; + return p->height - p->cur_cut_bot - p->cur_cut_top; } diff --git a/plugins/linux-capture/xcomposite-main.cpp b/plugins/linux-capture/xcomposite-main.cpp index f27132b..c553fb2 100644 --- a/plugins/linux-capture/xcomposite-main.cpp +++ b/plugins/linux-capture/xcomposite-main.cpp @@ -70,7 +70,8 @@ extern "C" void xcomposite_load(void) sinfo.id = "xcomposite_input"; sinfo.output_flags = OBS_SOURCE_VIDEO | - OBS_SOURCE_CUSTOM_DRAW; + OBS_SOURCE_CUSTOM_DRAW | + OBS_SOURCE_DO_NOT_DUPLICATE; sinfo.get_name = xcompcap_getname; sinfo.create = xcompcap_create; diff --git a/plugins/linux-jack/data/locale/nb-NO.ini b/plugins/linux-jack/data/locale/nb-NO.ini index 432dfef..f5e6f1d 100644 --- a/plugins/linux-jack/data/locale/nb-NO.ini +++ b/plugins/linux-jack/data/locale/nb-NO.ini @@ -1,4 +1,4 @@ StartJACKServer="Start JACK server" Channels="Antall kanaler" -JACKInput="JACK innputtklient" +JACKInput="JACK inngangsklient" diff --git a/plugins/linux-pulseaudio/data/locale/cs-CZ.ini b/plugins/linux-pulseaudio/data/locale/cs-CZ.ini index c5e4498..c42899a 100644 --- a/plugins/linux-pulseaudio/data/locale/cs-CZ.ini +++ b/plugins/linux-pulseaudio/data/locale/cs-CZ.ini @@ -1,4 +1,4 @@ -PulseInput="Záznam vstupu zvuku (PulseAudio)" -PulseOutput="Záznam výstupu zvuku (PulseAudio)" +PulseInput="Záznam zvukového vstupu (PulseAudio)" +PulseOutput="Záznam zvukového výstupu (PulseAudio)" Device="Zařízení" diff --git a/plugins/linux-pulseaudio/data/locale/fi-FI.ini b/plugins/linux-pulseaudio/data/locale/fi-FI.ini index a14b7e6..cee9618 100644 --- a/plugins/linux-pulseaudio/data/locale/fi-FI.ini +++ b/plugins/linux-pulseaudio/data/locale/fi-FI.ini @@ -1,4 +1,4 @@ -PulseInput="Äänen sisääntulo (PulseAudio)" -PulseOutput="Äänen ulostulo (PulseAudio)" +PulseInput="Äänitulo (PulseAudio)" +PulseOutput="Äänilähtö (PulseAudio)" Device="Laite" diff --git a/plugins/linux-pulseaudio/pulse-wrapper.c b/plugins/linux-pulseaudio/pulse-wrapper.c index 6af459a..bbda717 100644 --- a/plugins/linux-pulseaudio/pulse-wrapper.c +++ b/plugins/linux-pulseaudio/pulse-wrapper.c @@ -172,6 +172,10 @@ int_fast32_t pulse_get_source_info_list(pa_source_info_cb_t cb, void* userdata) pa_operation *op = pa_context_get_source_info_list( pulse_context, cb, userdata); + if (!op) { + pulse_unlock(); + return -1; + } while (pa_operation_get_state(op) == PA_OPERATION_RUNNING) pulse_wait(); pa_operation_unref(op); @@ -191,6 +195,10 @@ int_fast32_t pulse_get_source_info(pa_source_info_cb_t cb, const char *name, pa_operation *op = pa_context_get_source_info_by_name( pulse_context, name, cb, userdata); + if (!op) { + pulse_unlock(); + return -1; + } while (pa_operation_get_state(op) == PA_OPERATION_RUNNING) pulse_wait(); pa_operation_unref(op); @@ -209,6 +217,10 @@ int_fast32_t pulse_get_server_info(pa_server_info_cb_t cb, void* userdata) pa_operation *op = pa_context_get_server_info( pulse_context, cb, userdata); + if (!op) { + pulse_unlock(); + return -1; + } while (pa_operation_get_state(op) == PA_OPERATION_RUNNING) pulse_wait(); pa_operation_unref(op); diff --git a/plugins/linux-v4l2/data/locale/ar-SA.ini b/plugins/linux-v4l2/data/locale/ar-SA.ini index 7e269d8..988037c 100644 --- a/plugins/linux-v4l2/data/locale/ar-SA.ini +++ b/plugins/linux-v4l2/data/locale/ar-SA.ini @@ -1,5 +1,8 @@ V4L2Input="جهاز التقاط الفيديو (V4L2)" Device="الجهاز" +VideoFormat="تنسيق الفيديو" +VideoStandard="معيار الفيديو" +DVTiming="توقيت DV" Resolution="الأبعاد" FrameRate="الإطار" diff --git a/plugins/linux-v4l2/data/locale/zh-TW.ini b/plugins/linux-v4l2/data/locale/zh-TW.ini index 9f66f22..66a8387 100644 --- a/plugins/linux-v4l2/data/locale/zh-TW.ini +++ b/plugins/linux-v4l2/data/locale/zh-TW.ini @@ -3,6 +3,7 @@ Device="裝置" Input="輸入" VideoFormat="影像格式" VideoStandard="影像標準" +DVTiming="數位視頻時序值" Resolution="解析度" FrameRate="影格率" LeaveUnchanged="不改變並離開" diff --git a/plugins/mac-avcapture/data/locale/cs-CZ.ini b/plugins/mac-avcapture/data/locale/cs-CZ.ini index ad03e4f..df3a5b2 100644 --- a/plugins/mac-avcapture/data/locale/cs-CZ.ini +++ b/plugins/mac-avcapture/data/locale/cs-CZ.ini @@ -1,4 +1,4 @@ -AVCapture="Zaznamenávací zařízení obrazu" +AVCapture="Zařízení pro záznam obrazu" Device="Zařízení" UsePreset="Použít předvolbu" Preset="Předvolba" diff --git a/plugins/mac-avcapture/data/locale/it-IT.ini b/plugins/mac-avcapture/data/locale/it-IT.ini index 1aab549..42d5dc7 100644 --- a/plugins/mac-avcapture/data/locale/it-IT.ini +++ b/plugins/mac-avcapture/data/locale/it-IT.ini @@ -3,4 +3,12 @@ Device="Dispositivo" UsePreset="Usa il pre impostato" Preset="Preimpostato" Buffering="Usa Buffer" +FrameRate="Frame rate" +InputFormat="Formato di input" +ColorSpace="Spazio colore" +VideoRange="Gamma video" +VideoRange.Partial="Parziale" +VideoRange.Full="Intero" +Auto="Autom." +Unknown="Sconosciuto ($1)" diff --git a/plugins/mac-avcapture/data/locale/nb-NO.ini b/plugins/mac-avcapture/data/locale/nb-NO.ini index 0b0b60c..897f4f0 100644 --- a/plugins/mac-avcapture/data/locale/nb-NO.ini +++ b/plugins/mac-avcapture/data/locale/nb-NO.ini @@ -3,4 +3,12 @@ Device="Enhet" UsePreset="Bruk forhåndsinnstilling" Preset="Forhåndsinnstilling" Buffering="Bruk bufring" +FrameRate="Bildefrekvens" +InputFormat="Inngangsformat" +ColorSpace="Fargeområde" +VideoRange="Videoområde" +VideoRange.Partial="Delvis" +VideoRange.Full="Hel" +Auto="Automatisk" +Unknown="Ukjent (%1)" diff --git a/plugins/mac-avcapture/data/locale/pt-PT.ini b/plugins/mac-avcapture/data/locale/pt-PT.ini index 6c9b2c9..262f16a 100644 --- a/plugins/mac-avcapture/data/locale/pt-PT.ini +++ b/plugins/mac-avcapture/data/locale/pt-PT.ini @@ -3,4 +3,11 @@ Device="Dispositivo" UsePreset="Utilizar predefinição" Preset="Predefinição" Buffering="Utilizar Buffering" +FrameRate="Taxa de frames (frame rate)" +InputFormat="Formato de entrada" +ColorSpace="Espaço de cor" +VideoRange.Partial="Parcial" +VideoRange.Full="Completo" +Auto="Auto" +Unknown="Desconhecido (%1)" diff --git a/plugins/mac-avcapture/data/locale/zh-TW.ini b/plugins/mac-avcapture/data/locale/zh-TW.ini index fe3127c..f51e675 100644 --- a/plugins/mac-avcapture/data/locale/zh-TW.ini +++ b/plugins/mac-avcapture/data/locale/zh-TW.ini @@ -1,4 +1,14 @@ +AVCapture="視訊擷取裝置" Device="裝置" UsePreset="使用預設值" Preset="預設值" +Buffering="使用緩衝" +FrameRate="畫面播放速率" +InputFormat="輸入格式" +ColorSpace="色彩空間" +VideoRange="色彩範圍" +VideoRange.Partial="部分" +VideoRange.Full="全部" +Auto="自動" +Unknown="未知 (%1)" diff --git a/plugins/mac-capture/data/locale/fi-FI.ini b/plugins/mac-capture/data/locale/fi-FI.ini index b0db996..29cffdf 100644 --- a/plugins/mac-capture/data/locale/fi-FI.ini +++ b/plugins/mac-capture/data/locale/fi-FI.ini @@ -1,11 +1,11 @@ -CoreAudio.InputCapture="Äänen sisääntulon kaappaus" -CoreAudio.OutputCapture="Äänen ulostulon kaappaus" +CoreAudio.InputCapture="Äänitulo" +CoreAudio.OutputCapture="Äänilähtö" CoreAudio.Device="Laite" CoreAudio.Device.Default="Oletusarvo" -DisplayCapture="Ruudunkaappaus" +DisplayCapture="Monitori" DisplayCapture.Display="Näyttö" DisplayCapture.ShowCursor="Näytä kursori" -WindowCapture="Ikkunakaappaus" +WindowCapture="Ikkuna" WindowCapture.ShowShadow="Näytä ikkunan varjo" WindowUtils.Window="Ikkuna" WindowUtils.ShowEmptyNames="Näytä ikkunat joilla on tyhjä nimi" diff --git a/plugins/mac-capture/data/locale/nl-NL.ini b/plugins/mac-capture/data/locale/nl-NL.ini index 56210fd..2c540af 100644 --- a/plugins/mac-capture/data/locale/nl-NL.ini +++ b/plugins/mac-capture/data/locale/nl-NL.ini @@ -1,8 +1,8 @@ -CoreAudio.InputCapture="Audioinvoer Opname" -CoreAudio.OutputCapture="Audiouitvoer Opname" +CoreAudio.InputCapture="Audioinvoer Capture" +CoreAudio.OutputCapture="Audiouitvoer Capture" CoreAudio.Device="Apparaat" CoreAudio.Device.Default="Standaardinstellingen" -DisplayCapture="Beeldschermopname" +DisplayCapture="Beeldschermcapture" DisplayCapture.Display="Beeldscherm" DisplayCapture.ShowCursor="Cursor Weergeven" WindowCapture="Venstercapture" diff --git a/plugins/mac-capture/data/locale/zh-TW.ini b/plugins/mac-capture/data/locale/zh-TW.ini index 3eb14e9..a09f63c 100644 --- a/plugins/mac-capture/data/locale/zh-TW.ini +++ b/plugins/mac-capture/data/locale/zh-TW.ini @@ -1,8 +1,8 @@ -CoreAudio.InputCapture="截取音效輸入" -CoreAudio.OutputCapture="截取音效輸出" +CoreAudio.InputCapture="擷取音效輸入" +CoreAudio.OutputCapture="擷取音效輸出" CoreAudio.Device="裝置" CoreAudio.Device.Default="預設" -DisplayCapture="截取螢幕輸出" +DisplayCapture="擷取螢幕輸出" DisplayCapture.Display="螢幕" DisplayCapture.ShowCursor="顯示游標" WindowCapture="視窗擷取" @@ -12,6 +12,8 @@ WindowUtils.ShowEmptyNames="顯示無標題視窗" CropMode="裁剪" CropMode.None="無" CropMode.Manual="手動" +CropMode.ToWindow="到視窗" +CropMode.ToWindowAndManual="到視窗並手動" Crop.origin.x="左邊界" Crop.origin.y="上邊界" Crop.size.width="右邊界" diff --git a/plugins/mac-syphon/data/locale/zh-TW.ini b/plugins/mac-syphon/data/locale/zh-TW.ini new file mode 100644 index 0000000..34028b2 --- /dev/null +++ b/plugins/mac-syphon/data/locale/zh-TW.ini @@ -0,0 +1,13 @@ +Syphon="遊戲擷取 (Syphon)" +Source="來源" +LaunchSyphonInject="啟動 SyphonInject" +Inject="注入" +Application="應用程式" +SyphonLicense="Syphon 授權" +Crop="剪裁" +Crop.origin.x="左邊界" +Crop.origin.y="上邊界" +Crop.size.width="右邊界" +Crop.size.height="下邊界" +AllowTransparency="允許透明" + diff --git a/plugins/mac-vth264/data/locale/fi-FI.ini b/plugins/mac-vth264/data/locale/fi-FI.ini index 79c42d0..da41201 100644 --- a/plugins/mac-vth264/data/locale/fi-FI.ini +++ b/plugins/mac-vth264/data/locale/fi-FI.ini @@ -1,11 +1,11 @@ -VTH264EncHW="Apple VT H264 Hardware Encoder" -VTH264EncSW="Apple VT H264 Software Encoder" -VTEncoder="VideoToolbox Encoder" +VTH264EncHW="Apple VT H264 Laitteistopohjainen enkooderi" +VTH264EncSW="Apple VT H264 Ohjelmistopohjainen enkooderi" +VTEncoder="VideoToolbox Enkooderi" Bitrate="Bitrate" UseMaxBitrate="Rajoita bitratea" -MaxBitrate="Bitrate-maksimi" -MaxBitrateWindow="Bitrate-maksimin ikkuna (sekuntia)" -KeyframeIntervalSec="Keyframe-väli (sec, 0=auto)" +MaxBitrate="Maksimi bitrate" +MaxBitrateWindow="Maksimi bitraten ikkuna (sekunteina)" +KeyframeIntervalSec="Keyframe-väli (sekunteina, 0=automaattinen)" Profile="Profiili" None="(Ei mitään)" DefaultEncoder="(Oletusenkooderi)" diff --git a/plugins/mac-vth264/data/locale/pt-PT.ini b/plugins/mac-vth264/data/locale/pt-PT.ini new file mode 100644 index 0000000..a8fb8a9 --- /dev/null +++ b/plugins/mac-vth264/data/locale/pt-PT.ini @@ -0,0 +1,14 @@ +VTH264EncHW="Codificador de Hardware Apple VT H264" +VTH264EncSW="Codificador de Apple VT H264 Software" +VTEncoder="VideoToolbox Codificador" +Bitrate="Taxa de bits" +UseMaxBitrate="Limite taxa de bits" +MaxBitrate="Taxa de bits máxima" +MaxBitrateWindow="Máxima janela taxa de bits (segundos)" +KeyframeIntervalSec="Intervalo do keyframe (segundos, 0=automático)" +Profile="Perfil" +None="(Nenhum)" +DefaultEncoder="(Codificador padrão)" +UseBFrames="Usar B-Frames" + + diff --git a/plugins/mac-vth264/data/locale/zh-TW.ini b/plugins/mac-vth264/data/locale/zh-TW.ini new file mode 100644 index 0000000..a9984cd --- /dev/null +++ b/plugins/mac-vth264/data/locale/zh-TW.ini @@ -0,0 +1,14 @@ +VTH264EncHW="蘋果 VT H264 硬體編碼器" +VTH264EncSW="蘋果 VT H264 軟體編碼器" +VTEncoder="VideoToolbox 編碼器" +Bitrate="位元率" +UseMaxBitrate="限制位元率" +MaxBitrate="最大位元率" +MaxBitrateWindow="最大位元率窗 (秒)" +KeyframeIntervalSec="關鍵訊框間隔 (秒,0 = 自動)" +Profile="設定檔" +None="(無)" +DefaultEncoder="(預設編碼器)" +UseBFrames="使用 B 訊框" + + diff --git a/plugins/obs-ffmpeg/data/locale/fi-FI.ini b/plugins/obs-ffmpeg/data/locale/fi-FI.ini index 2ea579c..53cfea4 100644 --- a/plugins/obs-ffmpeg/data/locale/fi-FI.ini +++ b/plugins/obs-ffmpeg/data/locale/fi-FI.ini @@ -2,11 +2,11 @@ FFmpegOutput="FFmpeg ulostulo" FFmpegAAC="FFmpeg oletus AAC-enkooderi" Bitrate="Bitrate" Preset="Esiasetus" -RateControl="Nopeudensäädin" -KeyframeIntervalSec="Keyframe-väli (sec, 0=auto)" +RateControl="Rate Control -tila" +KeyframeIntervalSec="Keyframe-väli (sekunteina, 0=automaattinen)" Lossless="Häviötön" -NVENC.Use2Pass="Käytä kaksivaiheista enkoodausta" +NVENC.Use2Pass="Käytä Two-Pass enkoodausta" NVENC.Preset.default="Oletusarvo" NVENC.Preset.hq="Korkea laatu" NVENC.Preset.hp="Korkea suorituskyky" @@ -22,7 +22,7 @@ Looping="Toista jatkuvasti" Input="Sisääntulo" InputFormat="Sisääntulon muoto" ForceFormat="Pakota muodon muuntaminen" -HardwareDecode="Käytä laitteistoa purkamiseen, kun mahdollista" +HardwareDecode="Käytä laitteistotason purkua, kun mahdollista" ClearOnMediaEnd="Piilota lähde kun toisto päättyy" Advanced="Lisäasetukset" AudioBufferSize="Äänipuskurin koko (ruutua)" diff --git a/plugins/obs-ffmpeg/data/locale/he-IL.ini b/plugins/obs-ffmpeg/data/locale/he-IL.ini index 5523c3c..e5ed371 100644 --- a/plugins/obs-ffmpeg/data/locale/he-IL.ini +++ b/plugins/obs-ffmpeg/data/locale/he-IL.ini @@ -1,7 +1,20 @@ FFmpegOutput="פלט FFmpeg" FFmpegAAC="FFmpeg מקודד AAC ברירת מחדל" Bitrate="קצב ביטים" +Preset="קבוע מראש" +RateControl="בקרת קצב" +KeyframeIntervalSec="מרווח ערך ה keyframe בשניות (0=אוטומטי)" +Lossless="ללא אובדן נתונים" +NVENC.Use2Pass="השתמש בקידוד שני מעברים" +NVENC.Preset.default="ברירת מחדל" +NVENC.Preset.hq="איכות גבוהה" +NVENC.Preset.hp="ביצועים גבוהים" +NVENC.Preset.bd="בלוריי" +NVENC.Preset.ll="השהיה נמוכה" +NVENC.Preset.llhq="השהיה נמוכה איכות גבוהה" +NVENC.Preset.llhp="השהיה נמוכה ביצועים גבוהים" +NVENC.Level="רמה" FFmpegSource="מקור מדיה" LocalFile="קובץ מקומי" @@ -23,6 +36,10 @@ DiscardNonIntra="פריימים לא ביינים" DiscardNonKey="מסגרות שאינן מפתח" DiscardAll="כל הפריימים (זהירות!)" RestartWhenActivated="הפעל מחדש השמעה כאשר מקור הופך לפעיל" +ColorRange="טווח צבעים YUV" +ColorRange.Auto="אוטומטי" +ColorRange.Partial="חלקי" +ColorRange.Full="מלא" MediaFileFilter.AllMediaFiles="כל קבצי המדיה" diff --git a/plugins/obs-ffmpeg/data/locale/hr-HR.ini b/plugins/obs-ffmpeg/data/locale/hr-HR.ini index 4a8a315..a5a2b9c 100644 --- a/plugins/obs-ffmpeg/data/locale/hr-HR.ini +++ b/plugins/obs-ffmpeg/data/locale/hr-HR.ini @@ -2,7 +2,9 @@ FFmpegOutput="FFmpeg izlaz" FFmpegAAC="FFmpeg podrazumevani AAC enkoder" Bitrate="Protok" Preset="Šablon" +RateControl="Kontrola protoka" KeyframeIntervalSec="Interval ključnih frejmova (sekunde, 0=automatski)" +Lossless="Bez gubitka" NVENC.Use2Pass="Koristi enkoding duplog prolaza" NVENC.Preset.default="Podrazumevani" diff --git a/plugins/obs-ffmpeg/data/locale/it-IT.ini b/plugins/obs-ffmpeg/data/locale/it-IT.ini index 53864f9..2f7d252 100644 --- a/plugins/obs-ffmpeg/data/locale/it-IT.ini +++ b/plugins/obs-ffmpeg/data/locale/it-IT.ini @@ -1,7 +1,20 @@ FFmpegOutput="Uscita FFmpeg" FFmpegAAC="Codificatore FFmpeg predefinito AAC" Bitrate="Bitrate" +Preset="Preset" +RateControl="Controllo frequenza" +KeyframeIntervalSec="Intervallo Keyframe (secondi, 0=automatico)" +Lossless="Lossless" +NVENC.Use2Pass="Usa codifica in due passaggi" +NVENC.Preset.default="Predefinito" +NVENC.Preset.hq="Alta Qualità" +NVENC.Preset.hp="Alte Prestazioni" +NVENC.Preset.bd="Bluray" +NVENC.Preset.ll="Bassa latenza" +NVENC.Preset.llhq="Bassa latenza Alta Qualità" +NVENC.Preset.llhp="Bassa latenza ad Alte Prestazioni" +NVENC.Level="Livello" FFmpegSource="Origine multimediale" LocalFile="File locale" @@ -23,6 +36,14 @@ DiscardNonIntra="Frame non interposti" DiscardNonKey="Frame non di chiave" DiscardAll="Tutti i Frame (opzione per utenti più esperti)" RestartWhenActivated="Riattiva playback quando la fonte torna attiva" +ColorRange="Gamma di colore YUV" +ColorRange.Auto="Autom." +ColorRange.Partial="Parziale" +ColorRange.Full="Intero" +MediaFileFilter.AllMediaFiles="Tutti i file media" +MediaFileFilter.VideoFiles="File video" +MediaFileFilter.AudioFiles="File audio" +MediaFileFilter.AllFiles="Tutti i file" diff --git a/plugins/obs-ffmpeg/data/locale/nb-NO.ini b/plugins/obs-ffmpeg/data/locale/nb-NO.ini index 965826f..05c8d46 100644 --- a/plugins/obs-ffmpeg/data/locale/nb-NO.ini +++ b/plugins/obs-ffmpeg/data/locale/nb-NO.ini @@ -1,13 +1,26 @@ FFmpegOutput="FFmpeg utdata" FFmpegAAC="Standard FFmpeg AAC-koder" Bitrate="Bitrate" +Preset="Forhåndsinnstilling" +RateControl="Hastighetskontroll" +KeyframeIntervalSec="Nøkkelbildeintervall (sekunder, 0 = automatisk)" +Lossless="Tapsfri" +NVENC.Use2Pass="Bruk tostegskoding" +NVENC.Preset.default="Standard" +NVENC.Preset.hq="Høy kvalitet" +NVENC.Preset.hp="Høy ytelse" +NVENC.Preset.bd="Bluray" +NVENC.Preset.ll="Lav latens" +NVENC.Preset.llhq="Lav latens, høy kvalitet" +NVENC.Preset.llhp="Lav latens, høy ytelse" +NVENC.Level="Nivå" FFmpegSource="Mediekilde" LocalFile="Lokal fil" Looping="Repeter" -Input="Inndata" -InputFormat="Inndataformat" +Input="Inngang" +InputFormat="Inngangsformat" ForceFormat="Tving formatkonvertering" HardwareDecode="Bruk maskinvaredekoding når tilgjengelig" ClearOnMediaEnd="Skjul kilde når avspilling ender" @@ -22,6 +35,15 @@ DiscardBiDir="Toveisbilder" DiscardNonIntra="Non-intra bilder" DiscardNonKey="Ikkenøkkelbilder" DiscardAll="Alle bilder (forsiktig!)" +RestartWhenActivated="Start avspilling omigjen når kilde blir aktiv" +ColorRange="YUV fargerom" +ColorRange.Auto="Automatisk" +ColorRange.Partial="Delvis" +ColorRange.Full="Hel" +MediaFileFilter.AllMediaFiles="Alle mediefiler" +MediaFileFilter.VideoFiles="Videofiler" +MediaFileFilter.AudioFiles="Lydfiler" +MediaFileFilter.AllFiles="Alle filer" diff --git a/plugins/obs-ffmpeg/data/locale/pl-PL.ini b/plugins/obs-ffmpeg/data/locale/pl-PL.ini index 7b0381f..01f1f76 100644 --- a/plugins/obs-ffmpeg/data/locale/pl-PL.ini +++ b/plugins/obs-ffmpeg/data/locale/pl-PL.ini @@ -2,7 +2,9 @@ FFmpegOutput="Wyjście FFmpeg" FFmpegAAC="Domyślny enkoder AAC w FFmpeg" Bitrate="Przepływność bitowa" Preset="Profil ustawień" +RateControl="Typ przepływności" KeyframeIntervalSec="Odstęp między klatkami kluczowymi (sekundy, 0=automatyczny)" +Lossless="Bezstratny" NVENC.Use2Pass="Użyj enkodowania dwuprzebiegowego" NVENC.Preset.default="Domyślny" diff --git a/plugins/obs-ffmpeg/data/locale/pt-BR.ini b/plugins/obs-ffmpeg/data/locale/pt-BR.ini index f6f8c5c..b869ea9 100644 --- a/plugins/obs-ffmpeg/data/locale/pt-BR.ini +++ b/plugins/obs-ffmpeg/data/locale/pt-BR.ini @@ -1,7 +1,19 @@ FFmpegOutput="Saída do FFmpeg" FFmpegAAC="Codificador AAC Padrão do FFmpeg" Bitrate="Taxa de Bits" +Preset="Predefinição" +RateControl="Controle de Taxa" +KeyframeIntervalSec="Intervalo do keyframe (segundos, 0=automático)" +Lossless="Sem perdas" +NVENC.Preset.default="Predefinido" +NVENC.Preset.hq="Alta Qualidade" +NVENC.Preset.hp="Alto Desempenho" +NVENC.Preset.bd="Bluray" +NVENC.Preset.ll="Baixa latência" +NVENC.Preset.llhq="Baixa latência Alta Qualidade" +NVENC.Preset.llhp="Baixa latência Alto Desempenho" +NVENC.Level="Nível" FFmpegSource="Fonte de mídia" LocalFile="Arquivo Local" diff --git a/plugins/obs-ffmpeg/data/locale/pt-PT.ini b/plugins/obs-ffmpeg/data/locale/pt-PT.ini index 30f5001..826d9ce 100644 --- a/plugins/obs-ffmpeg/data/locale/pt-PT.ini +++ b/plugins/obs-ffmpeg/data/locale/pt-PT.ini @@ -1,7 +1,19 @@ FFmpegOutput="Saída de FFmpeg" FFmpegAAC="Codificador AAC padrão do FFmpeg" Bitrate="Bitrate" +Preset="Predefinição" +RateControl="Controle de Taxa" +KeyframeIntervalSec="Intervalo do keyframe (segundos, 0=automático)" +Lossless="Sem perdas" +NVENC.Preset.default="Predefinido" +NVENC.Preset.hq="Alta Qualidade" +NVENC.Preset.hp="Alto Desempenho" +NVENC.Preset.bd="Bluray" +NVENC.Preset.ll="Baixa latência" +NVENC.Preset.llhq="Baixa latência Alta Qualidade" +NVENC.Preset.llhp="Baixa latência Alto Desempenho" +NVENC.Level="Nível" FFmpegSource="Fonte de multimédia" LocalFile="Ficheiro local" @@ -22,6 +34,15 @@ DiscardBiDir="Fotogramas bidirecionais" DiscardNonIntra="Fotogramas não internos" DiscardNonKey="Fotogramas não registados" DiscardAll="Todos os fotogramas (cuidado!)" +RestartWhenActivated="Reiniciar reprodução quando a fonte se torna ativo" +ColorRange="Gama de cor YUV" +ColorRange.Auto="Auto" +ColorRange.Partial="Parcial" +ColorRange.Full="Completo" +MediaFileFilter.AllMediaFiles="Todos os Arquivos de Media" +MediaFileFilter.VideoFiles="Arquivos de Vídeo" +MediaFileFilter.AudioFiles="Arquivos de Áudio" +MediaFileFilter.AllFiles="Todos os ficheiros" diff --git a/plugins/obs-ffmpeg/data/locale/ru-RU.ini b/plugins/obs-ffmpeg/data/locale/ru-RU.ini index 6cd426b..07b3941 100644 --- a/plugins/obs-ffmpeg/data/locale/ru-RU.ini +++ b/plugins/obs-ffmpeg/data/locale/ru-RU.ini @@ -2,7 +2,9 @@ FFmpegOutput="Вывод FFmpeg" FFmpegAAC="Стандартный AAC-кодер FFmpeg" Bitrate="Битрейт" Preset="Пресет" +RateControl="Управление битрейтом" KeyframeIntervalSec="Интервал ключевых кадров (сек, 0=авто)" +Lossless="Без потерь" NVENC.Use2Pass="Использовать двухпроходное кодирование" NVENC.Preset.default="По умолчанию" diff --git a/plugins/obs-ffmpeg/data/locale/sr-CS.ini b/plugins/obs-ffmpeg/data/locale/sr-CS.ini index 4a8a315..a5a2b9c 100644 --- a/plugins/obs-ffmpeg/data/locale/sr-CS.ini +++ b/plugins/obs-ffmpeg/data/locale/sr-CS.ini @@ -2,7 +2,9 @@ FFmpegOutput="FFmpeg izlaz" FFmpegAAC="FFmpeg podrazumevani AAC enkoder" Bitrate="Protok" Preset="Šablon" +RateControl="Kontrola protoka" KeyframeIntervalSec="Interval ključnih frejmova (sekunde, 0=automatski)" +Lossless="Bez gubitka" NVENC.Use2Pass="Koristi enkoding duplog prolaza" NVENC.Preset.default="Podrazumevani" diff --git a/plugins/obs-ffmpeg/data/locale/sr-SP.ini b/plugins/obs-ffmpeg/data/locale/sr-SP.ini index f4606c7..1af21ed 100644 --- a/plugins/obs-ffmpeg/data/locale/sr-SP.ini +++ b/plugins/obs-ffmpeg/data/locale/sr-SP.ini @@ -2,7 +2,9 @@ FFmpegOutput="FFmpeg излаз" FFmpegAAC="FFmpeg подразумевани AAC енкодер" Bitrate="Проток" Preset="Шаблон" +RateControl="Контрола протока" KeyframeIntervalSec="Интервал кључних фрејмова (секунде, 0=аутоматски)" +Lossless="Без губитка" NVENC.Use2Pass="Користи енкодинг дуплог пролаза" NVENC.Preset.default="Подразумевани" diff --git a/plugins/obs-ffmpeg/data/locale/sv-SE.ini b/plugins/obs-ffmpeg/data/locale/sv-SE.ini index 0d1426f..8f2485d 100644 --- a/plugins/obs-ffmpeg/data/locale/sv-SE.ini +++ b/plugins/obs-ffmpeg/data/locale/sv-SE.ini @@ -2,6 +2,8 @@ FFmpegOutput="FFmpeg-utmatning" FFmpegAAC="AAC-kodare (FFmpeg standard)" Bitrate="Bithastighet" Preset="Förinställning" +RateControl="Hastighetskontroll" +Lossless="Förlustfri" NVENC.Use2Pass="Använd tvåpassavkodning" NVENC.Preset.default="Standard" diff --git a/plugins/obs-ffmpeg/data/locale/zh-TW.ini b/plugins/obs-ffmpeg/data/locale/zh-TW.ini index 447224c..efe35cf 100644 --- a/plugins/obs-ffmpeg/data/locale/zh-TW.ini +++ b/plugins/obs-ffmpeg/data/locale/zh-TW.ini @@ -1,7 +1,20 @@ FFmpegOutput="FFmpeg 輸出" FFmpegAAC="FFmpeg 預設 AAC 編碼器" -Bitrate="流量" +Bitrate="位元率" +Preset="預置" +RateControl="位元率控制" +KeyframeIntervalSec="關鍵訊框間隔 (秒,0 = 自動)" +Lossless="無損" +NVENC.Use2Pass="使用 Two-Pass 編碼" +NVENC.Preset.default="預設" +NVENC.Preset.hq="高品質" +NVENC.Preset.hp="高性能" +NVENC.Preset.bd="藍光" +NVENC.Preset.ll="低延遲" +NVENC.Preset.llhq="低延遲高品質" +NVENC.Preset.llhp="低延遲高性能" +NVENC.Level="级别" FFmpegSource="媒體來源" LocalFile="本機檔案" @@ -12,15 +25,21 @@ ForceFormat="強制格式轉換" HardwareDecode="盡可能使用硬體解碼" ClearOnMediaEnd="當播放結束時隱藏來源" Advanced="進階" -AudioBufferSize="音訊緩衝區大小 (幀)" -VideoBufferSize="影像緩衝區大小 (幀)" -FrameDropping="掉幀程度" +AudioBufferSize="音訊緩衝區大小 (訊框)" +VideoBufferSize="影像緩衝區大小 (訊框)" +FrameDropping="丟棄訊框级别" DiscardNone="無" DiscardDefault="預設 (無效封包)" -DiscardNonRef="非參考幀" -DiscardNonIntra="非內部框架" -DiscardNonKey="非關鍵幀" -DiscardAll="所有幀(小心!)" +DiscardNonRef="非參考訊框" +DiscardBiDir="雙向訊框" +DiscardNonIntra="非內部訊框" +DiscardNonKey="非關鍵訊框" +DiscardAll="所有訊框(小心!)" +RestartWhenActivated="當來源可使用時重新播放" +ColorRange="YUV 色彩空間" +ColorRange.Auto="自動" +ColorRange.Partial="部分" +ColorRange.Full="全部" MediaFileFilter.AllMediaFiles="所有媒體檔案" diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index 404ad7f..65212bc 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "ffmpeg-mux/ffmpeg-mux.h" #include @@ -33,10 +34,12 @@ struct ffmpeg_muxer { obs_output_t *output; os_process_pipe_t *pipe; + int64_t stop_ts; struct dstr path; bool sent_headers; - bool active; - bool capturing; + volatile bool active; + volatile bool stopping; + volatile bool capturing; }; static const char *ffmpeg_mux_getname(void *unused) @@ -72,6 +75,21 @@ static void *ffmpeg_mux_create(obs_data_t *settings, obs_output_t *output) #define FFMPEG_MUX "ffmpeg-mux" #endif +static inline bool capturing(struct ffmpeg_muxer *stream) +{ + return os_atomic_load_bool(&stream->capturing); +} + +static inline bool stopping(struct ffmpeg_muxer *stream) +{ + return os_atomic_load_bool(&stream->stopping); +} + +static inline bool active(struct ffmpeg_muxer *stream) +{ + return os_atomic_load_bool(&stream->active); +} + /* TODO: allow codecs other than h264 whenever we start using them */ static void add_video_encoder_params(struct ffmpeg_muxer *stream, @@ -223,8 +241,8 @@ static bool ffmpeg_mux_start(void *data) } /* write headers and start capture */ - stream->active = true; - stream->capturing = true; + os_atomic_set_bool(&stream->active, true); + os_atomic_set_bool(&stream->capturing, true); obs_output_begin_data_capture(stream->output, 0); info("Writing file '%s'...", stream->path.array); @@ -235,29 +253,32 @@ static int deactivate(struct ffmpeg_muxer *stream) { int ret = -1; - if (stream->active) { + if (active(stream)) { ret = os_process_pipe_destroy(stream->pipe); stream->pipe = NULL; - stream->active = false; - stream->sent_headers = false; + os_atomic_set_bool(&stream->active, false); + os_atomic_set_bool(&stream->sent_headers, false); info("Output of file '%s' stopped", stream->path.array); } + if (stopping(stream)) + obs_output_end_data_capture(stream->output); + + os_atomic_set_bool(&stream->stopping, false); return ret; } -static void ffmpeg_mux_stop(void *data) +static void ffmpeg_mux_stop(void *data, uint64_t ts) { struct ffmpeg_muxer *stream = data; - if (stream->capturing) { - obs_output_end_data_capture(stream->output); - stream->capturing = false; + if (capturing(stream)) { + stream->stop_ts = (int64_t)ts / 1000LL; + os_atomic_set_bool(&stream->stopping, true); + os_atomic_set_bool(&stream->capturing, false); } - - deactivate(stream); } static void signal_failure(struct ffmpeg_muxer *stream) @@ -271,7 +292,7 @@ static void signal_failure(struct ffmpeg_muxer *stream) } obs_output_signal_stop(stream->output, code); - stream->capturing = false; + os_atomic_set_bool(&stream->capturing, false); } static bool write_packet(struct ffmpeg_muxer *stream, @@ -358,7 +379,7 @@ static void ffmpeg_mux_data(void *data, struct encoder_packet *packet) { struct ffmpeg_muxer *stream = data; - if (!stream->active) + if (!active(stream)) return; if (!stream->sent_headers) { @@ -368,6 +389,13 @@ static void ffmpeg_mux_data(void *data, struct encoder_packet *packet) stream->sent_headers = true; } + if (stopping(stream)) { + if (packet->sys_dts_usec >= stream->stop_ts) { + deactivate(stream); + return; + } + } + write_packet(stream, packet); } diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c index 9c38143..5ad1daf 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c @@ -160,6 +160,8 @@ static bool nvenc_update(void *data, obs_data_t *settings) nvenc_video_info(enc, &info); av_opt_set_int(enc->context->priv_data, "cbr", false, 0); + av_opt_set(enc->context->priv_data, "preset", preset, 0); + if (astrcmpi(rc, "cqp") == 0) { bitrate = 0; enc->context->global_quality = cqp; @@ -171,7 +173,7 @@ static bool nvenc_update(void *data, obs_data_t *settings) bool hp = (astrcmpi(preset, "hp") == 0 || astrcmpi(preset, "llhp") == 0); - av_opt_set(enc->context->priv_data, "profile", + av_opt_set(enc->context->priv_data, "preset", hp ? "losslesshp" : "lossless", 0); } else if (astrcmpi(rc, "vbr") != 0) { /* CBR by default */ @@ -182,7 +184,6 @@ static bool nvenc_update(void *data, obs_data_t *settings) } - av_opt_set(enc->context->priv_data, "preset", preset, 0); av_opt_set(enc->context->priv_data, "level", level, 0); av_opt_set_int(enc->context->priv_data, "2pass", twopass, 0); av_opt_set_int(enc->context->priv_data, "gpu", gpu, 0); diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c index 87eac91..f08bd7c 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c @@ -89,6 +89,11 @@ struct ffmpeg_output { bool connecting; pthread_t start_thread; + uint64_t audio_start_ts; + uint64_t video_start_ts; + uint64_t stop_ts; + volatile bool stopping; + bool write_thread_active; pthread_mutex_t write_mutex; pthread_t write_thread; @@ -237,6 +242,7 @@ static bool create_video_stream(struct ffmpeg_data *data) context->pix_fmt = closest_format; context->colorspace = data->config.color_space; context->color_range = data->config.color_range; + context->thread_count = 0; data->video->time_base = context->time_base; @@ -548,6 +554,11 @@ fail: /* ------------------------------------------------------------------------- */ +static inline bool stopping(struct ffmpeg_output *output) +{ + return os_atomic_load_bool(&output->stopping); +} + static const char *ffmpeg_output_getname(void *unused) { UNUSED_PARAMETER(unused); @@ -588,7 +599,7 @@ fail: return NULL; } -static void ffmpeg_output_stop(void *data); +static void ffmpeg_output_full_stop(void *data); static void ffmpeg_deactivate(struct ffmpeg_output *output); static void ffmpeg_output_destroy(void *data) @@ -599,7 +610,7 @@ static void ffmpeg_output_destroy(void *data) if (output->connecting) pthread_join(output->start_thread, NULL); - ffmpeg_output_stop(output); + ffmpeg_output_full_stop(output); pthread_mutex_destroy(&output->write_mutex); os_sem_destroy(output->write_sem); @@ -647,6 +658,8 @@ static void receive_video(void *param, struct video_data *frame) av_init_packet(&packet); + if (!output->video_start_ts) + output->video_start_ts = frame->timestamp; if (!data->start_timestamp) data->start_timestamp = frame->timestamp; @@ -768,6 +781,8 @@ static bool prepare_audio(struct ffmpeg_data *data, return false; cutoff = data->start_timestamp - frame->timestamp; + output->timestamp += cutoff; + cutoff = cutoff * (uint64_t)data->audio_samplerate / 1000000000; @@ -797,6 +812,9 @@ static void receive_audio(void *param, struct audio_data *frame) if (!prepare_audio(data, frame, &in)) return; + if (!output->audio_start_ts) + output->audio_start_ts = in.timestamp; + frame_size_bytes = (size_t)data->frame_size * data->audio_size; for (size_t i = 0; i < data->audio_planes; i++) @@ -812,6 +830,26 @@ static void receive_audio(void *param, struct audio_data *frame) } } +static uint64_t get_packet_sys_dts(struct ffmpeg_output *output, + AVPacket *packet) +{ + struct ffmpeg_data *data = &output->ff_data; + uint64_t start_ts; + + AVRational time_base; + + if (data->video && data->video->index == packet->stream_index) { + time_base = data->video->time_base; + start_ts = output->video_start_ts; + } else { + time_base = data->audio->time_base; + start_ts = output->audio_start_ts; + } + + return start_ts + (uint64_t)av_rescale_q(packet->dts, + time_base, (AVRational){1, 1000000000}); +} + static int process_packet(struct ffmpeg_output *output) { AVPacket packet; @@ -834,6 +872,14 @@ static int process_packet(struct ffmpeg_output *output) packet.size, packet.flags, packet.stream_index, output->packets.num);*/ + if (stopping(output)) { + uint64_t sys_ts = get_packet_sys_dts(output, &packet); + if (sys_ts >= output->stop_ts) { + ffmpeg_output_full_stop(output); + return 0; + } + } + ret = av_interleaved_write_frame(output->ff_data.output, &packet); if (ret < 0) { av_free_packet(&packet); @@ -954,7 +1000,7 @@ static bool try_connect(struct ffmpeg_output *output) if (ret != 0) { blog(LOG_WARNING, "ffmpeg_output_start: failed to create write " "thread."); - ffmpeg_output_stop(output); + ffmpeg_output_full_stop(output); return false; } @@ -985,11 +1031,15 @@ static bool ffmpeg_output_start(void *data) if (output->connecting) return false; + os_atomic_set_bool(&output->stopping, false); + output->audio_start_ts = 0; + output->video_start_ts = 0; + ret = pthread_create(&output->start_thread, NULL, start_thread, output); return (output->connecting = (ret == 0)); } -static void ffmpeg_output_stop(void *data) +static void ffmpeg_output_full_stop(void *data) { struct ffmpeg_output *output = data; @@ -999,6 +1049,20 @@ static void ffmpeg_output_stop(void *data) } } +static void ffmpeg_output_stop(void *data, uint64_t ts) +{ + struct ffmpeg_output *output = data; + + if (output->active) { + if (ts == 0) { + ffmpeg_output_full_stop(output); + } else { + os_atomic_set_bool(&output->stopping, true); + output->stop_ts = ts; + } + } +} + static void ffmpeg_deactivate(struct ffmpeg_output *output) { if (output->write_thread_active) { diff --git a/plugins/obs-filters/CMakeLists.txt b/plugins/obs-filters/CMakeLists.txt index 3d71f9c..253be97 100644 --- a/plugins/obs-filters/CMakeLists.txt +++ b/plugins/obs-filters/CMakeLists.txt @@ -1,10 +1,29 @@ project(obs-filters) +find_package(Libspeexdsp QUIET) +if(LIBSPEEXDSP_FOUND) + set(obs-filters_LIBSPEEXDSP_SOURCES + noise-suppress-filter.c) + set(obs-filters_LIBSPEEXDSP_LIBRARIES + ${LIBSPEEXDSP_LIBRARIES}) +else() + message(STATUS "Speexdsp library not found, speexdsp filters disabled") +endif() + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/obs-filters-config.h.in" + "${CMAKE_BINARY_DIR}/plugins/obs-filters/config/obs-filters-config.h") + +set(obs-filters_config_HEADERS + "${CMAKE_BINARY_DIR}/plugins/obs-filters/config/obs-filters-config.h") +include_directories(${LIBSPEEXDSP_INCLUDE_DIRS} + "${CMAKE_BINARY_DIR}/plugins/obs-filters/config") + set(obs-filters_SOURCES obs-filters.c color-filter.c async-delay-filter.c crop-filter.c + scale-filter.c scroll-filter.c chroma-key-filter.c color-key-filter.c @@ -14,8 +33,11 @@ set(obs-filters_SOURCES mask-filter.c) add_library(obs-filters MODULE - ${obs-filters_SOURCES}) + ${obs-filters_SOURCES} + ${obs-filters_config_HEADERS} + ${obs-filters_LIBSPEEXDSP_SOURCES}) target_link_libraries(obs-filters - libobs) + libobs + ${obs-filters_LIBSPEEXDSP_LIBRARIES}) install_obs_plugin_with_data(obs-filters data) diff --git a/plugins/obs-filters/async-delay-filter.c b/plugins/obs-filters/async-delay-filter.c index cbbd866..3baff63 100644 --- a/plugins/obs-filters/async-delay-filter.c +++ b/plugins/obs-filters/async-delay-filter.c @@ -115,7 +115,7 @@ static obs_properties_t *async_delay_filter_properties(void *data) obs_properties_t *props = obs_properties_create(); obs_properties_add_int(props, SETTING_DELAY_MS, TEXT_DELAY_MS, - 0, 6000, 1); + 0, 20000, 1); UNUSED_PARAMETER(data); return props; diff --git a/plugins/obs-filters/crop-filter.c b/plugins/obs-filters/crop-filter.c index 11070fa..09839ec 100644 --- a/plugins/obs-filters/crop-filter.c +++ b/plugins/obs-filters/crop-filter.c @@ -12,10 +12,10 @@ struct crop_filter_data { int right; int top; int bottom; - uint32_t abs_cx; - uint32_t abs_cy; - uint32_t width; - uint32_t height; + int abs_cx; + int abs_cy; + int width; + int height; bool absolute; struct vec2 mul_val; @@ -108,13 +108,13 @@ static obs_properties_t *crop_filter_properties(void *data) obs_property_set_modified_callback(p, relative_clicked); obs_properties_add_int(props, "left", obs_module_text("Crop.Left"), - 0, 8192, 1); + -8192, 8192, 1); obs_properties_add_int(props, "top", obs_module_text("Crop.Top"), - 0, 8192, 1); + -8192, 8192, 1); obs_properties_add_int(props, "right", obs_module_text("Crop.Right"), - 0, 8192, 1); + -8192, 8192, 1); obs_properties_add_int(props, "bottom", obs_module_text("Crop.Bottom"), - 0, 8192, 1); + -8192, 8192, 1); obs_properties_add_int(props, "cx", obs_module_text("Crop.Width"), 0, 8192, 1); obs_properties_add_int(props, "cy", obs_module_text("Crop.Height"), @@ -135,37 +135,26 @@ static void calc_crop_dimensions(struct crop_filter_data *filter, obs_source_t *target = obs_filter_get_target(filter->context); uint32_t width; uint32_t height; - uint32_t total; if (!target) { width = 0; height = 0; + return; } else { width = obs_source_get_base_width(target); height = obs_source_get_base_height(target); } if (filter->absolute) { - uint32_t max_abs_cx = (filter->left + filter->abs_cx); - if (max_abs_cx > width) max_abs_cx = width; - max_abs_cx -= filter->left; - - total = max_abs_cx < width ? (width - max_abs_cx) : 0; + filter->width = filter->abs_cx; + filter->height = filter->abs_cy; } else { - total = filter->left + filter->right; + filter->width = (int)width - filter->left - filter->right; + filter->height = (int)height - filter->top - filter->bottom; } - filter->width = total > width ? 0 : (width - total); - if (filter->absolute) { - uint32_t max_abs_cy = (filter->top + filter->abs_cy); - if (max_abs_cy > height) max_abs_cy = height; - max_abs_cy -= filter->top; - - total = max_abs_cy < height ? (height - max_abs_cy) : 0; - } else { - total = filter->top + filter->bottom; - } - filter->height = total > height ? 0 : (height - total); + if (filter->width < 1) filter->width = 1; + if (filter->height < 1) filter->height = 1; if (width && filter->width) { mul_val->x = (float)filter->width / (float)width; @@ -209,13 +198,13 @@ static void crop_filter_render(void *data, gs_effect_t *effect) static uint32_t crop_filter_width(void *data) { struct crop_filter_data *crop = data; - return crop->width; + return (uint32_t)crop->width; } static uint32_t crop_filter_height(void *data) { struct crop_filter_data *crop = data; - return crop->height; + return (uint32_t)crop->height; } struct obs_source_info crop_filter = { diff --git a/plugins/obs-filters/data/crop_filter.effect b/plugins/obs-filters/data/crop_filter.effect index 3c0e9f3..5be66ad 100644 --- a/plugins/obs-filters/data/crop_filter.effect +++ b/plugins/obs-filters/data/crop_filter.effect @@ -6,8 +6,9 @@ uniform float2 add_val; sampler_state textureSampler { Filter = Linear; - AddressU = Wrap; - AddressV = Wrap; + AddressU = Border; + AddressV = Border; + BorderColor = 00000000; }; struct VertData { diff --git a/plugins/obs-filters/data/locale/ar-SA.ini b/plugins/obs-filters/data/locale/ar-SA.ini index d1c53ff..c3d934e 100644 --- a/plugins/obs-filters/data/locale/ar-SA.ini +++ b/plugins/obs-filters/data/locale/ar-SA.ini @@ -1,4 +1,4 @@ -CropFilter="إقتطاع" +ColorFilter="التصحيح اللوني" ScrollFilter="التمرير" DelayMs="التأخير (مللي ثانية)" Type="النّوع" diff --git a/plugins/obs-filters/data/locale/ca-ES.ini b/plugins/obs-filters/data/locale/ca-ES.ini index b418a1e..adc9e29 100644 --- a/plugins/obs-filters/data/locale/ca-ES.ini +++ b/plugins/obs-filters/data/locale/ca-ES.ini @@ -1,11 +1,12 @@ ColorFilter="Correcció de color" MaskFilter="Màscara d'imatge o barreja" AsyncDelayFilter="Retard del vídeo (asíncron)" -CropFilter="Escapça" +CropFilter="Escapça/Encoixinar" ScrollFilter="Desplaçament" ChromaKeyFilter="Clau croma" ColorKeyFilter="Clau de color" SharpnessFilter="Agudesa" +ScaleFilter="Escala/Relació d'Aspecte" NoiseGate="Porta de soroll" Gain="Guany" DelayMs="Retard (en mil·lisegons)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Temps de mantenir (mil·lisegons)" NoiseGate.ReleaseTime="Temps d'alliberar (mil·lisegons)" Gain.GainDB="Guany (dB)" StretchImage="Expandir imatge (descarta la relació d'aspecte d'imatge)" +Resolution="Resolució" +None="Cap" +ScaleFiltering="Escala de filtratge" +ScaleFiltering.Point="Punt" +ScaleFiltering.Bilinear="Bilineal" +ScaleFiltering.Bicubic="Bicúbic" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/cs-CZ.ini b/plugins/obs-filters/data/locale/cs-CZ.ini index f2891c6..28a68de 100644 --- a/plugins/obs-filters/data/locale/cs-CZ.ini +++ b/plugins/obs-filters/data/locale/cs-CZ.ini @@ -1,11 +1,12 @@ ColorFilter="Korekce barev" MaskFilter="Maska obrazu/prolnutí" AsyncDelayFilter="Zpoždění obrazu" -CropFilter="Oříznutí" +CropFilter="Oříznutí/odsazení" ScrollFilter="Rolování" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Klíč barvy" SharpnessFilter="Ostření" +ScaleFilter="Škálování/poměr stran" NoiseGate="Šumová brána" Gain="Zisk" DelayMs="Zpoždění (ms)" @@ -34,7 +35,7 @@ Crop.Top="Nahoře" Crop.Bottom="Dole" Crop.Width="Šířka" Crop.Height="Výška" -Crop.Relative="Relativní" +Crop.Relative="Relativně" ScrollFilter.SpeedX="Rychlost - vodorovně" ScrollFilter.SpeedY="Rychlost - svisle" ScrollFilter.LimitWidth="Omezit šířku" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Čas držení (ms)" NoiseGate.ReleaseTime="Čas uvolnění (ms)" Gain.GainDB="Zisk (dB)" StretchImage="Roztáhnout obrázek (ignorovat poměr stran)" +Resolution="Rozlišení" +None="Žádné" +ScaleFiltering="Filtrování rozsahu" +ScaleFiltering.Point="Bod" +ScaleFiltering.Bilinear="Bilineární" +ScaleFiltering.Bicubic="Bikubický" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/da-DK.ini b/plugins/obs-filters/data/locale/da-DK.ini index da181b5..11a7dec 100644 --- a/plugins/obs-filters/data/locale/da-DK.ini +++ b/plugins/obs-filters/data/locale/da-DK.ini @@ -1,7 +1,6 @@ ColorFilter="Farvekorrektion" MaskFilter="Billede maske/blanding" AsyncDelayFilter="Video forsinkelse (asynkron)" -CropFilter="Beskær" ScrollFilter="Rul" ChromaKeyFilter="Chroma nøgle" ColorKeyFilter="Farvenøgle" diff --git a/plugins/obs-filters/data/locale/de-DE.ini b/plugins/obs-filters/data/locale/de-DE.ini index 014f0e4..2ad2cdc 100644 --- a/plugins/obs-filters/data/locale/de-DE.ini +++ b/plugins/obs-filters/data/locale/de-DE.ini @@ -1,11 +1,12 @@ ColorFilter="Farbkorrektur" MaskFilter="Bild Maske/Blend" AsyncDelayFilter="Videoverzögerung (Asynchron)" -CropFilter="Zuschneiden" +CropFilter="Zuschneiden/Pad" ScrollFilter="Bewegung" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Color Key" SharpnessFilter="Schärfen" +ScaleFilter="Skalierung/Seitenverhältnis" NoiseGate="Noise Gate" Gain="Gain" DelayMs="Verzögerung (Millisekunden)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Hold-Zeit (Millisekunden)" NoiseGate.ReleaseTime="Release-Zeit (Millisekunden)" Gain.GainDB="Gain (dB)" StretchImage="Bild strecken (Bildseitenverhältnis verwerfen)" +Resolution="Auflösung" +None="Keine" +ScaleFiltering="Skalierungsfilterung" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinear" +ScaleFiltering.Bicubic="Bicubic" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/el-GR.ini b/plugins/obs-filters/data/locale/el-GR.ini index 38268a4..dce045b 100644 --- a/plugins/obs-filters/data/locale/el-GR.ini +++ b/plugins/obs-filters/data/locale/el-GR.ini @@ -1,6 +1,5 @@ ColorFilter="Διόρθωση Χρώματος" AsyncDelayFilter="Καθυστέρηση Βίντεο (Ασύγχρονη)" -CropFilter="Περικοπή" ScrollFilter="Κύλιση" ChromaKeyFilter="Κλειδί Chroma" ColorKeyFilter="Κλειδί Χρώματος" diff --git a/plugins/obs-filters/data/locale/en-US.ini b/plugins/obs-filters/data/locale/en-US.ini index a3d9cca..95b8c43 100644 --- a/plugins/obs-filters/data/locale/en-US.ini +++ b/plugins/obs-filters/data/locale/en-US.ini @@ -1,12 +1,14 @@ ColorFilter="Color Correction" MaskFilter="Image Mask/Blend" AsyncDelayFilter="Video Delay (Async)" -CropFilter="Crop" +CropFilter="Crop/Pad" ScrollFilter="Scroll" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Color Key" SharpnessFilter="Sharpen" +ScaleFilter="Scaling/Aspect Ratio" NoiseGate="Noise Gate" +NoiseSuppress="Noise Suppression" Gain="Gain" DelayMs="Delay (milliseconds)" Type="Type" @@ -51,3 +53,11 @@ NoiseGate.HoldTime="Hold Time (milliseconds)" NoiseGate.ReleaseTime="Release Time (milliseconds)" Gain.GainDB="Gain (dB)" StretchImage="Stretch Image (discard image aspect ratio)" +Resolution="Resolution" +None="None" +ScaleFiltering="Scale Filtering" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinear" +ScaleFiltering.Bicubic="Bicubic" +ScaleFiltering.Lanczos="Lanczos" +NoiseSuppress.SuppressLevel="Suppression Level (dB)" diff --git a/plugins/obs-filters/data/locale/es-ES.ini b/plugins/obs-filters/data/locale/es-ES.ini index 6789683..9654c46 100644 --- a/plugins/obs-filters/data/locale/es-ES.ini +++ b/plugins/obs-filters/data/locale/es-ES.ini @@ -1,11 +1,12 @@ ColorFilter="Corrección de color" MaskFilter="Imagen máscara/mezcla" AsyncDelayFilter="Demora de Video (asincróno)" -CropFilter="Filtro de Recorte" +CropFilter="Recortar/Acolchar" ScrollFilter="desplazamiento" ChromaKeyFilter="Fondro croma" ColorKeyFilter="Filtro de color" SharpnessFilter="Filtro de enfoque" +ScaleFilter="Escala/Relación de Aspecto" NoiseGate="Puerta anti-ruidos" Gain="Ganancia" DelayMs="Retardo (milisegundos)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Tiempo (en milisegundos) de espera" NoiseGate.ReleaseTime="Tiempo (en milisegundos) de liberacion" Gain.GainDB="Ganancia (dB)" StretchImage="Expandir imagen (descartar relación de aspecto de imagen)" +Resolution="Resolución" +None="Ninguno" +ScaleFiltering="Escala de filtrado" +ScaleFiltering.Point="Punto" +ScaleFiltering.Bilinear="Bilineal" +ScaleFiltering.Bicubic="Bicúbico" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/eu-ES.ini b/plugins/obs-filters/data/locale/eu-ES.ini index 1b7c39c..3523c20 100644 --- a/plugins/obs-filters/data/locale/eu-ES.ini +++ b/plugins/obs-filters/data/locale/eu-ES.ini @@ -1,11 +1,12 @@ ColorFilter="Kolore-zuzenketa" MaskFilter="Irudi maskara/nahasketa" AsyncDelayFilter="Bideo atzerapena (Async)" -CropFilter="Moztu" +CropFilter="Moztu/Bete" ScrollFilter="Korritu" ChromaKeyFilter="Kroma gakoa" ColorKeyFilter="Kolore gakoa" SharpnessFilter="Enfokea" +ScaleFilter="Eskala/Aspektu-erlazioa" NoiseGate="Zarata atalasea" Gain="Irabazia" DelayMs="Atzerapena (milisegundo)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Euste denbora (milisegundo)" NoiseGate.ReleaseTime="Askatze denbora (milisegundo)" Gain.GainDB="Irabazia (dB)" StretchImage="Luzatu irudia (baztertu irudiaren aspektu-erlazioa)" +Resolution="Bereizmena" +None="Ezer ez" +ScaleFiltering="Iragazketa-eskala" +ScaleFiltering.Point="Puntua" +ScaleFiltering.Bilinear="Bilineala" +ScaleFiltering.Bicubic="Bikubikoa" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/fi-FI.ini b/plugins/obs-filters/data/locale/fi-FI.ini index 0dbcee5..c16e6fe 100644 --- a/plugins/obs-filters/data/locale/fi-FI.ini +++ b/plugins/obs-filters/data/locale/fi-FI.ini @@ -1,14 +1,13 @@ ColorFilter="Värinkorjaus" MaskFilter="Kuvamaski/Sekoitus" -AsyncDelayFilter="Kuvan viide (Async)" -CropFilter="Rajaa" +AsyncDelayFilter="Kuvan viive (Async)" ScrollFilter="Vieritä" -ChromaKeyFilter="Chroma Key" +ChromaKeyFilter="Läpinäkyvä tausta" ColorKeyFilter="Väriavain" SharpnessFilter="Terävöitä" NoiseGate="Noise Gate" Gain="Vahvistus" -DelayMs="Viive (MS)" +DelayMs="Viive (millisekuntia)" Type="Tyyppi" MaskBlendType.MaskColor="Alpha-maski (värikanava)" MaskBlendType.MaskAlpha="Alpha-maski (alfa-kanava)" @@ -40,9 +39,9 @@ ScrollFilter.SpeedY="Pystynopeus" ScrollFilter.LimitWidth="Rajoita leveyttä" ScrollFilter.LimitHeight="Rajoita korkeutta" CustomColor="Mukautettu väri" -Red="Red" -Green="Green" -Blue="Blue" +Red="Punainen" +Green="Vihreä" +Blue="Sininen" Magenta="Magenta" NoiseGate.OpenThreshold="Avautumiskynnys (dB)" NoiseGate.CloseThreshold="Sulkeutumiskynnys (dB)" @@ -50,5 +49,5 @@ NoiseGate.AttackTime="Reagointiviive (millisekuntia)" NoiseGate.HoldTime="Pitoaika (millisekuntia)" NoiseGate.ReleaseTime="Vapautumisaika (millisekuntia)" Gain.GainDB="Vahvistus (dB)" -StretchImage="Venytä kuvaa (hylkää kuvasuhde)" +StretchImage="Venytä kuvaa (Ohita kuvasuhde)" diff --git a/plugins/obs-filters/data/locale/fr-FR.ini b/plugins/obs-filters/data/locale/fr-FR.ini index f44a0a0..8aebc66 100644 --- a/plugins/obs-filters/data/locale/fr-FR.ini +++ b/plugins/obs-filters/data/locale/fr-FR.ini @@ -1,14 +1,15 @@ ColorFilter="Corrections colorimétrique" MaskFilter="Masque d'image/mélange" -AsyncDelayFilter="Délai vidéo (async.)" -CropFilter="Rogner" +AsyncDelayFilter="Retard vidéo (async.)" +CropFilter="Rogner / Encadrer" ScrollFilter="Défilement" ChromaKeyFilter="Clé chromatique" ColorKeyFilter="Couleur d'incrustation" SharpnessFilter="Accentuer" +ScaleFilter="Mise à l’échelle / Ratio d'affichage" NoiseGate="Noise Gate" Gain="Gain" -DelayMs="Délai (en millisecondes)" +DelayMs="Retard (en millisecondes)" Type="Type " MaskBlendType.MaskColor="Masque alpha (canal de couleur)" MaskBlendType.MaskAlpha="Masque alpha (canal alpha)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Temps de maintien (millisecondes)" NoiseGate.ReleaseTime="Temps d'arrêt (millisecondes)" Gain.GainDB="Gain (dB)" StretchImage="Étirer l'Image (ignorer ses proportions)" +Resolution="Résolution" +None="Aucune" +ScaleFiltering="Échelle de filtrage" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinéaire" +ScaleFiltering.Bicubic="Bicubique" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/gl-ES.ini b/plugins/obs-filters/data/locale/gl-ES.ini index 2430114..de5dd7b 100644 --- a/plugins/obs-filters/data/locale/gl-ES.ini +++ b/plugins/obs-filters/data/locale/gl-ES.ini @@ -1,7 +1,6 @@ ColorFilter="Corrección da cor" MaskFilter="Máscara/mestura de imaxes" AsyncDelayFilter="Atraso do vídeo (asíncrono)" -CropFilter="Recortar" ScrollFilter="Desprazamento" DelayMs="Atraso (milisegundos)" Type="Tipo" diff --git a/plugins/obs-filters/data/locale/he-IL.ini b/plugins/obs-filters/data/locale/he-IL.ini index 28b9161..5234249 100644 --- a/plugins/obs-filters/data/locale/he-IL.ini +++ b/plugins/obs-filters/data/locale/he-IL.ini @@ -1,11 +1,12 @@ ColorFilter="תיקון צבע" MaskFilter="מסכה/עירבוב תמונה" AsyncDelayFilter="השהיית וידאו (אסינכרונית)" -CropFilter="חתוך" +CropFilter="חיתוך/ריפוד" ScrollFilter="גלול" ChromaKeyFilter="מסך כחול" ColorKeyFilter="מפתח צבע" SharpnessFilter="חידוד" +ScaleFilter="יחס גובה רוחב/קנה מידה" NoiseGate="שער רעש" Gain="הגברה" DelayMs="השהייה (אלפיות שניה)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="זמן החזקה (אלפיות שניה)" NoiseGate.ReleaseTime="זמן שחרור (אלפיות שניה)" Gain.GainDB="הגברה (dB)" StretchImage="מתח תמונה (יחס הגובה-רוחב של התמונה לא ישמר)" +Resolution="רזולוציה" +None="ללא" +ScaleFiltering="מסנן קנה מידה" +ScaleFiltering.Point="נקודה" +ScaleFiltering.Bilinear="ביליניארי" +ScaleFiltering.Bicubic="ביקיוביק" +ScaleFiltering.Lanczos="לנזוס" diff --git a/plugins/obs-filters/data/locale/hr-HR.ini b/plugins/obs-filters/data/locale/hr-HR.ini index c81390d..eca3457 100644 --- a/plugins/obs-filters/data/locale/hr-HR.ini +++ b/plugins/obs-filters/data/locale/hr-HR.ini @@ -1,7 +1,6 @@ ColorFilter="Promena boja" MaskFilter="Slika maske i stapanja" AsyncDelayFilter="Video pauza (asinhrono)" -CropFilter="Odsecanje" ScrollFilter="Pomeranje" ChromaKeyFilter="Ključ providnosti" ColorKeyFilter="Ključ boje" diff --git a/plugins/obs-filters/data/locale/hu-HU.ini b/plugins/obs-filters/data/locale/hu-HU.ini index 4a74a88..b25833f 100644 --- a/plugins/obs-filters/data/locale/hu-HU.ini +++ b/plugins/obs-filters/data/locale/hu-HU.ini @@ -1,11 +1,12 @@ ColorFilter="Színkorrekció" MaskFilter="Képmaszk/Keverés" AsyncDelayFilter="Videó késleltetés (Async)" -CropFilter="Vágás" +CropFilter="Vágás/Margó" ScrollFilter="Görgetés" ChromaKeyFilter="Chroma kulcs" ColorKeyFilter="Színkulcs" SharpnessFilter="Élesítés" +ScaleFilter="Méretezés/Képarány" NoiseGate="Zajgát" Gain="Erősítés" DelayMs="Késleltetés (ezredmásodperc)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Kitartás ideje (ezredmásodperc)" NoiseGate.ReleaseTime="Felengedés ideje (ezredmásodperc)" Gain.GainDB="Erősítés (dB)" StretchImage="Kép nyújtása (képarány elvetésével)" +Resolution="Felbontás" +None="Nincs" +ScaleFiltering="Skála-szűrés" +ScaleFiltering.Point="Pont" +ScaleFiltering.Bilinear="Bilineáris" +ScaleFiltering.Bicubic="Kettős köbös" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/it-IT.ini b/plugins/obs-filters/data/locale/it-IT.ini index c4f171a..0e48464 100644 --- a/plugins/obs-filters/data/locale/it-IT.ini +++ b/plugins/obs-filters/data/locale/it-IT.ini @@ -1,11 +1,12 @@ ColorFilter="Correzione colore" MaskFilter="Immagine maschera/miscela" AsyncDelayFilter="Ritardo video (Asincrono)" -CropFilter="Ritaglia" +CropFilter="Crop/Pad" ScrollFilter="Scorrimento" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Chiave Colore" SharpnessFilter="Nitidizza" +ScaleFilter="Ridimensionamento/Aspect Ratio" NoiseGate="Noise Gate" Gain="Incremento" DelayMs="Ritardo (millisecondi)" @@ -50,4 +51,12 @@ NoiseGate.AttackTime="Tempo d'inizio (millisecondi)" NoiseGate.HoldTime="Tempo d'attesa (millisecondi)" NoiseGate.ReleaseTime="Tempo di rilascio (millisecondi)" Gain.GainDB="Incremento (dB)" +StretchImage="Stendi immagine (scarta proporzioni immagine)" +Resolution="Risoluzione" +None="Nessuno" +ScaleFiltering="Scala di filtraggio" +ScaleFiltering.Point="Punto" +ScaleFiltering.Bilinear="Bilineare" +ScaleFiltering.Bicubic="Bicubico" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/ja-JP.ini b/plugins/obs-filters/data/locale/ja-JP.ini index 1464b2c..1c45f3b 100644 --- a/plugins/obs-filters/data/locale/ja-JP.ini +++ b/plugins/obs-filters/data/locale/ja-JP.ini @@ -1,11 +1,12 @@ ColorFilter="色補正" MaskFilter="イメージ マスク/ブレンド" AsyncDelayFilter="映像の遅延 (非同期)" -CropFilter="クロップ" +CropFilter="クロップ/パッド" ScrollFilter="スクロール" ChromaKeyFilter="クロマキー" ColorKeyFilter="カラーキー" SharpnessFilter="シャープ" +ScaleFilter="スケーリング/アスペクト比" NoiseGate="ノイズゲート" Gain="ゲイン" DelayMs="遅延時間 (ミリ秒)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="保持時間 (ミリ秒)" NoiseGate.ReleaseTime="解除時間 (ミリ秒)" Gain.GainDB="ゲイン (dB)" StretchImage="画像を拡大 (アスペクト比を破棄)" +Resolution="解像度" +None="なし" +ScaleFiltering="スケールフィルタ" +ScaleFiltering.Point="ポイント" +ScaleFiltering.Bilinear="バイリニア" +ScaleFiltering.Bicubic="バイキュービック" +ScaleFiltering.Lanczos="ランチョス" diff --git a/plugins/obs-filters/data/locale/ko-KR.ini b/plugins/obs-filters/data/locale/ko-KR.ini index 27da049..5ed6331 100644 --- a/plugins/obs-filters/data/locale/ko-KR.ini +++ b/plugins/obs-filters/data/locale/ko-KR.ini @@ -1,11 +1,12 @@ ColorFilter="색상 보정" MaskFilter="이미지 마스크/혼합" AsyncDelayFilter="비디오 지연 (비동기)" -CropFilter="자르기" +CropFilter="자르기/덧대기" ScrollFilter="스크롤" ChromaKeyFilter="크로마 키" ColorKeyFilter="색상 키" SharpnessFilter="선명하게" +ScaleFilter="비례축소/가로세로 비율" NoiseGate="노이즈 게이트" Gain="증폭" DelayMs="지연 (밀리초)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="개방 유지 시간 (밀리세컨드)" NoiseGate.ReleaseTime="폐쇄 준비 시간 (밀리세컨드)" Gain.GainDB="증폭 (dB)" StretchImage="이미지 늘리기 (이미지 가로 세로 비율 포기)" +Resolution="해상도" +None="없음" +ScaleFiltering="비율 필터링" +ScaleFiltering.Point="점" +ScaleFiltering.Bilinear="이중선형" +ScaleFiltering.Bicubic="쌍삼차" +ScaleFiltering.Lanczos="란초스" diff --git a/plugins/obs-filters/data/locale/nb-NO.ini b/plugins/obs-filters/data/locale/nb-NO.ini index 9291daf..2c517b3 100644 --- a/plugins/obs-filters/data/locale/nb-NO.ini +++ b/plugins/obs-filters/data/locale/nb-NO.ini @@ -1,7 +1,7 @@ ColorFilter="Fargekorrigering" MaskFilter="Bildemaske/-blanding" AsyncDelayFilter="Videoforsinkelse (asynkron)" -CropFilter="Beskjæring" +CropFilter="Beskjæring/utfall" ScrollFilter="Rull" ChromaKeyFilter="Chromafilter" ColorKeyFilter="Fargefilter" @@ -50,4 +50,5 @@ NoiseGate.AttackTime="Angrepstid (millisekunder)" NoiseGate.HoldTime="Holdetid (millisekunder)" NoiseGate.ReleaseTime="Løslatelsestid (millisekunder)" Gain.GainDB="Forsterkning (dB)" +StretchImage="Strekk bilde (ignorer bildets sideforhold)" diff --git a/plugins/obs-filters/data/locale/nl-NL.ini b/plugins/obs-filters/data/locale/nl-NL.ini index a5420d3..f97a8ed 100644 --- a/plugins/obs-filters/data/locale/nl-NL.ini +++ b/plugins/obs-filters/data/locale/nl-NL.ini @@ -1,11 +1,12 @@ ColorFilter="Kleurcorrectie" MaskFilter="Afbeeldingsmasker/Mengen" AsyncDelayFilter="Videovertraging (Async)" -CropFilter="Bijsnijden" +CropFilter="Bijsnijden/Aanvullen" ScrollFilter="Scrollen" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Color Key" SharpnessFilter="Verscherpen" +ScaleFilter="Schalen/Aspect Ratio" NoiseGate="Noise Gate" Gain="Gain" DelayMs="Vertraging (milliseconden)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Hold-tijd (milliseconden)" NoiseGate.ReleaseTime="Release-tijd (milliseconden)" Gain.GainDB="Gain (dB)" StretchImage="Afbeelding uitrekken (negeer beeldverhouding van de afbeelding)" +Resolution="Resolutie" +None="Geen" +ScaleFiltering="Schaal-filter" +ScaleFiltering.Point="Point" +ScaleFiltering.Bilinear="Bilinear" +ScaleFiltering.Bicubic="Bicubic" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/pl-PL.ini b/plugins/obs-filters/data/locale/pl-PL.ini index 3798779..fb93a94 100644 --- a/plugins/obs-filters/data/locale/pl-PL.ini +++ b/plugins/obs-filters/data/locale/pl-PL.ini @@ -1,11 +1,12 @@ ColorFilter="Korekcja Kolorów" MaskFilter="Maskowanie/nakładanie obrazu" AsyncDelayFilter="Opóźnienie wideo (asynchronicznie)" -CropFilter="Kadrowanie" +CropFilter="Przytnij/Uzupełnij" ScrollFilter="Przewijanie" ChromaKeyFilter="Kluczowanie koloru (chroma key)" ColorKeyFilter="Kluczowanie koloru (kolor)" SharpnessFilter="Wyostrzanie" +ScaleFilter="Skalowanie/proporcje" NoiseGate="Bramka szumów" Gain="Poziom" DelayMs="Opóźnienie (milisekundy)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Czas wstrzymania (milisekundy)" NoiseGate.ReleaseTime="Czas zwolnienia (milisekundy)" Gain.GainDB="Poziom (dB)" StretchImage="Rozciągnięcie obrazu (ignoruj proporcje)" +Resolution="Rozdzielczość" +None="Brak" +ScaleFiltering="Filtrowanie" +ScaleFiltering.Point="Punktowe" +ScaleFiltering.Bilinear="Dwuliniowe" +ScaleFiltering.Bicubic="Dwusześcienne" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/pt-BR.ini b/plugins/obs-filters/data/locale/pt-BR.ini index c55ce0c..ebb6a81 100644 --- a/plugins/obs-filters/data/locale/pt-BR.ini +++ b/plugins/obs-filters/data/locale/pt-BR.ini @@ -1,7 +1,6 @@ ColorFilter="Correção de cor" MaskFilter="Máscara/mistura de imagem" AsyncDelayFilter="Atraso de vídeo (Async)" -CropFilter="Cortar" ScrollFilter="Rolagem" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Color Key" diff --git a/plugins/obs-filters/data/locale/pt-PT.ini b/plugins/obs-filters/data/locale/pt-PT.ini index 1bbc821..8a2f817 100644 --- a/plugins/obs-filters/data/locale/pt-PT.ini +++ b/plugins/obs-filters/data/locale/pt-PT.ini @@ -1,7 +1,6 @@ ColorFilter="Correção de cor" MaskFilter="Máscara/mistura de imagem" AsyncDelayFilter="Atraso de vídeo (Async)" -CropFilter="Corte" ScrollFilter="Percorre" ChromaKeyFilter="Chroma Key" ColorKeyFilter="Color Key" @@ -50,4 +49,5 @@ NoiseGate.AttackTime="Tempo de ataque (milissegundos)" NoiseGate.HoldTime="Tempo de bloqueio (milissegundos)" NoiseGate.ReleaseTime="Tempo de libertação (milissegundos)" Gain.GainDB="Ganho (dB)" +StretchImage="Esticar a imagem (relação de aspeto de imagem de descarte)" diff --git a/plugins/obs-filters/data/locale/ro-RO.ini b/plugins/obs-filters/data/locale/ro-RO.ini index d8ff402..901947c 100644 --- a/plugins/obs-filters/data/locale/ro-RO.ini +++ b/plugins/obs-filters/data/locale/ro-RO.ini @@ -1,7 +1,6 @@ ColorFilter="Corecție de culoare" MaskFilter="Mască/amestec de imagine" AsyncDelayFilter="Întârziere video (asincron)" -CropFilter="Trunchiere" ScrollFilter="Derulare" ChromaKeyFilter="Cheie chroma" ColorKeyFilter="Culoare cheie" diff --git a/plugins/obs-filters/data/locale/ru-RU.ini b/plugins/obs-filters/data/locale/ru-RU.ini index 8c86b7b..6bb28bf 100644 --- a/plugins/obs-filters/data/locale/ru-RU.ini +++ b/plugins/obs-filters/data/locale/ru-RU.ini @@ -1,11 +1,12 @@ ColorFilter="Коррекция цвета" MaskFilter="Маска изображения/Смешивание" AsyncDelayFilter="Задержка видео (асинхронность)" -CropFilter="Обрезка" +CropFilter="Кадрировать" ScrollFilter="Прокрутка" ChromaKeyFilter="Хромакей" ColorKeyFilter="Цветовой ключ" SharpnessFilter="Увеличить резкость" +ScaleFilter="Коэффициент Масштабирования/Аспект" NoiseGate="Подавление шума" Gain="Усиление" DelayMs="Задержка (миллисекунд)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="Длительность задержки (миллисек NoiseGate.ReleaseTime="Длительность затухания (миллисекунд)" Gain.GainDB="Усиление (дБ)" StretchImage="Растянуть изображение (игнорировать пропорции изображения)" +Resolution="Разрешение" +None="Нет" +ScaleFiltering="Масштаб Фильтрации" +ScaleFiltering.Point="Точечная" +ScaleFiltering.Bilinear="Билинейная" +ScaleFiltering.Bicubic="Бикубическая" +ScaleFiltering.Lanczos="Ланцошная" diff --git a/plugins/obs-filters/data/locale/sr-CS.ini b/plugins/obs-filters/data/locale/sr-CS.ini index 33f484a..6a487db 100644 --- a/plugins/obs-filters/data/locale/sr-CS.ini +++ b/plugins/obs-filters/data/locale/sr-CS.ini @@ -1,7 +1,6 @@ ColorFilter="Promena boja" MaskFilter="Slika maske i stapanja" AsyncDelayFilter="Video pauza (asinhrono)" -CropFilter="Odsecanje" ScrollFilter="Pomeranje" ChromaKeyFilter="Ključ providnosti" ColorKeyFilter="Ključ boje" diff --git a/plugins/obs-filters/data/locale/sr-SP.ini b/plugins/obs-filters/data/locale/sr-SP.ini index 0819432..2d635e8 100644 --- a/plugins/obs-filters/data/locale/sr-SP.ini +++ b/plugins/obs-filters/data/locale/sr-SP.ini @@ -1,7 +1,6 @@ ColorFilter="Промена боја" MaskFilter="Слика маске и стапања" AsyncDelayFilter="Видео пауза (асинхроно)" -CropFilter="Одсецање" ScrollFilter="Померање" ChromaKeyFilter="Кључ провидности" ColorKeyFilter="Кључ боје" diff --git a/plugins/obs-filters/data/locale/sv-SE.ini b/plugins/obs-filters/data/locale/sv-SE.ini index 7219081..df634a8 100644 --- a/plugins/obs-filters/data/locale/sv-SE.ini +++ b/plugins/obs-filters/data/locale/sv-SE.ini @@ -1,11 +1,11 @@ ColorFilter="Färgkorrigering" MaskFilter="Bild Mask/Blandning" AsyncDelayFilter="Videofördröjning (Async)" -CropFilter="Beskär" ScrollFilter="Scrollning" ChromaKeyFilter="Kromafilter" ColorKeyFilter="Färgfilter" SharpnessFilter="Skärpa" +ScaleFilter="Skalning/Bildförhållande" NoiseGate="Brusblockering" Gain="Förstärkning" DelayMs="Fördröjning (millisekunder)" @@ -51,4 +51,10 @@ NoiseGate.HoldTime="Hålltid (millisekunder)" NoiseGate.ReleaseTime="Släpptid (millisekunder)" Gain.GainDB="Förstärkning (dB)" StretchImage="Sträck bild (ignorera bildförhållandet)" +Resolution="Upplösning" +None="Ingen" +ScaleFiltering="Skalningsfiltrering" +ScaleFiltering.Bilinear="Bilinjär" +ScaleFiltering.Bicubic="Bikubisk" +ScaleFiltering.Lanczos="Lanczos" diff --git a/plugins/obs-filters/data/locale/tr-TR.ini b/plugins/obs-filters/data/locale/tr-TR.ini index be55167..30a9870 100644 --- a/plugins/obs-filters/data/locale/tr-TR.ini +++ b/plugins/obs-filters/data/locale/tr-TR.ini @@ -1,7 +1,6 @@ ColorFilter="Renk Düzeltme" MaskFilter="Görüntü Maskesi/Blend" AsyncDelayFilter="Görüntü Gecikmesi (Async)" -CropFilter="Kırpma" ScrollFilter="Kaydır" ChromaKeyFilter="Chroma Anahtarı" ColorKeyFilter="Renk Anahtarı" diff --git a/plugins/obs-filters/data/locale/zh-CN.ini b/plugins/obs-filters/data/locale/zh-CN.ini index 65ed05e..48033b4 100644 --- a/plugins/obs-filters/data/locale/zh-CN.ini +++ b/plugins/obs-filters/data/locale/zh-CN.ini @@ -1,11 +1,12 @@ ColorFilter="色彩校正" MaskFilter="图像掩码/混合" AsyncDelayFilter="视频延迟(异步)" -CropFilter="剪裁" +CropFilter="裁剪/填充" ScrollFilter="滚动" ChromaKeyFilter="色度键" ColorKeyFilter="色值" SharpnessFilter="锐化" +ScaleFilter="缩放比例" NoiseGate="噪音阈值" Gain="增益" DelayMs="延迟(毫秒)" @@ -51,4 +52,11 @@ NoiseGate.HoldTime="保持时间(毫秒)" NoiseGate.ReleaseTime="释放时间(毫秒)" Gain.GainDB="增益 (dB)" StretchImage="伸展图像 (丢弃图像纵横比)" +Resolution="分辨率" +None="无" +ScaleFiltering="尺度滤波" +ScaleFiltering.Point="点" +ScaleFiltering.Bilinear="双线性算法" +ScaleFiltering.Bicubic="双立方算法" +ScaleFiltering.Lanczos="兰索斯算法" diff --git a/plugins/obs-filters/data/locale/zh-TW.ini b/plugins/obs-filters/data/locale/zh-TW.ini new file mode 100644 index 0000000..e8b0776 --- /dev/null +++ b/plugins/obs-filters/data/locale/zh-TW.ini @@ -0,0 +1,62 @@ +ColorFilter="色彩校正" +MaskFilter="影像遮罩/混合" +AsyncDelayFilter="視頻延遲 (非同步)" +CropFilter="剪裁/填充" +ScrollFilter="捲動" +ChromaKeyFilter="色度鍵" +ColorKeyFilter="色彩鍵" +SharpnessFilter="銳化" +ScaleFilter="縮放/長寬比" +NoiseGate="噪音閾" +Gain="增益" +DelayMs="延遲 (毫秒)" +Type="類型" +MaskBlendType.MaskColor="Alpha 遮罩 (顏色通道)" +MaskBlendType.MaskAlpha="Alpha 遮罩 (Alpha 通道)" +MaskBlendType.BlendMultiply="混合 (乘法)" +MaskBlendType.BlendAddition="混合 (加法)" +MaskBlendType.BlendSubtraction="混合 (減法)" +Path="檔案路徑" +Color="顏色" +Opacity="不透明度" +Contrast="對比" +Brightness="亮度" +Gamma="伽瑪" +BrowsePath.Images="影像檔案" +BrowsePath.AllFiles="所有檔案" +KeyColorType="關鍵顏色類型" +KeyColor="關鍵顏色" +Similarity="相似性 (1-1000)" +Smoothness="平滑度 (1-1000)" +ColorSpillReduction="鍵色溢出減少 (1-1000)" +Crop.Left="左側" +Crop.Right="右側" +Crop.Top="上方" +Crop.Bottom="下方" +Crop.Width="寬度" +Crop.Height="高度" +Crop.Relative="相對" +ScrollFilter.SpeedX="水平速度" +ScrollFilter.SpeedY="垂直速度" +ScrollFilter.LimitWidth="限制寬度" +ScrollFilter.LimitHeight="限制高度" +CustomColor="自訂色彩" +Red="红" +Green="綠" +Blue="藍" +Magenta="洋紅" +NoiseGate.OpenThreshold="開啟閾值 (dB)" +NoiseGate.CloseThreshold="關閉閾值 (dB)" +NoiseGate.AttackTime="起音時間 (Attack time)(毫秒)" +NoiseGate.HoldTime="持續時間 (Hold time)(毫秒)" +NoiseGate.ReleaseTime="釋音時間 (Release time)(毫秒)" +Gain.GainDB="增益 (dB)" +StretchImage="伸展圖像 (無視圖像比例)" +Resolution="解析度" +None="無" +ScaleFiltering="縮放濾鏡" +ScaleFiltering.Point="點" +ScaleFiltering.Bilinear="雙線性插值" +ScaleFiltering.Bicubic="雙三次插值" +ScaleFiltering.Lanczos="Lanczos" + diff --git a/plugins/obs-filters/noise-suppress-filter.c b/plugins/obs-filters/noise-suppress-filter.c new file mode 100644 index 0000000..99cdb3a --- /dev/null +++ b/plugins/obs-filters/noise-suppress-filter.c @@ -0,0 +1,297 @@ +#include +#include + +#include +#include +#include + +/* -------------------------------------------------------- */ + +#define do_log(level, format, ...) \ + blog(level, "[noise suppress: '%s'] " format, \ + obs_source_get_name(ng->context), ##__VA_ARGS__) + +#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__) +#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__) + +#ifdef _DEBUG +#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__) +#else +#define debug(format, ...) +#endif + +/* -------------------------------------------------------- */ + +#define S_SUPPRESS_LEVEL "suppress_level" + +#define MT_ obs_module_text +#define TEXT_SUPPRESS_LEVEL MT_("NoiseSuppress.SuppressLevel") + +#define MAX_PREPROC_CHANNELS 2 + +/* -------------------------------------------------------- */ + +struct noise_suppress_data { + obs_source_t *context; + int suppress_level; + + uint64_t last_timestamp; + + size_t frames; + size_t channels; + + struct circlebuf info_buffer; + struct circlebuf input_buffers[MAX_PREPROC_CHANNELS]; + struct circlebuf output_buffers[MAX_PREPROC_CHANNELS]; + + /* Speex preprocessor state */ + SpeexPreprocessState *states[MAX_PREPROC_CHANNELS]; + + /* 16 bit PCM buffers */ + float *copy_buffers[MAX_PREPROC_CHANNELS]; + spx_int16_t *segment_buffers[MAX_PREPROC_CHANNELS]; + + /* output data */ + struct obs_audio_data output_audio; + DARRAY(float) output_data; +}; + +/* -------------------------------------------------------- */ + +#define SUP_MIN -60 +#define SUP_MAX 0 + +static const float c_32_to_16 = (float)INT16_MAX; +static const float c_16_to_32 = ((float)INT16_MAX + 1.0f); + +/* -------------------------------------------------------- */ + +static const char *noise_suppress_name(void *unused) +{ + UNUSED_PARAMETER(unused); + return obs_module_text("NoiseSuppress"); +} + +static void noise_suppress_destroy(void *data) +{ + struct noise_suppress_data *ng = data; + + for (size_t i = 0; i < ng->channels; i++) { + speex_preprocess_state_destroy(ng->states[i]); + circlebuf_free(&ng->input_buffers[i]); + circlebuf_free(&ng->output_buffers[i]); + } + + bfree(ng->segment_buffers[0]); + bfree(ng->copy_buffers[0]); + circlebuf_free(&ng->info_buffer); + da_free(ng->output_data); + bfree(ng); +} + +static inline void alloc_channel(struct noise_suppress_data *ng, + uint32_t sample_rate, size_t channel, size_t frames) +{ + ng->states[channel] = speex_preprocess_state_init((int)frames, + sample_rate); + + circlebuf_reserve(&ng->input_buffers[channel], frames * sizeof(float)); + circlebuf_reserve(&ng->output_buffers[channel], frames * sizeof(float)); +} + +static void noise_suppress_update(void *data, obs_data_t *s) +{ + struct noise_suppress_data *ng = data; + + uint32_t sample_rate = audio_output_get_sample_rate(obs_get_audio()); + size_t channels = audio_output_get_channels(obs_get_audio()); + size_t frames = (size_t)sample_rate / 100; + + ng->suppress_level = (int)obs_data_get_int(s, S_SUPPRESS_LEVEL); + + /* Process 10 millisecond segments to keep latency low */ + ng->frames = frames; + ng->channels = channels; + + /* Ignore if already allocated */ + if (ng->states[0]) + return; + + /* One speex state for each channel (limit 2) */ + ng->copy_buffers[0] = bmalloc(frames * channels * sizeof(float)); + ng->segment_buffers[0] = bmalloc(frames * channels * sizeof(spx_int16_t)); + + if (channels == 2) { + ng->copy_buffers[1] = ng->copy_buffers[0] + frames; + ng->segment_buffers[1] = ng->segment_buffers[0] + frames; + } + + for (size_t i = 0; i < channels; i++) + alloc_channel(ng, sample_rate, i, frames); +} + +static void *noise_suppress_create(obs_data_t *settings, obs_source_t *filter) +{ + struct noise_suppress_data *ng = + bzalloc(sizeof(struct noise_suppress_data)); + + ng->context = filter; + noise_suppress_update(ng, settings); + return ng; +} + +static inline void process(struct noise_suppress_data *ng) +{ + /* Pop from input circlebuf */ + for (size_t i = 0; i < ng->channels; i++) + circlebuf_pop_front(&ng->input_buffers[i], ng->copy_buffers[i], + ng->frames * sizeof(float)); + + /* Set args */ + for (size_t i = 0; i < ng->channels; i++) + speex_preprocess_ctl(ng->states[i], + SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, + &ng->suppress_level); + + /* Convert to 16bit */ + for (size_t i = 0; i < ng->channels; i++) + for (size_t j = 0; j < ng->frames; j++) + ng->segment_buffers[i][j] = (spx_int16_t) + (ng->copy_buffers[i][j] * c_32_to_16); + + /* Execute */ + for (size_t i = 0; i < ng->channels; i++) + speex_preprocess_run(ng->states[i], ng->segment_buffers[i]); + + /* Convert back to 32bit */ + for (size_t i = 0; i < ng->channels; i++) + for (size_t j = 0; j < ng->frames; j++) + ng->copy_buffers[i][j] = + (float)ng->segment_buffers[i][j] / c_16_to_32; + + /* Push to output circlebuf */ + for (size_t i = 0; i < ng->channels; i++) + circlebuf_push_back(&ng->output_buffers[i], ng->copy_buffers[i], + ng->frames * sizeof(float)); +} + +struct ng_audio_info { + uint32_t frames; + uint64_t timestamp; +}; + +static inline void clear_circlebuf(struct circlebuf *buf) +{ + circlebuf_pop_front(buf, NULL, buf->size); +} + +static void reset_data(struct noise_suppress_data *ng) +{ + for (size_t i = 0; i < ng->channels; i++) { + clear_circlebuf(&ng->input_buffers[i]); + clear_circlebuf(&ng->output_buffers[i]); + } + + clear_circlebuf(&ng->info_buffer); +} + +static struct obs_audio_data *noise_suppress_filter_audio(void *data, + struct obs_audio_data *audio) +{ + struct noise_suppress_data *ng = data; + struct ng_audio_info info; + size_t segment_size = ng->frames * sizeof(float); + size_t out_size; + + if (!ng->states[0]) + return audio; + + /* ----------------------------------------------- + * if timestamp has dramatically changed, consider it a new stream of + * audio data. clear all circular buffers to prevent old audio data + * from being processed as part of the new data. */ + if (ng->last_timestamp) { + int64_t diff = llabs((int64_t)ng->last_timestamp - + (int64_t)audio->timestamp); + + if (diff > 1000000000LL) + reset_data(ng); + } + + ng->last_timestamp = audio->timestamp; + + /* ----------------------------------------------- + * push audio packet info (timestamp/frame count) to info circlebuf */ + info.frames = audio->frames; + info.timestamp = audio->timestamp; + circlebuf_push_back(&ng->info_buffer, &info, sizeof(info)); + + /* ----------------------------------------------- + * push back current audio data to input circlebuf */ + for (size_t i = 0; i < ng->channels; i++) + circlebuf_push_back(&ng->input_buffers[i], audio->data[i], + audio->frames * sizeof(float)); + + /* ----------------------------------------------- + * pop/process each 10ms segments, push back to output circlebuf */ + while (ng->input_buffers[0].size >= segment_size) + process(ng); + + /* ----------------------------------------------- + * peek front of info circlebuf, check to see if we have enough to + * pop the expected packet size, if not, return null */ + memset(&info, 0, sizeof(info)); + circlebuf_peek_front(&ng->info_buffer, &info, sizeof(info)); + out_size = info.frames * sizeof(float); + + if (ng->output_buffers[0].size < out_size) + return NULL; + + /* ----------------------------------------------- + * if there's enough audio data buffered in the output circlebuf, + * pop and return a packet */ + circlebuf_pop_front(&ng->info_buffer, NULL, sizeof(info)); + da_resize(ng->output_data, out_size * ng->channels); + + for (size_t i = 0; i < ng->channels; i++) { + ng->output_audio.data[i] = + (uint8_t*)&ng->output_data.array[i * out_size]; + + circlebuf_pop_front(&ng->output_buffers[i], + ng->output_audio.data[i], + out_size); + } + + ng->output_audio.frames = info.frames; + ng->output_audio.timestamp = info.timestamp; + return &ng->output_audio; +} + +static void noise_suppress_defaults(obs_data_t *s) +{ + obs_data_set_default_int(s, S_SUPPRESS_LEVEL, -30); +} + +static obs_properties_t *noise_suppress_properties(void *data) +{ + obs_properties_t *ppts = obs_properties_create(); + + obs_properties_add_int_slider(ppts, S_SUPPRESS_LEVEL, + TEXT_SUPPRESS_LEVEL, SUP_MIN, SUP_MAX, 0); + + UNUSED_PARAMETER(data); + return ppts; +} + +struct obs_source_info noise_suppress_filter = { + .id = "noise_suppress_filter", + .type = OBS_SOURCE_TYPE_FILTER, + .output_flags = OBS_SOURCE_AUDIO, + .get_name = noise_suppress_name, + .create = noise_suppress_create, + .destroy = noise_suppress_destroy, + .update = noise_suppress_update, + .filter_audio = noise_suppress_filter_audio, + .get_defaults = noise_suppress_defaults, + .get_properties = noise_suppress_properties, +}; diff --git a/plugins/obs-filters/obs-filters-config.h.in b/plugins/obs-filters/obs-filters-config.h.in new file mode 100644 index 0000000..3e560c8 --- /dev/null +++ b/plugins/obs-filters/obs-filters-config.h.in @@ -0,0 +1,11 @@ +#pragma once + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#define SPEEXDSP_ENABLED @LIBSPEEXDSP_FOUND@ diff --git a/plugins/obs-filters/obs-filters.c b/plugins/obs-filters/obs-filters.c index e412de3..fbcdb91 100644 --- a/plugins/obs-filters/obs-filters.c +++ b/plugins/obs-filters/obs-filters.c @@ -1,4 +1,5 @@ #include +#include "obs-filters-config.h" OBS_DECLARE_MODULE() @@ -8,11 +9,15 @@ extern struct obs_source_info mask_filter; extern struct obs_source_info crop_filter; extern struct obs_source_info gain_filter; extern struct obs_source_info color_filter; +extern struct obs_source_info scale_filter; extern struct obs_source_info scroll_filter; extern struct obs_source_info color_key_filter; extern struct obs_source_info sharpness_filter; extern struct obs_source_info chroma_key_filter; extern struct obs_source_info async_delay_filter; +#if SPEEXDSP_ENABLED +extern struct obs_source_info noise_suppress_filter; +#endif extern struct obs_source_info noise_gate_filter; bool obs_module_load(void) @@ -21,11 +26,15 @@ bool obs_module_load(void) obs_register_source(&crop_filter); obs_register_source(&gain_filter); obs_register_source(&color_filter); + obs_register_source(&scale_filter); obs_register_source(&scroll_filter); obs_register_source(&color_key_filter); obs_register_source(&sharpness_filter); obs_register_source(&chroma_key_filter); obs_register_source(&async_delay_filter); +#if SPEEXDSP_ENABLED + obs_register_source(&noise_suppress_filter); +#endif obs_register_source(&noise_gate_filter); return true; } diff --git a/plugins/obs-filters/scale-filter.c b/plugins/obs-filters/scale-filter.c new file mode 100644 index 0000000..e8edfc5 --- /dev/null +++ b/plugins/obs-filters/scale-filter.c @@ -0,0 +1,342 @@ +#include +#include +#include +#include +#include +#include +#include + +#define S_RESOLUTION "resolution" +#define S_SAMPLING "sampling" + +#define T_RESOLUTION obs_module_text("Resolution") +#define T_NONE obs_module_text("None") +#define T_SAMPLING obs_module_text("ScaleFiltering") +#define T_SAMPLING_POINT obs_module_text("ScaleFiltering.Point") +#define T_SAMPLING_BILINEAR obs_module_text("ScaleFiltering.Bilinear") +#define T_SAMPLING_BICUBIC obs_module_text("ScaleFiltering.Bicubic") +#define T_SAMPLING_LANCZOS obs_module_text("ScaleFiltering.Lanczos") + +#define S_SAMPLING_POINT "point" +#define S_SAMPLING_BILINEAR "bilinear" +#define S_SAMPLING_BICUBIC "bicubic" +#define S_SAMPLING_LANCZOS "lanczos" + +struct scale_filter_data { + obs_source_t *context; + gs_effect_t *effect; + gs_eparam_t *image_param; + gs_eparam_t *dimension_param; + struct vec2 dimension_i; + int cx_in; + int cy_in; + int cx_out; + int cy_out; + enum obs_scale_type sampling; + gs_samplerstate_t *point_sampler; + bool aspect_ratio_only : 1; + bool target_valid : 1; + bool valid : 1; +}; + +static const char *scale_filter_name(void *unused) +{ + UNUSED_PARAMETER(unused); + return obs_module_text("ScaleFilter"); +} + +static void scale_filter_update(void *data, obs_data_t *settings) +{ + struct scale_filter_data *filter = data; + int ret; + + const char *res_str = obs_data_get_string(settings, S_RESOLUTION); + const char *sampling = obs_data_get_string(settings, S_SAMPLING); + + filter->valid = true; + + ret = sscanf(res_str, "%dx%d", &filter->cx_in, &filter->cy_in); + if (ret == 2) { + filter->aspect_ratio_only = false; + } else { + ret = sscanf(res_str, "%d:%d", &filter->cx_in, &filter->cy_in); + if (ret != 2) { + filter->valid = false; + return; + } + + filter->aspect_ratio_only = true; + } + + if (astrcmpi(sampling, S_SAMPLING_POINT) == 0) { + filter->sampling = OBS_SCALE_POINT; + + } else if (astrcmpi(sampling, S_SAMPLING_BILINEAR) == 0) { + filter->sampling = OBS_SCALE_BILINEAR; + + } else if (astrcmpi(sampling, S_SAMPLING_LANCZOS) == 0) { + filter->sampling = OBS_SCALE_LANCZOS; + + } else { /* S_SAMPLING_BICUBIC */ + filter->sampling = OBS_SCALE_BICUBIC; + } +} + +static void scale_filter_destroy(void *data) +{ + struct scale_filter_data *filter = data; + + obs_enter_graphics(); + gs_samplerstate_destroy(filter->point_sampler); + obs_leave_graphics(); + bfree(data); +} + +static void *scale_filter_create(obs_data_t *settings, obs_source_t *context) +{ + struct scale_filter_data *filter = + bzalloc(sizeof(struct scale_filter_data)); + struct gs_sampler_info sampler_info = {0}; + + filter->context = context; + + obs_enter_graphics(); + filter->point_sampler = gs_samplerstate_create(&sampler_info); + obs_leave_graphics(); + + scale_filter_update(filter, settings); + return filter; +} + +static void scale_filter_tick(void *data, float seconds) +{ + struct scale_filter_data *filter = data; + enum obs_base_effect type; + obs_source_t *target; + bool lower_than_2x; + double cx_f; + double cy_f; + int cx; + int cy; + + target = obs_filter_get_target(filter->context); + filter->cx_out = 0; + filter->cy_out = 0; + + filter->target_valid = !!target; + if (!filter->target_valid) + return; + + cx = obs_source_get_base_width(target); + cy = obs_source_get_base_height(target); + + if (!cx || !cy) { + filter->target_valid = false; + return; + } + + filter->cx_out = cx; + filter->cy_out = cy; + + if (!filter->valid) + return; + + /* ------------------------- */ + + cx_f = (double)cx; + cy_f = (double)cy; + + if (filter->aspect_ratio_only) { + double old_aspect = cx_f / cy_f; + double new_aspect = + (double)filter->cx_in / (double)filter->cy_in; + + if (fabs(old_aspect - new_aspect) <= EPSILON) { + filter->target_valid = false; + return; + } else { + if (new_aspect > old_aspect) { + filter->cx_out = (int)(cy_f * new_aspect); + filter->cy_out = cy; + } else { + filter->cx_out = cx; + filter->cy_out = (int)(cx_f / new_aspect); + } + } + } else { + filter->cx_out = filter->cx_in; + filter->cy_out = filter->cy_in; + } + + vec2_set(&filter->dimension_i, + 1.0f / (float)cx, + 1.0f / (float)cy); + + /* ------------------------- */ + + lower_than_2x = filter->cx_out < cx / 2 || filter->cy_out < cy / 2; + + if (lower_than_2x && filter->sampling != OBS_SCALE_POINT) { + type = OBS_EFFECT_BILINEAR_LOWRES; + } else { + switch (filter->sampling) { + default: + case OBS_SCALE_POINT: + case OBS_SCALE_BILINEAR: type = OBS_EFFECT_DEFAULT; break; + case OBS_SCALE_BICUBIC: type = OBS_EFFECT_BICUBIC; break; + case OBS_SCALE_LANCZOS: type = OBS_EFFECT_LANCZOS; break; + } + } + + filter->effect = obs_get_base_effect(type); + filter->image_param = gs_effect_get_param_by_name(filter->effect, + "image"); + + if (type != OBS_EFFECT_DEFAULT) { + filter->dimension_param = gs_effect_get_param_by_name( + filter->effect, "base_dimension_i"); + } else { + filter->dimension_param = NULL; + } + + UNUSED_PARAMETER(seconds); +} + +static void scale_filter_render(void *data, gs_effect_t *effect) +{ + struct scale_filter_data *filter = data; + + if (!filter->valid || !filter->target_valid) { + obs_source_skip_video_filter(filter->context); + return; + } + + if (!obs_source_process_filter_begin(filter->context, GS_RGBA, + OBS_NO_DIRECT_RENDERING)) + return; + + if (filter->dimension_param) + gs_effect_set_vec2(filter->dimension_param, + &filter->dimension_i); + + if (filter->sampling == OBS_SCALE_POINT) + gs_effect_set_next_sampler(filter->image_param, + filter->point_sampler); + + obs_source_process_filter_end(filter->context, filter->effect, + filter->cx_out, filter->cy_out); + + UNUSED_PARAMETER(effect); +} + +static const double downscale_vals[] = { + 1.0, + 1.25, + (1.0/0.75), + 1.5, + (1.0/0.6), + 1.75, + 2.0, + 2.25, + 2.5, + 2.75, + 3.0 +}; + +#define NUM_DOWNSCALES (sizeof(downscale_vals) / sizeof(double)) + +static const char *aspects[] = { + "16:9", + "16:10", + "4:3", + "1:1" +}; + +#define NUM_ASPECTS (sizeof(aspects) / sizeof(const char *)) + +static obs_properties_t *scale_filter_properties(void *data) +{ + obs_properties_t *props = obs_properties_create(); + struct obs_video_info ovi; + obs_property_t *p; + uint32_t cx; + uint32_t cy; + + struct { + int cx; + int cy; + } downscales[NUM_DOWNSCALES]; + + /* ----------------- */ + + obs_get_video_info(&ovi); + cx = ovi.base_width; + cy = ovi.base_height; + + for (size_t i = 0; i < NUM_DOWNSCALES; i++) { + downscales[i].cx = (int)((double)cx / downscale_vals[i]); + downscales[i].cy = (int)((double)cy / downscale_vals[i]); + } + + p = obs_properties_add_list(props, S_SAMPLING, T_SAMPLING, + OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); + obs_property_list_add_string(p, T_SAMPLING_POINT, S_SAMPLING_POINT); + obs_property_list_add_string(p, T_SAMPLING_BILINEAR, S_SAMPLING_BILINEAR); + obs_property_list_add_string(p, T_SAMPLING_BICUBIC, S_SAMPLING_BICUBIC); + obs_property_list_add_string(p, T_SAMPLING_LANCZOS, S_SAMPLING_LANCZOS); + + /* ----------------- */ + + p = obs_properties_add_list(props, S_RESOLUTION, T_RESOLUTION, + OBS_COMBO_TYPE_EDITABLE, OBS_COMBO_FORMAT_STRING); + + obs_property_list_add_string(p, T_NONE, T_NONE); + + for (size_t i = 0; i < NUM_ASPECTS; i++) + obs_property_list_add_string(p, aspects[i], aspects[i]); + + for (size_t i = 0; i < NUM_DOWNSCALES; i++) { + char str[32]; + snprintf(str, 32, "%dx%d", downscales[i].cx, downscales[i].cy); + obs_property_list_add_string(p, str, str); + } + + /* ----------------- */ + + UNUSED_PARAMETER(data); + return props; +} + +static void scale_filter_defaults(obs_data_t *settings) +{ + obs_data_set_default_string(settings, S_SAMPLING, S_SAMPLING_BICUBIC); + obs_data_set_default_string(settings, S_RESOLUTION, T_NONE); +} + +static uint32_t scale_filter_width(void *data) +{ + struct scale_filter_data *filter = data; + return (uint32_t)filter->cx_out; +} + +static uint32_t scale_filter_height(void *data) +{ + struct scale_filter_data *filter = data; + return (uint32_t)filter->cy_out; +} + +struct obs_source_info scale_filter = { + .id = "scale_filter", + .type = OBS_SOURCE_TYPE_FILTER, + .output_flags = OBS_SOURCE_VIDEO, + .get_name = scale_filter_name, + .create = scale_filter_create, + .destroy = scale_filter_destroy, + .video_tick = scale_filter_tick, + .video_render = scale_filter_render, + .update = scale_filter_update, + .get_properties = scale_filter_properties, + .get_defaults = scale_filter_defaults, + .get_width = scale_filter_width, + .get_height = scale_filter_height +}; diff --git a/plugins/obs-filters/scroll-filter.c b/plugins/obs-filters/scroll-filter.c index 1e38a77..2ad8793 100644 --- a/plugins/obs-filters/scroll-filter.c +++ b/plugins/obs-filters/scroll-filter.c @@ -7,8 +7,10 @@ struct scroll_filter_data { gs_effect_t *effect; gs_eparam_t *param_add; gs_eparam_t *param_mul; + gs_eparam_t *param_image; struct vec2 scroll_speed; + gs_samplerstate_t *sampler; bool limit_cx; bool limit_cy; uint32_t cx; @@ -29,10 +31,17 @@ static void *scroll_filter_create(obs_data_t *settings, obs_source_t *context) struct scroll_filter_data *filter = bzalloc(sizeof(*filter)); char *effect_path = obs_module_file("crop_filter.effect"); + struct gs_sampler_info sampler_info = { + .filter = GS_FILTER_LINEAR, + .address_u = GS_ADDRESS_WRAP, + .address_v = GS_ADDRESS_WRAP + }; + filter->context = context; obs_enter_graphics(); filter->effect = gs_effect_create_from_file(effect_path, NULL); + filter->sampler = gs_samplerstate_create(&sampler_info); obs_leave_graphics(); bfree(effect_path); @@ -46,6 +55,8 @@ static void *scroll_filter_create(obs_data_t *settings, obs_source_t *context) "add_val"); filter->param_mul = gs_effect_get_param_by_name(filter->effect, "mul_val"); + filter->param_image = gs_effect_get_param_by_name(filter->effect, + "image"); obs_source_update(context, settings); return filter; @@ -57,6 +68,7 @@ static void scroll_filter_destroy(void *data) obs_enter_graphics(); gs_effect_destroy(filter->effect); + gs_samplerstate_destroy(filter->sampler); obs_leave_graphics(); bfree(filter); @@ -187,6 +199,8 @@ static void scroll_filter_render(void *data, gs_effect_t *effect) gs_effect_set_vec2(filter->param_add, &filter->offset); gs_effect_set_vec2(filter->param_mul, &mul_val); + gs_effect_set_next_sampler(filter->param_image, filter->sampler); + obs_source_process_filter_end(filter->context, filter->effect, cx, cy); UNUSED_PARAMETER(effect); diff --git a/plugins/obs-outputs/CMakeLists.txt b/plugins/obs-outputs/CMakeLists.txt index f0e42f0..1051974 100644 --- a/plugins/obs-outputs/CMakeLists.txt +++ b/plugins/obs-outputs/CMakeLists.txt @@ -62,6 +62,7 @@ endif() set(obs-outputs_HEADERS obs-output-ver.h rtmp-helpers.h + net-if.h flv-mux.h flv-output.h librtmp) @@ -69,7 +70,8 @@ set(obs-outputs_SOURCES obs-outputs.c rtmp-stream.c flv-output.c - flv-mux.c) + flv-mux.c + net-if.c) add_library(obs-outputs MODULE ${obs-outputs_SOURCES} diff --git a/plugins/obs-outputs/data/locale/en-US.ini b/plugins/obs-outputs/data/locale/en-US.ini index 1a3a7fe..c28e54e 100644 --- a/plugins/obs-outputs/data/locale/en-US.ini +++ b/plugins/obs-outputs/data/locale/en-US.ini @@ -2,3 +2,4 @@ RTMPStream="RTMP Stream" RTMPStream.DropThreshold="Drop Threshold (milliseconds)" FLVOutput="FLV File Output" FLVOutput.FilePath="File Path" +Default="Default" diff --git a/plugins/obs-outputs/data/locale/fi-FI.ini b/plugins/obs-outputs/data/locale/fi-FI.ini index 05b45be..c84208c 100644 --- a/plugins/obs-outputs/data/locale/fi-FI.ini +++ b/plugins/obs-outputs/data/locale/fi-FI.ini @@ -1,5 +1,5 @@ RTMPStream="RTMP-virtaus" -RTMPStream.DropThreshold="Pudotuskynnys (ms)" +RTMPStream.DropThreshold="Pudotuskynnys (millisekuntia)" FLVOutput="FLV-tiedosto ulostulo" FLVOutput.FilePath="Tiedostopolku" diff --git a/plugins/obs-outputs/data/locale/zh-TW.ini b/plugins/obs-outputs/data/locale/zh-TW.ini index 487f8cd..f002021 100644 --- a/plugins/obs-outputs/data/locale/zh-TW.ini +++ b/plugins/obs-outputs/data/locale/zh-TW.ini @@ -1,5 +1,5 @@ RTMPStream="RTMP 串流" -RTMPStream.DropThreshold="丟失阈值(毫秒)" +RTMPStream.DropThreshold="丟棄閾值 (毫秒)" FLVOutput="FLV 檔案輸出" FLVOutput.FilePath="檔案路徑" diff --git a/plugins/obs-outputs/flv-output.c b/plugins/obs-outputs/flv-output.c index 35c5596..a0e803a 100644 --- a/plugins/obs-outputs/flv-output.c +++ b/plugins/obs-outputs/flv-output.c @@ -46,14 +46,14 @@ static const char *flv_output_getname(void *unused) return obs_module_text("FLVOutput"); } -static void flv_output_stop(void *data); +static void flv_output_stop(void *data, uint64_t ts); static void flv_output_destroy(void *data) { struct flv_output *stream = data; if (stream->active) - flv_output_stop(data); + flv_output_stop(data, 0); dstr_free(&stream->path); bfree(stream); @@ -68,7 +68,7 @@ static void *flv_output_create(obs_data_t *settings, obs_output_t *output) return stream; } -static void flv_output_stop(void *data) +static void flv_output_stop(void *data, uint64_t ts) { struct flv_output *stream = data; @@ -84,6 +84,8 @@ static void flv_output_stop(void *data) info("FLV file output complete"); } + + UNUSED_PARAMETER(ts); } static int write_packet(struct flv_output *stream, diff --git a/plugins/obs-outputs/net-if.c b/plugins/obs-outputs/net-if.c new file mode 100644 index 0000000..28dc087 --- /dev/null +++ b/plugins/obs-outputs/net-if.c @@ -0,0 +1,270 @@ +/****************************************************************************** + Copyright (C) 2016 B. Lee + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +******************************************************************************/ + +#include "net-if.h" +#include +#include + +#define do_log(level, format, ...) \ + blog(level, "[net if] " format, ##__VA_ARGS__) + +#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__) +#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__) +#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__) + +static inline void netif_saddr_data_push_back(struct netif_saddr_data *sd, + const char *ip, const char *adapter) +{ + struct netif_saddr_item item; + struct dstr full_name = {0}; + char *ip_dup = bstrdup(ip); + + if (adapter && *adapter) + dstr_printf(&full_name, "[%s] %s", adapter, ip); + else + dstr_copy(&full_name, ip); + + item.name = full_name.array; + item.addr = ip_dup; + + da_push_back(sd->addrs, &item); +} + +static void netif_convert_to_string(char *dest, + struct sockaddr_storage *byte_address) +{ + int family = byte_address->ss_family; + char temp_char[INET6_ADDRSTRLEN] = {0}; + +#ifndef _WIN32 + if (family == AF_INET) + inet_ntop(family, &(((struct sockaddr_in*)byte_address)->sin_addr), + temp_char, INET6_ADDRSTRLEN); + else if (family == AF_INET6) + inet_ntop(family, &(((struct sockaddr_in*)byte_address)->sin_addr), + temp_char, INET6_ADDRSTRLEN); +#else + if (family == AF_INET) + InetNtopA(family, &(((SOCKADDR_IN *)byte_address)->sin_addr), + temp_char, INET6_ADDRSTRLEN); + else if (family == AF_INET6) + InetNtopA(family, &(((SOCKADDR_IN6 *)byte_address)->sin6_addr), + temp_char, INET6_ADDRSTRLEN); +#endif + strncpy(dest, temp_char, INET6_ADDRSTRLEN); +} + +static void netif_push(struct sockaddr *copy_source, + struct netif_saddr_data *saddr_d, + const char *adapter) +{ + char temp_char[INET6_ADDRSTRLEN] = {0}; + struct sockaddr_storage sa = {0}; + + if (copy_source->sa_family == AF_INET) + memcpy(&sa, copy_source, sizeof(struct sockaddr_in)); + else if (copy_source->sa_family == AF_INET6) + memcpy(&sa, copy_source, sizeof(struct sockaddr_in6)); + + netif_convert_to_string(temp_char, &sa); + netif_saddr_data_push_back(saddr_d, temp_char, adapter); +} + +void netif_log_saddrs(struct netif_saddr_data *sd) +{ + for(size_t i = 0; i < sd->addrs.num; i++) + info("\t\t%s", sd->addrs.array[i].name); +} + +bool netif_str_to_addr(struct sockaddr_storage *out, int *addr_len, + const char *addr) +{ + bool ipv6; + + memset(out, 0, sizeof(*out)); + *addr_len = 0; + + if (!addr) + return false; + + ipv6 = (strchr(addr, ':') != NULL); + out->ss_family = ipv6 ? AF_INET6 : AF_INET; + *addr_len = sizeof(*out); + +#ifdef _WIN32 + int ret = WSAStringToAddressA((LPSTR)addr, out->ss_family, NULL, + (LPSOCKADDR)out, addr_len); + if (ret == SOCKET_ERROR) + warn("Could not parse address, error code: %d", GetLastError()); + return ret != SOCKET_ERROR; +#else + struct sockaddr_in *sin = (struct sockaddr_in *)out; + if (inet_pton(out->ss_family, addr, &sin->sin_addr)) { + *addr_len = ipv6 ? + sizeof(struct sockaddr_in6) : + sizeof(struct sockaddr_in); + return true; + } + + return false; +#endif +} + +#ifndef _WIN32 +static inline bool is_loopback(struct ifaddrs *ifa) +{ + const char *n = ifa->ifa_name; + return n && (strcmp(n, "lo") == 0 || strcmp(n, "lo0") == 0); +} + +static inline void netif_get_addrs_nix(struct netif_saddr_data *ifaddrs) +{ + struct ifaddrs *ifaddr, *ifa; + unsigned int family, s; + char host[NI_MAXHOST]; + + if (getifaddrs(&ifaddr) == -1) { + warn("getifaddrs() failed"); + return; + } + + for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { + if (ifa->ifa_addr == NULL || is_loopback(ifa)) + continue; + + family = ifa->ifa_addr->sa_family; + + if ((family == AF_INET) || (family == AF_INET6)) { + s = getnameinfo(ifa->ifa_addr, + (family == AF_INET) ? + sizeof(struct sockaddr_in) : + sizeof(struct sockaddr_in6), + host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (s != 0) { + warn("getnameinfo() failed: %s", + gai_strerror(s)); + continue; + } + + netif_push(ifa->ifa_addr, ifaddrs, ifa->ifa_name); + } + } + + freeifaddrs(ifaddr); +} + +#else + +static inline PIP_ADAPTER_ADDRESSES get_adapters(void) +{ + PIP_ADAPTER_ADDRESSES adapter = NULL; + unsigned long ret = 0; + unsigned long out_buf_len = 4096; + unsigned long flags = + GAA_FLAG_SKIP_ANYCAST | + GAA_FLAG_SKIP_MULTICAST | + GAA_FLAG_SKIP_DNS_SERVER; + const int max_tries = 3; + int i = 0; + + do { + adapter = (IP_ADAPTER_ADDRESSES*)bmalloc(out_buf_len); + if (!adapter) + return NULL; + + ret = GetAdaptersAddresses(AF_UNSPEC, flags, NULL, adapter, + &out_buf_len); + if (ret == ERROR_BUFFER_OVERFLOW) { + bfree(adapter); + adapter = NULL; + } else { + break; + } + i++; + } while ((ret == ERROR_BUFFER_OVERFLOW) && (i < max_tries)); + + if (ret != NO_ERROR && ret != ERROR_NO_DATA) { + LPSTR msg_buf = NULL; + + bfree(adapter); + adapter = NULL; + + FormatMessageA( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, ret, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + msg_buf, 0, NULL); + if (msg_buf) { + warn("Call to GetAdaptersAddresses failed: %s (%d)", + msg_buf, ret); + LocalFree(msg_buf); + } + } + + return adapter; +} + +static inline void netif_get_addrs_win32(struct netif_saddr_data *ifaddrs) +{ + PIP_ADAPTER_ADDRESSES adapter = get_adapters(); + PIP_ADAPTER_UNICAST_ADDRESS unicast = NULL; + PIP_ADAPTER_ADDRESSES cur_adap = NULL; + SOCKET_ADDRESS socket_addr; + int family; + + if (!adapter) + return; + + for (cur_adap = adapter; !!cur_adap; cur_adap = cur_adap->Next) { + char *adap_name = NULL; + + if (cur_adap->OperStatus != IfOperStatusUp || + cur_adap->IfType == IF_TYPE_SOFTWARE_LOOPBACK) + continue; + + os_wcs_to_utf8_ptr(cur_adap->FriendlyName, 0, &adap_name); + + unicast = cur_adap->FirstUnicastAddress; + + for (; !!unicast; unicast = unicast->Next) { + socket_addr = unicast->Address; + + family = socket_addr.lpSockaddr->sa_family; + if (family == AF_INET || family == AF_INET6) + netif_push(socket_addr.lpSockaddr, ifaddrs, + adap_name); + } + + bfree(adap_name); + } + + bfree(adapter); +} +#endif + +void netif_get_addrs(struct netif_saddr_data *ifaddrs) +{ + da_init(ifaddrs->addrs); + +#ifdef _WIN32 + netif_get_addrs_win32(ifaddrs); +#else + netif_get_addrs_nix(ifaddrs); +#endif +} diff --git a/plugins/obs-outputs/net-if.h b/plugins/obs-outputs/net-if.h new file mode 100644 index 0000000..4ff1c76 --- /dev/null +++ b/plugins/obs-outputs/net-if.h @@ -0,0 +1,76 @@ +/****************************************************************************** + Copyright (C) 2016 B. Lee + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +******************************************************************************/ + +#pragma once + +#include + +#ifdef _WIN32 +# include +# include +# include +# include +#else + +# ifdef __linux__ +# include +# elif __FreeBSD__ +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# define __NET_IF_GNU_SOURCE__ +# endif //_GNU_SOURCE +# endif //__FreeBSD__ + +# include +# include +# include +# include +# include +# include +# include + +# ifdef __FreeBSD__ +# ifdef ___NET_IF_GNU_SOURCE__ +# undef ___NET_IF_GNU_SOURCE__ +# undef _GNU_SOURCE +# endif +# endif + +#endif + +struct netif_saddr_item { + char *name; + char *addr; +}; + +struct netif_saddr_data { + DARRAY(struct netif_saddr_item) addrs; +}; + +static inline void netif_saddr_data_free(struct netif_saddr_data *data) +{ + for (size_t i = 0; i < data->addrs.num; i++) { + bfree(data->addrs.array[i].name); + bfree(data->addrs.array[i].addr); + } + da_free(data->addrs); +} + +extern bool netif_str_to_addr(struct sockaddr_storage *out, int *addr_len, + const char *addr); +extern void netif_get_addrs(struct netif_saddr_data *ifaddrs); +extern void netif_log_saddrs(struct netif_saddr_data *sd); diff --git a/plugins/obs-outputs/rtmp-stream.c b/plugins/obs-outputs/rtmp-stream.c index 9fbdc98..822f10e 100644 --- a/plugins/obs-outputs/rtmp-stream.c +++ b/plugins/obs-outputs/rtmp-stream.c @@ -25,6 +25,7 @@ #include "librtmp/rtmp.h" #include "librtmp/log.h" #include "flv-mux.h" +#include "net-if.h" #ifdef _WIN32 #include @@ -42,6 +43,7 @@ #define OPT_DROP_THRESHOLD "drop_threshold_ms" #define OPT_MAX_SHUTDOWN_TIME_SEC "max_shutdown_time_sec" +#define OPT_BIND_IP "bind_ip" //#define TEST_FRAMEDROPS @@ -63,10 +65,12 @@ struct rtmp_stream { os_sem_t *send_sem; os_event_t *stop_event; + uint64_t stop_ts; struct dstr path, key; struct dstr username, password; struct dstr encoder_name; + struct dstr bind_ip; /* frame drop variables */ int64_t drop_threshold_usec; @@ -146,6 +150,7 @@ static void rtmp_stream_destroy(void *data) if (stream->connecting) pthread_join(stream->connect_thread, NULL); + stream->stop_ts = 0; os_event_signal(stream->stop_event); if (active(stream)) { @@ -162,6 +167,7 @@ static void rtmp_stream_destroy(void *data) dstr_free(&stream->username); dstr_free(&stream->password); dstr_free(&stream->encoder_name); + dstr_free(&stream->bind_ip); os_event_destroy(stream->stop_event); os_sem_destroy(stream->send_sem); pthread_mutex_destroy(&stream->packets_mutex); @@ -193,7 +199,7 @@ fail: return NULL; } -static void rtmp_stream_stop(void *data) +static void rtmp_stream_stop(void *data, uint64_t ts) { struct rtmp_stream *stream = data; @@ -203,11 +209,12 @@ static void rtmp_stream_stop(void *data) if (connecting(stream)) pthread_join(stream->connect_thread, NULL); + stream->stop_ts = ts / 1000ULL; os_event_signal(stream->stop_event); if (active(stream)) { - os_sem_post(stream->send_sem); - obs_output_end_data_capture(stream->output); + if (stream->stop_ts == 0) + os_sem_post(stream->send_sem); } } @@ -313,33 +320,6 @@ static int send_packet(struct rtmp_stream *stream, static inline bool send_headers(struct rtmp_stream *stream); -static bool send_remaining_packets(struct rtmp_stream *stream) -{ - struct encoder_packet packet; - uint64_t max_ns = (uint64_t)stream->max_shutdown_time_sec * 1000000000; - uint64_t begin_time_ns = os_gettime_ns(); - - if (!stream->sent_headers) { - if (!send_headers(stream)) - return false; - } - - while (get_next_packet(stream, &packet)) { - if (send_packet(stream, &packet, false, packet.track_idx) < 0) - return false; - - /* Just disconnect if it takes too long to shut down */ - if ((os_gettime_ns() - begin_time_ns) > max_ns) { - info("Took longer than %d second(s) to shut down, " - "automatically stopping connection", - stream->max_shutdown_time_sec); - return false; - } - } - - return true; -} - static void *send_thread(void *data) { struct rtmp_stream *stream = data; @@ -349,11 +329,20 @@ static void *send_thread(void *data) while (os_sem_wait(stream->send_sem) == 0) { struct encoder_packet packet; - if (stopping(stream)) + if (stopping(stream) && stream->stop_ts == 0) { break; + } + if (!get_next_packet(stream, &packet)) continue; + if (stopping(stream)) { + if (packet.sys_dts_usec >= (int64_t)stream->stop_ts) { + obs_free_encoder_packet(&packet); + break; + } + } + if (!stream->sent_headers) { if (!send_headers(stream)) { os_atomic_set_bool(&stream->disconnected, true); @@ -367,12 +356,8 @@ static void *send_thread(void *data) } } - if (!disconnected(stream) && !send_remaining_packets(stream)) - os_atomic_set_bool(&stream->disconnected, true); - if (disconnected(stream)) { info("Disconnected from %s", stream->path.array); - free_packets(stream); } else { info("User stopped the stream"); } @@ -382,8 +367,11 @@ static void *send_thread(void *data) if (!stopping(stream)) { pthread_detach(stream->send_thread); obs_output_signal_stop(stream->output, OBS_OUTPUT_DISCONNECTED); + } else { + obs_output_end_data_capture(stream->output); } + free_packets(stream); os_event_reset(stream->stop_event); os_atomic_set_bool(&stream->active, false); stream->sent_headers = false; @@ -453,7 +441,6 @@ static inline bool send_headers(struct rtmp_stream *stream) stream->sent_headers = true; size_t i = 0; bool next = true; - bool fail = false; if (!send_audio_header(stream, i++, &next)) return false; @@ -617,6 +604,17 @@ static int try_connect(struct rtmp_stream *stream) set_rtmp_dstr(&stream->rtmp.Link.flashVer, &stream->encoder_name); stream->rtmp.Link.swfUrl = stream->rtmp.Link.tcUrl; + if (dstr_is_empty(&stream->bind_ip) || + dstr_cmp(&stream->bind_ip, "default") == 0) { + memset(&stream->rtmp.m_bindIP, 0, sizeof(stream->rtmp.m_bindIP)); + } else { + bool success = netif_str_to_addr(&stream->rtmp.m_bindIP.addr, + &stream->rtmp.m_bindIP.addrLen, + stream->bind_ip.array); + if (success) + info("Binding to IP"); + } + RTMP_AddStream(&stream->rtmp, stream->key.array); for (size_t idx = 1;; idx++) { @@ -653,6 +651,7 @@ static bool init_connect(struct rtmp_stream *stream) { obs_service_t *service; obs_data_t *settings; + const char *bind_ip; if (stopping(stream)) pthread_join(stream->send_thread, NULL); @@ -680,6 +679,10 @@ static bool init_connect(struct rtmp_stream *stream) (int64_t)obs_data_get_int(settings, OPT_DROP_THRESHOLD) * 1000; stream->max_shutdown_time_sec = (int)obs_data_get_int(settings, OPT_MAX_SHUTDOWN_TIME_SEC); + + bind_ip = obs_data_get_string(settings, OPT_BIND_IP); + dstr_copy(&stream->bind_ip, bind_ip); + obs_data_release(settings); return true; } @@ -826,7 +829,7 @@ static void rtmp_stream_data(void *data, struct encoder_packet *packet) struct encoder_packet new_packet; bool added_packet = false; - if (disconnected(stream)) + if (disconnected(stream) || !active(stream)) return; if (packet->type == OBS_ENCODER_VIDEO) @@ -854,6 +857,7 @@ static void rtmp_stream_defaults(obs_data_t *defaults) { obs_data_set_default_int(defaults, OPT_DROP_THRESHOLD, 600); obs_data_set_default_int(defaults, OPT_MAX_SHUTDOWN_TIME_SEC, 5); + obs_data_set_default_string(defaults, OPT_BIND_IP, "default"); } static obs_properties_t *rtmp_stream_properties(void *unused) @@ -861,11 +865,26 @@ static obs_properties_t *rtmp_stream_properties(void *unused) UNUSED_PARAMETER(unused); obs_properties_t *props = obs_properties_create(); + struct netif_saddr_data addrs = {0}; + obs_property_t *p; obs_properties_add_int(props, OPT_DROP_THRESHOLD, obs_module_text("RTMPStream.DropThreshold"), 200, 10000, 100); + p = obs_properties_add_list(props, OPT_BIND_IP, + obs_module_text("RTMPStream.BindIP"), + OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); + + obs_property_list_add_string(p, obs_module_text("Default"), "default"); + + netif_get_addrs(&addrs); + for (size_t i = 0; i < addrs.addrs.num; i++) { + struct netif_saddr_item item = addrs.addrs.array[i]; + obs_property_list_add_string(p, item.name, item.addr); + } + netif_saddr_data_free(&addrs); + return props; } diff --git a/plugins/obs-transitions/CMakeLists.txt b/plugins/obs-transitions/CMakeLists.txt index c6b6f57..3b8838d 100644 --- a/plugins/obs-transitions/CMakeLists.txt +++ b/plugins/obs-transitions/CMakeLists.txt @@ -7,6 +7,7 @@ set(obs-transitions_SOURCES transition-fade.c transition-cut.c transition-fade-to-color.c + transition-luma-wipe.c ) add_library(obs-transitions MODULE diff --git a/plugins/obs-transitions/data/locale/en-US.ini b/plugins/obs-transitions/data/locale/en-US.ini index a207269..3bf1684 100644 --- a/plugins/obs-transitions/data/locale/en-US.ini +++ b/plugins/obs-transitions/data/locale/en-US.ini @@ -11,3 +11,41 @@ Direction.Down="Down" SwipeIn="Swipe In" Color="Color" SwitchPoint="Peak Color Point (percentage)" +LumaWipeTransition="Luma Wipe" +LumaWipe.Image="Image" +LumaWipe.Invert="Invert" +LumaWipe.Softness="Softness" +LumaWipe.Type.BarndoorBottomLeft="Barndoor Bottom Left" +LumaWipe.Type.BarndoorHorizontal="Barndoor Horizontal" +LumaWipe.Type.BarndoorTopLeft="Barndoor Top Left" +LumaWipe.Type.BarndoorVertical="Barndoor Vertical" +LumaWipe.Type.BlindsHorizontal="Blinds Horizontal" +LumaWipe.Type.BoxBottomLeft="Box Bottom Left" +LumaWipe.Type.BoxBottomRight="Box Bottom Right" +LumaWipe.Type.BoxTopLeft="Box Top Left" +LumaWipe.Type.BoxTopRight="Box Top Right" +LumaWipe.Type.Burst="Burst" +LumaWipe.Type.CheckerboardSmall="Checkerboard Small" +LumaWipe.Type.Circles="Circles" +LumaWipe.Type.Clock="Clock" +LumaWipe.Type.Cloud="Cloud" +LumaWipe.Type.Curtain="Curtain" +LumaWipe.Type.Fan="Fan" +LumaWipe.Type.Fractal="Fractal" +LumaWipe.Type.Iris="Iris" +LumaWipe.Type.LinearHorizontal="Linear Horizontal" +LumaWipe.Type.LinearTopLeft="Linear Top Left" +LumaWipe.Type.LinearTopRight="Linear Top Right" +LumaWipe.Type.LinearVertical="Linear Vertical" +LumaWipe.Type.ParallelZigzagHorizontal="Parallel Zigzag Horizontal" +LumaWipe.Type.ParallelZigzagVertical="Parallel Zigzag Vertical" +LumaWipe.Type.Sinus9="Sinus 9" +LumaWipe.Type.Spiral="Spiral" +LumaWipe.Type.Square="Square" +LumaWipe.Type.Squares="Squares" +LumaWipe.Type.Stripes="Stripes" +LumaWipe.Type.StripsHorizontal="Strips Horizontal" +LumaWipe.Type.StripsVertical="Strips Vertical" +LumaWipe.Type.Watercolor="Watercolor" +LumaWipe.Type.ZigzagHorizontal="Zigzag Horizontal" +LumaWipe.Type.ZigzagVertical="Zigzag Vertical" diff --git a/plugins/obs-transitions/data/locale/it-IT.ini b/plugins/obs-transitions/data/locale/it-IT.ini new file mode 100644 index 0000000..7a7c7fb --- /dev/null +++ b/plugins/obs-transitions/data/locale/it-IT.ini @@ -0,0 +1,14 @@ +FadeTransition="Dissolvenza" +CutTransition="Taglio" +SwipeTransition="Scorri" +SlideTransition="Scivola" +FadeToColorTransition="Dissolvenza a colore" +Direction="Direzione" +Direction.Left="Sinistra" +Direction.Right="Destra" +Direction.Up="Sù" +Direction.Down="Giù" +SwipeIn="Scorri verso l'alto" +Color="Colore" +SwitchPoint="Picco Punto Colore (percentuale)" + diff --git a/plugins/obs-transitions/data/locale/nb-NO.ini b/plugins/obs-transitions/data/locale/nb-NO.ini new file mode 100644 index 0000000..56d5b20 --- /dev/null +++ b/plugins/obs-transitions/data/locale/nb-NO.ini @@ -0,0 +1,14 @@ +FadeTransition="Forløpning" +CutTransition="Kutt" +SwipeTransition="Sveip" +SlideTransition="Skyv" +FadeToColorTransition="Forløpning til farge" +Direction="Retning" +Direction.Left="Venstre" +Direction.Right="Høyre" +Direction.Up="Opp" +Direction.Down="Ned" +SwipeIn="Sveip inn" +Color="Farge" +SwitchPoint="Farge ved høydepunkt (prosent)" + diff --git a/plugins/obs-transitions/data/locale/nl-NL.ini b/plugins/obs-transitions/data/locale/nl-NL.ini index 7986bac..df6765f 100644 --- a/plugins/obs-transitions/data/locale/nl-NL.ini +++ b/plugins/obs-transitions/data/locale/nl-NL.ini @@ -1,6 +1,6 @@ FadeTransition="Vervagen" CutTransition="Knippen" -SwipeTransition="Swipe" +SwipeTransition="Vegen" SlideTransition="Slide" FadeToColorTransition="Vervagen naar Kleur" Direction="Richting" diff --git a/plugins/obs-transitions/data/locale/pt-BR.ini b/plugins/obs-transitions/data/locale/pt-BR.ini index e280221..70b8986 100644 --- a/plugins/obs-transitions/data/locale/pt-BR.ini +++ b/plugins/obs-transitions/data/locale/pt-BR.ini @@ -1,5 +1,6 @@ FadeTransition="Esmaecer" CutTransition="Cortar" +SwipeTransition="Deslizar" SlideTransition="Deslizar" FadeToColorTransition="Esmaecer para a Cor" Direction="Direção" diff --git a/plugins/obs-transitions/data/locale/pt-PT.ini b/plugins/obs-transitions/data/locale/pt-PT.ini new file mode 100644 index 0000000..ac3a110 --- /dev/null +++ b/plugins/obs-transitions/data/locale/pt-PT.ini @@ -0,0 +1,14 @@ +FadeTransition="Desvanecer" +CutTransition="Cortar" +SwipeTransition="Deslizar" +SlideTransition="Deslizar" +FadeToColorTransition="Desvanecer para Cor" +Direction="Direção" +Direction.Left="Esquerda" +Direction.Right="Direita" +Direction.Up="Cima" +Direction.Down="Baixo" +SwipeIn="Deslizar para dentro" +Color="Cor" +SwitchPoint="Ponto de pico de Cor (percentagem)" + diff --git a/plugins/obs-transitions/data/locale/zh-TW.ini b/plugins/obs-transitions/data/locale/zh-TW.ini index f9115c3..11246f1 100644 --- a/plugins/obs-transitions/data/locale/zh-TW.ini +++ b/plugins/obs-transitions/data/locale/zh-TW.ini @@ -1,7 +1,14 @@ -Direction="方向:" +FadeTransition="淡入淡出" +CutTransition="直接轉場" +SwipeTransition="滑出" +SlideTransition="推出" +FadeToColorTransition="淡出至指定色彩" +Direction="方向" Direction.Left="左" Direction.Right="右" -Direction.Up="上:" +Direction.Up="上" Direction.Down="下" +SwipeIn="滑入" Color="顏色" +SwitchPoint="顏色峰值點 (百分比)" diff --git a/plugins/obs-transitions/data/luma_wipe_transition.effect b/plugins/obs-transitions/data/luma_wipe_transition.effect new file mode 100644 index 0000000..baab294 --- /dev/null +++ b/plugins/obs-transitions/data/luma_wipe_transition.effect @@ -0,0 +1,61 @@ +// Based rendermix wipe shader +// https://github.com/rectalogic/rendermix-basic-effects/blob/master/assets/com/rendermix/Wipe/Wipe.frag + +uniform float4x4 ViewProj; +uniform texture2d a_tex; +uniform texture2d b_tex; +uniform texture2d l_tex; +uniform float progress; +uniform bool invert; +uniform float softness; + +sampler_state textureSampler { + Filter = Linear; + AddressU = Clamp; + AddressV = Clamp; +}; + +struct VertData { + float4 pos : POSITION; + float2 uv : TEXCOORD0; +}; + +VertData VSDefault(VertData v_in) +{ + VertData vert_out; + vert_out.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj); + vert_out.uv = v_in.uv; + return vert_out; +} + +float4 PSLumaWipe(VertData v_in) : TARGET +{ + float2 uv = v_in.uv; + float4 a_color = a_tex.Sample(textureSampler, uv); + float4 b_color = b_tex.Sample(textureSampler, uv); + float luma = l_tex.Sample(textureSampler, uv).x; + + if (invert) + luma = 1.0f - luma; + + float time = lerp(0.0f, 1.0f + softness, progress); + + if (luma <= time - softness) + return b_color; + + if (luma >= time) + return a_color; + + float alpha = (time - luma) / softness; + + return lerp(a_color, b_color, alpha); +} + +technique LumaWipe +{ + pass + { + vertex_shader = VSDefault(v_in); + pixel_shader = PSLumaWipe(v_in); + } +} diff --git a/plugins/obs-transitions/data/luma_wipes/barndoor-botleft.png b/plugins/obs-transitions/data/luma_wipes/barndoor-botleft.png new file mode 100644 index 0000000000000000000000000000000000000000..0e83cfc8fa074c6eef25d984539be63de800b832 GIT binary patch literal 62429 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/barndoor-h.png b/plugins/obs-transitions/data/luma_wipes/barndoor-h.png new file mode 100644 index 0000000000000000000000000000000000000000..c60729ec3edc7e9282adba57dafec6700057936d GIT binary patch literal 3145 zcmeAS@N?(olHy`uVBq!ia0y~yV7dUr4je!MhQ=s9W+26q?&#~tz}U9H@Wr%vAfGA8 z+ueoXe|!I#{R|A;fu1goAr-gYUgE6gU}0dmaP*FQUeUHo7w$|_o@sh~Q=6FQw2qb& z7lVYv(#~Xsow;CSQnWp+@8rZO#+KgiqIKN+?(F;Le!qJELspxLg8%pS?k<0KXJ6^( zXZy|bV)mDPePtiME@ofJ$4B>f?i4>a|NrYdH#evI&9^K4bfoj~@jhAGq8}d?Hnab? zDR|I-|NHy<+soh2ySuyW@3!LS>#fUj?r$r7J?-r5`k$4Tm(4fJ`%`%M*VotA*8NTN z^*i?}bamLeh>w5EZ{ED0mRh^H=H{lQ-qUpAwiGW} z(KV6A=}VUS`uol`D}D8R{?a8ro__znOkT3&WM}7OH8mBVj(&OjygN7gA3r+QBWL?+ z@kC{N8N)}--`n}?_07KBO+4JjCu#Fzu46OXKHCI`|8;-wy}JGVtli$~{TEkvC=yE%lzR6}jlh;iKK++EH6P9y+yhiD^u*k55RrXHzN1 z#lcab;XiLrW8=?H;u--P0u~-}?Gn=s+wIAQx<26H#4b_o&~-se zv$kgSv$5KKtN8lLpN0MUipbU1CMzm#eSKwZ^!mELY`oH@RjUdgFQ09ad23DO=k%y8 z728rXGFETc@chu>=G$=jqe2yZ2pMdwccW zK~ESZ{y-{0S2b3WJg!Jz28E-_F->-lR#NZaxoQ?&s}0ciuF! z_ygrgs5mn}Pr*>n!1{%S6HvPDH82S=G_W$Xv@)~+ nvaJjZ9#1{zh@v4kKP5A*61Rp)C(8Z;H86O(`njxgN@xNAUyfFi literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/barndoor-topleft.png b/plugins/obs-transitions/data/luma_wipes/barndoor-topleft.png new file mode 100644 index 0000000000000000000000000000000000000000..a21fd8ff2249d341e421c32a9a262de26aacffdc GIT binary patch literal 63617 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/barndoor-v.png b/plugins/obs-transitions/data/luma_wipes/barndoor-v.png new file mode 100644 index 0000000000000000000000000000000000000000..bb538e515ad4ca7367e08b879a7ae72c6c94bdce GIT binary patch literal 2160 zcmZ`)ZERFk8ovELZJFs|sg@!w_khq8mfDJ@wd26dX<-;i3nD89cId7>wXM)rXt_eh z($36ns~GJO6r!dAOVv%xQghkJk4bF^!QAWzxa$WTO|6QE#)}R9xTs^%_uLze{xF$l z=9%Q_+~<9s_j#Y#&=~UM&C631#S>mzzfn=r--f>cf-jWV7H9-K5~oWQ?`W@w+J8b~v&xzVd2cSYS0hoRvLiz{c+fZ>G*{-6)GXb42OH}F z zeY(|wjZ@V8D4j%C=vD(ZssSjHH8#Y@z0}@<#CDa94f63kYTtvzGPVBgQR^}`4hPL` zc_f;vTW7IR1OSm}nvPz0*1v$-cO%hF*!dXu-$Ly_BC&!YhM6tud)K-v~A?$jB zPZm*a0TSZ?;*u4m=GSQ?2_ieOkpz%Vk|44XFKpYWg^(yw*{LBu>809MBsu^L^2t1! z+3>H5Ud(XDyd zc&*Mnkxh~yaw#^J)yc#>r?SmDkEBs;FA|qkc6fkCvZ>ZCZAcdC)&Xp+3z!vNk_3@| z!^V>V$r>Q6D9$68YH3J(N7$7F9|4i2lI5$`tv_RC(K`K|Yd8 zwKYf-tL)VwJ^~`QI4qBDy^D?ef@Whb@qx(CuyGJTo@AB9_{dzUEkq)hu(Ez$0wTf5 zosM}m*l4aZpUxsa5IGkc#{py$-%@EqNfy-@63?hCr1KIG2~K|E1m$&XoC%m-5AlJ> z3BrENBB}LA^f~e->dYGudf2x<*e0-s!>2f(StS4G3@qF&qY+%D1Z? zdHu-Vj|1NvN)%2X3txMg7q;HDcIO9A7hX9QhN;{rzx8a>)ab>32lxLsJbJMswEyby z(TfEQ`#m>C<%3#VpZqwmYdtCNJh1p|WNOsv+j-6Z!^BDXkom+n-%(RawM-;t6Bdf| zl47bAB5|)XgEm(-%o}F#fIE;3;;V321yp+sCa1D8osS@@J%~gYz<`XR9I@A#_p|Qs zVIbhdKb=t3BJm|*t^IstHr19O@jQT-WJx<=#Nh3G*Jv0%xPG_8+6IYG*_9z4QK%L~ zVnAg@gFKQcqgVl%g&ckAh6>UQ!~eg-Dn_D(u)_%+0g+iq+(g)BNLaBGVAv1H?89z= zVRJy_7Hn*H0=!#g7a+4BvKMwhWz{;L1d+{7fMGvgahC-G452!Njjc{m{)4bnF+O=S z)qF@?CG63DJ_#br92OW};VvdD3y3Vm&dO%VC|-wM%%NHn?6%6T4{^Uj?En%9Cse21 z5`gvrk)L3v9&#mXIL`f0%5#xuCTuvt{iW0fC+9fkh26q|rUQ}fZWX1G=n`q3KcCt= zptDqV9@?jX+Tdiq^IHRMxk2H8$d}#PgDT3BtnoikdnppH5jGa%<2O?qocxNgu6}8r zEK(>p5V_o~Sg1V^St4z)8=;F;HVv%`*8rSM0dRUAN_!<78))z|Zk^|m6o~w#=V28N zx(C4HT!WL?ISo$FH}&)0+0(1;TQoN)5L?NK_Lx73aNB$|XoV z3LqgL70%N>#ko}>_i&{XdBs|tN9~3Sr?Ls1&%goLjzkxL0Y2lEiP=}++{Iz{NW$fT zi#dkBS@qSz_d097x0b<0UeUAqfu82Bj*gbj9!0I&xH`CL{l;2#Q(KD~3O8&h>sB{3 zHmGabcl5OEQtxls)!p9Jsa91~`o5^4Kwm8B?5{m7wavR);7z%`vg-EbRh7#t@7PpT tSzC2iZB-3?uC1)R^xV1NZwMV-to@Qnz%~2N?MUb?V^y<8q&`uQlU!z zu&}-Bli>?l zecO-PvZnLVlYdnm+XFwS4OF+q->cnrqVrJSZ);DMwRMvfzw!r8t$nuF*LJA(q`DHT znwY$K=(Rt+zW?IKcQsF3eRuLef%S_|Cu>~(>M$M;Nbjm3>tpJJTo#-w?FOoQ!fNvf z4rNQPk?KVbe`XM04c0!p6;sCxSv&)odmLV$#Mf()X{LIC!}kp0(PHU6Ajnt( z_mxSz37LDTu5tKHi={VF{l3E=8NnTeEL9@CN~%9``0ALNf-^CyBUEn@$2AV)yjbC7wI z>Q#cAg~NX7)lpq6$ny?=HLSXa@%0*Hs*yo-){8-l1!qYc#QmYm_YPw}Y*&HIq#(0h zUNVS7MbgWsdI!jr#K*wlO6kEIPrAGwM42bOIMt&dlEcp=@o0|pR#W}D!#^6l)4=wq zYKE;BBJ*8A9&`ER0Pf3^-Uh0FFUUhK-#CK((SHRJl?{3Kr*}=yHS&)QMeF?_Rt`%Q zA`=i~e^eb#;_(XUSyZo7i+!Gg1;7p3}cm!APYebW0Xu;udi zV(L-}i?2cE+k%uv)N=4Dm!&|++8Gy5Byk@IwTkL*33A2dtD~wPpesk^XJ7bAu6t<1 z%KLA*xZ*Y!Q_GNZ#uE@Br{z#8OClPf-1wAos*na~?})A_KCnarh(zwL;n}kZGs-h{F?QKzdD8 zto$cEr?XE_jWzggK0l2Z>{0=vx%?U!4H+p#CIcLF_>!1fSis`Tktq&NLC^v!qs`%O4d4(k3tiPA$SZ&p zOjpd}mB?%nq!5?~t+H7h!u+NnMg zEH;EyzhBy*3V44lfsf_0cq1~ex%?cI7)<<6LEd)wDbOp2r5Am!j|V_j;PY#Od=gg8 z7E3{iK-FFrWSPrPByb1h@&A1E&fW^+5WWuVj6qoqL7Ps*)HGm2csxhi`=~w(!xc-r z3VJ@OHUsEIEKZR5DfkD~1XTn*?-yhRpaltpmw=DzA46|K{D9wnswZ4NH>xfbvh)I~ z7Yp(`hquFsut^az@GfbHsFx4ojy#rvDqDoie*}RN{H#q2K5NsqnH+9}n`VEJf#DnX`Ckcx=90IEVLAz={sHBbmpXJAD+GB*3|&^7e>o zhE~j#-W;kgLU)1BfN+7dp_f+Ebk(KQ+RA@F{$LQ^#Ff45!QLG`yLa#0(`!}7;ybtX z?zF47_f@yXJGbp=-?ejJ{f+)fxN-6HjW+yu-Hw@?tYBkPu&$}Gu5smkO^xfCLhG8= o!r$u}8!tciR^*NYyL;?ioqbud%4LD%6vaKy=qTd+$FDsWR8~^|S literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/box-botleft.png b/plugins/obs-transitions/data/luma_wipes/box-botleft.png new file mode 100644 index 0000000000000000000000000000000000000000..0be56f5a1facc47328502c6a267c967b8bcb4e80 GIT binary patch literal 5881 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/box-botright.png b/plugins/obs-transitions/data/luma_wipes/box-botright.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b15e8ca0e7dc08913cbfe3b34c6034e2ff4329 GIT binary patch literal 6682 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 Dn5Jr( literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/box-topleft.png b/plugins/obs-transitions/data/luma_wipes/box-topleft.png new file mode 100644 index 0000000000000000000000000000000000000000..cbef40ee6475d1bef8a0d7474a23a06941265821 GIT binary patch literal 5485 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/box-topright.png b/plugins/obs-transitions/data/luma_wipes/box-topright.png new file mode 100644 index 0000000000000000000000000000000000000000..0e55734a3b862622654d31575cc44521efeeda62 GIT binary patch literal 5412 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 kfr0CzqhC=psCDT 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/linear-v.png b/plugins/obs-transitions/data/luma_wipes/linear-v.png new file mode 100644 index 0000000000000000000000000000000000000000..031970a322ed675fd02973ed98abe2ef56fcbaae GIT binary patch literal 2008 zcmZ{le@xVM7{|Zd@f$fvm>@ro7+%G|JECda1n=O)n>!?;)+8Z>O9_rExG2XE6@;=a zG%z-uQJanRkJJ^pMMzt@QWTvoPhdE+Hv9vj=9IbHNuT$d&-ai1XyZP|@p+#2^L{5uBW-E*RFjjfZMTBn zKK3Xk7HKI=%azssWVL@-Eg1KrPFXnW7!Hd%-ne4n2KFLQCyJ)MOPtoWtFaS*FZ4g5ClJx zf@6u@3twyR=`qB(c zG>X?qWLuJ5+B8sJ%$QWdI^gLG5-uWVZki--)h_`rcF} ztRaTO?3Kf8Ph=1Q(*Ov7DsWLEHkGlaz%>V z)YP(K?7$sG?;u=p_XCF+r?Y zAJGgH>6fkwi8e&Et3=x?(K?7$NVFOi%_h+XDKaTV&J(SMXd@EMUjXYJL_4pdRne7; zt}r#YTH@j_Q_#Pzj8azm@Wyv(8B*3jf}w&-7VwzM|5oAst# zqxs%ut4Pm6dVQ_OSy0#F6mLqN(Ug~CGUgcbD^11%(~IIq{9a%*+U{O>_@4xqyT0Mg X{r{hkKha?q35wlTR&v(*#^HYfPFf#9 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/parallel-zigzag-h.png b/plugins/obs-transitions/data/luma_wipes/parallel-zigzag-h.png new file mode 100644 index 0000000000000000000000000000000000000000..05e5e570084779eda0f31179f9f485eeb17d8d8e GIT binary patch literal 22031 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 E0Iranp#T5? literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/parallel-zigzag-v.png b/plugins/obs-transitions/data/luma_wipes/parallel-zigzag-v.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9ee23a7ca56af3a1333d2c9b218d866f9ec739 GIT binary patch literal 17589 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 JS?83{1OQZ4KM()_ literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/sinus9.png b/plugins/obs-transitions/data/luma_wipes/sinus9.png new file mode 100644 index 0000000000000000000000000000000000000000..07dc82000deb9d79aaf17dd4c6b4c42106d4d2f7 GIT binary patch literal 55830 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/spiral.png b/plugins/obs-transitions/data/luma_wipes/spiral.png new file mode 100644 index 0000000000000000000000000000000000000000..a07a50145a20978cf03fc88eed93af0535f970fb GIT binary patch literal 84643 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 z%0D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

`FQ4PtyH&LpLkU+a^7R;y&NIG6eyktM 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 RdIB{tc)I$ztaD0e0svX*UsnJC literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/square.png b/plugins/obs-transitions/data/luma_wipes/square.png new file mode 100644 index 0000000000000000000000000000000000000000..f33faf38a61de35af8a068d97a626e5cfb8d205d GIT binary patch literal 4155 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 TH!8xB0V6zke$bhKmE`{bmSVKk literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/stripes.png b/plugins/obs-transitions/data/luma_wipes/stripes.png new file mode 100644 index 0000000000000000000000000000000000000000..84e90e82655d51970d13731790ce646c53864407 GIT binary patch literal 8019 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 J`nPv~^*7($5(NMN literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/strips-v.png b/plugins/obs-transitions/data/luma_wipes/strips-v.png new file mode 100644 index 0000000000000000000000000000000000000000..e4dc4343b7357783883050b9dbe7868e3c79ea12 GIT binary patch literal 18285 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/watercolor.png b/plugins/obs-transitions/data/luma_wipes/watercolor.png new file mode 100644 index 0000000000000000000000000000000000000000..571b979a92c834c817e308cade8ada2d0164ae4d GIT binary patch literal 78842 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/wipes.json b/plugins/obs-transitions/data/luma_wipes/wipes.json new file mode 100644 index 0000000..cc297e2 --- /dev/null +++ b/plugins/obs-transitions/data/luma_wipes/wipes.json @@ -0,0 +1,36 @@ +{ + "LumaWipe.Type.BarndoorBottomLeft": "barndoor-botleft.png", + "LumaWipe.Type.BarndoorHorizontal": "barndoor-h.png", + "LumaWipe.Type.BarndoorTopLeft": "barndoor-topleft.png", + "LumaWipe.Type.BarndoorVertical": "barndoor-v.png", + "LumaWipe.Type.BlindsHorizontal": "blinds-h.png", + "LumaWipe.Type.BoxBottomLeft": "box-botleft.png", + "LumaWipe.Type.BoxBottomRight": "box-botright.png", + "LumaWipe.Type.BoxTopLeft": "box-topleft.png", + "LumaWipe.Type.BoxTopRight": "box-topright.png", + "LumaWipe.Type.Burst": "burst.png", + "LumaWipe.Type.CheckerboardSmall": "checkerboard-small.png", + "LumaWipe.Type.Circles": "circles.png", + "LumaWipe.Type.Clock": "clock.png", + "LumaWipe.Type.Cloud": "cloud.png", + "LumaWipe.Type.Curtain": "curtain.png", + "LumaWipe.Type.Fan": "fan.png", + "LumaWipe.Type.Fractal": "fractal.png", + "LumaWipe.Type.Iris": "iris.png", + "LumaWipe.Type.LinearHorizontal": "linear-h.png", + "LumaWipe.Type.LinearTopLeft": "linear-topleft.png", + "LumaWipe.Type.LinearTopRight": "linear-topright.png", + "LumaWipe.Type.LinearVertical": "linear-v.png", + "LumaWipe.Type.ParallelZigzagHorizontal": "parallel-zigzag-h.png", + "LumaWipe.Type.ParallelZigzagVertical": "parallel-zigzag-v.png", + "LumaWipe.Type.Sinus9": "sinus9.png", + "LumaWipe.Type.Spiral": "spiral.png", + "LumaWipe.Type.Square": "square.png", + "LumaWipe.Type.Squares": "squares.png", + "LumaWipe.Type.Stripes": "stripes.png", + "LumaWipe.Type.StripsHorizontal": "strips-h.png", + "LumaWipe.Type.StripsVertical": "strips-v.png", + "LumaWipe.Type.Watercolor": "watercolor.png", + "LumaWipe.Type.ZigzagHorizontal": "zigzag-h.png", + "LumaWipe.Type.ZigzagVertical": "zigzag-v.png" +} diff --git a/plugins/obs-transitions/data/luma_wipes/zigzag-h.png b/plugins/obs-transitions/data/luma_wipes/zigzag-h.png new file mode 100644 index 0000000000000000000000000000000000000000..c042d49bd4a66f551b22159febb0b856631db338 GIT binary patch literal 22290 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 K*sA&FVDVq~#ib$u literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/zigzag-v.png b/plugins/obs-transitions/data/luma_wipes/zigzag-v.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4380b9b89a3b48954f898c5c988ea8ca39a9f6 GIT binary patch literal 18138 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 H7hd`YpeUnu literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/obs-transitions.c b/plugins/obs-transitions/obs-transitions.c index 351726c..3841f48 100644 --- a/plugins/obs-transitions/obs-transitions.c +++ b/plugins/obs-transitions/obs-transitions.c @@ -9,6 +9,7 @@ extern struct obs_source_info fade_transition; extern struct obs_source_info swipe_transition; extern struct obs_source_info slide_transition; extern struct obs_source_info fade_to_color_transition; +extern struct obs_source_info luma_wipe_transition; bool obs_module_load(void) { @@ -17,5 +18,6 @@ bool obs_module_load(void) obs_register_source(&swipe_transition); obs_register_source(&slide_transition); obs_register_source(&fade_to_color_transition); + obs_register_source(&luma_wipe_transition); return true; } diff --git a/plugins/obs-transitions/transition-luma-wipe.c b/plugins/obs-transitions/transition-luma-wipe.c new file mode 100644 index 0000000..6b8ec2c --- /dev/null +++ b/plugins/obs-transitions/transition-luma-wipe.c @@ -0,0 +1,213 @@ +#include +#include +#include + +#define S_LUMA_IMG "luma_image" +#define S_LUMA_INV "luma_invert" +#define S_LUMA_SOFT "luma_softness" + +#define T_LUMA_IMG obs_module_text("LumaWipe.Image") +#define T_LUMA_INV obs_module_text("LumaWipe.Invert") +#define T_LUMA_SOFT obs_module_text("LumaWipe.Softness") + +struct luma_wipe_info { + obs_source_t *source; + + gs_effect_t *effect; + gs_eparam_t *ep_a_tex; + gs_eparam_t *ep_b_tex; + gs_eparam_t *ep_l_tex; + gs_eparam_t *ep_progress; + gs_eparam_t *ep_invert; + gs_eparam_t *ep_softness; + + gs_image_file_t luma_image; + bool invert_luma; + float softness; + obs_data_t *wipes_list; +}; + +static const char *luma_wipe_get_name(void *type_data) +{ + UNUSED_PARAMETER(type_data); + return obs_module_text("LumaWipeTransition"); +} + +static void luma_wipe_update(void *data, obs_data_t *settings) +{ + struct luma_wipe_info *lwipe = data; + + const char *name = obs_data_get_string(settings, S_LUMA_IMG); + lwipe->invert_luma = obs_data_get_bool(settings, S_LUMA_INV); + lwipe->softness = (float)obs_data_get_double(settings, S_LUMA_SOFT); + + struct dstr path = {0}; + + dstr_copy(&path, "luma_wipes/"); + dstr_cat(&path, name); + + char *file = obs_module_file(path.array); + + obs_enter_graphics(); + gs_image_file_free(&lwipe->luma_image); + obs_leave_graphics(); + + gs_image_file_init(&lwipe->luma_image, file); + + obs_enter_graphics(); + gs_image_file_init_texture(&lwipe->luma_image); + obs_leave_graphics(); + + bfree(file); + dstr_free(&path); + + UNUSED_PARAMETER(settings); +} + +static void luma_wipe_get_list(void *data) +{ + struct luma_wipe_info *lwipe = data; + + char *path = obs_module_file("luma_wipes/wipes.json"); + + lwipe->wipes_list = obs_data_create_from_json_file(path); + + bfree(path); +} + +static void *luma_wipe_create(obs_data_t *settings, obs_source_t *source) +{ + struct luma_wipe_info *lwipe; + gs_effect_t *effect; + char *file = obs_module_file("luma_wipe_transition.effect"); + + obs_enter_graphics(); + effect = gs_effect_create_from_file(file, NULL); + obs_leave_graphics(); + + if (!effect) { + blog(LOG_ERROR, "Could not open luma_wipe_transition.effect"); + return NULL; + } + + bfree(file); + + lwipe = bzalloc(sizeof(*lwipe)); + + lwipe->effect = effect; + lwipe->ep_a_tex = gs_effect_get_param_by_name(effect, "a_tex"); + lwipe->ep_b_tex = gs_effect_get_param_by_name(effect, "b_tex"); + lwipe->ep_l_tex = gs_effect_get_param_by_name(effect, "l_tex"); + lwipe->ep_progress = gs_effect_get_param_by_name(effect, "progress"); + lwipe->ep_invert = gs_effect_get_param_by_name(effect, "invert"); + lwipe->ep_softness = gs_effect_get_param_by_name(effect, "softness"); + lwipe->source = source; + + luma_wipe_get_list(lwipe); + + luma_wipe_update(lwipe, settings); + + return lwipe; +} + +static void luma_wipe_destroy(void *data) +{ + struct luma_wipe_info *lwipe = data; + + obs_enter_graphics(); + gs_image_file_free(&lwipe->luma_image); + obs_leave_graphics(); + + obs_data_release(lwipe->wipes_list); + + bfree(lwipe); +} + +static obs_properties_t *luma_wipe_properties(void *data) +{ + obs_properties_t *props = obs_properties_create(); + struct luma_wipe_info *lwipe = data; + + obs_property_t *p; + + p = obs_properties_add_list(props, S_LUMA_IMG, T_LUMA_IMG, + OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); + + obs_data_item_t *item = obs_data_first(lwipe->wipes_list); + + for (; item != NULL; obs_data_item_next(&item)) { + const char *name = obs_data_item_get_name(item); + const char *path = obs_data_item_get_string(item); + obs_property_list_add_string(p, obs_module_text(name), path); + } + + obs_properties_add_float(props, S_LUMA_SOFT, T_LUMA_SOFT, 0.0, 1.0, 0.05); + obs_properties_add_bool(props, S_LUMA_INV, T_LUMA_INV); + + return props; +} + +static void luma_wipe_defaults(obs_data_t *settings) +{ + obs_data_set_default_string(settings, S_LUMA_IMG, "linear-h.png"); + obs_data_set_default_double(settings, S_LUMA_SOFT, 0.03); + obs_data_set_default_bool(settings, S_LUMA_INV, false); +} + +static void luma_wipe_callback(void *data, gs_texture_t *a, gs_texture_t *b, + float t, uint32_t cx, uint32_t cy) +{ + struct luma_wipe_info *lwipe = data; + + gs_effect_set_texture(lwipe->ep_a_tex, a); + gs_effect_set_texture(lwipe->ep_b_tex, b); + gs_effect_set_texture(lwipe->ep_l_tex, lwipe->luma_image.texture); + gs_effect_set_float(lwipe->ep_progress, t); + + gs_effect_set_bool(lwipe->ep_invert, lwipe->invert_luma); + gs_effect_set_float(lwipe->ep_softness, lwipe->softness); + + while (gs_effect_loop(lwipe->effect, "LumaWipe")) + gs_draw_sprite(NULL, 0, cx, cy); +} + +void luma_wipe_video_render(void *data, gs_effect_t *effect) +{ + struct luma_wipe_info *lwipe = data; + obs_transition_video_render(lwipe->source, luma_wipe_callback); + UNUSED_PARAMETER(effect); +} + +static float mix_a(void *data, float t) +{ + UNUSED_PARAMETER(data); + return 1.0f - t; +} + +static float mix_b(void *data, float t) +{ + UNUSED_PARAMETER(data); + return t; +} + +bool luma_wipe_audio_render(void *data, uint64_t *ts_out, + struct obs_source_audio_mix *audio, uint32_t mixers, + size_t channels, size_t sample_rate) +{ + struct luma_wipe_info *lwipe = data; + return obs_transition_audio_render(lwipe->source, ts_out, audio, mixers, + channels, sample_rate, mix_a, mix_b); +} + +struct obs_source_info luma_wipe_transition = { + .id = "wipe_transition", + .type = OBS_SOURCE_TYPE_TRANSITION, + .get_name = luma_wipe_get_name, + .create = luma_wipe_create, + .destroy = luma_wipe_destroy, + .update = luma_wipe_update, + .video_render = luma_wipe_video_render, + .audio_render = luma_wipe_audio_render, + .get_properties = luma_wipe_properties, + .get_defaults = luma_wipe_defaults +}; diff --git a/plugins/obs-x264/data/locale/et-EE.ini b/plugins/obs-x264/data/locale/et-EE.ini new file mode 100644 index 0000000..4976d32 --- /dev/null +++ b/plugins/obs-x264/data/locale/et-EE.ini @@ -0,0 +1,4 @@ +Bitrate="Bitikiirus" +CustomBufsize="Kasuta kohandatud puhvri suurust" +BufferSize="Puhvri suurus" + diff --git a/plugins/obs-x264/data/locale/fi-FI.ini b/plugins/obs-x264/data/locale/fi-FI.ini index af3aa38..8f59661 100644 --- a/plugins/obs-x264/data/locale/fi-FI.ini +++ b/plugins/obs-x264/data/locale/fi-FI.ini @@ -1,10 +1,10 @@ Bitrate="Bitrate" -CustomBufsize="Käytä valinnaista puskurin kokoa" +CustomBufsize="Käytä mukautettua puskurin kokoa" BufferSize="Puskurin koko" -RateControl="Nopeudensäädin" +RateControl="Rate Control -tila" CRF="CRF" -KeyframeIntervalSec="Keyframe-väli (sec, 0=auto)" -CPUPreset="CPU:n käyttö (korkeampi vaatii enemmän tehoa)" +KeyframeIntervalSec="Keyframe-väli (sekunteina, 0=automaattinen)" +CPUPreset="Enkooderin asetus (hitaampi asetus lisää suorittimen käyttöä)" Profile="Profiili" Tune="Hienosäätö" None="(Ei mitään)" diff --git a/plugins/obs-x264/data/locale/he-IL.ini b/plugins/obs-x264/data/locale/he-IL.ini index 2962f17..2f374bb 100644 --- a/plugins/obs-x264/data/locale/he-IL.ini +++ b/plugins/obs-x264/data/locale/he-IL.ini @@ -1,6 +1,7 @@ Bitrate="קצב ביטים" CustomBufsize="השתמש בגודל אוגר מותאם אישית" BufferSize="גודל אוגר" +RateControl="בקרת קצב" CRF="קבוע פקטור קצב (CRF)" KeyframeIntervalSec="מרווח ערך ה keyframe בשניות (0=אוטומטי)" CPUPreset="ערך שימוש במעבד (גבוה יותר = פחות מעבד)" diff --git a/plugins/obs-x264/data/locale/hr-HR.ini b/plugins/obs-x264/data/locale/hr-HR.ini index df9f4ac..dde409f 100644 --- a/plugins/obs-x264/data/locale/hr-HR.ini +++ b/plugins/obs-x264/data/locale/hr-HR.ini @@ -1,6 +1,7 @@ Bitrate="Protok" CustomBufsize="Koristi specifičnu veličinu bafera" BufferSize="Veličina buffer-a" +RateControl="Kontrola protoka" CRF="CRF" KeyframeIntervalSec="Keyframe interval (sekunde, 0=automatski)" CPUPreset="Koristi CPU šablon (veće = manje CPU-a)" diff --git a/plugins/obs-x264/data/locale/it-IT.ini b/plugins/obs-x264/data/locale/it-IT.ini index 3abe79a..dd6ffc2 100644 --- a/plugins/obs-x264/data/locale/it-IT.ini +++ b/plugins/obs-x264/data/locale/it-IT.ini @@ -1,6 +1,7 @@ Bitrate="Bitrate" CustomBufsize="Usa dimensione personalizzata del buffer" BufferSize="Grandezza buffer" +RateControl="Controllo frequenza" CRF="CRF" KeyframeIntervalSec="Intervallo keyframe (secondi, 0=auto)" CPUPreset="Preset di utilizzo della CPU (superiore = meno CPU)" diff --git a/plugins/obs-x264/data/locale/nb-NO.ini b/plugins/obs-x264/data/locale/nb-NO.ini index 42b36f0..5a94692 100644 --- a/plugins/obs-x264/data/locale/nb-NO.ini +++ b/plugins/obs-x264/data/locale/nb-NO.ini @@ -1,6 +1,7 @@ Bitrate="Bitrate" CustomBufsize="Bruk egendefinert bufferstørrelse" BufferSize="Buffer størrelse" +RateControl="Hastighetskontroll" CRF="CRF" KeyframeIntervalSec="Nøkkelbildeintervall (sekunder, 0 = automatisk)" CPUPreset="Forhåndsinstilling for prosessorbruk (raskere betyr mindre belastning)" diff --git a/plugins/obs-x264/data/locale/pl-PL.ini b/plugins/obs-x264/data/locale/pl-PL.ini index c26d199..78b80c1 100644 --- a/plugins/obs-x264/data/locale/pl-PL.ini +++ b/plugins/obs-x264/data/locale/pl-PL.ini @@ -1,6 +1,7 @@ Bitrate="Przepływność bitowa" CustomBufsize="Użyj własnego rozmiaru bufora" BufferSize="Rozmiar bufora" +RateControl="Typ przepływności" CRF="CRF" KeyframeIntervalSec="Interwał klatek kluczowych (sekundy, 0 - auto)" CPUPreset="Ustawienie obciążenia CPU (wyższe = mniej CPU)" diff --git a/plugins/obs-x264/data/locale/pt-BR.ini b/plugins/obs-x264/data/locale/pt-BR.ini index 910c81d..906328f 100644 --- a/plugins/obs-x264/data/locale/pt-BR.ini +++ b/plugins/obs-x264/data/locale/pt-BR.ini @@ -1,6 +1,7 @@ Bitrate="Taxa de Bits" CustomBufsize="Utilizar tamanho do buffer personalizado" BufferSize="Tamanho do Buffer" +RateControl="Controle de Taxa" CRF="CRF" KeyframeIntervalSec="Intervalo de Keyframe (segundos, 0 = auto)" CPUPreset="Predefinição de utilização do processador (maior = menos processamento)" diff --git a/plugins/obs-x264/data/locale/pt-PT.ini b/plugins/obs-x264/data/locale/pt-PT.ini index d0f9140..124ea79 100644 --- a/plugins/obs-x264/data/locale/pt-PT.ini +++ b/plugins/obs-x264/data/locale/pt-PT.ini @@ -1,6 +1,7 @@ Bitrate="Bitrate" CustomBufsize="Utilizar tamanho do buffer personalizado" BufferSize="Tamanho do buffer" +RateControl="Controle de Taxa" CRF="CRF" KeyframeIntervalSec="Intervalo do keyframe (segundos, 0=automático)" CPUPreset="Predefinição de utilização do processador (maior = menos processamento)" diff --git a/plugins/obs-x264/data/locale/sr-CS.ini b/plugins/obs-x264/data/locale/sr-CS.ini index df9f4ac..dde409f 100644 --- a/plugins/obs-x264/data/locale/sr-CS.ini +++ b/plugins/obs-x264/data/locale/sr-CS.ini @@ -1,6 +1,7 @@ Bitrate="Protok" CustomBufsize="Koristi specifičnu veličinu bafera" BufferSize="Veličina buffer-a" +RateControl="Kontrola protoka" CRF="CRF" KeyframeIntervalSec="Keyframe interval (sekunde, 0=automatski)" CPUPreset="Koristi CPU šablon (veće = manje CPU-a)" diff --git a/plugins/obs-x264/data/locale/sr-SP.ini b/plugins/obs-x264/data/locale/sr-SP.ini index 1ad6370..181c946 100644 --- a/plugins/obs-x264/data/locale/sr-SP.ini +++ b/plugins/obs-x264/data/locale/sr-SP.ini @@ -1,6 +1,7 @@ Bitrate="Проток" CustomBufsize="Користи специфичну величину бафера" BufferSize="Величина buffer-а" +RateControl="Контрола протока" CRF="CRF" KeyframeIntervalSec="Keyframe интервал (секунде, 0=аутоматски)" CPUPreset="Користи CPU шаблон (веће = мање CPU-а)" diff --git a/plugins/obs-x264/data/locale/sv-SE.ini b/plugins/obs-x264/data/locale/sv-SE.ini index 4550f89..cd1237a 100644 --- a/plugins/obs-x264/data/locale/sv-SE.ini +++ b/plugins/obs-x264/data/locale/sv-SE.ini @@ -1,6 +1,7 @@ Bitrate="Bithastighet" CustomBufsize="Använd anpassad buffertstorlek" BufferSize="Buffertstorlek" +RateControl="Hastighetskontroll" CRF="CRF" KeyframeIntervalSec="Keyframe-tidsintervall (i sek, 0=auto)" CPUPreset="CPU-användning förinställning (högre = mindre CPU)" diff --git a/plugins/obs-x264/data/locale/zh-TW.ini b/plugins/obs-x264/data/locale/zh-TW.ini index 00d68cf..3f9ad80 100644 --- a/plugins/obs-x264/data/locale/zh-TW.ini +++ b/plugins/obs-x264/data/locale/zh-TW.ini @@ -1,12 +1,13 @@ -Bitrate="流量" +Bitrate="位元率" CustomBufsize="使用自訂的緩衝區大小" BufferSize="緩衝區大小" +RateControl="位元率控制" CRF="CRF" -KeyframeIntervalSec="關鍵影格間隔 (秒,0 = 自動):" +KeyframeIntervalSec="關鍵訊框間隔 (秒,0 = 自動):" CPUPreset="CPU 使用率設定 (越快 = 越少CPU使用率)" -Profile="演算法" -Tune="最佳化" -None="(空)" -EncoderOptions="x264 選項 (用空格分開)" -VFR="變動式流量 (VFR)" +Profile="配置" +Tune="微調類別" +None="(無)" +EncoderOptions="x264 參數(以空格分隔)" +VFR="可變畫面播放速率 (VFR)" diff --git a/plugins/obs-x264/obs-x264.c b/plugins/obs-x264/obs-x264.c index 193e445..27bbe8a 100644 --- a/plugins/obs-x264/obs-x264.c +++ b/plugins/obs-x264/obs-x264.c @@ -97,7 +97,7 @@ static void obs_x264_defaults(obs_data_t *settings) obs_data_set_default_int (settings, "keyint_sec", 0); obs_data_set_default_int (settings, "crf", 23); obs_data_set_default_bool (settings, "vfr", false); - obs_data_set_default_bool (settings, "rate_control","CBR"); + obs_data_set_default_string(settings, "rate_control","CBR"); obs_data_set_default_string(settings, "preset", "veryfast"); obs_data_set_default_string(settings, "profile", ""); @@ -142,6 +142,7 @@ static bool rate_control_modified(obs_properties_t *ppts, obs_property_t *p, obs_data_t *settings) { const char *rc = obs_data_get_string(settings, "rate_control"); + bool use_bufsize = obs_data_get_bool(settings, "use_bufsize"); bool abr = astrcmpi(rc, "CBR") == 0 || astrcmpi(rc, "ABR") == 0; bool rc_crf = astrcmpi(rc, "CRF") == 0; @@ -152,8 +153,8 @@ static bool rate_control_modified(obs_properties_t *ppts, obs_property_t *p, obs_property_set_visible(p, !rc_crf); p = obs_properties_get(ppts, "use_bufsize"); obs_property_set_visible(p, !rc_crf); - p = obs_properties_get(ppts, "buffse_size"); - obs_property_set_visible(p, !rc_crf); + p = obs_properties_get(ppts, "buffer_size"); + obs_property_set_visible(p, !rc_crf && use_bufsize); return true; } @@ -416,11 +417,7 @@ static void update_params(struct obs_x264 *obsx264, obs_data_t *settings, rate_control = "CBR"; } - if (astrcmpi(rate_control, "CBR") == 0) { - rc = RATE_CONTROL_CBR; - crf = 0; - - } else if (astrcmpi(rate_control, "ABR") == 0) { + if (astrcmpi(rate_control, "ABR") == 0) { rc = RATE_CONTROL_ABR; crf = 0; @@ -431,6 +428,10 @@ static void update_params(struct obs_x264 *obsx264, obs_data_t *settings, rc = RATE_CONTROL_CRF; bitrate = 0; buffer_size = 0; + + } else { /* CBR */ + rc = RATE_CONTROL_CBR; + crf = 0; } if (keyint_sec) diff --git a/plugins/rtmp-services/data/locale/zh-TW.ini b/plugins/rtmp-services/data/locale/zh-TW.ini index 0be7e0d..cbd62a7 100644 --- a/plugins/rtmp-services/data/locale/zh-TW.ini +++ b/plugins/rtmp-services/data/locale/zh-TW.ini @@ -6,4 +6,5 @@ StreamKey="串流金鑰" UseAuth="使用身份驗證" Username="使用者名稱" Password="密碼" +ShowAll="顯示所有服務" diff --git a/plugins/rtmp-services/data/package.json b/plugins/rtmp-services/data/package.json index a8a8b63..d323130 100644 --- a/plugins/rtmp-services/data/package.json +++ b/plugins/rtmp-services/data/package.json @@ -1,10 +1,10 @@ { "url": "https://obsproject.com/obs2_update/rtmp-services", - "version": 21, + "version": 29, "files": [ { "name": "services.json", - "version": 21 + "version": 29 } ] } diff --git a/plugins/rtmp-services/data/services.json b/plugins/rtmp-services/data/services.json index 50a26d7..1cc56da 100644 --- a/plugins/rtmp-services/data/services.json +++ b/plugins/rtmp-services/data/services.json @@ -134,7 +134,7 @@ "recommended": { "keyint": 4, "profile": "main", - "max video bitrate": 9000, + "max video bitrate": 18000, "max audio bitrate": 160 } }, @@ -324,43 +324,47 @@ ] }, { - "name": "JOICASTER", + "name": "Switchboard Live (Joicaster)", "servers": [ { - "name": "U.S. - Washington, DC", - "url": "rtmp://ingest-1.wdc01.joicaster.co/live" + "name": "Default - Performance Global", + "url": "rtmp://ingest-global-a.switchboard.zone/live" }, { "name": "U.S. - Dallas, TX", - "url": "rtmp://ingest-1.dal09.joicaster.co/live" + "url": "rtmp://ingest-us-dal.switchboard.zone/live" }, { "name": "U.S. - Seattle, WA", - "url": "rtmp://ingest-1.sea01.joicaster.co/live" + "url": "rtmp://ingest-us-sea.switchboard.zone/live" + }, + { + "name": "U.S. - Washington, DC", + "url": "rtmp://ingest-us-wdc.switchboard.zone/live" }, { "name": "C.A. - Toronto, Canada", - "url": "rtmp://ingest-1.tor01.joicaster.co/live" + "url": "rtmp://ingest-cn-tor.switchboard.zone/live" }, { "name": "E.U. - London, England", - "url": "rtmp://ingest-1.lon02.joicaster.co/live" + "url": "rtmp://ingest-eu-lon.switchboard.zone/live" }, { "name": "E.U. - Amsterdam, Netherlands", - "url": "rtmp://ingest-1.ams03.joicaster.co/live" + "url": "rtmp://ingest-as-tok.switchboard.zone/live" }, { "name": "A.S. - Tokyo, Japan", - "url": "rtmp://ingest-1.tok02.joicaster.co/live" + "url": "rtmp://ingest-as-tok.switchboard.zone/live" }, { "name": "A.U. - Melbourne, Australia", - "url": "rtmp://ingest-1.mel01.joicaster.co/live" + "url": "rtmp://ingest-au-mel.switchboard.zone/live" }, { "name": "S.A - São Paulo, Brazil", - "url": "rtmp://ingest-1.sao01.joicaster.co/live" + "url": "rtmp://ingest-sa-sao.switchboard.zone/live" } ] }, @@ -421,6 +425,45 @@ } ] }, + { + "name": "Kamcord", + "servers": [ + { + "name": "US East (N. Virginia)", + "url": "rtmp://us-east-1.stream.kamcord.com/live" + }, + { + "name": "Asia Pacific (Seoul)", + "url": "rtmp://ap-northeast-2.stream.kamcord.com/live" + }, + { + "name": "Asia Pacific (Sydney)", + "url": "rtmp://ap-southeast-2.stream.kamcord.com/live" + }, + { + "name": "Asia Pacific (Tokyo)", + "url": "rtmp://ap-northeast-1.stream.kamcord.com/live" + }, + { + "name": "EU (Frankfurt)", + "url": "rtmp://eu-central-1.stream.kamcord.com/live" + }, + { + "name": "South America (Sao Paulo)", + "url": "rtmp://sa-east-1.stream.kamcord.com/live" + }, + { + "name": "US West (N. California)", + "url": "rtmp://us-west-1.stream.kamcord.com/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 4000, + "max audio bitrate": 192 + } + }, { "name": "CyberGame.TV", "servers": [ @@ -472,9 +515,9 @@ } ], "recommended": { - "keyint": 1, + "keyint": 2, "profile": "main", - "max video bitrate": 2000, + "max video bitrate": 2500, "max audio bitrate": 160 } }, @@ -490,31 +533,130 @@ "name": "US-West (Los Angeles, California)", "url": "rtmp://us-la.restream.io/live" }, + { + "name": "US-West (Seattle, Washington)", + "url": "rtmp://us-seattle.restream.io/live" + }, + { + "name": "US-Central (Dallas, Texas)", + "url": "rtmp://us-central.restream.io/live" + }, { "name": "US-East (Washington, D.C.)", "url": "rtmp://us-east.restream.io/live" }, { - "name": "US-Central (Dallas, TX)", - "url": "rtmp://us-central.restream.io/live" + "name": "NA-East (Toronto, Canada)", + "url": "rtmp://na-toronto.restream.io/live" }, { "name": "EU-Central (Frankfurt, Germany)", "url": "rtmp://eu.restream.io/live" }, { - "name": "EU-West (London, GB)", + "name": "EU-West (Amsterdam, Netherlands)", + "url": "rtmp://eu-ams.restream.io/live" + }, + { + "name": "EU-West (London, Great Britain)", "url": "rtmp://eu-london.restream.io/live" }, { "name": "Australia (Sydney)", - "url": "rtmp://au-secondary.restream.io/live" + "url": "rtmp://au.restream.io/live" }, { "name": "South America (Sao Paulo, Brazil)", "url": "rtmp://sa.restream.io/live" } + ], + "recommended": { + "keyint": 2 + } + }, + { + "name": "Nood", + "servers": [ + { + "name": "EU Central: Frankfurt, Germany", + "url": "rtmp://broadcast-frf.nood.tv/20D2AB/live" + }, + { + "name": "EU North: Amsterdam, Netherlands", + "url": "rtmp://broadcast-ams.nood.tv/20D2AB/live" + }, + { + "name": "EU West: Stockholm, Sweden", + "url": "rtmp://broadcast-arn.nood.tv/20D2AB/live" + }, + { + "name": "US East: Washington, DC", + "url": "rtmp://broadcast-dca.nood.tv/20D2AB/live" + }, + { + "name": "US West: Los Angeles, CA", + "url": "rtmp://broadcast-oxr.nood.tv/20D2AB/live" + }, + { + "name": "Australia: Sydney", + "url": "rtmp://broadcast-syd.nood.tv/20D2AB/live" + }, + { + "name": "Asia: Hong Kong, China", + "url": "rtmp://broadcast-hhp.nood.tv/20D2AB/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 3500, + "max audio bitrate": 192 + } + }, + { + "name": "Boomstream", + "servers": [ + { + "name": "Default", + "url": "rtmp://live.boomstream.com/live" + } ] + }, + { + "name": "Interactive LifeStream", + "servers": [ + { + "name": "Default", + "url": "rtmp://lifestreamcdn.com/live/_definst_/doPublish=wls36" + } + ] + }, + { + "name": "Stre.am", + "servers": [ + { + "name": "Default", + "url": "rtmp://media.stre.am:1935/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 2500, + "max audio bitrate": 160 + } + }, + { + "name": "Coderwall", + "servers": [ + { + "name": "Primary", + "url": "rtmp://live.coderwall.com/coderwall" + } + ], + "recommended": { + "max video bitrate": 1500 + } } ] } diff --git a/plugins/text-freetype2/data/locale/zh-TW.ini b/plugins/text-freetype2/data/locale/zh-TW.ini index d0a65fc..cf0815e 100644 --- a/plugins/text-freetype2/data/locale/zh-TW.ini +++ b/plugins/text-freetype2/data/locale/zh-TW.ini @@ -1,8 +1,9 @@ +TextFreetype2="文字 (FreeType 2)" Font="字型" Text="文字" TextFile="文字檔案 (UTF-8 或 UTF-16)" TextFileFilter="文字檔案 (*.txt);;" -ChatLogMode="聊天記錄模式(最多 6 行)" +ChatLogMode="聊天記錄模式 (最後 6 行)" Color1="顏色 1" Color2="顏色 2" Outline="外框" diff --git a/plugins/text-freetype2/text-freetype2.c b/plugins/text-freetype2/text-freetype2.c index c1a22ce..b885620 100644 --- a/plugins/text-freetype2/text-freetype2.c +++ b/plugins/text-freetype2/text-freetype2.c @@ -447,8 +447,6 @@ static void *ft2_source_create(obs_data_t *settings, obs_source_t *source) obs_data_set_default_int(settings, "color1", 0xFFFFFFFF); obs_data_set_default_int(settings, "color2", 0xFFFFFFFF); - obs_data_set_default_string(settings, "text", - "The lazy snake jumps over the happy MASKEN."); ft2_source_update(srcdata, settings); diff --git a/plugins/vlc-video/CMakeLists.txt b/plugins/vlc-video/CMakeLists.txt new file mode 100644 index 0000000..bcc95fd --- /dev/null +++ b/plugins/vlc-video/CMakeLists.txt @@ -0,0 +1,41 @@ +project(vlc-video) + +if(DISABLE_VLC) + message(STATUS "VLC video plugin disabled") + return() +endif() + +find_package(LibVLC QUIET) + +if(NOT LIBVLC_INCLUDES_FOUND AND ENABLE_VLC) + message(FATAL_ERROR "LibVLC includes not found but set as enabled") +elseif(NOT LIBVLC_INCLUDES_FOUND) + message(STATUS "LibVLC includes not found, VLC video plugin disabled") + return() +endif() + +include_directories(${LIBVLC_INCLUDE_DIRS}) +add_definitions(${LIBVLC_DEFINITIONS}) + +if(MSVC) + set(vlc-video_PLATFORM_DEPS + w32-pthreads) +endif() + +set(vlc-video_HEADERS + vlc-video-plugin.h + ) + +set(vlc-video_SOURCES + vlc-video-plugin.c + vlc-video-source.c + ) + +add_library(vlc-video MODULE + ${vlc-video_SOURCES} + ${vlc-video_HEADERS}) +target_link_libraries(vlc-video + libobs + ${vlc-video_PLATFORM_DEPS}) + +install_obs_plugin_with_data(vlc-video data) diff --git a/plugins/vlc-video/data/locale/ca-ES.ini b/plugins/vlc-video/data/locale/ca-ES.ini new file mode 100644 index 0000000..fbdf5fb --- /dev/null +++ b/plugins/vlc-video/data/locale/ca-ES.ini @@ -0,0 +1,8 @@ +VLCSource="Origen de vídeo VLC" +Playlist="Llista de reproducció" +LoopPlaylist="Repetir la llista de reproducció" +PlaybackBehavior="Comportament de la visibilitat" +PlaybackBehavior.StopRestart="Aturar quan no sigui visible, reiniciar quan sigui visible" +PlaybackBehavior.PauseUnpause="Pausa quan no sigui visible, reprendre quan sigui visible" +PlaybackBehavior.AlwaysPlay="Reproduir sempre fins i tot quan no sigui visible" + diff --git a/plugins/vlc-video/data/locale/cs-CZ.ini b/plugins/vlc-video/data/locale/cs-CZ.ini new file mode 100644 index 0000000..97581e7 --- /dev/null +++ b/plugins/vlc-video/data/locale/cs-CZ.ini @@ -0,0 +1,8 @@ +VLCSource="Video zdroj VLC" +Playlist="Seznam skladeb" +LoopPlaylist="Opakovat seznam skladeb" +PlaybackBehavior="Závislost na viditelnosti" +PlaybackBehavior.StopRestart="Zastavit při skrytém, restartovat při obnovení" +PlaybackBehavior.PauseUnpause="Pozastavit při skrytém, pokračovat při obnovení" +PlaybackBehavior.AlwaysPlay="Přehrát vždy (i když není vidět)" + diff --git a/plugins/vlc-video/data/locale/de-DE.ini b/plugins/vlc-video/data/locale/de-DE.ini new file mode 100644 index 0000000..0b31791 --- /dev/null +++ b/plugins/vlc-video/data/locale/de-DE.ini @@ -0,0 +1,8 @@ +VLCSource="VLC Videoquellle" +Playlist="Wiedergabeliste" +LoopPlaylist="Wiedergabeliste wiederholen" +PlaybackBehavior="Sichtbarkeitsverhalten" +PlaybackBehavior.StopRestart="Anhalten wenn nicht sichtbar, neustarten wenn sichtbar" +PlaybackBehavior.PauseUnpause="Pausieren wenn nicht sichtbar, fortsetzen wenn sichtbar" +PlaybackBehavior.AlwaysPlay="Immer abspielen, auch wenn nicht sichtbar" + diff --git a/plugins/vlc-video/data/locale/en-US.ini b/plugins/vlc-video/data/locale/en-US.ini new file mode 100644 index 0000000..cd5a768 --- /dev/null +++ b/plugins/vlc-video/data/locale/en-US.ini @@ -0,0 +1,7 @@ +VLCSource="VLC Video Source" +Playlist="Playlist" +LoopPlaylist="Loop Playlist" +PlaybackBehavior="Visibility behavior" +PlaybackBehavior.StopRestart="Stop when not visible, restart when visible" +PlaybackBehavior.PauseUnpause="Pause when not visible, unpause when visible" +PlaybackBehavior.AlwaysPlay="Always play even when not visible" diff --git a/plugins/vlc-video/data/locale/es-ES.ini b/plugins/vlc-video/data/locale/es-ES.ini new file mode 100644 index 0000000..1ec000d --- /dev/null +++ b/plugins/vlc-video/data/locale/es-ES.ini @@ -0,0 +1,8 @@ +VLCSource="Fuente de vídeo VLC" +Playlist="Lista de reproducción" +LoopPlaylist="Repetir lista de reproducción" +PlaybackBehavior="Comportamiento de la visibilidad" +PlaybackBehavior.StopRestart="Detener cuando no sea visible, reiniciar cuando sea visible" +PlaybackBehavior.PauseUnpause="Pausar cuando no sea visible, reanudar cuando sea visible" +PlaybackBehavior.AlwaysPlay="Reproducir siempre incluso cuando no sea visible" + diff --git a/plugins/vlc-video/data/locale/eu-ES.ini b/plugins/vlc-video/data/locale/eu-ES.ini new file mode 100644 index 0000000..445885b --- /dev/null +++ b/plugins/vlc-video/data/locale/eu-ES.ini @@ -0,0 +1,8 @@ +VLCSource="VLC bideo-iturburua" +Playlist="Erreprodukzio-zerrenda" +LoopPlaylist="Errepikatu erreprodukzio-zerrenda" +PlaybackBehavior="Ikuste-jokabidea" +PlaybackBehavior.StopRestart="Ikusten ez bada gelditu, ikusten denean berrabiarazi" +PlaybackBehavior.PauseUnpause="Ikusten ez bada pausatu, ikusten denean jarraitu" +PlaybackBehavior.AlwaysPlay="Erreproduzitu beti nahiz eta ez ikusi" + diff --git a/plugins/vlc-video/data/locale/fi-FI.ini b/plugins/vlc-video/data/locale/fi-FI.ini new file mode 100644 index 0000000..4760d2d --- /dev/null +++ b/plugins/vlc-video/data/locale/fi-FI.ini @@ -0,0 +1,8 @@ +VLCSource="VLC Video-lähde" +Playlist="Soittolista" +LoopPlaylist="Toista soittolistaa jatkuvasti" +PlaybackBehavior="Näkyvyyden käyttäytyminen" +PlaybackBehavior.StopRestart="Pysäytä toisto kun lähde ei näy. Käynnistä toisto uudelleen, kun se on taas näkyvissä" +PlaybackBehavior.PauseUnpause="Keskeytä toisto kun lähde ei näy. Jatka toistoa, kun se on taas näkyvissä" +PlaybackBehavior.AlwaysPlay="Toista aina, vaikka lähde ei olisi näkyvissä" + diff --git a/plugins/vlc-video/data/locale/fr-FR.ini b/plugins/vlc-video/data/locale/fr-FR.ini new file mode 100644 index 0000000..12b0628 --- /dev/null +++ b/plugins/vlc-video/data/locale/fr-FR.ini @@ -0,0 +1,8 @@ +VLCSource="Source vidéo VLC" +Playlist="Liste de lecture" +LoopPlaylist="Répéter la liste de lecture" +PlaybackBehavior="Comportement de visibilité" +PlaybackBehavior.StopRestart="Arrêter quand elle n'est pas visible, redémarrer lorsqu'elle est visible" +PlaybackBehavior.PauseUnpause="Suspendre lorsqu'elle n'est pas visible, reprendre lorsqu'elle est visible" +PlaybackBehavior.AlwaysPlay="Toujours jouer même lorsqu'elle n'est pas visible" + diff --git a/plugins/vlc-video/data/locale/he-IL.ini b/plugins/vlc-video/data/locale/he-IL.ini new file mode 100644 index 0000000..3636736 --- /dev/null +++ b/plugins/vlc-video/data/locale/he-IL.ini @@ -0,0 +1,8 @@ +VLCSource="מקור וידאו VLC" +Playlist="רשימת השמעה" +LoopPlaylist="לולאת רשימת השמעה" +PlaybackBehavior="התנהגות ניראות" +PlaybackBehavior.StopRestart="עצור כאשר אינו נראה, התחל מחדש כאשר נראה" +PlaybackBehavior.PauseUnpause="השהה כאשר אינו נראה, בטל השהייה כאשר נראה" +PlaybackBehavior.AlwaysPlay="נגן תמיד גם כאשר לא נראה" + diff --git a/plugins/vlc-video/data/locale/hr-HR.ini b/plugins/vlc-video/data/locale/hr-HR.ini new file mode 100644 index 0000000..a136269 --- /dev/null +++ b/plugins/vlc-video/data/locale/hr-HR.ini @@ -0,0 +1,8 @@ +VLCSource="VLC video izvor" +Playlist="Plejlista" +LoopPlaylist="Ponavljanje plejliste" +PlaybackBehavior="Ponašanje pri (ne)vidljivosti" +PlaybackBehavior.StopRestart="Zaustavi kada se ne vidi, ponovi kad se vidi" +PlaybackBehavior.PauseUnpause="Pauziraj kada se ne vidi, odpauziraj kada se vidi" +PlaybackBehavior.AlwaysPlay="Uvek reprodukuj čak i kada se ne vidi" + diff --git a/plugins/vlc-video/data/locale/hu-HU.ini b/plugins/vlc-video/data/locale/hu-HU.ini new file mode 100644 index 0000000..8a4e627 --- /dev/null +++ b/plugins/vlc-video/data/locale/hu-HU.ini @@ -0,0 +1,8 @@ +VLCSource="VLC Videoforrás" +Playlist="Lejátszási lista" +LoopPlaylist="Ismétlődő lejátszási lista" +PlaybackBehavior="Láthatósági opció" +PlaybackBehavior.StopRestart="Leállítás, ha nem látható, újraindul, ha látható" +PlaybackBehavior.PauseUnpause="Szüneteltet, ha nem látható, folytatás, ha látható" +PlaybackBehavior.AlwaysPlay="Mindig lejátsza, akkor is, ha nem látható" + diff --git a/plugins/vlc-video/data/locale/it-IT.ini b/plugins/vlc-video/data/locale/it-IT.ini new file mode 100644 index 0000000..77bfc93 --- /dev/null +++ b/plugins/vlc-video/data/locale/it-IT.ini @@ -0,0 +1,8 @@ +VLCSource="Source Video VLC" +Playlist="Playlist" +LoopPlaylist="Riproduci playlist di continuo" +PlaybackBehavior="Comportamento visibilità" +PlaybackBehavior.StopRestart="Interrompi quando non visibile, riavvia quando visibile" +PlaybackBehavior.PauseUnpause="Pausa quando non visibile, riprendi quando visibile" +PlaybackBehavior.AlwaysPlay="Continua anche quando non visibile" + diff --git a/plugins/vlc-video/data/locale/ja-JP.ini b/plugins/vlc-video/data/locale/ja-JP.ini new file mode 100644 index 0000000..c5677a5 --- /dev/null +++ b/plugins/vlc-video/data/locale/ja-JP.ini @@ -0,0 +1,8 @@ +VLCSource="VLC ビデオソース" +Playlist="プレイリスト" +LoopPlaylist="プレイリストをループ再生" +PlaybackBehavior="表示の動作" +PlaybackBehavior.StopRestart="表示されていないときに停止、表示時に再開" +PlaybackBehavior.PauseUnpause="表示されていないときに一時停止、表示時に一時停止を解除" +PlaybackBehavior.AlwaysPlay="表示されていないときにも常に再生" + diff --git a/plugins/vlc-video/data/locale/ko-KR.ini b/plugins/vlc-video/data/locale/ko-KR.ini new file mode 100644 index 0000000..b0e4df7 --- /dev/null +++ b/plugins/vlc-video/data/locale/ko-KR.ini @@ -0,0 +1,8 @@ +VLCSource="VLC 비디오 소스" +Playlist="재생목록" +LoopPlaylist="반복 재생" +PlaybackBehavior="표시 동작 설정" +PlaybackBehavior.StopRestart="보이지 않을 때 중단, 보이면 재시작" +PlaybackBehavior.PauseUnpause="보이지 않을 때 일시 중지, 보이면 일시 중지 해제" +PlaybackBehavior.AlwaysPlay="보이지 않더라도 항상 재생" + diff --git a/plugins/vlc-video/data/locale/nb-NO.ini b/plugins/vlc-video/data/locale/nb-NO.ini new file mode 100644 index 0000000..587d99c --- /dev/null +++ b/plugins/vlc-video/data/locale/nb-NO.ini @@ -0,0 +1,8 @@ +VLCSource="VLC-videokilde" +Playlist="Spilleliste" +LoopPlaylist="Repeter spilleliste" +PlaybackBehavior="Synlighetsadferd" +PlaybackBehavior.StopRestart="Stans når ikke synlig, spill fra starten når synlig" +PlaybackBehavior.PauseUnpause="Stans når ikke synlig, spill når synlig" +PlaybackBehavior.AlwaysPlay="Spill alltid, selv når ikke synlig" + diff --git a/plugins/vlc-video/data/locale/nl-NL.ini b/plugins/vlc-video/data/locale/nl-NL.ini new file mode 100644 index 0000000..b1669a7 --- /dev/null +++ b/plugins/vlc-video/data/locale/nl-NL.ini @@ -0,0 +1,8 @@ +VLCSource="VLC Videobron" +Playlist="Playlist" +LoopPlaylist="Playlist herhalen" +PlaybackBehavior="Zichtbaarheidsgedrag" +PlaybackBehavior.StopRestart="Stop wanneer niet zichtbaar, herstart wanneer zichtbaar" +PlaybackBehavior.PauseUnpause="Pauzeer wanneer niet zichtbaar, hervat wanneer zichtbaar" +PlaybackBehavior.AlwaysPlay="Altijd spelen, zelfs wanneer niet zichtbaar" + diff --git a/plugins/vlc-video/data/locale/pl-PL.ini b/plugins/vlc-video/data/locale/pl-PL.ini new file mode 100644 index 0000000..cc74c42 --- /dev/null +++ b/plugins/vlc-video/data/locale/pl-PL.ini @@ -0,0 +1,8 @@ +VLCSource="Odtwarzacz VLC" +Playlist="Lista odtwarzania" +LoopPlaylist="Powtarzaj listę odtwarzania" +PlaybackBehavior="Zachowanie" +PlaybackBehavior.StopRestart="Zatrzymaj, gdy niewidoczne. Odtwarzaj od początku, gdy widoczne." +PlaybackBehavior.PauseUnpause="Wstrzymaj, gdy niewidoczne. Wznów, gdy widoczne." +PlaybackBehavior.AlwaysPlay="Odtwarzaj cały czas bez względu na widoczność." + diff --git a/plugins/vlc-video/data/locale/pt-BR.ini b/plugins/vlc-video/data/locale/pt-BR.ini new file mode 100644 index 0000000..d6f2f85 --- /dev/null +++ b/plugins/vlc-video/data/locale/pt-BR.ini @@ -0,0 +1,8 @@ +VLCSource="Fonte de vídeo VLC" +Playlist="Lista de reprodução" +LoopPlaylist="Loop Lista de reprodução" +PlaybackBehavior="Comportamento de visibilidade" +PlaybackBehavior.StopRestart="Parar quando não visível, reiniciar quando visível" +PlaybackBehavior.PauseUnpause="Pausa quando não visível, resumir quando visível" +PlaybackBehavior.AlwaysPlay="Resumir sempre mesmo quando não visível" + diff --git a/plugins/vlc-video/data/locale/pt-PT.ini b/plugins/vlc-video/data/locale/pt-PT.ini new file mode 100644 index 0000000..d6f2f85 --- /dev/null +++ b/plugins/vlc-video/data/locale/pt-PT.ini @@ -0,0 +1,8 @@ +VLCSource="Fonte de vídeo VLC" +Playlist="Lista de reprodução" +LoopPlaylist="Loop Lista de reprodução" +PlaybackBehavior="Comportamento de visibilidade" +PlaybackBehavior.StopRestart="Parar quando não visível, reiniciar quando visível" +PlaybackBehavior.PauseUnpause="Pausa quando não visível, resumir quando visível" +PlaybackBehavior.AlwaysPlay="Resumir sempre mesmo quando não visível" + diff --git a/plugins/vlc-video/data/locale/ru-RU.ini b/plugins/vlc-video/data/locale/ru-RU.ini new file mode 100644 index 0000000..b7085c6 --- /dev/null +++ b/plugins/vlc-video/data/locale/ru-RU.ini @@ -0,0 +1,8 @@ +VLCSource="Источник VLC видео" +Playlist="Плейлист" +LoopPlaylist="Циклическое воспроизведение" +PlaybackBehavior="Поведение видимости" +PlaybackBehavior.StopRestart="Остановить, когда не видно, перезагрузить, когда видно" +PlaybackBehavior.PauseUnpause="Пауза, когда не видно, возобновить, когда видно" +PlaybackBehavior.AlwaysPlay="Всегда играть, даже когда не видно" + diff --git a/plugins/vlc-video/data/locale/sr-CS.ini b/plugins/vlc-video/data/locale/sr-CS.ini new file mode 100644 index 0000000..a136269 --- /dev/null +++ b/plugins/vlc-video/data/locale/sr-CS.ini @@ -0,0 +1,8 @@ +VLCSource="VLC video izvor" +Playlist="Plejlista" +LoopPlaylist="Ponavljanje plejliste" +PlaybackBehavior="Ponašanje pri (ne)vidljivosti" +PlaybackBehavior.StopRestart="Zaustavi kada se ne vidi, ponovi kad se vidi" +PlaybackBehavior.PauseUnpause="Pauziraj kada se ne vidi, odpauziraj kada se vidi" +PlaybackBehavior.AlwaysPlay="Uvek reprodukuj čak i kada se ne vidi" + diff --git a/plugins/vlc-video/data/locale/sr-SP.ini b/plugins/vlc-video/data/locale/sr-SP.ini new file mode 100644 index 0000000..6a670cd --- /dev/null +++ b/plugins/vlc-video/data/locale/sr-SP.ini @@ -0,0 +1,8 @@ +VLCSource="VLC видео извор" +Playlist="Плејлиста" +LoopPlaylist="Понављање плејлисте" +PlaybackBehavior="Понашање при (не)видљивости" +PlaybackBehavior.StopRestart="Заустави када се не види, понови када се види" +PlaybackBehavior.PauseUnpause="Паузирај када се не види, одпаузирај када се види" +PlaybackBehavior.AlwaysPlay="Увек репродукуј чак и када се не види" + diff --git a/plugins/vlc-video/data/locale/sv-SE.ini b/plugins/vlc-video/data/locale/sv-SE.ini new file mode 100644 index 0000000..9581e6b --- /dev/null +++ b/plugins/vlc-video/data/locale/sv-SE.ini @@ -0,0 +1,8 @@ +VLCSource="VLC-videokälla" +Playlist="Spellista" +LoopPlaylist="Slinga spellista" +PlaybackBehavior="Synlighetsbeteende" +PlaybackBehavior.StopRestart="Stoppa när den inte syns, starta om när den syns" +PlaybackBehavior.PauseUnpause="Pausa när den inte syns, återuppta när den syns" +PlaybackBehavior.AlwaysPlay="Spela alltid även när den inte syns" + diff --git a/plugins/vlc-video/data/locale/zh-CN.ini b/plugins/vlc-video/data/locale/zh-CN.ini new file mode 100644 index 0000000..307572c --- /dev/null +++ b/plugins/vlc-video/data/locale/zh-CN.ini @@ -0,0 +1,8 @@ +VLCSource="VLC 视频源" +Playlist="播放列表" +LoopPlaylist="循环播放列表" +PlaybackBehavior="可见性的行为" +PlaybackBehavior.StopRestart="不可见时停止, 可见时重启" +PlaybackBehavior.PauseUnpause="不可见时暂停, 可见时取消暂停" +PlaybackBehavior.AlwaysPlay="即使在不可见时也保持播放" + diff --git a/plugins/vlc-video/data/locale/zh-TW.ini b/plugins/vlc-video/data/locale/zh-TW.ini new file mode 100644 index 0000000..c8c005e --- /dev/null +++ b/plugins/vlc-video/data/locale/zh-TW.ini @@ -0,0 +1,8 @@ +VLCSource="VLC視訊來源" +Playlist="播放清單" +LoopPlaylist="循環播放清單" +PlaybackBehavior="播放行為" +PlaybackBehavior.StopRestart="不可見時停止,可見時重新開始" +PlaybackBehavior.PauseUnpause="不可見時暫停,可見時取消暫停" +PlaybackBehavior.AlwaysPlay="即使不可見一樣播放" + diff --git a/plugins/vlc-video/vlc-video-plugin.c b/plugins/vlc-video/vlc-video-plugin.c new file mode 100644 index 0000000..0cbe7aa --- /dev/null +++ b/plugins/vlc-video/vlc-video-plugin.c @@ -0,0 +1,201 @@ +#ifdef _WIN32 +#include +#endif + +#include +#include "vlc-video-plugin.h" + +OBS_DECLARE_MODULE() +OBS_MODULE_USE_DEFAULT_LOCALE("vlc-video", "en-US") + +/* libvlc core */ +LIBVLC_NEW libvlc_new_; +LIBVLC_RELEASE libvlc_release_; +LIBVLC_CLOCK libvlc_clock_; +LIBVLC_EVENT_ATTACH libvlc_event_attach_; + +/* libvlc media */ +LIBVLC_MEDIA_NEW_PATH libvlc_media_new_path_; +LIBVLC_MEDIA_RELEASE libvlc_media_release_; +LIBVLC_MEDIA_RELEASE libvlc_media_retain_; + +/* libvlc media player */ +LIBVLC_MEDIA_PLAYER_NEW libvlc_media_player_new_; +LIBVLC_MEDIA_PLAYER_NEW_FROM_MEDIA libvlc_media_player_new_from_media_; +LIBVLC_MEDIA_PLAYER_RELEASE libvlc_media_player_release_; +LIBVLC_VIDEO_SET_CALLBACKS libvlc_video_set_callbacks_; +LIBVLC_VIDEO_SET_FORMAT_CALLBACKS libvlc_video_set_format_callbacks_; +LIBVLC_AUDIO_SET_CALLBACKS libvlc_audio_set_callbacks_; +LIBVLC_AUDIO_SET_FORMAT_CALLBACKS libvlc_audio_set_format_callbacks_; +LIBVLC_MEDIA_PLAYER_PLAY libvlc_media_player_play_; +LIBVLC_MEDIA_PLAYER_STOP libvlc_media_player_stop_; +LIBVLC_MEDIA_PLAYER_GET_TIME libvlc_media_player_get_time_; +LIBVLC_VIDEO_GET_SIZE libvlc_video_get_size_; +LIBVLC_MEDIA_PLAYER_EVENT_MANAGER libvlc_media_player_event_manager_; + +/* libvlc media list */ +LIBVLC_MEDIA_LIST_NEW libvlc_media_list_new_; +LIBVLC_MEDIA_LIST_RELEASE libvlc_media_list_release_; +LIBVLC_MEDIA_LIST_ADD_MEDIA libvlc_media_list_add_media_; +LIBVLC_MEDIA_LIST_LOCK libvlc_media_list_lock_; +LIBVLC_MEDIA_LIST_UNLOCK libvlc_media_list_unlock_; +LIBVLC_MEDIA_LIST_EVENT_MANAGER libvlc_media_list_event_manager_; + +/* libvlc media list player */ +LIBVLC_MEDIA_LIST_PLAYER_NEW libvlc_media_list_player_new_; +LIBVLC_MEDIA_LIST_PLAYER_RELEASE libvlc_media_list_player_release_; +LIBVLC_MEDIA_LIST_PLAYER_PLAY libvlc_media_list_player_play_; +LIBVLC_MEDIA_LIST_PLAYER_PAUSE libvlc_media_list_player_pause_; +LIBVLC_MEDIA_LIST_PLAYER_STOP libvlc_media_list_player_stop_; +LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_PLAYER libvlc_media_list_player_set_media_player_; +LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_LIST libvlc_media_list_player_set_media_list_; +LIBVLC_MEDIA_LIST_PLAYER_EVENT_MANAGER libvlc_media_list_player_event_manager_; +LIBVLC_MEDIA_LIST_PLAYER_SET_PLAYBACK_MODE libvlc_media_list_player_set_playback_mode_; + +void *libvlc_module = NULL; +libvlc_instance_t *libvlc = NULL; +uint64_t time_start = 0; + +static bool load_vlc_funcs(void) +{ +#define LOAD_VLC_FUNC(func) \ + do { \ + func ## _ = os_dlsym(libvlc_module, #func); \ + if (!func ## _) { \ + blog(LOG_WARNING, "Could not func VLC function %s, " \ + "VLC loading failed", #func); \ + return false; \ + } \ + } while (false) + + /* libvlc core */ + LOAD_VLC_FUNC(libvlc_new); + LOAD_VLC_FUNC(libvlc_release); + LOAD_VLC_FUNC(libvlc_clock); + LOAD_VLC_FUNC(libvlc_event_attach); + + /* libvlc media */ + LOAD_VLC_FUNC(libvlc_media_new_path); + LOAD_VLC_FUNC(libvlc_media_release); + LOAD_VLC_FUNC(libvlc_media_retain); + + /* libvlc media player */ + LOAD_VLC_FUNC(libvlc_media_player_new); + LOAD_VLC_FUNC(libvlc_media_player_new_from_media); + LOAD_VLC_FUNC(libvlc_media_player_release); + LOAD_VLC_FUNC(libvlc_video_set_callbacks); + LOAD_VLC_FUNC(libvlc_video_set_format_callbacks); + LOAD_VLC_FUNC(libvlc_audio_set_callbacks); + LOAD_VLC_FUNC(libvlc_audio_set_format_callbacks); + LOAD_VLC_FUNC(libvlc_media_player_play); + LOAD_VLC_FUNC(libvlc_media_player_stop); + LOAD_VLC_FUNC(libvlc_media_player_get_time); + LOAD_VLC_FUNC(libvlc_video_get_size); + LOAD_VLC_FUNC(libvlc_media_player_event_manager); + + /* libvlc media list */ + LOAD_VLC_FUNC(libvlc_media_list_new); + LOAD_VLC_FUNC(libvlc_media_list_release); + LOAD_VLC_FUNC(libvlc_media_list_add_media); + LOAD_VLC_FUNC(libvlc_media_list_lock); + LOAD_VLC_FUNC(libvlc_media_list_unlock); + LOAD_VLC_FUNC(libvlc_media_list_event_manager); + + /* libvlc media list player */ + LOAD_VLC_FUNC(libvlc_media_list_player_new); + LOAD_VLC_FUNC(libvlc_media_list_player_release); + LOAD_VLC_FUNC(libvlc_media_list_player_play); + LOAD_VLC_FUNC(libvlc_media_list_player_pause); + LOAD_VLC_FUNC(libvlc_media_list_player_stop); + LOAD_VLC_FUNC(libvlc_media_list_player_set_media_player); + LOAD_VLC_FUNC(libvlc_media_list_player_set_media_list); + LOAD_VLC_FUNC(libvlc_media_list_player_event_manager); + LOAD_VLC_FUNC(libvlc_media_list_player_set_playback_mode); + return true; +} + +static bool load_libvlc_module(void) +{ +#ifdef _WIN32 + char *path_utf8 = NULL; + wchar_t path[1024]; + LSTATUS status; + DWORD size; + HKEY key; + + memset(path, 0, 1024 * sizeof(wchar_t)); + + status = RegOpenKeyW(HKEY_LOCAL_MACHINE, + L"SOFTWARE\\VideoLAN\\VLC", + &key); + if (status != ERROR_SUCCESS) + return false; + + size = 1024; + status = RegQueryValueExW(key, L"InstallDir", NULL, NULL, + (LPBYTE)path, &size); + if (status == ERROR_SUCCESS) { + wcscat(path, L"\\libvlc.dll"); + os_wcs_to_utf8_ptr(path, 0, &path_utf8); + libvlc_module = os_dlopen(path_utf8); + bfree(path_utf8); + } + + RegCloseKey(key); +#else + +#ifdef __APPLE__ +#define LIBVLC_DIR "/Applications/VLC.app/Contents/MacOS/" +#define LIBVLC_FILE LIBVLC_DIR "lib/libvlc.5.dylib" + setenv("VLC_PLUGIN_PATH", LIBVLC_DIR "plugins", false); +#else +#define LIBVLC_FILE "libvlc.so.5" +#endif + libvlc_module = os_dlopen(LIBVLC_FILE); + +#endif + + return libvlc_module != NULL; +} + +extern struct obs_source_info vlc_source_info; + +bool load_libvlc(void) +{ + if (libvlc) + return true; + + libvlc = libvlc_new_(0, 0); + if (!libvlc) { + blog(LOG_INFO, "Couldn't create libvlc instance"); + return false; + } + + time_start = (uint64_t)libvlc_clock_() * 1000ULL; + return true; +} + +bool obs_module_load(void) +{ + if (!load_libvlc_module()) { + blog(LOG_INFO, "Couldn't find VLC installation, VLC video " + "source disabled"); + return true; + } + + if (!load_vlc_funcs()) + return true; + + blog(LOG_INFO, "VLC found, VLC video source enabled"); + + obs_register_source(&vlc_source_info); + return true; +} + +void obs_module_unload(void) +{ + if (libvlc) + libvlc_release_(libvlc); + if (libvlc_module) + os_dlclose(libvlc_module); +} diff --git a/plugins/vlc-video/vlc-video-plugin.h b/plugins/vlc-video/vlc-video-plugin.h new file mode 100644 index 0000000..9eefb39 --- /dev/null +++ b/plugins/vlc-video/vlc-video-plugin.h @@ -0,0 +1,229 @@ +#include +#include + +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#endif + +#include +#include +#include +#include +#include + +extern libvlc_instance_t *libvlc; +extern uint64_t time_start; + +extern bool load_libvlc(void); + +/* libvlc core */ +typedef libvlc_instance_t *(*LIBVLC_NEW)(int argc, const char *const *argv); +typedef void (*LIBVLC_RELEASE)(libvlc_instance_t *p_instance); +typedef int64_t (*LIBVLC_CLOCK)(void); +typedef int (*LIBVLC_EVENT_ATTACH)(libvlc_event_manager_t *p_event_manager, + libvlc_event_type_t i_event_type, + libvlc_callback_t f_callback, + void *user_data); + +/* libvlc media */ +typedef libvlc_media_t *(*LIBVLC_MEDIA_NEW_PATH)( + libvlc_instance_t *p_instance, const char *path); +typedef void (*LIBVLC_MEDIA_RETAIN)(libvlc_media_t *p_md); +typedef void (*LIBVLC_MEDIA_RELEASE)(libvlc_media_t *p_md); + +/* libvlc media player */ +typedef libvlc_media_player_t *(*LIBVLC_MEDIA_PLAYER_NEW)( + libvlc_instance_t *p_libvlc); +typedef libvlc_media_player_t *(*LIBVLC_MEDIA_PLAYER_NEW_FROM_MEDIA)( + libvlc_media_t *p_md); +typedef void (*LIBVLC_MEDIA_PLAYER_RELEASE)( + libvlc_media_player_t *p_mi); +typedef void (*LIBVLC_VIDEO_SET_CALLBACKS)( + libvlc_media_player_t *mp, + libvlc_video_lock_cb lock, + libvlc_video_unlock_cb unlock, + libvlc_video_display_cb display, + void *opaque); +typedef void (*LIBVLC_VIDEO_SET_FORMAT_CALLBACKS)( + libvlc_media_player_t *mp, + libvlc_video_format_cb setup, + libvlc_video_cleanup_cb cleanup); +typedef void (*LIBVLC_AUDIO_SET_CALLBACKS)( + libvlc_media_player_t *mp, + libvlc_audio_play_cb play, + libvlc_audio_pause_cb pause, + libvlc_audio_resume_cb resume, + libvlc_audio_flush_cb flush, + libvlc_audio_drain_cb drain, + void *opaque); +typedef void (*LIBVLC_AUDIO_SET_FORMAT_CALLBACKS)( + libvlc_media_player_t *mp, + libvlc_audio_setup_cb setup, + libvlc_audio_cleanup_cb cleanup); +typedef int (*LIBVLC_MEDIA_PLAYER_PLAY)( + libvlc_media_player_t *p_mi); +typedef void (*LIBVLC_MEDIA_PLAYER_STOP)( + libvlc_media_player_t *p_mi); +typedef libvlc_time_t (*LIBVLC_MEDIA_PLAYER_GET_TIME)( + libvlc_media_player_t *p_mi); +typedef int (*LIBVLC_VIDEO_GET_SIZE)( + libvlc_media_player_t *p_mi, + unsigned num, + unsigned *px, + unsigned *py); +typedef libvlc_event_manager_t *(*LIBVLC_MEDIA_PLAYER_EVENT_MANAGER)( + libvlc_media_player_t *p_mp); + +/* libvlc media list */ +typedef libvlc_media_list_t *(*LIBVLC_MEDIA_LIST_NEW)( + libvlc_instance_t *p_instance); +typedef void (*LIBVLC_MEDIA_LIST_RELEASE)(libvlc_media_list_t *p_ml); +typedef int (*LIBVLC_MEDIA_LIST_ADD_MEDIA)(libvlc_media_list_t *p_ml, + libvlc_media_t *p_md); +typedef void (*LIBVLC_MEDIA_LIST_LOCK)(libvlc_media_list_t *p_ml); +typedef void (*LIBVLC_MEDIA_LIST_UNLOCK)(libvlc_media_list_t *p_ml); +typedef libvlc_event_manager_t *(*LIBVLC_MEDIA_LIST_EVENT_MANAGER)( + libvlc_media_list_t *p_ml); + +/* libvlc media list player */ +typedef libvlc_media_list_player_t *(*LIBVLC_MEDIA_LIST_PLAYER_NEW)( + libvlc_instance_t * p_instance); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_RELEASE)( + libvlc_media_list_player_t *p_mlp); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_PLAY)( + libvlc_media_list_player_t *p_mlp); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_PAUSE)( + libvlc_media_list_player_t *p_mlp); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_STOP)( + libvlc_media_list_player_t *p_mlp); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_PLAYER)( + libvlc_media_list_player_t *p_mlp, + libvlc_media_player_t *p_mp); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_LIST)( + libvlc_media_list_player_t *p_mlp, + libvlc_media_list_t *p_mlist); +typedef libvlc_event_manager_t *(*LIBVLC_MEDIA_LIST_PLAYER_EVENT_MANAGER)( + libvlc_media_list_player_t *p_mlp); +typedef void (*LIBVLC_MEDIA_LIST_PLAYER_SET_PLAYBACK_MODE)( + libvlc_media_list_player_t *p_mlp, + libvlc_playback_mode_t e_mode); + +/* -------------------------------------------------------------------- */ + +/* libvlc core */ +extern LIBVLC_NEW libvlc_new_; +extern LIBVLC_RELEASE libvlc_release_; +extern LIBVLC_CLOCK libvlc_clock_; +extern LIBVLC_EVENT_ATTACH libvlc_event_attach_; + +/* libvlc media */ +extern LIBVLC_MEDIA_NEW_PATH libvlc_media_new_path_; +extern LIBVLC_MEDIA_RELEASE libvlc_media_release_; +extern LIBVLC_MEDIA_RETAIN libvlc_media_retain_; + +/* libvlc media player */ +extern LIBVLC_MEDIA_PLAYER_NEW libvlc_media_player_new_; +extern LIBVLC_MEDIA_PLAYER_NEW_FROM_MEDIA libvlc_media_player_new_from_media_; +extern LIBVLC_MEDIA_PLAYER_RELEASE libvlc_media_player_release_; +extern LIBVLC_VIDEO_SET_CALLBACKS libvlc_video_set_callbacks_; +extern LIBVLC_VIDEO_SET_FORMAT_CALLBACKS libvlc_video_set_format_callbacks_; +extern LIBVLC_AUDIO_SET_CALLBACKS libvlc_audio_set_callbacks_; +extern LIBVLC_AUDIO_SET_FORMAT_CALLBACKS libvlc_audio_set_format_callbacks_; +extern LIBVLC_MEDIA_PLAYER_PLAY libvlc_media_player_play_; +extern LIBVLC_MEDIA_PLAYER_STOP libvlc_media_player_stop_; +extern LIBVLC_MEDIA_PLAYER_GET_TIME libvlc_media_player_get_time_; +extern LIBVLC_VIDEO_GET_SIZE libvlc_video_get_size_; +extern LIBVLC_MEDIA_PLAYER_EVENT_MANAGER libvlc_media_player_event_manager_; + +/* libvlc media list */ +extern LIBVLC_MEDIA_LIST_NEW libvlc_media_list_new_; +extern LIBVLC_MEDIA_LIST_RELEASE libvlc_media_list_release_; +extern LIBVLC_MEDIA_LIST_ADD_MEDIA libvlc_media_list_add_media_; +extern LIBVLC_MEDIA_LIST_LOCK libvlc_media_list_lock_; +extern LIBVLC_MEDIA_LIST_UNLOCK libvlc_media_list_unlock_; +extern LIBVLC_MEDIA_LIST_EVENT_MANAGER libvlc_media_list_event_manager_; + +/* libvlc media list player */ +extern LIBVLC_MEDIA_LIST_PLAYER_NEW libvlc_media_list_player_new_; +extern LIBVLC_MEDIA_LIST_PLAYER_RELEASE libvlc_media_list_player_release_; +extern LIBVLC_MEDIA_LIST_PLAYER_PLAY libvlc_media_list_player_play_; +extern LIBVLC_MEDIA_LIST_PLAYER_PAUSE libvlc_media_list_player_pause_; +extern LIBVLC_MEDIA_LIST_PLAYER_STOP libvlc_media_list_player_stop_; +extern LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_PLAYER libvlc_media_list_player_set_media_player_; +extern LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_LIST libvlc_media_list_player_set_media_list_; +extern LIBVLC_MEDIA_LIST_PLAYER_EVENT_MANAGER libvlc_media_list_player_event_manager_; +extern LIBVLC_MEDIA_LIST_PLAYER_SET_PLAYBACK_MODE libvlc_media_list_player_set_playback_mode_; + +#define EXTENSIONS_AUDIO \ + "*.3ga;" \ + "*.669;" \ + "*.a52;" \ + "*.aac;" \ + "*.ac3;" \ + "*.adt;" \ + "*.adts;" \ + "*.aif;"\ + "*.aifc;"\ + "*.aiff;"\ + "*.amb;" \ + "*.amr;" \ + "*.aob;" \ + "*.ape;" \ + "*.au;" \ + "*.awb;" \ + "*.caf;" \ + "*.dts;" \ + "*.flac;"\ + "*.it;" \ + "*.kar;" \ + "*.m4a;" \ + "*.m4b;" \ + "*.m4p;" \ + "*.m5p;" \ + "*.mid;" \ + "*.mka;" \ + "*.mlp;" \ + "*.mod;" \ + "*.mpa;" \ + "*.mp1;" \ + "*.mp2;" \ + "*.mp3;" \ + "*.mpc;" \ + "*.mpga;" \ + "*.mus;" \ + "*.oga;" \ + "*.ogg;" \ + "*.oma;" \ + "*.opus;" \ + "*.qcp;" \ + "*.ra;" \ + "*.rmi;" \ + "*.s3m;" \ + "*.sid;" \ + "*.spx;" \ + "*.tak;" \ + "*.thd;" \ + "*.tta;" \ + "*.voc;" \ + "*.vqf;" \ + "*.w64;" \ + "*.wav;" \ + "*.wma;" \ + "*.wv;" \ + "*.xa;" \ + "*.xm" + +#define EXTENSIONS_VIDEO "*.3g2;*.3gp;*.3gp2;*.3gpp;*.amv;*.asf;*.avi;" \ + "*.bik;*.bin;*.crf;*.divx;*.drc;*.dv;*.evo;*.f4v;*.flv;*.gvi;*.gxf;" \ + "*.iso;*.m1v;*.m2v;*.m2t;*.m2ts;*.m4v;*.mkv;*.mov;*.mp2;*.mp2v;*.mp4;" \ + "*.mp4v;*.mpe;*.mpeg;*.mpeg1;*.mpeg2;*.mpeg4;*.mpg;*.mpv2;*.mts;" \ + "*.mtv;*.mxf;*.mxg;*.nsv;*.nuv;*.ogg;*.ogm;*.ogv;*.ogx;*.ps;*.rec;" \ + "*.rm;*.rmvb;*.rpl;*.thp;*.tod;*.ts;*.tts;*.txd;*.vob;*.vro;*.webm;" \ + "*.wm;*.wmv;*.wtv;*.xesc" + +#define EXTENSIONS_PLAYLIST "*.asx;*.b4s;*.cue;*.ifo;*.m3u;*.m3u8;*.pls;" \ + "*.ram;*.rar;*.sdp;*.vlc;*.xspf;*.wax;*.wvx;*.zip;*.conf" + +#define EXTENSIONS_MEDIA EXTENSIONS_VIDEO ";" EXTENSIONS_AUDIO ";" \ + EXTENSIONS_PLAYLIST diff --git a/plugins/vlc-video/vlc-video-source.c b/plugins/vlc-video/vlc-video-source.c new file mode 100644 index 0000000..824d57c --- /dev/null +++ b/plugins/vlc-video/vlc-video-source.c @@ -0,0 +1,721 @@ +#include "vlc-video-plugin.h" +#include +#include +#include +#include + +#define do_log(level, format, ...) \ + blog(level, "[vlc_source: '%s'] " format, \ + obs_source_get_name(ss->source), ##__VA_ARGS__) + +#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__) + +#define S_PLAYLIST "playlist" +#define S_LOOP "loop" +#define S_BEHAVIOR "playback_behavior" +#define S_BEHAVIOR_STOP_RESTART "stop_restart" +#define S_BEHAVIOR_PAUSE_UNPAUSE "pause_unpause" +#define S_BEHAVIOR_ALWAYS_PLAY "always_play" + +#define T_(text) obs_module_text(text) +#define T_PLAYLIST T_("Playlist") +#define T_LOOP T_("LoopPlaylist") +#define T_BEHAVIOR T_("PlaybackBehavior") +#define T_BEHAVIOR_STOP_RESTART T_("PlaybackBehavior.StopRestart") +#define T_BEHAVIOR_PAUSE_UNPAUSE T_("PlaybackBehavior.PauseUnpause") +#define T_BEHAVIOR_ALWAYS_PLAY T_("PlaybackBehavior.AlwaysPlay") + +/* ------------------------------------------------------------------------- */ + +struct media_file_data { + char *path; + libvlc_media_t *media; +}; + +enum behavior { + BEHAVIOR_STOP_RESTART, + BEHAVIOR_PAUSE_UNPAUSE, + BEHAVIOR_ALWAYS_PLAY, +}; + +struct vlc_source { + obs_source_t *source; + + libvlc_media_player_t *media_player; + libvlc_media_list_player_t *media_list_player; + + struct obs_source_frame frame; + struct obs_source_audio audio; + size_t audio_capacity; + + pthread_mutex_t mutex; + DARRAY(struct media_file_data) files; + enum behavior behavior; + bool loop; +}; + +static libvlc_media_t *get_media(struct darray *array, const char *path) +{ + DARRAY(struct media_file_data) files; + libvlc_media_t *media = NULL; + + files.da = *array; + + for (size_t i = 0; i < files.num; i++) { + const char *cur_path = files.array[i].path; + + if (strcmp(path, cur_path) == 0) { + media = files.array[i].media; + libvlc_media_retain_(media); + break; + } + } + + return media; +} + +static inline libvlc_media_t *create_media_from_file(const char *file) +{ + return libvlc_media_new_path_(libvlc, file); +} + +static void free_files(struct darray *array) +{ + DARRAY(struct media_file_data) files; + files.da = *array; + + for (size_t i = 0; i < files.num; i++) { + bfree(files.array[i].path); + libvlc_media_release_(files.array[i].media); + } + + da_free(files); +} + +static inline bool chroma_is(const char *chroma, const char *val) +{ + return *(uint32_t*)chroma == *(uint32_t*)val; +} + +static enum video_format convert_vlc_video_format(char *chroma, bool *full) +{ + *full = false; + +#define CHROMA_TEST(val, ret) \ + if (chroma_is(chroma, val)) return ret +#define CHROMA_CONV(val, new_val, ret) \ + do { \ + if (chroma_is(chroma, val)) { \ + *(uint32_t*)chroma = *(uint32_t*)new_val; \ + return ret; \ + } \ + } while (false) +#define CHROMA_CONV_FULL(val, new_val, ret) \ + do { \ + *full = true; \ + CHROMA_CONV(val, new_val, ret); \ + } while (false) + + CHROMA_TEST("RGBA", VIDEO_FORMAT_RGBA); + CHROMA_TEST("BGRA", VIDEO_FORMAT_BGRA); + + /* 4:2:0 formats */ + CHROMA_TEST("NV12", VIDEO_FORMAT_NV12); + CHROMA_TEST("I420", VIDEO_FORMAT_I420); + CHROMA_TEST("IYUV", VIDEO_FORMAT_I420); + CHROMA_CONV("NV21", "NV12", VIDEO_FORMAT_NV12); + CHROMA_CONV("I422", "NV12", VIDEO_FORMAT_NV12); + CHROMA_CONV("Y42B", "NV12", VIDEO_FORMAT_NV12); + CHROMA_CONV("YV12", "NV12", VIDEO_FORMAT_NV12); + CHROMA_CONV("yv12", "NV12", VIDEO_FORMAT_NV12); + + CHROMA_CONV_FULL("J420", "J420", VIDEO_FORMAT_I420); + + /* 4:2:2 formats */ + CHROMA_TEST("UYVY", VIDEO_FORMAT_UYVY); + CHROMA_TEST("UYNV", VIDEO_FORMAT_UYVY); + CHROMA_TEST("UYNY", VIDEO_FORMAT_UYVY); + CHROMA_TEST("Y422", VIDEO_FORMAT_UYVY); + CHROMA_TEST("HDYC", VIDEO_FORMAT_UYVY); + CHROMA_TEST("AVUI", VIDEO_FORMAT_UYVY); + CHROMA_TEST("uyv1", VIDEO_FORMAT_UYVY); + CHROMA_TEST("2vuy", VIDEO_FORMAT_UYVY); + CHROMA_TEST("2Vuy", VIDEO_FORMAT_UYVY); + CHROMA_TEST("2Vu1", VIDEO_FORMAT_UYVY); + + CHROMA_TEST("YUY2", VIDEO_FORMAT_YUY2); + CHROMA_TEST("YUYV", VIDEO_FORMAT_YUY2); + CHROMA_TEST("YUNV", VIDEO_FORMAT_YUY2); + CHROMA_TEST("V422", VIDEO_FORMAT_YUY2); + + CHROMA_TEST("YVYU", VIDEO_FORMAT_YVYU); + + CHROMA_CONV("v210", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("cyuv", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("CYUV", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("VYUY", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("NV16", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("NV61", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("I410", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("I422", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("Y42B", "UYVY", VIDEO_FORMAT_UYVY); + CHROMA_CONV("J422", "UYVY", VIDEO_FORMAT_UYVY); + + /* 4:4:4 formats */ + CHROMA_TEST("I444", VIDEO_FORMAT_I444); + CHROMA_CONV_FULL("J444", "J444", VIDEO_FORMAT_I444); + CHROMA_CONV("YUVA", "RGBA", VIDEO_FORMAT_RGBA); + + /* 4:4:0 formats */ + CHROMA_CONV("I440", "I444", VIDEO_FORMAT_I444); + CHROMA_CONV("J440", "I444", VIDEO_FORMAT_I444); + + /* 4:1:0 formats */ + CHROMA_CONV("YVU9", "NV12", VIDEO_FORMAT_UYVY); + CHROMA_CONV("I410", "NV12", VIDEO_FORMAT_UYVY); + + /* 4:1:1 formats */ + CHROMA_CONV("I411", "NV12", VIDEO_FORMAT_UYVY); + CHROMA_CONV("Y41B", "NV12", VIDEO_FORMAT_UYVY); + + /* greyscale formats */ + CHROMA_TEST("GREY", VIDEO_FORMAT_Y800); + CHROMA_TEST("Y800", VIDEO_FORMAT_Y800); + CHROMA_TEST("Y8 ", VIDEO_FORMAT_Y800); +#undef CHROMA_CONV_FULL +#undef CHROMA_CONV +#undef CHROMA_TEST + + *(uint32_t*)chroma = *(uint32_t*)"BGRA"; + return VIDEO_FORMAT_BGRA; +} + +static inline unsigned get_format_lines(enum video_format format, + unsigned height, size_t plane) +{ + switch (format) { + case VIDEO_FORMAT_I420: + case VIDEO_FORMAT_NV12: + return (plane == 0) ? height : height / 2; + case VIDEO_FORMAT_YVYU: + case VIDEO_FORMAT_YUY2: + case VIDEO_FORMAT_UYVY: + case VIDEO_FORMAT_I444: + case VIDEO_FORMAT_RGBA: + case VIDEO_FORMAT_BGRA: + case VIDEO_FORMAT_BGRX: + case VIDEO_FORMAT_Y800: + return height; + case VIDEO_FORMAT_NONE:; + } + + return 0; +} + +static enum audio_format convert_vlc_audio_format(char *format) +{ +#define AUDIO_TEST(val, ret) \ + if (chroma_is(format, val)) return ret +#define AUDIO_CONV(val, new_val, ret) \ + do { \ + if (chroma_is(format, val)) { \ + *(uint32_t*)format = *(uint32_t*)new_val; \ + return ret; \ + } \ + } while (false) + + AUDIO_TEST("S16N", AUDIO_FORMAT_16BIT); + AUDIO_TEST("S32N", AUDIO_FORMAT_32BIT); + AUDIO_TEST("FL32", AUDIO_FORMAT_FLOAT); + + AUDIO_CONV("U16N", "S16N", AUDIO_FORMAT_16BIT); + AUDIO_CONV("U32N", "S32N", AUDIO_FORMAT_32BIT); + AUDIO_CONV("S24N", "S32N", AUDIO_FORMAT_32BIT); + AUDIO_CONV("U24N", "S32N", AUDIO_FORMAT_32BIT); + AUDIO_CONV("FL64", "FL32", AUDIO_FORMAT_FLOAT); + + AUDIO_CONV("S16I", "S16N", AUDIO_FORMAT_16BIT); + AUDIO_CONV("U16I", "S16N", AUDIO_FORMAT_16BIT); + AUDIO_CONV("S24I", "S32N", AUDIO_FORMAT_32BIT); + AUDIO_CONV("U24I", "S32N", AUDIO_FORMAT_32BIT); + AUDIO_CONV("S32I", "S32N", AUDIO_FORMAT_32BIT); + AUDIO_CONV("U32I", "S32N", AUDIO_FORMAT_32BIT); +#undef AUDIO_CONV +#undef AUDIO_TEST + + *(uint32_t*)format = *(uint32_t*)"FL32"; + return AUDIO_FORMAT_FLOAT; +} + +/* ------------------------------------------------------------------------- */ + +static const char *vlcs_get_name(void *unused) +{ + UNUSED_PARAMETER(unused); + return obs_module_text("VLCSource"); +} + +static void vlcs_destroy(void *data) +{ + struct vlc_source *c = data; + + if (c->media_list_player) { + libvlc_media_list_player_stop_(c->media_list_player); + libvlc_media_list_player_release_(c->media_list_player); + } + if (c->media_player) { + libvlc_media_player_release_(c->media_player); + } + + bfree((void*)c->audio.data[0]); + obs_source_frame_free(&c->frame); + + free_files(&c->files.da); + pthread_mutex_destroy(&c->mutex); + bfree(c); +} + +static void *vlcs_video_lock(void *data, void **planes) +{ + struct vlc_source *c = data; + for (size_t i = 0; i < MAX_AV_PLANES && c->frame.data[i] != NULL; i++) + planes[i] = c->frame.data[i]; + return NULL; +} + +static void vlcs_video_display(void *data, void *picture) +{ + struct vlc_source *c = data; + c->frame.timestamp = (uint64_t)libvlc_clock_() * 1000ULL - time_start; + obs_source_output_video(c->source, &c->frame); + + UNUSED_PARAMETER(picture); +} + +static unsigned vlcs_video_format(void **p_data, char *chroma, unsigned *width, + unsigned *height, unsigned *pitches, unsigned *lines) +{ + struct vlc_source *c = *p_data; + enum video_format new_format; + enum video_range_type range; + bool new_range; + size_t i = 0; + + new_format = convert_vlc_video_format(chroma, &new_range); + + libvlc_video_get_size_(c->media_player, 0, width, height); + + /* don't allocate a new frame if format/width/height hasn't changed */ + if (c->frame.format != new_format || + c->frame.width != *width || + c->frame.height != *height) { + obs_source_frame_free(&c->frame); + obs_source_frame_init(&c->frame, new_format, *width, *height); + + c->frame.format = new_format; + c->frame.full_range = new_range; + range = c->frame.full_range ? + VIDEO_RANGE_FULL : VIDEO_RANGE_PARTIAL; + video_format_get_parameters(VIDEO_CS_DEFAULT, range, + c->frame.color_matrix, + c->frame.color_range_min, + c->frame.color_range_max); + } + + while (c->frame.data[i]) { + pitches[i] = (unsigned)c->frame.linesize[i]; + lines[i] = get_format_lines(c->frame.format, *height, i); + i++; + } + + return 1; +} + +static void vlcs_audio_play(void *data, const void *samples, unsigned count, + int64_t pts) +{ + struct vlc_source *c = data; + size_t size = get_audio_size(c->audio.format, c->audio.speakers, count); + + if (c->audio_capacity < count) { + c->audio.data[0] = brealloc((void*)c->audio.data[0], size); + c->audio_capacity = count; + } + + memcpy((void*)c->audio.data[0], samples, size); + c->audio.timestamp = (uint64_t)pts * 1000ULL - time_start; + c->audio.frames = count; + + obs_source_output_audio(c->source, &c->audio); +} + +static int vlcs_audio_setup(void **p_data, char *format, unsigned *rate, + unsigned *channels) +{ + struct vlc_source *c = *p_data; + enum audio_format new_audio_format; + + new_audio_format = convert_vlc_audio_format(format); + if (*channels > 2) + *channels = 2; + + /* don't free audio data if the data is the same format */ + if (c->audio.format == new_audio_format && + c->audio.samples_per_sec == *rate && + c->audio.speakers == (enum speaker_layout)*channels) + return 0; + + c->audio_capacity = 0; + bfree((void*)c->audio.data[0]); + + memset(&c->audio, 0, sizeof(c->audio)); + c->audio.speakers = (enum speaker_layout)*channels; + c->audio.samples_per_sec = *rate; + c->audio.format = new_audio_format; + return 0; +} + +static void add_file(struct vlc_source *c, struct darray *array, + const char *path) +{ + DARRAY(struct media_file_data) new_files; + struct media_file_data data; + struct dstr new_path = {0}; + libvlc_media_t *new_media; + + new_files.da = *array; + + dstr_copy(&new_path, path); +#ifdef _WIN32 + dstr_replace(&new_path, "/", "\\"); +#endif + path = new_path.array; + + new_media = get_media(&c->files.da, path); + + if (!new_media) + new_media = get_media(&new_files.da, path); + if (!new_media) + new_media = create_media_from_file(path); + + if (new_media) { + data.path = new_path.array; + data.media = new_media; + da_push_back(new_files, &data); + } else { + dstr_free(&new_path); + } + + *array = new_files.da; +} + +static bool valid_extension(const char *ext) +{ + struct dstr test = {0}; + bool valid = false; + const char *b; + const char *e; + + if (!ext || !*ext) + return false; + + b = EXTENSIONS_MEDIA + 1; + e = strchr(b, ';'); + + for (;;) { + if (e) dstr_ncopy(&test, b, e - b); + else dstr_copy(&test, b); + + if (dstr_cmp(&test, ext) == 0) { + valid = true; + break; + } + + if (!e) + break; + + b = e + 2; + e = strchr(b, ';'); + } + + dstr_free(&test); + return valid; +} + +static void vlcs_update(void *data, obs_data_t *settings) +{ + DARRAY(struct media_file_data) new_files; + DARRAY(struct media_file_data) old_files; + libvlc_media_list_t *media_list; + struct vlc_source *c = data; + obs_data_array_t *array; + const char *behavior; + size_t count; + + da_init(new_files); + da_init(old_files); + + array = obs_data_get_array(settings, S_PLAYLIST); + count = obs_data_array_count(array); + + c->loop = obs_data_get_bool(settings, S_LOOP); + + behavior = obs_data_get_string(settings, S_BEHAVIOR); + + if (astrcmpi(behavior, S_BEHAVIOR_PAUSE_UNPAUSE) == 0) { + c->behavior = BEHAVIOR_PAUSE_UNPAUSE; + } else if (astrcmpi(behavior, S_BEHAVIOR_ALWAYS_PLAY) == 0) { + c->behavior = BEHAVIOR_ALWAYS_PLAY; + } else { /* S_BEHAVIOR_STOP_RESTART */ + c->behavior = BEHAVIOR_STOP_RESTART; + } + + /* ------------------------------------- */ + /* create new list of sources */ + + for (size_t i = 0; i < count; i++) { + obs_data_t *item = obs_data_array_item(array, i); + const char *path = obs_data_get_string(item, "value"); + os_dir_t *dir = os_opendir(path); + + if (dir) { + struct dstr dir_path = {0}; + struct os_dirent *ent; + + for (;;) { + const char *ext; + + ent = os_readdir(dir); + if (!ent) + break; + if (ent->directory) + continue; + + ext = os_get_path_extension(ent->d_name); + if (!valid_extension(ext)) + continue; + + dstr_copy(&dir_path, path); + dstr_cat_ch(&dir_path, '/'); + dstr_cat(&dir_path, ent->d_name); + add_file(c, &new_files.da, dir_path.array); + } + + dstr_free(&dir_path); + os_closedir(dir); + } else { + add_file(c, &new_files.da, path); + } + + obs_data_release(item); + } + + /* ------------------------------------- */ + /* update settings data */ + + libvlc_media_list_player_stop_(c->media_list_player); + + pthread_mutex_lock(&c->mutex); + old_files.da = c->files.da; + c->files.da = new_files.da; + pthread_mutex_unlock(&c->mutex); + + /* ------------------------------------- */ + /* clean up and restart playback */ + + free_files(&old_files.da); + + media_list = libvlc_media_list_new_(libvlc); + + libvlc_media_list_lock_(media_list); + for (size_t i = 0; i < c->files.num; i++) + libvlc_media_list_add_media_(media_list, + c->files.array[i].media); + libvlc_media_list_unlock_(media_list); + + libvlc_media_list_player_set_media_list_(c->media_list_player, + media_list); + libvlc_media_list_release_(media_list); + + libvlc_media_list_player_set_playback_mode_(c->media_list_player, + c->loop ? libvlc_playback_mode_loop : + libvlc_playback_mode_default); + + if (c->files.num && + (c->behavior == BEHAVIOR_ALWAYS_PLAY || obs_source_active(c->source))) + libvlc_media_list_player_play_(c->media_list_player); + else + obs_source_output_video(c->source, NULL); + + obs_data_array_release(array); +} + +static void vlcs_stopped(const struct libvlc_event_t *event, void *data) +{ + struct vlc_source *c = data; + if (!c->loop) + obs_source_output_video(c->source, NULL); + + UNUSED_PARAMETER(event); +} + +static void *vlcs_create(obs_data_t *settings, obs_source_t *source) +{ + struct vlc_source *c = bzalloc(sizeof(*c)); + c->source = source; + + pthread_mutex_init_value(&c->mutex); + if (pthread_mutex_init(&c->mutex, NULL) != 0) + goto error; + + if (!load_libvlc()) + goto error; + + c->media_list_player = libvlc_media_list_player_new_(libvlc); + if (!c->media_list_player) + goto error; + + c->media_player = libvlc_media_player_new_(libvlc); + if (!c->media_player) + goto error; + + libvlc_media_list_player_set_media_player_(c->media_list_player, + c->media_player); + + libvlc_video_set_callbacks_(c->media_player, + vlcs_video_lock, NULL, vlcs_video_display, + c); + libvlc_video_set_format_callbacks_(c->media_player, + vlcs_video_format, NULL); + + libvlc_audio_set_callbacks_(c->media_player, + vlcs_audio_play, NULL, NULL, NULL, NULL, c); + libvlc_audio_set_format_callbacks_(c->media_player, + vlcs_audio_setup, NULL); + + libvlc_event_manager_t *event_manager; + event_manager = libvlc_media_player_event_manager_(c->media_player); + libvlc_event_attach_(event_manager, libvlc_MediaPlayerEndReached, + vlcs_stopped, c); + + obs_source_update(source, NULL); + + UNUSED_PARAMETER(settings); + return c; + +error: + vlcs_destroy(c); + return NULL; +} + +static void vlcs_activate(void *data) +{ + struct vlc_source *c = data; + + if (c->behavior == BEHAVIOR_STOP_RESTART) { + libvlc_media_list_player_play_(c->media_list_player); + + } else if (c->behavior == BEHAVIOR_PAUSE_UNPAUSE) { + libvlc_media_list_player_play_(c->media_list_player); + } +} + +static void vlcs_deactivate(void *data) +{ + struct vlc_source *c = data; + + if (c->behavior == BEHAVIOR_STOP_RESTART) { + libvlc_media_list_player_stop_(c->media_list_player); + obs_source_output_video(c->source, NULL); + + } else if (c->behavior == BEHAVIOR_PAUSE_UNPAUSE) { + libvlc_media_list_player_pause_(c->media_list_player); + } +} + +static void vlcs_defaults(obs_data_t *settings) +{ + obs_data_set_default_bool(settings, S_LOOP, true); + obs_data_set_default_string(settings, S_BEHAVIOR, + S_BEHAVIOR_STOP_RESTART); +} + +static obs_properties_t *vlcs_properties(void *data) +{ + obs_properties_t *ppts = obs_properties_create(); + struct vlc_source *c = data; + struct dstr filter = {0}; + struct dstr exts = {0}; + struct dstr path = {0}; + obs_property_t *p; + + obs_properties_add_bool(ppts, S_LOOP, T_LOOP); + + if (c) { + pthread_mutex_lock(&c->mutex); + if (c->files.num) { + struct media_file_data *last = da_end(c->files); + const char *slash; + + dstr_copy(&path, last->path); + dstr_replace(&path, "\\", "/"); + slash = strrchr(path.array, '/'); + if (slash) + dstr_resize(&path, slash - path.array + 1); + } + pthread_mutex_unlock(&c->mutex); + } + + p = obs_properties_add_list(ppts, S_BEHAVIOR, T_BEHAVIOR, + OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); + obs_property_list_add_string(p, T_BEHAVIOR_STOP_RESTART, + S_BEHAVIOR_STOP_RESTART); + obs_property_list_add_string(p, T_BEHAVIOR_PAUSE_UNPAUSE, + S_BEHAVIOR_PAUSE_UNPAUSE); + obs_property_list_add_string(p, T_BEHAVIOR_ALWAYS_PLAY, + S_BEHAVIOR_ALWAYS_PLAY); + + dstr_cat(&filter, "Media Files ("); + dstr_copy(&exts, EXTENSIONS_MEDIA); + dstr_replace(&exts, ";", " "); + dstr_cat_dstr(&filter, &exts); + + dstr_cat(&filter, ");;Video Files ("); + dstr_copy(&exts, EXTENSIONS_VIDEO); + dstr_replace(&exts, ";", " "); + dstr_cat_dstr(&filter, &exts); + + dstr_cat(&filter, ");;Audio Files ("); + dstr_copy(&exts, EXTENSIONS_AUDIO); + dstr_replace(&exts, ";", " "); + dstr_cat_dstr(&filter, &exts); + + dstr_cat(&filter, ");;Playlist Files ("); + dstr_copy(&exts, EXTENSIONS_PLAYLIST); + dstr_replace(&exts, ";", " "); + dstr_cat_dstr(&filter, &exts); + dstr_cat(&filter, ")"); + + obs_properties_add_editable_list(ppts, S_PLAYLIST, T_PLAYLIST, + OBS_EDITABLE_LIST_TYPE_FILES_AND_URLS, + filter.array, path.array); + dstr_free(&path); + dstr_free(&filter); + dstr_free(&exts); + + return ppts; +} + +struct obs_source_info vlc_source_info = { + .id = "vlc_source", + .type = OBS_SOURCE_TYPE_INPUT, + .output_flags = OBS_SOURCE_ASYNC_VIDEO | OBS_SOURCE_AUDIO, + .get_name = vlcs_get_name, + .create = vlcs_create, + .destroy = vlcs_destroy, + .update = vlcs_update, + .get_defaults = vlcs_defaults, + .get_properties = vlcs_properties, + .activate = vlcs_activate, + .deactivate = vlcs_deactivate +}; diff --git a/test/test-input/test-filter.c b/test/test-input/test-filter.c index f8509cf..0fbeec9 100644 --- a/test/test-input/test-filter.c +++ b/test/test-input/test-filter.c @@ -5,8 +5,9 @@ struct test_filter { gs_effect_t *whatever; }; -static const char *filter_getname(void) +static const char *filter_getname(void *unused) { + UNUSED_PARAMETER(unused); return "Test"; } diff --git a/test/test-input/test-random.c b/test/test-input/test-random.c index 417f142..34ebd15 100644 --- a/test/test-input/test-random.c +++ b/test/test-input/test-random.c @@ -10,8 +10,9 @@ struct random_tex { bool initialized; }; -static const char *random_getname(void) +static const char *random_getname(void *unused) { + UNUSED_PARAMETER(unused); return "20x20 Random Pixel Texture Source (Test)"; } diff --git a/test/test-input/test-sinewave.c b/test/test-input/test-sinewave.c index 402536d..7a920c8 100644 --- a/test/test-input/test-sinewave.c +++ b/test/test-input/test-sinewave.c @@ -58,8 +58,9 @@ static void *sinewave_thread(void *pdata) /* ------------------------------------------------------------------------- */ -static const char *sinewave_getname(void) +static const char *sinewave_getname(void *unused) { + UNUSED_PARAMETER(unused); return "Sinewave Sound Source (Test)"; }

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�{0DiC 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 E0r*qD1poj5 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/clock.png b/plugins/obs-transitions/data/luma_wipes/clock.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd2b877d4d195aa86ca89e549f5e9572785a7e3 GIT binary patch literal 84455 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%0D?EzC( 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 JY3e-KFzhY! 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⋓qwYJFshg(dI`PiJiZFcF32637&yCCR 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 z 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/curtain.png b/plugins/obs-transitions/data/luma_wipes/curtain.png new file mode 100644 index 0000000000000000000000000000000000000000..552ee1718a4de46eafdcd572340d67176da3d177 GIT binary patch literal 85373 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 IiD&G80J2`7xBvhE literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/fan.png b/plugins/obs-transitions/data/luma_wipes/fan.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd495796bb60fe59b227bc653803e9b0be6f98d GIT binary patch literal 45732 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/fractal.png b/plugins/obs-transitions/data/luma_wipes/fractal.png new file mode 100644 index 0000000000000000000000000000000000000000..b875a5043f7d06f0680157956331110523a9dbc4 GIT binary patch literal 131975 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/iris.png b/plugins/obs-transitions/data/luma_wipes/iris.png new file mode 100644 index 0000000000000000000000000000000000000000..69e637c2876d66a068ff6c701843f6be3313acbc GIT binary patch literal 40275 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 literal 0 HcmV?d00001 diff --git a/plugins/obs-transitions/data/luma_wipes/linear-topleft.png b/plugins/obs-transitions/data/luma_wipes/linear-topleft.png new file mode 100644 index 0000000000000000000000000000000000000000..c5bf908f6f3b3bc2911ebb8b03947291a6656a39 GIT binary patch literal 60404 zcmeEvd0Z3c_I_Kdw6#d1G7>8xjs{;U!te=>s)a>rx!jkgO)GGl>1HH>gKO)Y$zclzLKA)_h8H7^^3g%8+V*1rRg^*N*V0EgH34;O3grSbg4tJzG-~orlB`GEf^sm=#G{o zZko4+(rnc>@AIirya6=MC}J&73mR{qvyJ>N9uK-Lo@x zdzKd@1%%gfKC-k-w?gO2JePzHUaq!Jr6Kl=L0z@6gFvm4S9T7BXjS2k0`1{GN*6n6 zXndKKsU`ii@7(cc41YXd9+k<=Y$$Xn467UL7+goWGSGO&N*(6kX{;#bwyw6Je66`x z6*D39$&Hx0P@b;bj3OUyd1Aeh^T>9GWLlQBIx*|Z;#{eFaf+Q+Sbhj^d+1?7GXI0k z{=IWDGWTjf@0v4)@)^5jAXaHjPMqdIuZyj>b`8yGOmi<557iV=IB6d1Hm|Gy%62{L zV$Y2u0VZwa1A8A7J^J4JbZJw4>rs|Ec&czq@R|NAX5Kd|mxR>z)YY;p^f}7RnF2;{ zdqyTr8`RZ4hT_T|4m{2On!X|bYqt%#ZTD{-i*#S4_LK7cl_oyLYgLhFXm5u$Rgu?( z&}HOyL49|Htii4)eM5t|E8VxDZKzg9vy3lN@9nHdgi(p1105}GeKoo^W!ug^(R8