正在显示
12 个修改的文件
包含
172 行增加
和
34 行删除
@@ -7,22 +7,20 @@ | @@ -7,22 +7,20 @@ | ||
7 | # $BUILD_KEY a string indicates the build key for Makefile. ie. dump | 7 | # $BUILD_KEY a string indicates the build key for Makefile. ie. dump |
8 | # $LIB_NAME the app name to output. ie. smart_server | 8 | # $LIB_NAME the app name to output. ie. smart_server |
9 | # $MODULE_OBJS array, the objects to compile the app. | 9 | # $MODULE_OBJS array, the objects to compile the app. |
10 | -# $LINK_OPTIONS the linker options to generate the so(shared library). | ||
11 | 10 | ||
12 | FILE=${SRS_OBJS}/${SRS_MAKEFILE} | 11 | FILE=${SRS_OBJS}/${SRS_MAKEFILE} |
13 | 12 | ||
14 | LIB_TARGET="${SRS_OBJS}/${LIB_NAME}" | 13 | LIB_TARGET="${SRS_OBJS}/${LIB_NAME}" |
15 | LIB_TAGET_STATIC="${LIB_TARGET}.a" | 14 | LIB_TAGET_STATIC="${LIB_TARGET}.a" |
16 | -LIB_TAGET_SHARED="${LIB_TARGET}.so" | ||
17 | 15 | ||
18 | echo "generate lib ${LIB_NAME} depends..." | 16 | echo "generate lib ${LIB_NAME} depends..." |
19 | 17 | ||
20 | echo "" >> ${FILE} | 18 | echo "" >> ${FILE} |
21 | echo "# archive library ${LIB_TAGET_STATIC}" >> ${FILE} | 19 | echo "# archive library ${LIB_TAGET_STATIC}" >> ${FILE} |
22 | -echo "${BUILD_KEY}: ${LIB_TAGET_SHARED}" >> ${FILE} | 20 | +echo "${BUILD_KEY}: ${LIB_TAGET_STATIC}" >> ${FILE} |
23 | 21 | ||
24 | # build depends | 22 | # build depends |
25 | -echo -n "${LIB_TAGET_SHARED}: " >> ${FILE} | 23 | +echo -n "${LIB_TAGET_STATIC}: " >> ${FILE} |
26 | for item in ${MODULE_OBJS[*]}; do | 24 | for item in ${MODULE_OBJS[*]}; do |
27 | FILE_NAME=`basename $item` | 25 | FILE_NAME=`basename $item` |
28 | FILE_NAME=${FILE_NAME%.*} | 26 | FILE_NAME=${FILE_NAME%.*} |
@@ -57,23 +55,4 @@ for item in ${MODULE_OBJS[*]}; do | @@ -57,23 +55,4 @@ for item in ${MODULE_OBJS[*]}; do | ||
57 | done | 55 | done |
58 | echo "" >> ${FILE} | 56 | echo "" >> ${FILE} |
59 | 57 | ||
60 | -echo "generate lib ${LIB_NAME} link..."; | ||
61 | - | ||
62 | -# archive librtmp.so | ||
63 | -echo -n " \$(GCC) -shared -o ${LIB_TAGET_SHARED} " >> ${FILE} | ||
64 | -for item in ${MODULE_OBJS[*]}; do | ||
65 | - FILE_NAME=`basename $item` | ||
66 | - FILE_NAME=${FILE_NAME%.*} | ||
67 | - | ||
68 | - if [ ! -f ${item} ]; then | ||
69 | - continue; | ||
70 | - fi | ||
71 | - | ||
72 | - OBJ_FILE=${SRS_OBJS}/$item | ||
73 | - OBJ_FILE="${OBJ_FILE%.*}.o" | ||
74 | - echo -n "${OBJ_FILE} " >> ${FILE} | ||
75 | -done | ||
76 | -echo -n "${LINK_OPTIONS} " >> ${FILE} | ||
77 | -echo "" >> ${FILE} | ||
78 | - | ||
79 | echo -n "generate lib ${LIB_NAME} ok"; echo '!'; | 58 | echo -n "generate lib ${LIB_NAME} ok"; echo '!'; |
@@ -54,7 +54,7 @@ help: | @@ -54,7 +54,7 @@ help: | ||
54 | @echo " librtmp build the client publish/play library." | 54 | @echo " librtmp build the client publish/play library." |
55 | 55 | ||
56 | clean: | 56 | clean: |
57 | - (rm -f Makefile; cd ${SRS_OBJS}; rm -rf srs bandwidth Makefile *.hpp src st_*_load research) | 57 | + (rm -f Makefile; cd ${SRS_OBJS}; rm -rf srs bandwidth Makefile *.hpp src st_*_load research include lib) |
58 | 58 | ||
59 | server: _prepare_dir | 59 | server: _prepare_dir |
60 | @echo "build the srs(simple rtmp server) over st(state-threads)" | 60 | @echo "build the srs(simple rtmp server) over st(state-threads)" |
@@ -83,8 +83,10 @@ GDBDebug="-g -O0" | @@ -83,8 +83,10 @@ GDBDebug="-g -O0" | ||
83 | WarnLevel="-Wall" | 83 | WarnLevel="-Wall" |
84 | # the compile standard. | 84 | # the compile standard. |
85 | CppStd="-ansi" | 85 | CppStd="-ansi" |
86 | +# for library compile | ||
87 | +LibraryCompile="-fPIC" | ||
86 | # the cxx flag generated. | 88 | # the cxx flag generated. |
87 | -CXXFLAGS="${CppStd} ${WarnLevel} ${GDBDebug}" | 89 | +CXXFLAGS="${CppStd} ${WarnLevel} ${GDBDebug} ${LibraryCompile}" |
88 | #CXXFLAGS="${CppStd} ${WarnLevel} ${GDBDebug} ${Performance}" | 90 | #CXXFLAGS="${CppStd} ${WarnLevel} ${GDBDebug} ${Performance}" |
89 | cat << END > ${SRS_OBJS}/${SRS_MAKEFILE} | 91 | cat << END > ${SRS_OBJS}/${SRS_MAKEFILE} |
90 | CC ?= gcc | 92 | CC ?= gcc |
@@ -166,7 +168,7 @@ APP_OBJS="${MODULE_OBJS[@]}" | @@ -166,7 +168,7 @@ APP_OBJS="${MODULE_OBJS[@]}" | ||
166 | #LIBS Module, build libsrs.a for static link. | 168 | #LIBS Module, build libsrs.a for static link. |
167 | MODULE_ID="LIBS" | 169 | MODULE_ID="LIBS" |
168 | MODULE_DEPENDS=("CORE" "KERNEL" "RTMP") | 170 | MODULE_DEPENDS=("CORE" "KERNEL" "RTMP") |
169 | -ModuleLibIncs=() | 171 | +ModuleLibIncs=(${SRS_OBJS}) |
170 | MODULE_FILES=("srs_librtmp") | 172 | MODULE_FILES=("srs_librtmp") |
171 | MODULE_DIR="src/libs" . auto/modules.sh | 173 | MODULE_DIR="src/libs" . auto/modules.sh |
172 | LIBS_OBJS="${MODULE_OBJS[@]}" | 174 | LIBS_OBJS="${MODULE_OBJS[@]}" |
@@ -202,7 +204,7 @@ BUILD_KEY="bandwidth" APP_MAIN="srs_main_bandcheck" APP_NAME="bandwidth" . auto/ | @@ -202,7 +204,7 @@ BUILD_KEY="bandwidth" APP_MAIN="srs_main_bandcheck" APP_NAME="bandwidth" . auto/ | ||
202 | # | 204 | # |
203 | # srs librtmp | 205 | # srs librtmp |
204 | MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${LIBS_OBJS[@]}" | 206 | MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${LIBS_OBJS[@]}" |
205 | -BUILD_KEY="librtmp" LIB_NAME="srs_librtmp" LINK_OPTIONS="" . auto/libs.sh | 207 | +BUILD_KEY="librtmp" LIB_NAME="lib/srs_librtmp" . auto/libs.sh |
206 | 208 | ||
207 | echo 'configure ok! ' | 209 | echo 'configure ok! ' |
208 | 210 | ||
@@ -211,6 +213,9 @@ echo 'configure ok! ' | @@ -211,6 +213,9 @@ echo 'configure ok! ' | ||
211 | ##################################################################################### | 213 | ##################################################################################### |
212 | # create objs/logs for ffmpeg to write log. | 214 | # create objs/logs for ffmpeg to write log. |
213 | mkdir -p ${SRS_OBJS}/logs | 215 | mkdir -p ${SRS_OBJS}/logs |
216 | +# lib and include for library | ||
217 | +mkdir -p ${SRS_OBJS}/lib | ||
218 | +mkdir -p ${SRS_OBJS}/include | ||
214 | 219 | ||
215 | ##################################################################################### | 220 | ##################################################################################### |
216 | # configure summary | 221 | # configure summary |
trunk/research/librtmp/Makefile
0 → 100755
trunk/research/librtmp/srs_publish.c
0 → 100755
1 | +/* | ||
2 | +The MIT License (MIT) | ||
3 | + | ||
4 | +Copyright (c) 2013-2014 winlin | ||
5 | + | ||
6 | +Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
7 | +this software and associated documentation files (the "Software"), to deal in | ||
8 | +the Software without restriction, including without limitation the rights to | ||
9 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
10 | +the Software, and to permit persons to whom the Software is furnished to do so, | ||
11 | +subject to the following conditions: | ||
12 | + | ||
13 | +The above copyright notice and this permission notice shall be included in all | ||
14 | +copies or substantial portions of the Software. | ||
15 | + | ||
16 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
17 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
18 | +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
19 | +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
20 | +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
21 | +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
22 | +*/ | ||
23 | +/** | ||
24 | +gcc srs_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_publish | ||
25 | +*/ | ||
26 | + | ||
27 | +#include <stdio.h> | ||
28 | +#include "../../objs/include/srs_librtmp.h" | ||
29 | + | ||
30 | +int main(int argc, char** argv) | ||
31 | +{ | ||
32 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
33 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
34 | + | ||
35 | + return 0; | ||
36 | +} |
@@ -77,8 +77,8 @@ int SrsForwarder::on_publish(SrsRequest* req, std::string forward_server) | @@ -77,8 +77,8 @@ int SrsForwarder::on_publish(SrsRequest* req, std::string forward_server) | ||
77 | 77 | ||
78 | stream_name = req->stream; | 78 | stream_name = req->stream; |
79 | server = forward_server; | 79 | server = forward_server; |
80 | - std::string s_port = RTMP_DEFAULT_PORTS; | ||
81 | - port = RTMP_DEFAULT_PORT; | 80 | + std::string s_port = RTMP_DEFAULT_PORT; |
81 | + port = ::atoi(RTMP_DEFAULT_PORT); | ||
82 | 82 | ||
83 | size_t pos = forward_server.find(":"); | 83 | size_t pos = forward_server.find(":"); |
84 | if (pos != std::string::npos) { | 84 | if (pos != std::string::npos) { |
@@ -29,7 +29,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -29,7 +29,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
29 | */ | 29 | */ |
30 | 30 | ||
31 | // current release version | 31 | // current release version |
32 | -#define RTMP_SIG_SRS_VERSION "0.9.8" | 32 | +#define VERSION_MAJOR "0" |
33 | +#define VERSION_MINOR "9" | ||
34 | +#define VERSION_REVISION "8" | ||
35 | +#define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | ||
33 | // server info. | 36 | // server info. |
34 | #define RTMP_SIG_SRS_KEY "srs" | 37 | #define RTMP_SIG_SRS_KEY "srs" |
35 | #define RTMP_SIG_SRS_ROLE "origin server" | 38 | #define RTMP_SIG_SRS_ROLE "origin server" |
@@ -22,3 +22,78 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -22,3 +22,78 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <srs_librtmp.hpp> | 24 | #include <srs_librtmp.hpp> |
25 | + | ||
26 | +#include <stdlib.h> | ||
27 | + | ||
28 | +#include <srs_protocol_rtmp.hpp> | ||
29 | + | ||
30 | +/** | ||
31 | +* the stream over epoll: never wait for data coming, that is async mode. | ||
32 | +*/ | ||
33 | +class SimpleSocketStream | ||
34 | +{ | ||
35 | +private: | ||
36 | + int sock; | ||
37 | +public: | ||
38 | + SimpleSocketStream(int fd){ | ||
39 | + sock = fd; | ||
40 | + } | ||
41 | + virtual ~SimpleSocketStream() { | ||
42 | + ::close(sock); | ||
43 | + } | ||
44 | +public: | ||
45 | +}; | ||
46 | + | ||
47 | +/** | ||
48 | +* export runtime context. | ||
49 | +*/ | ||
50 | +struct Context | ||
51 | +{ | ||
52 | + SrsRtmpClient* rtmp; | ||
53 | + SimpleSocketStream* stream; | ||
54 | + int stream_id; | ||
55 | + | ||
56 | + Context() { | ||
57 | + rtmp = NULL; | ||
58 | + stream = NULL; | ||
59 | + stream_id = 0; | ||
60 | + } | ||
61 | + virtual ~Context() { | ||
62 | + srs_freep(rtmp); | ||
63 | + srs_freep(stream); | ||
64 | + } | ||
65 | +}; | ||
66 | + | ||
67 | +#ifdef __cplusplus | ||
68 | +extern "C"{ | ||
69 | +#endif | ||
70 | + | ||
71 | +srs_rtmp_t srs_rtmp_create(){ | ||
72 | + Context* context = new Context(); | ||
73 | + return context; | ||
74 | +} | ||
75 | + | ||
76 | +void srs_rtmp_destroy(srs_rtmp_t rtmp){ | ||
77 | + srs_assert(rtmp != NULL); | ||
78 | + Context* context = (Context*)rtmp; | ||
79 | + srs_freep(context); | ||
80 | +} | ||
81 | + | ||
82 | +int srs_version_major() | ||
83 | +{ | ||
84 | + return ::atoi(VERSION_MAJOR); | ||
85 | +} | ||
86 | + | ||
87 | +int srs_version_minor() | ||
88 | +{ | ||
89 | + return ::atoi(VERSION_MINOR); | ||
90 | +} | ||
91 | + | ||
92 | +int srs_version_revision() | ||
93 | +{ | ||
94 | + return ::atoi(VERSION_REVISION); | ||
95 | +} | ||
96 | + | ||
97 | +#ifdef __cplusplus | ||
98 | +} | ||
99 | +#endif |
@@ -25,7 +25,36 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -25,7 +25,36 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
25 | #define SRS_LIB_RTMP_HPP | 25 | #define SRS_LIB_RTMP_HPP |
26 | 26 | ||
27 | /* | 27 | /* |
28 | -#include <srs_librtmp.hpp> | 28 | +#include <srs_librtmp.h> |
29 | */ | 29 | */ |
30 | 30 | ||
31 | +#ifdef __cplusplus | ||
32 | +extern "C"{ | ||
33 | +#endif | ||
34 | + | ||
35 | +// the output handler. | ||
36 | +typedef void* srs_rtmp_t; | ||
37 | + | ||
38 | +/** | ||
39 | +* create a rtmp protocol stack. | ||
40 | +* @return a rtmp handler, or NULL if error occured. | ||
41 | +*/ | ||
42 | +srs_rtmp_t srs_rtmp_create(); | ||
43 | + | ||
44 | +/** | ||
45 | +* close a rtmp protocl stack. | ||
46 | +*/ | ||
47 | +void srs_rtmp_destroy(srs_rtmp_t rtmp); | ||
48 | + | ||
49 | +/** | ||
50 | +* get protocol stack version | ||
51 | +*/ | ||
52 | +int srs_version_major(); | ||
53 | +int srs_version_minor(); | ||
54 | +int srs_version_revision(); | ||
55 | + | ||
56 | +#ifdef __cplusplus | ||
57 | +} | ||
58 | +#endif | ||
59 | + | ||
31 | #endif | 60 | #endif |
@@ -116,7 +116,7 @@ int SrsRequest::discovery_app() | @@ -116,7 +116,7 @@ int SrsRequest::discovery_app() | ||
116 | srs_verbose("discovery vhost=%s", vhost.c_str()); | 116 | srs_verbose("discovery vhost=%s", vhost.c_str()); |
117 | } | 117 | } |
118 | 118 | ||
119 | - port = RTMP_DEFAULT_PORTS; | 119 | + port = RTMP_DEFAULT_PORT; |
120 | if ((pos = vhost.find(":")) != std::string::npos) { | 120 | if ((pos = vhost.find(":")) != std::string::npos) { |
121 | port = vhost.substr(pos + 1); | 121 | port = vhost.substr(pos + 1); |
122 | vhost = vhost.substr(0, pos); | 122 | vhost = vhost.substr(0, pos); |
@@ -29,8 +29,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -29,8 +29,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
29 | */ | 29 | */ |
30 | #include <srs_core.hpp> | 30 | #include <srs_core.hpp> |
31 | 31 | ||
32 | -#define RTMP_DEFAULT_PORT 1935 | ||
33 | -#define RTMP_DEFAULT_PORTS "1935" | 32 | +#define RTMP_DEFAULT_PORT "1935" |
34 | 33 | ||
35 | // the default chunk size for system. | 34 | // the default chunk size for system. |
36 | #define SRS_CONF_DEFAULT_CHUNK_SIZE 60000 | 35 | #define SRS_CONF_DEFAULT_CHUNK_SIZE 60000 |
@@ -72,6 +72,7 @@ file | @@ -72,6 +72,7 @@ file | ||
72 | ..\app\srs_core_source.hpp, | 72 | ..\app\srs_core_source.hpp, |
73 | ..\app\srs_core_source.cpp, | 73 | ..\app\srs_core_source.cpp, |
74 | research readonly separator, | 74 | research readonly separator, |
75 | + ..\..\research\librtmp\srs_publish.c, | ||
75 | ..\..\research\hls\ts_info.cc; | 76 | ..\..\research\hls\ts_info.cc; |
76 | 77 | ||
77 | mainconfig | 78 | mainconfig |
-
请 注册 或 登录 后发表评论