]> git.sesse.net Git - vlc/blob - modules/video_filter/libswscale_nokia770/arm_colorconv.h
Fixed RSS text positionning (close #3115).
[vlc] / modules / video_filter / libswscale_nokia770 / arm_colorconv.h
1 /*
2  * ARM assembly optimized color format conversion functions
3  * (YV12 -> YUY2, YV12 -> some custom YUV420 format used by
4  * Epson graphics chip in Nokia N800)
5  *
6  * Copyright (C) 2007 Siarhei Siamashka <ssvb@users.sourceforge.net>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  */
22
23 #ifndef __ARM_COLORCONV_H__
24 #define __ARM_COLORCONV_H__
25
26 #include <stdint.h>
27
28 /**
29  * Convert a line of pixels from YV12 to YUY2 color format
30  * @param dst   - destination buffer for YUY2 pixel data, it should be 32-bit aligned
31  * @param src_y - pointer to Y plane
32  * @param src_u - pointer to U plane
33  * @param src_v - pointer to V plane
34  * @param w     - number of pixels to convert (should be multiple of 2)
35  */
36 void yv12_to_yuy2_line_arm(uint32_t *dst, const uint16_t *src_y, const uint8_t *src_u, const uint8_t *src_v, int w);
37
38 /**
39  * Convert a line of pixels from YV12 to YUV420 color format
40  * @param dst   - destination buffer for YUV420 pixel data, it should be at least 16-bit aligned
41  * @param src_y - pointer to Y plane
42  * @param src_c - pointer to chroma plane (U for even lines, V for odd lines)
43  * @param w     - number of pixels to convert (should be multiple of 4)
44  */
45 void yv12_to_yuv420_line_arm(uint16_t *dst, const uint8_t *src_y, const uint8_t *src_c, int w);
46
47 /**
48  * Convert a line of pixels from YV12 to YUV420 color format
49  * @param dst   - destination buffer for YUV420 pixel data, it should be at least 16-bit aligned
50  * @param src_y - pointer to Y plane
51  * @param src_c - pointer to chroma plane (U for even lines, V for odd lines)
52  * @param w     - number of pixels to convert (should be multiple of 4)
53  */
54 void yv12_to_yuv420_line_armv5(uint16_t *dst, const uint8_t *src_y, const uint8_t *src_c, int w);
55
56 /**
57  * Convert a line of pixels from YV12 to YUV420 color format
58  * @param dst   - destination buffer for YUV420 pixel data, it should be at least 16-bit aligned
59  * @param src_y - pointer to Y plane, it should be 16-bit aligned
60  * @param src_c - pointer to chroma plane (U for even lines, V for odd lines)
61  * @param w     - number of pixels to convert (should be multiple of 4)
62  */
63 void yv12_to_yuv420_line_armv6(uint16_t *dst, const uint16_t *src_y, const uint8_t *src_c, int w);
64
65 #endif