RTMP header sends now use the current media timestamp instead of a hardcoded 0.
This commit is contained in:
		
							parent
							
								
									0d956dca26
								
							
						
					
					
						commit
						7124f6070b
					
				
					 1 changed files with 13 additions and 3 deletions
				
			
		| 
						 | 
					@ -573,21 +573,31 @@ namespace Mist{
 | 
				
			||||||
      selectedTracks.insert(it->first);
 | 
					      selectedTracks.insert(it->first);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    tag.DTSCMetaInit(meta, selectedTracks);
 | 
					    tag.DTSCMetaInit(meta, selectedTracks);
 | 
				
			||||||
    if (tag.len){myConn.SendNow(RTMPStream::SendMedia(tag));}
 | 
					    if (tag.len){
 | 
				
			||||||
 | 
					      tag.tagTime(currentTime());
 | 
				
			||||||
 | 
					      myConn.SendNow(RTMPStream::SendMedia(tag));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (std::set<size_t>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){
 | 
					    for (std::set<size_t>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){
 | 
				
			||||||
      std::string type = M.getType(*it);
 | 
					      std::string type = M.getType(*it);
 | 
				
			||||||
      if (type == "video"){
 | 
					      if (type == "video"){
 | 
				
			||||||
        if (tag.DTSCVideoInit(meta, *it)){myConn.SendNow(RTMPStream::SendMedia(tag));}
 | 
					        if (tag.DTSCVideoInit(meta, *it)){
 | 
				
			||||||
 | 
					          tag.tagTime(currentTime());
 | 
				
			||||||
 | 
					          myConn.SendNow(RTMPStream::SendMedia(tag));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      if (type == "audio"){
 | 
					      if (type == "audio"){
 | 
				
			||||||
        if (tag.DTSCAudioInit(meta.getCodec(*it), meta.getRate(*it), meta.getSize(*it), meta.getChannels(*it), meta.getInit(*it))){myConn.SendNow(RTMPStream::SendMedia(tag));}
 | 
					        if (tag.DTSCAudioInit(meta.getCodec(*it), meta.getRate(*it), meta.getSize(*it), meta.getChannels(*it), meta.getInit(*it))){
 | 
				
			||||||
 | 
					          tag.tagTime(currentTime());
 | 
				
			||||||
 | 
					          myConn.SendNow(RTMPStream::SendMedia(tag));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    //Insert silent init data if audio set to silent
 | 
					    //Insert silent init data if audio set to silent
 | 
				
			||||||
    hasSilence = (targetParams.count("audio") && targetParams["audio"] == "silent");
 | 
					    hasSilence = (targetParams.count("audio") && targetParams["audio"] == "silent");
 | 
				
			||||||
    if (hasSilence && tag.DTSCAudioInit("AAC", 44100, 32, 2, std::string("\022\020V\345\000", 5))){
 | 
					    if (hasSilence && tag.DTSCAudioInit("AAC", 44100, 32, 2, std::string("\022\020V\345\000", 5))){
 | 
				
			||||||
      INFO_MSG("Inserting silence track init data");
 | 
					      INFO_MSG("Inserting silence track init data");
 | 
				
			||||||
 | 
					      tag.tagTime(currentTime());
 | 
				
			||||||
      myConn.SendNow(RTMPStream::SendMedia(tag));
 | 
					      myConn.SendNow(RTMPStream::SendMedia(tag));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    sentHeader = true;
 | 
					    sentHeader = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue