IRC log of #cubox of Sun 30 Jun 2013. All times are in CEST < Back to index

00:21 MMlosh that sounds really nice.. is 480 a limit for vmeta deinterlacing?
00:22 MMlosh It seems that our TV broadcasting is done in interlaced 720x576
00:27 cbxbiker61 MMlosh, no it doesn't de-interlace anything at the moment, but the higher the resolution the better interlaced content will look
00:55 _rmk_ cbxbiker61: as I've said in the past, the diagonal stuff seems to be a hardware bug which there's no way to detect it happening other than by someone looking at the display and saying "that's not right"
00:55 _rmk_ the Marvell driver occasionally gets it, my DRM driver occasionally gets it too - and we do things in different ways.
00:58 _rmk_ last time I got it, I tweaked a few registers, and the best I found is that adding one to one of the horizontal timing registers seems to "fix" it when it happens, but that will screw stuff up when it doesn't happen.
00:58 _rmk_ but re-setting the mode with xrandr (eg, changing the refresh and back again) sorts it every time for me
00:59 cbxbiker61 _rmk_, it'd be nice if Marvell would comment on that
01:00 _rmk_ it could be an interaction between the dove and the tda998x chip
01:01 _rmk_ but I suspect not because overlay video also becomes diagonal while the graphic isn't
01:05 cbxbiker61 i'm rebuilding llvm/mesa with the amd open vdpau support enabled, it'll be interesting to see how well that works
01:06 cbxbiker61 we may actually have an "open" hardware-accelerated option
01:18 _rmk_ I need to go back to my libav driver to work out why some previously working mpeg files I have has stopped working.
01:18 _rmk_ libva driver
01:19 _rmk_ the stuff I most care about still works though (which is vlc playback of transport streams with mpeg2 video) - was watching something on the cubox tonight.
01:20 cbxbiker61 _rmk_ do you have a repo for the libva?
01:21 _rmk_ and I know my mpeg4 stuff still works as well (I don't mean h264, which I can't get to work, I mean mpeg4 video itself)
01:22 _rmk_ not published yet - partly because it's quite hit and miss with what it works with
01:22 _rmk_ much of that stems from problems with how vmeta wants to work being not how libva wants to work, and having to reconstruct bits of the elementary stream
01:23 _rmk_ for example, vmeta seems to be pipelined, and keeps reference frames in a different format to displayed frames
01:24 _rmk_ libva assumes it can pass a reference to the reference display frames, and it also wants to pass the data for a frame and get that exact frame back immediately
01:27 cbxbiker61 _rmk_ rabeeh made a patch that dma caching for the frames that are submitted to vmeta, if your not using that, you might want to look at the patch on openbox
01:28 _rmk_ any ideas what kind of improvements that makes?
01:28 cbxbiker61 and theres another patch that fixes the caching by flushing
01:29 cbxbiker61 well he says it improves performance
01:29 cbxbiker61 initially he set caching on the submitted frames and the the picture frames, but then he removed it from the picture frames
01:30 _rmk_ there's soo many possibilities for improving that stuff - on the picture side you don't need to map the buffers if you don't touch the frames themselves
01:31 cbxbiker61 he's been able to playback very high bitrate stuff, i'm still rolling in some of those patches into my tree
01:31 _rmk_ so having the expense of mmap() and munmap() those is silly
01:32 _rmk_ unfortunately, standard libbmm and the kernel side can only free buffers by virtual address (!) but allocate by returning you a physical address which you then have to mmap()
01:32 _rmk_ which gives you a fun situation: if mmap() were to fail, you can't free the bmm buffer!
01:34 _rmk_ another fun libbmm one is this:
01:34 _rmk_ - allocate a bmm buffer in process A
01:34 _rmk_ - mmap it in process A
01:34 _rmk_ - pass its physical address to process B
01:35 _rmk_ - mmap it in process B
01:35 _rmk_ - munmap it in either process
01:35 _rmk_ - buffer is now freed
01:35 _rmk_ the other process is free to continue using its mmap() to that memory
01:36 _rmk_ note that process B could be the result of a fork() of process A
01:38 _rmk_ other things which are crappy about bmm - each time a process wants to translate a buffer address between virtual and physical, it calls into the kernel. libbmm is nothing more than a veneer to the kernel side driver with no caching... add caching and you can save quite a number of syscalls
01:38 _rmk_ and you can then start thinking about redesigning the API to be more sane.
01:40 _rmk_ (I say "start thinking about" because by doing that you have to break compatibility with existing libbmm)
10:42 dv_ _rmk_: breaking compatibility sounds like a good plan, given bmm's shortcomings
10:42 dv_ just call it bmm2 :)
15:07 RandomPixels hello, anyone around ?
15:14 dv_ whatsup
15:27 jnettlet _rmk_, if you are re-working bmm perhaps you should checkout out videobuf or our implementation of ION MM which is what Android is using.
15:28 jnettlet The ION memory manager backed by CMA gives the added bonus of not having to allocate buffers until runtime.
19:54 RandomPixels hello rabeeh_