More Updates.
I successfully build an eglglessink from gst-plugins-bad1.0-1.24 with *patch on JTK1.
It works perfectly, as low cpu usage as nveglglessink under console with gst-pipeline
gst-launch-1.0 filesrc location=/1080p.mp4 ! qtdemux ! h264parse ! queue ! omxh264dec ! autovideoconvert ! identity ! eglglessink
And with the same issue as well, under QT it segfault. But this time we have more GDB info.
(gdb) r
Starting program: /JTK1/qmlvideo
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0xb4255430 (LWP 22260)]
[New Thread 0xb32eb430 (LWP 22262)]
[New Thread 0xb2036430 (LWP 22263)]
[New Thread 0xb0d7f430 (LWP 22264)]
[New Thread 0xb03ff430 (LWP 22265)]
[Thread 0xb0d7f430 (LWP 22264) exited]
[Thread 0xb03ff430 (LWP 22265) exited]
=============================================================
| WARNING!!! THIS VERSION OF QMEDIAPLAYER HAS BEEN MODIFIED |
| BASE ON QT DEVELOPMENT PORJECT THAT PORTS GST 0.10 TO 1.0 |
| GST_VERSION: 1.2.4, WITH VIDEO OUTPUT SINK: nveglglessink |
=============================================================
0:00:00.215734167 22257 0xb39030c0 WARN omx /dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomx.c:2778:plugin_init: Failed to load configuration file: Valid key file could not be found in search dirs (searched in: /root/.config:/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg as per GST_OMX_CONFIG_DIR environment variable, the xdg user config directory (or XDG_CONFIG_HOME) and the system config directory (or XDG_CONFIG_DIRS)
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and Mjstreaming[New Thread 0xb03ff430 (LWP 22267)]
[New Thread 0xb0d7f430 (LWP 22268)]
[New Thread 0xae392430 (LWP 22269)]
[New Thread 0xadb92430 (LWP 22270)]
0:00:02.483581416 22257 0x520f20 WARN qtdemux qtdemux.c:7977:qtdemux_parse_trak:<qtdemux0> unknown version 00000000
0:00:02.497137416 22257 0xb39030c0 WARN autoconvert gstautoconvert.c:1247:gst_auto_convert_src_query:<autoconvertchild> Got upstream query of type duration while no element was selected, forwarding.
0:00:02.497377916 22257 0xb39030c0 WARN autoconvert gstautoconvert.c:1247:gst_auto_convert_src_query:<autoconvertchild> Got upstream query of type seeking while no element was selected, forwarding.
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 4935: NvMMLiteBlockOpen
[New Thread 0xab5eb430 (LWP 22271)]
[New Thread 0xaadeb430 (LWP 22272)]
NvMMLiteBlockCreate : Block : BlockType = 261
[New Thread 0xaa5eb430 (LWP 22273)]
TVMR: cbBeginSequence: 571: BeginSequence 1920x1088, bVPR = 0
TVMR: cbBeginSequence: 813: DecodeBuffers = 3
TVMR: cbBeginSequence: 833: Display Resolution : (1920x1080)
TVMR: cbBeginSequence: 834: Display Aspect Ratio : (1920x1080)
TVMR: cbBeginSequence: 996: SurfaceLayout = 3
TVMR: cbBeginSequence: 1026: NumOfSurfaces = 7, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1
Allocating new output: 1920x1088 (x 9), ThumbnailMode = 0
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb0d7f430 (LWP 22268)]
0xb6055b66 in glGetString () from /usr/lib/arm-linux-gnueabihf/libGL.so.1
(gdb) bt full
#0 0xb6055b66 in glGetString () from /usr/lib/arm-linux-gnueabihf/libGL.so.1
No symbol table info available.
#1 0xae8da394 in gst_egl_adaptation_init_exts (ctx=ctx@entry=0x425500)
at gstegladaptation_egl.c:126
eglexts = 0x443300 "EGL_NV_system_time EGL_KHR_surfaceless_context EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_config_attribs EGL_KH"...
glexts = <optimized out>
__FUNCTION__ = "gst_egl_adaptation_init_exts"
#2 0xae8d9d1c in gst_egl_adaptation_init_surface (ctx=0x425500, format=GST_VIDEO_FORMAT_I420)
at gstegladaptation.c:470
ret = 174 '\256'
texnames = {0x0, 0x0, 0x0}
frag_prog = 0x0
free_frag_prog = 0
i = <optimized out>
__FUNCTION__ = "gst_egl_adaptation_init_surface"
#3 0xae8d7644 in gst_eglglessink_configure_caps (caps=0x3c5800, eglglessink=<optimized out>)
at gsteglglessink.c:2146
ret = <optimized out>
info = {finfo = 0xaed4f64c, interlace_mode = GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
flags = GST_VIDEO_FLAG_NONE, width = 1920, height = 1080, size = 3110400, views = 1,
chroma_site = GST_VIDEO_CHROMA_SITE_UNKNOWN, colorimetry = {
range = GST_VIDEO_COLOR_RANGE_16_235, matrix = GST_VIDEO_COLOR_MATRIX_BT709,
transfer = GST_VIDEO_TRANSFER_BT709, primaries = GST_VIDEO_COLOR_PRIMARIES_BT709},
par_n = 1, par_d = 1, fps_n = 30, fps_d = 1, offset = {0, 2073600, 2592000, 0}, stride = {
1920, 960, 960, 0}, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}
#4 render_thread_func (eglglessink=0x46e4f8) at gsteglglessink.c:576
caps = 0x3c5800
object = 0x3c5800
message = <optimized out>
val = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0,
v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0,
v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0,
v_pointer = 0x0}}}
item = 0x55bcf0
last_flow = GST_FLOW_OK
__FUNCTION__ = "render_thread_func"
#5 0xb5f75eda in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
which trace back to gstegladaptation_egl.c
void
gst_egl_adaptation_init_exts (GstEglAdaptationContext * ctx)
{
......
eglexts = eglQueryString (gst_egl_display_get (ctx->display), EGL_EXTENSIONS);
glexts = glGetString (GL_EXTENSIONS); <--- This Line !!!
......
return;
}
Haven’t totally figure it out yet, just keep on digging !!!
*patch:
bugzilla: Bug 730986 – eglglessink gives undefined symbol error