GNUnet 0.22.1
gnunet_gst_def.h
Go to the documentation of this file.
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2016 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19 */
26#include <getopt.h>
27#include <string.h>
28#include <stdio.h>
29#include <ctype.h>
30#include <stdlib.h>
31#include <unistd.h>
32#include <time.h>
33#include <regex.h>
34
35
36#include "platform.h"
37#include "gnunet_util_lib.h"
38#include "gnunet_protocols.h"
39// #include "gnunet/conversation.h" doesn't get installed
40#include "conversation.h"
41#include "gnunet_constants.h"
42#include "gnunet_core_service.h"
43#include "gnunet_common.h"
44
45/*
46 #include <gst/gst.h>
47 #include <gst/audio/gstaudiobasesrc.h>
48 #include <gst/app/gstappsrc.h>
49 */
50
51/* huh
52 #include <glib-2.0/glib.h>
53
54 #include <gstreamer-1.0/gst/gst.h>
55 #include <gstreamer-1.0/gst/pbutils/pbutils.h>
56 #include <gstreamer-1.0/gst/video/videooverlay.h>
57 #include <gstreamer-1.0/gst/audio/gstaudiobasesrc.h>
58 #include <gstreamer-1.0/gst/app/gstappsrc.h>
59 */
60
61#include <gst/gst.h>
62#include <gst/audio/gstaudiobasesrc.h>
63#include <gst/app/gstappsrc.h>
64#include <glib.h>
65#include <gst/app/gstappsink.h>
66
67// sockets
68#if HAVE_NETINET_IN_H
69#include <netinet/in.h>
70#endif
71#include <sys/socket.h>
72#include <arpa/inet.h>
73#include <netdb.h>
74
75#include <sys/types.h>
76#include <fcntl.h>
77
78
79// glib stuff
80// #include <glib.h>
81#include <glib-2.0/glib/gprintf.h>
82// #include <glib-unix.h>
83
84// static struct AudioMessage *audio_message;
85
86
89{
90 // general
91 GstPipeline *pipeline;
92
93 // things
96 GstElement *appsrc;
97 GstElement *appsink;
98 // settings
105};
106
107
108#define DEBUG_READ_PURE_OGG 1
109#define DEBUG_RECORD_PURE_OGG 1
110
111
115#define MAXLINE 4096
116
121#define BUFFER_TIME 1000
122
127#define LATENCY_TIME 1000
128
129
135#define OPUS_CHANNELS 1
136
140#define MAX_PAYLOAD_SIZE (1024 / OPUS_CHANNELS)
141
147#define OPUS_FRAME_SIZE 40
148
152#define PACKET_LOSS_PERCENTAGE 1
153
158#define INBAND_FEC_MODE 1
159
164#define BUFFER_TIME 1000 /* 1ms */
165
170#define LATENCY_TIME 1000 /* 1ms */
171
177#define OGG_MAX_DELAY 0
178
184#define OGG_MAX_PAGE_DELAY 0
185
186#define SAMPLING_RATE 48000
187
188enum
189{
194 TEST
196
197enum
198{
200 SINK
202
203enum
204{
206 DECODER
208
209enum
210{
212 OK
214
215enum
216{
constants for network protocols
commonly used definitions; globals in this file are exempt from the rule that the module name ("commo...
Core service; the main API for encrypted P2P communications.
@ OK
@ FAIL
@ SPEAKER
@ MICROPHONE
@ ALSA
@ JACK
@ TEST
@ FAKE
@ AUTO
@ SOURCE
@ SINK
@ ENCODER
@ DECODER
Constants for network protocols.
Message to transmit the audio (between client and helpers).
Definition: conversation.h:59
Handle to a message stream tokenizer.
Definition: mst.c:45
struct AudioMessage * audio_message
GstElement * appsrc
GstElement * appsink
GstPipeline * pipeline
struct GNUNET_MessageStreamTokenizer * stdin_mst