summaryrefslogtreecommitdiff
path: root/modules/video_coding/main/source/codec_database.cc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/video_coding/main/source/codec_database.cc')
-rw-r--r--modules/video_coding/main/source/codec_database.cc34
1 files changed, 32 insertions, 2 deletions
diff --git a/modules/video_coding/main/source/codec_database.cc b/modules/video_coding/main/source/codec_database.cc
index e7a9d91b..7e26bea4 100644
--- a/modules/video_coding/main/source/codec_database.cc
+++ b/modules/video_coding/main/source/codec_database.cc
@@ -102,6 +102,30 @@ bool VCMCodecDataBase::Codec(int list_id,
return true;
}
#endif
+#ifdef VIDEOCODEC_H264
+ case VCM_H264_IDX: {
+ strncpy(settings->plName, "H264", 5);
+ settings->codecType = kVideoCodecH264;
+ // 96 to 127 dynamic payload types for video codecs.
+ settings->plType = VCM_H264_PAYLOAD_TYPE;
+ settings->startBitrate = 100;
+ settings->minBitrate = VCM_MIN_BITRATE;
+ settings->maxBitrate = 0;
+ settings->maxFramerate = VCM_DEFAULT_FRAME_RATE;
+ settings->width = VCM_DEFAULT_CODEC_WIDTH;
+ settings->height = VCM_DEFAULT_CODEC_HEIGHT;
+ settings->numberOfSimulcastStreams = 0;
+ settings->qpMax = 56;
+ settings->codecSpecific.H264.profile = kProfileBase;
+ settings->codecSpecific.H264.frameDroppingOn = true;
+ settings->codecSpecific.H264.keyFrameInterval = 3000;
+ settings->codecSpecific.H264.spsData = NULL;
+ settings->codecSpecific.H264.spsLen = 0;
+ settings->codecSpecific.H264.ppsData = NULL;
+ settings->codecSpecific.H264.ppsLen = 0;
+ return true;
+ }
+#endif
#ifdef VIDEOCODEC_I420
case VCM_I420_IDX: {
strncpy(settings->plName, "I420", 5);
@@ -316,8 +340,7 @@ bool VCMCodecDataBase::RequiresEncoderReset(const VideoCodec& new_send_codec) {
case kVideoCodecVP8:
if (memcmp(&new_send_codec.codecSpecific.VP8,
&send_codec_.codecSpecific.VP8,
- sizeof(new_send_codec.codecSpecific.VP8)) !=
- 0) {
+ sizeof(new_send_codec.codecSpecific.VP8)) != 0) {
return true;
}
break;
@@ -327,6 +350,12 @@ bool VCMCodecDataBase::RequiresEncoderReset(const VideoCodec& new_send_codec) {
case kVideoCodecI420:
case kVideoCodecRED:
case kVideoCodecULPFEC:
+ case kVideoCodecH264:
+ if (memcmp(&new_send_codec.codecSpecific.H264,
+ &send_codec_.codecSpecific.H264,
+ sizeof(new_send_codec.codecSpecific.H264)) != 0) {
+ return true;
+ }
break;
// Unknown codec type, reset just to be sure.
case kVideoCodecUnknown:
@@ -619,6 +648,7 @@ VCMGenericDecoder* VCMCodecDataBase::CreateDecoder(VideoCodecType type) const {
return new VCMGenericDecoder(*(new I420Decoder));
#endif
default:
+ LOG(LS_WARNING) << "No internal decoder of this type exists.";
return NULL;
}
}