|
Hi, i can't found how to disable vaapipostproc in vaapidecodebin plugin(decodebin create vaapidecodebin), only one option (“disable-vpp” gboolean) but in started playing pypline how i can understand it is impossible.
i can skip vaapidecodebin, but vaapidecoder not used, only avdec_h264 selected
GValueArray* handleAutoplugSort(GstElement* bin,
GstPad* pad,
GstCaps* caps,
GValueArray* factories) {
UNUSED(bin);
UNUSED(pad);
gchar* type = gst_caps_to_string(caps);
// bool is_ac3 = strncmp(type, AUDIO_AC3, SIZEOFMASS(AUDIO_AC3) - 1) == 0;
bool is_h264 = strncmp(type, VIDEO_H264, SIZEOFMASS(VIDEO_H264) - 1) == 0;
bool is_mpeg = strncmp(type, VIDEO_MPEG, SIZEOFMASS(VIDEO_MPEG) - 1) == 0;
bool need_to_skip_vaapi_decoder = !api_->isVaapi();
if (is_h264 || is_mpeg) {
GValueArray* result = g_value_array_new(factories->n_values);
for (guint i = 0; i < factories->n_values; ++i) {
GValue* val = g_value_array_get_nth(factories, i);
gpointer factory = base::gvalue_cast<gpointer>(val);
const gchar* factoryName = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory));
if (strncmp(factoryName, VAAPI_DECODEBIN, SIZEOFMASS(VAAPI_DECODEBIN) - 1) == 0) {
INFO_LOG() << "skip: " << factoryName;
} else if (strncmp(factoryName, VAAPI_DECODER, SIZEOFMASS(VAAPI_DECODER) - 1) == 0 &&
need_to_skip_vaapi_decoder) {
INFO_LOG() << "skip: " << factoryName;
} else {
GValue val = base::make_gvalue(factory);
g_value_array_append(result, &val);
g_value_unset(&val);
}
}
return result;
}
g_free(type);
return NULL;
}
|