Bug 70931 - Xv causes player segfaults when 4K is decoded
Summary: Xv causes player segfaults when 4K is decoded
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-27 19:22 UTC by Nikoli
Modified: 2014-08-22 01:29 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
gdb output for 'mpv -vo xv sintel.mkv' (10.98 KB, text/plain)
2013-10-27 19:22 UTC, Nikoli
no flags Details
sample.mkv (2.93 MB, text/plain)
2013-10-27 19:52 UTC, Nikoli
no flags Details
patch (2.81 KB, patch)
2014-08-22 01:29 UTC, Ilia Mirkin
no flags Details | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Nikoli 2013-10-27 19:22:26 UTC
Created attachment 88194 [details]
gdb output for 'mpv -vo xv sintel.mkv'

avprobe output:
Stream #0.0(eng): Video: h264 (High 4:4:4 Predictive), yuv444p10le, 4096x1744 [PAR 1:1 DAR 256:109], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)

When trying to play 4K video with Xv video outputs mpv, mplayer2 and vlc segfault.
https://github.com/mpv-player/mpv/issues/320
"the segfault is because the XvShmCreateImage API function returns a smaller image than requested, which, if I read the manpage right, is not allowed."
My software:
Gentoo Linux amd64 stable, kernel 3.9.9-hardened, mesa-9.1.6, xf86-video-nouveau-1.0.9, libXv-1.0.10, libdrm-2.4.46, xorg-server-1.14.3, libav-9.10
Hardware:
01:00.0 VGA compatible controller: NVIDIA Corporation G86M [GeForce 8400M GS] (rev a1)

Used this file for testing:
http://rutracker.org/forum/viewtopic.php?t=4131293
Can upload sample if required.
P.S. With radeon r600g this file works fine, is any 4K playable with nouveau now?
Comment 1 Nikoli 2013-10-27 19:52:25 UTC
Created attachment 88195 [details]
sample.mkv

Added sample.
Comment 2 Ilia Mirkin 2014-08-22 01:29:34 UTC
Created attachment 105069 [details] [review]
patch

Untested patch to get rid of the wrong size check. Unfortunately at query time we aren't passed the port pointer by the DDX API. Instead check it at PutImage time and return a BadMatch if you do something bad.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.