[Libva] Compilation of vaapiparse elements

Engin Firat engin.firat at adonissyazilim.com
Fri Sep 11 07:03:23 PDT 2015


Hello Sree,

Thank you for your response. I will file a bug against gstreamer-vaapi.

I have some questions to to get a better view to the problem:
1. The built-in codec parsers are developed within gstreamer-vaapi element
and they have the same code with codecparsers coming from gstreamer-bad
plugin except they includes some minor patches?
2. When built-in codec parsers are enabled, does vaapidecode element gain a
self parse property?
3. Why we cannot get a vaapiparse_h264 element in case built-in codec
parsers are enabled (enable-builtin-codecparsers)? libgstvaapi_parse.so is
correctly linked and loaded but vaapiparse_h264 element is not produced.

I have been disabling the builtin-codecparsers because I want to get
vaapiparse_h264 element. The main problem is I cannot decode 1080p
streaming video coming from an IP camera. The resolutions 720p, 960p is
okey, but I cannot decode 1080p video and I think that maybe this element
can be a solution.

My pipeline is: rtspsrc ! rtph264depay ! h264parse ! vaapidecode ! queue !
vaapisink

The output of the pipeline is in attached file named *gst.out.*
I have debugged with ddd and saw where is the problem. You can find the
call stack in attached screen shot.

Could you please assist me what is the problem? Regards.

Regards.




On 9 September 2015 at 11:13, Sreerenj <sreerenj.balachandran at intel.com>
wrote:

> Hi Firat,
>
> Thanks for catching this.
> Here the local video parser plugin (libgstvaapi_parse.so) is only trying
> to link against the local(builtin) codec parser library.
> But since you disabled the builtin-codecparser at compile time ,the
> videoparsersesr is not getting the link correctly.
>
> Fix is needed in gst/vaapi/Makefile.am,,,
>
> BTW, why can't you use the builtin-codecparsers?? We always make sure the
> built-in codecparsers are up to date with upstream..
> Also if someone uses older GStreamer versions, I prefer using the built-in
> codecparsers since upstream is missing some patches...
>
> Could you please file a bug against gstreamer-vaapi :
> https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi..
> I will fix it, or you can attach the patch too :)
>
>
> On 08.09.2015 19:54, Engin Firat wrote:
>
> Hello all,
>
> I have written the same problem before gstreamer-devel forum but I cannot
> find any support to assist me in this problem. So I am writing here,
> expecting to find some support here.
>
> Here is the link to post in gstreamer-devel forum.
>
>
> http://gstreamer-devel.966125.n4.nabble.com/Compilation-of-gstreamer-vaapi-from-source-tc4673454.html
>
> Meanwhile I have been working on problem and I want to share a more
> detailed version of the problem:
>
> I have compiled gstreamer, gstreamer-base and gstreamer-bad of versions
> 1.5.90.
> I have compiled gstreamer-vaapi 0.6.0 version. Before compilation I have
> been using the following flags to configure the library:
>
> *./configure --prefix=/usr/local --enable-builtin-videoparsers
> --enable-builtin-codecparsers=no --enable-encoders*
>
> The library was compiled successfully and I have installed it. After
> installation I run the following command:
> *$ gst-inspect-1.0 -b*
>
> and I got the following output:
> *(gst-plugin-scanner:26005): GStreamer-WARNING **: Failed to load plugin
> '/usr/local/lib/gstreamer-1.0/libgstvaapi_parse.so':
> /usr/local/lib/gstreamer-1.0/libgstvaapi_parse.so: undefined symbol:
> gst_h265_parser_free*
> *Blacklisted files:*
> *  libgstvaapi_parse.so*
>
> I control the file *libgstvaapi_parse.so* *, *the following is portion of
> output that contains h265 word:
>
> *000000000001c3b0 t gst_h265_parse_class_intern_init*
> *000000000001da80 t gst_h265_parse_event*
> *000000000001d880 t gst_h265_parse_finalize*
> *000000000001c720 t gst_h265_parse_format_from_caps*
> *000000000001c640 t gst_h265_parse_get_caps*
> *000000000001dc90 t gst_h265_parse_get_property*
> *000000000001d8b0 t gst_h265_parse_get_string.isra.1.part.2*
> *00000000000229b0 t gst_h265_parse_get_type*
> *000000000001f480 t gst_h265_parse_handle_frame*
> *000000000001c380 t gst_h265_parse_init*
> *000000000001ddb0 t gst_h265_parse_negotiate*
> *000000000022dfd8 b gst_h265_parse_parent_class*
> *000000000001f380 t gst_h265_parse_parse_frame*
> *0000000000020bf0 t gst_h265_parse_pre_push_frame*
> *000000000022dfd0 b GstH265Parse_private_offset*
> *000000000001cc20 t gst_h265_parse_process_nal*
> *000000000001d500 t gst_h265_parse_push_codec_buffer*
> *000000000001d620 t gst_h265_parse_reset*
> *000000000001d570 t gst_h265_parse_reset_frame*
> *                 U gst_h265_parser_free*
> *                 U gst_h265_parser_identify_nalu*
> *                 U gst_h265_parser_identify_nalu_hevc*
> *                 U gst_h265_parser_identify_nalu_unchecked*
> *                 U gst_h265_parser_new*
> *                 U gst_h265_parser_parse_nal*
> *                 U gst_h265_parser_parse_pps*
> *                 U gst_h265_parser_parse_slice_hdr*
> *                 U gst_h265_parser_parse_sps*
> *                 U gst_h265_parser_parse_vps*
> *000000000001c900 t gst_h265_parser_store_nal*
> *0000000000020610 t gst_h265_parse_set_caps*
> *000000000001dd20 t gst_h265_parse_set_property*
> *000000000001d8e0 t gst_h265_parse_src_event*
> *000000000001d800 t gst_h265_parse_start*
> *000000000001d710 t gst_h265_parse_stop*
> *000000000001e060 t gst_h265_parse_update_src_caps*
> *000000000001cb20 t gst_h265_parse_wrap_nal*
> *                 U gst_h265_slice_hdr_free*
>
> It seems that, the symbol *gst_h265_parser_free *actually is not
> undefined. However this is normal in circumstances where this undefined
> symbol is defined somewhere else. So I have controlled the ldd output of
> the *libgstvaapi_parse.so* file to see the external dependencies:
>
> *$ ldd libgstvaapi_parse.so *
>
> The following is the output:
>
> * linux-vdso.so.1 =>  (0x00007fffe5aa6000)*
> * libgstcodecparsers_vpx.so.0 =>
> /usr/local/lib/libgstcodecparsers_vpx.so.0 (0x00007faec7ba9000)*
> * libgstvideo-1.0.so.0 => /usr/local/lib/libgstvideo-1.0.so.0
> (0x00007faec793c000)*
> * libgstbase-1.0.so.0 => /usr/local/lib/libgstbase-1.0.so.0
> (0x00007faec76de000)*
> * libgstreamer-1.0.so.0 => /usr/local/lib/libgstreamer-1.0.so.0
> (0x00007faec73c4000)*
> * libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
> (0x00007faec7173000)*
> * libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0
> (0x00007faec6e6a000)*
> * libgstpbutils-1.0.so.0 => /usr/local/lib/libgstpbutils-1.0.so.0
> (0x00007faec6c40000)*
> * libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007faec6a22000)*
> * libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faec665b000)*
> * libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faec6355000)*
> * libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
> (0x00007faec6151000)*
> * librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007faec5f48000)*
> * libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007faec5d44000)*
> * libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6
> (0x00007faec5b3c000)*
> * libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007faec58fd000)*
> * libgstaudio-1.0.so.0 => /usr/local/lib/libgstaudio-1.0.so.0
> (0x00007faec56b3000)*
> * /lib64/ld-linux-x86-64.so.2 (0x00007faec8045000)*
> * libgsttag-1.0.so.0 => /usr/local/lib/libgsttag-1.0.so.0
> (0x00007faec5479000)*
> * libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007faec5260000)*
>
>
> I have found that the symbol is defined in *libgstcodecparsers-1.0.so
> <http://libgstcodecparsers-1.0.so> *but libgstvaapi_parse.so does not
> have any dependency on this library nor files it is depended.
>
> Could you please help me to find the problem?
>
> Regards.
>
>
> _______________________________________________
> Libva mailing listLibva at lists.freedesktop.orghttp://lists.freedesktop.org/mailman/listinfo/libva
>
>
> --
> Thanks
> Sree
>
> ---------------------------------------------------------------------
> Intel Finland Oy
> Registered Address: PL 281, 00181 Helsinki
> Business Identity Code: 0357606 - 4
> Domiciled in Helsinki
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva
>
>


-- 
*Engin FIRAT*
Adoniss Yazılım Bilişim
Elektronik Araştırma Geliştirme
Limited Şirketi

+90 506 884 82 07 (Mobile)
ODTÜ Teknokent, ODTÜ-Halıcı Yazılımevi
İnönü Bulvarı / ANKARA (Address)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20150911/607adb67/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gst.out
Type: application/octet-stream
Size: 1195 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libva/attachments/20150911/607adb67/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2015-09-11-133550_1280x1024_scrot.png
Type: image/png
Size: 218944 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libva/attachments/20150911/607adb67/attachment-0001.png>


More information about the Libva mailing list