obs-outputs: Add FTL output

Closes jp9000/obs-studio#980
master
Quinn Damerell 2017-07-31 16:04:32 -07:00 committed by jp9000
parent fa611dcd76
commit 6f8e38e0a0
6 changed files with 1273 additions and 0 deletions

3
.gitmodules vendored
View File

@ -13,3 +13,6 @@
[submodule "plugins/obs-vst"]
path = plugins/obs-vst
url = https://github.com/DDRBoxman/obs-vst.git
[submodule "plugins/obs-outputs/ftl-sdk"]
path = plugins/obs-outputs/ftl-sdk
url = https://github.com/Mixer/ftl-sdk.git

View File

@ -19,6 +19,63 @@ else()
add_definitions(-DNO_CRYPTO)
endif()
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/CMakeLists.txt")
find_package(Libcurl REQUIRED)
include_directories(${LIBCURL_INCLUDE_DIRS})
set(ftl_SOURCES
ftl-stream.c
ftl-sdk/libftl/hmac/hmac.c
ftl-sdk/libftl/hmac/sha2.c
ftl-sdk/libftl/ftl-sdk.c
ftl-sdk/libftl/handshake.c
ftl-sdk/libftl/ingest.c
ftl-sdk/libftl/ftl_helpers.c
ftl-sdk/libftl/media.c
ftl-sdk/libftl/gettimeofday/gettimeofday.c
ftl-sdk/libftl/logging.c)
set(ftl_HEADERS
ftl-sdk/libftl/hmac/hmac.h
ftl-sdk/libftl/hmac/sha2.h
ftl-sdk/libftl/ftl.h
ftl-sdk/libftl/ftl_private.h)
set(ftl_IMPORTS
${OBS_JANSSON_IMPORT}
${LIBCURL_LIBRARIES})
if (WIN32)
list(APPEND ftl_SOURCES
ftl-sdk/libftl/win32/socket.c
ftl-sdk/libftl/gettimeofday/gettimeofday.c
ftl-sdk/libftl/win32/threads.c)
list(APPEND ftl_HEADERS
ftl-sdk/libftl/gettimeofday/gettimeofday.h
ftl-sdk/libftl/win32/threads.h)
include_directories(ftl-sdk/libftl/win32)
else()
list(APPEND ftl_SOURCES
ftl-sdk/libftl/posix/socket.c
ftl-sdk/libftl/posix/threads.c)
list(APPEND ftl_HEADERS
ftl-sdk/libftl/posix/threads.h)
include_directories(ftl-sdk/libftl/posix)
endif()
include_directories(ftl-sdk/libftl)
set(COMPILE_FTL TRUE)
else()
set(COMPILE_FTL FALSE)
endif()
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/obs-outputs-config.h.in"
"${CMAKE_BINARY_DIR}/plugins/obs-outputs/config/obs-outputs-config.h")
include_directories("${CMAKE_BINARY_DIR}/plugins/obs-outputs/config")
if(WIN32)
set(obs-outputs_PLATFORM_DEPS
@ -60,6 +117,7 @@ if(NOT WIN32)
endif()
set(obs-outputs_HEADERS
"${CMAKE_BINARY_DIR}/plugins/obs-outputs/config/obs-outputs-config.h"
obs-output-ver.h
rtmp-helpers.h
rtmp-stream.h
@ -75,6 +133,8 @@ set(obs-outputs_SOURCES
net-if.c)
add_library(obs-outputs MODULE
${ftl_SOURCES}
${ftl_HEADERS}
${obs-outputs_SOURCES}
${obs-outputs_HEADERS}
${obs-outputs_librtmp_SOURCES}
@ -83,6 +143,7 @@ target_link_libraries(obs-outputs
libobs
${SSL_LIBRARIES}
${ZLIB_LIBRARIES}
${ftl_IMPORTS}
${obs-outputs_PLATFORM_DEPS})
install_obs_plugin_with_data(obs-outputs data)

@ -0,0 +1 @@
Subproject commit d39456c07527a5cb0580c98870c871b2f366ef2e

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
#pragma once
#ifndef TRUE
#define TRUE 1
#endif
#ifndef ON
#define ON 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#define COMPILE_FTL @COMPILE_FTL@

View File

@ -1,5 +1,7 @@
#include <obs-module.h>
#include "obs-outputs-config.h"
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
@ -11,6 +13,9 @@ OBS_MODULE_USE_DEFAULT_LOCALE("obs-outputs", "en-US")
extern struct obs_output_info rtmp_output_info;
extern struct obs_output_info null_output_info;
extern struct obs_output_info flv_output_info;
#if COMPILE_FTL
extern struct obs_output_info ftl_output_info;
#endif
bool obs_module_load(void)
{
@ -22,6 +27,9 @@ bool obs_module_load(void)
obs_register_output(&rtmp_output_info);
obs_register_output(&null_output_info);
obs_register_output(&flv_output_info);
#if COMPILE_FTL
obs_register_output(&ftl_output_info);
#endif
return true;
}