Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
e163db1b
Commit
e163db1b
authored
Apr 26, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
XCB: handle planar YVU (YV12) properly (untested)
parent
dc0001ab
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
2 deletions
+7
-2
modules/video_output/xcb/xvideo.c
modules/video_output/xcb/xvideo.c
+7
-2
No files found.
modules/video_output/xcb/xvideo.c
View file @
e163db1b
...
@@ -372,7 +372,8 @@ FindFormat (vout_thread_t *vout, vlc_fourcc_t chroma, xcb_xv_port_t port,
...
@@ -372,7 +372,8 @@ FindFormat (vout_thread_t *vout, vlc_fourcc_t chroma, xcb_xv_port_t port,
static
int
Init
(
vout_thread_t
*
vout
)
static
int
Init
(
vout_thread_t
*
vout
)
{
{
vout_sys_t
*
p_sys
=
vout
->
p_sys
;
vout_sys_t
*
p_sys
=
vout
->
p_sys
;
xcb_xv_query_image_attributes_reply_t
*
att
;
xcb_xv_query_image_attributes_reply_t
*
att
=
NULL
;
bool
swap_planes
=
false
;
/* whether X wants V before U */
/* FIXME: check max image size */
/* FIXME: check max image size */
xcb_xv_adaptor_info_iterator_t
it
;
xcb_xv_adaptor_info_iterator_t
it
;
...
@@ -427,6 +428,9 @@ static int Init (vout_thread_t *vout)
...
@@ -427,6 +428,9 @@ static int Init (vout_thread_t *vout)
vout
->
fmt_out
.
i_gmask
=
vout
->
output
.
i_gmask
=
fmt
->
green_mask
;
vout
->
fmt_out
.
i_gmask
=
vout
->
output
.
i_gmask
=
fmt
->
green_mask
;
vout
->
fmt_out
.
i_bmask
=
vout
->
output
.
i_bmask
=
fmt
->
blue_mask
;
vout
->
fmt_out
.
i_bmask
=
vout
->
output
.
i_bmask
=
fmt
->
blue_mask
;
}
}
else
if
(
fmt
->
num_planes
==
3
)
swap_planes
=
!
strcmp
((
const
char
*
)
fmt
->
vcomp_order
,
"YVU"
);
free
(
r
);
free
(
r
);
goto
found_adaptor
;
goto
found_adaptor
;
}
}
...
@@ -457,7 +461,8 @@ found_adaptor:
...
@@ -457,7 +461,8 @@ found_adaptor:
/* Allocate further planes as specified by XVideo */
/* Allocate further planes as specified by XVideo */
/* We assume that offsets[0] is zero */
/* We assume that offsets[0] is zero */
for
(
int
i
=
1
;
i
<
pic
->
i_planes
;
i
++
)
for
(
int
i
=
1
;
i
<
pic
->
i_planes
;
i
++
)
pic
->
p
[
i
].
p_pixels
=
pic
->
p
->
p_pixels
+
offsets
[
i
];
pic
->
p
[
i
].
p_pixels
=
pic
->
p
->
p_pixels
+
offsets
[
swap_planes
?
(
3
-
i
)
:
i
];
PP_OUTPUTPICTURE
[
I_OUTPUTPICTURES
++
]
=
pic
;
PP_OUTPUTPICTURE
[
I_OUTPUTPICTURES
++
]
=
pic
;
}
}
free
(
att
);
free
(
att
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment