正在显示
13 个修改的文件
包含
153 行增加
和
25 行删除
| @@ -42,19 +42,21 @@ echo "" >> $SRS_AUTO_HEADERS_H | @@ -42,19 +42,21 @@ echo "" >> $SRS_AUTO_HEADERS_H | ||
| 42 | echo "generate Makefile" | 42 | echo "generate Makefile" |
| 43 | SRS_MAKEFILE="Makefile" | 43 | SRS_MAKEFILE="Makefile" |
| 44 | cat << END > ${SRS_MAKEFILE} | 44 | cat << END > ${SRS_MAKEFILE} |
| 45 | -.PHONY: default help clean server bandwidth librtmp _prepare_dir | ||
| 46 | -default: server bandwidth librtmp | 45 | +.PHONY: default help clean server bandwidth librtmp librtmp-sample _prepare_dir |
| 46 | +default: server bandwidth librtmp librtmp-sample | ||
| 47 | 47 | ||
| 48 | help: | 48 | help: |
| 49 | - @echo "Usage: make <help>|<clean>|<server>|<bandwidth>|<librtmp>" | ||
| 50 | - @echo " help display this help menu" | ||
| 51 | - @echo " clean cleanup project" | ||
| 52 | - @echo " server build the srs(simple rtmp server) over st(state-threads)" | ||
| 53 | - @echo " bandwidth build the bandwidth test client tool." | ||
| 54 | - @echo " librtmp build the client publish/play library." | 49 | + @echo "Usage: make <help>|<clean>|<server>|<bandwidth>|<librtmp>|<librtmp-sample>" |
| 50 | + @echo " help display this help menu" | ||
| 51 | + @echo " clean cleanup project" | ||
| 52 | + @echo " server build the srs(simple rtmp server) over st(state-threads)" | ||
| 53 | + @echo " bandwidth build the bandwidth test client tool." | ||
| 54 | + @echo " librtmp build the client publish/play library." | ||
| 55 | + @echo " librtmp-sample build the srs-librtmp sample" | ||
| 55 | 56 | ||
| 56 | clean: | 57 | clean: |
| 57 | (rm -f Makefile; cd ${SRS_OBJS}; rm -rf srs bandwidth Makefile *.hpp src st_*_load research include lib) | 58 | (rm -f Makefile; cd ${SRS_OBJS}; rm -rf srs bandwidth Makefile *.hpp src st_*_load research include lib) |
| 59 | + (cd research/librtmp; make clean) | ||
| 58 | 60 | ||
| 59 | server: _prepare_dir | 61 | server: _prepare_dir |
| 60 | @echo "build the srs(simple rtmp server) over st(state-threads)" | 62 | @echo "build the srs(simple rtmp server) over st(state-threads)" |
| @@ -68,6 +70,11 @@ librtmp: _prepare_dir | @@ -68,6 +70,11 @@ librtmp: _prepare_dir | ||
| 68 | @echo "build the client publish/play library." | 70 | @echo "build the client publish/play library." |
| 69 | \$(MAKE) -f ${SRS_OBJS}/${SRS_MAKEFILE} librtmp | 71 | \$(MAKE) -f ${SRS_OBJS}/${SRS_MAKEFILE} librtmp |
| 70 | 72 | ||
| 73 | +librtmp-sample: | ||
| 74 | + @echo "build the srs-librtmp sample" | ||
| 75 | + (cd research/librtmp; make) | ||
| 76 | + @echo "srs-librtmp sample build success" | ||
| 77 | + | ||
| 71 | # the ./configure will generate it. | 78 | # the ./configure will generate it. |
| 72 | _prepare_dir: | 79 | _prepare_dir: |
| 73 | @mkdir -p ${SRS_OBJS} | 80 | @mkdir -p ${SRS_OBJS} |
| @@ -140,8 +147,7 @@ CORE_OBJS="${MODULE_OBJS[@]}" | @@ -140,8 +147,7 @@ CORE_OBJS="${MODULE_OBJS[@]}" | ||
| 140 | MODULE_ID="KERNEL" | 147 | MODULE_ID="KERNEL" |
| 141 | MODULE_DEPENDS=("CORE") | 148 | MODULE_DEPENDS=("CORE") |
| 142 | ModuleLibIncs=(${SRS_OBJS}) | 149 | ModuleLibIncs=(${SRS_OBJS}) |
| 143 | -MODULE_FILES=("srs_kernel_error" "srs_kernel_log" "srs_kernel_reload" "srs_kernel_stream" | ||
| 144 | - "srs_kernel_buffer") | 150 | +MODULE_FILES=("srs_kernel_error" "srs_kernel_log" "srs_kernel_stream" "srs_kernel_buffer") |
| 145 | MODULE_DIR="src/kernel" . auto/modules.sh | 151 | MODULE_DIR="src/kernel" . auto/modules.sh |
| 146 | KERNEL_OBJS="${MODULE_OBJS[@]}" | 152 | KERNEL_OBJS="${MODULE_OBJS[@]}" |
| 147 | # | 153 | # |
| @@ -161,7 +167,7 @@ ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${SRS_OBJS}) | @@ -161,7 +167,7 @@ ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${SRS_OBJS}) | ||
| 161 | MODULE_FILES=("srs_core_server" "srs_core_conn" "srs_core_client" "srs_core_socket" "srs_core_source" | 167 | MODULE_FILES=("srs_core_server" "srs_core_conn" "srs_core_client" "srs_core_socket" "srs_core_source" |
| 162 | "srs_core_codec" "srs_core_refer" "srs_core_hls" "srs_core_forward" "srs_core_encoder" | 168 | "srs_core_codec" "srs_core_refer" "srs_core_hls" "srs_core_forward" "srs_core_encoder" |
| 163 | "srs_core_http" "srs_core_thread" "srs_core_bandwidth" "srs_core_st" "srs_core_log" | 169 | "srs_core_http" "srs_core_thread" "srs_core_bandwidth" "srs_core_st" "srs_core_log" |
| 164 | - "srs_core_config" "srs_core_pithy_print") | 170 | + "srs_core_config" "srs_core_pithy_print" "srs_core_reload") |
| 165 | MODULE_DIR="src/app" . auto/modules.sh | 171 | MODULE_DIR="src/app" . auto/modules.sh |
| 166 | APP_OBJS="${MODULE_OBJS[@]}" | 172 | APP_OBJS="${MODULE_OBJS[@]}" |
| 167 | # | 173 | # |
| @@ -29,9 +29,33 @@ gcc srs_play.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_play | @@ -29,9 +29,33 @@ gcc srs_play.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_play | ||
| 29 | 29 | ||
| 30 | int main(int argc, char** argv) | 30 | int main(int argc, char** argv) |
| 31 | { | 31 | { |
| 32 | + srs_rtmp_t rtmp; | ||
| 33 | + | ||
| 32 | printf("suck rtmp stream like rtmpdump\n"); | 34 | printf("suck rtmp stream like rtmpdump\n"); |
| 33 | printf("srs(simple-rtmp-server) client librtmp library.\n"); | 35 | printf("srs(simple-rtmp-server) client librtmp library.\n"); |
| 34 | printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | 36 | printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); |
| 35 | 37 | ||
| 38 | + rtmp = srs_rtmp_create("rtmp://127.0.0.1/live/livestream"); | ||
| 39 | + | ||
| 40 | + if (srs_simple_handshake(rtmp) != 0) { | ||
| 41 | + printf("simple handshake failed.\n"); | ||
| 42 | + return -1; | ||
| 43 | + } | ||
| 44 | + printf("simple handshake success\n"); | ||
| 45 | + | ||
| 46 | + if (srs_connect_app(rtmp) != 0) { | ||
| 47 | + printf("connect vhost/app failed.\n"); | ||
| 48 | + return -1; | ||
| 49 | + } | ||
| 50 | + printf("connect vhost/app success\n"); | ||
| 51 | + | ||
| 52 | + if (srs_play_stream(rtmp) != 0) { | ||
| 53 | + printf("play stream failed.\n"); | ||
| 54 | + return -1; | ||
| 55 | + } | ||
| 56 | + printf("play stream success\n"); | ||
| 57 | + | ||
| 58 | + srs_rtmp_destroy(rtmp); | ||
| 59 | + | ||
| 36 | return 0; | 60 | return 0; |
| 37 | } | 61 | } |
| @@ -29,9 +29,33 @@ gcc srs_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_publish | @@ -29,9 +29,33 @@ gcc srs_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_publish | ||
| 29 | 29 | ||
| 30 | int main(int argc, char** argv) | 30 | int main(int argc, char** argv) |
| 31 | { | 31 | { |
| 32 | + srs_rtmp_t rtmp; | ||
| 33 | + | ||
| 32 | printf("publish rtmp stream to server like FMLE/FFMPEG/Encoder\n"); | 34 | printf("publish rtmp stream to server like FMLE/FFMPEG/Encoder\n"); |
| 33 | printf("srs(simple-rtmp-server) client librtmp library.\n"); | 35 | printf("srs(simple-rtmp-server) client librtmp library.\n"); |
| 34 | printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | 36 | printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); |
| 35 | 37 | ||
| 38 | + rtmp = srs_rtmp_create("rtmp://127.0.0.1/live/livestream"); | ||
| 39 | + | ||
| 40 | + if (srs_simple_handshake(rtmp) != 0) { | ||
| 41 | + printf("simple handshake failed.\n"); | ||
| 42 | + return -1; | ||
| 43 | + } | ||
| 44 | + printf("simple handshake success\n"); | ||
| 45 | + | ||
| 46 | + if (srs_connect_app(rtmp) != 0) { | ||
| 47 | + printf("connect vhost/app failed.\n"); | ||
| 48 | + return -1; | ||
| 49 | + } | ||
| 50 | + printf("connect vhost/app success\n"); | ||
| 51 | + | ||
| 52 | + if (srs_publish_stream(rtmp) != 0) { | ||
| 53 | + printf("publish stream failed.\n"); | ||
| 54 | + return -1; | ||
| 55 | + } | ||
| 56 | + printf("publish stream success\n"); | ||
| 57 | + | ||
| 58 | + srs_rtmp_destroy(rtmp); | ||
| 59 | + | ||
| 36 | return 0; | 60 | return 0; |
| 37 | } | 61 | } |
| @@ -32,7 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -32,7 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 32 | 32 | ||
| 33 | #include <srs_core_st.hpp> | 33 | #include <srs_core_st.hpp> |
| 34 | #include <srs_core_conn.hpp> | 34 | #include <srs_core_conn.hpp> |
| 35 | -#include <srs_kernel_reload.hpp> | 35 | +#include <srs_core_reload.hpp> |
| 36 | 36 | ||
| 37 | class SrsRtmp; | 37 | class SrsRtmp; |
| 38 | class SrsRequest; | 38 | class SrsRequest; |
| @@ -32,7 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -32,7 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 32 | #include <vector> | 32 | #include <vector> |
| 33 | #include <string> | 33 | #include <string> |
| 34 | 34 | ||
| 35 | -#include <srs_kernel_reload.hpp> | 35 | +#include <srs_core_reload.hpp> |
| 36 | 36 | ||
| 37 | // default vhost for rtmp | 37 | // default vhost for rtmp |
| 38 | #define RTMP_VHOST_DEFAULT "__defaultVhost__" | 38 | #define RTMP_VHOST_DEFAULT "__defaultVhost__" |
| @@ -28,7 +28,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -28,7 +28,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 28 | 28 | ||
| 29 | #include <srs_kernel_log.hpp> | 29 | #include <srs_kernel_log.hpp> |
| 30 | #include <srs_core_config.hpp> | 30 | #include <srs_core_config.hpp> |
| 31 | -#include <srs_kernel_reload.hpp> | 31 | +#include <srs_core_reload.hpp> |
| 32 | #include <srs_kernel_error.hpp> | 32 | #include <srs_kernel_error.hpp> |
| 33 | 33 | ||
| 34 | #define SRS_STAGE_DEFAULT_INTERVAL_MS 1200 | 34 | #define SRS_STAGE_DEFAULT_INTERVAL_MS 1200 |
| @@ -21,7 +21,7 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | @@ -21,7 +21,7 @@ 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. | 21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | -#include <srs_kernel_reload.hpp> | 24 | +#include <srs_core_reload.hpp> |
| 25 | 25 | ||
| 26 | using namespace std; | 26 | using namespace std; |
| 27 | 27 |
| @@ -25,7 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -25,7 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 25 | #define SRS_KERNEL_RELOAD_HPP | 25 | #define SRS_KERNEL_RELOAD_HPP |
| 26 | 26 | ||
| 27 | /* | 27 | /* |
| 28 | -#include <srs_kernel_reload.hpp> | 28 | +#include <srs_core_reload.hpp> |
| 29 | */ | 29 | */ |
| 30 | #include <srs_core.hpp> | 30 | #include <srs_core.hpp> |
| 31 | 31 |
| @@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 33 | #include <vector> | 33 | #include <vector> |
| 34 | 34 | ||
| 35 | #include <srs_core_st.hpp> | 35 | #include <srs_core_st.hpp> |
| 36 | -#include <srs_kernel_reload.hpp> | 36 | +#include <srs_core_reload.hpp> |
| 37 | #include <srs_core_thread.hpp> | 37 | #include <srs_core_thread.hpp> |
| 38 | 38 | ||
| 39 | class SrsServer; | 39 | class SrsServer; |
| @@ -35,7 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -35,7 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 35 | #include <string> | 35 | #include <string> |
| 36 | 36 | ||
| 37 | #include <srs_core_st.hpp> | 37 | #include <srs_core_st.hpp> |
| 38 | -#include <srs_kernel_reload.hpp> | 38 | +#include <srs_core_reload.hpp> |
| 39 | 39 | ||
| 40 | class SrsSource; | 40 | class SrsSource; |
| 41 | class SrsCommonMessage; | 41 | class SrsCommonMessage; |
| @@ -25,6 +25,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -25,6 +25,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 25 | 25 | ||
| 26 | #include <stdlib.h> | 26 | #include <stdlib.h> |
| 27 | 27 | ||
| 28 | +#include <string> | ||
| 29 | +using namespace std; | ||
| 30 | + | ||
| 31 | +#include <srs_kernel_error.hpp> | ||
| 28 | #include <srs_protocol_rtmp.hpp> | 32 | #include <srs_protocol_rtmp.hpp> |
| 29 | 33 | ||
| 30 | /** | 34 | /** |
| @@ -49,6 +53,7 @@ public: | @@ -49,6 +53,7 @@ public: | ||
| 49 | */ | 53 | */ |
| 50 | struct Context | 54 | struct Context |
| 51 | { | 55 | { |
| 56 | + std::string url; | ||
| 52 | SrsRtmpClient* rtmp; | 57 | SrsRtmpClient* rtmp; |
| 53 | SimpleSocketStream* stream; | 58 | SimpleSocketStream* stream; |
| 54 | int stream_id; | 59 | int stream_id; |
| @@ -68,8 +73,9 @@ struct Context | @@ -68,8 +73,9 @@ struct Context | ||
| 68 | extern "C"{ | 73 | extern "C"{ |
| 69 | #endif | 74 | #endif |
| 70 | 75 | ||
| 71 | -srs_rtmp_t srs_rtmp_create(){ | 76 | +srs_rtmp_t srs_rtmp_create(const char* url){ |
| 72 | Context* context = new Context(); | 77 | Context* context = new Context(); |
| 78 | + context->url = url; | ||
| 73 | return context; | 79 | return context; |
| 74 | } | 80 | } |
| 75 | 81 | ||
| @@ -79,6 +85,31 @@ void srs_rtmp_destroy(srs_rtmp_t rtmp){ | @@ -79,6 +85,31 @@ void srs_rtmp_destroy(srs_rtmp_t rtmp){ | ||
| 79 | srs_freep(context); | 85 | srs_freep(context); |
| 80 | } | 86 | } |
| 81 | 87 | ||
| 88 | +int srs_simple_handshake(srs_rtmp_t rtmp) | ||
| 89 | +{ | ||
| 90 | + return ERROR_SUCCESS; | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +int srs_complex_handshake(srs_rtmp_t rtmp) | ||
| 94 | +{ | ||
| 95 | + return ERROR_SUCCESS; | ||
| 96 | +} | ||
| 97 | + | ||
| 98 | +int srs_connect_app(srs_rtmp_t rtmp) | ||
| 99 | +{ | ||
| 100 | + return ERROR_SUCCESS; | ||
| 101 | +} | ||
| 102 | + | ||
| 103 | +int srs_play_stream(srs_rtmp_t rtmp) | ||
| 104 | +{ | ||
| 105 | + return ERROR_SUCCESS; | ||
| 106 | +} | ||
| 107 | + | ||
| 108 | +int srs_publish_stream(srs_rtmp_t rtmp) | ||
| 109 | +{ | ||
| 110 | + return ERROR_SUCCESS; | ||
| 111 | +} | ||
| 112 | + | ||
| 82 | int srs_version_major() | 113 | int srs_version_major() |
| 83 | { | 114 | { |
| 84 | return ::atoi(VERSION_MAJOR); | 115 | return ::atoi(VERSION_MAJOR); |
| @@ -36,15 +36,58 @@ extern "C"{ | @@ -36,15 +36,58 @@ extern "C"{ | ||
| 36 | typedef void* srs_rtmp_t; | 36 | typedef void* srs_rtmp_t; |
| 37 | 37 | ||
| 38 | /** | 38 | /** |
| 39 | -* create a rtmp protocol stack. | 39 | +* create/destroy a rtmp protocol stack. |
| 40 | +* @url rtmp url, for example: | ||
| 41 | +* rtmp://127.0.0.1/live/livestream | ||
| 40 | * @return a rtmp handler, or NULL if error occured. | 42 | * @return a rtmp handler, or NULL if error occured. |
| 41 | */ | 43 | */ |
| 42 | -srs_rtmp_t srs_rtmp_create(); | 44 | +srs_rtmp_t srs_rtmp_create(const char* url); |
| 45 | +void srs_rtmp_destroy(srs_rtmp_t rtmp); | ||
| 43 | 46 | ||
| 44 | /** | 47 | /** |
| 45 | -* close a rtmp protocl stack. | 48 | +* handshake with server |
| 49 | +* category: publish/play | ||
| 50 | +* previous: rtmp-create | ||
| 51 | +* next: connect-app | ||
| 52 | +* @return 0, success; otherwise, failed. | ||
| 46 | */ | 53 | */ |
| 47 | -void srs_rtmp_destroy(srs_rtmp_t rtmp); | 54 | +/** |
| 55 | +* simple handshake specifies in rtmp 1.0, | ||
| 56 | +* not depends on ssl. | ||
| 57 | +*/ | ||
| 58 | +int srs_simple_handshake(srs_rtmp_t rtmp); | ||
| 59 | +/** | ||
| 60 | +* complex handshake is specified by adobe Flash player, | ||
| 61 | +* depends on ssl, user must link libssl.a and libcrypt.a | ||
| 62 | +*/ | ||
| 63 | +int srs_complex_handshake(srs_rtmp_t rtmp); | ||
| 64 | + | ||
| 65 | +/** | ||
| 66 | +* connect to rtmp vhost/app | ||
| 67 | +* category: publish/play | ||
| 68 | +* previous: handshake | ||
| 69 | +* next: publish or play | ||
| 70 | +* @return 0, success; otherwise, failed. | ||
| 71 | +*/ | ||
| 72 | +int srs_connect_app(srs_rtmp_t rtmp); | ||
| 73 | + | ||
| 74 | +/** | ||
| 75 | +* play a live/vod stream. | ||
| 76 | +* category: play | ||
| 77 | +* previous: connect-app | ||
| 78 | +* next: destroy | ||
| 79 | +* @return 0, success; otherwise, failed. | ||
| 80 | +*/ | ||
| 81 | +int srs_play_stream(srs_rtmp_t rtmp); | ||
| 82 | + | ||
| 83 | +/** | ||
| 84 | +* publish a live stream. | ||
| 85 | +* category: publish | ||
| 86 | +* previous: connect-app | ||
| 87 | +* next: destroy | ||
| 88 | +* @return 0, success; otherwise, failed. | ||
| 89 | +*/ | ||
| 90 | +int srs_publish_stream(srs_rtmp_t rtmp); | ||
| 48 | 91 | ||
| 49 | /** | 92 | /** |
| 50 | * get protocol stack version | 93 | * get protocol stack version |
| @@ -19,8 +19,6 @@ file | @@ -19,8 +19,6 @@ file | ||
| 19 | ..\kernel\srs_kernel_error.cpp, | 19 | ..\kernel\srs_kernel_error.cpp, |
| 20 | ..\kernel\srs_kernel_log.hpp, | 20 | ..\kernel\srs_kernel_log.hpp, |
| 21 | ..\kernel\srs_kernel_log.cpp, | 21 | ..\kernel\srs_kernel_log.cpp, |
| 22 | - ..\kernel\srs_kernel_reload.hpp, | ||
| 23 | - ..\kernel\srs_kernel_reload.cpp, | ||
| 24 | ..\kernel\srs_kernel_stream.hpp, | 22 | ..\kernel\srs_kernel_stream.hpp, |
| 25 | ..\kernel\srs_kernel_stream.cpp, | 23 | ..\kernel\srs_kernel_stream.cpp, |
| 26 | rtmp-protocol readonly separator, | 24 | rtmp-protocol readonly separator, |
| @@ -59,6 +57,8 @@ file | @@ -59,6 +57,8 @@ file | ||
| 59 | ..\app\srs_core_log.cpp, | 57 | ..\app\srs_core_log.cpp, |
| 60 | ..\app\srs_core_refer.hpp, | 58 | ..\app\srs_core_refer.hpp, |
| 61 | ..\app\srs_core_refer.cpp, | 59 | ..\app\srs_core_refer.cpp, |
| 60 | + ..\app\srs_core_reload.hpp, | ||
| 61 | + ..\app\srs_core_reload.cpp, | ||
| 62 | ..\app\srs_core_pithy_print.hpp, | 62 | ..\app\srs_core_pithy_print.hpp, |
| 63 | ..\app\srs_core_pithy_print.cpp, | 63 | ..\app\srs_core_pithy_print.cpp, |
| 64 | ..\app\srs_core_thread.hpp, | 64 | ..\app\srs_core_thread.hpp, |
-
请 注册 或 登录 后发表评论