New upstream version 26.0.0+dfsg1

This commit is contained in:
Sebastian Ramacher 2020-10-01 22:15:25 +02:00
parent 8e020cdacb
commit 240080891f
837 changed files with 41275 additions and 9196 deletions

View file

@ -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)

View file

@ -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)

View file

@ -0,0 +1,2 @@
CropMode.None="Heç biri"

View file

@ -0,0 +1,5 @@
CoreAudio.Device="Яйланма"
CoreAudio.Device.Default="Ғәҙәти"
DisplayCapture.Display="Экран"
CropMode.None="Юҡ"

View 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"

View 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"

View file

@ -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"

View file

@ -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"

View 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="கீழே கத்தரி"

View file

@ -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="Вручну"

View file

@ -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="显示窗口名称为空"

View file

@ -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(

View file

@ -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);

View file

@ -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