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
2b52b54c
Commit
2b52b54c
authored
Apr 28, 2015
by
Steve Lhomme
Committed by
Jean-Baptiste Kempf
Apr 28, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
copy: add NV12 to NV12 plane copies
Signed-off-by:
Jean-Baptiste Kempf
<
jb@videolan.org
>
parent
2ce0d582
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
0 deletions
+44
-0
modules/video_chroma/copy.c
modules/video_chroma/copy.c
+38
-0
modules/video_chroma/copy.h
modules/video_chroma/copy.h
+6
-0
No files found.
modules/video_chroma/copy.c
View file @
2b52b54c
...
...
@@ -348,6 +348,23 @@ static void SSE_CopyFromYv12(picture_t *dst,
}
asm
volatile
(
"emms"
);
}
static
void
SSE_CopyFromNv12ToNv12
(
picture_t
*
dst
,
uint8_t
*
src
[
2
],
size_t
src_pitch
[
2
],
unsigned
width
,
unsigned
height
,
copy_cache_t
*
cache
,
unsigned
cpu
)
{
SSE_CopyPlane
(
dst
->
p
[
0
].
p_pixels
,
dst
->
p
[
0
].
i_pitch
,
src
[
0
],
src_pitch
[
0
],
cache
->
buffer
,
cache
->
size
,
width
,
height
,
cpu
);
SSE_CopyPlane
(
dst
->
p
[
1
].
p_pixels
,
dst
->
p
[
1
].
i_pitch
,
src
[
1
],
src_pitch
[
1
],
cache
->
buffer
,
cache
->
size
,
width
,
height
/
2
,
cpu
);
asm
volatile
(
"emms"
);
}
#undef COPY64
#endif
/* CAN_COMPILE_SSE2 */
...
...
@@ -400,6 +417,27 @@ void CopyFromNv12(picture_t *dst, uint8_t *src[2], size_t src_pitch[2],
width
/
2
,
height
/
2
);
}
void
CopyFromNv12ToNv12
(
picture_t
*
dst
,
uint8_t
*
src
[
2
],
size_t
src_pitch
[
2
],
unsigned
width
,
unsigned
height
,
copy_cache_t
*
cache
)
{
#ifdef CAN_COMPILE_SSE2
unsigned
cpu
=
vlc_CPU
();
if
(
vlc_CPU_SSE2
())
return
SSE_CopyFromNv12ToNv12
(
dst
,
src
,
src_pitch
,
width
,
height
,
cache
,
cpu
);
#else
(
void
)
cache
;
#endif
CopyPlane
(
dst
->
p
[
0
].
p_pixels
,
dst
->
p
[
0
].
i_pitch
,
src
[
0
],
src_pitch
[
0
],
width
,
height
);
CopyPlane
(
dst
->
p
[
1
].
p_pixels
,
dst
->
p
[
1
].
i_pitch
,
src
[
1
],
src_pitch
[
1
],
width
,
height
/
2
);
}
void
CopyFromYv12
(
picture_t
*
dst
,
uint8_t
*
src
[
3
],
size_t
src_pitch
[
3
],
unsigned
width
,
unsigned
height
,
copy_cache_t
*
cache
)
...
...
modules/video_chroma/copy.h
View file @
2b52b54c
...
...
@@ -34,11 +34,17 @@ typedef struct {
int
CopyInitCache
(
copy_cache_t
*
cache
,
unsigned
width
);
void
CopyCleanCache
(
copy_cache_t
*
cache
);
/* Copy planes from NV12 to YV12 */
void
CopyFromNv12
(
picture_t
*
dst
,
uint8_t
*
src
[
2
],
size_t
src_pitch
[
2
],
unsigned
width
,
unsigned
height
,
copy_cache_t
*
cache
);
/* Copy planes from YV12 to YV12 */
void
CopyFromYv12
(
picture_t
*
dst
,
uint8_t
*
src
[
3
],
size_t
src_pitch
[
3
],
unsigned
width
,
unsigned
height
,
copy_cache_t
*
cache
);
void
CopyFromNv12ToNv12
(
picture_t
*
dst
,
uint8_t
*
src
[
2
],
size_t
src_pitch
[
2
],
unsigned
width
,
unsigned
height
,
copy_cache_t
*
cache
);
#endif
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