Initial DTSC2 support for DTSC2FLV converter.
This commit is contained in:
parent
3f2c876a7e
commit
0d5011a89a
1 changed files with 16 additions and 5 deletions
|
@ -27,20 +27,31 @@ namespace Converters {
|
||||||
char charBuffer[1024 * 10];
|
char charBuffer[1024 * 10];
|
||||||
unsigned int charCount;
|
unsigned int charCount;
|
||||||
bool doneheader = false;
|
bool doneheader = false;
|
||||||
|
int videoID = -1, audioID = -1;
|
||||||
|
|
||||||
while (std::cin.good()){
|
while (std::cin.good()){
|
||||||
if (Strm.parsePacket(inBuffer)){
|
if (Strm.parsePacket(inBuffer)){
|
||||||
if ( !doneheader){
|
if ( !doneheader){
|
||||||
|
//find first audio and video tracks
|
||||||
|
for (JSON::ObjIter objIt = Strm.metadata["tracks"].ObjBegin(); objIt != Strm.metadata["tracks"].ObjEnd(); objIt++){
|
||||||
|
if (videoID == -1 && objIt->second["type"].asString() == "video"){
|
||||||
|
videoID = objIt->second["trackid"].asInt();
|
||||||
|
}
|
||||||
|
if (audioID == -1 && objIt->second["type"].asString() == "audio"){
|
||||||
|
audioID = objIt->second["trackid"].asInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
doneheader = true;
|
doneheader = true;
|
||||||
std::cout.write(FLV::Header, 13);
|
std::cout.write(FLV::Header, 13);
|
||||||
FLV_out.DTSCMetaInit(Strm);
|
FLV_out.DTSCMetaInit(Strm, Strm.getTrackById(videoID), Strm.getTrackById(audioID));
|
||||||
std::cout.write(FLV_out.data, FLV_out.len);
|
std::cout.write(FLV_out.data, FLV_out.len);
|
||||||
if (Strm.metadata.isMember("video") && Strm.metadata["video"].isMember("init")){
|
if (videoID && Strm.getTrackById(videoID).isMember("init")){
|
||||||
FLV_out.DTSCVideoInit(Strm);
|
FLV_out.DTSCVideoInit(Strm.getTrackById(videoID));
|
||||||
std::cout.write(FLV_out.data, FLV_out.len);
|
std::cout.write(FLV_out.data, FLV_out.len);
|
||||||
}
|
}
|
||||||
if (Strm.metadata.isMember("audio") && Strm.metadata["audio"].isMember("init")){
|
if (audioID && Strm.getTrackById(audioID).isMember("init")){
|
||||||
FLV_out.DTSCAudioInit(Strm);
|
FLV_out.DTSCAudioInit(Strm.getTrackById(audioID));
|
||||||
std::cout.write(FLV_out.data, FLV_out.len);
|
std::cout.write(FLV_out.data, FLV_out.len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue