Fixed non-H264 video tracks for FLV, HDS and RTMP outputs.

This commit is contained in:
Thulinma 2014-08-07 21:49:56 +02:00
parent 42f5ef5468
commit 3d9f603c4b
3 changed files with 16 additions and 14 deletions

View file

@ -233,14 +233,16 @@ namespace Mist {
HTTP_S.Chunkify("\000\000\000\000mdat", 8, myConn); HTTP_S.Chunkify("\000\000\000\000mdat", 8, myConn);
//send init data, if needed. //send init data, if needed.
if (audioTrack > 0 && myMeta.tracks[audioTrack].init != ""){ if (audioTrack > 0 && myMeta.tracks[audioTrack].init != ""){
tag.DTSCAudioInit(myMeta.tracks[audioTrack]); if (tag.DTSCAudioInit(myMeta.tracks[audioTrack])){
tag.tagTime(mstime); tag.tagTime(mstime);
HTTP_S.Chunkify(tag.data, tag.len, myConn); HTTP_S.Chunkify(tag.data, tag.len, myConn);
}
} }
if (tid > 0){ if (tid > 0){
tag.DTSCVideoInit(myMeta.tracks[tid]); if (tag.DTSCVideoInit(myMeta.tracks[tid])){
tag.tagTime(mstime); tag.tagTime(mstime);
HTTP_S.Chunkify(tag.data, tag.len, myConn); HTTP_S.Chunkify(tag.data, tag.len, myConn);
}
} }
parseData = true; parseData = true;
wantRequest = false; wantRequest = false;

View file

@ -52,12 +52,14 @@ namespace Mist {
for (std::set<long unsigned int>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){ for (std::set<long unsigned int>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){
if (myMeta.tracks[*it].type == "video"){ if (myMeta.tracks[*it].type == "video"){
tag.DTSCVideoInit(myMeta.tracks[*it]); if (tag.DTSCVideoInit(myMeta.tracks[*it])){
myConn.SendNow(tag.data, tag.len); myConn.SendNow(tag.data, tag.len);
}
} }
if (myMeta.tracks[*it].type == "audio"){ if (myMeta.tracks[*it].type == "audio"){
tag.DTSCAudioInit(myMeta.tracks[*it]); if (tag.DTSCAudioInit(myMeta.tracks[*it])){
myConn.SendNow(tag.data, tag.len); myConn.SendNow(tag.data, tag.len);
}
} }
} }
sentHeader = true; sentHeader = true;

View file

@ -281,14 +281,12 @@ namespace Mist {
for (std::set<long unsigned int>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++) { for (std::set<long unsigned int>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++) {
if (myMeta.tracks[*it].type == "video") { if (myMeta.tracks[*it].type == "video") {
tag.DTSCVideoInit(myMeta.tracks[*it]); if (tag.DTSCVideoInit(myMeta.tracks[*it])){
if (tag.len) {
myConn.SendNow(RTMPStream::SendMedia(tag)); myConn.SendNow(RTMPStream::SendMedia(tag));
} }
} }
if (myMeta.tracks[*it].type == "audio") { if (myMeta.tracks[*it].type == "audio") {
tag.DTSCAudioInit(myMeta.tracks[*it]); if (tag.DTSCAudioInit(myMeta.tracks[*it])){
if (tag.len) {
myConn.SendNow(RTMPStream::SendMedia(tag)); myConn.SendNow(RTMPStream::SendMedia(tag));
} }
} }