xref: /OK3568_Linux_fs/external/rockit/tgi/sdk/include/RTAVShellBuffer.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2021 Rockchip Electronics Co. LTD
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Licensed under the Apache License, Version 2.0 (the "License");
5*4882a593Smuzhiyun  * you may not use this file except in compliance with the License.
6*4882a593Smuzhiyun  * You may obtain a copy of the License at
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  *      http://www.apache.org/licenses/LICENSE-2.0
9*4882a593Smuzhiyun  *
10*4882a593Smuzhiyun  * Unless required by applicable law or agreed to in writing, software
11*4882a593Smuzhiyun  * distributed under the License is distributed on an "AS IS" BASIS,
12*4882a593Smuzhiyun  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4882a593Smuzhiyun  * See the License for the specific language governing permissions and
14*4882a593Smuzhiyun  * limitations under the License.
15*4882a593Smuzhiyun  */
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #ifndef SRC_RT_MEDIA_INCLUDE_RTAVSHELLBUFFER_H_
18*4882a593Smuzhiyun #define SRC_RT_MEDIA_INCLUDE_RTAVSHELLBUFFER_H_
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #include "RTMediaBuffer.h"
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun class RTAVShellBuffer : public RTMediaBuffer {
23*4882a593Smuzhiyun  public:
24*4882a593Smuzhiyun     RTAVShellBuffer();
25*4882a593Smuzhiyun     explicit RTAVShellBuffer(void* data, UINT32 size);
26*4882a593Smuzhiyun     explicit RTAVShellBuffer(UINT32 size);
27*4882a593Smuzhiyun     explicit RTAVShellBuffer(RTMediaBuffer *buffer);
28*4882a593Smuzhiyun     virtual ~RTAVShellBuffer();
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun     virtual void   setExtMediaBuffer(RTMediaBuffer *buffer);
31*4882a593Smuzhiyun     virtual RTMediaBuffer* getExtMediaBuffer();
32*4882a593Smuzhiyun     virtual void   release(bool debug = false);
33*4882a593Smuzhiyun     virtual void   signalBufferAvailable();
34*4882a593Smuzhiyun     virtual void*  getData() const;
35*4882a593Smuzhiyun     virtual UINT32 getSize() const;
36*4882a593Smuzhiyun     virtual UINT32 getRealSize() const;
37*4882a593Smuzhiyun     virtual UINT32 getOffset() const;
38*4882a593Smuzhiyun     virtual UINT32 getLength() const;
39*4882a593Smuzhiyun     virtual INT32  getFd() const;
40*4882a593Smuzhiyun     virtual INT32  getHandle() const;
41*4882a593Smuzhiyun     virtual UINT32 getPhyAddr() const;
42*4882a593Smuzhiyun     virtual INT32  getUniqueID() const;
43*4882a593Smuzhiyun     virtual INT32  getBufferSeq() const;
44*4882a593Smuzhiyun     virtual INT32  getPoolID() const;
45*4882a593Smuzhiyun     virtual RT_BOOL hasFlag(INT32 flag) const;
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun     virtual void   setData(void* data, UINT32 size);
48*4882a593Smuzhiyun     virtual void   setListener(RTBufferListener* listener);
49*4882a593Smuzhiyun     virtual void   setPhyAddr(UINT32 phyaddr);
50*4882a593Smuzhiyun     virtual void   setRange(UINT32 offset, UINT32 length);
51*4882a593Smuzhiyun     virtual void   setRealSize(UINT32 real);
52*4882a593Smuzhiyun     virtual void   setStatus(RtMediaBufferStatus status);
53*4882a593Smuzhiyun     virtual void   setSite(RTMediaBufferSite site);
54*4882a593Smuzhiyun     virtual void   setUserData(void *data, UserDataFree freeFunc = RT_NULL);
55*4882a593Smuzhiyun     virtual void   setBufferID(void *id);
56*4882a593Smuzhiyun     virtual void   setBufferSeq(INT32 seq);
57*4882a593Smuzhiyun     virtual void   setFd(INT32 fd);
58*4882a593Smuzhiyun     virtual void   setHandle(INT32 handle);
59*4882a593Smuzhiyun     virtual void   setUniqueID(INT32 uniqueId);
60*4882a593Smuzhiyun     virtual void   setPoolID(INT32 poolId);
61*4882a593Smuzhiyun     virtual void   setAllocator(RTAllocator *allocator);
62*4882a593Smuzhiyun     virtual void   setFlag(INT32 flag, INT32 value);
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun     virtual RtMetaData* getMetaData();
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun  protected:
67*4882a593Smuzhiyun     RTMediaBuffer *mExtBuffer;
68*4882a593Smuzhiyun };
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun #endif   // SRC_RT_MEDIA_INCLUDE_RTAVSHELLBUFFER_H_
71