| 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 |