<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"><head><!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
            <div><br></div><div>Sorry,</div><div> </div><div>The code reference I gave is wrong.</div><div>The code I am using is based on this one:</div><div><br></div><div><a href="https://git.linaro.org/people/stanimir.varbanov/v4l2-encode.git/tree/" rel="nofollow" target="_blank" class="enhancr_card_4821561227">stanimir.varbanov/v4l2-encode.git - Unnamed repository</a><br></div><div><br></div><div id="ydpcb81dd4cenhancr_card_4821561227" class="ydpcb81dd4cyahoo-link-enhancr-card ydpcb81dd4cyahoo-link-enhancr-not-allow-cover ydpcb81dd4cymail-preserve-class ydpcb81dd4cymail-preserve-style" style="max-width:400px;font-family:"Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;" data-url="https://git.linaro.org/people/stanimir.varbanov/v4l2-encode.git/tree/" data-type="YENHANCER" data-size="MEDIUM" contenteditable="false"><a href="https://git.linaro.org/people/stanimir.varbanov/v4l2-encode.git/tree/" style="text-decoration:none !important;color:#000 !important;" class="ydpcb81dd4cyahoo-enhancr-cardlink" rel="nofollow" target="_blank"><table border="0" class="ydpcb81dd4ccard-wrapper ydpcb81dd4cyahoo-ignore-table" cellpadding="0" cellspacing="0" style="max-width:400px;"><tbody><tr><td width="400"><table border="0" class="ydpcb81dd4ccard ydpcb81dd4cyahoo-ignore-table" cellpadding="0" cellspacing="0" width="100%" style="max-width:400px;border-width:1px;border-style:solid;border-color:rgb(224, 228, 233);border-radius:2px;"><tbody><tr><td><table border="0" class="ydpcb81dd4ccard-info ydpcb81dd4cyahoo-ignore-table" cellpadding="0" cellspacing="0" style="background:#fff;position:relative;z-index:2;width:100%;max-width:400px;border-radius:0 0 2px 2px;border-top:1px solid rgb(224, 228, 233);"><tbody><tr><td style="background-color:#ffffff;padding:16px 0 16px 12px;vertical-align:top;border-radius:0 0 0 2px;"></td><td style="vertical-align:middle;padding:12px 24px 16px 12px;width:99%;font-family:"Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;border-radius:0 0 2px 0;"><h2 class="ydpcb81dd4ccard-title" style="font-size: 14px; line-height: 19px; margin: 0px 0px 6px; font-family: "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; color: rgb(38, 40, 42);">stanimir.varbanov/v4l2-encode.git - Unnamed repository</h2><p class="ydpcb81dd4ccard-description" style="font-size: 12px; line-height: 16px; margin: 0px; color: rgb(151, 155, 167);"></p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></a></div><div><br></div><div><br></div><div>SImon</div>
            
            <div id="yahoo_quoted_5439106993" class="yahoo_quoted">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        Il mercoledì 25 aprile 2018, 23:33:24 CEST, simon.zz@yahoo.com <simon.zz@yahoo.com> ha scritto:
                    </div>
                    <div><br></div>
                    <div><br></div>
                    <div><div id="yiv0363526798"><div><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
            <div>Hello Rand,</div><div><br clear="none"></div><div>You are right. The board is a Dragonboard 410c by 96boards.</div><div><br clear="none"></div><div><a rel="nofollow" shape="rect" target="_blank" href="https://developer.qualcomm.com/hardware/snapdragon-410/tools">https://developer.qualcomm.com/hardware/snapdragon-410/tools</a><br clear="none"></div><div><br clear="none"></div><div>96boards in their release notes</div><div><br clear="none"></div><div><a rel="nofollow" shape="rect" target="_blank" href="http://releases.linaro.org/96boards/dragonboard410c/linaro/debian/latest/">http://releases.linaro.org/96boards/dragonboard410c/linaro/debian/latest/</a><br clear="none"></div><div><br clear="none"></div><div>write that the gstreamer pipeline uses the video encoder.</div><div>But as I said before, I noticed notable differences in video results, which make me doubt that gstreamer really uses the encoder..<br clear="none"></div><div><br clear="none"></div><div>The C/C++ code I am using is based on this one:</div><div><br clear="none"></div><div><a rel="nofollow" shape="rect" class="yiv0363526798enhancr_card_4929569402" target="_blank" href="https://git.linaro.org/people/stanimir.varbanov/v4l2-decode.git/tree">stanimir.varbanov/v4l2-decode.git - Unnamed repository</a><br clear="none"></div><div><br clear="none"></div><div class="yiv0363526798ydp8a39d818yahoo-link-enhancr-card yiv0363526798ydp8a39d818yahoo-link-enhancr-not-allow-cover yiv0363526798ydp8a39d818ymail-preserve-class yiv0363526798ydp8a39d818ymail-preserve-style" id="yiv0363526798ydp8a39d818enhancr_card_4929569402" style="max-width:400px;" data-url="https://git.linaro.org/people/stanimir.varbanov/v4l2-decode.git/tree" data-type="YENHANCER" data-size="MEDIUM"><a rel="nofollow" shape="rect" class="yiv0363526798ydp8a39d818yahoo-enhancr-cardlink" target="_blank" href="https://git.linaro.org/people/stanimir.varbanov/v4l2-decode.git/tree" style="text-decoration:none;color:#000;"><table class="yiv0363526798ydp8a39d818card-wrapper yiv0363526798ydp8a39d818yahoo-ignore-table" border="0" cellpadding="0" cellspacing="0" style="max-width:400px;"><tbody><tr><td colspan="1" rowspan="1" width="400"><table class="yiv0363526798ydp8a39d818card yiv0363526798ydp8a39d818yahoo-ignore-table" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:400px;border-width:1px;border-style:solid;border-color:rgb(224, 228, 233);border-radius:2px;"><tbody><tr><td colspan="1" rowspan="1"><table class="yiv0363526798ydp8a39d818card-info yiv0363526798ydp8a39d818yahoo-ignore-table" border="0" cellpadding="0" cellspacing="0" style="background:#fff;position:relative;z-index:2;width:100%;max-width:400px;border-radius:0 0 2px 2px;border-top:1px solid rgb(224, 228, 233);"><tbody><tr><td colspan="1" rowspan="1" style="background-color:#ffffff;padding:16px 0 16px 12px;vertical-align:top;border-radius:0 0 0 2px;"></td><td colspan="1" rowspan="1" style="vertical-align:middle;padding:12px 24px 16px 12px;width:99%;"><h2 class="yiv0363526798ydp8a39d818card-title" style="font-size:14px;line-height:19px;margin:0px 0px 6px;">stanimir.varbanov/v4l2-decode.git - Unnamed repository</h2><p class="yiv0363526798ydp8a39d818card-description" style="font-size:12px;line-height:16px;margin:0px;color:rgb(151, 155, 167);"></p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></a></div><div><br clear="none"></div><div>I basically changed the Varbanov's code to catch the camera frames and feed the encoder, my code works in the sense I can record an h264 video (not mp4 as gstreamer does), but I noticed the results I commented in my previous mail.<br clear="none"></div><div><br clear="none"></div><div>So what additional processing gstreamer applies to the video hardware encoding ?</div><div><br clear="none"></div><div>Regards,<br clear="none"></div><div>Simon</div><div><br clear="none"></div>
            
            <div class="yiv0363526798yqt6317867049" id="yiv0363526798yqt16464"><div class="yiv0363526798yahoo_quoted" id="yiv0363526798yahoo_quoted_4802334363">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        Il mercoledì 25 aprile 2018, 22:49:38 CEST, Rand Graham <rand.graham@zenith.com> ha scritto:
                    </div>
                    <div><br clear="none"></div>
                    <div><br clear="none"></div>
                    <div><div id="yiv0363526798"><style>#yiv0363526798   --
 
 filtered  {font-family:Helvetica;panose-1:2 11 6 4 2 2 2 2 2 4;}
#yiv0363526798 filtered  {panose-1:2 4 5 3 5 4 6 3 2 4;}
#yiv0363526798 filtered  {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}
#yiv0363526798   
 p.yiv0363526798MsoNormal, #yiv0363526798  li.yiv0363526798MsoNormal, #yiv0363526798  div.yiv0363526798MsoNormal
        {margin:0in;margin-bottom:.0001pt;font-size:12.0pt;font-family:New serif;}
#yiv0363526798  a:link, #yiv0363526798  span.yiv0363526798MsoHyperlink
        {color:#0563C1;text-decoration:underline;}
#yiv0363526798  a:visited, #yiv0363526798  span.yiv0363526798MsoHyperlinkFollowed
        {color:#954F72;text-decoration:underline;}
#yiv0363526798  span.yiv0363526798EmailStyle17
        {font-family:sans-serif;color:#1F497D;}
#yiv0363526798  .yiv0363526798MsoChpDefault
        {font-size:10.0pt;}
#yiv0363526798 filtered  {margin:1.0in 1.0in 1.0in 1.0in;}
#yiv0363526798  div.yiv0363526798WordSection1
        {}
#yiv0363526798 </style><div><div class="yiv0363526798WordSection1"><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">Hello,</span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">  </span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">It might help if you mention which embedded board you are using.</span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">  </span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">In order to use custom hardware from a vendor such as nVidia, you would compile gstreamer plugins provided by the vendor and then specify them in your pipeline.</span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">  </span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">Regards,</span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">Rand</span></p><p class="yiv0363526798MsoNormal"><span style="font-size:11.0pt;">  </span></p><div class="yiv0363526798yqt0363340521" id="yiv0363526798yqt02964"><div><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in;"><p class="yiv0363526798MsoNormal"><b><span style="font-size:11.0pt;">From:</span></b><span style="font-size:11.0pt;"> gstreamer-devel [mailto:gstreamer-devel-bounces@lists.freedesktop.org] <b>On Behalf Of </b>simon.zz@yahoo.com<br clear="none"><b>Sent:</b> Wednesday, April 25, 2018 1:01 PM<br clear="none"><b>To:</b> gstreamer-devel@lists.freedesktop.org<br clear="none"><b>Subject:</b> How do gstreamer interfaces with H264 hardware encoders and creates videos ?</span></p></div></div><p class="yiv0363526798MsoNormal">  </p><div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">Hello,</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">I am using an embedded board which has an hardware H264 encoder and I am testing video generation both with gst-launch and with a C++ code wrote by my self.</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">Comparing my code results to the gst-launch results, it is clear and obvious that gstreamer applies additional processing compared to what I get from the hardware encoder buffer.</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">The first obvious processing is that it generates an mp4 video, while I can only generate an h264 video, but I am not using additional mp4 demux in my code.</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">For example, the gst-launch resulting video image's quality it's quiet better, the video has the correct framerate rather than the video I obtain which results slightly "accelerated", and in addtition, the time-stap (minutes - seconds) is present while in the video I obtain from my C++ code it's not.</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">So I suspect that gstreamer doesn't use the hardware encoder.</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">How can I be sure that gstreamer uses the hardware encoder instead of a h264 software library and how can I know in real time what are the V4L2 settings that gstreamer applies to the encoder ?</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">Thanks.</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">Regards,</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">Simon</span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv0363526798MsoNormal"><span style="font-size:10.0pt;"> </span></p></div></div></div></div></div></div></div>
                </div>
            </div></div></div></div></div></div>
                </div>
            </div></div></body></html>