From b2767145735f2f65d1178d3e2002d0917f979fdc Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 24 Apr 2014 14:26:24 +0800 Subject: [PATCH] support chnvideo hss streaming --- trunk/src/app/srs_app_dvr.cpp | 2 +- trunk/src/app/srs_app_http_hooks.cpp | 14 +++++++++++--- trunk/src/app/srs_app_json.hpp | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/trunk/src/app/srs_app_dvr.cpp b/trunk/src/app/srs_app_dvr.cpp index b904245f3..03e8c9947 100644 --- a/trunk/src/app/srs_app_dvr.cpp +++ b/trunk/src/app/srs_app_dvr.cpp @@ -783,7 +783,7 @@ int SrsDvrHssPlan::update_duration(SrsSharedPtrMessage* msg) // reap if exceed atc expect time. if (segment->stream_starttime + segment->stream_duration > expect_reap_time) { - srs_warn("hss reap start=%"PRId64", duration=%"PRId64", expect=%"PRId64 + srs_verbose("hss reap start=%"PRId64", duration=%"PRId64", expect=%"PRId64 ", segment(start=%"PRId64", adjust=%"PRId64", duration=%"PRId64", file=%s", segment->stream_starttime, segment->stream_duration, expect_reap_time, segment->stream_starttime + segment->starttime, diff --git a/trunk/src/app/srs_app_http_hooks.cpp b/trunk/src/app/srs_app_http_hooks.cpp index e964e30fe..0c8cb0891 100644 --- a/trunk/src/app/srs_app_http_hooks.cpp +++ b/trunk/src/app/srs_app_http_hooks.cpp @@ -37,6 +37,7 @@ using namespace std; #include #include #include +#include #define SRS_HTTP_RESPONSE_OK "0" @@ -463,7 +464,7 @@ void SrsHttpHooks::on_dvr_keyframe(string url, SrsRequest* req, SrsFlvSegment* s int ret = ERROR_SUCCESS; srs_assert(segment); - srs_trace("flv segment %s, atc_start=%"PRId64", " + srs_verbose("flv segment %s, atc_start=%"PRId64", " "has_key=%d, starttime=%"PRId64", duration=%d", segment->path.c_str(), segment->stream_starttime, segment->has_keyframe, segment->starttime, (int)segment->duration); @@ -480,7 +481,14 @@ void SrsHttpHooks::on_dvr_keyframe(string url, SrsRequest* req, SrsFlvSegment* s << JFIELD_STR("action", "on_dvr_keyframe") << JFIELD_CONT << JFIELD_STR("vhost", req->vhost) << JFIELD_CONT << JFIELD_STR("app", req->app) << JFIELD_CONT - << JFIELD_STR("stream", req->stream) + << JFIELD_STR("stream", req->stream) << JFIELD_CONT + << JFIELD_NAME("segment") << JOBJECT_START + << JFIELD_STR("cwd", _srs_config->get_cwd()) << JFIELD_CONT + << JFIELD_STR("path", segment->path) << JFIELD_CONT + << JFIELD_ORG("pts", segment->stream_starttime + segment->starttime) << JFIELD_CONT + << JFIELD_ORG("duration", segment->duration) << JFIELD_CONT + << JFIELD_ORG("offset", 0) + << JOBJECT_END << JOBJECT_END; std::string data = ss.str(); std::string res; @@ -500,7 +508,7 @@ void SrsHttpHooks::on_dvr_keyframe(string url, SrsRequest* req, SrsFlvSegment* s return; } - srs_trace("http hook on_dvr_keyframe success. " + srs_info("http hook on_dvr_keyframe success. " "url=%s, request=%s, response=%s, ret=%d", url.c_str(), data.c_str(), res.c_str(), ret); diff --git a/trunk/src/app/srs_app_json.hpp b/trunk/src/app/srs_app_json.hpp index ea64cfb6b..00c8ea42d 100644 --- a/trunk/src/app/srs_app_json.hpp +++ b/trunk/src/app/srs_app_json.hpp @@ -31,6 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // json encode macros #define JOBJECT_START "{" +#define JFIELD_NAME(k) "\"" << k << "\":" #define JFIELD_STR(k, v) "\"" << k << "\":\"" << v << "\"" #define JFIELD_ORG(k, v) "\"" << k << "\":" << std::dec << v #define JFIELD_ERROR(ret) "\"" << "code" << "\":" << ret