Anyka雲平臺調用api

 

2.1 Video_net

#ifndef _video_net_h_

#define _video_net_h_

 

/**

* NAME anyka_stop_video

* @BRIEF    關閉網絡視頻

* @PARAM    mydata 用戶數據,此結構的指針要與anyka_start_video傳的一致

* @RETURN    void

* @RETVAL    

*/

 

 

void anyka_stop_video(void*mydata);

 

 

/**

* NAME anyka_start_video

* @BRIEF    打開網絡視頻,或者修改網絡視頻參數

* @PARAM    video_quality 視頻的質量參數

mydata 用戶數據

psend_video_callback 用戶回調函數,用於發送網絡數據,如果爲空,將是修改參數,

不爲空將是新開啓功能

* @RETURN    返回視頻的幀率

* @RETVAL    

*/

 

int anyka_start_video(int video_quality,void*mydata, P_VIDEO_DOWITH_CALLBACK psend_video_callback);

 

 

 

/**

* NAME anyka_start_picture

* @BRIEF    傳送一個圖片到網絡

* @PARAM    mydata 用戶數據

psend_video_callback 網絡發送圖片的回調

* @RETURN    void

* @RETVAL    

*/

 

 

void anyka_start_picture(void*mydata, P_VIDEO_DOWITH_CALLBACK psend_video_callback);

 

 

/**

* NAME anyka_set_video_iframe

* @BRIEF    強行將編碼設置爲幀

* @PARAM    mydata 用戶數據

 

* @RETURN    NONE

* @RETVAL    

*/

void anyka_set_video_iframe(void*mydata);

 

/**

* NAME anyka_start_video_withbps

* @BRIEF    打開網絡視頻,或者修改網絡視頻參數

* @PARAM

video_type 720P或者VGA

bps 視頻的碼率

mydata 用戶數據

psend_video_callback 用戶回調函數,用於發送網絡數據,如果爲空,將是修改參數,

不爲空將是新開啓功能

* @RETURN    返回視頻的幀率

* @RETVAL    

*/

int anyka_start_video_withbps(int video_type,int bps,void*mydata, P_VIDEO_DOWITH_CALLBACK psend_video_callback);

 

 

/**

* NAME anyka_set_video_para

* @BRIEF    修改視頻方面的參數,

* @PARAM    video_type 編碼類型,目前只支持(1:720) OR (0:VGA)

bps 視頻的碼率

mydata 用戶數據

* @RETURN    NONE

* @RETVAL    

*/

 

void anyka_set_video_para(int video_type,int bps,void*mydata);

 

#endif

 

 

 

2.2 Audio_talk

#ifndef _audio_talk_h_

#define _audio_talk_h_

typedefvoid* Pnet_get_talk_data(void* user );

 

/**

* NAME audio_speak_start

* @BRIEF    開啓對講功能,這個函數完成將AD數據採集,並編碼送給網絡

* @PARAM    mydata 用戶數據

pget_callback 得到網絡數據的回調

encode_type 編碼類型

* @RETURN    void

* @RETVAL    

*/

 

void audio_speak_start(void*mydata, AUDIO_SEND_CALLBACK *pcallback,int encode_type);

 

 

/**

* NAME audio_speak_stop

* @BRIEF    停止對講功能,關閉AD數據編碼

* @PARAM    encode_type 編碼類型

* @RETURN    void

* @RETVAL    

*/

 

void audio_speak_stop(void*mydata,int encode_type);

 

/**

* NAME audio_talk_start

* @BRIEF    開啓對講功能,這個函數完成接受網絡數據,並解碼,送給DA

* @PARAM    mydata 用戶數據

pget_callback 得到網絡數據的回調

encode_type 編碼類型

* @RETURN    0--fail; 1-->ok

* @RETVAL    

*/

 

uint8 audio_talk_start(void*mydata, Pnet_get_talk_data pget_callback,int encode_type);

 

 

/**

* NAME audio_talk_status

* @BRIEF    檢查編碼緩衝區是不是爲空的狀態

* @PARAM    

* @RETURN    0-->爲空,1-->不爲空

* @RETVAL    

*/

 

int audio_talk_status(void);

 

 

 

/**

* NAME audio_talk_stop

* @BRIEF    停止對講功能,將不再接受網絡數據

* @PARAM    

* @RETURN    void

* @RETVAL    

*/

void audio_talk_stop(void *mydata);

 

#endif

 

 

 

 

2.2 anyka_dection

#ifndef _anyka_dection_h_

#define _anyka_dection_h_

//目前系統只做了移動與聲音偵測功能

enum

{

SYS_CHECK_VOICE_ALARM = 1,

SYS_CHECK_VIDEO_ALARM = 2,

SYS_CHECK_OTHER_ALARM = 4,

};

typedef void PANYKA_SEND_ALARM_FUNC(int alarm_type, int save_flag, char *save_path, int start_time, int time_len);

 

/**

* NAME anyka_dection_init

* @BRIEF    系統啓動時,讀取配置文件,看關機前是否設置偵測,如果設置

啓動相應功能,因偵測到了要發消息出去,目前只支持大拿,如果其它

平臺,修改回調函數就可以

* @PARAM    Palarm_func 如果發生偵測時的回調函數

filter_check 當前是否過濾偵測的,目前設計騰訊的在視頻觀看的時候不做偵測

* @RETURN    void

* @RETVAL    

*/

 

 

void anyka_dection_init(PANYKA_SEND_ALARM_FUNC Palarm_func, PANYKA_FILTER_VIDEO_CHECK_FUNC filter_check);

 

/**

* NAME anyka_dection_start

* @BRIEF    打開偵測功能

* @PARAM    move_level 偵測的標準

check_type 偵測類型

Palarm_func 偵測回調函數

filter_check 當前是否過濾偵測的,目前設計騰訊的在視頻觀看的時候不做偵測

* @RETURN    void

* @RETVAL    

*/

 

void anyka_dection_start(int move_level, int check_type, PANYKA_SEND_ALARM_FUNC Palarm_func, PANYKA_FILTER_VIDEO_CHECK_FUNC filter_check);

 

/**

* NAME anyka_dection_stop

* @BRIEF    關閉相應的偵測類型,如果所有偵測全被關閉,我們將釋放所有資源

* @PARAM    check_type

* @RETURN    void

* @RETVAL    

*/

 

void anyka_dection_stop(int check_type);

 

/**

* NAME anyka_dection_save_record

* @BRIEF    偵測錄像是否開始

* @PARAM    

* @RETURN    1-->正在偵測錄像; 0-->偵測錄像未開始

* @RETVAL    

*/

 

int anyka_dection_save_record(void);

 

 

/**

* NAME anyka_dection_pause_dection

* @BRIEF    停止移動與聲音偵測

* @PARAM    

* @RETURN    

* @RETVAL    

*/

 

void anyka_dection_pause_dection(void);

 

/**

* NAME anyka_dection_resume_dection

* @BRIEF    恢復移動與聲音偵測

* @PARAM    

* @RETURN    

* @RETVAL    

*/

 

void anyka_dection_resume_dection(void);

 

 

#endif

 

 

 

 

2.3 anyka_photo

#ifndef _anyka_photo_h_

#define _anyka_photo_h_

 

 

typedefvoid anyka_photo_callabck(void*parm,char*pic_path);

 

/**

* NAME anyka_photo_init

* @BRIEF    啓動拍照線程,等待用戶拍照指令

* @PARAM    photo_path 拍照的路徑

* @RETURN    

* @RETVAL    

*/

 

int anyka_photo_init(char*photo_path);

 

 

/**

* NAME anyka_photo_start

* @BRIEF    開始啓動拍照

* @PARAM    total_time 拍照時間,拍照將會持續的時間,如果爲-1,將持續拍照

time_per_phone 拍照的間隔時間

photo_path 拍照的路徑,如果爲NULL,將使用上次拍照的路徑

ppic_tell 如果拍照結束,將通知用戶

para 回調函數的參數

* @RETURN    

* @RETVAL    

*/

 

int anyka_photo_start(int total_time,int time_per_phone,char*photo_path, anyka_photo_callabck *ppic_tell,void*para);

 

 

/**

* NAME anyka_photo_stop

* @BRIEF    提前結束之前啓動的拍照

* @PARAM    void

* @RETURN    void

* @RETVAL    

*/

 

void anyka_photo_stop();

 

#endif

 

 

 

2.4 video_record

#ifndef _video_record_h_

#define _video_record_h_

 

/**

* NAME video_record_main_loop

* @BRIEF    計劃錄像的啓動與關閉,通過讀配置文件,以時間爲依據啓動或停止

* @PARAM    void

* @RETURN    void

* @RETVAL    

*/

 

void video_record_main_loop(void);

 

/**

* NAME video_record_check_run

* @BRIEF    檢查是否正在錄像

* @PARAM    none

* @RETURN    0返回不在錄像,1返回正在錄像

* @RETVAL    

*/

 

int video_record_check_run(void);

 

/**

* NAME video_record_start

* @BRIEF    錄像啓動

* @PARAM    void

* @RETURN    -1返回失敗,1返回成功

* @RETVAL    

*/

 

int video_record_start(void);

 

/**

* NAME video_record_stop

* @BRIEF    錄像停止,將釋放所有的錄像相關的資源

* @PARAM    void

* @RETURN    void

* @RETVAL    

*/

 

void video_record_stop(void);

/**

* NAME video_record_err_stop

* @BRIEF    如果錄像過程中失敗,將停止錄像,設置標誌,等待錄像結束

* @PARAM    void

* @RETURN    void

* @RETVAL    

*/

void video_record_err_stop(void);

 

/**

* NAME video_record_update_use_size

* @BRIEF    當報警錄像的使用了空間後,要更新這個錄像大小

* @PARAM    int file_size 報警文件大小

* @RETURN    void*

* @RETVAL    

*/

 

 

void video_record_update_use_size(int file_size);

 

#endif

 

 

 

 

2.5 record_replay

#ifndef _record_replay_h_

#define _record_replay_h_

#include "video_fs_list_manage.h"

 

 

typedefvoid P_RECORD_REPLAY_CALLBACK(T_VOID *param,int type, T_STM_STRUCT *pstream);

 

/**

* NAME record_replay_start

* @BRIEF     啓動錄像回放功能

 

 

* @PARAM start_time 回放的開始時間

end_time 回放的結束時間

clip_limit 限制的視頻片段數量,0表示不限制, >0 是有效值

type 要求回放的類型,支持警告與錄像回放

mydata 用戶數據結構

psend_video_callback 送音視頻數據的回調函數

* @RETURN    int

* @RETVAL    1-->fail; 0-->success

*/

 

int record_replay_start(unsignedlong start_time,unsignedlong end_time,int clip_limit,int type,void*mydata, P_RECORD_REPLAY_CALLBACK psend_video_callback);

 

/**

* NAME record_replay_play_status

* @BRIEF     錄像回放的播放與暫停

 

 

* @PARAM mydata 用戶數據結構,是在啓動回放傳進來的

play 1-->play; 0-->pause

* @RETURN    void

* @RETVAL    

*/

 

void record_replay_play_status(void*mydata,int play);

 

/**

* NAME record_replay_stop

* @BRIEF     錄像回放的取消

 

 

* @PARAM mydata 用戶數據結構,是在啓動回放傳進來的

* @RETURN    void

* @RETVAL    

*/

void record_replay_stop(void*mydata);

/**

* NAME record_replay_init

* @BRIEF    初始化錄像回放相關信息,這裏只創建線程處理,然後直接返回

 

 

* @PARAM void

* @RETURN    void

* @RETVAL    

*/

 

void record_replay_init(void);

 

 

/**

* NAME record_replay_get_read

* @BRIEF    得到符合記錄的下一條記錄信息

 

* @PARAM record_list open時候的句柄

find_end 符合記錄的最後時間

result 記錄信息儲存

* @RETURN    查找結果

* @RETVAL    0-->FAIL, 1-->success

*/

 

int record_replay_get_read(void*record_list,unsignedlong find_end, Precord_replay_info result);

 

 

/**

* NAME record_replay_get_close_file

* @BRIEF    關閉打開文件

 

* @PARAM

* @RETURN    NONE

* @RETVAL    

*/

 

 

void record_replay_get_close_file(void*record_list);

 

/**

* NAME record_replay_get_open_file

* @BRIEF    打開錄像文件記錄表,並設置到指定位置

 

* @PARAM type 回放的類型

start_time 需要記錄的開始時間

find_end 返回符合記錄的最後時間

result 記錄信息儲存

* @RETURN    查找文件句柄

* @RETVAL    NULL-->FAIL, other-->success

*/

 

 

void* record_replay_get_open_file(int type,unsignedlong start_time,unsignedlong find_end, Precord_replay_info result);

 

 

void record_replay_remove_tmpfile(void);

 

#endif

 

 

 

2.6 audio_record

#ifndef _AUDIO_RECORD_H_

#define _AUDIO_RECORD_H_

/**

* NAME audio_record_start

* @BRIEF 開始啓動錄音功能,目前錄像只保存一個文件,並不做文件分離,

 

* @PARAM audio_path :錄音文件的路徑

ext_name :錄音文件後綴名(".wav" or ".amr")

* @RETURN void

* @RETVAL

*/

 

void audio_record_start(char*audio_path,char*ext_name);

 

 

 

/**

* NAME audio_record_stop

* @BRIEF 停止錄音功能

 

* @PARAM file_name 錄音文件的全路徑名

* @RETURN void

* @RETVAL

*/

 

void audio_record_stop(char*file_name);

 

#endif

 

 

 

2.7 audio_play

#ifndef _AUDIO_PLAY_H_

#define _AUDIO_PLAY_H_

 

/**

* NAME audio_play_start

* @BRIEF    開始AMR的音樂播放,目前只做了AMR文件的播放

* @PARAM    audio_path AMR音樂路徑

del_flag 是否刪除文件

* @RETURN    NONE

* @RETVAL    

*/

 

 

void audio_play_start(char*audio_path,int del_flag);

 

 

/**

* NAME audio_play_stop

* @BRIEF    停止當前音樂的播放

* @PARAM    void

* @RETURN    NONE

* @RETVAL    

*/

 

void audio_play_stop(void);

 

#endif

 

 

 

2.8 anyka_ftp_update

#ifndef _anyka_ftp_update_h_

#define _anyka_ftp_update_h_

 

 

/**

* @brief在系統同步時間後,如果當前時間是在升級區間內,

將啓動升級信息檢查,如果發現不配對,將啓動升級

*

* @param[in] int cur_year 系統當前的年,目前認爲系統時間在大於2014年,

才認爲同步了時間,否則不會啓動FTP升級

int cur_time 以當天0000開始算,以秒爲單位,當前的時間,

* @return void

* @retval none

*/

 

void anyka_ftp_update_main(int cur_year,int cur_time);

 

#endif

 

 

 

2.8 anyka_ini

#ifndef _ANYKA_INI_H_

#define _ANYKA_INI_H_

/**

* @brief初始化配置文件系統,將完成從配置文件讀取內容,並完成數據結構的初始化

*

* @author aijun

* @date 2014-11-28

* @param[in] void *config_name 配置文件名

* @return T_S32

* @retval if return 0 fail, otherwise the handle of the config

*/

 

void* anyka_config_init(char*config_name);

 

 

 

/**

* @brief釋放配置句柄所申請的內存,如果配置項產生變化,將保存文件

*

* @author aijun

* @date 2014-11-28

* @param[in] void *config_name 配置文件名

void *config_handle 配置文件句柄

* @return T_S32

* @retval none

*/

 

int anyka_config_destroy(char*config_name,void*config_handle);

 

 

 

/**

* @brief更新配置文件的相關值,只設置,並不保存,只寫入緩衝

*

* @author aijun

* @date 2014-11-28

* @param[in] void *config_handle 配置文件句柄

char *title 配置頭項

char *name 配置項名稱

char *value 要設置的值

* @return int

* @retval if return 0 success, otherwise failed

*/

 

int anyka_config_set_title(void*config_handle,char*title,char*name,char*value);

 

 

 

/**

* @brief得到配置文件的相關值,沒有打開文件操作,是從之前的緩衝中讀取

*

* @author aijun

* @date 2014-11-28

* @param[in] void *config_handle 配置文件句柄

char *title 配置頭項

char *name 配置項名稱

char *value 要設置的值

char *default_value 配置項的默認值,如果發現沒有,將給這個值

* @return int

* @retval if return 0 success, otherwise failed

*/

 

//int anyka_config_get_title(void *config_handle, char *title, char *name, char *value);

int anyka_config_get_title(void*config_handle,char*title,char*name,char*value,char*default_value);

 

 

 

 

/**

* @brief更新配置文件的相關值,只設置,將直接修改配置文件的相關項

*

* @author aijun

* @date 2014-11-28

* @param[in] void *config_handle 配置文件句柄

char *title 配置頭項

char *name 配置項名稱

char *value 要設置的值

* @return int

* @retval if return 0 success, otherwise failed

*/

 

int anyka_config_set_item(char*config_name,char*title,char*name,char*value);

 

 

/**

* @brief得到配置文件的相關值,是直接從文件中讀取,

*

* @author aijun

* @date 2014-11-28

* @param[in] char *config_name 配置文件名

char *title 配置頭項

char *name 配置項名稱

char *value 要設置的值

* @return int

* @retval if return 0 success, otherwise failed

*/

 

//int anyka_config_get_item(char *config_name, char *title, char *name, char *value);

int anyka_config_get_item(char*config_name,char*title,char*name,char*value,char*default_value);

 

 

void anyka_config_init_lock(void);

 

#endif

 

發佈了21 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章