diff --git a/lib/json.h b/lib/json.h index a0433e01..9c6d2010 100644 --- a/lib/json.h +++ b/lib/json.h @@ -129,9 +129,9 @@ namespace JSON { template void decodeVector( std::string input, T & result ){ result.clear(); - int tmp = 0; + unsigned int tmp = 0; for( int i = 0; i < input.size(); i += 2){ - int curLen = (input[i] << 8) + input[i + 1]; + unsigned int curLen = (input[i] << 8) + input[i + 1]; tmp += curLen; if (curLen != 0xFFFF){ result.push_back(tmp); diff --git a/lib/mp4_conv.cpp b/lib/mp4_conv.cpp index 89b7c83f..8d051f8a 100644 --- a/lib/mp4_conv.cpp +++ b/lib/mp4_conv.cpp @@ -60,6 +60,16 @@ namespace MP4{ } //sort by time on keyframes for interleaving std::sort(keyParts.begin(), keyParts.end(), keyPartSort); + //next for loop is for debugging, delete when done + for (unsigned int i = 0; i < keyParts.size(); i++){ + std::deque parsedParts; + JSON::decodeVector(keyParts[i].parts, parsedParts); + std::cerr << "Header packet size: " << keyParts[i].size; + for (unsigned int o = 0; o < parsedParts.size(); o++){ + std::cerr << " " << parsedParts[o]; + } + std::cerr << std::endl; + } //start arbitrary track addition for header int boxOffset = 1; @@ -331,10 +341,12 @@ namespace MP4{ //while there are requested packets in the trackBuffer:... //std::cerr << curPart << " " << curKey << " " << keyParts.size() << " " << keyParts[curKey].trackID << "|"; //std::cerr << trackBuffer[keyParts[curKey].trackID].empty() << std::endl; + std::cerr << "Curpart: " << curPart < parsedParts; JSON::decodeVector(keyParts[curKey].parts, parsedParts); + std::cerr << "Buffer packet size: " << mediaPart["data"].asString().size() << " Expected:" << parsedParts[curPart] << std::endl; if(parsedParts[curPart] != trackBuffer[keyParts[curKey].trackID].front()["data"].asString().size()){ std::cerr << "Size discrepancy in buffer packet. Size: " << mediaPart["data"].asString().size() << " Expected:" << parsedParts[curPart] << std::endl; } @@ -351,6 +363,7 @@ namespace MP4{ //output JSON packet std::deque parsedParts; JSON::decodeVector(keyParts[curKey].parts, parsedParts); + std::cerr << "JSON packet size: " << mediaPart["data"].asStringRef().size() << " Expected:" << parsedParts[curPart] << std::endl; if(parsedParts[curPart] != mediaPart["data"].asStringRef().size()){ std::cerr << "Size discrepancy in JSON packet. Size: " << mediaPart["data"].asStringRef().size() << " Expected:" << parsedParts[curPart] << std::endl; }