#include <gst/gstbuffer.h>
#include "gstvaapicompat.h"
#include "gstvaapiprofile.h"
+#include "gstvaapiworkarounds.h"
typedef struct _GstVaapiProfileMap GstVaapiProfileMap;
typedef struct _GstVaapiEntrypointMap GstVaapiEntrypointMap;
strcmp(profile_str, m->profile_str) == 0)
profile = best_profile;
}
- if (!profile)
+ if (!profile) {
profile = gst_vaapi_profile_from_codec_data(
gst_vaapi_profile_get_codec(m->profile),
codec_data
);
+ if (!profile &&
+ WORKAROUND_QTDEMUX_NO_H263_PROFILES &&
+ strncmp(name, "video/x-h263", namelen) == 0) {
+ /* HACK: qtdemux does not report profiles for h263 */
+ profile = m->profile;
+ }
+ }
gst_caps_unref(caps_test);
}
return profile ? profile : best_profile;
*/
#define WORKAROUND_H263_BASELINE_DECODE_PROFILE (1)
+/*
+ * Workaround for qtdemux that does not report profiles for
+ * video/x-h263. Assume H.263 Baseline profile in this case.
+ */
+#define WORKAROUND_QTDEMUX_NO_H263_PROFILES (1)
+
G_END_DECLS
#endif /* GST_VAAPI_WORKAROUNDS_H */