diff --git a/webrtc/modules/video_coding/main/source/media_optimization.cc b/webrtc/modules/video_coding/main/source/media_optimization.cc index b2715e7399..bc78f6d3f4 100644 --- a/webrtc/modules/video_coding/main/source/media_optimization.cc +++ b/webrtc/modules/video_coding/main/source/media_optimization.cc @@ -26,6 +26,9 @@ MediaOptimization::MediaOptimization(int32_t id, Clock* clock) codec_width_(0), codec_height_(0), user_frame_rate_(0), + frame_dropper_(new FrameDropper), + loss_prot_logic_( + new VCMLossProtectionLogic(clock_->TimeInMilliseconds())), fraction_lost_(0), send_statistics_zero_encode_(0), max_payload_size_(1460), @@ -39,24 +42,17 @@ MediaOptimization::MediaOptimization(int32_t id, Clock* clock) avg_sent_framerate_(0), key_frame_cnt_(0), delta_frame_cnt_(0), + content_(new VCMContentMetricsProcessing()), + qm_resolution_(new VCMQmResolution()), last_qm_update_time_(0), last_change_time_(0), num_layers_(0) { memset(send_statistics_, 0, sizeof(send_statistics_)); memset(incoming_frame_times_, -1, sizeof(incoming_frame_times_)); - - frame_dropper_ = new FrameDropper; - loss_prot_logic_ = new VCMLossProtectionLogic(clock_->TimeInMilliseconds()); - content_ = new VCMContentMetricsProcessing(); - qm_resolution_ = new VCMQmResolution(); } MediaOptimization::~MediaOptimization(void) { loss_prot_logic_->Release(); - delete loss_prot_logic_; - delete frame_dropper_; - delete content_; - delete qm_resolution_; } int32_t MediaOptimization::Reset() { diff --git a/webrtc/modules/video_coding/main/source/media_optimization.h b/webrtc/modules/video_coding/main/source/media_optimization.h index 4b0fd96b8c..5ad4f597b6 100644 --- a/webrtc/modules/video_coding/main/source/media_optimization.h +++ b/webrtc/modules/video_coding/main/source/media_optimization.h @@ -17,6 +17,7 @@ #include "webrtc/modules/video_coding/main/interface/video_coding.h" #include "webrtc/modules/video_coding/main/source/media_opt_util.h" #include "webrtc/modules/video_coding/main/source/qm_select.h" +#include "webrtc/system_wrappers/interface/scoped_ptr.h" #include "webrtc/system_wrappers/interface/trace.h" namespace webrtc { @@ -158,8 +159,8 @@ class MediaOptimization { uint16_t codec_width_; uint16_t codec_height_; float user_frame_rate_; - FrameDropper* frame_dropper_; - VCMLossProtectionLogic* loss_prot_logic_; + scoped_ptr frame_dropper_; + scoped_ptr loss_prot_logic_; uint8_t fraction_lost_; uint32_t send_statistics_[4]; uint32_t send_statistics_zero_encode_; @@ -175,8 +176,8 @@ class MediaOptimization { uint32_t avg_sent_framerate_; uint32_t key_frame_cnt_; uint32_t delta_frame_cnt_; - VCMContentMetricsProcessing* content_; - VCMQmResolution* qm_resolution_; + scoped_ptr content_; + scoped_ptr qm_resolution_; int64_t last_qm_update_time_; int64_t last_change_time_; // Content/user triggered. int num_layers_;