Bug 880879: re-land changes lost in the original merge of bug 880879 rs=jesup,derf

Bug 832579 (RTCP NACK doesn't work) plus one small mis-applied diff in alsa that lost the GUID
values for recording devices
This commit is contained in:
Randell Jesup 2013-07-25 07:52:58 -04:00
parent 34a8ba5327
commit cc1afaf92f
4 changed files with 20 additions and 5 deletions

View File

@ -949,8 +949,7 @@ int32_t AudioDeviceLinuxALSA::PlayoutDeviceName(
memset(guid, 0, kAdmMaxGuidSize);
}
return GetDevicesInfo(1, false, index, name, kAdmMaxDeviceNameSize,
guid, kAdmMaxGuidSize);
return GetDevicesInfo(1, true, index, name, kAdmMaxDeviceNameSize);
}
int32_t AudioDeviceLinuxALSA::RecordingDeviceName(
@ -973,7 +972,8 @@ int32_t AudioDeviceLinuxALSA::RecordingDeviceName(
memset(guid, 0, kAdmMaxGuidSize);
}
return GetDevicesInfo(1, false, index, name, kAdmMaxDeviceNameSize);
return GetDevicesInfo(1, false, index, name, kAdmMaxDeviceNameSize,
guid, kAdmMaxGuidSize);
}
int16_t AudioDeviceLinuxALSA::RecordingDevices()

View File

@ -1332,6 +1332,7 @@ int32_t ViEChannel::StartSend() {
rtp_rtcp->SetSendingMediaStatus(true);
rtp_rtcp->SetSendingStatus(true);
}
vie_receiver_.StartRTCPReceive();
return 0;
}
@ -1367,6 +1368,7 @@ int32_t ViEChannel::StopSend() {
rtp_rtcp->ResetSendDataCountersRTP();
rtp_rtcp->SetSendingStatus(false);
}
vie_receiver_.StopRTCPReceive();
return 0;
}

View File

@ -33,7 +33,8 @@ ViEReceiver::ViEReceiver(const int32_t channel_id,
external_decryption_(NULL),
decryption_buffer_(NULL),
rtp_dump_(NULL),
receiving_(false) {
receiving_(false),
receiving_rtcp_(false) {
assert(remote_bitrate_estimator);
}
@ -98,7 +99,7 @@ int ViEReceiver::ReceivedRTPPacket(const void* rtp_packet,
int ViEReceiver::ReceivedRTCPPacket(const void* rtcp_packet,
int rtcp_packet_length) {
if (!receiving_) {
if (!receiving_rtcp_) {
return -1;
}
return InsertRTCPPacket(static_cast<const int8_t*>(rtcp_packet),
@ -231,6 +232,14 @@ void ViEReceiver::StopReceive() {
receiving_ = false;
}
void ViEReceiver::StartRTCPReceive() {
receiving_rtcp_ = true;
}
void ViEReceiver::StopRTCPReceive() {
receiving_rtcp_ = false;
}
int ViEReceiver::StartRTPDump(const char file_nameUTF8[1024]) {
CriticalSectionScoped cs(receive_cs_.get());
if (rtp_dump_) {

View File

@ -44,6 +44,9 @@ class ViEReceiver : public RtpData {
void StartReceive();
void StopReceive();
void StartRTCPReceive();
void StopRTCPReceive();
int StartRTPDump(const char file_nameUTF8[1024]);
int StopRTPDump();
@ -80,6 +83,7 @@ class ViEReceiver : public RtpData {
uint8_t* decryption_buffer_;
RtpDump* rtp_dump_;
bool receiving_;
bool receiving_rtcp_;
};
} // namespace webrt