Re: [pandaboard] File Descriptor Leak - GStreamer - Pandaboard

426 views
Skip to first unread message

Rob Clark

unread,
Jan 30, 2013, 3:41:05 PM1/30/13
to panda...@googlegroups.com
hmm, it is possible this is a buffer leak (since there should be a
dmabuf fd associated with the video buffer).. perhaps you can run
'lsof -p <your-processes-pid>' before and after, to see what fd's are
leaked?

BR,
-R

On Wed, Jan 30, 2013 at 12:40 PM, <ayar...@gmail.com> wrote:
> Hi,
> I have a Pandaboard Rev B1 and am developing a media player for the board
> (Ubuntu), using Qt with GStreamer as backend (QtGstreamer).
> As my player plays a video file (mpeg, mp4, mov, avi), the # of file
> descriptors (sockets) on X11 increases by one or two. It does not seem to
> release them after stopping the video. When # of file descriptors reaches
> the limit (I believe 256 in my case), my player crashes with the error
> "Maximum # of clients reached". I see this problem with Totem Movie Player
> as well.
>
> My code is based
> on:http://gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/examples_2player_2main_8cpp-example.html
>
> I've been researching on this problem, assuming that the problem comes from
> GStreamer but no luck so far.
> I'm wondering if somebody else has seen this problem on Pandaboard.
>
> Here are what I installed on the board:
> - Ubuntu 12.04 Precise Pangolin desktop
> (http://omappedia.org/wiki/Ubuntu_Pre-built_Binaries_Guide)
> - Ubuntu Precise 12.04 - TI OMAP Release PPA Update December 2012
> (https://groups.google.com/forum/?fromgroups=#!topic/pandaboard/vKunvhMNV8k)
> - ubuntu-omap4-extras-multimedia
> - Qt 4.8.0
> - and below shows the output of the command: dpkg -l | grep "gst"
>
> ii bluez-gstreamer 4.98-2ubuntu7
> Bluetooth GStreamer support
> ii gir1.2-gst-plugins-base-0.10 0.10.36-1+ti1.6.7.1+1
> Description: GObject introspection data for the GStreamer Plugins Base
> library
> ii gir1.2-gstreamer-0.10 0.10.36-1ubuntu1+ti1.6.3.2+1
> Description: GObject introspection data for the GStreamer library
> ii gst-auto-launch 0.3.21-3
> This is an improved version of gst-launch that accepts commands.
> ii gstreamer-tools 0.10.36-1ubuntu1+ti1.6.3.2+1
> Tools for use with GStreamer
> ii gstreamer0.10-alsa 0.10.36-1+ti1.6.7.1+1
> GStreamer plugin for ALSA
> ii gstreamer0.10-faac 0.10.23-1+ti1.6.7.12+1
> FAAC plugin for GStreamer
> ii gstreamer0.10-ffmpeg 0.10.13-1+ti1.6.2.1+1
> FFmpeg plugin for GStreamer
> ii gstreamer0.10-gconf 0.10.31-1ubuntu1.1+ti1.6.7.1+1
> GStreamer plugin for getting the sink/source information from GConf
> ii gstreamer0.10-gnomevfs 0.10.36-1+ti1.6.7.1+1
> GStreamer plugin for GnomeVFS
> ii gstreamer0.10-nice 0.1.1-2ubuntu1
> ICE library (GStreamer plugin)
> ii gstreamer0.10-plugin-ducati 1.6.7.20-1
> gst-plugin-ducati is a Gstreamer plugin
> ii gstreamer0.10-plugins-bad 0.10.23-1+ti1.6.7.12+1
> GStreamer plugins from the "bad" set
> ii gstreamer0.10-plugins-bad-multiverse 0.10.21-1
> GStreamer plugins from the "bad" set (Multiverse Variant)
> ii gstreamer0.10-plugins-base 0.10.36-1+ti1.6.7.1+1
> GStreamer plugins from the "base" set
> ii gstreamer0.10-plugins-base-apps 0.10.36-1+ti1.6.7.1+1
> GStreamer helper programs from the "base" set
> ii gstreamer0.10-plugins-good 0.10.31-1ubuntu1.1+ti1.6.7.1+1
> GStreamer plugins from the "good" set
> ii gstreamer0.10-plugins-ugly 0.10.18.3-1ubuntu1+ti1.6.6.1+1
> GStreamer plugins from the "ugly" set
> ii gstreamer0.10-pulseaudio 0.10.31-1ubuntu1.1+ti1.6.7.1+1
> GStreamer plugin for PulseAudio
> ii gstreamer0.10-sdl 0.10.23-1+ti1.6.7.12+1
> GStreamer plugin for SDL output
> ii gstreamer0.10-tools 0.10.36-1ubuntu1+ti1.6.3.2+1
> Tools for use with GStreamer
> ii gstreamer0.10-x 0.10.36-1+ti1.6.7.1+1
> GStreamer plugins for X11 and Pango
> ii libgstreamer-plugins-bad0.10-0 0.10.23-1+ti1.6.7.12+1
> GStreamer development files for libraries from the "bad" set
> ii libgstreamer-plugins-bad0.10-dev 0.10.23-1+ti1.6.7.12+1
> GStreamer development files for libraries from the "bad" set
> ii libgstreamer-plugins-base0.10-0 0.10.36-1+ti1.6.7.1+1
> GStreamer libraries from the "base" set
> ii libgstreamer-plugins-base0.10-dev 0.10.36-1+ti1.6.7.1+1
> GStreamer development files for libraries from the "base" set
> ii libgstreamer0.10-0 0.10.36-1ubuntu1+ti1.6.3.2+1
> Core GStreamer libraries and elements
> ii libgstreamer0.10-dev 0.10.36-1ubuntu1+ti1.6.3.2+1
> GStreamer core development files
> ii libqtgstreamer-0.10-0 0.10.1-2ubuntu4
> C++ bindings library for GStreamer with a Qt-style API
> ii libqtgstreamer-dev 0.10.1-2ubuntu4
> Development headers for QtGStreamer
> ii libqtgstreamerui-0.10-0 0.10.1-2ubuntu4
> The QtGStreamerUi library
> ii libqtgstreamerutils-0.10-0 0.10.1-2ubuntu4
> The QtGStreamerUtils library
> ii phonon-backend-gstreamer 4:4.7.0really4.6.2-0ubuntu0.1
> Phonon GStreamer 0.10.x backend
> ii python-gst0.10 0.10.22-3ubuntu0.1
> generic media-playing framework (Python bindings)
> ii qtgstreamer-dbg 0.10.1-2ubuntu4
> Debug symbols for QtGStreamer
> ii qtgstreamer-doc 0.10.1-2ubuntu4
> QtGStreamer API documentation
> ii qtgstreamer-plugins 0.10.1-2ubuntu4
> GStreamer plugins from QtGStreamer
>
> Any thoughts/comments/suggestions would be greatly appreciated.
>
> --
> You received this message because you are subscribed to the Google Groups
> "pandaboard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pandaboard+...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Rob Clark

unread,
Jan 31, 2013, 12:06:32 PM1/31/13
to panda...@googlegroups.com
On Wed, Jan 30, 2013 at 4:24 PM, <ayar...@gmail.com> wrote:
> Hi rob,
> Thank you so much for your quick response.
>
> I ran lsof commands before it played the video file (QuickTime mov file) and
> after it stopped the video file.
> A lot of sockets are kept connected.
>
> $ lsof -p 28545
> 0r FIFO 0,8 0t0 317256 pipe
> 1w FIFO 0,8 0t0 317257 pipe
> 2w FIFO 0,8 0t0 317258 pipe
> 3u 0000 0,9 0 3065 anon_inode
> 4r FIFO 0,8 0t0 317263 pipe
> 5w FIFO 0,8 0t0 317263 pipe
> 6u unix 0x00000000 0t0 317264 socket
> 7u unix 0x00000000 0t0 319165 socket
> 8u 0000 0,9 0 3065 anon_inode
> 9u unix 0x00000000 0t0 317268 socket
> 10u unix 0x00000000 0t0 319167 socket
> 11u 0000 0,9 0 3065 anon_inode
> 12u 0000 0,9 0 3065 anon_inode
> 13u unix 0x00000000 0t0 319170 socket
> 14r 0000 0,9 0 3065 anon_inode
> 15u unix 0x00000000 0t0 319172 socket
> 16u 0000 0,9 0 3065 anon_inode
> 17u unix 0x00000000 0t0 319189 socket
> 18u REG 179,2 72791 984302 /home/test/Qt/projects/log.txt
> 19r REG 0,3 0 22974 /proc/3278/auxv
>
>
> $ lsof -p 28545
> 0r FIFO 0,8 0t0 317256 pipe
> 1w FIFO 0,8 0t0 317257 pipe
> 2w FIFO 0,8 0t0 317258 pipe
> 3u 0000 0,9 0 3065 anon_inode
> 4r FIFO 0,8 0t0 317263 pipe
> 5w FIFO 0,8 0t0 317263 pipe
> 6u unix 0x00000000 0t0 317264 socket
> 7u unix 0x00000000 0t0 319165 socket
> 8u 0000 0,9 0 3065 anon_inode
> 9u unix 0x00000000 0t0 317268 socket
> 10u unix 0x00000000 0t0 319167 socket
> 11u 0000 0,9 0 3065 anon_inode
> 12u 0000 0,9 0 3065 anon_inode
> 13u unix 0x00000000 0t0 319170 socket
> 14r 0000 0,9 0 3065 anon_inode
> 15u unix 0x00000000 0t0 319172 socket
> 16u 0000 0,9 0 3065 anon_inode
> 17u unix 0x00000000 0t0 319189 socket
> 18u REG 179,2 73018 984302 /home/test/Qt/projects/log.txt
> 19r REG 0,3 0 22974 /proc/3278/auxv
> 21r REG 0,3 0 317265 /proc/28545/auxv
> 22u unix 0x00000000 0t0 320509 socket
> 23u CHR 226,0 0t0 5278 /dev/dri/card0
> 24u unix 0x00000000 0t0 320505 socket
> 25u unix 0x00000000 0t0 320506 socket

Hmm, to be honest, I wasn't expecting a socket leak.. I was more
expecting an anon_inode leak. Maybe we are leaking connections to the
xserver? I wonder if the videosink is perhaps not getting cleaned up
properly? (Maybe 'xlsclients -l' would give a hint there?)

If you have some way to do a test w/ fakesink to skip displaying the
video, then maybe we could narrow down to whether the issue is display
related or not.

BR,
-R

> AYA

ayar...@gmail.com

unread,
Jan 31, 2013, 5:18:05 PM1/31/13
to panda...@googlegroups.com
Hi rob,

Hmm, to be honest, I wasn't expecting a socket leak.. I was more
expecting an anon_inode leak.  Maybe we are leaking connections to the
xserver?  I wonder if the videosink is perhaps not getting cleaned up
properly?  (Maybe 'xlsclients -l' would give a hint there?)
I ran "xlsclients -l" before, during, after the video playback but the three outputs look the same (no extra window was open).


If you have some way to do a test w/ fakesink to skip displaying the
video, then maybe we could narrow down to whether the issue is display
related or not.
I also tried to add fakesink to the pipeline (playbin2) so the video did not show on the display.
But the # of sockets still increased each time the player played a video file.


So far, I've tried QtGStreamer (0.10), GStreamer's c libraries (0.10), Qt Phonon (w/ GStreamer 0.10). All have the same problem.
There is one bug fix in the later version of gstreamer that is related to file descriptor leak but I'm not sure if this will fix my problem (I'm currently having a hard time configuring the new version 1.0.5 properly).
https://bugzilla.gnome.org/show_bug.cgi?id=687845

I have not seen this error message from the gst-launch.
Here is my output from: gst-launch playbin2 uri=file:///home/test/Qt/projects/Graphics/arrays_qt.mov -v

Setting pipeline to PAUSED ...
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "file:///home/test/Qt/projects/Graphics/arrays_qt.mov"
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: source = (GstFileSrc) source
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = video/quicktime
Pipeline is PREROLLING ...
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0.GstPad:sink: caps = video/quicktime
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-buffers = 5
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-time = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-bytes = 12582912
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-buffers = 5
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-time = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0: max-size-bytes = 12582912
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink0: caps = image/jpeg, width=(int)720, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: always-ok = FALSE
/GstPlayBin2:playbin20/GstInputSelector:inputselector0: active-pad = (GstSelectorPad) sink0
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: tags = ((GstTagList*) 0xb512b990)
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: tags = ((GstTagList*) 0xb512b978)
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src0: caps = image/jpeg, width=(int)720, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstJpegDec:jpegdec0.GstPad:sink: caps = image/jpeg, width=(int)720, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstDecodePad:src0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstJpegDec:jpegdec0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0.GstProxyPad:proxypad4: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstDecodePad:src0.GstProxyPad:proxypad3: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0.GstGhostPad:video_sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0.GstGhostPad:video_sink.GstProxyPad:proxypad5: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin.GstGhostPad:sink.GstProxyPad:proxypad7: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstQueue:vqueue.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstFFMpegCsp:vconv.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstFFMpegCsp:vconv.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstAutoVideoSink:videosink/GstDRI2VideoSink:videosink-actual-sink-dri2video.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstAutoVideoSink:videosink.GstGhostPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstAutoVideoSink:videosink.GstGhostPad:sink.GstProxyPad:proxypad6: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)480, framerate=(fraction)30/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "playbin20".
Execution ended after 5999725344 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstAutoVideoSink:videosink/GstDRI2VideoSink:videosink-actual-sink-dri2video.GstPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstAutoVideoSink:videosink.GstGhostPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstFFMpegCsp:vconv.GstPad:src: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstFFMpegCsp:vconv.GstPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstQueue:vqueue.GstPad:src: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin/GstQueue:vqueue.GstPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstBin:vbin.GstGhostPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_0: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_0: caps = NULL
/GstPlayBin2:playbin20/GstPlaySink:playsink0.GstGhostPad:video_sink: caps = NULL
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: caps = NULL
/GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstPad:src: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0.GstGhostPad:src0: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstDecodePad:src0: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstJpegDec:jpegdec0.GstPad:src: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstJpegDec:jpegdec0.GstPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:sink0: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstMultiQueue:multiqueue0.GstPad:src0: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0.GstPad:video_00: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0.GstPad:sink: caps = NULL
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = NULL
Setting pipeline to NULL ...
Freeing pipeline ...


ayar...@gmail.com

unread,
Feb 3, 2013, 8:35:42 PM2/3/13
to panda...@googlegroups.com
So far, I have not figured out the cause of the file descriptor leak.
I tested VLC phonon backend (and also MPlayer library) and had no problem with the files.
But because there is no TI h/w codecs available for these, I cannot get the results I want.
The player is much slower with higher CPU usage, has a problem displaying some of the files properly (which are o.k with GStreamer), and cannot disable the aspect-ratio correction in order to stretch the videos to fit to my window...

I'm not sure if the problem is from the TI's codecs for GStreamer.
I'm wondering if somebody else is having this issue...


ayar...@gmail.com

unread,
Feb 5, 2013, 9:40:26 PM2/5/13
to panda...@googlegroups.com
I did some more experiments.
I clean-installed the ubuntu 12.04 image and installed gstreamer0.10-plugins-bad, gstreamer0.10-plugins-ugly as well as ffmpeg.
The Totem Movie Player did not leak any file descriptor.
And then I did:
    # sudo apt-get update
    # sudo apt-get dist-upgrade

After the dist-upgrade command, the Totem Movie Player started to leak the descriptors (and cannot stretch the videos any more, always shows them at their original sizes).
I did not install ubuntu-omap4-extras yet.

It is probably somewhere around the gstreamer, but I cannot figure it out yet...

Nicolas Dechesne

unread,
Feb 6, 2013, 4:27:52 AM2/6/13
to panda...@googlegroups.com
On Wed, Feb 6, 2013 at 3:40 AM, <ayar...@gmail.com> wrote:
> I did some more experiments.
> I clean-installed the ubuntu 12.04 image and installed
> gstreamer0.10-plugins-bad, gstreamer0.10-plugins-ugly as well as ffmpeg.
> The Totem Movie Player did not leak any file descriptor.
> And then I did:
> # sudo apt-get update
> # sudo apt-get dist-upgrade
>
> After the dist-upgrade command, the Totem Movie Player started to leak the
> descriptors (and cannot stretch the videos any more, always shows them at
> their original sizes).
> I did not install ubuntu-omap4-extras yet.

when you ran dist-upgrade was the TI PPA in your sources.list? in
which case you might have installed some packages from the PPA, even
if you didn't install -extras.

ayar...@gmail.com

unread,
Feb 6, 2013, 10:50:21 AM2/6/13
to panda...@googlegroups.com
Hi ndec,

I checked /var/log/apt/history.log.
Below is the list of omap-related packages and gstreamer packages that were installed by the dist-upgrade command.
Your are right. Those gstreamer packages seem to be from the PPA.

linux-headers-3.2.0-1425-omap4:armhf (3.2.0-1425.33, automatic)
linux-image-3.2.0-1425-omap4:armhf (3.2.0-1425.33)
linux-headers-omap4:armhf (3.2.0.1425.26)
libdrm-omap1:armhf (2.4.39-0ubuntu1+ti1.1, automatic)
linux-omap4:armhf (3.2.0.1412.12, 3.2.0.1425.26)
linux-image-omap4:armhf (3.2.0.1412.12, 3.2.0.1425.26)
u-boot-linaro-omap4-panda:armhf (2012.02.3-ubuntu1, 2012.04.2+6514+45+201207191704~precise1)

gstreamer0.10-alsa:armhf (0.10.36-1, 0.10.36-1+ti1.6.7.1+1)
python-gst0.10:armhf (0.10.22-3, 0.10.22-3ubuntu0.1)
gstreamer0.10-x:armhf (0.10.36-1, 0.10.36-1+ti1.6.7.1+1)
libgstreamer0.10-0:armhf (0.10.36-1ubuntu1, 0.10.36-1ubuntu1+ti1.6.3.2+1)
gstreamer0.10-plugins-ugly:armhf (0.10.18.3-1ubuntu1, 0.10.18.3-1ubuntu1+ti1.6.6.1+1)
gir1.2-gst-plugins-base-0.10:armhf (0.10.36-1, 0.10.36-1+ti1.6.7.1+1)
gir1.2-gstreamer-0.10:armhf (0.10.36-1ubuntu1, 0.10.36-1ubuntu1+ti1.6.3.2+1)
gstreamer0.10-gconf:armhf (0.10.31-1ubuntu1, 0.10.31-1ubuntu1.1+ti1.6.7.1+1)
gstreamer0.10-plugins-good:armhf (0.10.31-1ubuntu1, 0.10.31-1ubuntu1.1+ti1.6.7.1+1)
gstreamer0.10-ffmpeg:armhf (0.10.13-1, 0.10.13-1+ti1.6.2.1+1)
gstreamer0.10-pulseaudio:armhf (0.10.31-1ubuntu1, 0.10.31-1ubuntu1.1+ti1.6.7.1+1)
gstreamer0.10-plugins-bad:armhf (0.10.22.3-2ubuntu2.2, 0.10.23-1+ti1.6.7.12+1)
libgstreamer-plugins-bad0.10-0:armhf (0.10.22.3-2ubuntu2.2, 0.10.23-1+ti1.6.7.12+1)
gstreamer0.10-plugins-base-apps:armhf (0.10.36-1, 0.10.36-1+ti1.6.7.1+1)
gstreamer0.10-plugins-base:armhf (0.10.36-1, 0.10.36-1+ti1.6.7.1+1)
libgstreamer-plugins-base0.10-0:armhf (0.10.36-1, 0.10.36-1+ti1.6.7.1+1)
gstreamer0.10-tools:armhf (0.10.36-1ubuntu1, 0.10.36-1ubuntu1+ti1.6.3.2+1)
apt-get_dist-upgrade.txt

Nicolas Dechesne

unread,
Feb 6, 2013, 11:06:55 AM2/6/13
to panda...@googlegroups.com
ok, so a few things:

- it would be interesting to repeat the same test, but make sure that
you don't pull in all the TI packages. just comment out the TI PPA
from the sources.list. so that we can confirm that the problem lies in
the TI packages.

- what's interesting in this experience (even though it wasn't what
you wanted to do) is that you are using TI gstreamer packages, but
*without* the h/w acceleration (or gst-ducati) since the kernel you
have does not enable rpmsg. so we can rule out these things.

- if you have enabled SGX (iirc canonical released a version of the
DDK for 12.04 with their kernel), then you might be using one of our
videosink for rendering (dri2videosink or pvrvideosink?). it might be
interesting to find that out in your *current* setup. if you can grab
the entire pipeline and pastebin it, that would be useful (you can run
GST_DEBUG_DUMP_DOT_DIR=/tmp totem xxxx) it would generate all the
pipelines in /tmp .

ayar...@gmail.com

unread,
Feb 6, 2013, 12:10:48 PM2/6/13
to panda...@googlegroups.com
Hi ndec,
Thank you very much for your quick response.


 - it would be interesting to repeat the same test, but make sure that
you don't pull in all the TI packages. just comment out the TI PPA
from the sources.list. so that we can confirm that the problem lies in
the TI packages.
I will try this and let you know.



GST_DEBUG_DUMP_DOT_DIR=/tmp totem xxxx) it would generate all the
pipelines in /tmp .
I ran the command with the current setting. Please see the result in the attachment.

Aya,
totem-prerolled.dot

ayar...@gmail.com

unread,
Feb 6, 2013, 1:11:38 PM2/6/13
to panda...@googlegroups.com
I don't see anything from the TI PPA in the sources.list (I did not run "sudo add-apt-repository ppa:tiomap-dev/release" this time and last time either).
Are the gstreamer-ti packages from the regular ports.ubuntu.com?

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://ports.ubuntu.com/ubuntu-ports/ precise main restricted universe multiverse
deb-src http://ports.ubuntu.com/ubuntu-ports/ precise main restricted universe multiverse

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ precise-updates main restricted universe multiverse
deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-updates main restricted universe multiverse

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
# deb http://ports.ubuntu.com/ubuntu-ports/ precise universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ precise universe
# deb http://ports.ubuntu.com/ubuntu-ports/ precise-updates universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-updates universe

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://ports.ubuntu.com/ubuntu-ports/ precise-backports main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-backports main restricted

deb http://ports.ubuntu.com/ubuntu-ports/ precise-security main restricted universe multiverse
deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-security main restricted universe multiverse
# deb http://ports.ubuntu.com/ubuntu-ports/ precise-security universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-security universe
# deb http://ports.ubuntu.com/ubuntu-ports/ precise-security multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ precise-security multiverse
Reply all
Reply to author
Forward
Message has been deleted
0 new messages