UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
spout_sender.cpp
Go to the documentation of this file.
1
5/*
6 * Copyright (c) 2017-2023 CESNET, z. s. p. o.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, is permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 *
20 * 3. Neither the name of CESNET nor the names of its contributors may be
21 * used to endorse or promote products derived from this software without
22 * specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
26 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
27 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
28 * EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
29 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
34 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
35 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 */
37#include <GL/GL.h>
38#include <SpoutLibrary.h>
39
40#include "debug.h"
41#include "spout_sender.h"
42
43
44void *spout_sender_register(const char *name) {
45
46 SPOUTHANDLE spout = GetSpout();
47 spout->SetSenderName(name);
49
50 return spout;
51}
52
53void spout_sender_sendframe(void *s, int width, int height, unsigned int id) {
54 ((SPOUTHANDLE)s)->SendTexture(id, GL_TEXTURE_2D, width, height, false /* flip */);
55}
56
58 auto *spout = static_cast<SPOUTHANDLE>(s);
59 spout->ReleaseSender();
60 spout->Release();
61}
62
63void spout_set_log_level(void *s, int ug_level) {
64 auto *spout = static_cast<SPOUTHANDLE>(s);
65 enum SpoutLibLogLevel l;
66 switch (ug_level) {
67 case LOG_LEVEL_QUIET: l = SPOUT_LOG_SILENT; break;
68 case LOG_LEVEL_FATAL:
69 case LOG_LEVEL_ERROR:
70 case LOG_LEVEL_WARNING: l = (enum SpoutLibLogLevel) (7 - ug_level); break;
72 case LOG_LEVEL_INFO: l = SPOUT_LOG_NOTICE; break;
73 default: l = SPOUT_LOG_VERBOSE;
74 }
75
76 spout->SetSpoutLogLevel(l);
77}
#define LOG_LEVEL_NOTICE
information that may be interesting
Definition debug.h:61
#define LOG_LEVEL_INFO
normal reporting
Definition debug.h:62
#define LOG_LEVEL_QUIET
suppress all logging
Definition debug.h:57
#define LOG_LEVEL_ERROR
general errors
Definition debug.h:59
#define LOG_LEVEL_FATAL
errors that prevent UG run
Definition debug.h:58
#define LOG_LEVEL_WARNING
less severe errors
Definition debug.h:60
volatile int log_level
Definition debug.cpp:65
const char * name
Definition settings.cpp:193
void spout_sender_unregister(void *s)
void spout_sender_sendframe(void *s, int width, int height, unsigned int id)
void * spout_sender_register(const char *name)
void spout_set_log_level(void *s, int ug_level)