You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
Merge commit '9e14a992409348630ea96521411127418a92e8a3'
* commit '9e14a992409348630ea96521411127418a92e8a3': libopenh264enc: Add an option for controlling the frame skipping Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
@@ -38,6 +38,7 @@ typedef struct SVCContext {
|
|||||||
int loopfilter;
|
int loopfilter;
|
||||||
char *profile;
|
char *profile;
|
||||||
int max_nal_size;
|
int max_nal_size;
|
||||||
|
int skip_frames;
|
||||||
} SVCContext;
|
} SVCContext;
|
||||||
|
|
||||||
#define OPENH264_VER_AT_LEAST(maj, min) \
|
#define OPENH264_VER_AT_LEAST(maj, min) \
|
||||||
@@ -55,6 +56,7 @@ static const AVOption options[] = {
|
|||||||
{ "loopfilter", "enable loop filter", OFFSET(loopfilter), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
|
{ "loopfilter", "enable loop filter", OFFSET(loopfilter), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
|
||||||
{ "profile", "set profile restrictions", OFFSET(profile), AV_OPT_TYPE_STRING, { 0 }, 0, 0, VE },
|
{ "profile", "set profile restrictions", OFFSET(profile), AV_OPT_TYPE_STRING, { 0 }, 0, 0, VE },
|
||||||
{ "max_nal_size", "Set maximum NAL size in bytes", OFFSET(max_nal_size), AV_OPT_TYPE_INT, { 0 }, 0, INT_MAX, VE },
|
{ "max_nal_size", "Set maximum NAL size in bytes", OFFSET(max_nal_size), AV_OPT_TYPE_INT, { 0 }, 0, INT_MAX, VE },
|
||||||
|
{ "allow_skip_frames", "Allow skipping frames to hit the target bitrate", OFFSET(skip_frames), AV_OPT_TYPE_INT, { 0 }, 0, 1, VE },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -144,7 +146,7 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
|
|||||||
param.bEnableDenoise = 0;
|
param.bEnableDenoise = 0;
|
||||||
param.bEnableBackgroundDetection = 1;
|
param.bEnableBackgroundDetection = 1;
|
||||||
param.bEnableAdaptiveQuant = 1;
|
param.bEnableAdaptiveQuant = 1;
|
||||||
param.bEnableFrameSkip = 0;
|
param.bEnableFrameSkip = s->skip_frames;
|
||||||
param.bEnableLongTermReference = 0;
|
param.bEnableLongTermReference = 0;
|
||||||
param.iLtrMarkPeriod = 30;
|
param.iLtrMarkPeriod = 30;
|
||||||
param.uiIntraPeriod = avctx->gop_size;
|
param.uiIntraPeriod = avctx->gop_size;
|
||||||
|
Reference in New Issue
Block a user