vaapidecodebin: try to get display from decoder

Rather than create a dummy display, if none has propagated as a context, we
should try to get the one from vaapidecode.

As the bin is already in READY state, the vaapidecode should be also in that
state. That means that the contexts have been negotiated, and it should have
already a display.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=757957
This commit is contained in:
Víctor Manuel Jáquez Leal 2015-11-12 12:47:01 +01:00
parent bd4395ce9f
commit 7c71ffccc0

View file

@ -28,6 +28,7 @@
#include "gstvaapipluginutil.h"
#include "gstvaapidecodebin.h"
#include "gstvaapivideocontext.h"
#include "gstvaapipluginbase.h"
#define GST_PLUGIN_NAME "vaapidecodebin"
#define GST_PLUGIN_DESC "A Bin of VA-API elements: vaapidecode ! queue ! vaapipostproc"
@ -197,8 +198,14 @@ ensure_vpp (GstVaapiDecodeBin * vaapidecbin)
if (vaapidecbin->has_vpp != HAS_VPP_UNKNOWN)
return TRUE;
GST_INFO_OBJECT (vaapidecbin, "Creating a dummy display to test for vpp");
display = gst_vaapi_create_test_display ();
display = GST_VAAPI_PLUGIN_BASE_DISPLAY (vaapidecbin->decoder);
if (display) {
GST_INFO_OBJECT (vaapidecbin, "Got display from vaapidecode");
gst_vaapi_display_ref (display);
} else {
GST_INFO_OBJECT (vaapidecbin, "Creating a dummy display to test for vpp");
display = gst_vaapi_create_test_display ();
}
if (!display)
return FALSE;