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>©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