return attrib.value;
}
-guint32
+gboolean
gst_va_encoder_get_packed_headers (GstVaEncoder * self, VAProfile profile,
- VAEntrypoint entrypoint)
+ VAEntrypoint entrypoint, guint * packed_headers)
{
VAStatus status;
VADisplay dpy;
VAConfigAttrib attrib = {.type = VAConfigAttribEncPackedHeaders };
if (profile == VAProfileNone)
- return 0;
+ return FALSE;
dpy = gst_va_display_get_va_dpy (self->display);
status = vaGetConfigAttributes (dpy, profile, entrypoint, &attrib, 1);
if (status != VA_STATUS_SUCCESS) {
GST_ERROR_OBJECT (self, "Failed to query packed headers: %s",
vaErrorStr (status));
- return 0;
+ return FALSE;
}
if (attrib.value == VA_ATTRIB_NOT_SUPPORTED) {
GST_WARNING_OBJECT (self, "Driver does not support any packed headers");
- return 0;
+ return FALSE;
}
- return attrib.value;
+ if (packed_headers)
+ *packed_headers = attrib.value;
+ return TRUE;
}
/* Add packed header such as SPS, PPS, SEI, etc. If adding slice header,
guint32 gst_va_encoder_get_rtformat (GstVaEncoder * self,
VAProfile profile,
VAEntrypoint entrypoint);
-guint32 gst_va_encoder_get_packed_headers (GstVaEncoder * self,
+gboolean gst_va_encoder_get_packed_headers (GstVaEncoder * self,
VAProfile profile,
- VAEntrypoint entrypoint);
+ VAEntrypoint entrypoint,
+ guint32 * packed_headers);
gboolean gst_va_encoder_get_rate_control_enum (GstVaEncoder * self,
GEnumValue ratectl[16]);
gboolean gst_va_encoder_add_param (GstVaEncoder * self,
self->packed_headers = 0;
- packed_headers = gst_va_encoder_get_packed_headers (base->encoder,
- base->profile, base->entrypoint);
-
- if (packed_headers == 0)
+ if (!gst_va_encoder_get_packed_headers (base->encoder, base->profile,
+ base->entrypoint, &packed_headers))
return FALSE;
if (desired_packed_headers & ~packed_headers) {