mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-16 03:18:54 +00:00
133 lines
3.2 KiB
C
133 lines
3.2 KiB
C
/*
|
|
* Copyright (C) 2020-2024 ArtInChip Technology Co. Ltd
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Author: <jun.ma@artinchip.com>
|
|
* Desc: aic_player api
|
|
*/
|
|
|
|
#ifndef __AIC_PLAYER_H__
|
|
#define __AIC_PLAYER_H__
|
|
|
|
#include <pthread.h>
|
|
#include <malloc.h>
|
|
#include <string.h>
|
|
#include <stddef.h>
|
|
|
|
#include "mpp_dec_type.h"
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
struct aic_player;
|
|
|
|
#define AIC_PLAYER_PREPARE_SYNC 0
|
|
#define AIC_PLAYER_PREPARE_ASYNC 1
|
|
|
|
enum aic_player_event {
|
|
AIC_PLAYER_EVENT_PLAY_END = 0, // play file to end
|
|
AIC_PLAYER_EVENT_PLAY_TIME, //pts = data1<<32|data2
|
|
AIC_PLAYER_EVENT_DEMUXER_FORMAT_DETECTED,
|
|
AIC_PLAYER_EVENT_DEMUXER_FORMAT_NOT_DETECTED
|
|
};
|
|
|
|
enum aic_player_command {
|
|
AIC_PLAYER_CMD_SET_VDEC_EXT_FRAME_ALLOCATOR = 0,
|
|
AIC_PLAYER_CMD_SET_VDEC_SET_CROP_INFO,
|
|
AIC_PLAYER_CMD_GET_VDEC_DECODER_FRAME,
|
|
AIC_PLAYER_CMD_PUT_VDEC_DECODER_FRAME,
|
|
AIC_PLAYER_CMD_SET_AUDIO_RENDER_SOUND_HANDLE,
|
|
};
|
|
|
|
struct aic_capture_info {
|
|
s8 *file_path;
|
|
s32 width;
|
|
s32 height;
|
|
s32 quality;
|
|
};
|
|
|
|
struct aic_video_stream {
|
|
s32 width;
|
|
s32 height;
|
|
};
|
|
|
|
struct aic_audio_stream {
|
|
s32 nb_channel;
|
|
s32 bits_per_sample;
|
|
s32 sample_rate;
|
|
};
|
|
|
|
struct av_media_info {
|
|
s64 file_size;
|
|
s64 duration;
|
|
u8 has_video;
|
|
u8 has_audio;
|
|
u8 seek_able;
|
|
struct aic_video_stream video_stream;
|
|
struct aic_audio_stream audio_stream;
|
|
};
|
|
|
|
typedef s32 (*event_handler) (void* app_data,s32 event,s32 data1,s32 data2);
|
|
|
|
struct aic_player* aic_player_create(char *uri);
|
|
|
|
s32 aic_player_destroy(struct aic_player *player);
|
|
|
|
s32 aic_player_set_uri(struct aic_player *player,char *uri);
|
|
|
|
s32 aic_player_prepare_async(struct aic_player *player);
|
|
|
|
s32 aic_player_prepare_sync(struct aic_player *player);
|
|
|
|
s32 aic_player_start(struct aic_player *player);
|
|
|
|
s32 aic_player_play(struct aic_player *player);
|
|
|
|
s32 aic_player_pause(struct aic_player *player);
|
|
|
|
s32 aic_player_stop(struct aic_player *player);
|
|
|
|
s32 aic_player_get_media_info(struct aic_player *player,struct av_media_info *media_info);
|
|
|
|
s32 aic_player_set_event_callback(struct aic_player *player,void* app_data,event_handler event_handle);
|
|
|
|
s32 aic_player_get_screen_size(struct aic_player *player,struct mpp_size *screen_size);
|
|
|
|
s32 aic_player_set_disp_rect(struct aic_player *player,struct mpp_rect *disp_rect);
|
|
|
|
s32 aic_player_get_disp_rect(struct aic_player *player,struct mpp_rect *disp_rect);
|
|
|
|
s32 aic_player_set_mute(struct aic_player *player);
|
|
|
|
s32 aic_player_set_volum(struct aic_player *player,s32 vol);
|
|
|
|
s32 aic_player_get_volum(struct aic_player *player,s32 *vol);
|
|
|
|
s64 aic_player_get_play_time(struct aic_player *player);
|
|
|
|
s32 aic_player_seek(struct aic_player *player, u64 seek_time);
|
|
|
|
s32 aic_player_capture(struct aic_player *player, struct aic_capture_info *capture_info);
|
|
|
|
//MPP_ROTATION_0 MPP_ROTATION_90 MPP_ROTATION_180 MPP_ROTATION_270
|
|
|
|
s32 aic_player_set_rotation(struct aic_player *player, int rotation_angle);
|
|
|
|
s32 aic_player_get_rotation(struct aic_player *player);
|
|
|
|
s32 aic_player_control(struct aic_player *player, enum aic_player_command cmd, void *data);
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* End of #ifdef __cplusplus */
|
|
|
|
#endif
|
|
|
|
|
|
|