New upstream version 26.0.0+dfsg1
This commit is contained in:
parent
8e020cdacb
commit
240080891f
837 changed files with 41275 additions and 9196 deletions
|
|
@ -23,7 +23,7 @@ set(mac-capture_SOURCES
|
|||
mac-display-capture.m
|
||||
mac-window-capture.m
|
||||
window-utils.m)
|
||||
|
||||
|
||||
set_source_files_properties(mac-display-capture.m
|
||||
mac-window-capture.m
|
||||
window-utils.m
|
||||
|
|
@ -39,5 +39,6 @@ target_link_libraries(mac-capture
|
|||
${COREFOUNDATION}
|
||||
${IOSURF}
|
||||
${COCOA})
|
||||
set_target_properties(mac-capture PROPERTIES FOLDER "plugins")
|
||||
|
||||
install_obs_plugin_with_data(mac-capture data)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,10 @@ static inline bool device_is_input(char *device)
|
|||
{
|
||||
return astrstri(device, "soundflower") == NULL &&
|
||||
astrstri(device, "wavtap") == NULL &&
|
||||
astrstri(device, "soundsiphon") == NULL;
|
||||
astrstri(device, "soundsiphon") == NULL &&
|
||||
astrstri(device, "ishowu") == NULL &&
|
||||
astrstri(device, "blackhole") == NULL &&
|
||||
astrstri(device, "loopback") == NULL;
|
||||
}
|
||||
|
||||
static inline bool enum_success(OSStatus stat, const char *msg)
|
||||
|
|
|
|||
2
plugins/mac-capture/data/locale/az-AZ.ini
Normal file
2
plugins/mac-capture/data/locale/az-AZ.ini
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
CropMode.None="Heç biri"
|
||||
|
||||
5
plugins/mac-capture/data/locale/ba-RU.ini
Normal file
5
plugins/mac-capture/data/locale/ba-RU.ini
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
CoreAudio.Device="Яйланма"
|
||||
CoreAudio.Device.Default="Ғәҙәти"
|
||||
DisplayCapture.Display="Экран"
|
||||
CropMode.None="Юҡ"
|
||||
|
||||
21
plugins/mac-capture/data/locale/en-GB.ini
Normal file
21
plugins/mac-capture/data/locale/en-GB.ini
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
CoreAudio.InputCapture="Audio Input Capture"
|
||||
CoreAudio.OutputCapture="Audio Output Capture"
|
||||
CoreAudio.Device="Device"
|
||||
CoreAudio.Device.Default="Default"
|
||||
DisplayCapture="Display Capture"
|
||||
DisplayCapture.Display="Display"
|
||||
DisplayCapture.ShowCursor="Show Cursor"
|
||||
WindowCapture="Window Capture"
|
||||
WindowCapture.ShowShadow="Show Window shadow"
|
||||
WindowUtils.Window="Window"
|
||||
WindowUtils.ShowEmptyNames="Show Windows with empty names"
|
||||
CropMode="Crop"
|
||||
CropMode.None="None"
|
||||
CropMode.Manual="Manual"
|
||||
CropMode.ToWindow="To Window"
|
||||
CropMode.ToWindowAndManual="To Window and Manual"
|
||||
Crop.origin.x="Crop left"
|
||||
Crop.origin.y="Crop top"
|
||||
Crop.size.width="Crop right"
|
||||
Crop.size.height="Crop bottom"
|
||||
|
||||
21
plugins/mac-capture/data/locale/id-ID.ini
Normal file
21
plugins/mac-capture/data/locale/id-ID.ini
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
CoreAudio.InputCapture="Tangkapan Input Audio"
|
||||
CoreAudio.OutputCapture="Tangkapan Output Audio"
|
||||
CoreAudio.Device="Perangkat"
|
||||
CoreAudio.Device.Default="Default"
|
||||
DisplayCapture="Tangkapan Layar"
|
||||
DisplayCapture.Display="Tampilan"
|
||||
DisplayCapture.ShowCursor="Tampilkan Kursor"
|
||||
WindowCapture="Tangkapan Jendela"
|
||||
WindowCapture.ShowShadow="Tampilkan bayangan Jendela"
|
||||
WindowUtils.Window="Jendela"
|
||||
WindowUtils.ShowEmptyNames="Tampilkan Jendela dengan nama kosong"
|
||||
CropMode="Potong"
|
||||
CropMode.None="Tidak ada"
|
||||
CropMode.Manual="Manual"
|
||||
CropMode.ToWindow="Ke Jendela"
|
||||
CropMode.ToWindowAndManual="Ke Jendela dan Manual"
|
||||
Crop.origin.x="Potong kiri"
|
||||
Crop.origin.y="Potong atas"
|
||||
Crop.size.width="Potong kanan"
|
||||
Crop.size.height="Potong bawah"
|
||||
|
||||
|
|
@ -5,7 +5,7 @@ CoreAudio.Device.Default="Padrão"
|
|||
DisplayCapture="Captura de Exposição"
|
||||
DisplayCapture.Display="Exposição"
|
||||
DisplayCapture.ShowCursor="Mostrar o Cursor"
|
||||
WindowCapture="Captura de Janela"
|
||||
WindowCapture="Captura de janela"
|
||||
WindowCapture.ShowShadow="Mostrar sombra da Janela"
|
||||
WindowUtils.Window="Janela"
|
||||
WindowUtils.ShowEmptyNames="Mostrar janelas com nomes vazios"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
CoreAudio.InputCapture="Captură de intrare audio"
|
||||
CoreAudio.OutputCapture="Captură de ieșire audio"
|
||||
CoreAudio.InputCapture="Captură de input audio"
|
||||
CoreAudio.OutputCapture="Captură de output audio"
|
||||
CoreAudio.Device="Dispozitiv"
|
||||
CoreAudio.Device.Default="Implicit"
|
||||
DisplayCapture="Captură de display"
|
||||
|
|
|
|||
16
plugins/mac-capture/data/locale/ta-IN.ini
Normal file
16
plugins/mac-capture/data/locale/ta-IN.ini
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
CoreAudio.Device="சாதனம்"
|
||||
CoreAudio.Device.Default="இயல்புநிலை"
|
||||
DisplayCapture="திரை பிடிப்பு"
|
||||
DisplayCapture.Display="காட்சித்திரை"
|
||||
WindowCapture="சாளர பிடிப்பு"
|
||||
WindowCapture.ShowShadow="சாளர நிழலை காண்பி"
|
||||
WindowUtils.Window="சாளரம்"
|
||||
CropMode="கத்தரி"
|
||||
CropMode.None="எதுவுமில்லை"
|
||||
CropMode.Manual="கைமுறை"
|
||||
CropMode.ToWindow="சாளரத்திற்கு"
|
||||
Crop.origin.x="இடது கத்தரி"
|
||||
Crop.origin.y="மேல் கத்தரி"
|
||||
Crop.size.width="வலது கத்தரி"
|
||||
Crop.size.height="கீழே கத்தரி"
|
||||
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
CoreAudio.InputCapture="Захват Аудіо входу"
|
||||
CoreAudio.OutputCapture="Захват Аудіо виводу"
|
||||
CoreAudio.InputCapture="Захоплення вводу звуку"
|
||||
CoreAudio.OutputCapture="Захоплення виводу звуку"
|
||||
CoreAudio.Device="Пристрій"
|
||||
CoreAudio.Device.Default="За замовчанням"
|
||||
DisplayCapture="Захват екрану"
|
||||
DisplayCapture.Display="Екран"
|
||||
DisplayCapture.ShowCursor="Показати курсор"
|
||||
WindowCapture="Захват вікна"
|
||||
WindowCapture.ShowShadow="Показати віконну тінь"
|
||||
CoreAudio.Device.Default="За замовчуванням"
|
||||
DisplayCapture="Захоплення дисплея"
|
||||
DisplayCapture.Display="Дисплей"
|
||||
DisplayCapture.ShowCursor="Показувати курсор"
|
||||
WindowCapture="Захоплення вікна"
|
||||
WindowCapture.ShowShadow="Показувати тінь від вікон"
|
||||
WindowUtils.Window="Вікно"
|
||||
WindowUtils.ShowEmptyNames="Показати вікна без назв"
|
||||
WindowUtils.ShowEmptyNames="Показувати вікна неназваними"
|
||||
CropMode="Кадрування"
|
||||
CropMode.None="Не вказано"
|
||||
CropMode.Manual="Вручну"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
CoreAudio.InputCapture="音频输入捕获"
|
||||
CoreAudio.OutputCapture="音频输出捕获"
|
||||
CoreAudio.InputCapture="音频输入采集"
|
||||
CoreAudio.OutputCapture="音频输出采集"
|
||||
CoreAudio.Device="设备"
|
||||
CoreAudio.Device.Default="默认"
|
||||
DisplayCapture="显示捕获"
|
||||
DisplayCapture.Display="显示"
|
||||
DisplayCapture.ShowCursor="显示光标"
|
||||
WindowCapture="窗口捕获"
|
||||
DisplayCapture="显示器采集"
|
||||
DisplayCapture.Display="显示器"
|
||||
DisplayCapture.ShowCursor="显示鼠标指针"
|
||||
WindowCapture="窗口采集"
|
||||
WindowCapture.ShowShadow="显示窗口阴影"
|
||||
WindowUtils.Window="窗口"
|
||||
WindowUtils.ShowEmptyNames="显示窗口名称为空"
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ static inline void capture_frame(struct window_capture *wc)
|
|||
size_t height = CGImageGetHeight(img);
|
||||
|
||||
CGRect rect = {{0, 0}, {width, height}};
|
||||
da_reserve(wc->buffer, width * height * 4);
|
||||
da_resize(wc->buffer, width * height * 4);
|
||||
uint8_t *data = wc->buffer.array;
|
||||
|
||||
CGContextRef cg_context = CGBitmapContextCreate(
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ typedef struct cocoa_window *cocoa_window_t;
|
|||
|
||||
NSArray *enumerate_cocoa_windows(void);
|
||||
|
||||
NSArray *filter_nonzero_kcgwindowlayer_sources(NSArray *windows_arr);
|
||||
|
||||
bool find_window(cocoa_window_t cw, obs_data_t *settings, bool force);
|
||||
|
||||
void init_window(cocoa_window_t cw, obs_data_t *settings);
|
||||
|
|
|
|||
|
|
@ -23,14 +23,25 @@ static NSComparator win_info_cmp = ^(NSDictionary *o1, NSDictionary *o2) {
|
|||
return [o1[WINDOW_NUMBER] compare:o2[WINDOW_NUMBER]];
|
||||
};
|
||||
|
||||
NSArray *filter_nonzero_kcgwindowlayer_sources(NSArray *windows_arr)
|
||||
{
|
||||
NSPredicate *pred =
|
||||
[NSPredicate predicateWithFormat:@"(kCGWindowLayer == 0)"];
|
||||
NSArray *new_windows_arr =
|
||||
[windows_arr filteredArrayUsingPredicate:pred];
|
||||
|
||||
return new_windows_arr;
|
||||
}
|
||||
|
||||
NSArray *enumerate_windows(void)
|
||||
{
|
||||
NSArray *arr = (NSArray *)CGWindowListCopyWindowInfo(
|
||||
kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
|
||||
NSArray *filtered_arr = filter_nonzero_kcgwindowlayer_sources(arr);
|
||||
|
||||
[arr autorelease];
|
||||
|
||||
return [arr sortedArrayUsingComparator:win_info_cmp];
|
||||
return [filtered_arr sortedArrayUsingComparator:win_info_cmp];
|
||||
}
|
||||
|
||||
#define WAIT_TIME_MS 500
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue