1
0
mirror of https://gitlab.xiph.org/xiph/ezstream.git synced 2024-06-09 06:10:42 +00:00

Add plumbing for future encapsulation of libshout usage

This commit is contained in:
Moritz Grimm 2015-06-15 08:04:57 +02:00
parent b34b78aeba
commit 4b087df3ab
6 changed files with 133 additions and 4 deletions

View File

@ -13,6 +13,7 @@ noinst_HEADERS = \
log.h \
metadata.h \
playlist.h \
stream.h \
util.h \
xalloc.h
libezstream_la_SOURCES = \
@ -24,6 +25,7 @@ libezstream_la_SOURCES = \
log.c \
metadata.c \
playlist.c \
stream.c \
util.c \
xalloc.c
libezstream_la_DEPENDENCIES = \

View File

@ -32,6 +32,7 @@
#include "log.h"
#include "metadata.h"
#include "playlist.h"
#include "stream.h"
#include "util.h"
#include "xalloc.h"
@ -994,8 +995,7 @@ streamPlaylist(shout_t *shout)
int
ez_shutdown(int exitval)
{
shout_shutdown();
stream_exit();
playlist_exit();
cfg_encoder_exit();
cfg_decoder_exit();
@ -1017,6 +1017,7 @@ main(int argc, char *argv[])
struct sigaction act;
unsigned int i;
#endif
ret = 1;
if (0 > cfg_init() ||
0 > cmdline_parse(argc, argv, &ret) ||
@ -1024,9 +1025,9 @@ main(int argc, char *argv[])
0 > cfg_decoder_init() ||
0 > cfg_encoder_init() ||
0 > playlist_init() ||
0 > cfg_reload())
0 > cfg_reload() ||
0 > stream_init())
return (ez_shutdown(ret));
shout_init();
if (0 > cfg_check(&errstr)) {
log_error("%s: %s", cfg_get_program_config_file(), errstr);

37
src/stream.c Normal file
View File

@ -0,0 +1,37 @@
/*
* Copyright (c) 2015 Moritz Grimm <mgrimm@mrsserver.net>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif /* HAVE_CONFIG_H */
#include <shout/shout.h>
#include "cfg.h"
#include "stream.h"
int
stream_init(void)
{
shout_init();
return (0);
}
void
stream_exit(void)
{
shout_shutdown();
}

23
src/stream.h Normal file
View File

@ -0,0 +1,23 @@
/*
* Copyright (c) 2015 Moritz Grimm <mgrimm@mrsserver.net>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef __STREAM_H__
#define __STREAM_H__
int stream_init(void);
void stream_exit(void);
#endif /* __STREAM_H__ */

View File

@ -6,6 +6,7 @@ TESTS = \
check_cmdline \
check_log \
check_playlist \
check_stream \
check_xalloc
check_PROGRAMS = $(TESTS)
@ -34,6 +35,11 @@ check_playlist_SOURCES = \
check_playlist_DEPENDENCIES = $(top_builddir)/src/libezstream.la
check_playlist_LDADD = $(check_playlist_DEPENDENCIES) @CHECK_LIBS@
check_stream_SOURCES = \
check_stream.c
check_stream_DEPENDENCIES = $(top_builddir)/src/libezstream.la
check_stream_LDADD = $(check_stream_DEPENDENCIES) @CHECK_LIBS@
check_xalloc_SOURCES = \
check_xalloc.c
check_xalloc_DEPENDENCIES = $(top_builddir)/src/libezstream.la

60
tests/check_stream.c Normal file
View File

@ -0,0 +1,60 @@
#include <check.h>
#include "stream.h"
Suite * stream_suite(void);
void setup_checked(void);
void teardown_checked(void);
START_TEST(test_stream)
{
}
END_TEST
Suite *
stream_suite(void)
{
Suite *s;
TCase *tc_stream;
s = suite_create("Stream");
tc_stream = tcase_create("Stream");
tcase_add_checked_fixture(tc_stream, setup_checked, teardown_checked);
tcase_add_test(tc_stream, test_stream);
suite_add_tcase(s, tc_stream);
return (s);
}
void
setup_checked(void)
{
if (0 < stream_init())
ck_abort_msg("setup_checked failed");
}
void
teardown_checked(void)
{
stream_exit();
}
int
main(void)
{
unsigned int num_failed;
Suite *s;
SRunner *sr;
s = stream_suite();
sr = srunner_create(s);
srunner_run_all(sr, CK_NORMAL);
num_failed = srunner_ntests_failed(sr);
srunner_free(sr);
if (num_failed)
return (1);
return (0);
}