Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
09e8c21d
Commit
09e8c21d
authored
Jun 16, 2011
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ARM NEON: fix smurf in conversions from YV12 to YUY2
parent
3466db33
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
3 deletions
+39
-3
modules/arm_neon/i420_yuy2.c
modules/arm_neon/i420_yuy2.c
+39
-3
No files found.
modules/arm_neon/i420_yuy2.c
View file @
09e8c21d
...
...
@@ -49,6 +49,19 @@ static void I420_YUYV (filter_t *filter, picture_t *src, picture_t *dst)
i420_yuyv_neon
(
out
,
yuv
,
i_pitch
,
s_offset
,
height
);
}
VIDEO_FILTER_WRAPPER
(
I420_YUYV
)
static
void
YV12_YUYV
(
filter_t
*
filter
,
picture_t
*
src
,
picture_t
*
dst
)
{
uint8_t
*
out
=
dst
->
p
->
p_pixels
;
const
uint8_t
*
yuv
[
3
]
=
{
src
->
Y_PIXELS
,
src
->
V_PIXELS
,
src
->
U_PIXELS
,
};
size_t
height
=
filter
->
fmt_in
.
video
.
i_height
;
int
i_pitch
=
(
dst
->
p
->
i_pitch
>>
1
)
&
~
0xF
;
int
s_offset
=
src
->
p
->
i_pitch
-
i_pitch
;
i420_yuyv_neon
(
out
,
yuv
,
i_pitch
,
s_offset
,
height
);
}
VIDEO_FILTER_WRAPPER
(
YV12_YUYV
)
void
i420_uyvy_neon
(
uint8_t
*
out
,
const
uint8_t
**
in
,
uintptr_t
pitch
,
uintptr_t
s_off
,
uintptr_t
height
);
...
...
@@ -63,10 +76,20 @@ static void I420_UYVY (filter_t *filter, picture_t *src, picture_t *dst)
i420_uyvy_neon
(
out
,
yuv
,
i_pitch
,
s_offset
,
height
);
}
VIDEO_FILTER_WRAPPER
(
I420_YUYV
)
VIDEO_FILTER_WRAPPER
(
I420_UYVY
)
static
void
YV12_UYVY
(
filter_t
*
filter
,
picture_t
*
src
,
picture_t
*
dst
)
{
uint8_t
*
out
=
dst
->
p
->
p_pixels
;
const
uint8_t
*
yuv
[
3
]
=
{
src
->
Y_PIXELS
,
src
->
V_PIXELS
,
src
->
U_PIXELS
,
};
size_t
height
=
filter
->
fmt_in
.
video
.
i_height
;
int
i_pitch
=
(
dst
->
p
->
i_pitch
>>
1
)
&
~
0xF
;
int
s_offset
=
src
->
p
->
i_pitch
-
i_pitch
;
i420_uyvy_neon
(
out
,
yuv
,
i_pitch
,
s_offset
,
height
);
}
VIDEO_FILTER_WRAPPER
(
YV12_UYVY
)
static
int
Open
(
vlc_object_t
*
obj
)
{
filter_t
*
filter
=
(
filter_t
*
)
obj
;
...
...
@@ -78,7 +101,6 @@ static int Open (vlc_object_t *obj)
switch
(
filter
->
fmt_in
.
video
.
i_chroma
)
{
case
VLC_CODEC_YV12
:
case
VLC_CODEC_I420
:
switch
(
filter
->
fmt_out
.
video
.
i_chroma
)
{
...
...
@@ -93,6 +115,20 @@ static int Open (vlc_object_t *obj)
}
break
;
case
VLC_CODEC_YV12
:
switch
(
filter
->
fmt_out
.
video
.
i_chroma
)
{
case
VLC_CODEC_YUYV
:
filter
->
pf_video_filter
=
YV12_YUYV_Filter
;
break
;
case
VLC_CODEC_UYVY
:
filter
->
pf_video_filter
=
YV12_UYVY_Filter
;
break
;
default:
return
VLC_EGENERIC
;
}
break
;
default:
return
VLC_EGENERIC
;
}
...
...
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