Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Touch the pragma to see if it cause a rampage #24

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions plugins/mac-capture/mac-sck-audio-capture.m
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
return obs_module_text("SCK.Audio.Name");
}

static void destroy_audio_screen_stream(struct screen_capture *sc)
static void destroy_audio_screen_stream(struct screen_capture *sc) API_AVAILABLE(macos(13.0))
{
if (sc->disp && !sc->capture_failed) {
[sc->disp stopCaptureWithCompletionHandler:^(NSError *_Nullable error) {
Expand All @@ -32,7 +32,7 @@ static void destroy_audio_screen_stream(struct screen_capture *sc)
os_event_destroy(sc->stream_start_completed);
}

static void sck_audio_capture_destroy(void *data)
static void sck_audio_capture_destroy(void *data) API_AVAILABLE(macos(13.0))
{
struct screen_capture *sc = data;

Expand All @@ -57,7 +57,7 @@ static void sck_audio_capture_destroy(void *data)
bfree(sc);
}

static bool init_audio_screen_stream(struct screen_capture *sc)
static bool init_audio_screen_stream(struct screen_capture *sc) API_AVAILABLE(macos(13.0))
{
SCContentFilter *content_filter;
if (sc->capture_failed) {
Expand Down Expand Up @@ -178,7 +178,7 @@ static void sck_audio_capture_defaults(obs_data_t *settings)
obs_data_set_default_int(settings, "type", ScreenCaptureAudioDesktopStream);
}

static void *sck_audio_capture_create(obs_data_t *settings, obs_source_t *source)
static void *sck_audio_capture_create(obs_data_t *settings, obs_source_t *source) API_AVAILABLE(macos(13.0))
{
struct screen_capture *sc = bzalloc(sizeof(struct screen_capture));

Expand Down Expand Up @@ -210,7 +210,7 @@ static void sck_audio_capture_defaults(obs_data_t *settings)
#pragma mark - obs_properties

static bool audio_capture_method_changed(void *data, obs_properties_t *props, obs_property_t *list __unused,
obs_data_t *settings)
obs_data_t *settings) API_AVAILABLE(macos(13.0))
{
struct screen_capture *sc = data;

Expand All @@ -234,6 +234,7 @@ static bool audio_capture_method_changed(void *data, obs_properties_t *props, ob
}

static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t *property, void *data)
API_AVAILABLE(macos(13.0))
{
struct screen_capture *sc = data;
if (!sc->capture_failed) {
Expand All @@ -248,7 +249,7 @@ static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t
return true;
}

static obs_properties_t *sck_audio_capture_properties(void *data)
static obs_properties_t *sck_audio_capture_properties(void *data) API_AVAILABLE(macos(13.0))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -284,7 +285,7 @@ static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t
return props;
}

static void sck_audio_capture_update(void *data, obs_data_t *settings)
static void sck_audio_capture_update(void *data, obs_data_t *settings) API_AVAILABLE(macos(13.0))
{
struct screen_capture *sc = data;

Expand All @@ -300,6 +301,7 @@ static void sck_audio_capture_update(void *data, obs_data_t *settings)

#pragma mark - obs_source_info

API_AVAILABLE(macos(13.0))
struct obs_source_info sck_audio_capture_info = {
.id = "sck_audio_capture",
.type = OBS_SOURCE_TYPE_INPUT,
Expand Down
22 changes: 9 additions & 13 deletions plugins/mac-capture/mac-sck-common.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#include <AvailabilityMacros.h>
#include <Cocoa/Cocoa.h>

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability-new"

#include <stdlib.h>
#include <obs-module.h>
#include <util/threading.h>
Expand All @@ -28,15 +25,16 @@ typedef enum {
ScreenCaptureAudioApplicationStream = 1,
} ScreenCaptureAudioStreamType;

typedef SCDisplay *SCDisplayRef;
typedef SCDisplay *SCDisplayRef API_AVAILABLE(macos(12.5));

API_AVAILABLE(macos(12.5))
@interface ScreenCaptureDelegate : NSObject <SCStreamOutput, SCStreamDelegate>

@property struct screen_capture *sc;

@end

struct screen_capture {
struct API_AVAILABLE(macos(12.5)) screen_capture {
obs_source_t *source;

gs_effect_t *effect;
Expand Down Expand Up @@ -71,18 +69,16 @@ struct screen_capture {

bool is_screen_capture_available(void);

void screen_capture_build_content_list(struct screen_capture *sc, bool display_capture);
void screen_capture_build_content_list(struct screen_capture *sc, bool display_capture) API_AVAILABLE(macos(12.5));

bool build_display_list(struct screen_capture *sc, obs_properties_t *props);
bool build_display_list(struct screen_capture *sc, obs_properties_t *props) API_AVAILABLE(macos(12.5));

bool build_window_list(struct screen_capture *sc, obs_properties_t *props);
bool build_window_list(struct screen_capture *sc, obs_properties_t *props) API_AVAILABLE(macos(12.5));

bool build_application_list(struct screen_capture *sc, obs_properties_t *props);
bool build_application_list(struct screen_capture *sc, obs_properties_t *props) API_AVAILABLE(macos(12.5));

static const char *screen_capture_getname(void *unused __unused);

void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer);

void screen_stream_audio_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer);
void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer) API_AVAILABLE(macos(12.5));

#pragma clang diagnostic pop
void screen_stream_audio_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer) API_AVAILABLE(macos(12.5));
2 changes: 1 addition & 1 deletion plugins/mac-capture/mac-sck-common.m
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ bool build_application_list(struct screen_capture *sc, obs_properties_t *props)

#pragma mark - audio/video

void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer)
void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer) API_AVAILABLE(macos(12.5))
{
bool frame_detail_errored = false;
float scale_factor = 1.0f;
Expand Down
24 changes: 13 additions & 11 deletions plugins/mac-capture/mac-sck-video-capture.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "mac-sck-common.h"
#include "window-utils.h"

static void destroy_screen_stream(struct screen_capture *sc)
static void destroy_screen_stream(struct screen_capture *sc) API_AVAILABLE(macos(12.5))
{
if (sc->disp && !sc->capture_failed) {
[sc->disp stopCaptureWithCompletionHandler:^(NSError *_Nullable error) {
Expand Down Expand Up @@ -45,7 +45,7 @@ static void destroy_screen_stream(struct screen_capture *sc)
os_event_destroy(sc->stream_start_completed);
}

static void sck_video_capture_destroy(void *data)
static void sck_video_capture_destroy(void *data) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -74,7 +74,7 @@ static void sck_video_capture_destroy(void *data)
bfree(sc);
}

static bool init_screen_stream(struct screen_capture *sc)
static bool init_screen_stream(struct screen_capture *sc) API_AVAILABLE(macos(12.5))
{
SCContentFilter *content_filter;
if (sc->capture_failed) {
Expand Down Expand Up @@ -270,7 +270,7 @@ static bool init_screen_stream(struct screen_capture *sc)
return did_stream_start;
}

static void *sck_video_capture_create(obs_data_t *settings, obs_source_t *source)
static void *sck_video_capture_create(obs_data_t *settings, obs_source_t *source) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = bzalloc(sizeof(struct screen_capture));

Expand Down Expand Up @@ -309,7 +309,7 @@ static bool init_screen_stream(struct screen_capture *sc)
return NULL;
}

static void sck_video_capture_tick(void *data, float seconds __unused)
static void sck_video_capture_tick(void *data, float seconds __unused) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -341,7 +341,7 @@ static void sck_video_capture_tick(void *data, float seconds __unused)
}
}

static void sck_video_capture_render(void *data, gs_effect_t *effect __unused)
static void sck_video_capture_render(void *data, gs_effect_t *effect __unused) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand All @@ -368,14 +368,14 @@ static void sck_video_capture_render(void *data, gs_effect_t *effect __unused)
return obs_module_text("SCK.Name.Beta");
}

static uint32_t sck_video_capture_getwidth(void *data)
static uint32_t sck_video_capture_getwidth(void *data) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

return (uint32_t) sc->frame.size.width;
}

static uint32_t sck_video_capture_getheight(void *data)
static uint32_t sck_video_capture_getheight(void *data) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -410,7 +410,7 @@ static void sck_video_capture_defaults(obs_data_t *settings)
obs_data_set_default_bool(settings, "show_hidden_windows", false);
}

static void sck_video_capture_update(void *data, obs_data_t *settings)
static void sck_video_capture_update(void *data, obs_data_t *settings) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -473,7 +473,7 @@ static void sck_video_capture_update(void *data, obs_data_t *settings)
#pragma mark - obs_properties

static bool content_settings_changed(void *data, obs_properties_t *props, obs_property_t *list __unused,
obs_data_t *settings)
obs_data_t *settings) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -544,6 +544,7 @@ static bool content_settings_changed(void *data, obs_properties_t *props, obs_pr
}

static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t *property, void *data)
API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;
if (!sc->capture_failed) {
Expand All @@ -560,7 +561,7 @@ static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t
return true;
}

static obs_properties_t *sck_video_capture_properties(void *data)
static obs_properties_t *sck_video_capture_properties(void *data) API_AVAILABLE(macos(12.5))
{
struct screen_capture *sc = data;

Expand Down Expand Up @@ -693,6 +694,7 @@ enum gs_color_space sck_video_capture_get_color_space(void *data, size_t count,

#pragma mark - obs_source_info

API_AVAILABLE(macos(12.5))
struct obs_source_info sck_video_capture_info = {
.id = "screen_capture",
.type = OBS_SOURCE_TYPE_INPUT,
Expand Down
Loading