Christian König wrote:
mplayer sw decode + yuy2 vdpau output is corrupted.
Yeah, still working on that. The problem is tilling related, just
disable 2D tilling and it works like a charm. I think I've found the
problem right now and going to send out some fixed patches in the next
couple of minutes.
Working OK for me now with xine and mplayer using your vlwork git, which
I assume is the same as applying the latest patches.
Is there a way to disable mesa 2D tiling anymore? I know about the
xorg.conf options but they don't seem to affect mesa.
Unfortunately mplayer just doesn't tries to use a planar 422 format
(something which is really easy to support).
I think mplayer's vdpau was written by nvidia, so maybe it assumes
things - but then I don't know that. I do know it blindly tries to use
yuy2 even if it's not advertised.
One thing I noticed looking at the vdpau spec on their doxygen site is
that YUY16 isn't even listed.
When -vo gl is used mplayer will directly use 422 planar (which I assume
is what fourcc.org calles YV16).
As for xine my current issues are the logo, mine is playing
share/xine/skins/xine-ui_logo.png with plugin gdkpixbuf
Before 422 worked properly it was distorted, now it's almost OK, but has
a green band at the bottom. If I toggle between full screen and window a
few times I can get it to crash - bt attached.
It works OK with xv, and actually playing a raw 422 yuy2 stream with
xine + vdpau looks OK and won't crash toggling (it is different size
though).
Issue 2 is that doing something that makes xine try to render over the
video eg. skipping or changing volume results in an assert -
vl/vl_video_buffer.c:320:vl_video_buffer_sampler_view_components:
Assertion `component < 3' failed.
bt also attached.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb4b55b90 (LWP 2837)]
0xb73e3b6c in memcpy () from /lib/libc.so.6
(gdb) bt full
#0 0xb73e3b6c in memcpy () from /lib/libc.so.6
No symbol table info available.
#1 0xb53ced5c in util_copy_rect (dst=0xabd62400 <Address 0xabd62400 out of
bounds>, format=PIPE_FORMAT_R8G8_R8B8_UNORM, dst_stride=1536, dst_x=0, dst_y=0,
width=1216, height=464, src=0xababd000 <Address 0xababd000 out of bounds>,
src_stride=1216, src_x=0, src_y=0) at util/u_rect.c:83
i = 2882938720
__FUNCTION__ = "util_copy_rect"
#2 0xb53d4ede in u_default_transfer_inline_write (pipe=0x951e1a0,
resource=0x961ae98, level=0, usage=<value optimized out>, box=0xb4b550b4,
data=0xaba36020, stride=1216, layer_stride=0) at util/u_transfer.c:57
src_data = (const uint8_t *) 0xaba36020 ""
i = 1
transfer = (struct pipe_transfer *) 0x96188e0
map = (uint8_t *) 0xabcb8000 <Address 0xabcb8000 out of bounds>
__FUNCTION__ = "u_default_transfer_inline_write"
#3 0xb537b801 in vlVdpVideoSurfacePutBitsYCbCr (surface=33,
source_ycbcr_format=3, source_data=0xb4b551f0, source_pitches=0xb4b551fc) at
surface.c:303
dst_box = {x = 0, y = 0, z = 0, width = 608, height = 464, depth = 1}
sv = (struct pipe_sampler_view *) 0x96fde38
pformat = <value optimized out>
pipe = (struct pipe_context *) 0x951e1a0
sampler_views = (struct pipe_sampler_view **) 0x972d374
j = 1
#4 0xb5646e4f in guarded_vdp_video_surface_putbits_ycbcr (surface=33,
source_ycbcr_format=3, source_data=0xb4b551f0, source_pitches=0xb4b551fc) at
video_out_vdpau.c:203
r = VDP_STATUS_OK
#5 0xb564b384 in vdpau_display_frame (this_gen=0x951b770, frame_gen=0x96374d8)
at video_out_vdpau.c:1790
pitches = {1216, 0, 0}
data = {0xaba36020, 0x0, 0x0}
this = (vdpau_driver_t *) 0x951b770
frame = (vdpau_frame_t *) 0x96374d8
st = VDP_STATUS_OK
surface = 3075176270
chroma = 1
color_standard = 0
mix_w = 608
mix_h = 452
stream_speed = 251933843756417025
redraw_needed = 0
layer_count = 2837
layer = (VdpLayer *) 0x951b770
ovl_layer = {struct_version = 1431655765, source_surface = 1073042773,
source_rect = 0x504ac9, destination_rect = 0xb74b62fe}
vid_dest = (VdpRect *) 0xb4b552b8
vid_dest_rect = {x0 = 0, y0 = 15, x1 = 156350320, y1 = 4294967280}
vid_source = {x0 = 157504732, y0 = 129, x1 = 3075190796, y1 = 0}
out_dest = {x0 = 157504696, y0 = 157504696, x1 = 3031782024, y1 =
3077508823}
frame_duration = -1217233232
non_progressive = 157504504
last_time = 13218767150665171072
#6 0xb76e7dd7 in overlay_and_display_frame (this=0x96350d0, img=0x96374d8,
vpts=5262025) at video_out.c:1370
ite = <value optimized out>
#7 0xb76e8ca3 in video_out_loop (this_gen=0x96350d0) at video_out.c:1545
vpts = 5262025
img = (vo_frame_t *) 0x96374d8
this = (vos_t *) 0x1c7
next_frame_vpts = 5261925
usec_to_sleep = <value optimized out>
disable_decoder_flush_from_video_out = 0
#8 0xb74b4120 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9 0xb74363ce in clone () from /lib/libc.so.6
No symbol table info available.
Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0xb4b8fb90 (LWP 2510)]
_debug_assert_fail (expr=0xb54b612c "component < 3", file=0xb54b6313
"vl/vl_video_buffer.c", line=320, function=0xb54b6440
"vl_video_buffer_sampler_view_components") at util/u_debug.c:281
281 }
(gdb) bt full
#0 _debug_assert_fail (expr=0xb54b612c "component < 3", file=0xb54b6313
"vl/vl_video_buffer.c", line=320, function=0xb54b6440
"vl_video_buffer_sampler_view_components") at util/u_debug.c:281
No locals.
#1 0xb545a5c8 in vl_video_buffer_sampler_view_components (buffer=0xa57b808) at
vl/vl_video_buffer.c:320
res = (struct pipe_resource *) 0xa548340
nr_components = 4
sv_templ = {reference = {count = 0}, format =
PIPE_FORMAT_B8G8R8A8_UNORM, texture = 0x0, context = 0x0, u = {tex =
{first_layer = 0, last_layer = 0, first_level = 0, last_level = 0}, buf =
{first_element = 0, last_element = 0}}, swizzle_r = 2, swizzle_g = 2, swizzle_b
= 2, swizzle_a = 5}
pipe = (struct pipe_context *) 0x9daa2c0
sampler_format = (const enum pipe_format *) 0xb54b63c4
plane_order = (const unsigned int *) 0xb54b63e8
i = 0
j = 3
component = 3
__FUNCTION__ = "vl_video_buffer_sampler_view_components"
#2 0xb541495a in vl_compositor_set_buffer_layer (s=0xa576618, c=0x9da9a28,
layer=0, buffer=0xa57b808, src_rect=0x0, dst_rect=0x0,
deinterlace=VL_COMPOSITOR_WEAVE) at vl/vl_compositor.c:884
sampler_views = <value optimized out>
i = <value optimized out>
__FUNCTION__ = "vl_compositor_set_buffer_layer"
#3 0xb53b84c8 in vlVdpOutputSurfacePutBitsYCbCr (surface=33,
source_ycbcr_format=5, source_data=0xb4b8f234, source_pitches=0xb4b8f220,
destination_rect=0xb4b8f224, csc_matrix=0x0) at output.c:497
compositor = (struct vl_compositor *) 0x9da9a28
cstate = (struct vl_compositor_state *) 0xa576618
pipe = (struct pipe_context *) 0x9daa2c0
format = PIPE_FORMAT_B8G8R8A8_UNORM
vtmpl = {context = 0x0, buffer_format = PIPE_FORMAT_B8G8R8A8_UNORM,
chroma_format = PIPE_VIDEO_CHROMA_FORMAT_420, width = 315, height = 22,
interlaced = false, destroy = 0, get_sampler_view_planes = 0,
get_sampler_view_components = 0, get_surfaces = 0, associated_data = 0x0,
decoder = 0x0,
destroy_associated_data = 0}
vbuffer = (struct pipe_video_buffer *) 0xa57b808
dst_rect = {x0 = 27724, x1 = 133729, y0 = 173938080, y1 = -1254391397}
sampler_views = (struct pipe_sampler_view **) 0xa57b84c
#4 0xb5681bca in vdpau_overlay_end (this_gen=0x9da7890, frame_gen=0x9ec3280)
at video_out_vdpau.c:715
ovl = (vdpau_overlay_t *) 0x9da79ec
is_argb = 0
put_rect = {x0 = 0, y0 = 0, x1 = 315, y1 = 22}
voovl = (vo_overlay_t *) 0xa574330
pixmap = (uint32_t *) 0xa461fd8
st = 2510
pitch = 1260
this = (vdpau_driver_t *) 0x9da7890
i = 0
#5 0xb772b743 in video_overlay_multiple_overlay_blend (this_gen=0x9ec15d8,
vpts=250886, output=0x9da7890, vo_img=0x9ec3280, enabled=1) at
video_overlay.c:539
this = <value optimized out>
i = 21
handle = 21
#6 0xb7721cd6 in overlay_and_display_frame (this=0x9ec11f0, img=0x9ec3280,
vpts=250886) at video_out.c:1362
ite = <value optimized out>
#7 0xb7722ca3 in video_out_loop (this_gen=0x9ec11f0) at video_out.c:1545
vpts = 250886
img = (vo_frame_t *) 0x9ec3280
this = (vos_t *) 0x1
next_frame_vpts = 250868
usec_to_sleep = <value optimized out>
disable_decoder_flush_from_video_out = 0
#8 0xb74ee120 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9 0xb74703ce in clone () from /lib/libc.so.6
No symbol table info available.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev