Skip to content

Commit

Permalink
fix the bug for fork ffmpeg in mac, the local variable is unvailable.
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Mar 11, 2015
1 parent 3e5821e commit a739b2c
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 24 deletions.
30 changes: 19 additions & 11 deletions trunk/research/librtmp/srs_ingest_flv.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,25 @@ int main(int argc, char** argv)
exit(-1);
}

// parse options in FFMPEG format.
while ((opt = getopt(argc, argv, "i:y:")) != -1) {
switch (opt) {
case 'i':
in_flv_file = optarg;
break;
case 'y':
out_rtmp_url = optarg;
break;
default:
break;
for (opt = 0; opt < argc; opt++) {
srs_human_trace("argv[%d]=%s", opt, argv[opt]);
}

// fill the options for mac
for (opt = 0; opt < argc - 1; opt++) {
// ignore all options except -i and -y.
char* p = argv[opt];

// only accept -x
if (p[0] != '-' || p[1] == 0 || p[2] != 0) {
continue;
}

// parse according the option name.
switch (p[1]) {
case 'i': in_flv_file = argv[opt + 1]; break;
case 'y': out_rtmp_url = argv[opt + 1]; break;
default: break;
}
}

Expand Down
26 changes: 15 additions & 11 deletions trunk/research/librtmp/srs_ingest_rtmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,21 @@ int main(int argc, char** argv)
exit(-1);
}

// parse options in FFMPEG format.
while ((opt = getopt(argc, argv, "i:y:")) != -1) {
switch (opt) {
case 'i':
in_rtmp_url = optarg;
break;
case 'y':
out_rtmp_url = optarg;
break;
default:
break;
// fill the options for mac
for (opt = 0; opt < argc - 1; opt++) {
// ignore all options except -i and -y.
char* p = argv[opt];

// only accept -x
if (p[0] != '-' || p[1] == 0 || p[2] != 0) {
continue;
}

// parse according the option name.
switch (p[1]) {
case 'i': in_rtmp_url = argv[opt + 1]; break;
case 'y': out_rtmp_url = argv[opt + 1]; break;
default: break;
}
}

Expand Down
4 changes: 2 additions & 2 deletions trunk/src/app/srs_app_ffmpeg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -432,8 +432,8 @@ int SrsFFMPEG::start()
// memory leak in child process, it's ok.
char** charpv_params = new char*[params.size() + 1];
for (int i = 0; i < (int)params.size(); i++) {
std::string p = params[i];
charpv_params[i] = (char*)p.c_str();
std::string& p = params[i];
charpv_params[i] = (char*)p.data();
}
// EOF: NULL
charpv_params[params.size()] = NULL;
Expand Down

0 comments on commit a739b2c

Please sign in to comment.