GNOME Bugzilla – Bug 781573
vaapidecodebin: fails to restart playback
Last modified: 2017-04-21 10:19:04 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
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.
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?
(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 :)
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 on attachment 350189 [details] [review] vaapidecodebin: skips configuration once it's done lgtm
Attachment 350189 [details] pushed as 26486c4 - vaapidecodebin: skips configuration once it's done