project: Migrate PipeWire capture into linux-pipewire
The capture ids are preserved, so that it's compatible with the previous code. No code changes were necessary whatsoever.master
parent
ebe8f6c72a
commit
a147315f33
|
@ -1,10 +1,5 @@
|
||||||
project(linux-capture)
|
project(linux-capture)
|
||||||
|
|
||||||
option(ENABLE_PIPEWIRE "Enable PipeWire support" ON)
|
|
||||||
if(NOT ENABLE_PIPEWIRE)
|
|
||||||
message(STATUS "OBS: - PipeWire support disabled")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(X11 REQUIRED)
|
find_package(X11 REQUIRED)
|
||||||
if(NOT TARGET X11::Xcomposite)
|
if(NOT TARGET X11::Xcomposite)
|
||||||
message(
|
message(
|
||||||
|
@ -46,34 +41,4 @@ target_link_libraries(
|
||||||
|
|
||||||
set_target_properties(linux-capture PROPERTIES FOLDER "plugins")
|
set_target_properties(linux-capture PROPERTIES FOLDER "plugins")
|
||||||
|
|
||||||
if(ENABLE_PIPEWIRE)
|
|
||||||
find_package(PipeWire 0.3.32 QUIET)
|
|
||||||
find_package(Gio QUIET)
|
|
||||||
find_package(Libdrm QUIET)
|
|
||||||
|
|
||||||
if(NOT TARGET PipeWire::PipeWire)
|
|
||||||
message(
|
|
||||||
FATAL_ERROR
|
|
||||||
"OBS: - PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF"
|
|
||||||
)
|
|
||||||
elseif(NOT TARGET GIO::GIO)
|
|
||||||
message(
|
|
||||||
FATAL_ERROR
|
|
||||||
"OBS: - Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF"
|
|
||||||
)
|
|
||||||
elseif(NOT TARGET Libdrm::Libdrm)
|
|
||||||
message(
|
|
||||||
FATAL_ERROR
|
|
||||||
"OBS: - libdrm headers not found! Please install libdrm or set ENABLE_PIPEWIRE=OFF"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_sources(linux-capture PRIVATE pipewire.c pipewire.h pipewire-capture.c
|
|
||||||
pipewire-capture.h portal.c portal.h)
|
|
||||||
|
|
||||||
target_link_libraries(linux-capture PRIVATE PipeWire::PipeWire GIO::GIO
|
|
||||||
Libdrm::Libdrm)
|
|
||||||
target_compile_definitions(linux-capture PRIVATE ENABLE_PIPEWIRE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
setup_plugin_target(linux-capture)
|
setup_plugin_target(linux-capture)
|
||||||
|
|
|
@ -11,8 +11,3 @@ CropBottom="الاقتطاع من الأسفل (بكسل)"
|
||||||
SwapRedBlue="مبادلة بين الأحمر و الأزرق"
|
SwapRedBlue="مبادلة بين الأحمر و الأزرق"
|
||||||
LockX="قفل السيرفر X عند الالتقاط"
|
LockX="قفل السيرفر X عند الالتقاط"
|
||||||
IncludeXBorder="تضمين حواف X"
|
IncludeXBorder="تضمين حواف X"
|
||||||
PipeWireDesktopCapture="التقاط الشاشة (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="حدد المراقب"
|
|
||||||
PipeWireSelectWindow="حدد نافذة"
|
|
||||||
PipeWireWindowCapture="التقاط الشاشة (PipeWire)"
|
|
||||||
ShowCursor="إظهار المؤشر"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="লাল এবং নীল রঙের অদলবদল ক
|
||||||
LockX="ক্যাপচার করার সময় এক্স সার্ভার লক করুন"
|
LockX="ক্যাপচার করার সময় এক্স সার্ভার লক করুন"
|
||||||
IncludeXBorder="এক্স বর্ডার অন্তর্ভুক্ত করুন"
|
IncludeXBorder="এক্স বর্ডার অন্তর্ভুক্ত করুন"
|
||||||
ExcludeAlpha="আলফা-কম গঠন বিন্যাস (মেসা পরামর্শ) ব্যবহার করুন"
|
ExcludeAlpha="আলফা-কম গঠন বিন্যাস (মেসা পরামর্শ) ব্যবহার করুন"
|
||||||
PipeWireDesktopCapture="স্ক্রিন ক্যাপচার (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="মনিটর নির্বাচন করুন"
|
|
||||||
PipeWireSelectWindow="উইন্ডো নির্বাচন করুন"
|
|
||||||
PipeWireWindowCapture="উইন্ডো ক্যাপচার (PipeWire)"
|
|
||||||
ShowCursor="কার্সার দেখান"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Intercanvia els colors vermell i blau"
|
||||||
LockX="Bloca el servidor X quan s'estigui capturant"
|
LockX="Bloca el servidor X quan s'estigui capturant"
|
||||||
IncludeXBorder="Inclou-hi la vora X"
|
IncludeXBorder="Inclou-hi la vora X"
|
||||||
ExcludeAlpha="Usar format de textura sense alpha (solució de Mesa)"
|
ExcludeAlpha="Usar format de textura sense alpha (solució de Mesa)"
|
||||||
PipeWireDesktopCapture="Captura de pantalla (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Seleccioneu el monitor"
|
|
||||||
PipeWireSelectWindow="Seleccioneu la finestra"
|
|
||||||
PipeWireWindowCapture="Captura de finestres (PipeWire)"
|
|
||||||
ShowCursor="Mostra el cursor"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Prohodit červenou a modrou"
|
||||||
LockX="Zamknout server X při záznamu"
|
LockX="Zamknout server X při záznamu"
|
||||||
IncludeXBorder="Zahrnout hranice X"
|
IncludeXBorder="Zahrnout hranice X"
|
||||||
ExcludeAlpha="Použít formát textury bez alpha kanálu (Mesa workaround)"
|
ExcludeAlpha="Použít formát textury bez alpha kanálu (Mesa workaround)"
|
||||||
PipeWireDesktopCapture="Záznam obrazovky (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Vybrat monitor"
|
|
||||||
PipeWireSelectWindow="Vybrat okno"
|
|
||||||
PipeWireWindowCapture="Záznam okna (PipeWire)"
|
|
||||||
ShowCursor="Zobrazit kurzor"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Ombyt rød og blå"
|
||||||
LockX="Lås X server under optagelse"
|
LockX="Lås X server under optagelse"
|
||||||
IncludeXBorder="Inkludér X-kant"
|
IncludeXBorder="Inkludér X-kant"
|
||||||
ExcludeAlpha="Benyt alpha-fri teksturformat (Mesa løsning)"
|
ExcludeAlpha="Benyt alpha-fri teksturformat (Mesa løsning)"
|
||||||
PipeWireDesktopCapture="Skærmoptagelse (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Vælg skærm"
|
|
||||||
PipeWireSelectWindow="Vælg vindue"
|
|
||||||
PipeWireWindowCapture="Vindueoptagelse (PipeWire)"
|
|
||||||
ShowCursor="Vis markør"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Rot und Blau tauschen"
|
||||||
LockX="X-Server während der Aufnahme fixieren"
|
LockX="X-Server während der Aufnahme fixieren"
|
||||||
IncludeXBorder="X-Rahmen anzeigen"
|
IncludeXBorder="X-Rahmen anzeigen"
|
||||||
ExcludeAlpha="Alphaloses Texturformat verwenden (Mesa-Problemumgehung)"
|
ExcludeAlpha="Alphaloses Texturformat verwenden (Mesa-Problemumgehung)"
|
||||||
PipeWireDesktopCapture="Bildschirmaufnahme (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Bildschirm auswählen"
|
|
||||||
PipeWireSelectWindow="Fenster auswählen"
|
|
||||||
PipeWireWindowCapture="Fensteraufname (PipeWire)"
|
|
||||||
ShowCursor="Mauszeiger anzeigen"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Ανταλλαγή κόκκινου και μπλέ"
|
||||||
LockX="Κλείδωμα X server κατά την σύλληψη"
|
LockX="Κλείδωμα X server κατά την σύλληψη"
|
||||||
IncludeXBorder="Περίλαβε το περίγραμμα του X"
|
IncludeXBorder="Περίλαβε το περίγραμμα του X"
|
||||||
ExcludeAlpha="Χρησιμοποίηση της μορφής υφής χωρίς άλφα (Λύση για Mesa)"
|
ExcludeAlpha="Χρησιμοποίηση της μορφής υφής χωρίς άλφα (Λύση για Mesa)"
|
||||||
PipeWireDesktopCapture="Καταγραφή Οθόνης (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Επιλογή Οθόνης"
|
|
||||||
PipeWireSelectWindow="Επιλέξτε παράθυρο"
|
|
||||||
PipeWireWindowCapture="Καταγραφή Παραθύρου (PipeWire)"
|
|
||||||
ShowCursor="Εμφάνιση Δρομέα"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Swap red and blue"
|
||||||
LockX="Lock X server when capturing"
|
LockX="Lock X server when capturing"
|
||||||
IncludeXBorder="Include X Border"
|
IncludeXBorder="Include X Border"
|
||||||
ExcludeAlpha="Use alpha-less texture format (Mesa workaround)"
|
ExcludeAlpha="Use alpha-less texture format (Mesa workaround)"
|
||||||
PipeWireDesktopCapture="Screen Capture (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Select Monitor"
|
|
||||||
PipeWireSelectWindow="Select Window"
|
|
||||||
PipeWireWindowCapture="Window Capture (PipeWire)"
|
|
||||||
ShowCursor="Show Cursor"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Intercambiar rojo y azúl"
|
||||||
LockX="Fijar X server mientras se captura"
|
LockX="Fijar X server mientras se captura"
|
||||||
IncludeXBorder="Incluir borde de ventana X"
|
IncludeXBorder="Incluir borde de ventana X"
|
||||||
ExcludeAlpha="Usar formato de textura sin alpha (Arreglo para Mesa)"
|
ExcludeAlpha="Usar formato de textura sin alpha (Arreglo para Mesa)"
|
||||||
PipeWireDesktopCapture="Captura de pantalla (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Seleccionar monitor"
|
|
||||||
PipeWireSelectWindow="Seleccionar ventana"
|
|
||||||
PipeWireWindowCapture="Captura de ventana (PipeWire)"
|
|
||||||
ShowCursor="Mostrar cursor"
|
|
||||||
|
|
|
@ -13,6 +13,3 @@ SwapRedBlue="Aldatu gorria eta urdina"
|
||||||
LockX="Blokeatu X zerbitzaria kapturatzean"
|
LockX="Blokeatu X zerbitzaria kapturatzean"
|
||||||
IncludeXBorder="Sartu X ertza"
|
IncludeXBorder="Sartu X ertza"
|
||||||
ExcludeAlpha="Alfarik gabeko testura formatua (Mesarako konponbidea)"
|
ExcludeAlpha="Alfarik gabeko testura formatua (Mesarako konponbidea)"
|
||||||
PipeWireSelectMonitor="Pantalla hautatu"
|
|
||||||
PipeWireSelectWindow="Lehioa hautatu"
|
|
||||||
ShowCursor="Kurtsorea erakutsi"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="قرمز و آبی را تعویض کنید"
|
||||||
LockX="سرور اکس قفل هنگام گرفتن"
|
LockX="سرور اکس قفل هنگام گرفتن"
|
||||||
IncludeXBorder="شامل X مرز"
|
IncludeXBorder="شامل X مرز"
|
||||||
ExcludeAlpha="استفاده از فرمت های بافت آلفا کمتر (مسا حلی)"
|
ExcludeAlpha="استفاده از فرمت های بافت آلفا کمتر (مسا حلی)"
|
||||||
PipeWireDesktopCapture="ضبط صفحه (سیم لوله)"
|
|
||||||
PipeWireSelectMonitor="انتخاب نمایشگر"
|
|
||||||
PipeWireSelectWindow="انتخاب پنجره"
|
|
||||||
PipeWireWindowCapture="ضبط پنجره (PipeWire)"
|
|
||||||
ShowCursor="نمایش مکان نما"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Vaihda punainen ja sininen"
|
||||||
LockX="Lukitse X Server kaappauksen aikana"
|
LockX="Lukitse X Server kaappauksen aikana"
|
||||||
IncludeXBorder="Sisällytä X-reunus"
|
IncludeXBorder="Sisällytä X-reunus"
|
||||||
ExcludeAlpha="Käytä tekstuuriformaattia ilman alpha-kanavaa (Mesa-yhteensopiva)"
|
ExcludeAlpha="Käytä tekstuuriformaattia ilman alpha-kanavaa (Mesa-yhteensopiva)"
|
||||||
PipeWireDesktopCapture="Näytönkaappaus (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Valitse näyttö"
|
|
||||||
PipeWireSelectWindow="Valitse ikkuna"
|
|
||||||
PipeWireWindowCapture="Ikkunankaappaus (PipeWire)"
|
|
||||||
ShowCursor="Näytä kursori"
|
|
||||||
|
|
|
@ -9,8 +9,3 @@ SwapRedBlue="Magpalit ng pula at asul"
|
||||||
LockX="Lock X server kapag nakukuha"
|
LockX="Lock X server kapag nakukuha"
|
||||||
IncludeXBorder="Isama ang X Border"
|
IncludeXBorder="Isama ang X Border"
|
||||||
ExcludeAlpha="Gumamit ng alpha-less texture na format (Mesa workaround)"
|
ExcludeAlpha="Gumamit ng alpha-less texture na format (Mesa workaround)"
|
||||||
PipeWireDesktopCapture="Pagkuha ng Window (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Pumili ng Tabing"
|
|
||||||
PipeWireSelectWindow="Pumili ng Window"
|
|
||||||
PipeWireWindowCapture="Pagkuha ng Window (PipeWire)"
|
|
||||||
ShowCursor="Ipakita ang Cursor"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Intervertir le rouge et le bleu"
|
||||||
LockX="Verrouiller le serveur X lors de la capture"
|
LockX="Verrouiller le serveur X lors de la capture"
|
||||||
IncludeXBorder="Inclure la bordure de la fenêtre X"
|
IncludeXBorder="Inclure la bordure de la fenêtre X"
|
||||||
ExcludeAlpha="Utiliser un format de texture sans alpha (palliatif pour Mesa)"
|
ExcludeAlpha="Utiliser un format de texture sans alpha (palliatif pour Mesa)"
|
||||||
PipeWireDesktopCapture="Capture d'écran (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Sélectionner l'écran"
|
|
||||||
PipeWireSelectWindow="Sélectionner la fenêtre"
|
|
||||||
PipeWireWindowCapture="Capture de fenêtre (PipeWire)"
|
|
||||||
ShowCursor="Afficher le curseur"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Suaip dearg is gorm"
|
||||||
LockX="Glais am frithealaiche X rè a’ ghlacaidh"
|
LockX="Glais am frithealaiche X rè a’ ghlacaidh"
|
||||||
IncludeXBorder="Gabh a-steach an t-iomall X"
|
IncludeXBorder="Gabh a-steach an t-iomall X"
|
||||||
ExcludeAlpha="Cleachd fòrmat innich gun alpha (seachnadh buga Mesa)"
|
ExcludeAlpha="Cleachd fòrmat innich gun alpha (seachnadh buga Mesa)"
|
||||||
PipeWireDesktopCapture="Glacadh-sgrìn (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Tagh sgrìn"
|
|
||||||
PipeWireSelectWindow="Tagh uinneag"
|
|
||||||
PipeWireWindowCapture="Glacadh uinneige (PipeWire)"
|
|
||||||
ShowCursor="Seall an cùrsair"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="החלף אדום וכחול"
|
||||||
LockX="נעל שרת X בעת לכידה"
|
LockX="נעל שרת X בעת לכידה"
|
||||||
IncludeXBorder="כלול קצה שרת X"
|
IncludeXBorder="כלול קצה שרת X"
|
||||||
ExcludeAlpha="השתמש בתבנית מרקם ללא אלפא (עקיפת בעיית Mesa)"
|
ExcludeAlpha="השתמש בתבנית מרקם ללא אלפא (עקיפת בעיית Mesa)"
|
||||||
PipeWireDesktopCapture="לכידת מסך (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="בחירת צג"
|
|
||||||
PipeWireSelectWindow="בחירת חלון"
|
|
||||||
PipeWireWindowCapture="לכידת חלון (PipeWire)"
|
|
||||||
ShowCursor="הצגת הסמן"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="लाल व नीला अदला-बदली करें"
|
||||||
LockX="कैप्चर करते समय X सर्वर को लॉक करें"
|
LockX="कैप्चर करते समय X सर्वर को लॉक करें"
|
||||||
IncludeXBorder="X बॉर्डर शामिल करें"
|
IncludeXBorder="X बॉर्डर शामिल करें"
|
||||||
ExcludeAlpha="अल्फा-लेस प्रारूप का उपयोग करें (Mesa वर्कअराउंड)"
|
ExcludeAlpha="अल्फा-लेस प्रारूप का उपयोग करें (Mesa वर्कअराउंड)"
|
||||||
PipeWireDesktopCapture="स्क्रीन कैप्चर (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="मॉनिटर चुनें"
|
|
||||||
PipeWireSelectWindow="विंडो चुनें"
|
|
||||||
PipeWireWindowCapture="विंडो कैप्चर (PipeWire)"
|
|
||||||
ShowCursor="कर्सर दिखाएं"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Piros és kék cseréje"
|
||||||
LockX="X Szerver zárolása rögzítéskor"
|
LockX="X Szerver zárolása rögzítéskor"
|
||||||
IncludeXBorder="X Kerettel"
|
IncludeXBorder="X Kerettel"
|
||||||
ExcludeAlpha="Alfa-mentesebb textúra formátum használata (Mesa áthidalás)"
|
ExcludeAlpha="Alfa-mentesebb textúra formátum használata (Mesa áthidalás)"
|
||||||
PipeWireDesktopCapture="Képernyőfelvétel (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Monitor kiválasztása"
|
|
||||||
PipeWireSelectWindow="Ablak kiválasztása"
|
|
||||||
PipeWireWindowCapture="Ablak felvétel (PipeWire)"
|
|
||||||
ShowCursor="Kurzor megjelenítése"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Tukar merah dan biru"
|
||||||
LockX="Kunci X server saat menangkap gambar"
|
LockX="Kunci X server saat menangkap gambar"
|
||||||
IncludeXBorder="Sertakan X Border"
|
IncludeXBorder="Sertakan X Border"
|
||||||
ExcludeAlpha="Gunakan format tekstur alpha-less (Solusi mesa)"
|
ExcludeAlpha="Gunakan format tekstur alpha-less (Solusi mesa)"
|
||||||
PipeWireDesktopCapture="Penangkap Layar (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Pilih Monitor"
|
|
||||||
PipeWireSelectWindow="Pilih Jendela"
|
|
||||||
PipeWireWindowCapture="Penangkap Jendela (PipeWire)"
|
|
||||||
ShowCursor="Tampilkan Kursor"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Inverti i colori rosso e blu"
|
||||||
LockX="Blocca X Server durante la cattura"
|
LockX="Blocca X Server durante la cattura"
|
||||||
IncludeXBorder="Includi i bordi della finestra X"
|
IncludeXBorder="Includi i bordi della finestra X"
|
||||||
ExcludeAlpha="Utilizza il formato alfa-less per le texture (soluzione di Mesa)"
|
ExcludeAlpha="Utilizza il formato alfa-less per le texture (soluzione di Mesa)"
|
||||||
PipeWireDesktopCapture="Cattura Schermo (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Seleziona Monitor"
|
|
||||||
PipeWireSelectWindow="Seleziona finestra"
|
|
||||||
PipeWireWindowCapture="Cattura Finestra (PipeWire)"
|
|
||||||
ShowCursor="Mostra Cursore"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="赤と青を入れ替え"
|
||||||
LockX="キャプチャ時にXサーバーをロック"
|
LockX="キャプチャ時にXサーバーをロック"
|
||||||
IncludeXBorder="Xウィンドウの境界を含める"
|
IncludeXBorder="Xウィンドウの境界を含める"
|
||||||
ExcludeAlpha="アルファなしテクスチャ形式を使用 (Mesaの回避策)"
|
ExcludeAlpha="アルファなしテクスチャ形式を使用 (Mesaの回避策)"
|
||||||
PipeWireDesktopCapture="スクリーンキャプチャ (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="モニターを選択"
|
|
||||||
PipeWireSelectWindow="ウィンドウを選択"
|
|
||||||
PipeWireWindowCapture="ウィンドウキャプチャ (PipeWire)"
|
|
||||||
ShowCursor="カーソルを表示"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="წითლისა ლურჯის შენაცვლე
|
||||||
LockX="X სერვერის შეზღუდვა გადაღებისას"
|
LockX="X სერვერის შეზღუდვა გადაღებისას"
|
||||||
IncludeXBorder="X ჩარჩოიანად"
|
IncludeXBorder="X ჩარჩოიანად"
|
||||||
ExcludeAlpha="გაუმჭვირვალე ზედაპირის გამოყენება (Mesa-ს ხარვეზის მოსაგვარებლად)"
|
ExcludeAlpha="გაუმჭვირვალე ზედაპირის გამოყენება (Mesa-ს ხარვეზის მოსაგვარებლად)"
|
||||||
PipeWireDesktopCapture="ეკრანის გადაღება (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="მონიტორის არჩევა"
|
|
||||||
PipeWireSelectWindow="ფანჯრის არჩევა"
|
|
||||||
PipeWireWindowCapture="ფანჯრის გადაღება (PipeWire)"
|
|
||||||
ShowCursor="მაჩვენებლის გამოჩენა"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Sor û şîn biguherîne"
|
||||||
LockX="Rejakarê X bigire gava tê girtin"
|
LockX="Rejakarê X bigire gava tê girtin"
|
||||||
IncludeXBorder="Sînorê X têxe nav"
|
IncludeXBorder="Sînorê X têxe nav"
|
||||||
ExcludeAlpha="Formata tevna alfa-kêm bi kar bîne (çareserkirina mesa)"
|
ExcludeAlpha="Formata tevna alfa-kêm bi kar bîne (çareserkirina mesa)"
|
||||||
PipeWireDesktopCapture="Giritina diîmenderê (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Dîmenderê hilbijêre"
|
|
||||||
PipeWireSelectWindow="Çarçoveyê hilbijêre"
|
|
||||||
PipeWireWindowCapture="Girtina çarçoveyê (PipeWire)"
|
|
||||||
ShowCursor="Nîşankerê nîşan bide"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="적청 교환"
|
||||||
LockX="캡쳐 시 X 서버를 잠금"
|
LockX="캡쳐 시 X 서버를 잠금"
|
||||||
IncludeXBorder="X 윈도우 경계를 포함"
|
IncludeXBorder="X 윈도우 경계를 포함"
|
||||||
ExcludeAlpha="알파가 없는 텍스쳐 형식 사용 (Mesa 방법)"
|
ExcludeAlpha="알파가 없는 텍스쳐 형식 사용 (Mesa 방법)"
|
||||||
PipeWireDesktopCapture="화면 녹화(PipeWire)"
|
|
||||||
PipeWireSelectMonitor="화면 선택"
|
|
||||||
PipeWireSelectWindow="창 선택"
|
|
||||||
PipeWireWindowCapture="창 녹화(PipeWire)"
|
|
||||||
ShowCursor="포인터 표시"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Silih merah dan biru"
|
||||||
LockX="Kunci pelayan X ketika menangkap"
|
LockX="Kunci pelayan X ketika menangkap"
|
||||||
IncludeXBorder="Sertakan Sempadan X"
|
IncludeXBorder="Sertakan Sempadan X"
|
||||||
ExcludeAlpha="Guna format tektsur kurang-alfa (Penyelesaian Mesa)"
|
ExcludeAlpha="Guna format tektsur kurang-alfa (Penyelesaian Mesa)"
|
||||||
PipeWireDesktopCapture="Tangkap Skrin (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Pilih Monitor"
|
|
||||||
PipeWireSelectWindow="Pilih Tetingkap"
|
|
||||||
PipeWireWindowCapture="Tangkap Tetingkap (PipeWire)"
|
|
||||||
ShowCursor="Tunjuk Kursor"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Bytt rød og blå"
|
||||||
LockX="Lås X-tjener under opptak"
|
LockX="Lås X-tjener under opptak"
|
||||||
IncludeXBorder="Inkludér X11-rammen"
|
IncludeXBorder="Inkludér X11-rammen"
|
||||||
ExcludeAlpha="Bruk teksturformat uten alfakanal (Mesa løsning)"
|
ExcludeAlpha="Bruk teksturformat uten alfakanal (Mesa løsning)"
|
||||||
PipeWireDesktopCapture="Skjermopptak (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Velg skjerm"
|
|
||||||
PipeWireSelectWindow="Velg vindu"
|
|
||||||
PipeWireWindowCapture="Vindusopptak (PipeWire)"
|
|
||||||
ShowCursor="Vis musepekeren"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Rood en blauw omwisselen"
|
||||||
LockX="X server vergrendelen tijdens het opnemen"
|
LockX="X server vergrendelen tijdens het opnemen"
|
||||||
IncludeXBorder="Inclusief X-schermranden"
|
IncludeXBorder="Inclusief X-schermranden"
|
||||||
ExcludeAlpha="Gebruik textuurformaat zonder alpha (alternatief voor Mesa)"
|
ExcludeAlpha="Gebruik textuurformaat zonder alpha (alternatief voor Mesa)"
|
||||||
PipeWireDesktopCapture="Schermopname (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Beeldscherm selecteren"
|
|
||||||
PipeWireSelectWindow="Venster selecteren"
|
|
||||||
PipeWireWindowCapture="Vensteropname (PipeWire)"
|
|
||||||
ShowCursor="Cursor Weergeven"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Zamień czerwony i niebieski"
|
||||||
LockX="Zablokuj serwer X podczas przechwytywania"
|
LockX="Zablokuj serwer X podczas przechwytywania"
|
||||||
IncludeXBorder="Dołącz ramkę okna"
|
IncludeXBorder="Dołącz ramkę okna"
|
||||||
ExcludeAlpha="Użyj tekstur bez kanału alpha (obejście problemu Mesa)"
|
ExcludeAlpha="Użyj tekstur bez kanału alpha (obejście problemu Mesa)"
|
||||||
PipeWireDesktopCapture="Przechwytywanie ekranu (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Wybierz monitor"
|
|
||||||
PipeWireSelectWindow="Wybierz okno"
|
|
||||||
PipeWireWindowCapture="Przechwytywanie okna (PipeWire)"
|
|
||||||
ShowCursor="Pokaż kursor"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Trocar Vermelho com Azul"
|
||||||
LockX="Bloquear servidor X durante a captura"
|
LockX="Bloquear servidor X durante a captura"
|
||||||
IncludeXBorder="Incluir X Borda"
|
IncludeXBorder="Incluir X Borda"
|
||||||
ExcludeAlpha="Utilizar formato de texture sem Alpha (solução para Mesa)"
|
ExcludeAlpha="Utilizar formato de texture sem Alpha (solução para Mesa)"
|
||||||
PipeWireDesktopCapture="Captura de tela (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Selecionar monitor"
|
|
||||||
PipeWireSelectWindow="Selecionar janela"
|
|
||||||
PipeWireWindowCapture="Captura de janela (PipeWire)"
|
|
||||||
ShowCursor="Mostrar o cursor"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Trocar vermelho e azul"
|
||||||
LockX="Bloquear X Server durante a captura"
|
LockX="Bloquear X Server durante a captura"
|
||||||
IncludeXBorder="Incluir contorno da janela X"
|
IncludeXBorder="Incluir contorno da janela X"
|
||||||
ExcludeAlpha="Utilizar um formato de textura sem Alfa (solução de Mesa)"
|
ExcludeAlpha="Utilizar um formato de textura sem Alfa (solução de Mesa)"
|
||||||
PipeWireDesktopCapture="Captura de ecrã (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Selecionar monitor"
|
|
||||||
PipeWireSelectWindow="Selecionar janela"
|
|
||||||
PipeWireWindowCapture="Captura de janela (PipeWire)"
|
|
||||||
ShowCursor="Mostrar cursor"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Schimbă roșu cu albastru"
|
||||||
LockX="Blochează X server când se capturează"
|
LockX="Blochează X server când se capturează"
|
||||||
IncludeXBorder="Include marginea cu X"
|
IncludeXBorder="Include marginea cu X"
|
||||||
ExcludeAlpha="Folosește formatul de texturi fără alpha (soluție de evitare pentru Mesa)"
|
ExcludeAlpha="Folosește formatul de texturi fără alpha (soluție de evitare pentru Mesa)"
|
||||||
PipeWireDesktopCapture="Captură de ecran (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Selectează monitorul"
|
|
||||||
PipeWireSelectWindow="Selectează fereastra"
|
|
||||||
PipeWireWindowCapture="Captură de fereastră (PipeWire)"
|
|
||||||
ShowCursor="Afișează cursorul"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Поменять местами красный и синий"
|
||||||
LockX="Блокировать X-сервер при захвате"
|
LockX="Блокировать X-сервер при захвате"
|
||||||
IncludeXBorder="Включить захват границы"
|
IncludeXBorder="Включить захват границы"
|
||||||
ExcludeAlpha="Использовать формат текстур без прозрачности (обходной путь для Mesa)"
|
ExcludeAlpha="Использовать формат текстур без прозрачности (обходной путь для Mesa)"
|
||||||
PipeWireDesktopCapture="Захват экрана (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Выбрать окно"
|
|
||||||
PipeWireSelectWindow="Выбрать окно"
|
|
||||||
PipeWireWindowCapture="Захват окна (PipeWire)"
|
|
||||||
ShowCursor="Показывать курсор"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Vymeniť červenú a modrú"
|
||||||
LockX="Zamknúť X server počas snímania"
|
LockX="Zamknúť X server počas snímania"
|
||||||
IncludeXBorder="Zahŕňajú X okraj"
|
IncludeXBorder="Zahŕňajú X okraj"
|
||||||
ExcludeAlpha="Použiť formát textúry bez alpha kanálu (riešenie pre Mesa problém)"
|
ExcludeAlpha="Použiť formát textúry bez alpha kanálu (riešenie pre Mesa problém)"
|
||||||
PipeWireDesktopCapture="Zachytávanie obrazovky (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Vybrať monitor"
|
|
||||||
PipeWireSelectWindow="Vybrať okno"
|
|
||||||
PipeWireWindowCapture="Zachytávanie okna (PipeWire)"
|
|
||||||
ShowCursor="Zobraziť kurzor"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Zamenjaj modro in rdečo"
|
||||||
LockX="Zakleni X sstrežnik med zajemanjem"
|
LockX="Zakleni X sstrežnik med zajemanjem"
|
||||||
IncludeXBorder="Vključi obrobo X"
|
IncludeXBorder="Vključi obrobo X"
|
||||||
ExcludeAlpha="Uporabi format za teksture, ki je brez alfa kanala (Mesa obvod)"
|
ExcludeAlpha="Uporabi format za teksture, ki je brez alfa kanala (Mesa obvod)"
|
||||||
PipeWireDesktopCapture="Zajem zaslona (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Izbira zaslona"
|
|
||||||
PipeWireSelectWindow="Izbira okna"
|
|
||||||
PipeWireWindowCapture="Zajem okna (PipeWire)"
|
|
||||||
ShowCursor="Prikaži kurzor"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Byt röd och blå"
|
||||||
LockX="Lås X-servern medan källan är aktiv"
|
LockX="Lås X-servern medan källan är aktiv"
|
||||||
IncludeXBorder="Inkludera X Border"
|
IncludeXBorder="Inkludera X Border"
|
||||||
ExcludeAlpha="Använd alfalöst texturformat (lösning för Mesa)"
|
ExcludeAlpha="Använd alfalöst texturformat (lösning för Mesa)"
|
||||||
PipeWireDesktopCapture="Skärmkälla (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Välj bildskärm"
|
|
||||||
PipeWireSelectWindow="Välj fönster"
|
|
||||||
PipeWireWindowCapture="Fönsterkälla (PipeWire)"
|
|
||||||
ShowCursor="Visa muspekare"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Umiyń czyrwōny i modry"
|
||||||
LockX="Zaszperuj serwer X w czasie chytanio"
|
LockX="Zaszperuj serwer X w czasie chytanio"
|
||||||
IncludeXBorder="Dołōncz rōmka ôkna"
|
IncludeXBorder="Dołōncz rōmka ôkna"
|
||||||
ExcludeAlpha="Użyj tekstur bez kanału alpha (ôbyńście problymu Mesa)"
|
ExcludeAlpha="Użyj tekstur bez kanału alpha (ôbyńście problymu Mesa)"
|
||||||
PipeWireDesktopCapture="Chytanie ekranu (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Ôbier mōnitōr"
|
|
||||||
PipeWireSelectWindow="Ôbier ôkno"
|
|
||||||
PipeWireWindowCapture="Chytanie ôkna (PipeWire)"
|
|
||||||
ShowCursor="Pokoż kursōr"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="Kırmızı ve maviyi değiştir"
|
||||||
LockX="Yakalama sırasında X sunucusunu kilitle"
|
LockX="Yakalama sırasında X sunucusunu kilitle"
|
||||||
IncludeXBorder="X Çerçevesini Dahil Et"
|
IncludeXBorder="X Çerçevesini Dahil Et"
|
||||||
ExcludeAlpha="Alpha kanalı olmayan doku biçimi kullan (Mesa geçici çözüm)"
|
ExcludeAlpha="Alpha kanalı olmayan doku biçimi kullan (Mesa geçici çözüm)"
|
||||||
PipeWireDesktopCapture="Ekran Yakalama (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Ekran Seç"
|
|
||||||
PipeWireSelectWindow="Pencere Seç"
|
|
||||||
PipeWireWindowCapture="Pencere Yakalama (PipeWire)"
|
|
||||||
ShowCursor="İmleci Göster"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="Поміняти червоний і синій"
|
||||||
LockX="Блокувати X Server під час захоплення"
|
LockX="Блокувати X Server під час захоплення"
|
||||||
IncludeXBorder="Захоплювати межі вікна"
|
IncludeXBorder="Захоплювати межі вікна"
|
||||||
ExcludeAlpha="Використовувати формат текстур без альфа-каналу (для Mesa)"
|
ExcludeAlpha="Використовувати формат текстур без альфа-каналу (для Mesa)"
|
||||||
PipeWireDesktopCapture="Захоплення екрана (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Виберіть монітор"
|
|
||||||
PipeWireSelectWindow="Виберіть вікно"
|
|
||||||
PipeWireWindowCapture="Захоплення вікна (PipeWire)"
|
|
||||||
ShowCursor="Показувати курсор"
|
|
||||||
|
|
|
@ -12,7 +12,3 @@ SwapRedBlue="Đổi đỏ và xanh"
|
||||||
LockX="Khóa X server khi quay"
|
LockX="Khóa X server khi quay"
|
||||||
IncludeXBorder="Bao gồm X Border"
|
IncludeXBorder="Bao gồm X Border"
|
||||||
ExcludeAlpha="Dùng texture format không có Alpha (Cách giải quyết với Mesa driver)"
|
ExcludeAlpha="Dùng texture format không có Alpha (Cách giải quyết với Mesa driver)"
|
||||||
PipeWireDesktopCapture="Quay màn hình (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="Chọn màn hình"
|
|
||||||
PipeWireSelectWindow="Chọn cửa sổ"
|
|
||||||
ShowCursor="Hiển thị con trỏ"
|
|
||||||
|
|
|
@ -12,8 +12,3 @@ SwapRedBlue="交换红色和蓝色"
|
||||||
LockX="当捕获时锁定X server"
|
LockX="当捕获时锁定X server"
|
||||||
IncludeXBorder="包括 X 边框"
|
IncludeXBorder="包括 X 边框"
|
||||||
ExcludeAlpha="使用阿尔法少纹理格式 (Mesa 变通办法)"
|
ExcludeAlpha="使用阿尔法少纹理格式 (Mesa 变通办法)"
|
||||||
PipeWireDesktopCapture="屏幕采集(PipeWire)"
|
|
||||||
PipeWireSelectMonitor="选择显示器"
|
|
||||||
PipeWireSelectWindow="选择窗口"
|
|
||||||
PipeWireWindowCapture="窗口捕获(PipeWire)"
|
|
||||||
ShowCursor="显示鼠标指针"
|
|
||||||
|
|
|
@ -13,8 +13,3 @@ SwapRedBlue="交換紅藍顏色"
|
||||||
LockX="截取時鎖定 X server"
|
LockX="截取時鎖定 X server"
|
||||||
IncludeXBorder="包含X邊框"
|
IncludeXBorder="包含X邊框"
|
||||||
ExcludeAlpha="使用不帶有alpha值的材質格式 (Mesa暫時解決方案)"
|
ExcludeAlpha="使用不帶有alpha值的材質格式 (Mesa暫時解決方案)"
|
||||||
PipeWireDesktopCapture="畫面擷取 (PipeWire)"
|
|
||||||
PipeWireSelectMonitor="選擇顯示器"
|
|
||||||
PipeWireSelectWindow="選擇視窗"
|
|
||||||
PipeWireWindowCapture="視窗擷取(PipeWire)"
|
|
||||||
ShowCursor="顯示游標"
|
|
||||||
|
|
|
@ -17,19 +17,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include <obs-module.h>
|
#include <obs-module.h>
|
||||||
#include <obs-nix-platform.h>
|
#include <obs-nix-platform.h>
|
||||||
|
|
||||||
#ifdef ENABLE_PIPEWIRE
|
|
||||||
#include "pipewire-capture.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
OBS_DECLARE_MODULE()
|
OBS_DECLARE_MODULE()
|
||||||
OBS_MODULE_USE_DEFAULT_LOCALE("linux-xshm", "en-US")
|
OBS_MODULE_USE_DEFAULT_LOCALE("linux-xshm", "en-US")
|
||||||
MODULE_EXPORT const char *obs_module_description(void)
|
MODULE_EXPORT const char *obs_module_description(void)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_PIPEWIRE
|
|
||||||
if (obs_get_nix_platform() != OBS_NIX_PLATFORM_X11_GLX)
|
|
||||||
return "PipeWire based window/screen capture for X11 and Wayland";
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
return "xcomposite/xshm based window/screen capture for X11";
|
return "xcomposite/xshm based window/screen capture for X11";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,16 +41,10 @@ bool obs_module_load(void)
|
||||||
|
|
||||||
case OBS_NIX_PLATFORM_X11_EGL:
|
case OBS_NIX_PLATFORM_X11_EGL:
|
||||||
obs_register_source(&xshm_input);
|
obs_register_source(&xshm_input);
|
||||||
#ifdef ENABLE_PIPEWIRE
|
|
||||||
pipewire_capture_load();
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef ENABLE_WAYLAND
|
#ifdef ENABLE_WAYLAND
|
||||||
case OBS_NIX_PLATFORM_WAYLAND:
|
case OBS_NIX_PLATFORM_WAYLAND:
|
||||||
#ifdef ENABLE_PIPEWIRE
|
|
||||||
pipewire_capture_load();
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -71,8 +56,4 @@ void obs_module_unload(void)
|
||||||
{
|
{
|
||||||
if (obs_get_nix_platform() == OBS_NIX_PLATFORM_X11_GLX)
|
if (obs_get_nix_platform() == OBS_NIX_PLATFORM_X11_GLX)
|
||||||
xcomposite_unload();
|
xcomposite_unload();
|
||||||
#ifdef ENABLE_PIPEWIRE
|
|
||||||
else
|
|
||||||
pipewire_capture_unload();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,21 +7,44 @@ if(NOT ENABLE_PIPEWIRE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(PipeWire REQUIRED)
|
find_package(PipeWire REQUIRED)
|
||||||
|
find_package(Gio QUIET)
|
||||||
|
find_package(Libdrm QUIET) # we require libdrm/drm_fourcc.h to build
|
||||||
|
|
||||||
if(NOT TARGET PipeWire::PipeWire)
|
if(NOT TARGET PipeWire::PipeWire)
|
||||||
message(
|
message(
|
||||||
FATAL_ERROR
|
FATAL_ERROR
|
||||||
"OBS: - PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF"
|
"OBS: - PipeWire library not found! Please install PipeWire or set ENABLE_PIPEWIRE=OFF"
|
||||||
)
|
)
|
||||||
|
elseif(NOT TARGET GIO::GIO)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"OBS: - Gio library not found! Please install GLib2 (or Gio) or set ENABLE_PIPEWIRE=OFF"
|
||||||
|
)
|
||||||
|
elseif(NOT TARGET Libdrm::Libdrm)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"OBS: - libdrm headers not found! Please install libdrm or set ENABLE_PIPEWIRE=OFF"
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(linux-pipewire MODULE)
|
add_library(linux-pipewire MODULE)
|
||||||
add_library(OBS::pipewire ALIAS linux-pipewire)
|
add_library(OBS::pipewire ALIAS linux-pipewire)
|
||||||
|
|
||||||
target_sources(linux-pipewire PRIVATE linux-pipewire.c pipewire-common.c
|
target_sources(
|
||||||
pipewire-common.h)
|
linux-pipewire
|
||||||
|
PRIVATE linux-pipewire.c
|
||||||
|
pipewire-common.c
|
||||||
|
pipewire-common.h
|
||||||
|
pipewire.c
|
||||||
|
pipewire.h
|
||||||
|
pipewire-capture.c
|
||||||
|
pipewire-capture.h
|
||||||
|
portal.c
|
||||||
|
portal.h)
|
||||||
|
|
||||||
target_link_libraries(linux-pipewire PRIVATE OBS::libobs PipeWire::PipeWire)
|
target_link_libraries(
|
||||||
|
linux-pipewire PRIVATE OBS::libobs OBS::obsglad PipeWire::PipeWire GIO::GIO
|
||||||
|
Libdrm::Libdrm)
|
||||||
|
|
||||||
set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins")
|
set_target_properties(linux-pipewire PROPERTIES FOLDER "plugins")
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
PipeWireDesktopCapture="Screen Capture (PipeWire)"
|
||||||
|
PipeWireSelectMonitor="Select Monitor"
|
||||||
|
PipeWireSelectWindow="Select Window"
|
||||||
|
PipeWireWindowCapture="Window Capture (PipeWire)"
|
||||||
|
ShowCursor="Show Cursor"
|
|
@ -1,6 +1,7 @@
|
||||||
/* linux-pipewire.c
|
/* linux-pipewire.c
|
||||||
*
|
*
|
||||||
* Copyright 2021 columbarius <co1umbarius@protonmail.com>
|
* Copyright 2021 columbarius <co1umbarius@protonmail.com>
|
||||||
|
* Copyright 2021 Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
#include <obs-nix-platform.h>
|
#include <obs-nix-platform.h>
|
||||||
|
|
||||||
#include "pipewire-common.h"
|
#include "pipewire-common.h"
|
||||||
|
#include "pipewire-capture.h"
|
||||||
|
|
||||||
OBS_DECLARE_MODULE()
|
OBS_DECLARE_MODULE()
|
||||||
OBS_MODULE_USE_DEFAULT_LOCALE("linux-pipewire", "en-US")
|
OBS_MODULE_USE_DEFAULT_LOCALE("linux-pipewire", "en-US")
|
||||||
|
@ -34,6 +36,18 @@ bool obs_module_load(void)
|
||||||
{
|
{
|
||||||
obs_pipewire_load();
|
obs_pipewire_load();
|
||||||
|
|
||||||
|
// OBS PipeWire Screen Capture
|
||||||
|
switch (obs_get_nix_platform()) {
|
||||||
|
#ifdef ENABLE_WAYLAND
|
||||||
|
case OBS_NIX_PLATFORM_WAYLAND:
|
||||||
|
#endif
|
||||||
|
case OBS_NIX_PLATFORM_X11_EGL:
|
||||||
|
pipewire_capture_load();
|
||||||
|
break;
|
||||||
|
case OBS_NIX_PLATFORM_X11_GLX:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,13 +174,4 @@ void pipewire_capture_load(void)
|
||||||
};
|
};
|
||||||
if (window_capture_available)
|
if (window_capture_available)
|
||||||
obs_register_source(&pipewire_window_capture_info);
|
obs_register_source(&pipewire_window_capture_info);
|
||||||
|
|
||||||
pw_init(NULL, NULL);
|
|
||||||
initialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void pipewire_capture_unload(void)
|
|
||||||
{
|
|
||||||
if (initialized)
|
|
||||||
pw_deinit();
|
|
||||||
}
|
}
|
|
@ -21,4 +21,3 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
void pipewire_capture_load(void);
|
void pipewire_capture_load(void);
|
||||||
void pipewire_capture_unload(void);
|
|
Loading…
Reference in New Issue