1 
2 /**
3   * @file     	HaasCommonVideo.h
4   * @author   	HaasAI Group
5   * @version	V1.0.0
6   * @date    	2021-01-10
7   * @license  	GNU General Public License (GPL)
8   * @brief
9   * @attention
10   *  This file is part of HaasAI.                                \n
11   *  This program is free software; you can redistribute it and/or modify 		\n
12   *  it under the terms of the GNU General Public License version 3 as 		    \n
13   *  published by the Free Software Foundation.                               	\n
14   *  You should have received a copy of the GNU General Public License   		\n
15   *  along with HaasAI. If not, see <http://www.gnu.org/licenses/>.       			\n
16   *  Unless required by applicable law or agreed to in writing, software       	\n
17   *  distributed under the License is distributed on an "AS IS" BASIS,         	\n
18   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  	\n
19   *  See the License for the specific language governing permissions and     	\n
20   *  limitations under the License.   											\n
21   *   																			\n
22   * @htmlonly
23   * <span style="font-weight: bold">History</span>
24   * @endhtmlonly
25   * Version|Author|Date|Describe
26   * ------|----|------|--------
27   * V1.0|HaasAI Group|2021-01-10|Create File
28   * <h2><center>&copy;COPYRIGHT 2021 WELLCASA All Rights Reserved.</center></h2>
29   */
30 #ifndef HAAS_COMMON_VIDEO_H
31 #define HAAS_COMMON_VIDEO_H
32 
33 #include "base/include/base/HaasCommonImage.h"
34 
35 /**@enum VideoCodecID_t
36 * @brief Video Codec ID Value \n
37 */
38 typedef enum {
39     VIDEO_CODEC_ID_NONE,
40     VIDEO_CODEC_ID_H261,
41     VIDEO_CODEC_ID_H263,
42     VIDEO_CODEC_ID_MJPEG,
43     VIDEO_CODEC_ID_LJPEG,
44     VIDEO_CODEC_ID_H264,
45     VIDEO_CODEC_ID_H265,
46 } VideoCodecID_t;
47 
48 /**@struct VideoPacket_t
49 * @brief Video Packet information \n
50 */
51 typedef struct {
52     int64_t     pts;
53     int64_t     dts;
54     uint8_t		*data;
55     int         size;
56     int64_t     duration;
57     int64_t     pos;
58 } VideoPacket_t;
59 
60 /**@struct DecodeConfig_t
61 * @brief Decode Config information \n
62 */
63 typedef struct {
64     int          type;
65     int         format;
66     ImageSize_t *size;
67     VideoPacket_t *data;
68 } DecodeConfig_t;
69 
70 
71 /**@struct ImageBuffer_t
72 * @brief Encode Config information \n
73 */
74 typedef struct {
75     int          type;
76     int         format;
77     ImageSize_t *size;
78     ImageBuffer_t *data;
79 } EncodeConfig_t;
80 
81 #endif
82