<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:宋体;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:宋体;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:宋体;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin:0cm;
        margin-bottom:.0001pt;
        text-indent:21.0pt;
        font-size:12.0pt;
        font-family:宋体;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:宋体;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1024937238;
        mso-list-type:hybrid;
        mso-list-template-ids:698133816 812925404 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:27.6pt;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%2\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:51.6pt;
        text-indent:-21.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:72.6pt;
        text-indent:-21.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:93.6pt;
        text-indent:-21.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%5\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:114.6pt;
        text-indent:-21.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:135.6pt;
        text-indent:-21.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:156.6pt;
        text-indent:-21.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%8\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:177.6pt;
        text-indent:-21.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:198.6pt;
        text-indent:-21.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi,<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:27.6pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">     
</span></span></span><![endif]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Pause doesn’t lose data unless some plugin clean data on pause or your source plugin is on real-time capture.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:27.6pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">     
</span></span></span><![endif]><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">From the log, it’s possible vaapipreproc cost all GstVaapiVideoPool resources but queue doesn’t return any of them, then alloc failed.
 Maybe you can try limit num of queue <max-size-buffers><o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">    Anyway, point 2 looks more like a workaround before issue fixed. You can file a bug in
</span></a><a href="https://bugzilla.gnome.org/browse.cgi?product=gstreamer-vaapi"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif"">https://bugzilla.gnome.org/browse.cgi?product=gstreamer-vaapi</span></a><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">
 and post sample code(better can run) there, then gst-vaapi maintainers can easy to reproduce.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Wind<o:p></o:p></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""> Engin Firat [mailto:engin.firat@adonissyazilim.com]
<br>
<b>Sent:</b> Tuesday, December 16, 2014 6:44 PM<br>
<b>To:</b> Yuan, Feng<br>
<b>Cc:</b> libva@lists.freedesktop.org<br>
<b>Subject:</b> Re: [Libva] Problem with vaapipostproc element<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">Hello, <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I have tried to follow the way described here. <o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html</a><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><b><i><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">If state in PLAYING, a unlink happened there, gst_pad_push_buffer may return GST_FLOW_NOT_LINKED, this depends on how the plugin handle NOT_LINKED
 message.</span></i></b><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US">From this I understand that, we actually do not know how vaapipostproc handles the NOT_LINKED message, do not we? However, the unlinked element is not the vaapipostproc element, it is the queue3 (just before the bin that
 contains matroskamux and filesink) in first pipeline below.<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I have tried two pipelines:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">videotestsrc -> queue1 -> vaapipostproc -> queue2 -> vaapiencode_h264 -> queue3 -> (bin)(matroskamux -> filesink) : Successfully running for first time period but it fails whenever placing a new bin<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">videotestsrc -> queue1 -> x264enc -> queue2 -> (bin)(matroskamux -> filesink) : Successfully running and changing the file location<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">1. I do not want to pause the whole pipeline since I do not want to lose any data.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">2. I assume queueBeforeBin (gst element queue) make the appropriate buffering while the pads are unlinked. <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I am suspicious on vaapipostproc element. According to debug messages below (attached in very first post),  it seems there is a problem with internal memory management on this element when trying to adding a new bin to
 pipeline. However I cannot understand how do we trigger this problem on this element.<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><b><i><span lang="EN-US">vaapipostproc gstvaapipluginbase.c:532:gst_vaapi_plugin_base_decide_allocation:<GPUPostProcessing>[00m no pool or doesn't support GstVaapiVideoMeta, making new pool</span></i></b><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><b><i><span lang="EN-US">vaapivideomemory gstvaapivideomemory.c:627:gst_vaapi_video_allocator_new:[00m has direct-rendering for NV12 surfaces: no</span></i></b><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><b><i><span lang="EN-US">vaapipostproc gstvaapipostproc.c:412:create_output_buffer:[00m failed to create output video buffer</span></i></b><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US">Regards.<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">On 16 December 2014 at 12:13, Yuan, Feng <<a href="mailto:feng.yuan@intel.com" target="_blank">feng.yuan@intel.com</a>> wrote:<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">     I’m not sure this is the right way to unlink the pad in a playing state. If state
 in PLAYING, a unlink happened there, gst_pad_push_buffer may return GST_FLOW_NOT_LINKED, this depends on how the plugin handle NOT_LINKED message. Normally may cause enter unstable state.</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-indent:9.6pt">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Maybe
</span><span lang="EN-US"><o:p></o:p></span></p>
<p style="margin-left:27.6pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">1.</span><span lang="EN-US" style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#1F497D">     
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">you can try pause the whole pipeline then destroy the mux bin. This may depend on all plugins can handle pause correctly.</span><span lang="EN-US"><o:p></o:p></span></p>
<p style="margin-left:27.6pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">2.</span><span lang="EN-US" style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#1F497D">     
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Add a appsink before muxbin.  If unlink happened, , make appsink to queue them for a while, then push_data after relink done.</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Wind</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a name="14a5296c236a5129__MailEndCompose"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></a><span lang="EN-US"><o:p></o:p></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" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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> Tuesday, December 16, 2014 5:12 PM<br>
<b>To:</b> <a href="mailto:libva@lists.freedesktop.org" target="_blank">libva@lists.freedesktop.org</a><br>
<b>Subject:</b> Re: [Libva] Problem with vaapipostproc element</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">Hello,</span><span lang="EN-US"><o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt"> </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">It is a typo. Sorry for mistake. </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">An updated implementation.c is attached to this mail. Also I have been setting the <b><i>format </i></b>attribute to vaapipostproc element. </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">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. </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">The problem still continues and I cannot find a way to handle this problem. </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt"> </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">Thank you so much for your consideration.</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.0pt">Regards.</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">On 16 December 2014 at 09:36, Yuan, Feng <<a href="mailto:feng.yuan@intel.com" target="_blank">feng.yuan@intel.com</a>> wrote:<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;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</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;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);</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;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</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;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
</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;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 .</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;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</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a name="14a5296c236a5129_14a5206ab34a1026__MailE"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></a><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks,</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F497D">Wind</span><span lang="EN-US"><o:p></o:p></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" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">Hello,<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">I have a problem related to element called vaapipostproc. The problem is as follows:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">My pipeline change strategy is as follows:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">0. Create a bin and place mux and filesink elements inside it. Moreover create a queue element before this bin.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">1. For specified intervals, fire a clock event and catch it in a handler<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">2. In clock handler place a blocking probe to queue's source pad and register a blocking data handler<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">3. In blocking data handler unlink queue and bin and send an EOS event to bin's sink pad. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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>. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">I want to share the most interesting part of the out.log file:<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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><o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">How can I solve this problem? Any help will be appreciated. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">Regards.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"><br>
Engin FIRAT<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"><br clear="all">
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">--
<o:p></o:p></span></p>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US" style="font-family:"Arial","sans-serif"">Engin FIRAT</span></b><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:7.5pt">Adoniss Yaz</span><span style="font-size:7.5pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:7.5pt">l</span><span style="font-size:7.5pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:7.5pt">m
 Bili</span><span style="font-size:7.5pt;font-family:"MS Mincho"">ş</span><span lang="EN-US" style="font-size:7.5pt">im </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:7.5pt">Elektronik </span><span lang="EN-US" style="font-size:10.0pt">Ara</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ş</span><span lang="EN-US" style="font-size:10.0pt">t</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">rma
 Geli</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ş</span><span lang="EN-US" style="font-size:10.0pt">tirme </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:7.5pt">Limited
</span><span style="font-size:7.5pt;font-family:"MS Mincho"">Ş</span><span lang="EN-US" style="font-size:7.5pt">irketi</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p style="margin:0cm;margin-bottom:.0001pt"><span lang="EN-US" style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#222222"><a href="tel:%2B90%20506%20884%2082%2007" target="_blank">+90 506 884 82 07</a> (Mobile)</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:7.5pt">ODTÜ Teknokent, </span><span lang="EN-US" style="font-size:10.0pt">ODTÜ-Hal</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">c</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">
 Yaz</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">l</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">mevi </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"MS Mincho"">İ</span><span lang="EN-US" style="font-size:10.0pt">nönü Bulvar</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">
 / ANKARA (Address)</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p style="margin:0cm;margin-bottom:.0001pt"><span lang="EN-US" style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#222222"><img border="0" id="_x0000_i1025" src="http://gdurl.com/hml0"></span><span lang="EN-US"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><br clear="all">
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US">-- <o:p></o:p></span></p>
<div>
<div>
<div>
<p class="MsoNormal"><b><span lang="EN-US" style="font-family:"Arial","sans-serif"">Engin FIRAT</span></b><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:7.5pt">Adoniss Yaz</span><span style="font-size:7.5pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:7.5pt">l</span><span style="font-size:7.5pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:7.5pt">m
 Bili</span><span style="font-size:7.5pt;font-family:"MS Mincho"">ş</span><span lang="EN-US" style="font-size:7.5pt">im </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:7.5pt">Elektronik </span><span lang="EN-US" style="font-size:10.0pt">Ara</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ş</span><span lang="EN-US" style="font-size:10.0pt">t</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">rma
 Geli</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ş</span><span lang="EN-US" style="font-size:10.0pt">tirme </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:7.5pt">Limited </span><span style="font-size:7.5pt;font-family:"MS Mincho"">Ş</span><span lang="EN-US" style="font-size:7.5pt">irketi</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p style="margin:0cm;margin-bottom:.0001pt"><span lang="EN-US" style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#222222">+90 506 884 82 07 (Mobile)</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:7.5pt">ODTÜ Teknokent, </span><span lang="EN-US" style="font-size:10.0pt">ODTÜ-Hal</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">c</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">
 Yaz</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">l</span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">mevi </span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"MS Mincho"">İ</span><span lang="EN-US" style="font-size:10.0pt">nön</span><span style="font-size:10.0pt">ü<span lang="EN-US"> Bulvar</span></span><span style="font-size:10.0pt;font-family:"MS Mincho"">ı</span><span lang="EN-US" style="font-size:10.0pt">
 / ANKARA (Address)</span><span lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p style="margin:0cm;margin-bottom:.0001pt"><span lang="EN-US" style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#222222"><img border="0" id="_x0000_i1026" src="http://gdurl.com/hml0"></span><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#222222"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>