winlin

support ingest stream

@@ -70,6 +70,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -70,6 +70,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
70 #define SRS_STAGE_HLS_INTERVAL_MS 2000 70 #define SRS_STAGE_HLS_INTERVAL_MS 2000
71 71
72 #define SRS_INGEST_TYPE_FILE "file" 72 #define SRS_INGEST_TYPE_FILE "file"
  73 +#define SRS_INGEST_TYPE_STREAM "stream"
73 74
74 class SrsFileBuffer; 75 class SrsFileBuffer;
75 76
@@ -284,6 +284,20 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S @@ -284,6 +284,20 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
284 if ((ret = ffmpeg->initialize(input_url, output, log_file)) != ERROR_SUCCESS) { 284 if ((ret = ffmpeg->initialize(input_url, output, log_file)) != ERROR_SUCCESS) {
285 return ret; 285 return ret;
286 } 286 }
  287 + } else if (input_type == SRS_INGEST_TYPE_STREAM) {
  288 + std::string input_url = _srs_config->get_ingest_input_url(ingest);
  289 + if (input_url.empty()) {
  290 + ret = ERROR_ENCODER_NO_INPUT;
  291 + srs_trace("empty ingest intput url. ret=%d", ret);
  292 + return ret;
  293 + }
  294 +
  295 + // for stream, no re.
  296 + ffmpeg->set_iparams("");
  297 +
  298 + if ((ret = ffmpeg->initialize(input_url, output, log_file)) != ERROR_SUCCESS) {
  299 + return ret;
  300 + }
287 } else { 301 } else {
288 ret = ERROR_ENCODER_INPUT_TYPE; 302 ret = ERROR_ENCODER_INPUT_TYPE;
289 srs_error("invalid ingest type=%s, ret=%d", input_type.c_str(), ret); 303 srs_error("invalid ingest type=%s, ret=%d", input_type.c_str(), ret);