2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FMedia_SlpUtil.cpp
20 * @brief This file contains the implementation of _SlpUtil class.
24 #include <image_util.h>
25 #include <mmf/mm_util_imgp.h>
26 #include <FBaseSysLog.h>
27 #include <FMediaImageTypes.h>
28 #include "FMedia_MediaUtil.h"
29 #include "FMedia_SlpUtil.h"
31 using namespace Tizen::Base;
32 using namespace Tizen::Io;
34 namespace Tizen { namespace Media
37 //image_util_colorspace_e
38 //_SlpUtil::ToColorspace(Tizen::Graphics::BitmapPixelFormat pixelFormat)
41 // BitmapPixelFormat key;
42 // image_util_colorspace_e value;
44 // { BITMAP_PIXEL_FORMAT_RGB565, IMAGE_UTIL_COLORSPACE_RGB565 },
45 // { BITMAP_PIXEL_FORMAT_ARGB8888, IMAGE_UTIL_COLORSPACE_BGRA8888 },
46 // { BITMAP_PIXEL_FORMAT_R8G8B8A8, IMAGE_UTIL_COLORSPACE_RGBA8888 },
48 // image_util_colorspace_e ret = (image_util_colorspace_e)0xff;
50 // SAFE_FIND_KEY(ret, map, pixelFormat);
56 image_util_colorspace_e
57 _SlpUtil::ToColorspace(MediaPixelFormat pixelFormat)
62 image_util_colorspace_e value;
64 { MEDIA_PIXEL_FORMAT_RGB565LE, IMAGE_UTIL_COLORSPACE_RGB565 },
65 { MEDIA_PIXEL_FORMAT_BGRA8888, IMAGE_UTIL_COLORSPACE_BGRA8888 },
66 { MEDIA_PIXEL_FORMAT_RGBA8888, IMAGE_UTIL_COLORSPACE_RGBA8888 },
67 { MEDIA_PIXEL_FORMAT_RGB565BE, IMAGE_UTIL_COLORSPACE_RGB565 }, // slp does not support
68 { MEDIA_PIXEL_FORMAT_RGB888, IMAGE_UTIL_COLORSPACE_RGB888 },
69 { MEDIA_PIXEL_FORMAT_BGR888, IMAGE_UTIL_COLORSPACE_RGB888 }, // slp does not support
70 { MEDIA_PIXEL_FORMAT_YUV420P, IMAGE_UTIL_COLORSPACE_YV12 },
71 { MEDIA_PIXEL_FORMAT_YUYV422, IMAGE_UTIL_COLORSPACE_YUYV },
72 { MEDIA_PIXEL_FORMAT_NV12, IMAGE_UTIL_COLORSPACE_NV12 },
74 image_util_colorspace_e ret = (image_util_colorspace_e)0xff;
76 for (unsigned int i = 0; i < sizeof(map)/sizeof(map[0]); i++)
78 if (map[i].key == pixelFormat)
88 _SlpUtil::ToRotation(ImageRotationType type)
92 ImageRotationType key;
93 image_util_rotation_e value;
95 { IMAGE_ROTATION_90, IMAGE_UTIL_ROTATION_90 },
96 { IMAGE_ROTATION_180, IMAGE_UTIL_ROTATION_180 },
97 { IMAGE_ROTATION_270, IMAGE_UTIL_ROTATION_270 },
98 { IMAGE_ROTATION_0, IMAGE_UTIL_ROTATION_FLIP_HORZ },
100 image_util_rotation_e ret = (image_util_rotation_e)0xff;
102 for (unsigned int i = 0; i < sizeof(map)/sizeof(map[0]); i++)
104 if (map[i].key == type)
112 image_util_rotation_e
113 _SlpUtil::ToRotation(ImageFlipType type)
118 image_util_rotation_e value;
120 {IMAGE_FLIP_HORIZONTAL, IMAGE_UTIL_ROTATION_FLIP_HORZ },
121 {IMAGE_FLIP_VERTICAL, IMAGE_UTIL_ROTATION_FLIP_VERT }
123 image_util_rotation_e ret = (image_util_rotation_e)0xff;
125 for (unsigned int i = 0; i < sizeof(map)/sizeof(map[0]); i++)
127 if (map[i].key == type)
136 _SlpUtil::ToMmUtilImgFormat(Tizen::Media::MediaPixelFormat pixelFormat)
140 MediaPixelFormat key;
141 mm_util_img_format value;
143 { MEDIA_PIXEL_FORMAT_RGB565LE, MM_UTIL_IMG_FMT_RGB565 },
144 { MEDIA_PIXEL_FORMAT_BGRA8888, MM_UTIL_IMG_FMT_BGRA8888 },
145 { MEDIA_PIXEL_FORMAT_RGBA8888, MM_UTIL_IMG_FMT_ARGB8888 },
146 { MEDIA_PIXEL_FORMAT_RGB565BE, MM_UTIL_IMG_FMT_RGB565 }, // slp does not support
147 { MEDIA_PIXEL_FORMAT_RGB888, MM_UTIL_IMG_FMT_RGB888 },
148 { MEDIA_PIXEL_FORMAT_BGR888, MM_UTIL_IMG_FMT_RGB888 }, // slp does not support
149 { MEDIA_PIXEL_FORMAT_YUV420P, MM_UTIL_IMG_FMT_YUV420 },
150 { MEDIA_PIXEL_FORMAT_YUYV422, MM_UTIL_IMG_FMT_YUYV },
151 { MEDIA_PIXEL_FORMAT_NV12, MM_UTIL_IMG_FMT_NV12 },
153 mm_util_img_format ret = MM_UTIL_IMG_FMT_RGB565;
155 for (unsigned int i = 0; i < sizeof(map)/sizeof(map[0]); i++)
157 if (map[i].key == pixelFormat)
165 mm_util_img_rotate_type
166 _SlpUtil::ToMmUtilRotateType(ImageFlipType type)
171 mm_util_img_rotate_type value;
173 {IMAGE_FLIP_HORIZONTAL, MM_UTIL_ROTATE_FLIP_HORZ},
174 {IMAGE_FLIP_VERTICAL, MM_UTIL_ROTATE_FLIP_VERT}
176 mm_util_img_rotate_type ret = (mm_util_img_rotate_type)0xff;
178 for (unsigned int i = 0; i < sizeof(map)/sizeof(map[0]); i++)
180 if (map[i].key == type)
188 mm_util_img_rotate_type
189 _SlpUtil::ToMmUtilRotateType(ImageRotationType type)
193 ImageRotationType key;
194 mm_util_img_rotate_type value;
196 { IMAGE_ROTATION_90, MM_UTIL_ROTATE_90},
197 { IMAGE_ROTATION_180, MM_UTIL_ROTATE_180 },
198 { IMAGE_ROTATION_270, MM_UTIL_ROTATE_270 },
199 { IMAGE_ROTATION_0, MM_UTIL_ROTATE_0},
201 mm_util_img_rotate_type ret = (mm_util_img_rotate_type)0xff;
203 for (unsigned int i = 0; i < sizeof(map)/sizeof(map[0]); i++)
205 if (map[i].key == type)