/* Supported set of tuning options, within this implementation */
#define SUPPORTED_TUNE_OPTIONS \
- (GST_VAAPI_ENCODER_TUNE_MASK (NONE))
+ (GST_VAAPI_ENCODER_TUNE_MASK (NONE) | \
+ GST_VAAPI_ENCODER_TUNE_MASK (LOW_POWER))
/* Supported set of VA packed headers, within this implementation */
#define SUPPORTED_PACKED_HEADERS \
guint frame_num;
GstVaapiSurfaceProxy *ref_list[GST_VP9_REF_FRAMES]; /* reference list */
guint ref_list_idx; /* next free slot in ref_list */
+ GstVaapiEntrypoint entrypoint;
/* Bitrate contral parameters, CPB = Coded Picture Buffer */
guint bitrate_bits; /* bitrate (bits) */
ensure_hw_profile (GstVaapiEncoderVP9 * encoder)
{
GstVaapiDisplay *const display = GST_VAAPI_ENCODER_DISPLAY (encoder);
- GstVaapiEntrypoint entrypoint = GST_VAAPI_ENTRYPOINT_SLICE_ENCODE;
+ GstVaapiEntrypoint entrypoint = encoder->entrypoint;
GstVaapiProfile profile, profiles[2];
guint i, num_profiles = 0;
base_encoder->codedbuf_size = GST_ROUND_UP_16 (vip->width) *
GST_ROUND_UP_16 (vip->height) * 3 / 2;
+ base_encoder->context_info.entrypoint = encoder->entrypoint;
+
return GST_VAAPI_ENCODER_STATUS_SUCCESS;
}
if (status != GST_VAAPI_ENCODER_STATUS_SUCCESS)
return status;
+ if (GST_VAAPI_ENCODER_TUNE (encoder) == GST_VAAPI_ENCODER_TUNE_LOW_POWER)
+ encoder->entrypoint = GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_LP;
ensure_control_rate_params (encoder);
return set_context_info (base_encoder);
}
encoder->sharpness_level = DEFAULT_SHARPNESS_LEVEL;
encoder->yac_qi = DEFAULT_YAC_QINDEX;
encoder->cpb_length = DEFAULT_CPB_LENGTH;
+ encoder->entrypoint = GST_VAAPI_ENTRYPOINT_SLICE_ENCODE;
memset (encoder->ref_list, 0,
G_N_ELEMENTS (encoder->ref_list) * sizeof (encoder->ref_list[0]));