UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
src
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
44
void
*
spout_sender_register
(
const
char
*
name
) {
45
46
SPOUTHANDLE spout = GetSpout();
47
spout->SetSenderName(
name
);
48
spout_set_log_level
(spout,
log_level
);
49
50
return
spout;
51
}
52
53
void
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
57
void
spout_sender_unregister
(
void
*s) {
58
auto
*spout =
static_cast<
SPOUTHANDLE
>
(s);
59
spout->ReleaseSender();
60
spout->Release();
61
}
62
63
void
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
;
71
case
LOG_LEVEL_NOTICE
:
72
case
LOG_LEVEL_INFO
: l = SPOUT_LOG_NOTICE;
break
;
73
default
: l = SPOUT_LOG_VERBOSE;
74
}
75
76
spout->SetSpoutLogLevel(l);
77
}
debug.h
LOG_LEVEL_NOTICE
#define LOG_LEVEL_NOTICE
information that may be interesting
Definition
debug.h:61
LOG_LEVEL_INFO
#define LOG_LEVEL_INFO
normal reporting
Definition
debug.h:62
LOG_LEVEL_QUIET
#define LOG_LEVEL_QUIET
suppress all logging
Definition
debug.h:57
LOG_LEVEL_ERROR
#define LOG_LEVEL_ERROR
general errors
Definition
debug.h:59
LOG_LEVEL_FATAL
#define LOG_LEVEL_FATAL
errors that prevent UG run
Definition
debug.h:58
LOG_LEVEL_WARNING
#define LOG_LEVEL_WARNING
less severe errors
Definition
debug.h:60
log_level
volatile int log_level
Definition
debug.cpp:65
name
const char * name
Definition
settings.cpp:193
spout_sender_unregister
void spout_sender_unregister(void *s)
Definition
spout_sender.cpp:57
spout_sender_sendframe
void spout_sender_sendframe(void *s, int width, int height, unsigned int id)
Definition
spout_sender.cpp:53
spout_sender_register
void * spout_sender_register(const char *name)
Definition
spout_sender.cpp:44
spout_set_log_level
void spout_set_log_level(void *s, int ug_level)
Definition
spout_sender.cpp:63
spout_sender.h
Generated on Wed Sep 25 2024 14:27:18 for UltraGrid by
1.12.0