Added pausemark support to DTSC::Stream and fixes several minor bugs.
This commit is contained in:
parent
9bf92add4f
commit
932c0e5b7b
3 changed files with 15 additions and 8 deletions
14
lib/dtsc.cpp
14
lib/dtsc.cpp
|
@ -54,14 +54,15 @@ bool DTSC::Stream::parsePacket(std::string & buffer){
|
|||
datapointertype = INVALID;
|
||||
if (buffers.front().isMember("data")){
|
||||
datapointer = &(buffers.front()["data"].strVal);
|
||||
}else{
|
||||
datapointer = 0;
|
||||
}
|
||||
if (buffers.front().isMember("datatype")){
|
||||
std::string tmp = buffers.front()["datatype"].asString();
|
||||
if (tmp == "video"){datapointertype = VIDEO;}
|
||||
if (tmp == "audio"){datapointertype = AUDIO;}
|
||||
if (tmp == "meta"){datapointertype = META;}
|
||||
}
|
||||
}else{
|
||||
datapointer = 0;
|
||||
if (tmp == "pause_marker"){datapointertype = PAUSEMARK;}
|
||||
}
|
||||
buffer.erase(0, len+8);
|
||||
while (buffers.size() > buffercount){buffers.pop_back();}
|
||||
|
@ -295,7 +296,11 @@ void DTSC::File::seekNext(){
|
|||
currframe++;
|
||||
currtime = jsonbuffer["time"].asInt();
|
||||
#if DEBUG >= 4
|
||||
std::cerr << "Found a new frame " << currframe << " @ " << pos << "b/" << currtime << "s" << std::endl;
|
||||
if (frames[currframe] != pos){
|
||||
std::cerr << "Found a new frame " << currframe << " @ " << pos << "b/" << currtime << "ms" << std::endl;
|
||||
}else{
|
||||
std::cerr << "Passing frame " << currframe << " @ " << pos << "b/" << currtime << "ms" << std::endl;
|
||||
}
|
||||
#endif
|
||||
frames[currframe] = pos;
|
||||
msframes[currframe] = currtime;
|
||||
|
@ -329,6 +334,7 @@ bool DTSC::File::seek_frame(int frameno){
|
|||
seekNext();
|
||||
if (jsonbuffer.isNull()){return false;}
|
||||
}
|
||||
seek_frame(frameno);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,6 +56,7 @@ namespace DTSC{
|
|||
AUDIO, ///< Stream Audio data
|
||||
VIDEO, ///< Stream Video data
|
||||
META, ///< Stream Metadata
|
||||
PAUSEMARK, ///< Pause marker
|
||||
INVALID ///< Anything else or no data available.
|
||||
};
|
||||
|
||||
|
|
|
@ -406,7 +406,7 @@ std::string & JSON::Value::toNetPacked(){
|
|||
std::string packed = toPacked();
|
||||
strVal.resize(packed.size() + 8);
|
||||
//insert proper header for this type of data
|
||||
if (isMember("data")){
|
||||
if (isMember("datatype")){
|
||||
memcpy((void*)strVal.c_str(), "DTPD", 4);
|
||||
}else{
|
||||
memcpy((void*)strVal.c_str(), "DTSC", 4);
|
||||
|
|
Loading…
Add table
Reference in a new issue