VP8: Making key frame interval a tunnable parameter

Review URL: https://webrtc-codereview.appspot.com/1070006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3444 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
mikhal@webrtc.org
2013-01-31 16:37:13 +00:00
parent 6e3968f62a
commit e07c661a29
6 changed files with 43 additions and 35 deletions

View File

@ -11,23 +11,24 @@
*
*/
#include "modules/video_coding/codecs/vp8/vp8_impl.h"
#include "webrtc/modules/video_coding/codecs/vp8/vp8_impl.h"
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <vector>
#include "vpx/vpx_encoder.h"
#include "vpx/vpx_decoder.h"
#include "vpx/vp8cx.h"
#include "vpx/vp8dx.h"
#include "common_video/libyuv/include/webrtc_libyuv.h"
#include "module_common_types.h"
#include "modules/video_coding/codecs/vp8/reference_picture_selection.h"
#include "modules/video_coding/codecs/vp8/temporal_layers.h"
#include "system_wrappers/interface/tick_util.h"
#include "system_wrappers/interface/trace_event.h"
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
#include "webrtc/modules/interface/module_common_types.h"
#include "webrtc/modules/video_coding/codecs/vp8/reference_picture_selection.h"
#include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h"
#include "webrtc/system_wrappers/interface/tick_util.h"
#include "webrtc/system_wrappers/interface/trace_event.h"
enum { kVp8ErrorPropagationTh = 30 };
@ -251,9 +252,11 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
// Disable periodic key frames if we get feedback from the decoder
// through SLI and RPSI.
config_->kf_mode = VPX_KF_DISABLED;
} else {
} else if (inst->codecSpecific.VP8.keyFrameInterval > 0) {
config_->kf_mode = VPX_KF_AUTO;
config_->kf_max_dist = 3000;
config_->kf_max_dist = inst->codecSpecific.VP8.keyFrameInterval;
} else {
config_->kf_mode = VPX_KF_DISABLED;
}
switch (inst->codecSpecific.VP8.complexity) {
case kComplexityHigh: