Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <obs-module.h>
- OBS_DECLARE_MODULE()
- obs_output_info screen_output;
- struct ml_output {
- obs_output_t *output;
- bool active;
- };
- static const char *ml_get_name(void *unused)
- {
- UNUSED_PARAMETER(unused);
- return "ML";
- }
- static void *ml_create(obs_data_t *settings, obs_output_t *output)
- {
- UNUSED_PARAMETER(settings);
- struct ml_output *data = (struct ml_output*)bzalloc(sizeof(struct ml_output));
- data->output = output;
- return data;
- }
- static void ml_stop(void *data, uint64_t ts);
- static void ml_destroy(void *uncastedData)
- {
- struct ml_output *data = (ml_output *)uncastedData;
- if (data->active)
- {
- ml_stop(uncastedData, 0);
- }
- bfree(data);
- }
- static bool ml_start(void *uncastedData)
- {
- struct ml_output *data = (ml_output *)uncastedData;
- data->active = true;
- return true;
- }
- static void ml_stop(void *uncastedData, uint64_t ts)
- {
- struct ml_output *data = (ml_output *)uncastedData;
- if (data->active)
- {
- data->active = false;
- }
- }
- static void ml_raw_video(void *uncastedData, struct video_data *frame)
- {
- struct ml_output *data = (ml_output *)uncastedData;
- if (!data->active)
- {
- return;
- }
- }
- static void ml_raw_audio(void *uncastedData, struct audio_data *frames)
- {
- struct ml_output *data = (ml_output *)uncastedData;
- }
- static void ml_encoded_packet(void *uncastedData, struct encoder_packet *packet)
- {
- struct ml_output *data = (ml_output *)uncastedData;
- }
- bool obs_module_load(void)
- {
- screen_output.id = "ml";
- screen_output.flags = OBS_OUTPUT_VIDEO;
- screen_output.get_name = ml_get_name;
- screen_output.create = ml_create;
- screen_output.destroy = ml_destroy;
- screen_output.start = ml_start;
- screen_output.stop = ml_stop;
- screen_output.raw_video = ml_raw_video;
- obs_register_output(&screen_output);
- return true;
- }
- void obs_module_unload(void)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement