Initial DTSC2 support for DTSC2FLV converter.

This commit is contained in:
Thulinma 2013-06-06 14:51:16 +02:00
parent 3f2c876a7e
commit 0d5011a89a

View file

@ -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);
} }
} }