diff --git a/webrtc/engine_configurations.h b/webrtc/engine_configurations.h index c832d9acb3..42b181691c 100644 --- a/webrtc/engine_configurations.h +++ b/webrtc/engine_configurations.h @@ -13,19 +13,6 @@ #include "webrtc/typedefs.h" -// ============================================================================ -// Voice and Video -// ============================================================================ - -// ---------------------------------------------------------------------------- -// [Video] Codec settings -// ---------------------------------------------------------------------------- - -#define VIDEOCODEC_I420 -#define VIDEOCODEC_VP8 -#define VIDEOCODEC_VP9 -#define VIDEOCODEC_H264 - // ============================================================================ // VoiceEngine // ============================================================================ diff --git a/webrtc/modules/video_coding/codec_database.cc b/webrtc/modules/video_coding/codec_database.cc index d3e2ce4565..a43943bee0 100644 --- a/webrtc/modules/video_coding/codec_database.cc +++ b/webrtc/modules/video_coding/codec_database.cc @@ -15,18 +15,10 @@ #include "webrtc/base/checks.h" #include "webrtc/base/logging.h" #include "webrtc/engine_configurations.h" -#ifdef VIDEOCODEC_H264 #include "webrtc/modules/video_coding/codecs/h264/include/h264.h" -#endif -#ifdef VIDEOCODEC_I420 #include "webrtc/modules/video_coding/codecs/i420/include/i420.h" -#endif -#ifdef VIDEOCODEC_VP8 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h" -#endif -#ifdef VIDEOCODEC_VP9 #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h" -#endif #include "webrtc/modules/video_coding/internal_defines.h" namespace { @@ -123,22 +115,10 @@ VCMCodecDataBase::~VCMCodecDataBase() { ResetReceiver(); } -int VCMCodecDataBase::NumberOfCodecs() { - return VCM_NUM_VIDEO_CODECS_AVAILABLE; -} - -bool VCMCodecDataBase::Codec(int list_id, - VideoCodec* settings) { - if (!settings) { - return false; - } - if (list_id >= VCM_NUM_VIDEO_CODECS_AVAILABLE) { - return false; - } +void VCMCodecDataBase::Codec(VideoCodecType codec_type, VideoCodec* settings) { memset(settings, 0, sizeof(VideoCodec)); - switch (list_id) { -#ifdef VIDEOCODEC_VP8 - case VCM_VP8_IDX: { + switch (codec_type) { + case kVideoCodecVP8: strncpy(settings->plName, "VP8", 4); settings->codecType = kVideoCodecVP8; // 96 to 127 dynamic payload types for video codecs. @@ -152,11 +132,8 @@ bool VCMCodecDataBase::Codec(int list_id, settings->numberOfSimulcastStreams = 0; settings->qpMax = 56; settings->codecSpecific.VP8 = VideoEncoder::GetDefaultVp8Settings(); - return true; - } -#endif -#ifdef VIDEOCODEC_VP9 - case VCM_VP9_IDX: { + return; + case kVideoCodecVP9: strncpy(settings->plName, "VP9", 4); settings->codecType = kVideoCodecVP9; // 96 to 127 dynamic payload types for video codecs. @@ -170,11 +147,8 @@ bool VCMCodecDataBase::Codec(int list_id, settings->numberOfSimulcastStreams = 0; settings->qpMax = 56; settings->codecSpecific.VP9 = VideoEncoder::GetDefaultVp9Settings(); - return true; - } -#endif -#ifdef VIDEOCODEC_H264 - case VCM_H264_IDX: { + return; + case kVideoCodecH264: strncpy(settings->plName, "H264", 5); settings->codecType = kVideoCodecH264; // 96 to 127 dynamic payload types for video codecs. @@ -188,11 +162,8 @@ bool VCMCodecDataBase::Codec(int list_id, settings->numberOfSimulcastStreams = 0; settings->qpMax = 56; settings->codecSpecific.H264 = VideoEncoder::GetDefaultH264Settings(); - return true; - } -#endif -#ifdef VIDEOCODEC_I420 - case VCM_I420_IDX: { + return; + case kVideoCodecI420: strncpy(settings->plName, "I420", 5); settings->codecType = kVideoCodecI420; // 96 to 127 dynamic payload types for video codecs. @@ -207,29 +178,16 @@ bool VCMCodecDataBase::Codec(int list_id, settings->height = VCM_DEFAULT_CODEC_HEIGHT; settings->minBitrate = VCM_MIN_BITRATE; settings->numberOfSimulcastStreams = 0; - return true; - } -#endif - default: { - return false; - } + return; + case kVideoCodecRED: + case kVideoCodecULPFEC: + case kVideoCodecGeneric: + case kVideoCodecUnknown: + RTC_NOTREACHED(); + return; } } -bool VCMCodecDataBase::Codec(VideoCodecType codec_type, - VideoCodec* settings) { - for (int i = 0; i < VCMCodecDataBase::NumberOfCodecs(); i++) { - const bool ret = VCMCodecDataBase::Codec(i, settings); - if (!ret) { - return false; - } - if (codec_type == settings->codecType) { - return true; - } - } - return false; -} - void VCMCodecDataBase::ResetSender() { DeleteEncoder(); periodic_key_frames_ = false; @@ -641,25 +599,17 @@ void VCMCodecDataBase::DeleteEncoder() { VCMGenericDecoder* VCMCodecDataBase::CreateDecoder(VideoCodecType type) const { switch (type) { -#ifdef VIDEOCODEC_VP8 case kVideoCodecVP8: return new VCMGenericDecoder(*(VP8Decoder::Create())); -#endif -#ifdef VIDEOCODEC_VP9 case kVideoCodecVP9: return new VCMGenericDecoder(*(VP9Decoder::Create())); -#endif -#ifdef VIDEOCODEC_I420 case kVideoCodecI420: return new VCMGenericDecoder(*(new I420Decoder)); -#endif -#ifdef VIDEOCODEC_H264 case kVideoCodecH264: if (H264Decoder::IsSupported()) { return new VCMGenericDecoder(*(H264Decoder::Create())); } break; -#endif default: break; } diff --git a/webrtc/modules/video_coding/codec_database.h b/webrtc/modules/video_coding/codec_database.h index 132e30f3b1..4feaffe6f3 100644 --- a/webrtc/modules/video_coding/codec_database.h +++ b/webrtc/modules/video_coding/codec_database.h @@ -51,14 +51,8 @@ class VCMCodecDataBase { ~VCMCodecDataBase(); // Sender Side - // Returns the number of supported codecs (or -1 in case of error). - static int NumberOfCodecs(); - - // Returns the default settings for the codec with id |list_id|. - static bool Codec(int list_id, VideoCodec* settings); - // Returns the default settings for the codec with type |codec_type|. - static bool Codec(VideoCodecType codec_type, VideoCodec* settings); + static void Codec(VideoCodecType codec_type, VideoCodec* settings); void ResetSender(); diff --git a/webrtc/modules/video_coding/internal_defines.h b/webrtc/modules/video_coding/internal_defines.h index 253752c1f5..9b421a24f5 100644 --- a/webrtc/modules/video_coding/internal_defines.h +++ b/webrtc/modules/video_coding/internal_defines.h @@ -32,30 +32,6 @@ inline uint32_t MaskWord64ToUWord32(int64_t w64) #define VCM_MIN_BITRATE 30 #define VCM_FLUSH_INDICATOR 4 -// Helper macros for creating the static codec list -#define VCM_NO_CODEC_IDX -1 -#ifdef VIDEOCODEC_VP8 - #define VCM_VP8_IDX (VCM_NO_CODEC_IDX + 1) -#else - #define VCM_VP8_IDX VCM_NO_CODEC_IDX -#endif -#ifdef VIDEOCODEC_VP9 - #define VCM_VP9_IDX (VCM_VP8_IDX + 1) -#else - #define VCM_VP9_IDX VCM_VP8_IDX -#endif -#ifdef VIDEOCODEC_H264 - #define VCM_H264_IDX (VCM_VP9_IDX + 1) -#else - #define VCM_H264_IDX VCM_VP9_IDX -#endif -#ifdef VIDEOCODEC_I420 - #define VCM_I420_IDX (VCM_H264_IDX + 1) -#else - #define VCM_I420_IDX VCM_H264_IDX -#endif -#define VCM_NUM_VIDEO_CODECS_AVAILABLE (VCM_I420_IDX + 1) - #define VCM_NO_RECEIVER_ID 0 inline int32_t VCMId(const int32_t vcmId, const int32_t receiverId = 0) diff --git a/webrtc/modules/video_coding/main/interface/video_coding.h b/webrtc/modules/video_coding/main/interface/video_coding.h index e4b012e02e..f965e90c2e 100644 --- a/webrtc/modules/video_coding/main/interface/video_coding.h +++ b/webrtc/modules/video_coding/main/interface/video_coding.h @@ -92,21 +92,6 @@ public: static void Destroy(VideoCodingModule* module); - // Get number of supported codecs - // - // Return value : Number of supported codecs - static uint8_t NumberOfCodecs(); - - // Get supported codec settings with using id - // - // Input: - // - listId : Id or index of the codec to look up - // - codec : Memory where the codec settings will be stored - // - // Return value : VCM_OK, on success - // VCM_PARAMETER_ERROR if codec not supported or id too high - static int32_t Codec(const uint8_t listId, VideoCodec* codec); - // Get supported codec settings using codec type // // Input: diff --git a/webrtc/modules/video_coding/video_coding_impl.cc b/webrtc/modules/video_coding/video_coding_impl.cc index 6d1151afca..1b6a893cb2 100644 --- a/webrtc/modules/video_coding/video_coding_impl.cc +++ b/webrtc/modules/video_coding/video_coding_impl.cc @@ -309,22 +309,9 @@ class VideoCodingModuleImpl : public VideoCodingModule { }; } // namespace -uint8_t VideoCodingModule::NumberOfCodecs() { - return VCMCodecDataBase::NumberOfCodecs(); -} - -int32_t VideoCodingModule::Codec(uint8_t listId, VideoCodec* codec) { - if (codec == NULL) { - return VCM_PARAMETER_ERROR; - } - return VCMCodecDataBase::Codec(listId, codec) ? 0 : -1; -} - int32_t VideoCodingModule::Codec(VideoCodecType codecType, VideoCodec* codec) { - if (codec == NULL) { - return VCM_PARAMETER_ERROR; - } - return VCMCodecDataBase::Codec(codecType, codec) ? 0 : -1; + VCMCodecDataBase::Codec(codecType, codec); + return 0; } VideoCodingModule* VideoCodingModule::Create( diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc index 9eb4a3e30c..cf546d07a9 100644 --- a/webrtc/video_engine/vie_encoder.cc +++ b/webrtc/video_engine/vie_encoder.cc @@ -191,23 +191,9 @@ void ViEEncoder::Restart() { encoder_paused_ = false; } -uint8_t ViEEncoder::NumberOfCodecs() { - return vcm_->NumberOfCodecs(); -} - -int32_t ViEEncoder::GetCodec(uint8_t list_index, VideoCodec* video_codec) { - if (vcm_->Codec(list_index, video_codec) != 0) { - return -1; - } - return 0; -} - int32_t ViEEncoder::RegisterExternalEncoder(webrtc::VideoEncoder* encoder, uint8_t pl_type, bool internal_source) { - if (encoder == NULL) - return -1; - if (vcm_->RegisterExternalEncoder(encoder, pl_type, internal_source) != VCM_OK) { return -1; @@ -403,7 +389,6 @@ void ViEEncoder::DeliverFrame(VideoFrame video_frame) { const VideoFrame* output_frame = (decimated_frame != NULL) ? decimated_frame : &video_frame; -#ifdef VIDEOCODEC_VP8 if (codec_type == webrtc::kVideoCodecVP8) { webrtc::CodecSpecificInfo codec_specific_info; codec_specific_info.codecType = webrtc::kVideoCodecVP8; @@ -425,7 +410,6 @@ void ViEEncoder::DeliverFrame(VideoFrame video_frame) { &codec_specific_info); return; } -#endif vcm_->AddVideoFrame(*output_frame); } diff --git a/webrtc/video_engine/vie_encoder.h b/webrtc/video_engine/vie_encoder.h index b82a9b5c9f..c6fb35c412 100644 --- a/webrtc/video_engine/vie_encoder.h +++ b/webrtc/video_engine/vie_encoder.h @@ -82,8 +82,6 @@ class ViEEncoder : public RtcpIntraFrameObserver, void Restart(); // Codec settings. - uint8_t NumberOfCodecs(); - int32_t GetCodec(uint8_t list_index, VideoCodec* video_codec); int32_t RegisterExternalEncoder(VideoEncoder* encoder, uint8_t pl_type, bool internal_source);