Skip to content
This repository has been archived by the owner on Mar 15, 2021. It is now read-only.

Commit

Permalink
change to tick callback
Browse files Browse the repository at this point in the history
  • Loading branch information
CatxFish committed Apr 11, 2019
1 parent 1cfa4e7 commit 8fc9e88
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions src/virtual-output/virtual_filter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ static void *virtual_filter_create(obs_data_t *settings, obs_source_t *context)
return data;
}

static void virtual_filter_video(void *param, uint32_t cx, uint32_t cy)
static void virtual_filter_video(void *param, float seconds)
{
virtual_filter_data* filter = (virtual_filter_data*)param;
obs_source_t* target = obs_filter_get_target(filter->context);
Expand All @@ -74,10 +74,14 @@ static void virtual_filter_video(void *param, uint32_t cx, uint32_t cy)
height = filter->base_height;
}

obs_enter_graphics();

gs_texrender_reset(filter->texrender);

if (!gs_texrender_begin(filter->texrender, width, height))
if (!gs_texrender_begin(filter->texrender, width, height)) {
obs_leave_graphics();
return;
}

vec4_zero(&background);
gs_clear(GS_CLEAR_COLOR, &background, 0.0f, 0);
Expand Down Expand Up @@ -111,16 +115,16 @@ static void virtual_filter_video(void *param, uint32_t cx, uint32_t cy)
&video_data, time);
gs_stagesurface_unmap(filter->stagesurface);

UNUSED_PARAMETER(cx);
UNUSED_PARAMETER(cy);
obs_leave_graphics();

}


static void virtual_filter_destroy(void *data)
{
virtual_filter_data *filter = (virtual_filter_data *)data;
if (filter) {
obs_remove_main_render_callback(virtual_filter_video, data);
obs_remove_tick_callback(virtual_filter_video, data);
shared_queue_write_close(&filter->video_queue);
obs_enter_graphics();
gs_stagesurface_destroy(filter->stagesurface);
Expand Down Expand Up @@ -179,7 +183,7 @@ static bool virtual_filter_start(obs_properties_t *props, obs_property_t *p,
obs_property_set_visible(p, false);
obs_property_set_visible(stop, true);
shared_queue_set_delay(&filter->video_queue, filter->delay);
obs_add_main_render_callback(virtual_filter_video, data);
obs_add_tick_callback(virtual_filter_video, data);
blog(LOG_INFO, "starting virtual-filter on VirtualCam'%d'",
filter->mode + 1);
} else {
Expand All @@ -194,7 +198,7 @@ static bool virtual_filter_stop(obs_properties_t *props, obs_property_t *p,
void *data)
{
virtual_filter_data* filter = (virtual_filter_data*)data;
obs_remove_main_render_callback(virtual_filter_video, data);
obs_remove_tick_callback(virtual_filter_video, data);
shared_queue_write_close(&filter->video_queue);
obs_property_t *start = obs_properties_get(props, S_START);
filter->active = false;
Expand Down

0 comments on commit 8fc9e88

Please sign in to comment.