After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 781573 - vaapidecodebin: fails to restart playback
vaapidecodebin: fails to restart playback
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
git master
Other Linux
: Normal normal
: 1.11.91
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-04-21 06:34 UTC by Hyunjun Ko
Modified: 2017-04-21 10:19 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
vaapidecodebin: skips configuration once it's done (3.95 KB, patch)
2017-04-21 06:37 UTC, Hyunjun Ko
none Details | Review
vaapidecodebin: skips configuration once it's done (1.66 KB, patch)
2017-04-21 09:07 UTC, Hyunjun Ko
committed Details | Review

Description Hyunjun Ko 2017-04-21 06:34:41 UTC
Tested pipeline:
gst-validate-1.0 --set-scenario=change_state_intensive videotestsrc ! vaapih264enc ! vaapidecodebin ! vaapisink

This is because it tries to create vpp/capsfilter and link them again even they are still alive and linked, it causes error below.

0:00:00.108188099 30892      0x12d6c10 INFO                GST_PADS gstpad.c:2346:gst_pad_link_prepare: src vaapi-queue:src was already linked to capsfilter0:sink
0:00:00.108207649 30892      0x12d6c10 INFO                GST_PADS gstpad.c:2467:gst_pad_link_full: link between vaapi-queue:src and capsfilter1:sink failed: was linked
Comment 1 Hyunjun Ko 2017-04-21 06:37:07 UTC
Created attachment 350181 [details] [review]
vaapidecodebin: skips configuration once it's done

Skips configuration of creation of vpp/capsfilter and link them once it's done.
Otherwise, it always fails when it's trying to re-start playback.
Comment 2 Víctor Manuel Jáquez Leal 2017-04-21 07:45:18 UTC
Review of attachment 350181 [details] [review]:

::: gst/vaapi/gstvaapidecodebin.h
@@ +46,3 @@
   GstElement *decoder;
   GstElement *queue;
+  GstElement *capsfilter;

It is required to keep a reference to the capsfilter? IIUC, the configured flag is enough, isn't it?
Comment 3 Hyunjun Ko 2017-04-21 09:05:01 UTC
(In reply to Víctor Manuel Jáquez Leal from comment #2)
> Review of attachment 350181 [details] [review] [review]:
> 
> ::: gst/vaapi/gstvaapidecodebin.h
> @@ +46,3 @@
>    GstElement *decoder;
>    GstElement *queue;
> +  GstElement *capsfilter;
> 
> It is required to keep a reference to the capsfilter? IIUC, the configured
> flag is enough, isn't it?

Ah, indeed.
you're right :)
Comment 4 Hyunjun Ko 2017-04-21 09:07:31 UTC
Created attachment 350189 [details] [review]
vaapidecodebin: skips configuration once it's done

Skips configuration of creation of vpp/capsfilter and link them once it's done.
Otherwise, it always fails when it's trying to re-start playback.
Comment 5 Víctor Manuel Jáquez Leal 2017-04-21 09:47:58 UTC
Comment on attachment 350189 [details] [review]
vaapidecodebin: skips configuration once it's done

lgtm
Comment 6 Víctor Manuel Jáquez Leal 2017-04-21 10:18:37 UTC
Attachment 350189 [details] pushed as 26486c4 - vaapidecodebin: skips configuration once it's done