<HTML><BODY>Hm, i can't find something like ffrkmpp* functions in my .h files of ffmpeg.<br><br><pre id="tw-target-text" class="tw-data-text tw-ta tw-text-medium" style="text-align: left; height: 36px;" dir="ltr" data-placeholder="Перевод" data-fulltext="" data-mce-style="text-align: left; height: 36px;"><span lang="en">Could this be a bug of ffmpeg? (<span lang="en">I added --enable-rkmpp flag when I was building ffmpeg</span>)</span></pre><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        Среда, 11 апреля 2018, 18:05 +04:00 от Henri Zikken <zikken@xs4all.nl>:<br>
        <br>
        <div id="">

<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
            <div id="style_15234555550000000238_BODY"><div class="class_1523487370"><div class="WordSection1_mailru_css_attribute_postfix"><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Please note I don’t have any experience with the lib, it was something I found with a fast google search.</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">FFMpeg does support hardware encoding, see:</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"><a href="https://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212339.html" target="_blank" rel=" noopener noreferrer">https://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212339.html</a></span><br data-mce-bogus="1"></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">So you could do it that way as well. As far as I can tell, it would indeed entail compiling ffmpeg with the mentioned flag, and then use the alternate functions for everything, as you see in that changeset.</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">So, instead of avcodec_open2, you would use ffrkmpp_open_decoder and so forth.</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">I have no experience with using this. But if you look at that patchset which adds the rockchip support, it should be pretty obvious.</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Regards,</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Henri Zikken</span></p><p class="MsoNormal_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><div><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal_mailru_css_attribute_postfix"><b>Van:</b> Libav-user <<a href="mailto:libav-user-bounces@ffmpeg.org">libav-user-bounces@ffmpeg.org</a>> <b>Namens </b>Anton Prikazchikov<br><b>Verzonden:</b> woensdag 11 april 2018 15:59<br><b>Aan:</b> "This list is about using libavcodec, libavformat, libavutil,libavdevice and libavfilter." <<a href="mailto:libav-user@ffmpeg.org">libav-user@ffmpeg.org</a>><br><b>Onderwerp:</b> Re: [Libav-user] How to use rkmpp decoder?</p></div></div><p class="MsoNormal_mailru_css_attribute_postfix"> </p><p style="margin-bottom:12.0pt">Thanks for answer!<br><br>I will be testing the lib which you sent.<br><br>But still, do you know what mean "--enable-rkmpp" flag? I <span lang="EN">thought</span> that ffmpeg supports hardware decoding too.</p><blockquote style="border:none;border-left:solid #0857A6 1.0pt;padding:0cm 0cm 0cm 8.0pt;margin-left:7.5pt;margin-top:7.5pt;margin-right:7.5pt;margin-bottom:7.5pt"><p class="MsoNormal_mailru_css_attribute_postfix" style="margin-bottom:12.0pt">Среда, 11 апреля 2018, 17:37 +04:00 от Henri Zikken <<a href="//e.mail.ru/compose/?mailto=mailto%3azikken@xs4all.nl" target="_blank" rel=" noopener noreferrer">zikken@xs4all.nl</a>>:</p><div id=""><div><div><div id="style_15234538610000000006_BODY_mailru_css_attribute_postfix"><div><div><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">The packet you get, is raw stream data. If you want to decode it, you have to send the packet tot he decoder, and then receive back pcm frames from it. However, you don’t want to do that, as you want to use the hardware to decode, not ffmpeg. So this is why it’s kind of useless to put ffmpeg in it, as you want to do everything ffmpeg does, in hardware.</span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">I’d consider using one of the multiple available rtp libs, like this one:</span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"><a href="http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html" target="_blank" rel=" noopener noreferrer">http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html</a></span><br data-mce-bogus="1"></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">to receive the stream, and then the mpp software to do the decoding/encoding and so forth.  FFMpeg would be bloated and overly complicated as ‘just an rtp receiver’.</span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Regards,</span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Henri Zikken</span></p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><div><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><b>Van:</b> Libav-user <<a href="//e.mail.ru/compose/?mailto=mailto%3alibav%2duser%2dbounces@ffmpeg.org" target="_blank" rel=" noopener noreferrer">libav-user-bounces@ffmpeg.org</a>> <b>Namens </b>Anton Prikazchikov<br><b>Verzonden:</b> woensdag 11 april 2018 13:05<br><b>Aan:</b> "This list is about using libavcodec, libavformat, libavutil,libavdevice and libavfilter." <<a href="//e.mail.ru/compose/?mailto=mailto%3alibav%2duser@ffmpeg.org" target="_blank" rel=" noopener noreferrer">libav-user@ffmpeg.org</a>><br><b>Onderwerp:</b> Re: [Libav-user] How to use rkmpp decoder?</p></div></div><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"> </p><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix" style="margin-bottom:12.0pt">I need an avpacket because i read rtcp stream using by ffmpeg and receive from the rtcp stream an avpacket. Mpp can't read rtcp stream as i know.<br><br>Also I saw that ffmpeg have "--enable-rkmpp" flag a<span lang="EN">t the configuration stage. And if I'm not mistaken this flag have to enable decoding using by rkmpp, but I can't run it... What must this flag do?</span><br><br><span style="mso-fareast-language:EN-US">>Basically the packet->data is just the raw data. You can just pass this on to your mpp packet as the buffer. Packet->size gives you the size.<br>I tried to add the received packet->data to mpppacket, but it doesn't work. Also i want to clarify d</span><span style="mso-fareast-language:EN-US" lang="EN">oes the packet->data accurately contain unmodified H264 data?(I receive H264 data stream)</span></p><blockquote style="border:none;border-left:solid #0857A6 1.0pt;padding:0cm 0cm 0cm 8.0pt;margin-left:7.5pt;margin-top:7.5pt;margin-right:7.5pt;margin-bottom:7.5pt"><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix" style="margin-bottom:12.0pt">Вторник, 10 апреля 2018, 21:16 +04:00 от Henri Zikken <<a target="_blank" rel=" noopener noreferrer">zikken@xs4all.nl</a>>:</p><div id=""><div><div><div id="style_15233805730000000783_BODY_mailru_css_attribute_postfix_mailru_css_attribute_postfix"><div><div><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">I don’t see why you would want an avpacket in the first place, then. As ffmpeg won’t do the decoding, why bother with ffmpeg?</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Basically the packet->data is just the raw data. You can just pass this on to your mpp packet as the buffer. Packet->size gives you the size.</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Regards,</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Henri Zikken</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><div><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><b>Van:</b> Libav-user <<a target="_blank" rel=" noopener noreferrer">libav-user-bounces@ffmpeg.org</a>> <b>Namens </b>Anton Prikazchikov<br><b>Verzonden:</b> dinsdag 10 april 2018 08:34<br><b>Aan:</b> "This list is about using libavcodec, libavformat, libavutil,libavdevice and libavfilter." <<a target="_blank" rel=" noopener noreferrer">libav-user@ffmpeg.org</a>><br><b>Onderwerp:</b> Re: [Libav-user] How to use rkmpp decoder?</p></div></div><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"> </p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix">My purpose is decoding a received from RTCP stream h264 AVPacket-s to AVFrame-s using by hardware of rk3399 (Rockchip RK3399 is a processor for computing(aarch64, Rockchip platform))<br><br>I found that rk3399 has mpp. Media Process Platform(mpp) is the video codec parser and <span class="tgcmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix">Hardware Abstraction Layer library for the Rockchip platforms.</span><br><span class="tgcmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix">Mpp provides C API for decoding h264 video files using by hardware of Rockchip platform.</span><br><br>And now i am thinking that the problem is converting from AVPacket(contain H264 data from RTCP stream) to MppPacket(this packet i will send to hardware decoder)<br><br>Thanks,<br>Anton Prikazchikov</p><blockquote style="border:none;border-left:solid #0857A6 1.0pt;padding:0cm 0cm 0cm 8.0pt;margin-left:7.5pt;margin-top:7.5pt;margin-right:7.5pt;margin-bottom:7.5pt"><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix" style="margin-bottom:12.0pt">Понедельник, 9 апреля 2018, 20:06 +04:00 от Henri Zikken <<a href="//e.mail.ru/compose/?mailto=mailto%3azikken@xs4all.nl" target="_blank" rel=" noopener noreferrer">zikken@xs4all.nl</a>>:</p><div id=""><div><div><div id="style_15232899660000000175_BODY_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_attribute_postfix"><div><div><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Ok, the rk339 is soms sort of computer. You are receiving a stream on that computer. Now you wish to decode that stream.</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">What is your purpose? What do you mean by decoding a stream? What has MPP got to do witht his all?</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Ffmpeg can decode H264. See the docs for a full example of this:</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"><a href="https://ffmpeg.org/doxygen/trunk/decoding__encoding_8c-source.html" target="_blank" rel=" noopener noreferrer">https://ffmpeg.org/doxygen/trunk/decoding__encoding_8c-source.html</a></span><br data-mce-bogus="1"></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">You need more than just including .h files. The .h files can be seen as ‘descriptions of stuff to be found somewhere else’. So having the .h files might make it compile, but then it won’t link or won’t run due to missing files.</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">You need the compiled .so, .a or .dll files. So you need to compile ffmpeg yourself, or find the binaries suitable for your system.</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Regards,</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US">Henri Zikken</span></p><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><span style="mso-fareast-language:EN-US"> </span></p><div><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"><b>Van:</b> Libav-user <<a href="//e.mail.ru/compose/?mailto=mailto%3alibav%2duser%2dbounces@ffmpeg.org" target="_blank" rel=" noopener noreferrer">libav-user-bounces@ffmpeg.org</a>> <b>Namens </b>Anton Prikazchikov<br><b>Verzonden:</b> maandag 9 april 2018 16:27<br><b>Aan:</b> <a href="//e.mail.ru/compose/?mailto=mailto%3alibav%2duser@ffmpeg.org" target="_blank" rel=" noopener noreferrer">libav-user@ffmpeg.org</a><br><b>Onderwerp:</b> [Libav-user] How to use rkmpp decoder?</p></div></div><p class="msonormalmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"> </p><div><div><div id="style_15232839560000000369_BODY_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_attribute_postfix"><div><p>Hello,<br><br>I have rk3399 and installed mpp(<a href="https://github.com/rockchip-linux/mpp" target="_blank" rel=" noopener noreferrer">https://github.com/rockchip-linux/mpp</a>).<br><br>I am receiving rtsp stream using by ffmpeg(C++).<br>And now I have to decode h264 video using by mpp but I don't understand how to do this. <br><br>I found <a href="https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/rkmppdec.c" target="_blank" rel=" noopener noreferrer">https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/rkmppdec.c</a>  and try to use this code for decoding.</p><p>I stopped on the code line below:</p><p>ret = <span class="pl-c1mailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix">ff_decode_get_packet</span>(avctx, &pkt);<br><br>This function requires .h files from ffmpeg which i have not in my compiled version. Could someone prompt can I add some flags at configuration stage for .h files or somthing else?(I don't want take these files from github src)<br><br>Or maybe is there a better way for h264 decoding using by hw?<br><br>Thanks,<br>Anton Prikazchikov</p></div></div></div></div></div></div></div><div><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix">_______________________________________________<br>Libav-user mailing list<br><a href="//e.mail.ru/compose/?mailto=mailto%3aLibav%2duser@ffmpeg.org" target="_blank" rel=" noopener noreferrer">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank" rel=" noopener noreferrer">http://ffmpeg.org/mailman/listinfo/libav-user</a><br data-mce-bogus="1"></p></div></div></div></div></blockquote><p class="msonormalmailrucssattributepostfixmailrucssattributepostfix_mailru_css_attribute_postfix"> </p></div></div></div><div><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix">_______________________________________________<br>Libav-user mailing list<br><a target="_blank" rel=" noopener noreferrer">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank" rel=" noopener noreferrer">http://ffmpeg.org/mailman/listinfo/libav-user</a><br data-mce-bogus="1"></p></div></div></div></div></blockquote><p class="msonormalmailrucssattributepostfix_mailru_css_attribute_postfix"><br><br>С Уважением,<br>Приказчиков Антон</p></div></div></div><div><p class="MsoNormal_mailru_css_attribute_postfix">_______________________________________________<br>Libav-user mailing list<br><a href="//e.mail.ru/compose/?mailto=mailto%3aLibav%2duser@ffmpeg.org" target="_blank" rel=" noopener noreferrer">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank" rel=" noopener noreferrer">http://ffmpeg.org/mailman/listinfo/libav-user</a><br data-mce-bogus="1"></p></div></div></div></div></blockquote></div></div></div>
            
                
                    <div>_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a><br>
<a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
</div>
                
             
        
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote></BODY></HTML>