mirror of
https://github.com/ossrs/srs.git
synced 2025-02-14 20:31:56 +00:00
fix the bug for fork ffmpeg in mac, the local variable is unvailable.
This commit is contained in:
parent
3e5821efff
commit
a739b2c555
3 changed files with 36 additions and 24 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue