omxVCM4P2_MEGetBufSize.c revision 0c1bc742181ded4930842b46e9507372f0b1b963
1/**
2 *
3 * File Name:  omxVCM4P2_MEGetBufSize.c
4 * OpenMAX DL: v1.0.2
5 * Revision:   9641
6 * Date:       Thursday, February 7, 2008
7 *
8 * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
9 *
10 *
11 *
12 * Description:
13 * Initialization modules for the vendor specific Motion Estimation structure.
14 *
15 */
16
17#include "omxtypes.h"
18#include "armOMX.h"
19#include "omxVC.h"
20
21#include "armVC.h"
22#include "armCOMM.h"
23
24/**
25 * Function:  omxVCM4P2_MEGetBufSize   (6.2.4.1.1)
26 *
27 * Description:
28 * Computes the size, in bytes, of the vendor-specific specification
29 * structure for the following motion estimation functions:
30 * BlockMatch_Integer_8x8, BlockMatch_Integer_16x16, and MotionEstimationMB.
31 *
32 * Input Arguments:
33 *
34 *   MEmode - motion estimation mode; available modes are defined by the
35 *            enumerated type OMXVCM4P2MEMode
36 *   pMEParams - motion estimation parameters
37 *
38 * Output Arguments:
39 *
40 *   pSize - pointer to the number of bytes required for the specification
41 *            structure
42 *
43 * Return Value:
44 *
45 *    OMX_Sts_NoErr - no error
46 *    OMX_Sts_BadArgErr - one or more of the following is true:
47 *    -    an invalid value was specified for the parameter MEmode
48 *    -    a negative or zero value was specified for the
49 *         parameter pMEParams->searchRange
50 *
51 */
52
53OMXResult omxVCM4P2_MEGetBufSize(
54    OMXVCM4P2MEMode MEMode,
55    const OMXVCM4P2MEParams *pMEParams,
56    OMX_U32 *pSize
57   )
58{
59    armRetArgErrIf(!pMEParams, OMX_Sts_BadArgErr);
60    armRetArgErrIf(!pSize, OMX_Sts_BadArgErr);
61    armRetArgErrIf(pMEParams->searchRange <= 0, OMX_Sts_BadArgErr);
62    armRetArgErrIf((MEMode != OMX_VC_M4P10_FAST_SEARCH) &&
63                   (MEMode != OMX_VC_M4P10_FULL_SEARCH), OMX_Sts_BadArgErr);
64
65    *pSize = (OMX_INT) sizeof(ARMVCM4P2_MESpec);
66
67    return OMX_Sts_NoErr;
68}
69
70/* End of file */
71