[vlc-devel] VDPAU output with OSS driver
Android Jack
jackdroido at gmail.com
Thu Jul 25 10:56:17 CEST 2013
Hi !
So here I go again ... I saw this ticket :
http://trac.videolan.org/vlc/ticket/8495
closed by commit:
http://git.videolan.org/?p=vlc.git;a=commit;h=501bf022f353922c14f1d718874a3bc06931d3fc
which added "fallback to NV12 if YV12 is unsupported" because "it seems
some device drivers only provide NV12".
Looking at current GIT code, I'm pretty sure I don't see such fallback
(VDPAU related code was moved to hw/vdpau directory and changed a lot since
that time).
Since I'm using the OSS UVD enabled *radeon* driver, and output of
vdpauinfo expose exactly this behaviour (only NV12 surfaces), I suspect
this could be a problem.
In addition, since some commit around 2013-07-07 and on, now VLC tells me
another thing:
[0xb5753158] avcodec decoder debug: available hardware decoder output
format 53 (vaapi_vld)
[0xb5753158] avcodec decoder debug: available hardware decoder output
format 109 (vdpau)
[0xb5753158] avcodec decoder debug: available software decoder output
format 0 (yuv420p)
[0xb5765910] main generic debug: looking for hw decoder module matching
"any": 3 candidates
[0xb5765910] vdpau_avcodec generic debug: video surface supported maximum:
YUV 4:2:0 16384x16384
[0xb5765910] vdpau_avcodec generic error: decoding profile not supported:
8.16 0x0
[0xb5765910] main generic debug: no hw decoder modules matched
and since input H264 HD (4.1 profile) is not showing up in vdpauinfo, it
just assumes it is simply not supported:
(...)
Decoder capabilities:
name level macbs width height
-------------------------------------------
(...)
H264_BASELINE 16 9216 2048 1152
H264_MAIN 16 9216 2048 1152
H264_HIGH 16 9216 2048 1152
(...)
but then (again) why other players out there (mplayer) don't complain about
anything and plays it smoothly ?
Could it be that VLC VDPAU support is somewhat "tailored" around NVIDIA
hardware using proprietary driver, with their vdpauinfo output full of
supported formats, surfaces and profiles, like this:
(...)
Information string: NVIDIA VDPAU Driver Shared Library 304.51 Tue Sep 18
17:40:30 PDT 2012
Video surface:
name width height types
-------------------------------------------
420 4096 4096 NV12 YV12
422 4096 4096 UYVY YUYV
Decoder capabilities:
name level macbs width height
-------------------------------------------
MPEG1 0 8192 2048 2048
MPEG2_SIMPLE 3 8192 2048 2048
MPEG2_MAIN 3 8192 2048 2048
H264_MAIN 41 8192 2048 2048
H264_HIGH 41 8192 2048 2048
(...)
Sure, radeon OSS UVD support is relatively young but is already *CAPABLE*
of rendering HD videos without glitches.
I don't mean to be harsh at all, I'm just willing to interact, to make it
work in VLC also, since I fear there is just some little incompatibilities
in *HOW* VLC try to use VDPAU, with OSS driver on AMD hardware.
Thanks for your time and work !
2013/7/16 Android Jack <jackdroido at gmail.com>
> Hi, and thanks for the reply !
>
> Before forcing VDPAU as video output, I've already tried leave it to
> default "Automatic" and the option "Accelerated video output (Overlay)" is
> checked (the old option --ffmpeg-hw is not present anymore), but the result
> is that, after trying VDPAU it falls-back to xv, starting to skip pictures
> and the CPU load goes 100%:
>
> [0xb5e0eaf8] main input debug: Creating an input for
> 'hd_other_lg_four_seasons_under_the_sea.m2ts'
> [0xb5e0eaf8] main input debug: using timeshift granularity of 50 MiB, in
> path '/tmp'
> [0xb5e0eaf8] main input debug:
> `file:///mnt/hd_other_lg_four_seasons_under_the_sea.m2ts' gives access
> `file' demux `' path `/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> [0xb5e0eaf8] main input debug: creating demux: access='file' demux=''
> location='/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> file='/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> [0xb5700838] main demux debug: looking for access_demux module matching
> "file": 19 candidates
> [0xb5700838] main demux debug: no access_demux modules matched
> [0xb5e0eaf8] main input debug: creating access 'file'
> location='/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts',
> path='/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> [0xb5700a70] main access debug: looking for access module matching "file":
> 22 candidates
> [0xb5700a70] filesystem access debug: opening file
> `/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> [0xb5700a70] main access debug: using access module "filesystem"
> [0xb5700b60] main stream debug: Using stream method for AStream*
> [0xb5700b60] main stream debug: starting pre-buffering
> [0xb5700b60] main stream debug: received first data after 0 ms
> [0xb5700b60] main stream debug: pre-buffering done 1024 bytes in 0s - 8064
> KiB/s
> [0xb5700d10] main stream debug: looking for stream_filter module matching
> "any": 9 candidates
> [0xb5700d10] main stream debug: no stream_filter modules matched
> [0xb5700d10] main stream debug: looking for stream_filter module matching
> "stream_filter_record": 9 candidates
> [0xb5700d10] main stream debug: no stream_filter modules matched
> [0xb5e0eaf8] main input debug: creating demux: access='file' demux=''
> location='/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> file='/mnt/hd_other_lg_four_seasons_under_the_sea.m2ts'
> [0xb5700df8] main demux debug: looking for demux module matching "any": 63
> candidates
> [0xb5700df8] mod demux debug: MOD validation failed (ext=m2ts)
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 4 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 43 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 82 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 121 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 160 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 7 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 46 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 85 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 124 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 163 bytes of garbage
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 4 bytes of garbage
> [0xa037ed0] qt4 interface debug: IM: Setting an input
> [0xb5700df8] ts demux warning: lost synchro
> [0xb5700df8] ts demux debug: skipping 4 bytes of garbage
> [0xb5700df8] ts demux debug: pid[256] unknown
> [0xb5700df8] ts demux debug: pid[31] unknown
> libdvbpsi error (PSI decoder): TS discontinuity (received 1, expected 0)
> for PID 0
> [0xb5700df8] ts demux debug: PATCallBack called
> [0xb5700df8] ts demux debug: new PAT ts_id=1 version=0 current_next=1
> [0xb5700df8] ts demux debug: * number=0 pid=31
> [0xb5700df8] ts demux debug: * number=1 pid=256
> libdvbpsi error (PSI decoder): TS discontinuity (received 1, expected 0)
> for PID 256
> [0xb5700df8] ts demux debug: PMTCallBack called
> [0xb5700df8] ts demux debug: new PMT program number=1 version=0
> pid_pcr=4097
> [0xb5700df8] ts demux debug: * descriptor : registration HDMV
> [0xb5700df8] ts demux debug: * descriptor : unknown (0x88)
> [0xb5700df8] ts demux debug: * es pid=4113 type=27 dr->i_tag=0x28
> [0xb5700df8] ts demux debug: * es pid=4113 type=27 fcc=h264
> [0xb5e0eaf8] main input debug: selecting program id=1
> [0xb5700df8] ts demux debug: * es pid=4352 type=129 dr->i_tag=0x5
> [0xb5700df8] ts demux debug: * es pid=4352 type=129 dr->i_tag=0x81
> [0xb5700df8] ts demux debug: * es pid=4352 type=129 dr->i_tag=0xa
> [0xb5700df8] ts demux debug: found language: und
> [0xb5700df8] ts demux debug: * es pid=4352 type=129 fcc=a52
> [0xb5700a70] filesystem access warning: unimplemented query 4097 in control
> [0xb5700df8] main demux debug: using demux module "ts"
> [0xb5e0eaf8] main input debug: looking for a subtitle file in /mnt/
> [0xb57530c8] main decoder debug: looking for decoder module matching
> "any": 41 candidates
> [0xb57530c8] avcodec decoder debug: trying to use direct rendering
> [0xb57530c8] avcodec decoder debug: allowing 3 thread(s) for decoding
> [0xb57530c8] avcodec decoder debug: avcodec codec (H264 - MPEG-4 AVC (part
> 10)) started
> [0xb57530c8] avcodec decoder debug: using frame thread mode with 3 threads
> [0xb57530c8] main decoder debug: using decoder module "avcodec"
> [0xb5761040] main packetizer debug: looking for packetizer module matching
> "any": 21 candidates
> [0xb5761040] main packetizer debug: using packetizer module
> "packetizer_h264"
> [0xb5e0eaf8] main input debug: audio is disabled, not selecting ES 0x1100
> [0xb5700df8] ts demux debug: DEMUX_SET_GROUP 0 (nil)
> [0xb57653b0] main demux meta debug: looking for meta reader module
> matching "any": 2 candidates
> [0xb57653b0] lua demux meta debug: Trying Lua scripts in
> /home/sadel/.local/share/vlc/lua/meta/reader
> [0xb57653b0] lua demux meta debug: Trying Lua scripts in
> /opt/vlc/lib/vlc/lua/meta/reader
> [0xb57653b0] lua demux meta debug: Trying Lua playlist script
> /opt/vlc/lib/vlc/lua/meta/reader/filename.luac
> [0xb57653b0] lua demux meta debug: Trying Lua scripts in
> /opt/vlc/share/vlc/lua/meta/reader
> [0xb57653b0] main demux meta debug: no meta reader modules matched
> [0xb5e0eaf8] main input debug:
> `file:///mnt/hd_other_lg_four_seasons_under_the_sea.m2ts' successfully
> opened
>
> [0xb5700df8] ts demux debug: pid[4097] unknown
> [0xb5e0eaf8] main input debug: Buffering 0%
>
> [0xb5700df8] ts demux warning: first packet for pid=4113 cc=0x1
> [0xb5761040] packetizer_h264 packetizer debug: found NAL_SPS (sps_id=0)
> [0xb5761040] packetizer_h264 packetizer debug: found NAL_PPS (pps_id=0
> sps_id=0)
> [0xb57c9828] main spu text debug: looking for text renderer module
> matching "any": 3 candidates
> [0xb57c9828] freetype spu text debug: Building font databases.
> [0xb57c9828] freetype spu text debug: Took 2 microseconds
> [0xb57c9828] freetype spu text debug: Using Serif Bold as font from file
> /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
> [0xb57c9828] freetype spu text debug: using fontsize: 2
> [0xb57c9828] main spu text debug: using text renderer module "freetype"
> [0xb57d54d0] main scale debug: looking for video filter2 module matching
> "any": 59 candidates
>
> [0xb5700df8] ts demux warning: first packet for pid=4352 cc=0x1
> [0xb5e0eaf8] main input debug: Buffering 32%
> [0xb5e0eaf8] main input debug: Buffering 64%
> [0xb5e0eaf8] main input debug: Buffering 96%
> [0xb5e0eaf8] main input debug: Stream buffering done (385 ms in 11 ms)
> [0xb57d54d0] swscale scale debug: 32x32 chroma: YUVA -> 16x16 chroma: RGBA
> with scaling using Bicubic (good quality)
> [0xb57d54d0] main scale debug: using video filter2 module "swscale"
> [0xb57eb3e8] main scale debug: looking for video filter2 module matching
> "any": 59 candidates
> [0xb57eb3e8] yuvp scale debug: YUVP to YUVA converter
> [0xb57eb3e8] main scale debug: using video filter2 module "yuvp"
> [0xb576a328] main video output debug: Deinterlacing available
> [0xb576a328] main video output debug: deinterlace 0, mode blend, is_needed
> 0
> [0xb576a328] main video output debug: Opening vout display wrapper
> [0xb59a93c0] main vout display debug: looking for vout display module
> matching "any": 12 candidates
> [0xb59a9540] main window debug: looking for vout window xid module
> matching "qt4,any": 4 candidates
> [0xb59a9540] qt4 window debug: requesting video window...
> [0xa037ed0] qt4 interface debug: Video was requested 0, 0
> [0xb59a9540] main window debug: using vout window xid module "qt4"
> [0xb59a6e10] main inhibit debug: looking for inhibit module matching
> "any": 2 candidates
> [0xb59a6e10] dbus_screensaver inhibit error: cannot connect to session
> bus: //bin/dbus-launch terminated abnormally without any error message
> [0xb59a6e10] main inhibit debug: using inhibit module "xdg_screensaver"
> [0xb59a93c0] vdpau_display vout display debug: connected to X11.0 server
> [0xb59a93c0] vdpau_display vout display debug: vendor : The X.Org
> Foundation
> [0xb59a93c0] vdpau_display vout display debug: version: 11303000
> [0xb59a93c0] vdpau_display vout display debug: using screen 0x2ba
> [0xb59a93c0] vdpau_display vout display debug: using back-end G3DVL VDPAU
> Driver Shared Library version 1.0
> [0xb59a93c0] vdpau_display vout display error: source video YCbCr format
> not supported
> [0xb576a328] main video output debug: Reusing previous vout window
> [0xb59a93c0] xcb_xv vout display debug: connected to X11.0 server
> [0xb59a93c0] xcb_xv vout display debug: vendor : The X.Org Foundation
> [0xb59a93c0] xcb_xv vout display debug: version: 11303000
> [0xb59a93c0] xcb_xv vout display debug: using screen 0x2ba
> [0xb59a93c0] xcb_xv vout display debug: using XVideo extension v2.2
> [0xb59a93c0] xcb_xv vout display debug: using adaptor Radeon Textured Video
> [0xb59a93c0] xcb_xv vout display debug: using port 63
> [0xb59a93c0] xcb_xv vout display debug: using image format 0x30323449
> [0xb59a93c0] xcb_xv vout display debug: using X11 visual ID 0x21 (depth:
> 24)
> [0xb59a93c0] xcb_xv vout display debug: using X11 window 0x00c00000
> [0xb59a93c0] xcb_xv vout display debug: using X11 graphic context
> 0x00c00002
> [0xb59a93c0] main vout display debug: VoutDisplayEvent 'fullscreen' 0
> [0xb59a93c0] main vout display debug: VoutDisplayEvent 'resize' 1920x1080
> window
> [0xb59a93c0] main vout display debug: using vout display module "xcb_xv"
> [0xb576a328] main video output debug: original format sz 1920x1080, of
> (0,0), vsz 1920x1080, 4cc I420, sar 1:1, msk r0x0 g0x0 b0x0
> [0xb57c9828] main spu text debug: removing module "freetype"
> [0xb57c9828] main spu text debug: looking for text renderer module
> matching "any": 3 candidates
> [0xb57c9828] freetype spu text debug: Building font databases.
> [0xb57c9828] freetype spu text debug: Took 1 microseconds
> [0xb57c9828] freetype spu text debug: Using Serif Bold as font from file
> /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
> [0xb57c9828] freetype spu text debug: using fontsize: 2
> [0xb57c9828] main spu text debug: using text renderer module "freetype"
>
> [0xb57530c8] avcodec decoder warning: disabling direct rendering
> [0xb59a93c0] xcb_xv vout display debug: display is visible
> [0xb59a93c0] main vout display error: Failed to resize display
> [0xb57530c8] main decoder debug: End of video preroll
> [0xb57530c8] main decoder debug: Received first picture
> [0xb59b62f8] main blend debug: looking for video blending module matching
> "any": 1 candidates
> [0xb59b62f8] main blend debug: using video blending module "blend"
> [0xb5e0eaf8] main input debug: Decoder buffering done in 380 ms
> [0xb576a328] main video output debug: picture might be displayed late
> (missing 2 ms)
> [0xb59a93c0] main vout display debug: auto hiding mouse cursor
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 42 ms)
> [0xb576a328] main video output debug: picture might be displayed late
> (missing 10 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 42 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 86 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 53 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 173 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 140 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 42 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 86 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 53 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 21 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 64 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 107 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 75 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 118 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 85 ms)
> [0xb576a328] main video output warning: picture is too late to be
> displayed (missing 80 ms)
>
> Is this the expected performance/behaviour or there is any other
> option/switch I could touch, to make things go smoother ?
>
> It's soo annoying that mplayer can handle all this fine :-) ... but I want
> to use VLC for an RTP application (and mplayer is much worse in that ...)
>
> Regards.
>
> 2013/7/15 Rémi Denis-Courmont <remi at remlab.net>
>
>> On Monday 15 July 2013 15:00:24 Android Jack wrote:
>> > In particular, the error:
>> > [0xb5e0cb00] vdpau_display vout display error: source video YCbCr format
>> > not supported
>> >
>> > seems to suggest that my card cannot handle my video colorspace (it's
>> > I420/YV12), which in fact doesn't show up in vdpauinfo as well ... but
>> > then, why mplayer can play the same video with the same card throught
>> VDPAU
>> > without any hiccups ? Where I'm missing something ?
>>
>> VLC could render with VDPAU on your card, but it would require software
>> conversion from I420 to NV12. You are better off using XVideo than VDPAU
>> then.
>> The only benefit of VDPAU would be finely scaled OSD, at the expense of
>> performance in this case.
>>
>> In fact, it would work just fine like normal if you had not needlessly
>> forced
>> VDPAU as video output in your preferences. If you want to accelerate video
>> *decoding*, there is dedicated option for that.
>>
>> --
>> Rémi Denis-Courmont
>> http://www.remlab.net/
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20130725/f6add5b0/attachment.html>
More information about the vlc-devel
mailing list