remove flashP2P hss dvr, for it's a can-not-run feature. 0.9.178
正在显示
11 个修改的文件
包含
3 行增加
和
598 行删除
| @@ -46,9 +46,7 @@ SRS supports [vhost](https://github.com/winlinvip/simple-rtmp-server/wiki/RtmpUr | @@ -46,9 +46,7 @@ SRS supports [vhost](https://github.com/winlinvip/simple-rtmp-server/wiki/RtmpUr | ||
| 46 | rtmp([encoder push](https://github.com/winlinvip/simple-rtmp-server/wiki/DeliveryRTMP), client/[edge](https://github.com/winlinvip/simple-rtmp-server/wiki/Edge) pull), [ingester(srs pull)](https://github.com/winlinvip/simple-rtmp-server/wiki/Ingest), | 46 | rtmp([encoder push](https://github.com/winlinvip/simple-rtmp-server/wiki/DeliveryRTMP), client/[edge](https://github.com/winlinvip/simple-rtmp-server/wiki/Edge) pull), [ingester(srs pull)](https://github.com/winlinvip/simple-rtmp-server/wiki/Ingest), |
| 47 | [HLS](https://github.com/winlinvip/simple-rtmp-server/wiki/DeliveryHLS), [HLS audio only](https://github.com/winlinvip/simple-rtmp-server/wiki/DeliveryHLS#hlsaudioonly), [transcoding](https://github.com/winlinvip/simple-rtmp-server/wiki/FFMPEG), | 47 | [HLS](https://github.com/winlinvip/simple-rtmp-server/wiki/DeliveryHLS), [HLS audio only](https://github.com/winlinvip/simple-rtmp-server/wiki/DeliveryHLS#hlsaudioonly), [transcoding](https://github.com/winlinvip/simple-rtmp-server/wiki/FFMPEG), |
| 48 | [forward](https://github.com/winlinvip/simple-rtmp-server/wiki/FFMPEG), [http hooks](https://github.com/winlinvip/simple-rtmp-server/wiki/HTTPCallback), [http api](https://github.com/winlinvip/simple-rtmp-server/wiki/HTTPApi), | 48 | [forward](https://github.com/winlinvip/simple-rtmp-server/wiki/FFMPEG), [http hooks](https://github.com/winlinvip/simple-rtmp-server/wiki/HTTPCallback), [http api](https://github.com/winlinvip/simple-rtmp-server/wiki/HTTPApi), |
| 49 | -[http server](https://github.com/winlinvip/simple-rtmp-server/wiki/HTTPServer), [dvr](https://github.com/winlinvip/simple-rtmp-server/wiki/DVR), [FlashP2P](https://github.com/winlinvip/simple-rtmp-server/wiki/FlashP2P). | ||
| 50 | - | ||
| 51 | -注意:FlashP2P系统为[chnvideo.com](http://www.chnvideo.com)商业方案,SRS只是支持对接。 | 49 | +[http server](https://github.com/winlinvip/simple-rtmp-server/wiki/HTTPServer), [dvr](https://github.com/winlinvip/simple-rtmp-server/wiki/DVR). |
| 52 | 50 | ||
| 53 | Release: [http://winlinvip.github.io/srs.release](http://winlinvip.github.io/srs.release) <br/> | 51 | Release: [http://winlinvip.github.io/srs.release](http://winlinvip.github.io/srs.release) <br/> |
| 54 | Blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/> | 52 | Blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/> |
| @@ -266,7 +264,6 @@ Supported operating systems and hardware: | @@ -266,7 +264,6 @@ Supported operating systems and hardware: | ||
| 266 | * v1.0, 2014-04-28, support full edge RTMP server. 0.9.79 | 264 | * v1.0, 2014-04-28, support full edge RTMP server. 0.9.79 |
| 267 | * v1.0, 2014-04-27, support basic edge(play/publish) RTMP server. 0.9.78 | 265 | * v1.0, 2014-04-27, support basic edge(play/publish) RTMP server. 0.9.78 |
| 268 | * v1.0, 2014-04-25, add donation page. 0.9.76 | 266 | * v1.0, 2014-04-25, add donation page. 0.9.76 |
| 269 | -* v1.0, 2014-04-24, support live flashP2P(integrated by chnvideo VDN). 0.9.75 | ||
| 270 | * v1.0, 2014-04-21, support android app to start srs for internal edge. 0.9.72 | 267 | * v1.0, 2014-04-21, support android app to start srs for internal edge. 0.9.72 |
| 271 | * v1.0, 2014-04-19, support tool over srs-librtmp to ingest flv/rtmp. 0.9.71 | 268 | * v1.0, 2014-04-19, support tool over srs-librtmp to ingest flv/rtmp. 0.9.71 |
| 272 | * v1.0, 2014-04-17, support dvr(record live to flv file for vod). 0.9.69 | 269 | * v1.0, 2014-04-17, support dvr(record live to flv file for vod). 0.9.69 |
| @@ -582,22 +579,6 @@ Remark: | @@ -582,22 +579,6 @@ Remark: | ||
| 582 | cli analysis and summary the data, return to user. | 579 | cli analysis and summary the data, return to user. |
| 583 | </pre> | 580 | </pre> |
| 584 | 581 | ||
| 585 | -### Live FlashP2P | ||
| 586 | - | ||
| 587 | -<pre> | ||
| 588 | - +--DVR------>-(flv file) | ||
| 589 | -+----------+ +-----+ | | ||
| 590 | -| encoder +--RTMP-->-+ SRS +-->--+ | ||
| 591 | -+----------+ +-----+ | | ||
| 592 | - | +------------+ | ||
| 593 | - +---HTTP-->-+ P2P system + | ||
| 594 | - callback +------------+ | ||
| 595 | -</pre> | ||
| 596 | - | ||
| 597 | -Remark: P2P system provides by [chnvideo.com](http://www.chnvideo.com) | ||
| 598 | - | ||
| 599 | -注意:FlashP2P系统为[chnvideo.com](http://www.chnvideo.com)商业方案,SRS只是支持对接。 | ||
| 600 | - | ||
| 601 | ### Bandwidth Test Workflow | 582 | ### Bandwidth Test Workflow |
| 602 | 583 | ||
| 603 | <pre> | 584 | <pre> |
| @@ -179,8 +179,6 @@ vhost dvr.srs.com { | @@ -179,8 +179,6 @@ vhost dvr.srs.com { | ||
| 179 | # dvr RTMP stream to file, | 179 | # dvr RTMP stream to file, |
| 180 | # start to record to file when encoder publish, | 180 | # start to record to file when encoder publish, |
| 181 | # reap flv according by specified dvr_plan. | 181 | # reap flv according by specified dvr_plan. |
| 182 | - # http callbacks: | ||
| 183 | - # @see http callback on_dvr_hss_reap_flv on http_hooks section. | ||
| 184 | dvr { | 182 | dvr { |
| 185 | # whether enabled dvr features | 183 | # whether enabled dvr features |
| 186 | # default: off | 184 | # default: off |
| @@ -200,7 +198,6 @@ vhost dvr.srs.com { | @@ -200,7 +198,6 @@ vhost dvr.srs.com { | ||
| 200 | # the dvr plan. canbe: | 198 | # the dvr plan. canbe: |
| 201 | # session reap flv when session end(unpublish). | 199 | # session reap flv when session end(unpublish). |
| 202 | # segment reap flv when flv duration exceed the specified dvr_duration. | 200 | # segment reap flv when flv duration exceed the specified dvr_duration. |
| 203 | - # hss reap flv required by bravo(chnvideo.com) p2p system. | ||
| 204 | # default: session | 201 | # default: session |
| 205 | dvr_plan session; | 202 | dvr_plan session; |
| 206 | # the param for plan(segment), in seconds. | 203 | # the param for plan(segment), in seconds. |
| @@ -405,38 +402,6 @@ vhost hooks.callback.srs.com { | @@ -405,38 +402,6 @@ vhost hooks.callback.srs.com { | ||
| 405 | # support multiple api hooks, format: | 402 | # support multiple api hooks, format: |
| 406 | # on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN | 403 | # on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN |
| 407 | on_stop http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions; | 404 | on_stop http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions; |
| 408 | - # | ||
| 409 | - # for dvr(dvr_plan is hss). | ||
| 410 | - # when dvr got flv header, call the hook, | ||
| 411 | - # the request in the POST data string is a object encode by json: | ||
| 412 | - # { | ||
| 413 | - # "action": "on_dvr_hss_reap_flv_header", | ||
| 414 | - # "vhost": "video.test.com", "app": "live", | ||
| 415 | - # "stream": "livestream", | ||
| 416 | - # "segment": { | ||
| 417 | - # "cwd": "/usr/local/srs", | ||
| 418 | - # "path": "./objs/nginx/html/live/livestream.header.flv" | ||
| 419 | - # } | ||
| 420 | - # } | ||
| 421 | - # when dvr reap flv file, call the hook, | ||
| 422 | - # the request in the POST data string is a object encode by json: | ||
| 423 | - # { | ||
| 424 | - # "action": "on_dvr_hss_reap_flv", | ||
| 425 | - # "vhost": "video.test.com", "app": "live", | ||
| 426 | - # "stream": "livestream", | ||
| 427 | - # "segment": { | ||
| 428 | - # "cwd": "/usr/local/srs", | ||
| 429 | - # "path": "./objs/nginx/html/live/livestream.1398315892865.flv", | ||
| 430 | - # "duration": 1001, "offset":0, | ||
| 431 | - # "has_keyframe": true, "pts":1398315895958 | ||
| 432 | - # } | ||
| 433 | - # } | ||
| 434 | - # if valid, the hook must return HTTP code 200(Stauts OK) and response | ||
| 435 | - # an int value specifies the error code(0 corresponding to success): | ||
| 436 | - # 0 | ||
| 437 | - # support multiple api hooks, format: | ||
| 438 | - # on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN | ||
| 439 | - on_dvr_hss_reap_flv http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs; | ||
| 440 | } | 405 | } |
| 441 | } | 406 | } |
| 442 | 407 |
| @@ -325,56 +325,6 @@ class RESTSessions(object): | @@ -325,56 +325,6 @@ class RESTSessions(object): | ||
| 325 | # TODO: process the on_stop event | 325 | # TODO: process the on_stop event |
| 326 | 326 | ||
| 327 | return code | 327 | return code |
| 328 | - | ||
| 329 | -# the rest dvrs, when dvr got keyframe, call this api. | ||
| 330 | -class RESTDvrs(object): | ||
| 331 | - exposed = True | ||
| 332 | - def __init__(self): | ||
| 333 | - pass | ||
| 334 | - # the dvrs POST api specified in following. | ||
| 335 | - # | ||
| 336 | - # when dvr got an keyframe, call the hook, | ||
| 337 | - # the request in the POST data string is a object encode by json: | ||
| 338 | - # { | ||
| 339 | - # "action": "on_dvr_keyframe", | ||
| 340 | - # "vhost": "video.test.com", "app": "live", | ||
| 341 | - # "stream": "livestream" | ||
| 342 | - # } | ||
| 343 | - # | ||
| 344 | - # if valid, the hook must return HTTP code 200(Stauts OK) and response | ||
| 345 | - # an int value specifies the error code(0 corresponding to success): | ||
| 346 | - # 0 | ||
| 347 | - def POST(self): | ||
| 348 | - enable_crossdomain() | ||
| 349 | - | ||
| 350 | - req = cherrypy.request.body.read() | ||
| 351 | - trace("post to sessions, req=%s"%(req)) | ||
| 352 | - try: | ||
| 353 | - json_req = json.loads(req) | ||
| 354 | - except Exception, ex: | ||
| 355 | - code = Error.system_parse_json | ||
| 356 | - trace("parse the request to json failed, req=%s, ex=%s, code=%s"%(req, ex, code)) | ||
| 357 | - return str(code) | ||
| 358 | - | ||
| 359 | - action = json_req["action"] | ||
| 360 | - if action == "on_dvr_keyframe": | ||
| 361 | - code = self.__on_dvr_keyframe(json_req) | ||
| 362 | - else: | ||
| 363 | - code = Errors.request_invalid_action | ||
| 364 | - trace("invalid request action: %s, code=%s"%(json_req["action"], code)) | ||
| 365 | - | ||
| 366 | - return str(code) | ||
| 367 | - | ||
| 368 | - def __on_dvr_keyframe(self, req): | ||
| 369 | - code = Error.success | ||
| 370 | - | ||
| 371 | - trace("srs %s: vhost=%s, app=%s, stream=%s"%( | ||
| 372 | - req["action"], req["vhost"], req["app"], req["stream"] | ||
| 373 | - )) | ||
| 374 | - | ||
| 375 | - # TODO: process the on_dvr_keyframe event | ||
| 376 | - | ||
| 377 | - return code | ||
| 378 | 328 | ||
| 379 | global_arm_server_id = os.getpid(); | 329 | global_arm_server_id = os.getpid(); |
| 380 | class ArmServer: | 330 | class ArmServer: |
| @@ -1088,7 +1038,6 @@ class V1(object): | @@ -1088,7 +1038,6 @@ class V1(object): | ||
| 1088 | self.clients = RESTClients() | 1038 | self.clients = RESTClients() |
| 1089 | self.streams = RESTStreams() | 1039 | self.streams = RESTStreams() |
| 1090 | self.sessions = RESTSessions() | 1040 | self.sessions = RESTSessions() |
| 1091 | - self.dvrs = RESTDvrs() | ||
| 1092 | self.chats = RESTChats() | 1041 | self.chats = RESTChats() |
| 1093 | self.servers = RESTServers() | 1042 | self.servers = RESTServers() |
| 1094 | self.nodes = RESTNodes() | 1043 | self.nodes = RESTNodes() |
| @@ -1333,7 +1333,7 @@ int SrsConfig::check_config() | @@ -1333,7 +1333,7 @@ int SrsConfig::check_config() | ||
| 1333 | for (int j = 0; j < (int)conf0->directives.size(); j++) { | 1333 | for (int j = 0; j < (int)conf0->directives.size(); j++) { |
| 1334 | string m = conf0->at(j)->name.c_str(); | 1334 | string m = conf0->at(j)->name.c_str(); |
| 1335 | if (m != "enabled" && m != "on_connect" && m != "on_close" && m != "on_publish" | 1335 | if (m != "enabled" && m != "on_connect" && m != "on_close" && m != "on_publish" |
| 1336 | - && m != "on_unpublish" && m != "on_play" && m != "on_stop" && m != "on_dvr_hss_reap_flv" | 1336 | + && m != "on_unpublish" && m != "on_play" && m != "on_stop" |
| 1337 | ) { | 1337 | ) { |
| 1338 | ret = ERROR_SYSTEM_CONFIG_INVALID; | 1338 | ret = ERROR_SYSTEM_CONFIG_INVALID; |
| 1339 | srs_error("unsupported vhost http_hooks directive %s, ret=%d", m.c_str(), ret); | 1339 | srs_error("unsupported vhost http_hooks directive %s, ret=%d", m.c_str(), ret); |
| @@ -2096,17 +2096,6 @@ SrsConfDirective* SrsConfig::get_vhost_on_stop(string vhost) | @@ -2096,17 +2096,6 @@ SrsConfDirective* SrsConfig::get_vhost_on_stop(string vhost) | ||
| 2096 | return conf->get("on_stop"); | 2096 | return conf->get("on_stop"); |
| 2097 | } | 2097 | } |
| 2098 | 2098 | ||
| 2099 | -SrsConfDirective* SrsConfig::get_vhost_on_dvr_hss_reap_flv(string vhost) | ||
| 2100 | -{ | ||
| 2101 | - SrsConfDirective* conf = get_vhost_http_hooks(vhost); | ||
| 2102 | - | ||
| 2103 | - if (!conf) { | ||
| 2104 | - return NULL; | ||
| 2105 | - } | ||
| 2106 | - | ||
| 2107 | - return conf->get("on_dvr_hss_reap_flv"); | ||
| 2108 | -} | ||
| 2109 | - | ||
| 2110 | bool SrsConfig::get_bw_check_enabled(string vhost) | 2099 | bool SrsConfig::get_bw_check_enabled(string vhost) |
| 2111 | { | 2100 | { |
| 2112 | SrsConfDirective* conf = get_vhost(vhost); | 2101 | SrsConfDirective* conf = get_vhost(vhost); |
| @@ -51,8 +51,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -51,8 +51,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 51 | #define SRS_CONF_DEFAULT_DVR_PATH "./objs/nginx/html" | 51 | #define SRS_CONF_DEFAULT_DVR_PATH "./objs/nginx/html" |
| 52 | #define SRS_CONF_DEFAULT_DVR_PLAN_SESSION "session" | 52 | #define SRS_CONF_DEFAULT_DVR_PLAN_SESSION "session" |
| 53 | #define SRS_CONF_DEFAULT_DVR_PLAN_SEGMENT "segment" | 53 | #define SRS_CONF_DEFAULT_DVR_PLAN_SEGMENT "segment" |
| 54 | -// chnvideo hss | ||
| 55 | -#define SRS_CONF_DEFAULT_DVR_PLAN_HSS "hss" | ||
| 56 | #define SRS_CONF_DEFAULT_DVR_PLAN SRS_CONF_DEFAULT_DVR_PLAN_SESSION | 54 | #define SRS_CONF_DEFAULT_DVR_PLAN SRS_CONF_DEFAULT_DVR_PLAN_SESSION |
| 57 | #define SRS_CONF_DEFAULT_DVR_DURATION 30 | 55 | #define SRS_CONF_DEFAULT_DVR_DURATION 30 |
| 58 | #define SRS_CONF_DEFAULT_TIME_JITTER "full" | 56 | #define SRS_CONF_DEFAULT_TIME_JITTER "full" |
| @@ -566,11 +564,6 @@ public: | @@ -566,11 +564,6 @@ public: | ||
| 566 | * @return the on_stop callback directive, the args is the url to callback. | 564 | * @return the on_stop callback directive, the args is the url to callback. |
| 567 | */ | 565 | */ |
| 568 | virtual SrsConfDirective* get_vhost_on_stop(std::string vhost); | 566 | virtual SrsConfDirective* get_vhost_on_stop(std::string vhost); |
| 569 | - /** | ||
| 570 | - * get the on_dvr_hss_reap_flv callbacks of vhost. | ||
| 571 | - * @return the on_dvr_hss_reap_flv callback directive, the args is the url to callback. | ||
| 572 | - */ | ||
| 573 | - virtual SrsConfDirective* get_vhost_on_dvr_hss_reap_flv(std::string vhost); | ||
| 574 | // bwct(bandwidth check tool) section | 567 | // bwct(bandwidth check tool) section |
| 575 | public: | 568 | public: |
| 576 | /** | 569 | /** |
| @@ -318,12 +318,6 @@ int SrsDvrPlan::flv_close() | @@ -318,12 +318,6 @@ int SrsDvrPlan::flv_close() | ||
| 318 | return ret; | 318 | return ret; |
| 319 | } | 319 | } |
| 320 | 320 | ||
| 321 | -#ifdef SRS_AUTO_HTTP_CALLBACK | ||
| 322 | - if ((ret = on_dvr_hss_reap_flv()) != ERROR_SUCCESS) { | ||
| 323 | - return ret; | ||
| 324 | - } | ||
| 325 | -#endif | ||
| 326 | - | ||
| 327 | return ret; | 321 | return ret; |
| 328 | } | 322 | } |
| 329 | 323 | ||
| @@ -366,29 +360,6 @@ int SrsDvrPlan::write_flv_header() | @@ -366,29 +360,6 @@ int SrsDvrPlan::write_flv_header() | ||
| 366 | return ret; | 360 | return ret; |
| 367 | } | 361 | } |
| 368 | 362 | ||
| 369 | -int SrsDvrPlan::on_dvr_hss_reap_flv() | ||
| 370 | -{ | ||
| 371 | - int ret = ERROR_SUCCESS; | ||
| 372 | - | ||
| 373 | -#ifdef SRS_AUTO_HTTP_CALLBACK | ||
| 374 | - if (!_srs_config->get_vhost_http_hooks_enabled(_req->vhost)) { | ||
| 375 | - // HTTP: on_dvr_hss_reap_flv | ||
| 376 | - SrsConfDirective* on_dvr_hss_reap_flv = _srs_config->get_vhost_on_dvr_hss_reap_flv(_req->vhost); | ||
| 377 | - if (!on_dvr_hss_reap_flv) { | ||
| 378 | - srs_info("ignore the empty http callback: on_dvr_hss_reap_flv"); | ||
| 379 | - return ret; | ||
| 380 | - } | ||
| 381 | - | ||
| 382 | - for (int i = 0; i < (int)on_dvr_hss_reap_flv->args.size(); i++) { | ||
| 383 | - std::string url = on_dvr_hss_reap_flv->args.at(i); | ||
| 384 | - SrsHttpHooks::on_dvr_hss_reap_flv(url, _req, segment); | ||
| 385 | - } | ||
| 386 | - } | ||
| 387 | -#endif | ||
| 388 | - | ||
| 389 | - return ret; | ||
| 390 | -} | ||
| 391 | - | ||
| 392 | SrsDvrPlan* SrsDvrPlan::create_plan(string vhost) | 363 | SrsDvrPlan* SrsDvrPlan::create_plan(string vhost) |
| 393 | { | 364 | { |
| 394 | std::string plan = _srs_config->get_dvr_plan(vhost); | 365 | std::string plan = _srs_config->get_dvr_plan(vhost); |
| @@ -396,8 +367,6 @@ SrsDvrPlan* SrsDvrPlan::create_plan(string vhost) | @@ -396,8 +367,6 @@ SrsDvrPlan* SrsDvrPlan::create_plan(string vhost) | ||
| 396 | return new SrsDvrSegmentPlan(); | 367 | return new SrsDvrSegmentPlan(); |
| 397 | } else if (plan == SRS_CONF_DEFAULT_DVR_PLAN_SESSION) { | 368 | } else if (plan == SRS_CONF_DEFAULT_DVR_PLAN_SESSION) { |
| 398 | return new SrsDvrSessionPlan(); | 369 | return new SrsDvrSessionPlan(); |
| 399 | - } else if (plan == SRS_CONF_DEFAULT_DVR_PLAN_HSS) { | ||
| 400 | - return new SrsDvrHssPlan(); | ||
| 401 | } else { | 370 | } else { |
| 402 | return new SrsDvrSessionPlan(); | 371 | return new SrsDvrSessionPlan(); |
| 403 | } | 372 | } |
| @@ -502,208 +471,6 @@ int SrsDvrSegmentPlan::update_duration(SrsSharedPtrMessage* msg) | @@ -502,208 +471,6 @@ int SrsDvrSegmentPlan::update_duration(SrsSharedPtrMessage* msg) | ||
| 502 | return ret; | 471 | return ret; |
| 503 | } | 472 | } |
| 504 | 473 | ||
| 505 | -SrsDvrHssPlan::SrsDvrHssPlan() | ||
| 506 | -{ | ||
| 507 | - segment_duration = -1; | ||
| 508 | - expect_reap_time = 0; | ||
| 509 | -} | ||
| 510 | - | ||
| 511 | -SrsDvrHssPlan::~SrsDvrHssPlan() | ||
| 512 | -{ | ||
| 513 | -} | ||
| 514 | - | ||
| 515 | -int SrsDvrHssPlan::initialize(SrsSource* source, SrsRequest* req) | ||
| 516 | -{ | ||
| 517 | - int ret = ERROR_SUCCESS; | ||
| 518 | - | ||
| 519 | - if ((ret = SrsDvrPlan::initialize(source, req)) != ERROR_SUCCESS) { | ||
| 520 | - return ret; | ||
| 521 | - } | ||
| 522 | - | ||
| 523 | - // TODO: FIXME: support reload | ||
| 524 | - segment_duration = _srs_config->get_dvr_duration(req->vhost); | ||
| 525 | - // to ms | ||
| 526 | - segment_duration *= 1000; | ||
| 527 | - | ||
| 528 | - return ret; | ||
| 529 | -} | ||
| 530 | - | ||
| 531 | -int SrsDvrHssPlan::on_publish() | ||
| 532 | -{ | ||
| 533 | - int ret = ERROR_SUCCESS; | ||
| 534 | - | ||
| 535 | - // if already opened, continue to dvr. | ||
| 536 | - // the segment plan maybe keep running longer than the encoder. | ||
| 537 | - // for example, segment running, encoder restart, | ||
| 538 | - // the segment plan will just continue going and donot open new segment. | ||
| 539 | - if (fs->is_open()) { | ||
| 540 | - dvr_enabled = true; | ||
| 541 | - return ret; | ||
| 542 | - } | ||
| 543 | - | ||
| 544 | - if ((ret = SrsDvrPlan::on_publish()) != ERROR_SUCCESS) { | ||
| 545 | - return ret; | ||
| 546 | - } | ||
| 547 | - | ||
| 548 | - // expect reap flv time | ||
| 549 | - expect_reap_time = segment->stream_starttime + segment_duration; | ||
| 550 | - | ||
| 551 | - return ret; | ||
| 552 | -} | ||
| 553 | - | ||
| 554 | -void SrsDvrHssPlan::on_unpublish() | ||
| 555 | -{ | ||
| 556 | - // support multiple publish. | ||
| 557 | - if (!dvr_enabled) { | ||
| 558 | - return; | ||
| 559 | - } | ||
| 560 | - dvr_enabled = false; | ||
| 561 | -} | ||
| 562 | - | ||
| 563 | -int SrsDvrHssPlan::on_meta_data(SrsOnMetaDataPacket* metadata) | ||
| 564 | -{ | ||
| 565 | - int ret = ERROR_SUCCESS; | ||
| 566 | - | ||
| 567 | - SrsRequest* req = _req; | ||
| 568 | - | ||
| 569 | - // new flv file | ||
| 570 | - std::stringstream path; | ||
| 571 | - path << _srs_config->get_dvr_path(req->vhost) | ||
| 572 | - << "/" << req->app << "/" | ||
| 573 | - << req->stream << ".header.flv"; | ||
| 574 | - | ||
| 575 | - SrsFileWriter fs; | ||
| 576 | - if ((ret = fs.open(path.str().c_str())) != ERROR_SUCCESS) { | ||
| 577 | - return ret; | ||
| 578 | - } | ||
| 579 | - | ||
| 580 | - SrsFlvEncoder enc; | ||
| 581 | - if ((ret = enc.initialize(&fs)) != ERROR_SUCCESS) { | ||
| 582 | - return ret; | ||
| 583 | - } | ||
| 584 | - | ||
| 585 | - if ((ret = enc.write_header()) != ERROR_SUCCESS) { | ||
| 586 | - return ret; | ||
| 587 | - } | ||
| 588 | - | ||
| 589 | - int size = 0; | ||
| 590 | - char* payload = NULL; | ||
| 591 | - if ((ret = metadata->encode(size, payload)) != ERROR_SUCCESS) { | ||
| 592 | - return ret; | ||
| 593 | - } | ||
| 594 | - SrsAutoFree(char, payload); | ||
| 595 | - | ||
| 596 | - if ((ret = enc.write_metadata(payload, size)) != ERROR_SUCCESS) { | ||
| 597 | - return ret; | ||
| 598 | - } | ||
| 599 | - | ||
| 600 | -#ifdef SRS_AUTO_HTTP_CALLBACK | ||
| 601 | - if ((ret = on_dvr_hss_reap_flv_header(path.str())) != ERROR_SUCCESS) { | ||
| 602 | - return ret; | ||
| 603 | - } | ||
| 604 | -#endif | ||
| 605 | - | ||
| 606 | - return ret; | ||
| 607 | -} | ||
| 608 | - | ||
| 609 | -int SrsDvrHssPlan::write_flv_header() | ||
| 610 | -{ | ||
| 611 | - int ret = ERROR_SUCCESS; | ||
| 612 | - return ret; | ||
| 613 | -} | ||
| 614 | - | ||
| 615 | -int SrsDvrHssPlan::on_dvr_request_sh() | ||
| 616 | -{ | ||
| 617 | - int ret = ERROR_SUCCESS; | ||
| 618 | - return ret; | ||
| 619 | -} | ||
| 620 | - | ||
| 621 | -int SrsDvrHssPlan::on_video_keyframe() | ||
| 622 | -{ | ||
| 623 | - int ret = ERROR_SUCCESS; | ||
| 624 | - | ||
| 625 | - segment->sequence_header_offset = fs->tellg(); | ||
| 626 | - if ((ret = SrsDvrPlan::on_dvr_request_sh()) != ERROR_SUCCESS) { | ||
| 627 | - return ret; | ||
| 628 | - } | ||
| 629 | - | ||
| 630 | - return ret; | ||
| 631 | -} | ||
| 632 | - | ||
| 633 | -int64_t SrsDvrHssPlan::filter_timestamp(int64_t timestamp) | ||
| 634 | -{ | ||
| 635 | - //return timestamp; | ||
| 636 | - srs_assert(segment); | ||
| 637 | - srs_verbose("filter timestamp from %"PRId64" to %"PRId64, timestamp, segment->stream_starttime + timestamp); | ||
| 638 | - return segment->stream_starttime + timestamp; | ||
| 639 | -} | ||
| 640 | - | ||
| 641 | -int SrsDvrHssPlan::on_dvr_hss_reap_flv_header(string path) | ||
| 642 | -{ | ||
| 643 | - int ret = ERROR_SUCCESS; | ||
| 644 | - | ||
| 645 | -#ifdef SRS_AUTO_HTTP_CALLBACK | ||
| 646 | - if (!_srs_config->get_vhost_http_hooks_enabled(_req->vhost)) { | ||
| 647 | - // HTTP: on_dvr_hss_reap_flv_header | ||
| 648 | - SrsConfDirective* on_dvr_hss_reap_flv = _srs_config->get_vhost_on_dvr_hss_reap_flv(_req->vhost); | ||
| 649 | - if (!on_dvr_hss_reap_flv) { | ||
| 650 | - srs_info("ignore the empty http callback: on_dvr_hss_reap_flv"); | ||
| 651 | - return ret; | ||
| 652 | - } | ||
| 653 | - | ||
| 654 | - for (int i = 0; i < (int)on_dvr_hss_reap_flv->args.size(); i++) { | ||
| 655 | - std::string url = on_dvr_hss_reap_flv->args.at(i); | ||
| 656 | - SrsHttpHooks::on_dvr_hss_reap_flv_header(url, _req, path); | ||
| 657 | - } | ||
| 658 | - } | ||
| 659 | -#endif | ||
| 660 | - | ||
| 661 | - return ret; | ||
| 662 | -} | ||
| 663 | - | ||
| 664 | -int SrsDvrHssPlan::update_duration(SrsSharedPtrMessage* msg) | ||
| 665 | -{ | ||
| 666 | - int ret = ERROR_SUCCESS; | ||
| 667 | - | ||
| 668 | - if ((ret = SrsDvrPlan::update_duration(msg)) != ERROR_SUCCESS) { | ||
| 669 | - return ret; | ||
| 670 | - } | ||
| 671 | - | ||
| 672 | - srs_assert(segment); | ||
| 673 | - | ||
| 674 | - // if not initialized, ignore reap. | ||
| 675 | - if (expect_reap_time <= 0 | ||
| 676 | - || segment->stream_starttime <= 0 | ||
| 677 | - || segment->stream_duration <= 0 | ||
| 678 | - ) { | ||
| 679 | - return ret; | ||
| 680 | - } | ||
| 681 | - | ||
| 682 | - // reap if exceed atc expect time. | ||
| 683 | - if (segment->stream_starttime + segment->stream_duration > expect_reap_time) { | ||
| 684 | - srs_verbose("hss reap start=%"PRId64", duration=%"PRId64", expect=%"PRId64 | ||
| 685 | - ", segment(start=%"PRId64", duration=%"PRId64", file=%s", | ||
| 686 | - segment->stream_starttime, segment->stream_duration, expect_reap_time, | ||
| 687 | - segment->stream_starttime + segment->starttime, | ||
| 688 | - segment->duration, segment->path.c_str()); | ||
| 689 | - | ||
| 690 | - // update expect reap time | ||
| 691 | - expect_reap_time += segment_duration; | ||
| 692 | - | ||
| 693 | - if ((ret = flv_close()) != ERROR_SUCCESS) { | ||
| 694 | - segment->reset(); | ||
| 695 | - return ret; | ||
| 696 | - } | ||
| 697 | - on_unpublish(); | ||
| 698 | - | ||
| 699 | - if ((ret = open_new_segment()) != ERROR_SUCCESS) { | ||
| 700 | - return ret; | ||
| 701 | - } | ||
| 702 | - } | ||
| 703 | - | ||
| 704 | - return ret; | ||
| 705 | -} | ||
| 706 | - | ||
| 707 | SrsDvr::SrsDvr(SrsSource* source) | 474 | SrsDvr::SrsDvr(SrsSource* source) |
| 708 | { | 475 | { |
| 709 | _source = source; | 476 | _source = source; |
| @@ -137,11 +137,6 @@ protected: | @@ -137,11 +137,6 @@ protected: | ||
| 137 | virtual int on_dvr_request_sh(); | 137 | virtual int on_dvr_request_sh(); |
| 138 | virtual int on_video_keyframe(); | 138 | virtual int on_video_keyframe(); |
| 139 | virtual int64_t filter_timestamp(int64_t timestamp); | 139 | virtual int64_t filter_timestamp(int64_t timestamp); |
| 140 | -private: | ||
| 141 | - /** | ||
| 142 | - * when srs reap the flv(close the segment), notice the api. | ||
| 143 | - */ | ||
| 144 | - virtual int on_dvr_hss_reap_flv(); | ||
| 145 | public: | 140 | public: |
| 146 | static SrsDvrPlan* create_plan(std::string vhost); | 141 | static SrsDvrPlan* create_plan(std::string vhost); |
| 147 | }; | 142 | }; |
| @@ -178,33 +173,6 @@ private: | @@ -178,33 +173,6 @@ private: | ||
| 178 | }; | 173 | }; |
| 179 | 174 | ||
| 180 | /** | 175 | /** |
| 181 | -* hss plan: use atc time to reap flv segment | ||
| 182 | -*/ | ||
| 183 | -class SrsDvrHssPlan : public SrsDvrPlan | ||
| 184 | -{ | ||
| 185 | -private: | ||
| 186 | - // in config, in ms | ||
| 187 | - int segment_duration; | ||
| 188 | - int64_t expect_reap_time; | ||
| 189 | -public: | ||
| 190 | - SrsDvrHssPlan(); | ||
| 191 | - virtual ~SrsDvrHssPlan(); | ||
| 192 | -public: | ||
| 193 | - virtual int initialize(SrsSource* source, SrsRequest* req); | ||
| 194 | - virtual int on_publish(); | ||
| 195 | - virtual void on_unpublish(); | ||
| 196 | - virtual int on_meta_data(SrsOnMetaDataPacket* metadata); | ||
| 197 | -protected: | ||
| 198 | - virtual int write_flv_header(); | ||
| 199 | - virtual int on_dvr_request_sh(); | ||
| 200 | - virtual int on_video_keyframe(); | ||
| 201 | - virtual int64_t filter_timestamp(int64_t timestamp); | ||
| 202 | -private: | ||
| 203 | - virtual int on_dvr_hss_reap_flv_header(std::string path); | ||
| 204 | - virtual int update_duration(SrsSharedPtrMessage* msg); | ||
| 205 | -}; | ||
| 206 | - | ||
| 207 | -/** | ||
| 208 | * dvr(digital video recorder) to record RTMP stream to flv file. | 176 | * dvr(digital video recorder) to record RTMP stream to flv file. |
| 209 | * TODO: FIXME: add utest for it. | 177 | * TODO: FIXME: add utest for it. |
| 210 | */ | 178 | */ |
| @@ -326,114 +326,4 @@ void SrsHttpHooks::on_stop(string url, int client_id, string ip, SrsRequest* req | @@ -326,114 +326,4 @@ void SrsHttpHooks::on_stop(string url, int client_id, string ip, SrsRequest* req | ||
| 326 | return; | 326 | return; |
| 327 | } | 327 | } |
| 328 | 328 | ||
| 329 | -#ifdef SRS_AUTO_DVR | ||
| 330 | - | ||
| 331 | -void SrsHttpHooks::on_dvr_hss_reap_flv_header(std::string url, SrsRequest* req, std::string header_file) | ||
| 332 | -{ | ||
| 333 | - int ret = ERROR_SUCCESS; | ||
| 334 | - | ||
| 335 | - srs_verbose("flv header reap, file=%s", header_file.c_str()); | ||
| 336 | - | ||
| 337 | - SrsHttpUri uri; | ||
| 338 | - if ((ret = uri.initialize(url)) != ERROR_SUCCESS) { | ||
| 339 | - srs_warn("http uri parse on_dvr_hss_reap_flv_header url failed, ignored. " | ||
| 340 | - "url=%s, ret=%d", url.c_str(), ret); | ||
| 341 | - return; | ||
| 342 | - } | ||
| 343 | - | ||
| 344 | - std::stringstream ss; | ||
| 345 | - ss << __SRS_JOBJECT_START | ||
| 346 | - << __SRS_JFIELD_STR("action", "on_dvr_hss_reap_flv_header") << __SRS_JFIELD_CONT | ||
| 347 | - << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT | ||
| 348 | - << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT | ||
| 349 | - << __SRS_JFIELD_STR("stream", req->stream) << __SRS_JFIELD_CONT | ||
| 350 | - << __SRS_JFIELD_NAME("segment") << __SRS_JOBJECT_START | ||
| 351 | - << __SRS_JFIELD_STR("cwd", _srs_config->cwd()) << __SRS_JFIELD_CONT | ||
| 352 | - << __SRS_JFIELD_STR("path", header_file) | ||
| 353 | - << __SRS_JOBJECT_END | ||
| 354 | - << __SRS_JOBJECT_END; | ||
| 355 | - std::string data = ss.str(); | ||
| 356 | - std::string res; | ||
| 357 | - | ||
| 358 | - SrsHttpClient http; | ||
| 359 | - if ((ret = http.post(&uri, data, res)) != ERROR_SUCCESS) { | ||
| 360 | - srs_warn("http post on_dvr_hss_reap_flv_header uri failed, ignored. " | ||
| 361 | - "url=%s, request=%s, response=%s, ret=%d", | ||
| 362 | - url.c_str(), data.c_str(), res.c_str(), ret); | ||
| 363 | - return; | ||
| 364 | - } | ||
| 365 | - | ||
| 366 | - if (res.empty() || res != SRS_HTTP_RESPONSE_OK) { | ||
| 367 | - ret = ERROR_HTTP_DATA_INVLIAD; | ||
| 368 | - srs_warn("http hook on_dvr_hss_reap_flv_header validate failed, ignored. " | ||
| 369 | - "res=%s, ret=%d", res.c_str(), ret); | ||
| 370 | - return; | ||
| 371 | - } | ||
| 372 | - | ||
| 373 | - srs_info("http hook on_dvr_hss_reap_flv_header success. " | ||
| 374 | - "url=%s, request=%s, response=%s, ret=%d", | ||
| 375 | - url.c_str(), data.c_str(), res.c_str(), ret); | ||
| 376 | - | ||
| 377 | - return; | ||
| 378 | -} | ||
| 379 | - | ||
| 380 | -void SrsHttpHooks::on_dvr_hss_reap_flv(string url, SrsRequest* req, SrsFlvSegment* segment) | ||
| 381 | -{ | ||
| 382 | - int ret = ERROR_SUCCESS; | ||
| 383 | - | ||
| 384 | - srs_assert(segment); | ||
| 385 | - srs_verbose("flv segment %s, atc_start=%"PRId64", " | ||
| 386 | - "has_key=%d, starttime=%"PRId64", duration=%d", | ||
| 387 | - segment->path.c_str(), segment->stream_starttime, | ||
| 388 | - segment->has_keyframe, segment->starttime, (int)segment->duration); | ||
| 389 | - | ||
| 390 | - SrsHttpUri uri; | ||
| 391 | - if ((ret = uri.initialize(url)) != ERROR_SUCCESS) { | ||
| 392 | - srs_warn("http uri parse on_dvr_hss_reap_flv url failed, ignored. " | ||
| 393 | - "url=%s, ret=%d", url.c_str(), ret); | ||
| 394 | - return; | ||
| 395 | - } | ||
| 396 | - | ||
| 397 | - std::stringstream ss; | ||
| 398 | - ss << __SRS_JOBJECT_START | ||
| 399 | - << __SRS_JFIELD_STR("action", "on_dvr_hss_reap_flv") << __SRS_JFIELD_CONT | ||
| 400 | - << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT | ||
| 401 | - << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT | ||
| 402 | - << __SRS_JFIELD_STR("stream", req->stream) << __SRS_JFIELD_CONT | ||
| 403 | - << __SRS_JFIELD_NAME("segment") << __SRS_JOBJECT_START | ||
| 404 | - << __SRS_JFIELD_STR("cwd", _srs_config->cwd()) << __SRS_JFIELD_CONT | ||
| 405 | - << __SRS_JFIELD_STR("path", segment->path) << __SRS_JFIELD_CONT | ||
| 406 | - << __SRS_JFIELD_ORG("duration", segment->duration) << __SRS_JFIELD_CONT | ||
| 407 | - << __SRS_JFIELD_ORG("offset", segment->sequence_header_offset) << __SRS_JFIELD_CONT | ||
| 408 | - << __SRS_JFIELD_ORG("has_keyframe", (segment->has_keyframe? "true":"false")) << __SRS_JFIELD_CONT | ||
| 409 | - << __SRS_JFIELD_ORG("pts", segment->stream_starttime + segment->starttime) | ||
| 410 | - << __SRS_JOBJECT_END | ||
| 411 | - << __SRS_JOBJECT_END; | ||
| 412 | - std::string data = ss.str(); | ||
| 413 | - std::string res; | ||
| 414 | - | ||
| 415 | - SrsHttpClient http; | ||
| 416 | - if ((ret = http.post(&uri, data, res)) != ERROR_SUCCESS) { | ||
| 417 | - srs_warn("http post on_dvr_hss_reap_flv uri failed, ignored. " | ||
| 418 | - "url=%s, request=%s, response=%s, ret=%d", | ||
| 419 | - url.c_str(), data.c_str(), res.c_str(), ret); | ||
| 420 | - return; | ||
| 421 | - } | ||
| 422 | - | ||
| 423 | - if (res.empty() || res != SRS_HTTP_RESPONSE_OK) { | ||
| 424 | - ret = ERROR_HTTP_DATA_INVLIAD; | ||
| 425 | - srs_warn("http hook on_dvr_hss_reap_flv validate failed, ignored. " | ||
| 426 | - "res=%s, ret=%d", res.c_str(), ret); | ||
| 427 | - return; | ||
| 428 | - } | ||
| 429 | - | ||
| 430 | - srs_info("http hook on_dvr_hss_reap_flv success. " | ||
| 431 | - "url=%s, request=%s, response=%s, ret=%d", | ||
| 432 | - url.c_str(), data.c_str(), res.c_str(), ret); | ||
| 433 | - | ||
| 434 | - return; | ||
| 435 | -} | ||
| 436 | - | ||
| 437 | -#endif | ||
| 438 | - | ||
| 439 | #endif | 329 | #endif |
| @@ -98,23 +98,6 @@ public: | @@ -98,23 +98,6 @@ public: | ||
| 98 | * ignore if empty. | 98 | * ignore if empty. |
| 99 | */ | 99 | */ |
| 100 | static void on_stop(std::string url, int client_id, std::string ip, SrsRequest* req); | 100 | static void on_stop(std::string url, int client_id, std::string ip, SrsRequest* req); |
| 101 | -#ifdef SRS_AUTO_DVR | ||
| 102 | -public: | ||
| 103 | - /** | ||
| 104 | - * on_dvr_hss_reap_flv_header hook, when dvr write flv file header. | ||
| 105 | - * @param url the api server url, to process the event. | ||
| 106 | - * ignore if empty. | ||
| 107 | - * @param header_file the flv header file. | ||
| 108 | - */ | ||
| 109 | - static void on_dvr_hss_reap_flv_header(std::string url, SrsRequest* req, std::string header_file); | ||
| 110 | - /** | ||
| 111 | - * on_dvr_hss_reap_flv hook, when dvr close flv file. | ||
| 112 | - * @param url the api server url, to process the event. | ||
| 113 | - * ignore if empty. | ||
| 114 | - * @param segment the current flv segment. | ||
| 115 | - */ | ||
| 116 | - static void on_dvr_hss_reap_flv(std::string url, SrsRequest* req, SrsFlvSegment* segment); | ||
| 117 | -#endif | ||
| 118 | }; | 101 | }; |
| 119 | 102 | ||
| 120 | #endif | 103 | #endif |
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "177" | 34 | +#define VERSION_REVISION "178" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "SRS" | 37 | #define RTMP_SIG_SRS_KEY "SRS" |
| @@ -208,7 +208,6 @@ std::string __full_conf = "" | @@ -208,7 +208,6 @@ std::string __full_conf = "" | ||
| 208 | " # start to record to file when encoder publish, \n" | 208 | " # start to record to file when encoder publish, \n" |
| 209 | " # reap flv according by specified dvr_plan. \n" | 209 | " # reap flv according by specified dvr_plan. \n" |
| 210 | " # http callbacks: \n" | 210 | " # http callbacks: \n" |
| 211 | - " # @see http callback on_dvr_hss_reap_flv on http_hooks section. \n" | ||
| 212 | " dvr { \n" | 211 | " dvr { \n" |
| 213 | " # whether enabled dvr features \n" | 212 | " # whether enabled dvr features \n" |
| 214 | " # default: off \n" | 213 | " # default: off \n" |
| @@ -228,7 +227,6 @@ std::string __full_conf = "" | @@ -228,7 +227,6 @@ std::string __full_conf = "" | ||
| 228 | " # the dvr plan. canbe: \n" | 227 | " # the dvr plan. canbe: \n" |
| 229 | " # session reap flv when session end(unpublish). \n" | 228 | " # session reap flv when session end(unpublish). \n" |
| 230 | " # segment reap flv when flv duration exceed the specified dvr_duration. \n" | 229 | " # segment reap flv when flv duration exceed the specified dvr_duration. \n" |
| 231 | - " # hss reap flv required by bravo(chnvideo.com) p2p system. \n" | ||
| 232 | " # default: session \n" | 230 | " # default: session \n" |
| 233 | " dvr_plan session; \n" | 231 | " dvr_plan session; \n" |
| 234 | " # the param for plan(segment), in seconds. \n" | 232 | " # the param for plan(segment), in seconds. \n" |
| @@ -433,38 +431,6 @@ std::string __full_conf = "" | @@ -433,38 +431,6 @@ std::string __full_conf = "" | ||
| 433 | " # support multiple api hooks, format: \n" | 431 | " # support multiple api hooks, format: \n" |
| 434 | " # on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN \n" | 432 | " # on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN \n" |
| 435 | " on_stop http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions; \n" | 433 | " on_stop http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions; \n" |
| 436 | - " # \n" | ||
| 437 | - " # for dvr(dvr_plan is hss). \n" | ||
| 438 | - " # when dvr got flv header, call the hook, \n" | ||
| 439 | - " # the request in the POST data string is a object encode by json: \n" | ||
| 440 | - " # { \n" | ||
| 441 | - " # \"action\": \"on_dvr_hss_reap_flv_header\", \n" | ||
| 442 | - " # \"vhost\": \"video.test.com\", \"app\": \"live\", \n" | ||
| 443 | - " # \"stream\": \"livestream\", \n" | ||
| 444 | - " # \"segment\": { \n" | ||
| 445 | - " # \"cwd\": \"/usr/local/srs\", \n" | ||
| 446 | - " # \"path\": \"./objs/nginx/html/live/livestream.header.flv\" \n" | ||
| 447 | - " # } \n" | ||
| 448 | - " # } \n" | ||
| 449 | - " # when dvr reap flv file, call the hook, \n" | ||
| 450 | - " # the request in the POST data string is a object encode by json: \n" | ||
| 451 | - " # { \n" | ||
| 452 | - " # \"action\": \"on_dvr_hss_reap_flv\", \n" | ||
| 453 | - " # \"vhost\": \"video.test.com\", \"app\": \"live\", \n" | ||
| 454 | - " # \"stream\": \"livestream\", \n" | ||
| 455 | - " # \"segment\": { \n" | ||
| 456 | - " # \"cwd\": \"/usr/local/srs\", \n" | ||
| 457 | - " # \"path\": \"./objs/nginx/html/live/livestream.1398315892865.flv\", \n" | ||
| 458 | - " # \"duration\": 1001, \"offset\":0, \n" | ||
| 459 | - " # \"has_keyframe\": true, \"pts\":1398315895958 \n" | ||
| 460 | - " # } \n" | ||
| 461 | - " # } \n" | ||
| 462 | - " # if valid, the hook must return HTTP code 200(Stauts OK) and response \n" | ||
| 463 | - " # an int value specifies the error code(0 corresponding to success): \n" | ||
| 464 | - " # 0 \n" | ||
| 465 | - " # support multiple api hooks, format: \n" | ||
| 466 | - " # on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN \n" | ||
| 467 | - " on_dvr_hss_reap_flv http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs; \n" | ||
| 468 | " } \n" | 434 | " } \n" |
| 469 | "} \n" | 435 | "} \n" |
| 470 | " \n" | 436 | " \n" |
| @@ -1098,9 +1064,6 @@ VOID TEST(ConfigTest, CheckMacros) | @@ -1098,9 +1064,6 @@ VOID TEST(ConfigTest, CheckMacros) | ||
| 1098 | #ifndef SRS_CONF_DEFAULT_DVR_PLAN_SEGMENT | 1064 | #ifndef SRS_CONF_DEFAULT_DVR_PLAN_SEGMENT |
| 1099 | EXPECT_TRUE(false); | 1065 | EXPECT_TRUE(false); |
| 1100 | #endif | 1066 | #endif |
| 1101 | -#ifndef SRS_CONF_DEFAULT_DVR_PLAN_HSS | ||
| 1102 | - EXPECT_TRUE(false); | ||
| 1103 | -#endif | ||
| 1104 | #ifndef SRS_CONF_DEFAULT_DVR_PLAN | 1067 | #ifndef SRS_CONF_DEFAULT_DVR_PLAN |
| 1105 | EXPECT_TRUE(false); | 1068 | EXPECT_TRUE(false); |
| 1106 | #endif | 1069 | #endif |
| @@ -1917,7 +1880,6 @@ VOID TEST(ConfigMainTest, ParseFullConf) | @@ -1917,7 +1880,6 @@ VOID TEST(ConfigMainTest, ParseFullConf) | ||
| 1917 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 1880 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 1918 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 1881 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 1919 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 1882 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 1920 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 1921 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 1883 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 1922 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 1884 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 1923 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 1885 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -1997,7 +1959,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_same_edge) | @@ -1997,7 +1959,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_same_edge) | ||
| 1997 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 1959 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 1998 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 1960 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 1999 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 1961 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2000 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2001 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 1962 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2002 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 1963 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2003 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 1964 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2077,7 +2038,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_change_edge) | @@ -2077,7 +2038,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_change_edge) | ||
| 2077 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2038 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2078 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2039 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2079 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2040 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2080 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2081 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2041 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2082 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2042 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2083 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2043 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2151,7 +2111,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_dvr) | @@ -2151,7 +2111,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_dvr) | ||
| 2151 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2111 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2152 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2112 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2153 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2113 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2154 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2155 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2114 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2156 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2115 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2157 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2116 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2225,7 +2184,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_ingest) | @@ -2225,7 +2184,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_ingest) | ||
| 2225 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2184 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2226 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2185 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2227 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2186 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2228 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2229 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2187 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2230 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2188 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2231 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2189 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2320,7 +2278,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_http) | @@ -2320,7 +2278,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_http) | ||
| 2320 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2278 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2321 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2279 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2322 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2280 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2323 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2324 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2281 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2325 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2282 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2326 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2283 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2397,7 +2354,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_enabled) | @@ -2397,7 +2354,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_enabled) | ||
| 2397 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2354 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2398 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2355 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2399 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2356 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2400 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2401 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2357 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2402 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2358 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2403 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2359 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2474,7 +2430,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_disabled) | @@ -2474,7 +2430,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_disabled) | ||
| 2474 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2430 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2475 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2431 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2476 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2432 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2477 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2478 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2433 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2479 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2434 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2480 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2435 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2582,12 +2537,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_http_hooks) | @@ -2582,12 +2537,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_http_hooks) | ||
| 2582 | EXPECT_STREQ("http://127.0.0.1:8085/api/v1/sessions", callback->arg0().c_str()); | 2537 | EXPECT_STREQ("http://127.0.0.1:8085/api/v1/sessions", callback->arg0().c_str()); |
| 2583 | EXPECT_STREQ("http://localhost:8085/api/v1/sessions", callback->arg1().c_str()); | 2538 | EXPECT_STREQ("http://localhost:8085/api/v1/sessions", callback->arg1().c_str()); |
| 2584 | } | 2539 | } |
| 2585 | - EXPECT_TRUE(NULL != conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2586 | - if (true) { | ||
| 2587 | - SrsConfDirective* callback = conf.get_vhost_on_dvr_hss_reap_flv(vhost); | ||
| 2588 | - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/dvrs", callback->arg0().c_str()); | ||
| 2589 | - EXPECT_STREQ("http://localhost:8085/api/v1/dvrs", callback->arg1().c_str()); | ||
| 2590 | - } | ||
| 2591 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2540 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2592 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2541 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2593 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2542 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2665,7 +2614,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_min_delay) | @@ -2665,7 +2614,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_min_delay) | ||
| 2665 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2614 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2666 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2615 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2667 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2616 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2668 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2669 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2617 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2670 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2618 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2671 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2619 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2758,7 +2706,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_refer_anti_suck) | @@ -2758,7 +2706,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_refer_anti_suck) | ||
| 2758 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2706 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2759 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2707 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2760 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2708 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2761 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2762 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2709 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2763 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2710 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2764 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2711 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2841,7 +2788,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_same_vhost) | @@ -2841,7 +2788,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_same_vhost) | ||
| 2841 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2788 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2842 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2789 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2843 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2790 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2844 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2845 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2791 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2846 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2792 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2847 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2793 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2920,7 +2866,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_change_vhost) | @@ -2920,7 +2866,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_change_vhost) | ||
| 2920 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2866 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2921 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2867 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 2922 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2868 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 2923 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 2924 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2869 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 2925 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2870 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 2926 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2871 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -2998,7 +2943,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_mirror) | @@ -2998,7 +2943,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_mirror) | ||
| 2998 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 2943 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 2999 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 2944 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3000 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 2945 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3001 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3002 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 2946 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3003 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 2947 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3004 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 2948 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3087,7 +3031,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_crop) | @@ -3087,7 +3031,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_crop) | ||
| 3087 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3031 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3088 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3032 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3089 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3033 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3090 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3091 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3034 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3092 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3035 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3093 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3036 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3176,7 +3119,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_logo) | @@ -3176,7 +3119,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_logo) | ||
| 3176 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3119 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3177 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3120 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3178 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3121 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3179 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3180 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3122 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3181 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3123 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3182 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3124 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3265,7 +3207,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_audio) | @@ -3265,7 +3207,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_audio) | ||
| 3265 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3207 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3266 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3208 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3267 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3209 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3268 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3269 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3210 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3270 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3211 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3271 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3212 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3348,7 +3289,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_vn) | @@ -3348,7 +3289,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_vn) | ||
| 3348 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3289 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3349 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3290 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3350 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3291 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3351 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3352 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3292 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3353 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3293 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3354 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3294 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3431,7 +3371,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_copy) | @@ -3431,7 +3371,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_copy) | ||
| 3431 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3371 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3432 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3372 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3433 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3373 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3434 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3435 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3374 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3436 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3375 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3437 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3376 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3510,7 +3449,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all) | @@ -3510,7 +3449,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all) | ||
| 3510 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3449 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3511 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3450 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3512 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3451 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3513 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3514 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3452 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3515 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3453 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3516 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3454 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3727,7 +3665,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_ffempty) | @@ -3727,7 +3665,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_ffempty) | ||
| 3727 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3665 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3728 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3666 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3729 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3667 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3730 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3731 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3668 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3732 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3669 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3733 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3670 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3816,7 +3753,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_app) | @@ -3816,7 +3753,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_app) | ||
| 3816 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3753 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3817 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3754 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3818 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3755 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3819 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3820 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3756 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3821 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3757 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3822 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3758 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3905,7 +3841,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_stream) | @@ -3905,7 +3841,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_stream) | ||
| 3905 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3841 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3906 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3842 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3907 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3843 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3908 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3909 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 3844 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 3910 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 3845 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 3911 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3846 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -3994,7 +3929,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_bandcheck) | @@ -3994,7 +3929,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_bandcheck) | ||
| 3994 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 3929 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 3995 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 3930 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 3996 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 3931 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 3997 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 3998 | EXPECT_TRUE(conf.get_bw_check_enabled(vhost)); | 3932 | EXPECT_TRUE(conf.get_bw_check_enabled(vhost)); |
| 3999 | EXPECT_STREQ("35c9b402c12a7246868752e2878f7e0e", conf.get_bw_check_key(vhost).c_str()); | 3933 | EXPECT_STREQ("35c9b402c12a7246868752e2878f7e0e", conf.get_bw_check_key(vhost).c_str()); |
| 4000 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 3934 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -4072,7 +4006,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_chunksize) | @@ -4072,7 +4006,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_chunksize) | ||
| 4072 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 4006 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 4073 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 4007 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 4074 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 4008 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 4075 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 4076 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 4009 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 4077 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 4010 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 4078 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 4011 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -4150,7 +4083,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_jitter) | @@ -4150,7 +4083,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_jitter) | ||
| 4150 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 4083 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 4151 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 4084 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 4152 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 4085 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 4153 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 4154 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 4086 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 4155 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 4087 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 4156 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 4088 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -4228,7 +4160,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_atc) | @@ -4228,7 +4160,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_atc) | ||
| 4228 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 4160 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 4229 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 4161 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 4230 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 4162 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 4231 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 4232 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 4163 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 4233 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 4164 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 4234 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 4165 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -4306,7 +4237,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_removed) | @@ -4306,7 +4237,6 @@ VOID TEST(ConfigMainTest, ParseFullConf_removed) | ||
| 4306 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); | 4237 | EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); |
| 4307 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); | 4238 | EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); |
| 4308 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); | 4239 | EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); |
| 4309 | - EXPECT_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(vhost)); | ||
| 4310 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); | 4240 | EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); |
| 4311 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); | 4241 | EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); |
| 4312 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); | 4242 | EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); |
| @@ -5018,16 +4948,6 @@ VOID TEST(ConfigMainTest, CheckConf_hooks) | @@ -5018,16 +4948,6 @@ VOID TEST(ConfigMainTest, CheckConf_hooks) | ||
| 5018 | MockSrsConfig conf; | 4948 | MockSrsConfig conf; |
| 5019 | EXPECT_TRUE(ERROR_SUCCESS != conf.parse(_MIN_OK_CONF"vhost v{http_hooks{on_stops http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;}}")); | 4949 | EXPECT_TRUE(ERROR_SUCCESS != conf.parse(_MIN_OK_CONF"vhost v{http_hooks{on_stops http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;}}")); |
| 5020 | } | 4950 | } |
| 5021 | - | ||
| 5022 | - if (true) { | ||
| 5023 | - MockSrsConfig conf; | ||
| 5024 | - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"vhost v{http_hooks{on_dvr_hss_reap_flv http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs;}}")); | ||
| 5025 | - } | ||
| 5026 | - | ||
| 5027 | - if (true) { | ||
| 5028 | - MockSrsConfig conf; | ||
| 5029 | - EXPECT_TRUE(ERROR_SUCCESS != conf.parse(_MIN_OK_CONF"vhost v{http_hooks{on_dvr_hss_reap_flvs http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs;}}")); | ||
| 5030 | - } | ||
| 5031 | } | 4951 | } |
| 5032 | 4952 | ||
| 5033 | VOID TEST(ConfigMainTest, CheckConf_gop_cache) | 4953 | VOID TEST(ConfigMainTest, CheckConf_gop_cache) |
-
请 注册 或 登录 后发表评论