正在显示
2 个修改的文件
包含
15 行增加
和
11 行删除
| @@ -63,6 +63,9 @@ SrsStreamCache::SrsStreamCache(SrsSource* s, SrsRequest* r) | @@ -63,6 +63,9 @@ SrsStreamCache::SrsStreamCache(SrsSource* s, SrsRequest* r) | ||
| 63 | source = s; | 63 | source = s; |
| 64 | queue = new SrsMessageQueue(true); | 64 | queue = new SrsMessageQueue(true); |
| 65 | pthread = new SrsEndlessThread("http-stream", this); | 65 | pthread = new SrsEndlessThread("http-stream", this); |
| 66 | + | ||
| 67 | + // TODO: FIXME: support reload. | ||
| 68 | + fast_cache = _srs_config->get_vhost_http_remux_fast_cache(req->vhost); | ||
| 66 | } | 69 | } |
| 67 | 70 | ||
| 68 | SrsStreamCache::~SrsStreamCache() | 71 | SrsStreamCache::~SrsStreamCache() |
| @@ -82,8 +85,6 @@ int SrsStreamCache::dump_cache(SrsConsumer* consumer, SrsRtmpJitterAlgorithm jit | @@ -82,8 +85,6 @@ int SrsStreamCache::dump_cache(SrsConsumer* consumer, SrsRtmpJitterAlgorithm jit | ||
| 82 | { | 85 | { |
| 83 | int ret = ERROR_SUCCESS; | 86 | int ret = ERROR_SUCCESS; |
| 84 | 87 | ||
| 85 | - double fast_cache = _srs_config->get_vhost_http_remux_fast_cache(req->vhost); | ||
| 86 | - | ||
| 87 | if (fast_cache <= 0) { | 88 | if (fast_cache <= 0) { |
| 88 | srs_info("http: ignore dump fast cache."); | 89 | srs_info("http: ignore dump fast cache."); |
| 89 | return ret; | 90 | return ret; |
| @@ -104,6 +105,13 @@ int SrsStreamCache::cycle() | @@ -104,6 +105,13 @@ int SrsStreamCache::cycle() | ||
| 104 | { | 105 | { |
| 105 | int ret = ERROR_SUCCESS; | 106 | int ret = ERROR_SUCCESS; |
| 106 | 107 | ||
| 108 | + // TODO: FIXME: support reload. | ||
| 109 | + if (fast_cache <= 0) { | ||
| 110 | + return ret; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + // the stream cache will create consumer to cache stream, | ||
| 114 | + // which will trigger to fetch stream from origin for edge. | ||
| 107 | SrsConsumer* consumer = NULL; | 115 | SrsConsumer* consumer = NULL; |
| 108 | if ((ret = source->create_consumer(consumer, false, false, true)) != ERROR_SUCCESS) { | 116 | if ((ret = source->create_consumer(consumer, false, false, true)) != ERROR_SUCCESS) { |
| 109 | srs_error("http: create consumer failed. ret=%d", ret); | 117 | srs_error("http: create consumer failed. ret=%d", ret); |
| @@ -116,11 +124,9 @@ int SrsStreamCache::cycle() | @@ -116,11 +124,9 @@ int SrsStreamCache::cycle() | ||
| 116 | 124 | ||
| 117 | SrsMessageArray msgs(SRS_PERF_MW_MSGS); | 125 | SrsMessageArray msgs(SRS_PERF_MW_MSGS); |
| 118 | 126 | ||
| 127 | + // set the queue size, which used for max cache. | ||
| 119 | // TODO: FIXME: support reload. | 128 | // TODO: FIXME: support reload. |
| 120 | - double fast_cache = _srs_config->get_vhost_http_remux_fast_cache(req->vhost); | ||
| 121 | - if (fast_cache > 0) { | ||
| 122 | - queue->set_queue_size(fast_cache); | ||
| 123 | - } | 129 | + queue->set_queue_size(fast_cache); |
| 124 | 130 | ||
| 125 | while (true) { | 131 | while (true) { |
| 126 | pprint->elapse(); | 132 | pprint->elapse(); |
| @@ -150,11 +156,7 @@ int SrsStreamCache::cycle() | @@ -150,11 +156,7 @@ int SrsStreamCache::cycle() | ||
| 150 | // free the messages. | 156 | // free the messages. |
| 151 | for (int i = 0; i < count; i++) { | 157 | for (int i = 0; i < count; i++) { |
| 152 | SrsSharedPtrMessage* msg = msgs.msgs[i]; | 158 | SrsSharedPtrMessage* msg = msgs.msgs[i]; |
| 153 | - if (fast_cache > 0) { | ||
| 154 | - queue->enqueue(msg); | ||
| 155 | - } else { | ||
| 156 | - srs_freep(msg); | ||
| 157 | - } | 159 | + queue->enqueue(msg); |
| 158 | } | 160 | } |
| 159 | } | 161 | } |
| 160 | 162 |
| @@ -42,6 +42,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -42,6 +42,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 42 | class SrsStreamCache : public ISrsEndlessThreadHandler | 42 | class SrsStreamCache : public ISrsEndlessThreadHandler |
| 43 | { | 43 | { |
| 44 | private: | 44 | private: |
| 45 | + double fast_cache; | ||
| 46 | +private: | ||
| 45 | SrsMessageQueue* queue; | 47 | SrsMessageQueue* queue; |
| 46 | SrsSource* source; | 48 | SrsSource* source; |
| 47 | SrsRequest* req; | 49 | SrsRequest* req; |
-
请 注册 或 登录 后发表评论