Attempting to play video via DLNA on Panasonic Blu-ray Disk Player always results in segfault
When any video file is opened by the DLNA client on a Panasonic "Blu-ray Disk Player" (the only model information in "System Information" is the firmware version: 1.92), the video interface on the device opens and then rygel promptly segfaults on the machine it is running from. The same file opened by the UPNP client in VLC plays fine with no segfault.
I am running rygel from the official repositories of Arch Linux (package version 0.38.4-1), with gst-libav (1.18.0-1), gst-plugins-good (1.18.0-1), gst-plugins-bad (1.18.0-1), and gst-plugins-ugly (1.18.0-1) all installed.
Here is the backtrace:
#0 gst_ffmpegvidenc_receive_packet
(ffmpegenc=0x5555568cafc0, got_packet=<optimized out>, send=<optimized out>)
at ../gst-libav/ext/libav/gstavvidenc.c:690
#1 0x00007fffed06aa9d in gst_ffmpegvidenc_flush_buffers (ffmpegenc=<optimized out>, send=0)
at ../gst-libav/ext/libav/gstavvidenc.c:762
#2 gst_ffmpegvidenc_stop (encoder=0x5555568cafc0) at ../gst-libav/ext/libav/gstavvidenc.c:863
#3 0x00007fffec231671 in gst_video_encoder_change_state
(element=0x5555568cafc0, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gst-plugins-base/gst-libs/gst/video/gstvideoencoder.c:1749
#4 0x00007fffec40d800 in gst_element_change_state
(element=0x5555568cafc0, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gstreamer/gst/gstelement.c:3046
#5 0x00007fffec40c2b4 in gst_element_set_state_func (element=0x5555568cafc0, state=<optimized out>)
at ../gstreamer/gst/gstelement.c:3000
#6 0x00007fffec3de2b7 in gst_bin_change_state_func (element=<optimized out>, transition=<optimized out>)
at ../gstreamer/gst/gstbin.c:2615
#7 0x00007fffed3beb88 in gst_encode_bin_change_state
(element=0x555558bb6ff0, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gst-plugins-base/gst/encoding/gstencodebin.c:2465
#8 0x00007fffec40d800 in gst_element_change_state
(element=0x555558bb6ff0, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gstreamer/gst/gstelement.c:3046
#9 0x00007fffec40c2b4 in gst_element_set_state_func (element=0x555558bb6ff0, state=<optimized out>)
at ../gstreamer/gst/gstelement.c:3000
#10 0x00007fffec3de2b7 in gst_bin_change_state_func (element=<optimized out>, transition=<optimized out>)
at ../gstreamer/gst/gstbin.c:2615
#11 0x00007fffec40d800 in gst_element_change_state
(element=0x7fffe8027050, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gstreamer/gst/gstelement.c:3046
#12 0x00007fffec40c2b4 in gst_element_set_state_func (element=0x7fffe8027050, state=<optimized out>)
at ../gstreamer/gst/gstelement.c:3000
#13 0x00007fffec3de2b7 in gst_bin_change_state_func (element=<optimized out>, transition=<optimized out>)
at ../gstreamer/gst/gstbin.c:2615
#14 0x00007fffec443399 in gst_pipeline_change_state
(element=0x555558bb7250, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gstreamer/gst/gstpipeline.c:525
#15 0x00007fffec40d800 in gst_element_change_state
(element=0x555558bb7250, transition=GST_STATE_CHANGE_PAUSED_TO_READY)
at ../gstreamer/gst/gstelement.c:3046
#16 0x00007fffec40da31 in gst_element_change_state
(element=0x555558bb7250, transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED)
at ../gstreamer/gst/gstelement.c:3072
#17 0x00007fffec40c2b4 in gst_element_set_state_func (element=0x555558bb7250, state=<optimized out>)
at ../gstreamer/gst/gstelement.c:3000
#18 0x00007ffff44319bb in rygel_gst_data_source_real_stop (base=0x555558cbfd10)
at src/media-engines/gstreamer/librygel-media-engine-gst.so.p/rygel-gst-data-source.c:443
#19 0x00007ffff43cf6d9 in rygel_http_response_real_end (self=0x555559399d00, aborted=1, status=1)
at src/librygel-server/librygel-server-2.6.so.2.0.4.p/rygel-http-response.c:671
#20 0x00007ffff7bd496a in _g_closure_invoke_va
(param_types=0x0, n_params=0, args=0x7fffffffd580, instance=0x555557f68e60, return_value=<optimized out>, closure=<optimized out>) at ../glib/gobject/gclosure.c:873
#21 g_signal_emit_valist
(instance=0x555557f68e60, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd580) at ../glib/gobject/gsignal.c:3403
#22 0x00007ffff7bd4ae0 in g_signal_emit
(instance=instance@entry=0x555557f68e60, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib/gobject/gsignal.c:3550
#23 0x00007ffff7c409db in g_cancellable_cancel (cancellable=0x555557f68e60)
at ../glib/gio/gcancellable.c:513
#24 g_cancellable_cancel (cancellable=0x555557f68e60) at ../glib/gio/gcancellable.c:487
#25 0x00007ffff43d0b8f in _rygel_http_server_on_request_aborted_soup_server_request_aborted
(_sender=<optimized out>, msg=0x555558b97ac0, client=<optimized out>, self=<optimized out>)
at src/librygel-server/librygel-server-2.6.so.2.0.4.p/rygel-http-server.c:1004
#26 0x00007ffff74747b5 in ffi_call_unix64 () at ../src/x86/unix64.S:101
#27 0x00007ffff7473f67 in ffi_call_int
(cif=<optimized out>, fn=0x8000000000000001, rvalue=0xf, avalue=0x7fffffffd7a0, closure=<optimized out>) at ../src/x86/ffi64.c:669
#28 0x00007ffff7bbd8de in g_cclosure_marshal_generic
(closure=closure@entry=0x555555f0e9e0, return_gvalue=return_gvalue@entry=0x0, n_param_values=n_param_values@entry=3, param_values=param_values@entry=0x7fffffffda70, invocation_hint=invocation_hint@entry=0x7fffffffd9f0, marshal_data=marshal_data@entry=0x0) at ../glib/gobject/gclosure.c:1500
#29 0x00007ffff7bb8052 in g_closure_invoke
(closure=0x555555f0e9e0, return_value=0x0, n_param_values=3, param_values=0x7fffffffda70, invocation_hint=0x7fffffffd9f0) at ../glib/gobject/gclosure.c:810
#30 0x00007ffff7be09a5 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x5555555a5bc0, detail=detail@entry=0, instance=instance@entry=0x5555555bfa20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffda70)
at ../glib/gobject/gsignal.c:3738
#31 0x00007ffff7bd457d in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=--Type <RET> for more, q to quit, c to continue without paging--
0x7fffffffdc40) at ../glib/gobject/gsignal.c:3494
#32 0x00007ffff7bd4ae0 in g_signal_emit
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
at ../glib/gobject/gsignal.c:3550
#33 0x00007ffff7570de1 in request_finished
(msg=0x555558b97ac0, completion=SOUP_MESSAGE_IO_INTERRUPTED, user_data=0x5555594232d0)
at ../libsoup/libsoup/soup-server.c:1269
#34 0x00007ffff7566d3f in io_run (msg=0x555558b97ac0, blocking=<optimized out>)
at ../libsoup/libsoup/soup-message-io.c:1048
#35 0x00007ffff7566e98 in io_run_ready (msg=0x17fb19034d59200, user_data=<optimized out>)
at ../libsoup/libsoup/soup-message-io.c:1028
#36 0x00007ffff7e54b00 in g_main_dispatch (context=0x5555555afbc0) at ../glib/glib/gmain.c:3325
#37 g_main_context_dispatch (context=0x5555555afbc0) at ../glib/glib/gmain.c:4016
#38 0x00007ffff7ea61f9 in g_main_context_iterate.constprop.0
(context=0x5555555afbc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../glib/glib/gmain.c:4092
#39 0x00007ffff7e54163 in g_main_loop_run (loop=0x5555555d38d0) at ../glib/glib/gmain.c:4290
#40 0x000055555555b3f6 in rygel_main_run (self=0x5555555b2900) at src/rygel/rygel.p/rygel-main.c:369
#41 rygel_main_main (args=<optimized out>, args_length1=<optimized out>)
at src/rygel/rygel.p/rygel-main.c:1256
#42 main (argc=<optimized out>, argv=<optimized out>) at src/rygel/rygel.p/rygel-main.c:1288