#define SM_SIZELIMITED_SLICE SM_DYN_SLICE
#endif
+#define TARGET_BITRATE_DEFAULT 2*1000*1000
+
typedef struct SVCContext {
const AVClass *av_class;
ISVCEncoder *encoder;
param.fMaxFrameRate = 1/av_q2d(avctx->time_base);
param.iPicWidth = avctx->width;
param.iPicHeight = avctx->height;
- param.iTargetBitrate = avctx->bit_rate;
+ param.iTargetBitrate = avctx->bit_rate > 0 ? avctx->bit_rate : TARGET_BITRATE_DEFAULT;
param.iMaxBitrate = FFMAX(avctx->rc_max_rate, avctx->bit_rate);
param.iRCMode = RC_QUALITY_MODE;
if (avctx->qmax >= 0)
param.bEnableFrameSkip = s->skip_frames;
param.bEnableLongTermReference = 0;
param.iLtrMarkPeriod = 30;
- param.uiIntraPeriod = avctx->gop_size;
+ if (avctx->gop_size >= 0)
+ param.uiIntraPeriod = avctx->gop_size;
#if OPENH264_VER_AT_LEAST(1, 4)
param.eSpsPpsIdStrategy = CONSTANT_ID;
#else
}
static const AVCodecDefault svc_enc_defaults[] = {
+ { "b", "0" },
+ { "g", "-1" },
{ "qmin", "-1" },
{ "qmax", "-1" },
{ NULL },