Merge branch 'development' into LTS_development
This commit is contained in:
commit
28db254d7b
3 changed files with 18 additions and 18 deletions
|
@ -691,7 +691,7 @@ bool FLV::Tag::DTSCMetaInit(DTSC::Meta & M, std::set<long unsigned int> & selTra
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("width", M.tracks[*it].width, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("width", M.tracks[*it].width, AMF::AMF0_NUMBER));
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("height", M.tracks[*it].height, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("height", M.tracks[*it].height, AMF::AMF0_NUMBER));
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("videoframerate", (double)M.tracks[*it].fpks / 1000.0, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("videoframerate", (double)M.tracks[*it].fpks / 1000.0, AMF::AMF0_NUMBER));
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("videodatarate", (double)M.tracks[*it].bps * 128.0, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("videodatarate", (double)M.tracks[*it].bps / 128.0, AMF::AMF0_NUMBER));
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
if (M.tracks[*it].type == "audio") {
|
if (M.tracks[*it].type == "audio") {
|
||||||
|
@ -712,7 +712,7 @@ bool FLV::Tag::DTSCMetaInit(DTSC::Meta & M, std::set<long unsigned int> & selTra
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("audiochannels", M.tracks[*it].channels, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("audiochannels", M.tracks[*it].channels, AMF::AMF0_NUMBER));
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("audiosamplerate", M.tracks[*it].rate, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("audiosamplerate", M.tracks[*it].rate, AMF::AMF0_NUMBER));
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("audiosamplesize", M.tracks[*it].size, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("audiosamplesize", M.tracks[*it].size, AMF::AMF0_NUMBER));
|
||||||
amfdata.getContentP(1)->addContent(AMF::Object("audiodatarate", (double)M.tracks[*it].bps * 128.0, AMF::AMF0_NUMBER));
|
amfdata.getContentP(1)->addContent(AMF::Object("audiodatarate", (double)M.tracks[*it].bps / 128.0, AMF::AMF0_NUMBER));
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,10 +145,10 @@ std::string & RTMPStream::Chunk::Pack() {
|
||||||
}
|
}
|
||||||
//support for 0x00ffffff timestamps
|
//support for 0x00ffffff timestamps
|
||||||
if (ntime) {
|
if (ntime) {
|
||||||
output += (unsigned char)(ntime & 0xff);
|
|
||||||
output += (unsigned char)((ntime >> 8) & 0xff);
|
|
||||||
output += (unsigned char)((ntime >> 16) & 0xff);
|
|
||||||
output += (unsigned char)((ntime >> 24) & 0xff);
|
output += (unsigned char)((ntime >> 24) & 0xff);
|
||||||
|
output += (unsigned char)((ntime >> 16) & 0xff);
|
||||||
|
output += (unsigned char)((ntime >> 8) & 0xff);
|
||||||
|
output += (unsigned char)(ntime & 0xff);
|
||||||
}
|
}
|
||||||
len_left = 0;
|
len_left = 0;
|
||||||
while (len_left < len) {
|
while (len_left < len) {
|
||||||
|
@ -172,10 +172,10 @@ std::string & RTMPStream::Chunk::Pack() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ntime) {
|
if (ntime) {
|
||||||
output += (unsigned char)(ntime & 0xff);
|
|
||||||
output += (unsigned char)((ntime >> 8) & 0xff);
|
|
||||||
output += (unsigned char)((ntime >> 16) & 0xff);
|
|
||||||
output += (unsigned char)((ntime >> 24) & 0xff);
|
output += (unsigned char)((ntime >> 24) & 0xff);
|
||||||
|
output += (unsigned char)((ntime >> 16) & 0xff);
|
||||||
|
output += (unsigned char)((ntime >> 8) & 0xff);
|
||||||
|
output += (unsigned char)(ntime & 0xff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -460,10 +460,10 @@ bool RTMPStream::Chunk::Parse(Socket::Buffer & buffer) {
|
||||||
return false;
|
return false;
|
||||||
} //can't read timestamp
|
} //can't read timestamp
|
||||||
indata = buffer.copy(i + 4);
|
indata = buffer.copy(i + 4);
|
||||||
timestamp = indata[i++ ];
|
|
||||||
timestamp += indata[i++ ] * 256;
|
|
||||||
timestamp += indata[i++ ] * 256 * 256;
|
|
||||||
timestamp += indata[i++ ] * 256 * 256 * 256;
|
timestamp += indata[i++ ] * 256 * 256 * 256;
|
||||||
|
timestamp += indata[i++ ] * 256 * 256;
|
||||||
|
timestamp += indata[i++ ] * 256;
|
||||||
|
timestamp = indata[i++ ];
|
||||||
ts_delta = timestamp;
|
ts_delta = timestamp;
|
||||||
DEBUG_MSG(DLVL_DONTEVEN, "Extended timestamp: %u", timestamp);
|
DEBUG_MSG(DLVL_DONTEVEN, "Extended timestamp: %u", timestamp);
|
||||||
}
|
}
|
||||||
|
|
|
@ -404,10 +404,10 @@ namespace Mist{
|
||||||
rtmpheader[1] = 0xff;
|
rtmpheader[1] = 0xff;
|
||||||
rtmpheader[2] = 0xff;
|
rtmpheader[2] = 0xff;
|
||||||
rtmpheader[3] = 0xff;
|
rtmpheader[3] = 0xff;
|
||||||
rtmpheader[header_len++] = timestamp & 0xff;
|
|
||||||
rtmpheader[header_len++] = (timestamp >> 8) & 0xff;
|
|
||||||
rtmpheader[header_len++] = (timestamp >> 16) & 0xff;
|
|
||||||
rtmpheader[header_len++] = (timestamp >> 24) & 0xff;
|
rtmpheader[header_len++] = (timestamp >> 24) & 0xff;
|
||||||
|
rtmpheader[header_len++] = (timestamp >> 16) & 0xff;
|
||||||
|
rtmpheader[header_len++] = (timestamp >> 8) & 0xff;
|
||||||
|
rtmpheader[header_len++] = timestamp & 0xff;
|
||||||
}else{
|
}else{
|
||||||
//regular timestamp
|
//regular timestamp
|
||||||
rtmpheader[1] = (timestamp >> 16) & 0xff;
|
rtmpheader[1] = (timestamp >> 16) & 0xff;
|
||||||
|
@ -422,10 +422,10 @@ namespace Mist{
|
||||||
//set the header's first byte to the "continue" type chunk, for later use
|
//set the header's first byte to the "continue" type chunk, for later use
|
||||||
rtmpheader[0] = 0xC4;
|
rtmpheader[0] = 0xC4;
|
||||||
if (timestamp >= 0x00ffffff){
|
if (timestamp >= 0x00ffffff){
|
||||||
rtmpheader[1] = timestamp & 0xff;
|
rtmpheader[1] = (timestamp >> 24) & 0xff;
|
||||||
rtmpheader[2] = (timestamp >> 8) & 0xff;
|
rtmpheader[2] = (timestamp >> 16) & 0xff;
|
||||||
rtmpheader[3] = (timestamp >> 16) & 0xff;
|
rtmpheader[3] = (timestamp >> 8) & 0xff;
|
||||||
rtmpheader[4] = (timestamp >> 24) & 0xff;
|
rtmpheader[4] = timestamp & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
//sent actual data - never send more than chunk_snd_max at a time
|
//sent actual data - never send more than chunk_snd_max at a time
|
||||||
|
|
Loading…
Add table
Reference in a new issue