diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | gst-libs/gst/vaapi/gstvaapiprofile.c | 27 |
3 files changed, 19 insertions, 10 deletions
@@ -3,6 +3,7 @@ Copyright (C) 2010 Splitted-Desktop Systems Version 0.2.3 - DD.May.2010 * Fix memory leak of encoded buffers +* Fix decoder caps to report codec aliases * Fix VC-1 decoding through the playbin2 pipeline Version 0.2.2 - 14.May.2010 @@ -71,4 +71,3 @@ Caveats ------- * No ad-hoc parser, vaapidecoder currently relies on FFmpeg - * MPEG-4 Part-2 (DivX) has decoding bugs diff --git a/gst-libs/gst/vaapi/gstvaapiprofile.c b/gst-libs/gst/vaapi/gstvaapiprofile.c index 1c9f5610..40c9760a 100644 --- a/gst-libs/gst/vaapi/gstvaapiprofile.c +++ b/gst-libs/gst/vaapi/gstvaapiprofile.c @@ -285,18 +285,27 @@ gst_vaapi_profile_get_va_profile(GstVaapiProfile profile) GstCaps * gst_vaapi_profile_get_caps(GstVaapiProfile profile) { - const GstVaapiProfileMap * const m = get_profiles_map(profile); - GstCaps *caps; - - if (!m) - return NULL; + const GstVaapiProfileMap *m; + GstCaps *out_caps, *caps; - caps = gst_caps_from_string(m->caps_str); - if (!caps) + out_caps = gst_caps_new_empty(); + if (!out_caps) return NULL; - gst_caps_set_simple(caps, "profile", G_TYPE_STRING, m->profile_str, NULL); - return caps; + for (m = gst_vaapi_profiles; m->profile; m++) { + if (m->profile != profile) + continue; + caps = gst_caps_from_string(m->caps_str); + if (!caps) + continue; + gst_caps_set_simple( + caps, + "profile", G_TYPE_STRING, m->profile_str, + NULL + ); + gst_caps_merge(out_caps, caps); + } + return out_caps; } /** |