Fix crash with CVO turned on for VP9 codec
CopyCodecSpecific nulls out the rtpheader pointer hence causing the crash downstream.
More details about the codec type enums:
There are 2 enums defined. webrtc::VideoCodecType webrtc::RtpCodecTypes and they don't match. Inside CopyCodecSpecific in generic_encoder.cc, it was converted from the first to the 2nd type. At that point, it'll be kRtpVideoNone (as the effect of memset to 0). kRtpVideoNone is a bad value as it could cause assert. Later, it'll be reset to kRtpVideoGeneric in RTPSender::SendOutgoingData so it's not a concern.
BUG=4511
R=pbos@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org
Committed: https://crrev.com/29b1a1c0c7c6f4b1ae4d63844b1dfaa7a72530a0
Cr-Commit-Position: refs/heads/master@{#8951}
Review URL: https://webrtc-codereview.appspot.com/47999004
Cr-Commit-Position: refs/heads/master@{#8955}
diff --git a/webrtc/test/call_test.cc b/webrtc/test/call_test.cc
index 126c716..9e78e82 100644
--- a/webrtc/test/call_test.cc
+++ b/webrtc/test/call_test.cc
@@ -8,12 +8,15 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/test/call_test.h"
-
#include "webrtc/test/encoder_settings.h"
namespace webrtc {
namespace test {
+namespace {
+const int kVideoRotationRtpExtensionId = 4;
+}
+
CallTest::CallTest()
: clock_(Clock::GetRealTimeClock()),
send_stream_(NULL),
@@ -94,6 +97,8 @@
encoder_config_.streams = test::CreateVideoStreams(num_streams);
for (size_t i = 0; i < num_streams; ++i)
send_config_.rtp.ssrcs.push_back(kSendSsrcs[i]);
+ send_config_.rtp.extensions.push_back(
+ RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId));
}
void CallTest::CreateMatchingReceiveConfigs() {