Fix assorted DTSC header bugs.
This commit is contained in:
parent
583ffd7e89
commit
fccacc5c96
1 changed files with 27 additions and 27 deletions
|
@ -155,23 +155,23 @@ namespace DTSC {
|
||||||
}
|
}
|
||||||
|
|
||||||
readOnlyTrack::readOnlyTrack(JSON::Value & trackRef){
|
readOnlyTrack::readOnlyTrack(JSON::Value & trackRef){
|
||||||
if (trackRef.isMember("fragments")){
|
if (trackRef.isMember("fragments") && trackRef["fragments"].isString()){
|
||||||
fragments = (Fragment*)trackRef["fragments"].asString().data();
|
fragments = (Fragment*)trackRef["fragments"].asStringRef().data();
|
||||||
fragLen = trackRef["fragments"].asString().size() / 11;
|
fragLen = trackRef["fragments"].asStringRef().size() / 11;
|
||||||
}else{
|
}else{
|
||||||
fragments = 0;
|
fragments = 0;
|
||||||
fragLen = 0;
|
fragLen = 0;
|
||||||
}
|
}
|
||||||
if (trackRef.isMember("keys")){
|
if (trackRef.isMember("keys") && trackRef["keys"].isString()){
|
||||||
keys = (Key*)trackRef["keys"].asString().data();
|
keys = (Key*)trackRef["keys"].asStringRef().data();
|
||||||
keyLen = trackRef["keys"].asString().size() / 16;
|
keyLen = trackRef["keys"].asStringRef().size() / 16;
|
||||||
}else{
|
}else{
|
||||||
keys = 0;
|
keys = 0;
|
||||||
keyLen = 0;
|
keyLen = 0;
|
||||||
}
|
}
|
||||||
if (trackRef.isMember("parts")){
|
if (trackRef.isMember("parts") && trackRef["parts"].isString()){
|
||||||
parts = (Part*)trackRef["parts"].asString().data();
|
parts = (Part*)trackRef["parts"].asStringRef().data();
|
||||||
partLen = trackRef["parts"].asString().size() / 9;
|
partLen = trackRef["parts"].asStringRef().size() / 9;
|
||||||
}else{
|
}else{
|
||||||
parts = 0;
|
parts = 0;
|
||||||
partLen = 0;
|
partLen = 0;
|
||||||
|
@ -181,9 +181,9 @@ namespace DTSC {
|
||||||
lastms = trackRef["lastms"].asInt();
|
lastms = trackRef["lastms"].asInt();
|
||||||
bps = trackRef["bps"].asInt();
|
bps = trackRef["bps"].asInt();
|
||||||
missedFrags = trackRef["missed_frags"].asInt();
|
missedFrags = trackRef["missed_frags"].asInt();
|
||||||
codec = trackRef["codec"].asString();
|
codec = trackRef["codec"].asStringRef();
|
||||||
type = trackRef["type"].asString();
|
type = trackRef["type"].asStringRef();
|
||||||
init = trackRef["init"].asString();
|
init = trackRef["init"].asStringRef();
|
||||||
if (type == "audio"){
|
if (type == "audio"){
|
||||||
rate = trackRef["rate"].asInt();
|
rate = trackRef["rate"].asInt();
|
||||||
size = trackRef["size"].asInt();
|
size = trackRef["size"].asInt();
|
||||||
|
@ -195,8 +195,8 @@ namespace DTSC {
|
||||||
fpks = trackRef["fpks"].asInt();
|
fpks = trackRef["fpks"].asInt();
|
||||||
}
|
}
|
||||||
if (codec == "vorbis" || codec == "theora"){
|
if (codec == "vorbis" || codec == "theora"){
|
||||||
idHeader = trackRef["idheader"].asString();
|
idHeader = trackRef["idheader"].asStringRef();
|
||||||
commentHeader = trackRef["commentheader"].asString();
|
commentHeader = trackRef["commentheader"].asStringRef();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,25 +232,25 @@ namespace DTSC {
|
||||||
|
|
||||||
Track::Track(JSON::Value & trackRef){
|
Track::Track(JSON::Value & trackRef){
|
||||||
if (trackRef.isMember("fragments") && trackRef["fragments"].isString()){
|
if (trackRef.isMember("fragments") && trackRef["fragments"].isString()){
|
||||||
Fragment* tmp = (Fragment*)trackRef["fragments"].asString().data();
|
Fragment* tmp = (Fragment*)trackRef["fragments"].asStringRef().data();
|
||||||
fragments = std::deque<Fragment>(tmp, tmp + (trackRef["fragments"].asString().size() / 11));
|
fragments = std::deque<Fragment>(tmp, tmp + (trackRef["fragments"].asStringRef().size() / 11));
|
||||||
}
|
}
|
||||||
if (trackRef.isMember("keys") && trackRef["keys"].isString()){
|
if (trackRef.isMember("keys") && trackRef["keys"].isString()){
|
||||||
Key* tmp = (Key*)trackRef["keys"].asString().data();
|
Key* tmp = (Key*)trackRef["keys"].asStringRef().data();
|
||||||
keys = std::deque<Key>(tmp, tmp + (trackRef["keys"].asString().size() / 16));
|
keys = std::deque<Key>(tmp, tmp + (trackRef["keys"].asStringRef().size() / 16));
|
||||||
}
|
}
|
||||||
if (trackRef.isMember("parts") && trackRef["parts"].isString()){
|
if (trackRef.isMember("parts") && trackRef["parts"].isString()){
|
||||||
Part* tmp = (Part*)trackRef["parts"].asString().data();
|
Part* tmp = (Part*)trackRef["parts"].asStringRef().data();
|
||||||
parts = std::deque<Part>(tmp,tmp + (trackRef["parts"].asString().size() / 9));
|
parts = std::deque<Part>(tmp,tmp + (trackRef["parts"].asStringRef().size() / 9));
|
||||||
}
|
}
|
||||||
trackID = trackRef["trackid"].asInt();
|
trackID = trackRef["trackid"].asInt();
|
||||||
firstms = trackRef["firstms"].asInt();
|
firstms = trackRef["firstms"].asInt();
|
||||||
lastms = trackRef["lastms"].asInt();
|
lastms = trackRef["lastms"].asInt();
|
||||||
bps = trackRef["bps"].asInt();
|
bps = trackRef["bps"].asInt();
|
||||||
missedFrags = trackRef["missed_frags"].asInt();
|
missedFrags = trackRef["missed_frags"].asInt();
|
||||||
codec = trackRef["codec"].asString();
|
codec = trackRef["codec"].asStringRef();
|
||||||
type = trackRef["type"].asString();
|
type = trackRef["type"].asStringRef();
|
||||||
init = trackRef["init"].asString();
|
init = trackRef["init"].asStringRef();
|
||||||
if (type == "audio"){
|
if (type == "audio"){
|
||||||
rate = trackRef["rate"].asInt();
|
rate = trackRef["rate"].asInt();
|
||||||
size = trackRef["size"].asInt();
|
size = trackRef["size"].asInt();
|
||||||
|
@ -262,8 +262,8 @@ namespace DTSC {
|
||||||
fpks = trackRef["fpks"].asInt();
|
fpks = trackRef["fpks"].asInt();
|
||||||
}
|
}
|
||||||
if (codec == "vorbis" || codec == "theora"){
|
if (codec == "vorbis" || codec == "theora"){
|
||||||
idHeader = trackRef["idheader"].asString();
|
idHeader = trackRef["idheader"].asStringRef();
|
||||||
commentHeader = trackRef["commentheader"].asString();
|
commentHeader = trackRef["commentheader"].asStringRef();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ namespace DTSC {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Part newPart;
|
Part newPart;
|
||||||
newPart.setSize(pack["data"].asString().size());
|
newPart.setSize(pack["data"].asStringRef().size());
|
||||||
newPart.setOffset(pack["offset"].asInt());
|
newPart.setOffset(pack["offset"].asInt());
|
||||||
if (parts.size()){
|
if (parts.size()){
|
||||||
parts[parts.size()-1].setDuration(pack["time"].asInt() - lastms);
|
parts[parts.size()-1].setDuration(pack["time"].asInt() - lastms);
|
||||||
|
@ -322,7 +322,7 @@ namespace DTSC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
keys.rbegin()->setParts(keys.rbegin()->getParts() + 1);
|
keys.rbegin()->setParts(keys.rbegin()->getParts() + 1);
|
||||||
fragments.rbegin()->setSize(fragments.rbegin()->getSize() + pack["data"].asString().size());
|
fragments.rbegin()->setSize(fragments.rbegin()->getSize() + pack["data"].asStringRef().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
Key & Track::getKey(unsigned int keyNum){
|
Key & Track::getKey(unsigned int keyNum){
|
||||||
|
|
Loading…
Add table
Reference in a new issue