<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>Hello Rand,</div><div><br></div><div>You are right. The board is a Dragonboard 410c by 96boards.</div><div><br></div><div><a href="https://developer.qualcomm.com/hardware/snapdragon-410/tools" rel="nofollow" target="_blank">https://developer.qualcomm.com/hardware/snapdragon-410/tools</a><br></div><div><br></div><div>96boards in their release notes</div><div><br></div><div><a href="http://releases.linaro.org/96boards/dragonboard410c/linaro/debian/latest/" rel="nofollow" target="_blank">http://releases.linaro.org/96boards/dragonboard410c/linaro/debian/latest/</a><br></div><div><br></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></div><div><br></div><div>The C/C++ code I am using is based on this one:</div><div><br></div><div><a href="https://git.linaro.org/people/stanimir.varbanov/v4l2-decode.git/tree" rel="nofollow" target="_blank" class="enhancr_card_4929569402">stanimir.varbanov/v4l2-decode.git - Unnamed repository</a><br></div><div><br></div><div id="ydp8a39d818enhancr_card_4929569402" class="ydp8a39d818yahoo-link-enhancr-card ydp8a39d818yahoo-link-enhancr-not-allow-cover ydp8a39d818ymail-preserve-class ydp8a39d818ymail-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-decode.git/tree" data-type="YENHANCER" data-size="MEDIUM" contenteditable="false"><a href="https://git.linaro.org/people/stanimir.varbanov/v4l2-decode.git/tree" style="text-decoration:none !important;color:#000 !important;" class="ydp8a39d818yahoo-enhancr-cardlink" rel="nofollow" target="_blank"><table border="0" class="ydp8a39d818card-wrapper ydp8a39d818yahoo-ignore-table" cellpadding="0" cellspacing="0" style="max-width:400px;"><tbody><tr><td width="400"><table border="0" class="ydp8a39d818card ydp8a39d818yahoo-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="ydp8a39d818card-info ydp8a39d818yahoo-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="ydp8a39d818card-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-decode.git - Unnamed repository</h2><p class="ydp8a39d818card-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>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></div><div><br></div><div>So what additional processing gstreamer applies to the video hardware encoding ?</div><div><br></div><div>Regards,<br></div><div>Simon</div><div><br></div>
            
            <div id="yahoo_quoted_4802334363" class="yahoo_quoted">
                <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></div>
                    <div><br></div>
                    <div><div id="yiv7041149014"><style>#yiv7041149014 #yiv7041149014 --
 
 _filtered #yiv7041149014 {font-family:Helvetica;panose-1:2 11 6 4 2 2 2 2 2 4;}
 _filtered #yiv7041149014 {panose-1:2 4 5 3 5 4 6 3 2 4;}
 _filtered #yiv7041149014 {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}
#yiv7041149014  
#yiv7041149014 p.yiv7041149014MsoNormal, #yiv7041149014 li.yiv7041149014MsoNormal, #yiv7041149014 div.yiv7041149014MsoNormal
        {margin:0in;margin-bottom:.0001pt;font-size:12.0pt;font-family:New serif;}
#yiv7041149014 a:link, #yiv7041149014 span.yiv7041149014MsoHyperlink
        {color:#0563C1;text-decoration:underline;}
#yiv7041149014 a:visited, #yiv7041149014 span.yiv7041149014MsoHyperlinkFollowed
        {color:#954F72;text-decoration:underline;}
#yiv7041149014 span.yiv7041149014EmailStyle17
        {font-family:sans-serif;color:#1F497D;}
#yiv7041149014 .yiv7041149014MsoChpDefault
        {font-size:10.0pt;}
 _filtered #yiv7041149014 {margin:1.0in 1.0in 1.0in 1.0in;}
#yiv7041149014 div.yiv7041149014WordSection1
        {}
#yiv7041149014 </style><div><div class="yiv7041149014WordSection1"><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">Hello,</span></p><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">  </span></p><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">It might help if you mention which embedded board you are using.</span></p><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">  </span></p><p class="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">  </span></p><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">Regards,</span></p><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">Rand</span></p><p class="yiv7041149014MsoNormal"><span style="font-size:11.0pt;">  </span></p><div class="yiv7041149014yqt0363340521" id="yiv7041149014yqt02964"><div><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in;"><p class="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal">  </p><div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">Hello,</span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">So I suspect that gstreamer doesn't use the hardware encoder.</span></p></div><div><p class="yiv7041149014MsoNormal"><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="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">Thanks.</span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">Regards,</span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">Simon</span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;">  </span></p></div><div><p class="yiv7041149014MsoNormal"><span style="font-size:10.0pt;"> </span></p></div></div></div></div></div></div></div>
                </div>
            </div></div></body></html>