1/*
2 * Copyright (C) 2007-2008 ARM Limited
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17/**
18 *
19 * File Name:  omxVCM4P10_InterpolateChroma.c
20 * OpenMAX DL: v1.0.2
21 * Revision:   9641
22 * Date:       Thursday, February 7, 2008
23 *
24 *
25 *
26 * Description:
27 * This function will calculate 1/8 Pixel interpolation for Chroma Block
28 *
29 */
30
31#include "omxtypes.h"
32#include "armOMX.h"
33#include "omxVC.h"
34
35#include "armVC.h"
36#include "armCOMM.h"
37
38
39/**
40 * Function: omxVCM4P10_InterpolateChroma,
41 *
42 * Description:
43 * Performs 1/8-pixel interpolation for inter chroma MB.
44 *
45 * Remarks:
46 *
47 * Parameters:
48 * [in]	pSrc	Pointer to the source reference frame buffer
49 * [in]	srcStep Reference frame step in byte
50 * [in]	dstStep Destination frame step in byte. Must be multiple of roi.width.
51 * [in]	dx		Fractional part of horizontal motion vector component
52 *						in 1/8 pixel unit;valid in the range [0,7]
53 * [in]	dy		Fractional part of vertical motion vector component
54 *						in 1/8 pixel unit;valid in the range [0,7]
55 * [in]	roi		Dimension of the interpolation region;the parameters roi.width and roi.height must
56 *                      be equal to either 2, 4, or 8.
57 * [out]	pDst	Pointer to the destination frame buffer.
58 *                   if roi.width==2,  2-byte alignment required
59 *                   if roi.width==4,  4-byte alignment required
60 *                   if roi.width==8,  8-byte alignment required
61 *
62 * Return Value:
63 * If the function runs without error, it returns OMX_Sts_NoErr.
64 * If one of the following cases occurs, the function returns OMX_Sts_BadArgErr:
65 *	pSrc or pDst is NULL.
66 *	srcStep or dstStep < 8.
67 *	dx or dy is out of range [0-7].
68 *	roi.width or roi.height is out of range {2,4,8}.
69 *	roi.width is equal to 2, but pDst is not 2-byte aligned.
70 *	roi.width is equal to 4, but pDst is not 4-byte aligned.
71 *	roi.width is equal to 8, but pDst is not 8 byte aligned.
72 *	srcStep or dstStep is not a multiple of 8.
73 *
74 */
75
76OMXResult omxVCM4P10_InterpolateChroma (
77     const OMX_U8* pSrc,
78     OMX_S32 srcStep,
79     OMX_U8* pDst,
80     OMX_S32 dstStep,
81     OMX_S32 dx,
82     OMX_S32 dy,
83     OMXSize roi
84 )
85{
86    return armVCM4P10_Interpolate_Chroma
87        ((OMX_U8*)pSrc, srcStep, pDst, dstStep, roi.width, roi.height, dx, dy);
88}
89
90
91/*****************************************************************************
92 *                              END OF FILE
93 *****************************************************************************/
94
95