• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ------------------------------------------------------------------
2  * Copyright (C) 1998-2009 PacketVideo
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
13  * express or implied.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  * -------------------------------------------------------------------
17  */
18 #ifndef PVMF_OMX_ENC_FACTORY_H_INCLUDED
19 #define PVMF_OMX_ENC_FACTORY_H_INCLUDED
20 
21 #ifndef OSCL_BASE_H_INCLUDED
22 #include "oscl_base.h"
23 #endif
24 
25 #ifndef OSCL_SCHEDULER_AO_H_INCLUDED
26 #include "oscl_scheduler_ao.h"
27 #endif
28 
29 // Forward declaration
30 class PVMFNodeInterface;
31 
32 #define KPVMFOMXVideoEncNodeUuid PVUuid(0x7f39e8d1,0x1232,0x4394,0xad,0x85,0x43,0xe3,0x29,0x11,0x9a,0x4a)
33 #define KPVMFOMXAudioEncNodeUuid PVUuid(0x6f29e7d1,0x2222,0x3384,0xcd,0x55,0x23,0xa3,0x19,0x51,0xaa,0xca)
34 
35 /**
36  * PVMFOMXEncNodeFactory Class
37  *
38  * a singleton class which instantiates and provides
39  * access to OMX encoder node. It returns a PVMFNodeInterface
40  * reference, the interface class of the PVMFOMXEncNode.
41  *
42  * The client is expected to contain and maintain a pointer to the instance created
43  * while the node is active.
44  */
45 class PVMFOMXEncNodeFactory
46 {
47     public:
48         /**
49          * Creates an instance of a PVMFOMXEncNode. If the creation fails, this function will leave.
50          *
51          * @param aPriority The active object priority for the node. Default is standard priority if not specified
52          * @returns A pointer to an instance of PVMFOMXEncNode as PVMFNodeInterface reference or leaves if instantiation fails
53          **/
54         OSCL_IMPORT_REF static PVMFNodeInterface* CreatePVMFOMXEncNode(int32 aPriority = OsclActiveObject::EPriorityNominal);
55 
56         /**
57          * Deletes an instance of PVMFOMXEncNode
58          * and reclaims all allocated resources.  An instance can be deleted only in
59          * the idle state. An attempt to delete in any other state will fail and return false.
60          *
61          * @param aNode The PVMFOMXEncNode instance to be deleted
62          * @returns A status code indicating success or failure of deletion
63          **/
64         OSCL_IMPORT_REF static bool DeletePVMFOMXEncNode(PVMFNodeInterface* aNode);
65 };
66 
67 #endif // PVMF_OMX_ENC_FACTORY_H_INCLUDED
68 
69