diff options
author | phoglund@webrtc.org <phoglund@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2013-05-13 15:39:26 +0000 |
---|---|---|
committer | phoglund@webrtc.org <phoglund@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2013-05-13 15:39:26 +0000 |
commit | 99616fa103845c69253195b8506d0bbcd0414f82 (patch) | |
tree | 54d7d930f65d6670252064684827656a34a1f297 | |
parent | 9062a9a4975cfe16a6e7258bbdfb4f2ebdb80ad1 (diff) | |
download | webrtc-99616fa103845c69253195b8506d0bbcd0414f82.tar.gz |
Revert 4008 "Avoid resetting video encoder for similar configs."
> Avoid resetting video encoder for similar configs.
>
> BUG=1681
> R=holmer@google.com, mflodman@webrtc.org, stefan@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1442006
TBR=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1431005
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@4010 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r-- | modules/video_coding/main/source/video_coding_impl.cc | 70 | ||||
-rw-r--r-- | modules/video_coding/main/source/video_coding_impl.h | 6 |
2 files changed, 7 insertions, 69 deletions
diff --git a/modules/video_coding/main/source/video_coding_impl.cc b/modules/video_coding/main/source/video_coding_impl.cc index af326091..4ed2e805 100644 --- a/modules/video_coding/main/source/video_coding_impl.cc +++ b/modules/video_coding/main/source/video_coding_impl.cc @@ -318,63 +318,6 @@ VideoCodingModuleImpl::InitializeSender() return VCM_OK; } -bool VideoCodingModuleImpl::RequiresEncoderReset(const VideoCodec& send_codec) { - VideoCodec current_codec; - - if (!_codecDataBase.SendCodec(¤t_codec)) { - return true; - } - - if (current_codec.codecType != send_codec.codecType || - strcmp(current_codec.plName, send_codec.plName) != 0 || - current_codec.plType != send_codec.plType || - current_codec.width != send_codec.width || - current_codec.height != send_codec.height || - current_codec.qpMax != send_codec.qpMax || - current_codec.numberOfSimulcastStreams != - send_codec.numberOfSimulcastStreams || - current_codec.mode != send_codec.mode || - current_codec.extra_options != send_codec.extra_options) { - return true; - } - - switch (current_codec.codecType) { - case kVideoCodecVP8: - if (memcmp(¤t_codec.codecSpecific.VP8, - &send_codec.codecSpecific.VP8, - sizeof(current_codec.codecSpecific.VP8)) != 0) { - return true; - } - break; - case kVideoCodecGeneric: - if (memcmp(¤t_codec.codecSpecific.Generic, - &send_codec.codecSpecific.Generic, - sizeof(current_codec.codecSpecific.Generic)) != 0) { - return true; - } - break; - // Known codecs without payload-specifics - case kVideoCodecI420: - case kVideoCodecRED: - case kVideoCodecULPFEC: - break; - // Unknown codec type, reset just to be sure. - case kVideoCodecUnknown: - return true; - } - - if (current_codec.numberOfSimulcastStreams > 0) { - for (unsigned char i = 0; i < current_codec.numberOfSimulcastStreams; ++i) { - if (memcmp(¤t_codec.simulcastStream[i], - &send_codec.simulcastStream[i], - sizeof(current_codec.simulcastStream[i])) != 0) { - return true; - } - } - } - return false; -} - // Register the send codec to be used. int32_t VideoCodingModuleImpl::RegisterSendCodec(const VideoCodec* sendCodec, @@ -386,18 +329,13 @@ VideoCodingModuleImpl::RegisterSendCodec(const VideoCodec* sendCodec, { return VCM_PARAMETER_ERROR; } - - bool requires_reconfigure = RequiresEncoderReset(*sendCodec); - - if (!_codecDataBase.RegisterSendCodec(sendCodec, numberOfCores, - maxPayloadSize)) { + bool ret = _codecDataBase.RegisterSendCodec(sendCodec, numberOfCores, + maxPayloadSize); + if (!ret) + { return -1; } - if (!requires_reconfigure) { - return VCM_OK; - } - _encoder = _codecDataBase.GetEncoder(sendCodec, &_encodedFrameCallback); if (_encoder == NULL) { diff --git a/modules/video_coding/main/source/video_coding_impl.h b/modules/video_coding/main/source/video_coding_impl.h index a2338b25..0ffc14f0 100644 --- a/modules/video_coding/main/source/video_coding_impl.h +++ b/modules/video_coding/main/source/video_coding_impl.h @@ -279,13 +279,13 @@ public: protected: int32_t Decode(const webrtc::VCMEncodedFrame& frame); - bool RequiresEncoderReset(const VideoCodec& send_codec); int32_t RequestKeyFrame(); - int32_t RequestSliceLossIndication(const uint64_t pictureID) const; + int32_t RequestSliceLossIndication( + const uint64_t pictureID) const; int32_t NackList(uint16_t* nackList, uint16_t& size); private: - int32_t _id; + int32_t _id; Clock* clock_; CriticalSectionWrapper* _receiveCritSect; bool _receiverInited; |