winlin

add hls config in api.

@@ -31,6 +31,8 @@ using namespace std; @@ -31,6 +31,8 @@ using namespace std;
31 #include <srs_app_json.hpp> 31 #include <srs_app_json.hpp>
32 #include <srs_app_kbps.hpp> 32 #include <srs_app_kbps.hpp>
33 #include <srs_app_conn.hpp> 33 #include <srs_app_conn.hpp>
  34 +#include <srs_app_config.hpp>
  35 +#include <srs_kernel_utility.hpp>
34 36
35 int64_t srs_gvid = getpid(); 37 int64_t srs_gvid = getpid();
36 38
@@ -258,11 +260,18 @@ int SrsStatistic::dumps_vhosts(stringstream& ss) @@ -258,11 +260,18 @@ int SrsStatistic::dumps_vhosts(stringstream& ss)
258 ss << SRS_JFIELD_CONT; 260 ss << SRS_JFIELD_CONT;
259 } 261 }
260 262
  263 + // dumps the config of vhost.
  264 + bool hls_enabled = _srs_config->get_hls_enabled(vhost->vhost);
  265 +
261 ss << SRS_JOBJECT_START 266 ss << SRS_JOBJECT_START
262 << SRS_JFIELD_ORG("id", vhost->id) << SRS_JFIELD_CONT 267 << SRS_JFIELD_ORG("id", vhost->id) << SRS_JFIELD_CONT
263 << SRS_JFIELD_STR("name", vhost->vhost) << SRS_JFIELD_CONT 268 << SRS_JFIELD_STR("name", vhost->vhost) << SRS_JFIELD_CONT
264 << SRS_JFIELD_ORG("send_bytes", vhost->kbps->get_send_bytes()) << SRS_JFIELD_CONT 269 << SRS_JFIELD_ORG("send_bytes", vhost->kbps->get_send_bytes()) << SRS_JFIELD_CONT
265 - << SRS_JFIELD_ORG("recv_bytes", vhost->kbps->get_recv_bytes()) 270 + << SRS_JFIELD_ORG("recv_bytes", vhost->kbps->get_recv_bytes()) << SRS_JFIELD_CONT
  271 + << SRS_JFIELD_NAME("hls") << SRS_JOBJECT_START
  272 + << SRS_JFIELD_BOOL("enabled", hls_enabled) << SRS_JFIELD_CONT
  273 + << SRS_JFIELD_ORG("fragment", _srs_config->get_hls_fragment(vhost->vhost))
  274 + << SRS_JOBJECT_END
266 << SRS_JOBJECT_END; 275 << SRS_JOBJECT_END;
267 } 276 }
268 ss << SRS_JARRAY_END; 277 ss << SRS_JARRAY_END;
@@ -295,9 +304,11 @@ int SrsStatistic::dumps_streams(stringstream& ss) @@ -295,9 +304,11 @@ int SrsStatistic::dumps_streams(stringstream& ss)
295 << SRS_JFIELD_ORG("id", stream->id) << SRS_JFIELD_CONT 304 << SRS_JFIELD_ORG("id", stream->id) << SRS_JFIELD_CONT
296 << SRS_JFIELD_STR("name", stream->stream) << SRS_JFIELD_CONT 305 << SRS_JFIELD_STR("name", stream->stream) << SRS_JFIELD_CONT
297 << SRS_JFIELD_ORG("vhost", stream->vhost->id) << SRS_JFIELD_CONT 306 << SRS_JFIELD_ORG("vhost", stream->vhost->id) << SRS_JFIELD_CONT
  307 + << SRS_JFIELD_STR("app", stream->app) << SRS_JFIELD_CONT
298 << SRS_JFIELD_ORG("clients", client_num) << SRS_JFIELD_CONT 308 << SRS_JFIELD_ORG("clients", client_num) << SRS_JFIELD_CONT
299 << SRS_JFIELD_ORG("send_bytes", stream->kbps->get_send_bytes()) << SRS_JFIELD_CONT 309 << SRS_JFIELD_ORG("send_bytes", stream->kbps->get_send_bytes()) << SRS_JFIELD_CONT
300 - << SRS_JFIELD_ORG("recv_bytes", stream->kbps->get_recv_bytes()) << SRS_JFIELD_CONT; 310 + << SRS_JFIELD_ORG("recv_bytes", stream->kbps->get_recv_bytes()) << SRS_JFIELD_CONT
  311 + << SRS_JFIELD_ORG("live_ms", srs_get_system_time_ms()) << SRS_JFIELD_CONT;
301 312
302 if (!stream->has_video) { 313 if (!stream->has_video) {
303 ss << SRS_JFIELD_NULL("video") << SRS_JFIELD_CONT; 314 ss << SRS_JFIELD_NULL("video") << SRS_JFIELD_CONT;
@@ -358,6 +369,7 @@ SrsStatisticStream* SrsStatistic::create_stream(SrsStatisticVhost* vhost, SrsReq @@ -358,6 +369,7 @@ SrsStatisticStream* SrsStatistic::create_stream(SrsStatisticVhost* vhost, SrsReq
358 stream = new SrsStatisticStream(); 369 stream = new SrsStatisticStream();
359 stream->vhost = vhost; 370 stream->vhost = vhost;
360 stream->stream = req->stream; 371 stream->stream = req->stream;
  372 + stream->app = req->app;
361 stream->url = url; 373 stream->url = url;
362 streams[url] = stream; 374 streams[url] = stream;
363 return stream; 375 return stream;