Permit arbitrary payload names for kVideoCodecGeneric.
BUG=1575 Review URL: https://webrtc-codereview.appspot.com/1282005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3768 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
|
||||
#include "webrtc/common_types.h"
|
||||
#include "webrtc/engine_configurations.h"
|
||||
#include "webrtc/modules/video_coding/codecs/i420/main/interface/i420.h"
|
||||
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
|
||||
#include "webrtc/test/channel_transport/include/channel_transport.h"
|
||||
#include "webrtc/video_engine/test/auto_test/interface/vie_autotest_defines.h"
|
||||
@ -497,12 +498,43 @@ void ViEAutoTest::ViECodecAPITest() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
memset(&video_codec, 0, sizeof(video_codec));
|
||||
EXPECT_EQ(0, codec->GetSendCodec(video_channel, video_codec));
|
||||
EXPECT_EQ(webrtc::kVideoCodecI420, video_codec.codecType);
|
||||
|
||||
// Register a generic codec
|
||||
memset(&video_codec, 0, sizeof(video_codec));
|
||||
video_codec.codecType = webrtc::kVideoCodecGeneric;
|
||||
strcpy(video_codec.plName, "generic-codec");
|
||||
uint8_t payload_type = 127;
|
||||
video_codec.plType = payload_type;
|
||||
video_codec.minBitrate = 100;
|
||||
video_codec.startBitrate = 500;
|
||||
video_codec.maxBitrate = 10000;
|
||||
video_codec.width = 1920;
|
||||
video_codec.height = 1080;
|
||||
video_codec.maxFramerate = 30;
|
||||
video_codec.qpMax = 50;
|
||||
|
||||
webrtc::ViEExternalCodec* external_codec =
|
||||
webrtc::ViEExternalCodec::GetInterface(video_engine);
|
||||
EXPECT_TRUE(external_codec != NULL);
|
||||
|
||||
// Any encoder will do.
|
||||
webrtc::I420Encoder encoder;
|
||||
EXPECT_EQ(0, external_codec->RegisterExternalSendCodec(video_channel,
|
||||
payload_type, &encoder,
|
||||
false));
|
||||
EXPECT_EQ(0, codec->SetSendCodec(video_channel, video_codec));
|
||||
|
||||
memset(&video_codec, 0, sizeof(video_codec));
|
||||
EXPECT_EQ(0, codec->GetSendCodec(video_channel, video_codec));
|
||||
EXPECT_EQ(webrtc::kVideoCodecGeneric, video_codec.codecType);
|
||||
|
||||
EXPECT_EQ(0, base->DeleteChannel(video_channel));
|
||||
|
||||
EXPECT_EQ(0, external_codec->Release());
|
||||
EXPECT_EQ(0, codec->Release());
|
||||
EXPECT_EQ(0, base->Release());
|
||||
EXPECT_TRUE(webrtc::VideoEngine::Delete(video_engine));
|
||||
|
||||
@ -342,6 +342,7 @@ int VideoEngineSampleCode(void* window1, void* window2)
|
||||
getchar();
|
||||
codecIdx = codecIdx - 1; // Compensate for idx start at 1.
|
||||
#endif
|
||||
// VP8 over generic transport gets this special one.
|
||||
if (codecIdx == ptrViECodec->NumberOfCodecs()) {
|
||||
for (codecIdx = 0; codecIdx < ptrViECodec->NumberOfCodecs(); ++codecIdx) {
|
||||
error = ptrViECodec->GetCodec(codecIdx, videoCodec);
|
||||
@ -351,7 +352,9 @@ int VideoEngineSampleCode(void* window1, void* window2)
|
||||
}
|
||||
assert(videoCodec.codecType == webrtc::kVideoCodecVP8);
|
||||
videoCodec.codecType = webrtc::kVideoCodecGeneric;
|
||||
strcpy(videoCodec.plName, "GENERIC");
|
||||
|
||||
// Any plName should work with generic
|
||||
strcpy(videoCodec.plName, "VP8-GENERIC");
|
||||
uint8_t pl_type = 127;
|
||||
videoCodec.plType = pl_type;
|
||||
webrtc::ViEExternalCodec* external_codec = webrtc::ViEExternalCodec
|
||||
|
||||
Reference in New Issue
Block a user