Commit 974428d1 by xiongziliang

确保获取丢包率时线程安全

parent df7a3242
...@@ -333,6 +333,8 @@ Value makeMediaSourceJson(MediaSource &media){ ...@@ -333,6 +333,8 @@ Value makeMediaSourceJson(MediaSource &media){
item["originSock"] = Json::nullValue; item["originSock"] = Json::nullValue;
} }
//getLossRate有线程安全问题;使用getMediaInfo接口才能获取丢包率;getMediaList接口将忽略丢包率
auto current_thread = media.getOwnerPoller()->isCurrentThread();
for(auto &track : media.getTracks(false)){ for(auto &track : media.getTracks(false)){
Value obj; Value obj;
auto codec_type = track->getTrackType(); auto codec_type = track->getTrackType();
...@@ -343,7 +345,9 @@ Value makeMediaSourceJson(MediaSource &media){ ...@@ -343,7 +345,9 @@ Value makeMediaSourceJson(MediaSource &media){
switch(codec_type){ switch(codec_type){
case TrackAudio : { case TrackAudio : {
auto audio_track = dynamic_pointer_cast<AudioTrack>(track); auto audio_track = dynamic_pointer_cast<AudioTrack>(track);
obj["loss"] = media.getLossRate(TrackAudio); if (current_thread) {
obj["loss"] = media.getLossRate(TrackAudio);
}
obj["sample_rate"] = audio_track->getAudioSampleRate(); obj["sample_rate"] = audio_track->getAudioSampleRate();
obj["channels"] = audio_track->getAudioChannel(); obj["channels"] = audio_track->getAudioChannel();
obj["sample_bit"] = audio_track->getAudioSampleBit(); obj["sample_bit"] = audio_track->getAudioSampleBit();
...@@ -351,7 +355,9 @@ Value makeMediaSourceJson(MediaSource &media){ ...@@ -351,7 +355,9 @@ Value makeMediaSourceJson(MediaSource &media){
} }
case TrackVideo : { case TrackVideo : {
auto video_track = dynamic_pointer_cast<VideoTrack>(track); auto video_track = dynamic_pointer_cast<VideoTrack>(track);
obj["loss"] = media.getLossRate(TrackVideo); if (current_thread) {
obj["loss"] = media.getLossRate(TrackVideo);
}
obj["width"] = video_track->getVideoWidth(); obj["width"] = video_track->getVideoWidth();
obj["height"] = video_track->getVideoHeight(); obj["height"] = video_track->getVideoHeight();
obj["fps"] = round(video_track->getVideoFps()); obj["fps"] = round(video_track->getVideoFps());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论