OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1148 | 1148 |
1149 if (!ValidateReceiveSsrcAvailability(sp)) | 1149 if (!ValidateReceiveSsrcAvailability(sp)) |
1150 return false; | 1150 return false; |
1151 | 1151 |
1152 for (uint32 used_ssrc : sp.ssrcs) | 1152 for (uint32 used_ssrc : sp.ssrcs) |
1153 receive_ssrcs_.insert(used_ssrc); | 1153 receive_ssrcs_.insert(used_ssrc); |
1154 | 1154 |
1155 webrtc::VideoReceiveStream::Config config; | 1155 webrtc::VideoReceiveStream::Config config; |
1156 ConfigureReceiverRtp(&config, sp); | 1156 ConfigureReceiverRtp(&config, sp); |
1157 | 1157 |
1158 // Set up A/V sync if there is a VoiceChannel. | 1158 // Set up A/V sync group based on sync label. |
1159 // TODO(pbos): The A/V is synched by the receiving channel. So we need to know | 1159 config.sync_group = sp.sync_label; |
1160 // the SSRC of the remote audio channel in order to sync the correct webrtc | |
1161 // VoiceEngine channel. For now sync the first channel in non-conference to | |
1162 // match existing behavior in WebRtcVideoEngine. | |
1163 if (voice_channel_id_ != -1 && receive_streams_.empty() && | |
1164 !options_.conference_mode.GetWithDefaultIfUnset(false)) { | |
1165 config.audio_channel_id = voice_channel_id_; | |
1166 } | |
1167 | 1160 |
1168 config.rtp.remb = false; | 1161 config.rtp.remb = false; |
1169 VideoCodecSettings send_codec; | 1162 VideoCodecSettings send_codec; |
1170 if (send_codec_.Get(&send_codec)) { | 1163 if (send_codec_.Get(&send_codec)) { |
1171 config.rtp.remb = HasRemb(send_codec.codec); | 1164 config.rtp.remb = HasRemb(send_codec.codec); |
1172 } | 1165 } |
1173 | 1166 |
1174 receive_streams_[ssrc] = new WebRtcVideoReceiveStream( | 1167 receive_streams_[ssrc] = new WebRtcVideoReceiveStream( |
1175 call_.get(), sp, external_decoder_factory_, default_stream, config, | 1168 call_.get(), sp, external_decoder_factory_, default_stream, config, |
1176 recv_codecs_); | 1169 recv_codecs_); |
(...skipping 1433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2610 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; | 2603 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; |
2611 } | 2604 } |
2612 } | 2605 } |
2613 | 2606 |
2614 return video_codecs; | 2607 return video_codecs; |
2615 } | 2608 } |
2616 | 2609 |
2617 } // namespace cricket | 2610 } // namespace cricket |
2618 | 2611 |
2619 #endif // HAVE_WEBRTC_VIDEO | 2612 #endif // HAVE_WEBRTC_VIDEO |
OLD | NEW |