xref: /OK3568_Linux_fs/external/rockit/tgi/sdk/include/RTAVShellBuffer.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Copyright 2021 Rockchip Electronics Co. LTD
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 #ifndef SRC_RT_MEDIA_INCLUDE_RTAVSHELLBUFFER_H_
18 #define SRC_RT_MEDIA_INCLUDE_RTAVSHELLBUFFER_H_
19 
20 #include "RTMediaBuffer.h"
21 
22 class RTAVShellBuffer : public RTMediaBuffer {
23  public:
24     RTAVShellBuffer();
25     explicit RTAVShellBuffer(void* data, UINT32 size);
26     explicit RTAVShellBuffer(UINT32 size);
27     explicit RTAVShellBuffer(RTMediaBuffer *buffer);
28     virtual ~RTAVShellBuffer();
29 
30     virtual void   setExtMediaBuffer(RTMediaBuffer *buffer);
31     virtual RTMediaBuffer* getExtMediaBuffer();
32     virtual void   release(bool debug = false);
33     virtual void   signalBufferAvailable();
34     virtual void*  getData() const;
35     virtual UINT32 getSize() const;
36     virtual UINT32 getRealSize() const;
37     virtual UINT32 getOffset() const;
38     virtual UINT32 getLength() const;
39     virtual INT32  getFd() const;
40     virtual INT32  getHandle() const;
41     virtual UINT32 getPhyAddr() const;
42     virtual INT32  getUniqueID() const;
43     virtual INT32  getBufferSeq() const;
44     virtual INT32  getPoolID() const;
45     virtual RT_BOOL hasFlag(INT32 flag) const;
46 
47     virtual void   setData(void* data, UINT32 size);
48     virtual void   setListener(RTBufferListener* listener);
49     virtual void   setPhyAddr(UINT32 phyaddr);
50     virtual void   setRange(UINT32 offset, UINT32 length);
51     virtual void   setRealSize(UINT32 real);
52     virtual void   setStatus(RtMediaBufferStatus status);
53     virtual void   setSite(RTMediaBufferSite site);
54     virtual void   setUserData(void *data, UserDataFree freeFunc = RT_NULL);
55     virtual void   setBufferID(void *id);
56     virtual void   setBufferSeq(INT32 seq);
57     virtual void   setFd(INT32 fd);
58     virtual void   setHandle(INT32 handle);
59     virtual void   setUniqueID(INT32 uniqueId);
60     virtual void   setPoolID(INT32 poolId);
61     virtual void   setAllocator(RTAllocator *allocator);
62     virtual void   setFlag(INT32 flag, INT32 value);
63 
64     virtual RtMetaData* getMetaData();
65 
66  protected:
67     RTMediaBuffer *mExtBuffer;
68 };
69 
70 #endif   // SRC_RT_MEDIA_INCLUDE_RTAVSHELLBUFFER_H_
71