tvhlog(severity, LS_VAAPI, "%s", s);
}
+#if VA_CHECK_VERSION(1, 0, 0)
+static void libav_va_error_callback(void *context, const char *msg)
+#else
static void libav_va_error_callback(const char *msg)
+#endif
{
libav_va_log(LOG_ERR, msg);
}
+#if VA_CHECK_VERSION(1, 0, 0)
+static void libav_va_info_callback(void *context, const char *msg)
+#else
static void libav_va_info_callback(const char *msg)
+#endif
{
libav_va_log(LOG_INFO, msg);
}
#endif
}
+/**
+ *
+ */
+void
+libav_vaapi_init_context(void *context)
+{
+#if ENABLE_VAAPI
+#ifdef VA_FOURCC_I010
+#if VA_CHECK_VERSION(1, 0, 0)
+ vaSetErrorCallback(context, libav_va_error_callback, NULL);
+ vaSetInfoCallback(context, libav_va_info_callback, NULL);
+#endif
+#endif
+#endif
+}
+
/**
*
*/
streaming_component_type_t codec_id2streaming_component_type(enum AVCodecID id);
int libav_is_encoder(AVCodec *codec);
void libav_set_loglevel(void);
+void libav_vaapi_init_context(void *context);
void libav_init(void);
void libav_done(void);
#else
static inline void libav_set_loglevel(void) { };
+static inline void libav_vaapi_init_context(void *) { };
static inline void libav_init(void) { };
static inline void libav_done(void) { };
if (!(self->display = tvhva_context_display(self, avctx))) {
return -1;
}
+
+ libav_vaapi_init_context(self->display);
+
if ((profile = tvhva_context_profile(self, avctx)) == VAProfileNone ||
tvhva_context_check_profile(self, profile)) {
tvherror(LS_VAAPI, "%s: unsupported codec: %s and/or profile: %s",