<div dir="ltr"><span style="font-size:13px">Hello,</span><div style="font-size:13px"><br></div><div style="font-size:13px">It is a typo. Sorry for mistake. </div><div style="font-size:13px">An updated implementation.c is attached to this mail. Also I have been setting the <i style="font-weight:bold">format </i>attribute to vaapipostproc element. </div><div style="font-size:13px">There is no problem getting and encoding a video by using vaapi elements. The problem is occurred whenever I remove the bin and create a new one to update filesink's location. ie. I have been encoding the video and writing to disk successfully for specified time period (10 seconds in implementation.c line 217). After this period I need to remove the bin (consists of muxer and filesink, creating by using CreateNewBin function in implementation.c) create the new one and then try to continue play. At that time, vaapipostproc element halts the whole pipeline. </div><div style="font-size:13px">The problem still continues and I cannot find a way to handle this problem. </div><div style="font-size:13px"><br></div><div style="font-size:13px">Thank you so much for your consideration.</div><div style="font-size:13px">Regards.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 16 December 2014 at 09:36, Yuan, Feng <span dir="ltr"><<a href="mailto:feng.yuan@intel.com" target="_blank">feng.yuan@intel.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="ZH-CN" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi,<u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">From your attachment implementation.c, found<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:21.0pt;text-indent:21.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">vaapiencoder = gst_element_factory_make ("x264enc", NULL);<u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Maybe typo. Suppose you want “vaapiencode_h264”. Anyway, I just tried<u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">$ gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12,width=320,height=240,framerate=30/1 ! vaapipostproc ! queue
! vaapiencode_h264 ! fakesink <u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Failed in latest master branch. This issue caused by gstvaapiencoder need strict format check but vaapipostproc with
format ‘Encoded’(VASurface). After adding a specific ‘format’ for vaapipostproc, encoder works. You can take a try .<u></u><u></u></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">$ gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12,width=320,height=240,framerate=30/1 ! vaapipostproc format=nv12
! queue ! vaapiencode_h264 ! fakesink<u></u><u></u></span></p>
<p class="MsoNormal"><a name="14a5206ab34a1026__MailEndCompose"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></a></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1f497d">Wind<u></u><u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Libva [mailto:<a href="mailto:libva-bounces@lists.freedesktop.org" target="_blank">libva-bounces@lists.freedesktop.org</a>]
<b>On Behalf Of </b>Engin Firat<br>
<b>Sent:</b> Friday, December 12, 2014 11:48 PM<br>
<b>To:</b> <a href="mailto:libva@lists.freedesktop.org" target="_blank">libva@lists.freedesktop.org</a><br>
<b>Subject:</b> [Libva] Problem with vaapipostproc element<u></u><u></u></span></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">Hello,<u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I have a problem related to element called vaapipostproc. The problem is as follows:<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I have a pipeline and for specified time intervals I attempt to change pipeline dynamically in order to change write location of the filesink. I have implemented this functionality and everything works well in case I
do not use vaapipostproc element. If I use vaapipostproc element, the pipeline crashes unexpectedly. An error message is thrown from the element vaapipostproc: "failed to create output video buffer" at the immediate point the pipeline is changed dynamically. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">My pipeline change strategy is as follows:<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">0. Create a bin and place mux and filesink elements inside it. Moreover create a queue element before this bin.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">1. For specified intervals, fire a clock event and catch it in a handler<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">2. In clock handler place a blocking probe to queue's source pad and register a blocking data handler<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">3. In blocking data handler unlink queue and bin and send an EOS event to bin's sink pad. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">4. Handle EOS event on bin element. In this handler, destroy bin, create a new bin with an updated filesink location connect bin with queue. And remove the blocking probe. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">This strategy for dynamic pipeline changing works well when I do not use vaapipostproc element. But I want to do encoding process on GPU and using vaapipostproc is a mandatory. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I have inspected the source code gstvaapipostproc.c for element vaapipostproc and It seem the problem is related to function named as
<b><i>GstBuffer * create_output_buffer(GstVaapiPostproc*)</i></b>. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">You can find output messages when GST_DEBUG environment variable is set to 4. In addition to this, you can also find my implementation to change the pipeline dynamically. The implementation won't compile, I just want
to share a pseudo-code for your well understanding of the implementation. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I want to share the most interesting part of the out.log file:<u></u><u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">0:00:11.075920072 [334m11325 [00m 0x1dcc720 [36mINFO [00m
<b><i>[00m vaapipostproc gstvaapipluginbase.c:532:gst_vaapi_plugin_base_decide_allocation:<GPUPostProcessing> [00m no pool or doesn't support GstVaapiVideoMeta, making new pool</i></b><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">0:00:11.076231088 [334m11325 [00m 0x1dcc720 [36mINFO [00m [00m vaapivideomemory gstvaapivideomemory.c:627:gst_vaapi_video_allocator_new: [00m has direct-rendering for NV12 surfaces: no<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><b><i><span lang="EN-US">0:00:11.076568949 [334m11325 [00m 0x1dcc720 [31;01mERROR [00m [00m vaapipostproc gstvaapipostproc.c:412:create_output_buffer: [00m failed to create output video buffer</span></i></b><span lang="EN-US"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">0:00:11.076723161 [334m11325 [00m 0x1dcc720 [33;01mWARN [00m [00m basetransform gstbasetransform.c:2130:gst_base_transform_handle_buffer:<GPUPostProcessing> [00m could not get buffer from pool: error<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">0:00:11.076773273 [334m11325 [00m 0x1dcc720 [36mINFO [00m
<b><i>[00m task gsttask.c:300:gst_task_func:<queue0:src> [00m Task going to paused</i></b><u></u><u></u></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">How can I solve this problem? Any help will be appreciated. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">Regards.<u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><br>
Engin FIRAT<u></u><u></u></span></p>
</div>
</div></div></div>
</div>
</div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><b style="font-family:arial,helvetica,sans-serif"><span style="border-collapse:collapse;font-family:arial,sans-serif">Engin FIRAT</span></b></div><span><div><font size="1">Adoniss Yazılım Bilişim </font></div><div><font size="1">Elektronik </font><span style="font-size:x-small">Araştırma Geliştirme </span></div><div><font size="1">Limited Şirketi</font></div><div><p style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;margin:0px"><font size="1">+90 506 884 82 07 (Mobile)</font></p><font size="1">ODTÜ Teknokent, </font><span style="font-size:x-small">ODTÜ-Halıcı Yazılımevi </span></div><div><span style="font-size:x-small">İnönü Bulvarı / ANKARA (Address)</span></div><div><p style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;margin:0px"><font size="1"><img src="http://gdurl.com/hml0"><br></font></p></div></span></div></div>
</div>