Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
ClassList
Herearetheclasses,structs,unionsandinterfaceswithbriefdescriptions:arm_audio_infoAsf_audio_info_taudio_info_tcodec_para_tdec_sysinfo_tsubtitle_info_t
GeneratedonTueDec2201421:59:01foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
PublicAttributes
amcodecMyProject
arm_audio_infoStructReference
Listofallmembers.
PublicAttributes
int sample_rate audiostreamsamplerateint channels
audiostreamchannelsint format
codecformatidint bitrateint block_alignint codec_idint handle
codecdevicehandlerint extradata_size
extradatasizechar extradata[AUDIO_EXTRA_DATA_SIZE]int SessionIDint dspdec_not_supportedint droppcm_flagint automute
DetailedDescription
Definitionatline116offilecodec_type.h.
Thedocumentationforthisstructwasgeneratedfromthefollowingfile:
codec_type.h
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
PublicAttributes
amcodecMyProject
Asf_audio_info_tStructReference
Listofallmembers.
PublicAttributes
int valid audioextradatavalid(1)orinvalid(0),setbydspint sample_rate
audiostreamsamplerateint channels
audiostreamchannelsint bitrate
audiostreambitrateint codec_id
codecformatidint block_align
audioblockalignfromffmpegint extradata_size
extradatasizechar extradata[512]
DetailedDescription
Definitionatline55offilecodec_type.h.
Thedocumentationforthisstructwasgeneratedfromthefollowingfile:
codec_type.h
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
PublicAttributes
amcodecMyProject
audio_info_tStructReference
Listofallmembers.
PublicAttributes
int valid audioextradatavalid(1)orinvalid(0),setbydspint sample_rate
audiostreamsamplerateint channels
audiostreamchannelsint bitrate
audiostreambitrateint codec_id
codecformatidint block_align
audioblockalignfromffmpegint extradata_size
extradatasizechar extradata[AUDIO_EXTRA_DATA_SIZE]
DetailedDescription
Definitionatline44offilecodec_type.h.
Thedocumentationforthisstructwasgeneratedfromthefollowingfile:
codec_type.h
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
PublicAttributes
amcodecMyProject
codec_para_tStructReference
Collaborationdiagramforcodec_para_t:
[legend]
Listofallmembers.
PublicAttributes
CODEC_HANDLE handle codecdevicehandlerCODEC_HANDLE cntl_handle videocontroldevicehandlerCODEC_HANDLE sub_handle subtiledevicehandlerCODEC_HANDLE audio_utils_handle audioutilshandler
stream_type_t stream_type streamtype(es,ps,rm,ts)
unsignedint has_video:1 streamhasvideo(1)ornot(0)
unsignedint has_audio:1 streamhasaudio(1)ornot(0)
unsignedint has_sub:1 streamhassubtitle(1)ornot(0)
unsignedint noblock:1 codecdeviceisNONBLOCK(1)ornot(0)
int video_type streamvideotype(H264,VC1...)
int audio_type streamaudiotype(PCM,WMA...)
int sub_type streamsubtitletype(TXT,SSA...)
int video_pid streamvideopid
int audio_pid streamaudiopid
int sub_pid streamsubtitlepid
int audio_channels streamaudiochannelnumber
int audio_samplerate steramaudiosamplerate
int vbuf_size videobuffersizeofcodecdevice
int abuf_size audiobuffersizeofcodecdevice
dec_sysinfo_t am_sysinfo systeminformationforvideo
audio_info_t audio_info audioinformationpasstoaudiodsp
int packet_size datasizeperpacket
int avsync_threshold foradecinms>
void* adec_priv foradec>
int SessionIDint dspdec_not_supportedint switch_audio_flagint automute_flag
DetailedDescription
Definitionatline66offilecodec_type.h.
Thedocumentationforthisstructwasgeneratedfromthefollowingfile:
codec_type.h
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
PublicAttributes
amcodecMyProject
dec_sysinfo_tStructReference
Listofallmembers.
PublicAttributes
unsignedint format videoformat,suchasH264,MPEG2...
unsignedint width videosourcewidth
unsignedint height videosourceheight
unsignedint rate videosourceframeduration
unsignedint extra extradatainformationofvideostream
unsignedint status statusofvideostream
unsignedint ratio aspectratioofvideosource
void* param otherparametersforvideodecoderunsignedlonglong ratio64 aspectratioofvideosource
DetailedDescription
Definitionatline32offilecodec_type.h.
Thedocumentationforthisstructwasgeneratedfromthefollowingfile:
codec_type.h
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
PublicAttributes
amcodecMyProject
subtitle_info_tStructReference
Listofallmembers.
DetailedDescription
Definitionatline101offilecodec_type.h.
Thedocumentationforthisstructwasgeneratedfromthefollowingfile:
codec_type.h
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
ClassIndex
A|C|D|S
AAsf_audio_info_t
D Saudio_info_t
arm_audio_info C dec_sysinfo_t subtitle_info_t
codec_para_t
A|C|D|S
GeneratedonTueDec2201421:59:01foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
All Variables
a b c e f h n p r s v w
amcodecMyProject
Hereisalistofalldocumentedclassmemberswithlinkstotheclassdocumentationforeachmember:
-a-
abuf_size:codec_para_tadec_priv:codec_para_tam_sysinfo:codec_para_taudio_channels:codec_para_taudio_info:codec_para_taudio_pid:codec_para_taudio_samplerate:codec_para_taudio_type:codec_para_taudio_utils_handle:codec_para_tavsync_threshold:codec_para_t
-b-
bitrate:audio_info_t,Asf_audio_info_tblock_align:audio_info_t,Asf_audio_info_t
-c-
channels:audio_info_t,Asf_audio_info_t,arm_audio_infocntl_handle:codec_para_tcodec_id:audio_info_t,Asf_audio_info_t
-e-
extra:dec_sysinfo_textradata_size:arm_audio_info,Asf_audio_info_t,audio_info_t
-f-
format:dec_sysinfo_t,arm_audio_info
-h-
handle:codec_para_t,arm_audio_infohas_audio:codec_para_thas_sub:codec_para_thas_video:codec_para_theight:dec_sysinfo_t
-n-
noblock:codec_para_t
-p-
packet_size:codec_para_tparam:dec_sysinfo_t
-r-
rate:dec_sysinfo_tratio:dec_sysinfo_tratio64:dec_sysinfo_t
-s-
sample_rate:audio_info_t,Asf_audio_info_t,arm_audio_infostatus:dec_sysinfo_tstream_type:codec_para_tsub_handle:codec_para_tsub_pid:codec_para_tsub_type:codec_para_t
-v-
valid:audio_info_t,Asf_audio_info_tvbuf_size:codec_para_tvideo_pid:codec_para_tvideo_type:codec_para_t
-w-
width:dec_sysinfo_t
GeneratedonTueDec2201421:59:01foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
All Variables
a b c e f h n p r s v w
amcodecMyProject
-a-
abuf_size:codec_para_tadec_priv:codec_para_tam_sysinfo:codec_para_taudio_channels:codec_para_taudio_info:codec_para_taudio_pid:codec_para_taudio_samplerate:codec_para_taudio_type:codec_para_taudio_utils_handle:codec_para_tavsync_threshold:codec_para_t
-b-
bitrate:audio_info_t,Asf_audio_info_tblock_align:audio_info_t,Asf_audio_info_t
-c-
channels:audio_info_t,Asf_audio_info_t,arm_audio_infocntl_handle:codec_para_tcodec_id:audio_info_t,Asf_audio_info_t
-e-
extra:dec_sysinfo_t
extradata_size:arm_audio_info,Asf_audio_info_t,audio_info_t
-f-
format:dec_sysinfo_t,arm_audio_info
-h-
handle:codec_para_t,arm_audio_infohas_audio:codec_para_thas_sub:codec_para_thas_video:codec_para_theight:dec_sysinfo_t
-n-
noblock:codec_para_t
-p-
packet_size:codec_para_tparam:dec_sysinfo_t
-r-
rate:dec_sysinfo_tratio:dec_sysinfo_tratio64:dec_sysinfo_t
-s-
sample_rate:audio_info_t,Asf_audio_info_t,arm_audio_infostatus:dec_sysinfo_tstream_type:codec_para_tsub_handle:codec_para_tsub_pid:codec_para_tsub_type:codec_para_t
-v-
valid:audio_info_t,Asf_audio_info_tvbuf_size:codec_para_tvideo_pid:codec_para_tvideo_type:codec_para_t
-w-
width:dec_sysinfo_t
GeneratedonTueDec2201421:59:01foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
FileList
Hereisalistofalldocumentedfileswithbriefdescriptions:audio_priv.h[code] Funtionprototypesofaudiolibcodec.h[code] Functionprototypesofcodeclibcodec_ctrl.c[code] Codeccontrollibfunctionscodec_error.h[code] Codecerrortypedefinitionscodec_msg.h[code] Functionprototypeofcodecerrorcodec_type.h[code] Definitionsofcodectypeandstructures
GeneratedonTueDec2201421:59:02foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
Functions
amcodecMyProject
audio_priv.hFileReference
Funtionprototypesofaudiolib.More...
Thisgraphshowswhichfilesdirectlyorindirectlyincludethisfile:
Gotothesourcecodeofthisfile.
Functions
void audio_start(void**priv,codec_para_t*pcodec)void audio_stop(void**priv)void audio_pause(void*priv)void audio_resume(void*priv)
DetailedDescription
Funtionprototypesofaudiolib.
Author:ZhangChen<[email protected]>
Version:1.0.0
Date:2011-02-24
Definitioninfileaudio_priv.h.
GeneratedonTueDec2201421:58:54foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
Functions
amcodecMyProject
codec.hFileReference
Functionprototypesofcodeclib.More...
#include<codec_type.h>#include<codec_error.h>
Includedependencygraphforcodec.h:
Thisgraphshowswhichfilesdirectlyorindirectlyincludethisfile:
Gotothesourcecodeofthisfile.
Functions
int codec_init(codec_para_t*)
codec_initInitializethecodecdevicebasedonstreamtype
int codec_close(codec_para_t*) codec_closeClosecodecdevice
void codec_close_audio_async(codec_para_t*pcodec) codec_close_audioCloseaudiodecoder
void codec_audio_basic_init(void)void codec_close_audio(codec_para_t*)
codec_close_audioCloseaudiodecodervoid codec_resume_audio(codec_para_t*,unsignedint)
codec_resume_audioResumeaudiodecodertowork(etc,afterpause)
int codec_reset(codec_para_t*) codec_resetResetcodecdevice
int codec_init_sub(codec_para_t*) codec_init_subInitializesubtilecodecdevice
int codec_open_sub_read(void)
codec_open_sub_readOpenread_subtitledevicewhichisspecialforreadsubtiledata
int codec_close_sub(codec_para_t*) codec_close_subClosesubtiledevice
int codec_close_sub_fd(CODEC_HANDLE) codec_close_sub_fdClosesubtiledevicebyfd
int codec_reset_subtile(codec_para_t*pcodec)
codec_reset_subtileResetsubtitledevice,especiallyforsubtitleswith
int codec_poll_sub(codec_para_t*) codec_poll_subPollingsubtiledeviceifsubtitledatais
ready
int codec_poll_sub_fd(CODEC_HANDLE,int)
codec_poll_sub_fdPollingsubtiledeviceifsubtitledataisreadybyfd
int codec_get_sub_size(codec_para_t*)
codec_get_sub_sizeGetthesizeofsubtitledatawhichisready
int codec_get_sub_size_fd(CODEC_HANDLE)
codec_get_sub_size_fdGetthesizeofsubtitledatawhichisreadybyfd
int codec_read_sub_data(codec_para_t*,char*,unsignedint)
codec_read_sub_dataReadsubtitledatafromcodecdevice
int codec_read_sub_data_fd(CODEC_HANDLE,char*,unsignedint)
codec_read_sub_data_fdReadsubtitledatafromcodecdevicebyfd
int codec_write_sub_data(codec_para_t*,char*,unsignedint)
codec_write_sub_dataWritesubtiledatatosubtitledevice
int codec_init_cntl(codec_para_t*) codec_init_cntlInitializethevideocontroldevice
int codec_close_cntl(codec_para_t*) codec_close_cntlClosevideocontroldevice
int codec_poll_cntl(codec_para_t*) codec_poll_cntlPollingvideocontroldevice
int codec_get_cntl_state(codec_para_t*)
codec_get_cntl_stateGetthestatusofvideocontroldevice,especiallyfortrickmode
int codec_get_cntl_vpts(codec_para_t*pcodec) codec_get_cntl_vptsGetthevptsintrickmode
intcodec_set_cntl_mode(codec_para_t*,unsignedint)
codec_set_cntl_modeSetthemodetovideocontroldevice,especiallyfortrickmode
int codec_set_mode(codec_para_t*,unsignedint)
int codec_set_cntl_avthresh(codec_para_t*,unsignedint)
codec_set_cntl_avthreshSettheAVsyncthresholdwhichdefinesthemaxtimedifferencebetweenA/V
int codec_set_cntl_syncthresh(codec_para_t*pcodec,unsignedintsyncthresh)
codec_set_cntl_syncthreshSetsyncthresholdcontrolwhichdefinesthestartingsystemtime(holdvideoornot)whenplaying
int codec_reset_audio(codec_para_t*pcodec)
codec_reset_audioResetaudiodecoder,especiallyforaudioswitch
int codec_set_audio_pid(codec_para_t*pcodec) codec_set_audio_idSetaudiopidbycodecdevice
int codec_set_sub_id(codec_para_t*pcodec) codec_set_sub_idSetsubtitlepidbycodecdevice
int codec_set_sub_type(codec_para_t*pcodec) codec_set_sub_typeSetsubtitletypebycodecdevice
int codec_audio_reinit(codec_para_t*pcodec) codec_audio_reinitRe-initializeaudiocodec
int codec_set_dec_reset(codec_para_t*pcodec)
codec_set_dec_resetSetdecoderresetflagwhenreset
int codec_write(codec_para_t*pcodec,void*buffer,intlen) codec_writeWritedatatocodecdevice
int codec_checkin_pts(codec_para_t*pcodec,unsignedlongpts) codec_checkin_ptsCheckinptstocodecdevice
intcodec_get_vbuf_state(codec_para_t*,structbuf_status*)
codec_get_vbuf_stateGetthestateofvideobufferbycodecdevice
int codec_get_abuf_state(codec_para_t*,structbuf_status*)
codec_get_abuf_stateGetthestateofaudiobufferbycodecdevice
int codec_get_vdec_state(codec_para_t*,structvdec_status*)
codec_get_vdec_stateGetthestateofvideodecoderbycodecdevice
int codec_get_adec_state(codec_para_t*,structadec_status*)
codec_get_adec_stateGetthestateofaudiodecoderbycodecdevice
int codec_pause(codec_para_t*) codec_pausePauseallplaying(A/V)bycodecdevice
int codec_resume(codec_para_t*) codec_resumeResumeplaying(A/V)bycodecdevice
int codec_audio_search(codec_para_t*p)int codec_set_mute(codec_para_t*p,intmute)
int codec_get_volume_range(codec_para_t*,int*min,int*max)
int codec_set_volume(codec_para_t*,floatval)int codec_get_volume(codec_para_t*,float*val)
int codec_set_lrvolume(codec_para_t*,floatlvol,floatrvol)
int codec_get_lrvolume(codec_para_t*,float*lvol,float*rvol)
int codec_get_mutesta(codec_para_t*)int codec_set_volume_balance(codec_para_t*,int)int codec_swap_left_right(codec_para_t*)int codec_left_mono(codec_para_t*p)int codec_right_mono(codec_para_t*p)
int codec_stereo(codec_para_t*p)
int codec_lr_mix_set(codec_para_t*p,intenable)
int codec_get_soundtrack(codec_para_t*p,int*strack)int codec_audio_automute(void*priv,intauto_mute)
int codec_audio_spectrum_switch(codec_para_t*p,intisStart,intinterval)
int codec_audio_isready(codec_para_t*p) codec_audio_isreadycheckaudiofinishinitok
int codec_audio_get_nb_frames(codec_para_t*p)
codec_audio_get_nb_framesgetaudiodspdecodedframenumber
int codec_audio_set_audioinfo(codec_para_t*p)
int codec_pcmpara_Applied_get(codec_para_t*p,int*pfs,int*pch)
int codec_get_apts(codec_para_t*pcodec) codec_get_aptsgetaudiopts
int codec_get_vpts(codec_para_t*pcodec) codec_get_vptsgetvideopts
int codec_get_pcrscr(codec_para_t*pcodec) codec_get_pcrscrgetsystempcrscr
int codec_set_pcrscr(codec_para_t*pcodec,intval) codec_set_pcrscrsetsystempcrscr
int codec_set_syncenable(codec_para_t*pcodec,intenable) codec_set_syncenableenableordisableavsync
int codec_set_sync_audio_discont(codec_para_t*pcodec,intdiscontinue)
codec_set_sync_audio_discontsetsyncdiscontinuestate
int codec_get_sync_audio_discont(codec_para_t*pcodec)
codec_get_sync_audio_discontgetaudiosyncdiscontinuestate
intcodec_set_sync_video_discont(codec_para_t
*pcodec,intdiscontinue)
codec_set_sync_video_discontsetsyncdiscontinuestate
int codec_get_sync_video_discont(codec_para_t*pcodec)
codec_get_sync_video_discontgetvideosyncdiscontinuestate
unsignedlong codec_get_sync_audio_discont_diff(codec_para_t*pcodec)
codec_get_sync_audio_discont_diffgetaudiosyncdiscontinuestate
unsignedlong codec_get_sync_video_discont_diff(codec_para_t*pcodec)
codec_get_sync_video_discont_diffgetaudiosyncdiscontinuestate
int codec_set_sync_audio_discont_diff(codec_para_t*pcodec,unsignedlongdiscontinue_diff)
codec_set_sync_audio_discont_diffsetsyncdiscontinuediff
int codec_set_sync_video_discont_diff(codec_para_t*pcodec,unsignedlongdiscontinue_diff)
codec_set_sync_video_discont_diffsetsyncdiscontinuediff
int codec_get_sub_num(codec_para_t*pcodec) codec_get_sub_numgetthenumberofsubtitle
int codec_get_sub_info(codec_para_t*pcodec,subtitle_info_t*sub_info) codec_get_sub_infogetsubtitleinformation
int codec_set_av_threshold(codec_para_t*pcodec,intthreshold)int codec_get_freerun_mode(codec_para_t*pcodec)
codec_get_freerun_modeGetthemodeofvideofreerun
int codec_set_freerun_mode(codec_para_t*pcodec,
unsignedintmode)
codec_set_freerun_modeSetthemodetovideofreerun
int codec_init_audio_utils(codec_para_t*pcodec) codec_init_audio_utilsInitializetheaudioutilsdevice
int codec_release_audio_utils(codec_para_t*pcodec)
codec_release_audio_utilsReleasetheaudioutilsdevice
int codec_set_audio_resample_ena(codec_para_t*pcodec,unsignedlongmode)
codec_set_audio_resample_enaSetaudioresample
int codec_get_audio_resample_ena(codec_para_t*pcodec)
codec_set_audio_resample_enaSetaudioresampleenable
int codec_set_audio_resample_type(codec_para_t*pcodec,unsignedlongtype)
codec_set_audio_resample_typeSetaudioresampletype
int codec_set_video_delay_limited_ms(codec_para_t*pcodec,intdelay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_get_video_delay_limited_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_set_audio_delay_limited_ms(codec_para_t*pcodec,intdelay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_get_audio_delay_limited_ms(codec_para_t*pcodec,int*delay_ms)codec_get_audio_delay_limited_msgetvideobuffer
maxdelayed,if>settings,writemaywait&again,
int codec_get_audio_cur_delay_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_audio_cur_delay_msgetcurrentaudiodelayms
int codec_get_video_cur_delay_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_video_cur_delay_msgetvideocurrentdelayms
int codec_get_video_cur_bitrate(codec_para_t*pcodec,int*bitrate)
codec_get_audio_cur_delay_msgetvidolatestbitrate.
int codec_get_audio_cur_bitrate(codec_para_t*pcodec,int*bitrate) codec_get_audio_cur_bitrategetaudiolatestbitrate.
int codec_set_vsync_upint(codec_para_t*pcodec,unsignedintmode) codec_set_vsync_upintSetthemodetovideofreerun
int codec_get_last_checkout_apts(codec_para_t*pcodec,unsignedlong*apts)
int codec_get_last_checkin_apts(codec_para_t*pcodec,unsignedlong*apts)
int codec_disalbe_slowsync(codec_para_t*pcodec,intdisable_slowsync)
codec_disalbe_slowsyncSettheslowsyncdisableorenable
DetailedDescription
Functionprototypesofcodeclib.
Author:ZhangChen<[email protected]>
Version:1.0.0
Date:2011-02-24
Definitioninfilecodec.h.
FunctionDocumentation
intcodec_audio_get_nb_frames ( codec_para_t* p )
codec_audio_get_nb_framesgetaudiodspdecodedframenumber
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:ndecodedframesnumber,orreturn0
Definitionatline1641offilecodec_ctrl.c.
intcodec_audio_isready ( codec_para_t* p )
codec_audio_isreadycheckaudiofinishinitok
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:1forready,ornotreadyif=0
Definitionatline1618offilecodec_ctrl.c.
intcodec_audio_reinit ( codec_para_t* pcodec )
codec_audio_reinitRe-initializeaudiocodec
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:
0forsuccess,orfailtypeif<0
Definitionatline1585offilecodec_ctrl.c.
intcodec_checkin_pts ( codec_para_t* pcodec,unsignedlong pts)
codec_checkin_ptsCheckinptstocodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] pts Ptstobecheckedin
Returns:0forsuccess,orfailtype
Definitionatline900offilecodec_ctrl.c.
intcodec_close ( codec_para_t* pcodec )
codec_closeClosecodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline782offilecodec_ctrl.c.
Referencedbycodec_reset().
Hereisthecallgraphforthisfunction:
voidcodec_close_audio ( codec_para_t* pcodec )
codec_close_audioCloseaudiodecoder
Parameters:[in] pcodec Pointerofcodecparameterstructure
Definitionatline808offilecodec_ctrl.c.
voidcodec_close_audio_async ( codec_para_t* pcodec )
codec_close_audioCloseaudiodecoder
Parameters:[in] pcodec Pointerofcodecparameterstructure
Definitionatline824offilecodec_ctrl.c.
intcodec_close_cntl ( codec_para_t* pcodec )
codec_close_cntlClosevideocontroldevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1394offilecodec_ctrl.c.
Referencedbycodec_close().
intcodec_close_sub ( codec_para_t* pcodec )
codec_close_subClosesubtiledevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1143offilecodec_ctrl.c.
intcodec_close_sub_fd ( CODEC_HANDLE sub_fd )
codec_close_sub_fdClosesubtiledevicebyfd
Parameters:[in] sub_fd subtiledevicefd
Returns:0forsuccess,orfailtypeif<0
Definitionatline1164offilecodec_ctrl.c.
Referencedbycodec_close().
intcodec_disalbe_slowsync ( codec_para_t* pcodec,int disable_slowsync)
codec_disalbe_slowsyncSettheslowsyncdisableorenable
Parameters:[in] pcodec Pointerofcodecparameter
structure[in] disalbe_slowsync disableslowsyncornot
Returns:0orfailerrortype
Definitionatline2352offilecodec_ctrl.c.
intcodec_get_abuf_state ( codec_para_t* p,structbuf_status* buf)
codec_get_abuf_stateGetthestateofaudiobufferbycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure[out] buf Pointerofbufferstatusstructuretogetaudio
bufferstate
Returns:Successorfailtype
Definitionatline934offilecodec_ctrl.c.
intcodec_get_adec_state ( codec_para_t* p,structadec_status* adec)
codec_get_adec_stateGetthestateofaudiodecoderbycodecdevice
Parameters:
[in] p Pointerofcodecparameterstructure[out] adec Pointerofaudiodecoderstatusstructure
Returns:Successorfailtype
Definitionatline975offilecodec_ctrl.c.
intcodec_get_apts ( codec_para_t* pcodec )
codec_get_aptsgetaudiopts
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:audiopts,or-1ifitfailed
Definitionatline1665offilecodec_ctrl.c.
intcodec_get_audio_cur_bitrate ( codec_para_t* pcodec,int* bitrate)
codec_get_audio_cur_bitrategetaudiolatestbitrate.
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2255offilecodec_ctrl.c.
intcodec_get_audio_cur_delay_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_audio_cur_delay_msgetcurrentaudiodelayms
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2196offilecodec_ctrl.c.
intcodec_get_audio_delay_limited_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_audio_delay_limited_msgetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2182offilecodec_ctrl.c.
intcodec_get_audio_resample_ena ( codec_para_t* pcodec )
codec_set_audio_resample_enaSetaudioresampleenable
Parameters:
[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2105offilecodec_ctrl.c.
intcodec_get_cntl_state ( codec_para_t* pcodec )
codec_get_cntl_stateGetthestatusofvideocontroldevice,especiallyfortrickmode
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Videocontroldevicestatusorfailerrortype
Definitionatline1439offilecodec_ctrl.c.
intcodec_get_cntl_vpts ( codec_para_t* pcodec )
codec_get_cntl_vptsGetthevptsintrickmode
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Videoptsorfailerrortype
Definitionatline2325offilecodec_ctrl.c.
intcodec_get_freerun_mode ( codec_para_t* pcodec )
codec_get_freerun_modeGetthemodeofvideofreerun
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Videofreerunmodeorfailerrortype
Definitionatline2005offilecodec_ctrl.c.
intcodec_get_pcrscr ( codec_para_t* pcodec )
codec_get_pcrscrgetsystempcrscr
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:systempcrscr,or-1itfailed
Definitionatline1721offilecodec_ctrl.c.
intcodec_get_sub_info ( codec_para_t* pcodec,subtitle_info_t* sub_info)
codec_get_sub_infogetsubtitleinformation
Parameters:[in] pcodec Pointerofcodecparameterstructure[out] sub_info Pointerofsubtitle_info_ttosavethe
subtitleinformation
Returns:
0forsuccess,orfailtypeif<0
Definitionatline1959offilecodec_ctrl.c.
intcodec_get_sub_num ( codec_para_t* pcodec )
codec_get_sub_numgetthenumberofsubtitle
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:thenumberofsubtitle,orfailif<0
Definitionatline1937offilecodec_ctrl.c.
intcodec_get_sub_size ( codec_para_t* pcodec )
codec_get_sub_sizeGetthesizeofsubtitledatawhichisready
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Subtilereadydatasize,orfailerrortypeif<0
Definitionatline1230offilecodec_ctrl.c.
intcodec_get_sub_size_fd ( CODEC_HANDLE sub_fd )
codec_get_sub_size_fdGetthesizeofsubtitledatawhichisreadybyfd
Parameters:
[in] sub_fd Subtitledevicefd
Returns:Subtilereadydatasize,orfailerrortypeif<0
Definitionatline1256offilecodec_ctrl.c.
intcodec_get_sync_audio_discont ( codec_para_t* pcodec )
codec_get_sync_audio_discontgetaudiosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuestate,orfailif<0
Definitionatline1823offilecodec_ctrl.c.
unsignedlongcodec_get_sync_audio_discont_diff ( codec_para_t*
codec_get_sync_audio_discont_diffgetaudiosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuediff,orfailif<0
Definitionatline1865offilecodec_ctrl.c.
intcodec_get_sync_video_discont ( codec_para_t* pcodec )
codec_get_sync_video_discontgetvideosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuestate,orfailif<0
Definitionatline1844offilecodec_ctrl.c.
unsignedlongcodec_get_sync_video_discont_diff ( codec_para_t*
codec_get_sync_video_discont_diffgetaudiosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuediff,orfailif<0
Definitionatline1886offilecodec_ctrl.c.
intcodec_get_vbuf_state ( codec_para_t* p,structbuf_status* buf)
codec_get_vbuf_stateGetthestateofvideobufferbycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure[out] buf Pointerofbufferstatusstructuretogetvideobuffer
state
Returns:Successorfailtype
Definitionatline916offilecodec_ctrl.c.
intcodec_get_vdec_state ( codec_para_t* p,structvdec_status* vdec)
codec_get_vdec_stateGetthestateofvideodecoderbycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure[out] vdec Pointerofvideodecoderstatusstructure
Returns:Successorfailtype
Definitionatline953offilecodec_ctrl.c.
intcodec_get_video_cur_bitrate ( codec_para_t* pcodec,int* bitrate)
codec_get_audio_cur_delay_msgetvidolatestbitrate.
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2240offilecodec_ctrl.c.
intcodec_get_video_cur_delay_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_video_cur_delay_msgetvideocurrentdelayms
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2226offilecodec_ctrl.c.
intcodec_get_video_delay_limited_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2153offilecodec_ctrl.c.
intcodec_get_vpts ( codec_para_t* pcodec )
codec_get_vptsgetvideopts
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:videopts,or-1ifitfailed
Definitionatline1693offilecodec_ctrl.c.
intcodec_init ( codec_para_t* pcodec )
codec_initInitializethecodecdevicebasedonstreamtype
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline640offilecodec_ctrl.c.
Referencedbycodec_reset().
Hereisthecallgraphforthisfunction:
intcodec_init_audio_utils ( codec_para_t* pcodec )
codec_init_audio_utilsInitializetheaudioutilsdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2046offilecodec_ctrl.c.
intcodec_init_cntl ( codec_para_t* pcodec )
codec_init_cntlInitializethevideocontroldevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1369offilecodec_ctrl.c.
Referencedbycodec_init().
intcodec_init_sub ( codec_para_t* pcodec )
codec_init_subInitializesubtilecodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1099offilecodec_ctrl.c.
intcodec_open_sub_read ( void )
codec_open_sub_readOpenread_subtitledevicewhichisspecialforreadsubtiledata
Returns:Devicehandler,orerrortypeif<0
Definitionatline1121offilecodec_ctrl.c.
intcodec_pause ( codec_para_t* p )
codec_pausePauseallplaying(A/V)bycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1027offilecodec_ctrl.c.
intcodec_poll_cntl ( codec_para_t* pcodec )
codec_poll_cntlPollingvideocontroldevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Pollingresults
Definitionatline1416offilecodec_ctrl.c.
intcodec_poll_sub ( codec_para_t* pcodec )
codec_poll_subPollingsubtiledeviceifsubtitledataisready
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Pollingresult
Definitionatline1183offilecodec_ctrl.c.
intcodec_poll_sub_fd ( CODEC_HANDLE sub_fd,int timeout
)
codec_poll_sub_fdPollingsubtiledeviceifsubtitledataisreadybyfd
Parameters:[in] sub_fd Subtitledevicefd[in] timeout Timeoutforpolling
Returns:Pollingresult
Definitionatline1207offilecodec_ctrl.c.
intcodec_read_sub_data ( codec_para_t* pcodec,char* buf,unsignedint length)
codec_read_sub_dataReadsubtitledatafromcodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[out] buf Bufferfordatareadfromsubtitlecodecdevice[in] length Datalengthtobereadfromsubtitlecodec
device
Returns:0forsuccess,orfailtypeif<0
Definitionatline1284offilecodec_ctrl.c.
intcodec_read_sub_data_fd ( CODEC_HANDLE sub_fd,char* buf,unsignedint length
)
codec_read_sub_data_fdReadsubtitledatafromcodecdevicebyfd
Parameters:[in] sub_fd Subtitledevicefd[out] buf Bufferfordatareadfromsubtitlecodecdevice[in] length Datalengthtobereadfromsubtilecodec
device
Returns:0forsuccess,orfailtypeif<0
Definitionatline1317offilecodec_ctrl.c.
intcodec_release_audio_utils ( codec_para_t* pcodec )
codec_release_audio_utilsReleasetheaudioutilsdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2070offilecodec_ctrl.c.
intcodec_reset ( codec_para_t* p )
codec_resetResetcodecdevice
Parameters:[in] p Pointerofcodecparameterstructure
Returns:
Successorfailerrortype
Definitionatline1078offilecodec_ctrl.c.
Hereisthecallgraphforthisfunction:
intcodec_reset_audio ( codec_para_t* pcodec )
codec_reset_audioResetaudiodecoder,especiallyforaudioswitch
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1515offilecodec_ctrl.c.
intcodec_reset_subtile ( codec_para_t* pcodec )
codec_reset_subtileResetsubtitledevice,especiallyforsubtitleswith
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1529offilecodec_ctrl.c.
intcodec_resume ( codec_para_t* p )
codec_resumeResumeplaying(A/V)bycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1052offilecodec_ctrl.c.
voidcodec_resume_audio ( codec_para_t* pcodec,unsignedint orig)
codec_resume_audioResumeaudiodecodertowork(etc,afterpause)
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] orig Originalaudiostatus(hasaudioornot)
Definitionatline839offilecodec_ctrl.c.
intcodec_set_audio_delay_limited_ms ( codec_para_t* pcodec,int delay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2168offilecodec_ctrl.c.
intcodec_set_audio_pid ( codec_para_t* pcodec )
codec_set_audio_idSetaudiopidbycodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1543offilecodec_ctrl.c.
intcodec_set_audio_resample_ena ( codec_para_t* pcodec,unsignedlong mode)
codec_set_audio_resample_enaSetaudioresample
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2091offilecodec_ctrl.c.
intcodec_set_audio_resample_type ( codec_para_t* pcodec,unsignedlong type)
codec_set_audio_resample_typeSetaudioresampletype
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2126offilecodec_ctrl.c.
intcodec_set_cntl_avthresh ( codec_para_t* pcodec,unsignedint avthresh)
codec_set_cntl_avthreshSettheAVsyncthresholdwhichdefinesthemaxtimedifferencebetweenA/V
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] avthresh Thresholdtobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1485offilecodec_ctrl.c.
intcodec_set_cntl_mode ( codec_para_t* pcodec,unsignedint mode)
codec_set_cntl_modeSetthemodetovideocontroldevice,especiallyfortrickmode
Parameters:[in] pcodec Pointerofcodecparameterstructure
[in] mode Trickmodetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1466offilecodec_ctrl.c.
intcodec_set_cntl_syncthresh ( codec_para_t* pcodec,unsignedint syncthresh)
codec_set_cntl_syncthreshSetsyncthresholdcontrolwhichdefinesthestartingsystemtime(holdvideoornot)whenplaying
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] syncthresh Syncthresholdcontrol
Returns:0forsuccess,orfailtypeif<0
Definitionatline1501offilecodec_ctrl.c.
intcodec_set_dec_reset ( codec_para_t* pcodec )
codec_set_dec_resetSetdecoderresetflagwhenreset
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1604offilecodec_ctrl.c.
intcodec_set_freerun_mode ( codec_para_t* pcodec,unsignedint mode)
codec_set_freerun_modeSetthemodetovideofreerun
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] mode Freerunmodetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline2032offilecodec_ctrl.c.
intcodec_set_pcrscr ( codec_para_t* pcodec,int val)
codec_set_pcrscrsetsystempcrscr
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] val systempcrscrvalue
Returns:0issuccess,or-1failed.
Definitionatline1750offilecodec_ctrl.c.
intcodec_set_sub_id ( codec_para_t* pcodec )
codec_set_sub_idSetsubtitlepidbycodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1557offilecodec_ctrl.c.
intcodec_set_sub_type ( codec_para_t* pcodec )
codec_set_sub_typeSetsubtitletypebycodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1571offilecodec_ctrl.c.
intcodec_set_sync_audio_discont ( codec_para_t* pcodec,int discontinue)
codec_set_sync_audio_discontsetsyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue Discontinuestatetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1794offilecodec_ctrl.c.
intcodec_set_sync_audio_discont_diff ( codec_para_t* pcodec,unsignedlong discontinue_diff)
codec_set_sync_audio_discont_diffsetsyncdiscontinuediff
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue_diff Discontinuedifftobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1908offilecodec_ctrl.c.
intcodec_set_sync_video_discont ( codec_para_t* pcodec,int discontinue)
codec_set_sync_video_discontsetsyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue Discontinuestatetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1809offilecodec_ctrl.c.
intcodec_set_sync_video_discont_diff ( codec_para_t* pcodec,unsignedlong discontinue_diff)
codec_set_sync_video_discont_diffsetsyncdiscontinuediff
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue_diff Discontinuedifftobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1923offilecodec_ctrl.c.
intcodec_set_syncenable ( codec_para_t* pcodec,int enable)
codec_set_syncenableenableordisableavsync
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] enable Enableordisabletobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1779offilecodec_ctrl.c.
intcodec_set_video_delay_limited_ms ( codec_para_t* pcodec,int delay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:
[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2140offilecodec_ctrl.c.
intcodec_set_vsync_upint ( codec_para_t* pcodec,unsignedint mode)
codec_set_vsync_upintSetthemodetovideofreerun
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] mode vsyncupintmodetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline2270offilecodec_ctrl.c.
intcodec_write ( codec_para_t* pcodec,void* buffer,int len)
codec_writeWritedatatocodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] buffer Bufferfordatatobewritten[in] len Lengthofthedatatobewritten
Returns:Lengthofthewrittendata,orfailif<0
Definitionatline752offilecodec_ctrl.c.
intcodec_write_sub_data ( codec_para_t* pcodec,char* buf,unsignedint length)
codec_write_sub_dataWritesubtiledatatosubtitledevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] buf Bufferfordatatobewritten[in] length Lengthofthedattobewritten
Returns:Writelength,orfailtypeif<0
Definitionatline1350offilecodec_ctrl.c.
GeneratedonTueDec2201421:58:55foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
Defines|Functions
amcodecMyProject
codec_ctrl.cFileReference
Codeccontrollibfunctions.More...
#include<stdio.h>#include<string.h>#include<sys/types.h>
#include<sys/stat.h>
#include<sys/poll.h>
#include<errno.h>
#include<sys/ioctl.h>
#include<fcntl.h>
#include<codec_error.h>
#include<codec_type.h>
#include<codec.h>
#include<audio_priv.h>
#include"codec_h_ctrl.h"
#include<adec-external-ctrl.h>
Includedependencygraphforcodec_ctrl.c:
Gotothesourcecodeofthisfile.
Functions
int codec_init(codec_para_t*pcodec)
codec_initInitializethecodecdevicebasedonstreamtype
void codec_audio_basic_init(void)
int codec_write(codec_para_t*pcodec,void*buffer,intlen) codec_writeWritedatatocodecdevice
int codec_read(codec_para_t*pcodec,void*buffer,intlen) codec_readReaddatafromcodecdevice
int codec_close(codec_para_t*pcodec) codec_closeClosecodecdevice
void codec_close_audio(codec_para_t*pcodec) codec_close_audioCloseaudiodecoder
void codec_close_audio_async(codec_para_t*pcodec) codec_close_audioCloseaudiodecoder
void codec_resume_audio(codec_para_t*pcodec,unsignedintorig)
codec_resume_audioResumeaudiodecodertowork(etc,afterpause)
int codec_checkin_pts(codec_para_t*pcodec,unsignedlongpts) codec_checkin_ptsCheckinptstocodecdevice
int codec_get_vbuf_state(codec_para_t*p,structbuf_status*buf)
codec_get_vbuf_stateGetthestateofvideobufferbycodecdevice
int codec_get_abuf_state(codec_para_t*p,structbuf_status*buf)
codec_get_abuf_stateGetthestateofaudiobufferbycodecdevice
int codec_get_vdec_state(codec_para_t*p,structvdec_status*vdec)
codec_get_vdec_stateGetthestateofvideodecoderbycodecdevice
int codec_get_adec_state(codec_para_t*p,structadec_status*adec)
codec_get_adec_stateGetthestateofaudiodecoderbycodecdevice
int codec_pause(codec_para_t*p) codec_pausePauseallplaying(A/V)bycodecdevice
int codec_resume(codec_para_t*p) codec_resumeResumeplaying(A/V)bycodecdevice
int codec_reset(codec_para_t*p) codec_resetResetcodecdevice
int codec_init_sub(codec_para_t*pcodec) codec_init_subInitializesubtilecodecdevice
int codec_open_sub_read(void)
codec_open_sub_readOpenread_subtitledevicewhichisspecialforreadsubtiledata
int codec_close_sub(codec_para_t*pcodec) codec_close_subClosesubtiledevice
int codec_close_sub_fd(CODEC_HANDLEsub_fd) codec_close_sub_fdClosesubtiledevicebyfd
int codec_poll_sub(codec_para_t*pcodec)
codec_poll_subPollingsubtiledeviceifsubtitledataisready
int codec_poll_sub_fd(CODEC_HANDLEsub_fd,inttimeout)
codec_poll_sub_fdPollingsubtiledeviceifsubtitledataisreadybyfd
int codec_get_sub_size(codec_para_t*pcodec) codec_get_sub_sizeGetthesizeofsubtitledata
whichisready
int codec_get_sub_size_fd(CODEC_HANDLEsub_fd)
codec_get_sub_size_fdGetthesizeofsubtitledatawhichisreadybyfd
int codec_read_sub_data(codec_para_t*pcodec,char*buf,unsignedintlength)
codec_read_sub_dataReadsubtitledatafromcodecdevice
int codec_read_sub_data_fd(CODEC_HANDLEsub_fd,char*buf,unsignedintlength)
codec_read_sub_data_fdReadsubtitledatafromcodecdevicebyfd
int codec_write_sub_data(codec_para_t*pcodec,char*buf,unsignedintlength)
codec_write_sub_dataWritesubtiledatatosubtitledevice
int codec_init_cntl(codec_para_t*pcodec) codec_init_cntlInitializethevideocontroldevice
int codec_close_cntl(codec_para_t*pcodec) codec_close_cntlClosevideocontroldevice
int codec_poll_cntl(codec_para_t*pcodec) codec_poll_cntlPollingvideocontroldevice
int codec_get_cntl_state(codec_para_t*pcodec)
codec_get_cntl_stateGetthestatusofvideocontroldevice,especiallyfortrickmode
int codec_set_cntl_mode(codec_para_t*pcodec,unsignedintmode)
codec_set_cntl_modeSetthemodetovideocontroldevice,especiallyfortrickmode
int codec_set_mode(codec_para_t*pcodec,unsignedintmode)
int codec_set_cntl_avthresh(codec_para_t*pcodec,unsignedintavthresh)
codec_set_cntl_avthreshSettheAVsyncthresholdwhichdefinesthemaxtimedifferencebetweenA/V
int codec_set_cntl_syncthresh(codec_para_t*pcodec,unsignedintsyncthresh)
codec_set_cntl_syncthreshSetsyncthresholdcontrolwhichdefinesthestartingsystemtime(holdvideoornot)whenplaying
int codec_reset_audio(codec_para_t*pcodec)
codec_reset_audioResetaudiodecoder,especiallyforaudioswitch
int codec_reset_subtile(codec_para_t*pcodec)
codec_reset_subtileResetsubtitledevice,especiallyforsubtitleswith
int codec_set_audio_pid(codec_para_t*pcodec) codec_set_audio_idSetaudiopidbycodecdevice
int codec_set_sub_id(codec_para_t*pcodec) codec_set_sub_idSetsubtitlepidbycodecdevice
int codec_set_sub_type(codec_para_t*pcodec) codec_set_sub_typeSetsubtitletypebycodecdevice
int codec_audio_reinit(codec_para_t*pcodec) codec_audio_reinitRe-initializeaudiocodec
int codec_set_dec_reset(codec_para_t*pcodec)
codec_set_dec_resetSetdecoderresetflagwhenreset
int codec_audio_isready(codec_para_t*p) codec_audio_isreadycheckaudiofinishinitok
int codec_audio_get_nb_frames(codec_para_t*p)
codec_audio_get_nb_framesgetaudiodspdecodedframenumber
int codec_get_apts(codec_para_t*pcodec) codec_get_aptsgetaudiopts
int codec_get_vpts(codec_para_t*pcodec) codec_get_vptsgetvideopts
int codec_get_pcrscr(codec_para_t*pcodec) codec_get_pcrscrgetsystempcrscr
int codec_set_pcrscr(codec_para_t*pcodec,intval)
codec_set_pcrscrsetsystempcrscr
int codec_set_syncenable(codec_para_t*pcodec,intenable) codec_set_syncenableenableordisableavsync
int codec_set_sync_audio_discont(codec_para_t*pcodec,intdiscontinue)
codec_set_sync_audio_discontsetsyncdiscontinuestate
int codec_set_sync_video_discont(codec_para_t*pcodec,intdiscontinue)
codec_set_sync_video_discontsetsyncdiscontinuestate
int codec_get_sync_audio_discont(codec_para_t*pcodec)
codec_get_sync_audio_discontgetaudiosyncdiscontinuestate
int codec_get_sync_video_discont(codec_para_t*pcodec)
codec_get_sync_video_discontgetvideosyncdiscontinuestate
unsignedlong codec_get_sync_audio_discont_diff(codec_para_t*pcodec)
codec_get_sync_audio_discont_diffgetaudiosyncdiscontinuestate
unsignedlong codec_get_sync_video_discont_diff(codec_para_t*pcodec)
codec_get_sync_video_discont_diffgetaudiosyncdiscontinuestate
int codec_set_sync_audio_discont_diff(codec_para_t*pcodec,unsignedlongdiscontinue_diff)
codec_set_sync_audio_discont_diffsetsyncdiscontinuediff
int codec_set_sync_video_discont_diff(codec_para_t*pcodec,unsignedlongdiscontinue_diff)
codec_set_sync_video_discont_diffsetsyncdiscontinuediff
int codec_get_sub_num(codec_para_t*pcodec) codec_get_sub_numgetthenumberofsubtitle
int codec_get_sub_info(codec_para_t*pcodec,subtitle_info_t*sub_info) codec_get_sub_infogetsubtitleinformation
int codec_set_av_threshold(codec_para_t*pcodec,intthreshold)int codec_get_freerun_mode(codec_para_t*pcodec)
codec_get_freerun_modeGetthemodeofvideofreerun
int codec_set_freerun_mode(codec_para_t*pcodec,unsignedintmode)
codec_set_freerun_modeSetthemodetovideofreerun
int codec_init_audio_utils(codec_para_t*pcodec) codec_init_audio_utilsInitializetheaudioutilsdevice
int codec_release_audio_utils(codec_para_t*pcodec)
codec_release_audio_utilsReleasetheaudioutilsdevice
int codec_set_audio_resample_ena(codec_para_t*pcodec,unsignedlongmode)
codec_set_audio_resample_enaSetaudioresample
int codec_get_audio_resample_ena(codec_para_t*pcodec)
codec_set_audio_resample_enaSetaudioresampleenable
int codec_set_audio_resample_type(codec_para_t*pcodec,unsignedlongtype)
codec_set_audio_resample_typeSetaudioresampletype
int codec_set_video_delay_limited_ms(codec_para_t*pcodec,intdelay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_get_video_delay_limited_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_set_audio_delay_limited_ms(codec_para_t*pcodec,intdelay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_get_audio_delay_limited_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_audio_delay_limited_msgetvideobuffermaxdelayed,if>settings,writemaywait&again,
int codec_get_audio_cur_delay_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_audio_cur_delay_msgetcurrentaudiodelayms
int codec_get_video_cur_delay_ms(codec_para_t*pcodec,int*delay_ms)
codec_get_video_cur_delay_msgetvideocurrentdelayms
int codec_get_video_cur_bitrate(codec_para_t*pcodec,int*bitrate)
codec_get_audio_cur_delay_msgetvidolatestbitrate.
int codec_get_audio_cur_bitrate(codec_para_t*pcodec,int*bitrate) codec_get_audio_cur_bitrategetaudiolatestbitrate.
int codec_set_vsync_upint(codec_para_t*pcodec,unsignedintmode) codec_set_vsync_upintSetthemodetovideofreerun
int codec_set_drmmode(codec_para_t*pcodec,unsignedintsetval)
int codec_get_last_checkout_apts(codec_para_t*pcodec,unsignedlong*apts)
int codec_get_last_checkin_apts(codec_para_t*pcodec,unsignedlong*apts)
int codec_get_pcm_level(codec_para_t*pcodec,unsignedint*level)
codec_get_pcm_levelgetthePCMdatainbufferbetweenDSPandoutput
int codec_set_skip_bytes(codec_para_t*pcodec,unsignedintbytes)
int codec_get_dsp_apts(codec_para_t*pcodec,unsignedint*apts)int codec_get_cntl_vpts(codec_para_t*pcodec)
codec_get_cntl_vptsGetthevptsintrickmode
int codec_disalbe_slowsync(codec_para_t*pcodec,intdisable_slowsync)
codec_disalbe_slowsyncSettheslowsyncdisableorenable
DetailedDescription
Codeccontrollibfunctions.
Author:ZhouZhi<[email protected]>
Version:1.0.0
Date:2011-02-24
Definitioninfilecodec_ctrl.c.
FunctionDocumentation
intcodec_audio_get_nb_frames ( codec_para_t* p )
codec_audio_get_nb_framesgetaudiodspdecodedframenumber
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:ndecodedframesnumber,orreturn0
Definitionatline1641offilecodec_ctrl.c.
intcodec_audio_isready ( codec_para_t* p )
codec_audio_isreadycheckaudiofinishinitok
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:1forready,ornotreadyif=0
Definitionatline1618offilecodec_ctrl.c.
intcodec_audio_reinit ( codec_para_t* pcodec )
codec_audio_reinitRe-initializeaudiocodec
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:
0forsuccess,orfailtypeif<0
Definitionatline1585offilecodec_ctrl.c.
intcodec_checkin_pts ( codec_para_t* pcodec,unsignedlong pts)
codec_checkin_ptsCheckinptstocodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] pts Ptstobecheckedin
Returns:0forsuccess,orfailtype
Definitionatline900offilecodec_ctrl.c.
intcodec_close ( codec_para_t* pcodec )
codec_closeClosecodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline782offilecodec_ctrl.c.
Referencedbycodec_reset().
Hereisthecallgraphforthisfunction:
voidcodec_close_audio ( codec_para_t* pcodec )
codec_close_audioCloseaudiodecoder
Parameters:[in] pcodec Pointerofcodecparameterstructure
Definitionatline808offilecodec_ctrl.c.
voidcodec_close_audio_async ( codec_para_t* pcodec )
codec_close_audioCloseaudiodecoder
Parameters:[in] pcodec Pointerofcodecparameterstructure
Definitionatline824offilecodec_ctrl.c.
intcodec_close_cntl ( codec_para_t* pcodec )
codec_close_cntlClosevideocontroldevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1394offilecodec_ctrl.c.
Referencedbycodec_close().
intcodec_close_sub ( codec_para_t* pcodec )
codec_close_subClosesubtiledevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1143offilecodec_ctrl.c.
intcodec_close_sub_fd ( CODEC_HANDLE sub_fd )
codec_close_sub_fdClosesubtiledevicebyfd
Parameters:[in] sub_fd subtiledevicefd
Returns:0forsuccess,orfailtypeif<0
Definitionatline1164offilecodec_ctrl.c.
Referencedbycodec_close().
intcodec_disalbe_slowsync ( codec_para_t* pcodec,int disable_slowsync)
codec_disalbe_slowsyncSettheslowsyncdisableorenable
Parameters:[in] pcodec Pointerofcodecparameter
structure[in] disalbe_slowsync disableslowsyncornot
Returns:0orfailerrortype
Definitionatline2352offilecodec_ctrl.c.
intcodec_get_abuf_state ( codec_para_t* p,structbuf_status* buf)
codec_get_abuf_stateGetthestateofaudiobufferbycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure[out] buf Pointerofbufferstatusstructuretogetaudio
bufferstate
Returns:Successorfailtype
Definitionatline934offilecodec_ctrl.c.
intcodec_get_adec_state ( codec_para_t* p,structadec_status* adec)
codec_get_adec_stateGetthestateofaudiodecoderbycodecdevice
Parameters:
[in] p Pointerofcodecparameterstructure[out] adec Pointerofaudiodecoderstatusstructure
Returns:Successorfailtype
Definitionatline975offilecodec_ctrl.c.
intcodec_get_apts ( codec_para_t* pcodec )
codec_get_aptsgetaudiopts
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:audiopts,or-1ifitfailed
Definitionatline1665offilecodec_ctrl.c.
intcodec_get_audio_cur_bitrate ( codec_para_t* pcodec,int* bitrate)
codec_get_audio_cur_bitrategetaudiolatestbitrate.
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2255offilecodec_ctrl.c.
intcodec_get_audio_cur_delay_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_audio_cur_delay_msgetcurrentaudiodelayms
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2196offilecodec_ctrl.c.
intcodec_get_audio_delay_limited_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_audio_delay_limited_msgetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2182offilecodec_ctrl.c.
intcodec_get_audio_resample_ena ( codec_para_t* pcodec )
codec_set_audio_resample_enaSetaudioresampleenable
Parameters:
[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2105offilecodec_ctrl.c.
intcodec_get_cntl_state ( codec_para_t* pcodec )
codec_get_cntl_stateGetthestatusofvideocontroldevice,especiallyfortrickmode
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Videocontroldevicestatusorfailerrortype
Definitionatline1439offilecodec_ctrl.c.
intcodec_get_cntl_vpts ( codec_para_t* pcodec )
codec_get_cntl_vptsGetthevptsintrickmode
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Videoptsorfailerrortype
Definitionatline2325offilecodec_ctrl.c.
intcodec_get_freerun_mode ( codec_para_t* pcodec )
codec_get_freerun_modeGetthemodeofvideofreerun
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Videofreerunmodeorfailerrortype
Definitionatline2005offilecodec_ctrl.c.
intcodec_get_pcm_level ( codec_para_t* pcodec,unsignedint* level)
codec_get_pcm_levelgetthePCMdatainbufferbetweenDSPandoutput
Parameters:[in] pcodec Pointerofcodecparameterstructre[in] level Addresstostore"level"
Returns:0forsuccess,orfailtypeif<0
Definitionatline2301offilecodec_ctrl.c.
intcodec_get_pcrscr ( codec_para_t* pcodec )
codec_get_pcrscrgetsystempcrscr
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:
systempcrscr,or-1itfailed
Definitionatline1721offilecodec_ctrl.c.
intcodec_get_sub_info ( codec_para_t* pcodec,subtitle_info_t* sub_info)
codec_get_sub_infogetsubtitleinformation
Parameters:[in] pcodec Pointerofcodecparameterstructure[out] sub_info Pointerofsubtitle_info_ttosavethe
subtitleinformation
Returns:0forsuccess,orfailtypeif<0
Definitionatline1959offilecodec_ctrl.c.
intcodec_get_sub_num ( codec_para_t* pcodec )
codec_get_sub_numgetthenumberofsubtitle
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:thenumberofsubtitle,orfailif<0
Definitionatline1937offilecodec_ctrl.c.
intcodec_get_sub_size ( codec_para_t* pcodec )
codec_get_sub_sizeGetthesizeofsubtitledatawhichisready
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Subtilereadydatasize,orfailerrortypeif<0
Definitionatline1230offilecodec_ctrl.c.
intcodec_get_sub_size_fd ( CODEC_HANDLE sub_fd )
codec_get_sub_size_fdGetthesizeofsubtitledatawhichisreadybyfd
Parameters:[in] sub_fd Subtitledevicefd
Returns:Subtilereadydatasize,orfailerrortypeif<0
Definitionatline1256offilecodec_ctrl.c.
intcodec_get_sync_audio_discont ( codec_para_t* pcodec )
codec_get_sync_audio_discontgetaudiosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuestate,orfailif<0
Definitionatline1823offilecodec_ctrl.c.
unsignedlongcodec_get_sync_audio_discont_diff ( codec_para_t*
codec_get_sync_audio_discont_diffgetaudiosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuediff,orfailif<0
Definitionatline1865offilecodec_ctrl.c.
intcodec_get_sync_video_discont ( codec_para_t* pcodec )
codec_get_sync_video_discontgetvideosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuestate,orfailif<0
Definitionatline1844offilecodec_ctrl.c.
unsignedlongcodec_get_sync_video_discont_diff ( codec_para_t*
codec_get_sync_video_discont_diffgetaudiosyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:discontiuediff,orfailif<0
Definitionatline1886offilecodec_ctrl.c.
intcodec_get_vbuf_state ( codec_para_t* p,structbuf_status* buf)
codec_get_vbuf_stateGetthestateofvideobufferbycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure[out] buf Pointerofbufferstatusstructuretogetvideobuffer
state
Returns:Successorfailtype
Definitionatline916offilecodec_ctrl.c.
intcodec_get_vdec_state ( codec_para_t* p,structvdec_status* vdec)
codec_get_vdec_stateGetthestateofvideodecoderbycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure[out] vdec Pointerofvideodecoderstatusstructure
Returns:Successorfailtype
Definitionatline953offilecodec_ctrl.c.
intcodec_get_video_cur_bitrate ( codec_para_t* pcodec,int* bitrate
)
codec_get_audio_cur_delay_msgetvidolatestbitrate.
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2240offilecodec_ctrl.c.
intcodec_get_video_cur_delay_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_video_cur_delay_msgetvideocurrentdelayms
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2226offilecodec_ctrl.c.
intcodec_get_video_delay_limited_ms ( codec_para_t* pcodec,int* delay_ms)
codec_get_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:
[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2153offilecodec_ctrl.c.
intcodec_get_vpts ( codec_para_t* pcodec )
codec_get_vptsgetvideopts
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:videopts,or-1ifitfailed
Definitionatline1693offilecodec_ctrl.c.
intcodec_init ( codec_para_t* pcodec )
codec_initInitializethecodecdevicebasedonstreamtype
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline640offilecodec_ctrl.c.
Referencedbycodec_reset().
Hereisthecallgraphforthisfunction:
intcodec_init_audio_utils ( codec_para_t* pcodec )
codec_init_audio_utilsInitializetheaudioutilsdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2046offilecodec_ctrl.c.
intcodec_init_cntl ( codec_para_t* pcodec )
codec_init_cntlInitializethevideocontroldevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1369offilecodec_ctrl.c.
Referencedbycodec_init().
intcodec_init_sub ( codec_para_t* pcodec )
codec_init_subInitializesubtilecodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:
Successorfailerrortype
Definitionatline1099offilecodec_ctrl.c.
intcodec_open_sub_read ( void )
codec_open_sub_readOpenread_subtitledevicewhichisspecialforreadsubtiledata
Returns:Devicehandler,orerrortypeif<0
Definitionatline1121offilecodec_ctrl.c.
intcodec_pause ( codec_para_t* p )
codec_pausePauseallplaying(A/V)bycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1027offilecodec_ctrl.c.
intcodec_poll_cntl ( codec_para_t* pcodec )
codec_poll_cntlPollingvideocontroldevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Pollingresults
Definitionatline1416offilecodec_ctrl.c.
intcodec_poll_sub ( codec_para_t* pcodec )
codec_poll_subPollingsubtiledeviceifsubtitledataisready
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Pollingresult
Definitionatline1183offilecodec_ctrl.c.
intcodec_poll_sub_fd ( CODEC_HANDLE sub_fd,int timeout)
codec_poll_sub_fdPollingsubtiledeviceifsubtitledataisreadybyfd
Parameters:[in] sub_fd Subtitledevicefd[in] timeout Timeoutforpolling
Returns:Pollingresult
Definitionatline1207offilecodec_ctrl.c.
intcodec_read ( codec_para_t* pcodec,void* buffer,int len)
codec_readReaddatafromcodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[out] buffer Bufferfordatareadfromcodecdevice[in] len Lengthofthedatatoberead
Returns:Lengthofthereaddata,orfailif<0
Definitionatline768offilecodec_ctrl.c.
intcodec_read_sub_data ( codec_para_t* pcodec,char* buf,unsignedint length)
codec_read_sub_dataReadsubtitledatafromcodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[out] buf Bufferfordatareadfromsubtitlecodecdevice[in] length Datalengthtobereadfromsubtitlecodec
device
Returns:0forsuccess,orfailtypeif<0
Definitionatline1284offilecodec_ctrl.c.
intcodec_read_sub_data_fd ( CODEC_HANDLE sub_fd,char* buf,unsignedint length)
codec_read_sub_data_fdReadsubtitledatafromcodecdevicebyfd
Parameters:[in] sub_fd Subtitledevicefd[out] buf Bufferfordatareadfromsubtitlecodecdevice[in] length Datalengthtobereadfromsubtilecodec
device
Returns:0forsuccess,orfailtypeif<0
Definitionatline1317offilecodec_ctrl.c.
intcodec_release_audio_utils ( codec_para_t* pcodec )
codec_release_audio_utilsReleasetheaudioutilsdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2070offilecodec_ctrl.c.
intcodec_reset ( codec_para_t* p )
codec_resetResetcodecdevice
Parameters:[in] p Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1078offilecodec_ctrl.c.
Hereisthecallgraphforthisfunction:
intcodec_reset_audio ( codec_para_t* pcodec )
codec_reset_audioResetaudiodecoder,especiallyforaudioswitch
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1515offilecodec_ctrl.c.
intcodec_reset_subtile ( codec_para_t* pcodec )
codec_reset_subtileResetsubtitledevice,especiallyforsubtitleswith
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1529offilecodec_ctrl.c.
intcodec_resume ( codec_para_t* p )
codec_resumeResumeplaying(A/V)bycodecdevice
Parameters:[in] p Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline1052offilecodec_ctrl.c.
voidcodec_resume_audio ( codec_para_t* pcodec,unsignedint orig)
codec_resume_audioResumeaudiodecodertowork(etc,afterpause)
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] orig Originalaudiostatus(hasaudioornot)
Definitionatline839offilecodec_ctrl.c.
intcodec_set_audio_delay_limited_ms ( codec_para_t* pcodec,int delay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2168offilecodec_ctrl.c.
intcodec_set_audio_pid ( codec_para_t* pcodec )
codec_set_audio_idSetaudiopidbycodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1543offilecodec_ctrl.c.
intcodec_set_audio_resample_ena ( codec_para_t* pcodec,unsignedlong mode)
codec_set_audio_resample_enaSetaudioresample
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2091offilecodec_ctrl.c.
intcodec_set_audio_resample_type ( codec_para_t* pcodec,unsignedlong type)
codec_set_audio_resample_typeSetaudioresampletype
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:Successorfailerrortype
Definitionatline2126offilecodec_ctrl.c.
intcodec_set_cntl_avthresh ( codec_para_t* pcodec,unsignedint avthresh)
codec_set_cntl_avthreshSettheAVsyncthresholdwhichdefinesthemaxtimedifferencebetweenA/V
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] avthresh Thresholdtobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1485offilecodec_ctrl.c.
intcodec_set_cntl_mode ( codec_para_t* pcodec,unsignedint mode)
codec_set_cntl_modeSetthemodetovideocontroldevice,especiallyfortrickmode
Parameters:[in] pcodec Pointerofcodecparameterstructure
[in] mode Trickmodetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1466offilecodec_ctrl.c.
intcodec_set_cntl_syncthresh ( codec_para_t* pcodec,unsignedint syncthresh)
codec_set_cntl_syncthreshSetsyncthresholdcontrolwhichdefinesthestartingsystemtime(holdvideoornot)whenplaying
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] syncthresh Syncthresholdcontrol
Returns:0forsuccess,orfailtypeif<0
Definitionatline1501offilecodec_ctrl.c.
intcodec_set_dec_reset ( codec_para_t* pcodec )
codec_set_dec_resetSetdecoderresetflagwhenreset
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1604offilecodec_ctrl.c.
intcodec_set_freerun_mode ( codec_para_t* pcodec,unsignedint mode)
codec_set_freerun_modeSetthemodetovideofreerun
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] mode Freerunmodetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline2032offilecodec_ctrl.c.
intcodec_set_pcrscr ( codec_para_t* pcodec,int val)
codec_set_pcrscrsetsystempcrscr
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] val systempcrscrvalue
Returns:0issuccess,or-1failed.
Definitionatline1750offilecodec_ctrl.c.
intcodec_set_sub_id ( codec_para_t* pcodec )
codec_set_sub_idSetsubtitlepidbycodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1557offilecodec_ctrl.c.
intcodec_set_sub_type ( codec_para_t* pcodec )
codec_set_sub_typeSetsubtitletypebycodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline1571offilecodec_ctrl.c.
intcodec_set_sync_audio_discont ( codec_para_t* pcodec,int discontinue)
codec_set_sync_audio_discontsetsyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue Discontinuestatetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1794offilecodec_ctrl.c.
intcodec_set_sync_audio_discont_diff ( codec_para_t* pcodec,unsignedlong discontinue_diff)
codec_set_sync_audio_discont_diffsetsyncdiscontinuediff
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue_diff Discontinuedifftobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1908offilecodec_ctrl.c.
intcodec_set_sync_video_discont ( codec_para_t* pcodec,int discontinue)
codec_set_sync_video_discontsetsyncdiscontinuestate
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue Discontinuestatetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1809offilecodec_ctrl.c.
intcodec_set_sync_video_discont_diff ( codec_para_t* pcodec,unsignedlong discontinue_diff)
codec_set_sync_video_discont_diffsetsyncdiscontinuediff
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] discontinue_diff Discontinuedifftobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1923offilecodec_ctrl.c.
intcodec_set_syncenable ( codec_para_t* pcodec,int enable)
codec_set_syncenableenableordisableavsync
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] enable Enableordisabletobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline1779offilecodec_ctrl.c.
intcodec_set_video_delay_limited_ms ( codec_para_t* pcodec,int delay_ms)
codec_set_video_delay_limited_msSetvideobuffermaxdelayed,if>settings,writemaywait&again,
Parameters:
[in] pcodec Pointerofcodecparameterstructure
Returns:0forsuccess,orfailtypeif<0
Definitionatline2140offilecodec_ctrl.c.
intcodec_set_vsync_upint ( codec_para_t* pcodec,unsignedint mode)
codec_set_vsync_upintSetthemodetovideofreerun
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] mode vsyncupintmodetobeset
Returns:0forsuccess,orfailtypeif<0
Definitionatline2270offilecodec_ctrl.c.
intcodec_write ( codec_para_t* pcodec,void* buffer,int len)
codec_writeWritedatatocodecdevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] buffer Bufferfordatatobewritten[in] len Lengthofthedatatobewritten
Returns:Lengthofthewrittendata,orfailif<0
Definitionatline752offilecodec_ctrl.c.
intcodec_write_sub_data ( codec_para_t* pcodec,char* buf,unsignedint length)
codec_write_sub_dataWritesubtiledatatosubtitledevice
Parameters:[in] pcodec Pointerofcodecparameterstructure[in] buf Bufferfordatatobewritten[in] length Lengthofthedattobewritten
Returns:Writelength,orfailtypeif<0
Definitionatline1350offilecodec_ctrl.c.
GeneratedonTueDec2201421:58:58foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
Defines
amcodecMyProject
codec_error.hFileReference
Codecerrortypedefinitions.More...
Thisgraphshowswhichfilesdirectlyorindirectlyincludethisfile:
Gotothesourcecodeofthisfile.
Defines
#define C_PAE(0x01000000)#define CODEC_ERROR_NONE(0)#define CODEC_ERROR_INVAL(C_PAE|1)#define CODEC_ERROR_NOMEM(C_PAE|2)#define CODEC_ERROR_BUSY(C_PAE|3)#define CODEC_ERROR_IO(C_PAE|4)#define CODEC_ERROR_PARAMETER(C_PAE|5)#define CODEC_ERROR_AUDIO_TYPE_UNKNOW(C_PAE|6)#define CODEC_ERROR_VIDEO_TYPE_UNKNOW(C_PAE|7)#define CODEC_ERROR_STREAM_TYPE_UNKNOW(C_PAE|8)#define CODEC_ERROR_VDEC_TYPE_UNKNOW(C_PAE|9)#define CODEC_ERROR_INIT_FAILED(C_PAE|10)#define CODEC_ERROR_SET_BUFSIZE_FAILED(C_PAE|11)#define CODEC_OPEN_HANDLE_FAILED(C_PAE|12)
DetailedDescription
Codecerrortypedefinitions.
Author:ZhangChen<[email protected]>
Version:1.0.0
Date:2011-02-24
Definitioninfilecodec_error.h.
GeneratedonTueDec2201421:58:58foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
Functions
amcodecMyProject
codec_msg.hFileReference
Functionprototypeofcodecerror.More...
Gotothesourcecodeofthisfile.
Functions
constchar* codec_error_msg(interror)int system_error_to_codec_error(interror)
void print_error_msg(interror,intsyserr,char*func,intline)
DetailedDescription
Functionprototypeofcodecerror.
Author:ZhangChen<[email protected]>
Version:1.0.0
Date:2011-02-24
Definitioninfilecodec_msg.h.
GeneratedonTueDec2201421:58:58foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
Classes|Defines|Typedefs|Enumerations
amcodecMyProject
codec_type.hFileReference
Definitionsofcodectypeandstructures.More...
#include"amports/amstream.h"#include"amports/vformat.h"#include"amports/aformat.h"
#include"ppmgr/ppmgr.h"
Includedependencygraphforcodec_type.h:
Thisgraphshowswhichfilesdirectlyorindirectlyincludethisfile:
Gotothesourcecodeofthisfile.
Classes
struct dec_sysinfo_tstruct audio_info_tstruct Asf_audio_info_tstruct codec_para_tstruct subtitle_info_tstruct arm_audio_info
Defines
#define MAX_SUB_NUM(32)#define IS_VALID_PID(t)(t>=0&&t<=0x1fff)#define IS_VALID_STREAM(t)(t>0&&t<=0x1fff)#define IS_VALID_ATYPE(t)(t>=0&&t<AFORMAT_MAX)#define IS_VALID_VTYPE(t)(t>=0&&t<VFORMAT_MAX)#define AUDIO_ARC_DECODER0#define AUDIO_ARM_DECODER1#define AUDIO_FFMPEG_DECODER2#define AUDIO_ARMWFD_DECODER3
Enumerations
enum
stream_type_t{STREAM_TYPE_UNKNOW,STREAM_TYPE_ES_VIDEO,STREAM_TYPE_ES_AUDIO,STREAM_TYPE_ES_SUB,STREAM_TYPE_PS,STREAM_TYPE_TS,STREAM_TYPE_RM}
DetailedDescription
Definitionsofcodectypeandstructures.
Author:ZhangChen<[email protected]>
Version:1.0.0
Date:2011-02-24
Definitioninfilecodec_type.h.
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
All Functions
c
amcodecMyProject
Hereisalistofalldocumentedfilememberswithlinkstothedocumentation:
-c-
codec_audio_get_nb_frames():codec.h,codec_ctrl.ccodec_audio_isready():codec_ctrl.c,codec.hcodec_audio_reinit():codec.h,codec_ctrl.ccodec_checkin_pts():codec_ctrl.c,codec.hcodec_close():codec.h,codec_ctrl.ccodec_close_audio():codec.h,codec_ctrl.ccodec_close_audio_async():codec.h,codec_ctrl.ccodec_close_cntl():codec_ctrl.c,codec.hcodec_close_sub():codec.h,codec_ctrl.ccodec_close_sub_fd():codec.h,codec_ctrl.ccodec_disalbe_slowsync():codec.h,codec_ctrl.ccodec_get_abuf_state():codec.h,codec_ctrl.ccodec_get_adec_state():codec.h,codec_ctrl.ccodec_get_apts():codec.h,codec_ctrl.ccodec_get_audio_cur_bitrate():codec.h,codec_ctrl.ccodec_get_audio_cur_delay_ms():codec_ctrl.c,codec.hcodec_get_audio_delay_limited_ms():codec.h,codec_ctrl.ccodec_get_audio_resample_ena():codec.h,codec_ctrl.ccodec_get_cntl_state():codec.h,codec_ctrl.ccodec_get_cntl_vpts():codec.h,codec_ctrl.ccodec_get_freerun_mode():codec.h,codec_ctrl.ccodec_get_pcm_level():codec_ctrl.ccodec_get_pcrscr():codec.h,codec_ctrl.c
codec_get_sub_info():codec.h,codec_ctrl.ccodec_get_sub_num():codec.h,codec_ctrl.ccodec_get_sub_size():codec.h,codec_ctrl.ccodec_get_sub_size_fd():codec.h,codec_ctrl.ccodec_get_sync_audio_discont():codec.h,codec_ctrl.ccodec_get_sync_audio_discont_diff():codec.h,codec_ctrl.ccodec_get_sync_video_discont():codec.h,codec_ctrl.ccodec_get_sync_video_discont_diff():codec.h,codec_ctrl.ccodec_get_vbuf_state():codec.h,codec_ctrl.ccodec_get_vdec_state():codec.h,codec_ctrl.ccodec_get_video_cur_bitrate():codec.h,codec_ctrl.ccodec_get_video_cur_delay_ms():codec.h,codec_ctrl.ccodec_get_video_delay_limited_ms():codec.h,codec_ctrl.ccodec_get_vpts():codec.h,codec_ctrl.ccodec_init():codec.h,codec_ctrl.ccodec_init_audio_utils():codec.h,codec_ctrl.ccodec_init_cntl():codec_ctrl.c,codec.hcodec_init_sub():codec.h,codec_ctrl.ccodec_open_sub_read():codec.h,codec_ctrl.ccodec_pause():codec.h,codec_ctrl.ccodec_poll_cntl():codec_ctrl.c,codec.hcodec_poll_sub():codec.h,codec_ctrl.ccodec_poll_sub_fd():codec.h,codec_ctrl.ccodec_read():codec_ctrl.ccodec_read_sub_data():codec.h,codec_ctrl.ccodec_read_sub_data_fd():codec_ctrl.c,codec.hcodec_release_audio_utils():codec.h,codec_ctrl.ccodec_reset():codec_ctrl.c,codec.hcodec_reset_audio():codec.h,codec_ctrl.ccodec_reset_subtile():codec.h,codec_ctrl.ccodec_resume():codec.h,codec_ctrl.ccodec_resume_audio():codec.h,codec_ctrl.ccodec_set_audio_delay_limited_ms():codec_ctrl.c,codec.hcodec_set_audio_pid():codec.h,codec_ctrl.ccodec_set_audio_resample_ena():codec.h,codec_ctrl.ccodec_set_audio_resample_type():codec.h,codec_ctrl.ccodec_set_cntl_avthresh():codec_ctrl.c,codec.h
codec_set_cntl_mode():codec.h,codec_ctrl.ccodec_set_cntl_syncthresh():codec.h,codec_ctrl.ccodec_set_dec_reset():codec.h,codec_ctrl.ccodec_set_freerun_mode():codec.h,codec_ctrl.ccodec_set_pcrscr():codec_ctrl.c,codec.hcodec_set_sub_id():codec.h,codec_ctrl.ccodec_set_sub_type():codec.h,codec_ctrl.ccodec_set_sync_audio_discont():codec_ctrl.c,codec.hcodec_set_sync_audio_discont_diff():codec_ctrl.c,codec.hcodec_set_sync_video_discont():codec.h,codec_ctrl.ccodec_set_sync_video_discont_diff():codec_ctrl.c,codec.hcodec_set_syncenable():codec_ctrl.c,codec.hcodec_set_video_delay_limited_ms():codec_ctrl.c,codec.hcodec_set_vsync_upint():codec.h,codec_ctrl.ccodec_write():codec_ctrl.c,codec.hcodec_write_sub_data():codec_ctrl.c,codec.h
GeneratedonTueDec2201421:59:02foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
All Functions
c
amcodecMyProject
-c-
codec_audio_get_nb_frames():codec.h,codec_ctrl.ccodec_audio_isready():codec_ctrl.c,codec.hcodec_audio_reinit():codec.h,codec_ctrl.ccodec_checkin_pts():codec_ctrl.c,codec.hcodec_close():codec.h,codec_ctrl.ccodec_close_audio():codec.h,codec_ctrl.ccodec_close_audio_async():codec.h,codec_ctrl.ccodec_close_cntl():codec_ctrl.c,codec.hcodec_close_sub():codec.h,codec_ctrl.ccodec_close_sub_fd():codec.h,codec_ctrl.ccodec_disalbe_slowsync():codec.h,codec_ctrl.ccodec_get_abuf_state():codec.h,codec_ctrl.ccodec_get_adec_state():codec.h,codec_ctrl.ccodec_get_apts():codec.h,codec_ctrl.ccodec_get_audio_cur_bitrate():codec.h,codec_ctrl.ccodec_get_audio_cur_delay_ms():codec_ctrl.c,codec.hcodec_get_audio_delay_limited_ms():codec.h,codec_ctrl.ccodec_get_audio_resample_ena():codec.h,codec_ctrl.ccodec_get_cntl_state():codec.h,codec_ctrl.ccodec_get_cntl_vpts():codec.h,codec_ctrl.ccodec_get_freerun_mode():codec.h,codec_ctrl.ccodec_get_pcm_level():codec_ctrl.ccodec_get_pcrscr():codec.h,codec_ctrl.ccodec_get_sub_info():codec.h,codec_ctrl.c
codec_get_sub_num():codec.h,codec_ctrl.ccodec_get_sub_size():codec.h,codec_ctrl.ccodec_get_sub_size_fd():codec.h,codec_ctrl.ccodec_get_sync_audio_discont():codec.h,codec_ctrl.ccodec_get_sync_audio_discont_diff():codec.h,codec_ctrl.ccodec_get_sync_video_discont():codec.h,codec_ctrl.ccodec_get_sync_video_discont_diff():codec.h,codec_ctrl.ccodec_get_vbuf_state():codec.h,codec_ctrl.ccodec_get_vdec_state():codec.h,codec_ctrl.ccodec_get_video_cur_bitrate():codec.h,codec_ctrl.ccodec_get_video_cur_delay_ms():codec.h,codec_ctrl.ccodec_get_video_delay_limited_ms():codec.h,codec_ctrl.ccodec_get_vpts():codec.h,codec_ctrl.ccodec_init():codec.h,codec_ctrl.ccodec_init_audio_utils():codec.h,codec_ctrl.ccodec_init_cntl():codec_ctrl.c,codec.hcodec_init_sub():codec.h,codec_ctrl.ccodec_open_sub_read():codec.h,codec_ctrl.ccodec_pause():codec.h,codec_ctrl.ccodec_poll_cntl():codec_ctrl.c,codec.hcodec_poll_sub():codec.h,codec_ctrl.ccodec_poll_sub_fd():codec.h,codec_ctrl.ccodec_read():codec_ctrl.ccodec_read_sub_data():codec.h,codec_ctrl.ccodec_read_sub_data_fd():codec_ctrl.c,codec.hcodec_release_audio_utils():codec.h,codec_ctrl.ccodec_reset():codec_ctrl.c,codec.hcodec_reset_audio():codec.h,codec_ctrl.ccodec_reset_subtile():codec.h,codec_ctrl.ccodec_resume():codec.h,codec_ctrl.ccodec_resume_audio():codec.h,codec_ctrl.ccodec_set_audio_delay_limited_ms():codec_ctrl.c,codec.hcodec_set_audio_pid():codec.h,codec_ctrl.ccodec_set_audio_resample_ena():codec.h,codec_ctrl.ccodec_set_audio_resample_type():codec.h,codec_ctrl.ccodec_set_cntl_avthresh():codec_ctrl.c,codec.hcodec_set_cntl_mode():codec.h,codec_ctrl.c
codec_set_cntl_syncthresh():codec.h,codec_ctrl.ccodec_set_dec_reset():codec.h,codec_ctrl.ccodec_set_freerun_mode():codec.h,codec_ctrl.ccodec_set_pcrscr():codec_ctrl.c,codec.hcodec_set_sub_id():codec.h,codec_ctrl.ccodec_set_sub_type():codec.h,codec_ctrl.ccodec_set_sync_audio_discont():codec_ctrl.c,codec.hcodec_set_sync_audio_discont_diff():codec_ctrl.c,codec.hcodec_set_sync_video_discont():codec.h,codec_ctrl.ccodec_set_sync_video_discont_diff():codec_ctrl.c,codec.hcodec_set_syncenable():codec_ctrl.c,codec.hcodec_set_video_delay_limited_ms():codec_ctrl.c,codec.hcodec_set_vsync_upint():codec.h,codec_ctrl.ccodec_write():codec_ctrl.c,codec.hcodec_write_sub_data():codec_ctrl.c,codec.h
GeneratedonTueDec2201421:59:02foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
arm_audio_infoMemberList
Thisisthecompletelistofmembersforarm_audio_info,includingallinheritedmembers.automute(definedinarm_audio_info) arm_audio_infobitrate(definedinarm_audio_info) arm_audio_infoblock_align(definedinarm_audio_info) arm_audio_infochannels arm_audio_infocodec_id(definedinarm_audio_info) arm_audio_infodroppcm_flag(definedinarm_audio_info) arm_audio_infodspdec_not_supported(definedinarm_audio_info) arm_audio_info
extradata(definedinarm_audio_info) arm_audio_infoextradata_size arm_audio_infoformat arm_audio_infohandle arm_audio_infosample_rate arm_audio_infoSessionID(definedinarm_audio_info) arm_audio_info
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
codec_type.h
Gotothedocumentationofthisfile.00001
00008/*Copyright(C)2007-2011,AmlogicInc.
00009*Allrightreserved
00010*
00011*/
00012#ifndefCODEC_TYPE_H_
00013#defineCODEC_TYPE_H_
00014
00015#include"amports/amstream.h"
00016#include"amports/vformat.h"
00017#include"amports/aformat.h"
00018#include"ppmgr/ppmgr.h"
00019
00020typedefintCODEC_HANDLE;
00021
00022typedefenum{
00023STREAM_TYPE_UNKNOW,
00024STREAM_TYPE_ES_VIDEO,
00025STREAM_TYPE_ES_AUDIO,
00026STREAM_TYPE_ES_SUB,
00027STREAM_TYPE_PS,
00028STREAM_TYPE_TS,
00029STREAM_TYPE_RM,
00030}stream_type_t;
00031
00032typedefstruct{
00033unsignedintformat;
00034unsignedintwidth;
00035unsignedintheight;
00036unsignedintrate;
00037unsignedintextra;
00038unsignedintstatus;
00039unsignedintratio;
00040void*param;
00041unsignedlonglongratio64;
00042}dec_sysinfo_t;
00043
00044typedefstruct{
00045intvalid;
00046intsample_rate;
00047intchannels;
00048intbitrate;
00049intcodec_id;
00050intblock_align;
00051intextradata_size;
00052charextradata[AUDIO_EXTRA_DATA_SIZE];;
00053}audio_info_t;
00054
00055typedefstruct{
00056intvalid;
00057intsample_rate;
00058intchannels;
00059intbitrate;
00060intcodec_id;
00061intblock_align;
00062intextradata_size;
00063charextradata[512];;
00064}Asf_audio_info_t;
00065
00066typedefstruct{
00067CODEC_HANDLEhandle;
00068CODEC_HANDLEcntl_handle;
00069CODEC_HANDLEsub_handle;
00070CODEC_HANDLEaudio_utils_handle;
00071stream_type_tstream_type;
00072unsignedinthas_video:
000731;
00074unsignedinthas_audio:
000751;
00076unsignedinthas_sub:
000771;
00078unsignedintnoblock:
000791;
00080intvideo_type;
00081intaudio_type;
00082intsub_type;
00083intvideo_pid;
00084intaudio_pid;
00085intsub_pid;
00086intaudio_channels;
00087intaudio_samplerate;
00088intvbuf_size;
00089intabuf_size;
00090dec_sysinfo_tam_sysinfo;
00091audio_info_taudio_info;
00092intpacket_size;
00093intavsync_threshold;
00094void*adec_priv;
00095intSessionID;
00096intdspdec_not_supported;//checksom
eprofilethataudiodspdecodercannotsupport,we
switchtoarmdecoder
00097intswitch_audio_flag;//<s
witchaudioflagswitching(1)else(0)
00098intautomute_flag;
00099}codec_para_t;
00100
00101typedefstruct
00102{
00103signedcharid;
00104unsignedcharwidth;
00105unsignedcharheight;
00106unsignedchartype;
00107}subtitle_info_t;
00108#defineMAX_SUB_NUM(32)
00109
00110#defineIS_VALID_PID(t)(t>=0&&t<=0x1f
ff)
00111#defineIS_VALID_STREAM(t)(t>0&&t<=0x1ff
f)
00112#defineIS_VALID_ATYPE(t)(t>=0&&t<AFORM
AT_MAX)
00113#defineIS_VALID_VTYPE(t)(t>=0&&t<VFORM
AT_MAX)
00114
00115//passtoarmaudiodecoder
00116typedefstruct{
00117intsample_rate;
00118intchannels;
00119intformat;
00120intbitrate;
00121intblock_align;
00122intcodec_id;//originalcodecid
corespingdingtoffmepg
00123inthandle;
00124intextradata_size;
00125charextradata[AUDIO_EXTRA_DATA_SIZE];
00126intSessionID;
00127intdspdec_not_supported;//checksom
eprofilethataudiodspdecodercannotsupport,we
switchtoarmdecoder
00128intdroppcm_flag;
//droppcmflag,ifswitchaudio(1)
00129intautomute;
00130}arm_audio_info;
00131
00132//audiodecodertype,defaultarc
00133#defineAUDIO_ARC_DECODER0
00134#defineAUDIO_ARM_DECODER1
00135#defineAUDIO_FFMPEG_DECODER2
00136#defineAUDIO_ARMWFD_DECODER3
00137#endif
GeneratedonTueDec2201421:58:54foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
Asf_audio_info_tMemberList
ThisisthecompletelistofmembersforAsf_audio_info_t,includingallinheritedmembers.bitrate Asf_audio_info_tblock_align Asf_audio_info_tchannels Asf_audio_info_tcodec_id Asf_audio_info_textradata(definedinAsf_audio_info_t)Asf_audio_info_textradata_size Asf_audio_info_tsample_rate Asf_audio_info_tvalid Asf_audio_info_t
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
audio_info_tMemberList
Thisisthecompletelistofmembersforaudio_info_t,includingallinheritedmembers.bitrate audio_info_tblock_align audio_info_tchannels audio_info_tcodec_id audio_info_textradata(definedinaudio_info_t) audio_info_textradata_size audio_info_tsample_rate audio_info_tvalid audio_info_t
GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1
MainPage Classes Files
amcodecMyProject
GraphLegend
Thispageexplainshowtointerpretthegraphsthataregeneratedbydoxygen.
Considerthefollowingexample:
/*!Invisibleclassbecauseoftruncation*/
classInvisible{};
/*!Truncatedclass,inheritancerelationishidde
n*/
classTruncated:publicInvisible{};
/*Classnotdocumentedwithdoxygencomments*/
classUndocumented{};
/*!Classthatisinheritedusingpublicinheritan
ce*/
classPublicBase:publicTruncated{};
/*!Atemplateclass*/
template<classT>classTempl{};
/*!Classthatisinheritedusingprotectedinheri
tance*/
classProtectedBase{};
/*!Classthatisinheritedusingprivateinherita
nce*/
classPrivateBase{};
/*!ClassthatisusedbytheInheritedclass*/
classUsed{};
/*!Superclassthatinheritsanumberofothercl
asses*/
classInherited:publicPublicBase,
protectedProtectedBase,
privatePrivateBase,
publicUndocumented,
publicTempl<int>
{
private:
Used*m_usedClass;
};
Thiswillresultinthefollowinggraph:
Theboxesintheabovegraphhavethefollowingmeaning:
Afilledgrayboxrepresentsthestructorclassforwhichthegraphisgenerated.Aboxwithablackborderdenotesadocumentedstructorclass.Aboxwithagreyborderdenotesanundocumentedstructorclass.Aboxwitharedborderdenotesadocumentedstructorclassforwhichnotallinheritance/containmentrelationsareshown.Agraphistruncatedifitdoesnotfitwithinthespecifiedboundaries.
Thearrowshavethefollowingmeaning:
Adarkbluearrowisusedtovisualizeapublicinheritancerelationbetweentwoclasses.Adarkgreenarrowisusedforprotectedinheritance.Adarkredarrowisusedforprivateinheritance.Apurpledashedarrowisusedifaclassiscontainedorusedbyanotherclass.Thearrowislabeledwiththevariable(s)throughwhichthepointedclassorstructisaccessible.Ayellowdashedarrowdenotesarelationbetweenatemplateinstanceandthetemplateclassitwasinstantiatedfrom.Thearrowislabeledwiththetemplateparametersoftheinstance.
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
codec_para_tMemberList
Thisisthecompletelistofmembersforcodec_para_t,includingallinheritedmembers.abuf_size codec_para_tadec_priv codec_para_tam_sysinfo codec_para_taudio_channels codec_para_taudio_info codec_para_taudio_pid codec_para_taudio_samplerate codec_para_taudio_type codec_para_taudio_utils_handle codec_para_tautomute_flag(definedincodec_para_t) codec_para_tavsync_threshold codec_para_tcntl_handle codec_para_tdspdec_not_supported(definedincodec_para_t) codec_para_thandle codec_para_thas_audio codec_para_thas_sub codec_para_thas_video codec_para_tnoblock codec_para_tpacket_size codec_para_tSessionID(definedincodec_para_t) codec_para_tstream_type codec_para_tsub_handle codec_para_tsub_pid codec_para_t
sub_type codec_para_tswitch_audio_flag(definedincodec_para_t) codec_para_tvbuf_size codec_para_tvideo_pid codec_para_tvideo_type codec_para_t
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
dec_sysinfo_tMemberList
Thisisthecompletelistofmembersfordec_sysinfo_t,includingallinheritedmembers.extra dec_sysinfo_tformat dec_sysinfo_theight dec_sysinfo_tparam dec_sysinfo_trate dec_sysinfo_tratio dec_sysinfo_tratio64 dec_sysinfo_tstatus dec_sysinfo_twidth dec_sysinfo_t
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesClassList ClassIndex ClassMembers
amcodecMyProject
subtitle_info_tMemberList
Thisisthecompletelistofmembersforsubtitle_info_t,includingallinheritedmembers.height(definedinsubtitle_info_t) subtitle_info_tid(definedinsubtitle_info_t) subtitle_info_ttype(definedinsubtitle_info_t) subtitle_info_twidth(definedinsubtitle_info_t) subtitle_info_t
GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
audio_priv.h
Gotothedocumentationofthisfile.00001
00008/*Copyright(C)2007-2011,AmlogicInc.
00009*Allrightreserved
00010*
00011*/
00012#ifndefCODEC_PRIV_H_
00013#defineCODEC_PRIV_H_
00014voidaudio_start(void**priv,codec_para_t*
pcodec);
00015voidaudio_stop(void**priv);
00016voidaudio_pause(void*priv);
00017voidaudio_resume(void*priv);
00018#endif
GeneratedonTueDec2201421:58:52foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
codec.h
Gotothedocumentationofthisfile.00001
00008/*Copyright(C)2007-2011,AmlogicInc.
00009*Allrightreserved
00010*
00011*/
00012#ifndefCODEC_CTRL_H_
00013#defineCODEC_CTRL_H_
00014
00015#include<codec_type.h>
00016#include<codec_error.h>
00017
00018
00019intcodec_init(codec_para_t*);
00020intcodec_close(codec_para_t*);
00021voidcodec_close_audio_async(codec_para_t*p
codec);
00022voidcodec_audio_basic_init(void);
00023voidcodec_close_audio(codec_para_t*);
00024voidcodec_resume_audio(codec_para_t*,unsi
gnedint);
00025intcodec_reset(codec_para_t*);
00026intcodec_init_sub(codec_para_t*);
00027intcodec_open_sub_read(void);
00028intcodec_close_sub(codec_para_t*);
00029intcodec_close_sub_fd(CODEC_HANDLE);
00030intcodec_reset_subtile(codec_para_t*pcodec
);
00031intcodec_poll_sub(codec_para_t*);
00032intcodec_poll_sub_fd(CODEC_HANDLE,int);
00033intcodec_get_sub_size(codec_para_t*);
00034intcodec_get_sub_size_fd(CODEC_HANDLE);
00035intcodec_read_sub_data(codec_para_t*,char
*,unsignedint);
00036intcodec_read_sub_data_fd(CODEC_HANDLE,char
*,unsignedint);
00037intcodec_write_sub_data(codec_para_t*,char
*,unsignedint);
00038intcodec_init_cntl(codec_para_t*);
00039intcodec_close_cntl(codec_para_t*);
00040intcodec_poll_cntl(codec_para_t*);
00041intcodec_get_cntl_state(codec_para_t*);
00042intcodec_get_cntl_vpts(codec_para_t*pcodec
);
00043intcodec_set_cntl_mode(codec_para_t*,unsi
gnedint);
00044intcodec_set_mode(codec_para_t*,unsigned
int);
00045intcodec_set_cntl_avthresh(codec_para_t*,
unsignedint);
00046intcodec_set_cntl_syncthresh(codec_para_t*
pcodec,unsignedintsyncthresh);
00047intcodec_reset_audio(codec_para_t*pcodec);
00048intcodec_set_audio_pid(codec_para_t*pcodec
);
00049intcodec_set_sub_id(codec_para_t*pcodec);
00050intcodec_set_sub_type(codec_para_t*pcodec)
;
00051intcodec_audio_reinit(codec_para_t*pcodec)
;
00052intcodec_set_dec_reset(codec_para_t*pcodec
);
00053
00054intcodec_write(codec_para_t*pcodec,void*
buffer,intlen);
00055intcodec_checkin_pts(codec_para_t*pcodec,
unsignedlongpts);
00056intcodec_get_vbuf_state(codec_para_t*,str
uctbuf_status*);
00057intcodec_get_abuf_state(codec_para_t*,str
uctbuf_status*);
00058intcodec_get_vdec_state(codec_para_t*,str
uctvdec_status*);
00059intcodec_get_adec_state(codec_para_t*,str
uctadec_status*);
00060
00061intcodec_pause(codec_para_t*);
00062intcodec_resume(codec_para_t*);
00063intcodec_audio_search(codec_para_t*p);
00064intcodec_set_mute(codec_para_t*p,intmute
);
00065intcodec_get_volume_range(codec_para_t*,i
nt*min,int*max);
00066intcodec_set_volume(codec_para_t*,floatv
al);
00067intcodec_get_volume(codec_para_t*,float*
val);
00068intcodec_set_lrvolume(codec_para_t*,float
lvol,floatrvol);
00069intcodec_get_lrvolume(codec_para_t*,float
*lvol,float*rvol);
00070intcodec_get_mutesta(codec_para_t*);
00071intcodec_set_volume_balance(codec_para_t*,
int);/*left��0-100)right*/00072intcodec_swap_left_right(codec_para_t*);
00073intcodec_left_mono(codec_para_t*p);
00074intcodec_right_mono(codec_para_t*p);
00075intcodec_stereo(codec_para_t*p);
00076intcodec_lr_mix_set(codec_para_t*p,intena
ble);
00077intcodec_get_soundtrack(codec_para_t*p,int
*strack);
00078intcodec_audio_automute(void*priv,intaut
o_mute);
00079intcodec_audio_spectrum_switch(codec_para_t
*p,intisStart,intinterval);
00080intcodec_audio_isready(codec_para_t*p);
00081intcodec_audio_get_nb_frames(codec_para_t*
p);
00082intcodec_audio_set_audioinfo(codec_para_t*
p);
00083intcodec_pcmpara_Applied_get(codec_para_t*
p,int*pfs,int*pch);
00084
00085intcodec_get_apts(codec_para_t*pcodec);
00086intcodec_get_vpts(codec_para_t*pcodec);
00087intcodec_get_pcrscr(codec_para_t*pcodec);
00088intcodec_set_pcrscr(codec_para_t*pcodec,i
ntval);
00089intcodec_set_syncenable(codec_para_t*pcode
c,intenable);
00090intcodec_set_sync_audio_discont(codec_para_t
*pcodec,intdiscontinue);
00091intcodec_get_sync_audio_discont(codec_para_t
*pcodec);
00092intcodec_set_sync_video_discont(codec_para_t
*pcodec,intdiscontinue);
00093intcodec_get_sync_video_discont(codec_para_t
*pcodec);
00094unsignedlongcodec_get_sync_audio_discont_d
iff(codec_para_t*pcodec);
00095unsignedlongcodec_get_sync_video_discont_d
iff(codec_para_t*pcodec);
00096intcodec_set_sync_audio_discont_diff(codec_
para_t*pcodec,unsignedlongdiscontinue_diff);
00097intcodec_set_sync_video_discont_diff(codec_
para_t*pcodec,unsignedlongdiscontinue_diff);
00098intcodec_get_sub_num(codec_para_t*pcodec);
00099intcodec_get_sub_info(codec_para_t*pcodec,
subtitle_info_t*sub_info);
00100
00101intcodec_set_av_threshold(codec_para_t*pco
dec,intthreshold);
00102
00103intcodec_get_freerun_mode(codec_para_t*pco
dec);
00104intcodec_set_freerun_mode(codec_para_t*pco
dec,unsignedintmode);
00105
00106intcodec_init_audio_utils(codec_para_t*pco
dec);
00107intcodec_release_audio_utils(codec_para_t*
pcodec);
00108intcodec_set_audio_resample_ena(codec_para_t
*pcodec,unsignedlongmode);
00109intcodec_get_audio_resample_ena(codec_para_t
*pcodec);
00110intcodec_set_audio_resample_type(codec_para
_t*pcodec,unsignedlongtype);
00111
00112intcodec_set_video_delay_limited_ms(codec_p
ara_t*pcodec,intdelay_ms);
00113intcodec_get_video_delay_limited_ms(codec_p
ara_t*pcodec,int*delay_ms);
00114intcodec_set_audio_delay_limited_ms(codec_p
ara_t*pcodec,intdelay_ms);
00115intcodec_get_audio_delay_limited_ms(codec_p
ara_t*pcodec,int*delay_ms);
00116intcodec_get_audio_cur_delay_ms(codec_para_t
*pcodec,int*delay_ms);
00117intcodec_get_video_cur_delay_ms(codec_para_t
*pcodec,int*delay_ms);
00118intcodec_get_video_cur_bitrate(codec_para_t
*pcodec,int*bitrate);
00119intcodec_get_audio_cur_bitrate(codec_para_t
*pcodec,int*bitrate);
00120
00121intcodec_set_vsync_upint(codec_para_t*pcod
ec,unsignedintmode);
00122
00123intcodec_get_last_checkout_apts(codec_para_t
*pcodec,unsignedlong*apts);
00124intcodec_get_last_checkin_apts(codec_para_t
*pcodec,unsignedlong*apts);
00125intcodec_disalbe_slowsync(codec_para_t*pco
dec,intdisable_slowsync);
00126#endif
GeneratedonTueDec2201421:58:52foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
codec_ctrl.c
Gotothedocumentationofthisfile.00001
00008/*Copyright(C)2007-2011,AmlogicInc.
00009*Allrightreserved
00010*
00011*/
00012#include<stdio.h>
00013#include<stdio.h>
00014#include<string.h>
00015#include<sys/types.h>
00016#include<sys/stat.h>
00017#include<sys/poll.h>
00018#include<errno.h>
00019#include<sys/ioctl.h>
00020#include<fcntl.h>
00021#include<codec_error.h>
00022#include<codec_type.h>
00023#include<codec.h>
00024#include<audio_priv.h>
00025#include"codec_h_ctrl.h"
00026#include<adec-external-ctrl.h>
00027
00028#defineSUBTITLE_EVENT
00029#defineTS_PACKET_SIZE188
00030#defineDEMUX_PLAYER_SOURCE1
00031
00032/*-----------------------------------------
---------------------------------*/
00041/*-----------------------------------------
---------------------------------*/
00042staticintcodec_set_demux_source(codec_para
_t*pcodec,intsource)
00043{
00044intret=0;
00045
00046ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_SET_DEMUX,(unsignedlong)source);
00047if(ret<0){
00048returnret;
00049}
00050returnret;
00051}
00052
00053/*-----------------------------------------
---------------------------------*/
00061/*-----------------------------------------
---------------------------------*/
00062staticintcodec_change_buf_size(codec_para_t
*pcodec)
00063{
00064intr;
00065if(pcodec->abuf_size>0){
00066r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_AB_SIZE,pcodec->abuf_size);
00067if(r<0){
00068returnsystem_error_to_codec_err
or(r);
00069}
00070}
00071if(pcodec->vbuf_size>0){
00072r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_VB_SIZE,pcodec->vbuf_size);
00073if(r<0){
00074returnsystem_error_to_codec_err
or(r);
00075}
00076}
00077returnCODEC_ERROR_NONE;
00078}
00079/*-----------------------------------------
---------------------------------*/
00087/*-----------------------------------------
---------------------------------*/
00088staticintset_video_format(codec_para_t*p
codec)
00089{
00090intformat=pcodec->video_type;
00091intr;
00092
00093if(format<0||format>VFORMAT_MAX)
{
00094return-CODEC_ERROR_VIDEO_TYPE_UNKNO
W;
00095}
00096
00097r=codec_h_control(pcodec->handle,AMST
REAM_IOC_VFORMAT,format);
00098if(pcodec->video_pid>=0){
00099r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_VID,pcodec->video_pid);
00100if(r<0){
00101returnsystem_error_to_codec_err
or(r);
00102}
00103}
00104if(r<0){
00105returnsystem_error_to_codec_error(r
);
00106}
00107return0;
00108}
00109
00110/*-----------------------------------------
---------------------------------*/
00118/*-----------------------------------------
---------------------------------*/
00119staticintset_video_codec_info(codec_para_t
*pcodec)
00120{
00121dec_sysinfo_tam_sysinfo=pcodec->am_sy
sinfo;
00122intr;
00123
00124r=codec_h_control(pcodec->handle,AMST
REAM_IOC_SYSINFO,(unsignedlong)&am_sysinfo);
00125if(r<0){
00126returnsystem_error_to_codec_error(r
);
00127}
00128return0;
00129}
00130/*-----------------------------------------
---------------------------------*/
00138/*-----------------------------------------
---------------------------------*/
00139staticintset_audio_format(codec_para_t*p
codec)
00140{
00141intformat=pcodec->audio_type;
00142intr;
00143intcodec_r;
00144
00145if(format<0||format>AFORMAT_MAX)
{
00146return-CODEC_ERROR_AUDIO_TYPE_UNKNO
W;
00147}
00148
00149r=codec_h_control(pcodec->handle,AMST
REAM_IOC_AFORMAT,format);
00150if(r<0){
00151codec_r=system_error_to_codec_erro
r(r);
00152print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00153returncodec_r;
00154}
00155if(pcodec->audio_pid>=0){
00156r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_AID,pcodec->audio_pid);
00157if(r<0){
00158codec_r=system_error_to_codec_
error(r);
00159print_error_msg(codec_r,errno,
__FUNCTION__,__LINE__);
00160returncodec_r;
00161}
00162}
00163if(pcodec->audio_samplerate>0){
00164r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_SAMPLERATE,pcodec->audio_samplerate)
;
00165if(r<0){
00166codec_r=system_error_to_codec_
error(r);
00167print_error_msg(codec_r,errno,
__FUNCTION__,__LINE__);
00168returncodec_r;
00169}
00170}
00171if(pcodec->audio_channels>0){
00172r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_ACHANNEL,pcodec->audio_channels);
00173if(r<0){
00174codec_r=system_error_to_codec_
error(r);
00175print_error_msg(codec_r,errno,
__FUNCTION__,__LINE__);
00176returncodec_r;
00177}
00178}
00179return0;
00180}
00181
00182/*-----------------------------------------
---------------------------------*/
00190/*-----------------------------------------
---------------------------------*/
00191staticintset_audio_info(codec_para_t*pcod
ec)
00192{
00193intr;
00194intcodec_r;
00195audio_info_t*audio_info=&pcodec->audi
o_info;
00196CODEC_PRINT("set_audio_info\n");
00197r=codec_h_control(pcodec->handle,AMST
REAM_IOC_AUDIO_INFO,(unsignedlong)audio_info);
00198if(r<0){
00199codec_r=system_error_to_codec_erro
r(r);
00200print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00201returncodec_r;
00202}
00203return0;
00204}
00205
00206/*-----------------------------------------
---------------------------------*/
00214/*-----------------------------------------
---------------------------------*/
00215staticintset_sub_format(codec_para_t*pcod
ec)
00216{
00217intr;
00218
00219if(pcodec->sub_pid>=0){
00220r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_SID,pcodec->sub_pid);
00221if(r<0){
00222returnsystem_error_to_codec_err
or(r);
00223}
00224
00225r=codec_h_control(pcodec->handle,
AMSTREAM_IOC_SUB_TYPE,pcodec->sub_type);
00226if(r<0){
00227returnsystem_error_to_codec_err
or(r);
00228}
00229}
00230
00231return0;
00232}
00233
00234/*-----------------------------------------
---------------------------------*/
00242/*-----------------------------------------
---------------------------------*/
00243staticintset_ts_skip_byte(codec_para_t*pc
odec)
00244{
00245intr,skip_byte;
00246
00247skip_byte=pcodec->packet_size-TS_PAC
KET_SIZE;
00248
00249if(skip_byte<0){
00250skip_byte=0;
00251}
00252
00253r=codec_h_control(pcodec->handle,AMST
REAM_IOC_TS_SKIPBYTE,skip_byte);
00254if(r<0){
00255returnsystem_error_to_codec_error(r
);
00256}
00257
00258return0;
00259}
00260
00261/*-----------------------------------------
---------------------------------*/
00269/*-----------------------------------------
---------------------------------*/
00270staticinlineintcodec_video_es_init(codec_
para_t*pcodec)
00271{
00272CODEC_HANDLEhandle;
00273intr;
00274intcodec_r;
00275intflags=O_WRONLY;
00276if(!pcodec->has_video){
00277returnCODEC_ERROR_NONE;
00278}
00279
00280flags|=pcodec->noblock?O_NONBLOCK:
0;
00281
00282if(pcodec->video_type==VFORMAT_HEVC)
{
00283handle=codec_h_open(CODEC_VIDEO_HE
VC_DEVICE,flags);
00284}else{
00285handle=codec_h_open(CODEC_VIDEO_ES
_DEVICE,flags);
00286}
00287if(handle<0){
00288codec_r=system_error_to_codec_erro
r(handle);
00289print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00290returnCODEC_OPEN_HANDLE_FAILED;
00291}
00292pcodec->handle=handle;
00293r=set_video_format(pcodec);
00294if(r<0){
00295codec_h_close(handle);
00296codec_r=system_error_to_codec_erro
r(r);
00297print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00298returncodec_r;
00299}
00300r=set_video_codec_info(pcodec);
00301if(r<0){
00302codec_h_close(handle);
00303codec_r=system_error_to_codec_erro
r(r);
00304print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00305returncodec_r;
00306}
00307returnCODEC_ERROR_NONE;
00308}
00309
00310
00311/*-----------------------------------------
---------------------------------*/
00319/*-----------------------------------------
---------------------------------*/
00320staticinlineintcodec_audio_es_init(codec_
para_t*pcodec)
00321{
00322CODEC_HANDLEhandle;
00323intr;
00324intflags=O_WRONLY;
00325intcodec_r;
00326if(!pcodec->has_audio){
00327returnCODEC_ERROR_NONE;
00328}
00329
00330flags|=pcodec->noblock?O_NONBLOCK:
0;
00331handle=codec_h_open(CODEC_AUDIO_ES_DEV
ICE,flags);
00332if(handle<0){
00333codec_r=system_error_to_codec_erro
r(handle);
00334print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00335returnCODEC_OPEN_HANDLE_FAILED;
00336}
00337pcodec->handle=handle;
00338r=set_audio_format(pcodec);
00339if(r<0){
00340codec_h_close(handle);
00341codec_r=system_error_to_codec_erro
r(r);
00342print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00343returncodec_r;
00344}
00345
00346/*if((pcodec->audio_type==AFORMAT_ADP
CM)||(pcodec->audio_type==AFORMAT_WMAPRO)||(
pcodec->audio_type==AFORMAT_WMA)||(pcodec->aud
io_type==AFORMAT_PCM_S16BE)
00347||(pcodec->audio_type==AFORMAT_PC
M_S16LE)||(pcodec->audio_type==AFORMAT_PCM_U8)
||(pcodec->audio_type==AFORMAT_AMR)){*/
00348if(IS_AUIDO_NEED_EXT_INFO(pcodec->audi
o_type)){
00349r=set_audio_info(pcodec);
00350if(r<0){
00351codec_h_close(handle);
00352codec_r=system_error_to_codec_
error(r);
00353print_error_msg(codec_r,errno,
__FUNCTION__,__LINE__);
00354returncodec_r;
00355}
00356}
00357
00358returnCODEC_ERROR_NONE;
00359}
00360
00361/*-----------------------------------------
---------------------------------*/
00369/*-----------------------------------------
---------------------------------*/
00370staticinlineintcodec_sub_es_init(codec_pa
ra_t*pcodec)
00371{
00372#ifdefSUBTITLE_EVENT
00373intr,codec_r;
00374
00375if(pcodec->has_sub){
00376r=codec_init_sub(pcodec);
00377if(r<0){
00378codec_r=system_error_to_codec_
error(r);
00379print_error_msg(codec_r,errno,
__FUNCTION__,__LINE__);
00380returnCODEC_OPEN_HANDLE_FAILED;
00381}
00382pcodec->handle=pcodec->sub_handle;
00383
00384pcodec->sub_pid=0xffff;//fores,
subidisidentifiedforesparser
00385r=set_sub_format(pcodec);
00386if(r<0){
00387codec_r=system_error_to_codec_
error(r);
00388print_error_msg(codec_r,errno,
__FUNCTION__,__LINE__);
00389returncodec_r;
00390}
00391
00392}
00393
00394#endif
00395
00396returnCODEC_ERROR_NONE;
00397}
00398
00399/*-----------------------------------------
---------------------------------*/
00407/*-----------------------------------------
---------------------------------*/
00408staticinlineintcodec_ps_init(codec_para_t
*pcodec)
00409{
00410CODEC_HANDLEhandle;
00411intr;
00412intflags=O_WRONLY;
00413intcodec_r;
00414if(!((pcodec->has_video&&IS_VALID_PID
(pcodec->video_pid))||
00415(pcodec->has_audio&&IS_VALID_PID
(pcodec->audio_pid)))){
00416return-CODEC_ERROR_PARAMETER;
00417}
00418
00419flags|=pcodec->noblock?O_NONBLOCK:
0;
00420handle=codec_h_open(CODEC_PS_DEVICE,f
lags);
00421if(handle<0){
00422codec_r=system_error_to_codec_erro
r(handle);
00423print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00424returnCODEC_OPEN_HANDLE_FAILED;
00425}
00426pcodec->handle=handle;
00427if(pcodec->has_video){
00428r=set_video_format(pcodec);
00429if(r<0){
00430gotoerror1;
00431}
00432if((pcodec->video_type==VFORMAT_H
264)
00433||(pcodec->video_type==VFORMA
T_VC1)){
00434r=set_video_codec_info(pcodec)
;
00435if(r<0){
00436/*codec_h_close(handle);
00437codec_r=system_error_to_co
dec_error(r);
00438print_error_msg(codec_r,err
no,__FUNCTION__,__LINE__);
00439returncodec_r;*/
00440gotoerror1;
00441}
00442}
00443}
00444if(pcodec->has_audio){
00445r=set_audio_format(pcodec);
00446if(r<0){
00447gotoerror1;
00448}
00449
00450/*if((pcodec->audio_type==AFORMAT
_ADPCM)||(pcodec->audio_type==AFORMAT_WMA)||
(pcodec->audio_type==AFORMAT_WMAPRO)||(pcodec-
>audio_type==AFORMAT_PCM_S16BE)
00451||(pcodec->audio_type==AFORMA
T_PCM_S16LE)||(pcodec->audio_type==AFORMAT_PCM
_U8)
00452||(pcodec->audio_type==AFORMA
T_PCM_BLURAY)||(pcodec->audio_type==AFORMAT_AMR)
){*/
00453if(IS_AUIDO_NEED_EXT_INFO(pcodec->
audio_type)){
00454r=set_audio_info(pcodec);
00455if(r<0){
00456gotoerror1;
00457}
00458}
00459}
00460#ifdefSUBTITLE_EVENT
00461if(pcodec->has_sub){
00462r=set_sub_format(pcodec);
00463if(r<0){
00464gotoerror1;
00465}
00466
00467r=codec_init_sub(pcodec);
00468if(r<0){
00469gotoerror1;
00470}
00471}
00472#endif
00473
00474returnCODEC_ERROR_NONE;
00475error1:
00476codec_h_close(handle);
00477codec_r=system_error_to_codec_error(r)
;
00478print_error_msg(codec_r,errno,__FUNCTI
ON__,__LINE__);
00479returncodec_r;
00480
00481}
00482
00483
00484/*-----------------------------------------
---------------------------------*/
00492/*-----------------------------------------
---------------------------------*/
00493staticinlineintcodec_ts_init(codec_para_t
*pcodec)
00494{
00495CODEC_HANDLEhandle;
00496intr;
00497intflags=O_WRONLY;
00498intcodec_r;
00499if(!((pcodec->has_video&&IS_VALID_PID
(pcodec->video_pid))||
00500(pcodec->has_audio&&IS_VALID_PID
(pcodec->audio_pid)))){
00501return-CODEC_ERROR_PARAMETER;
00502}
00503
00504flags|=pcodec->noblock?O_NONBLOCK:
0;
00505handle=codec_h_open(CODEC_TS_DEVICE,f
lags);
00506if(handle<0){
00507codec_r=system_error_to_codec_erro
r(handle);
00508print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00509returnCODEC_OPEN_HANDLE_FAILED;
00510}
00511pcodec->handle=handle;
00512codec_set_demux_source(pcodec,DEMUX_PLA
YER_SOURCE);
00513if(pcodec->has_video){
00514r=set_video_format(pcodec);
00515if(r<0){
00516gotoerror1;
00517}
00518if((pcodec->video_type==VFORMAT_H
264)||(pcodec->video_type==VFORMAT_MPEG4)||(p
codec->video_type==VFORMAT_VC1)||(pcodec->video
_type==VFORMAT_AVS)||(pcodec->video_type==VFO
RMAT_MPEG12)){
00519r=set_video_codec_info(pcodec)
;
00520if(r<0){
00521codec_h_close(handle);
00522codec_r=system_error_to_co
dec_error(r);
00523print_error_msg(codec_r,err
no,__FUNCTION__,__LINE__);
00524returncodec_r;
00525}
00526}
00527}
00528if(pcodec->has_audio){
00529r=set_audio_format(pcodec);
00530if(r<0){
00531gotoerror1;
00532}
00533
00534/*if((pcodec->audio_type==AFORMAT
_ADPCM)||(pcodec->audio_type==AFORMAT_WMA)||
(pcodec->audio_type==AFORMAT_WMAPRO)||(pcodec-
>audio_type==AFORMAT_PCM_S16BE)
00535||(pcodec->audio_type==AFORMA
T_PCM_S16LE)||(pcodec->audio_type==AFORMAT_PCM
_U8)
00536||(pcodec->audio_type==AFORMA
T_PCM_BLURAY)||(pcodec->audio_type==AFORMAT_AMR)
)*/
00537if(pcodec->audio_info.valid){
00538r=set_audio_info(pcodec);
00539if(r<0){
00540gotoerror1;
00541}
00542}
00543}
00544
00545r=set_ts_skip_byte(pcodec);
00546if(r<0){
00547gotoerror1;
00548}
00549
00550#ifdefSUBTITLE_EVENT
00551if(pcodec->has_sub){
00552r=set_sub_format(pcodec);
00553if(r<0){
00554gotoerror1;
00555}
00556
00557r=codec_init_sub(pcodec);
00558if(r<0){
00559gotoerror1;
00560}
00561}
00562#endif
00563returnCODEC_ERROR_NONE;
00564error1:
00565codec_h_close(handle);
00566codec_r=system_error_to_codec_error(r)
;
00567print_error_msg(codec_r,errno,__FUNCTI
ON__,__LINE__);
00568returncodec_r;
00569
00570}
00571
00572/*-----------------------------------------
---------------------------------*/
00580/*-----------------------------------------
---------------------------------*/
00581staticinlineintcodec_rm_init(codec_para_t
*pcodec)
00582{
00583CODEC_HANDLEhandle;
00584intr;
00585intflags=O_WRONLY;
00586intcodec_r;
00587if(!((pcodec->has_video&&IS_VALID_PID
(pcodec->video_pid))||
00588(pcodec->has_audio&&IS_VALID_PID
(pcodec->audio_pid)))){
00589CODEC_PRINT("codec_rm_initfailed!v
ideo=%dvpid=%daudio=%dapid=%d\n",pcodec->has_v
ideo,pcodec->video_pid,pcodec->has_audio,pcodec
->audio_pid);
00590return-CODEC_ERROR_PARAMETER;
00591}
00592flags|=pcodec->noblock?O_NONBLOCK:
0;
00593handle=codec_h_open(CODEC_RM_DEVICE,f
lags);
00594if(handle<0){
00595codec_r=system_error_to_codec_erro
r(handle);
00596print_error_msg(codec_r,errno,__FU
NCTION__,__LINE__);
00597returnCODEC_OPEN_HANDLE_FAILED;
00598}
00599
00600pcodec->handle=handle;
00601if(pcodec->has_video){
00602r=set_video_format(pcodec);
00603if(r<0){
00604gotoerror1;
00605}
00606
00607r=set_video_codec_info(pcodec);
00608if(r<0){
00609gotoerror1;
00610}
00611}
00612if(pcodec->has_audio){
00613r=set_audio_format(pcodec);
00614if(r<0){
00615gotoerror1;
00616}
00617r=set_audio_info(pcodec);
00618if(r<0){
00619gotoerror1;
00620}
00621}
00622returnCODEC_ERROR_NONE;
00623
00624error1:
00625codec_h_close(handle);
00626codec_r=system_error_to_codec_error(r)
;
00627print_error_msg(codec_r,errno,__FUNCTI
ON__,__LINE__);
00628returncodec_r;
00629}
00630
00631/*-----------------------------------------
---------------------------------*/
00639/*-----------------------------------------
---------------------------------*/
00640intcodec_init(codec_para_t*pcodec)
00641{
00642intret;
00643//if(pcodec->has_audio)
00644//audio_stop();
00645pcodec->handle=-1;
00646pcodec->cntl_handle=-1;
00647pcodec->sub_handle=-1;
00648pcodec->audio_utils_handle=-1;
00649if(pcodec->audio_type==AFORMAT_MPEG1||
pcodec->audio_type==AFORMAT_MPEG2)
00650pcodec->audio_type=AFORMAT_MPEG;
00651switch(pcodec->stream_type){
00652caseSTREAM_TYPE_ES_VIDEO:
00653ret=codec_video_es_init(pcodec);
00654break;
00655caseSTREAM_TYPE_ES_AUDIO:
00656ret=codec_audio_es_init(pcodec);
00657break;
00658caseSTREAM_TYPE_ES_SUB:
00659ret=codec_sub_es_init(pcodec);
00660break;
00661caseSTREAM_TYPE_PS:
00662ret=codec_ps_init(pcodec);
00663break;
00664caseSTREAM_TYPE_TS:
00665ret=codec_ts_init(pcodec);
00666break;
00667caseSTREAM_TYPE_RM:
00668ret=codec_rm_init(pcodec);
00669break;
00670caseSTREAM_TYPE_UNKNOW:
00671default:
00672return-CODEC_ERROR_STREAM_TYPE_UNKN
OW;
00673}
00674if(ret!=0){
00675returnret;
00676}
00677ret=codec_init_cntl(pcodec);
00678if(ret!=CODEC_ERROR_NONE){
00679returnret;
00680}
00681ret=codec_change_buf_size(pcodec);
00682if(ret!=0){
00683return-CODEC_ERROR_SET_BUFSIZE_FAIL
ED;
00684}
00685ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_PORT_INIT,0);
00686if(ret!=0){
00687
00688return-CODEC_ERROR_INIT_FAILED;
00689}
00690if(pcodec->has_audio){
00691arm_audio_infoa_ainfo;
00692memset(&a_ainfo,0,sizeof(arm_audio_i
nfo));
00693a_ainfo.channels=pcodec->audio_chann
els;
00694a_ainfo.sample_rate=pcodec->audio_sa
mplerate;
00695a_ainfo.format=pcodec->audio_type;
00696a_ainfo.handle=pcodec->handle;
00697a_ainfo.SessionID=pcodec->Se
ssionID;
00698a_ainfo.dspdec_not_supported
=pcodec->dspdec_not_supported;
00699a_ainfo.droppcm_flag=0;
00700a_ainfo.bitrate=pcodec->audio_in
fo.bitrate;
00701a_ainfo.block_align=pcodec->audio_in
fo.block_align;
00702a_ainfo.codec_id=pcodec->audio_in
fo.codec_id;
00703a_ainfo.automute=pcodec->automute
_flag;
00704if(IS_AUIDO_NEED_EXT_INFO(pcodec->au
dio_type))
00705{
00706if(pcodec->audio_type!=AFORMAT_W
MA&&pcodec->audio_type!=AFORMAT_WMAPRO)
00707{
00708a_ainfo.extradata_size=pcod
ec->audio_info.extradata_size;
00709if(a_ainfo.extradata_size>0
&&a_ainfo.extradata_size<=AUDIO_EXTRA_DATA_SIZE)
00710memcpy((char*)a_ainfo.e
xtradata,pcodec->audio_info.extradata,a_ainfo.extr
adata_size);
00711else
00712a_ainfo.extradata_size=0
;
00713}else{
00714Asf_audio_info_tasfinfo={0
};
00715asfinfo.bitrate=pcodec->
audio_info.bitrate;
00716asfinfo.block_align=pcodec->
audio_info.block_align;
00717asfinfo.channels=pcodec->
audio_info.channels;
00718asfinfo.codec_id=pcodec->
audio_info.codec_id;
00719asfinfo.sample_rate=pcodec->
audio_info.sample_rate;
00720asfinfo.valid=pcodec->
audio_info.valid;
00721if(pcodec->audio_info.extra
data_size<=512){
00722memcpy(asfinfo.extradat
a,pcodec->audio_info.extradata,pcodec->audio_info.
extradata_size);
00723asfinfo.extradata_size=
pcodec->audio_info.extradata_size;
00724}
00725memcpy((char*)a_ainfo.extra
data,&asfinfo,sizeof(Asf_audio_info_t));
00726a_ainfo.extradata_size=size
of(Asf_audio_info_t);
00727}
00728}
00729audio_start(&pcodec->adec_priv,&a_a
info);
00730if(pcodec->avsync_threshold>0)
00731audio_set_avsync_threshold(pcode
c->adec_priv,pcodec->avsync_threshold);
00732}
00733returnret;
00734}
00735
00736voidcodec_audio_basic_init(void)
00737{
00738audio_basic_init();
00739}
00740
00741/*-----------------------------------------
---------------------------------*/
00751/*-----------------------------------------
---------------------------------*/
00752intcodec_write(codec_para_t*pcodec,void*
buffer,intlen)
00753{
00754returncodec_h_write(pcodec->handle,buf
fer,len);
00755}
00756
00757/*-----------------------------------------
---------------------------------*/
00767/*-----------------------------------------
---------------------------------*/
00768intcodec_read(codec_para_t*pcodec,void*b
uffer,intlen)
00769{
00770returncodec_h_read(pcodec->handle,buff
er,len);
00771}
00772
00773/*-----------------------------------------
---------------------------------*/
00781/*-----------------------------------------
---------------------------------*/
00782intcodec_close(codec_para_t*pcodec)
00783{
00784intres=0;
00785
00786if(pcodec->has_audio){
00787audio_stop(&pcodec->adec_priv);
00788CODEC_PRINT("[%s]audiostop
OK!\n",__FUNCTION__);
00789}
00790#ifdefSUBTITLE_EVENT
00791if(pcodec->has_sub&&pcodec->sub_handle
>=0){
00792res|=codec_close_sub_fd(pcodec->su
b_handle);
00793}
00794#endif
00795
00796res|=codec_close_cntl(pcodec);
00797res|=codec_h_close(pcodec->handle);
00798returnres;
00799}
00800
00801/*-----------------------------------------
---------------------------------*/
00807/*-----------------------------------------
---------------------------------*/
00808voidcodec_close_audio(codec_para_t*pcodec)
00809{
00810if(pcodec){
00811pcodec->has_audio=0;
00812}
00813audio_stop(&pcodec->adec_priv);
00814return;
00815}
00816
00817/*-----------------------------------------
---------------------------------*/
00823/*-----------------------------------------
---------------------------------*/
00824voidcodec_close_audio_async(codec_para_t*p
codec)
00825{
00826if(pcodec)
00827audio_stop_async(&pcodec->adec_priv)
;
00828return;
00829}
00830
00831/*-----------------------------------------
---------------------------------*/
00838/*-----------------------------------------
---------------------------------*/
00839voidcodec_resume_audio(codec_para_t*pcodec
,unsignedintorig)
00840{
00841pcodec->has_audio=orig;
00842if(pcodec->has_audio){
00843arm_audio_infoa_ainfo;
00844memset(&a_ainfo,0,sizeof(arm_audio_i
nfo));
00845a_ainfo.channels=pcodec->audio_chann
els;
00846a_ainfo.sample_rate=pcodec->audio_sa
mplerate;
00847a_ainfo.format=pcodec->audio_type;
00848a_ainfo.handle=pcodec->handle;
00849a_ainfo.dspdec_not_supported
=pcodec->dspdec_not_supported;
00850a_ainfo.bitrate=pcodec->audio_in
fo.bitrate;
00851a_ainfo.block_align=pcodec->audio_in
fo.block_align;
00852a_ainfo.codec_id=pcodec->audio_in
fo.codec_id;
00853a_ainfo.automute=pcodec->automute
_flag;
00854if(pcodec->switch_audio_fla
g){
00855a_ainfo.droppcm_flag
=pcodec->switch_audio_flag;
00856if(pcodec->stream_ty
pe==STREAM_TYPE_TS||pcodec->stream_type==STR
EAM_TYPE_PS)
00857a_ainfo.drop
pcm_flag=0;
00858pcodec->switch_audio
_flag=0;
00859}
00860if(IS_AUIDO_NEED_EXT_INFO(pcodec->au
dio_type))
00861{
00862if(pcodec->audio_type!=AFORMAT_W
MA&&pcodec->audio_type!=AFORMAT_WMAPRO)
00863{
00864a_ainfo.extradata_size=pcod
ec->audio_info.extradata_size;
00865if(a_ainfo.extradata_size>0
&&a_ainfo.extradata_size<=AUDIO_EXTRA_DATA_SIZE)
00866memcpy((char*)a_ainfo.e
xtradata,pcodec->audio_info.extradata,a_ainfo.extr
adata_size);
00867else
00868a_ainfo.extradata_size=
0;
00869}else{
00870Asf_audio_info_tasfinfo={0
};
00871asfinfo.bitrate=pcodec->
audio_info.bitrate;
00872asfinfo.block_align=pcodec->
audio_info.block_align;
00873asfinfo.channels=pcodec->
audio_info.channels;
00874asfinfo.codec_id=pcodec->
audio_info.codec_id;
00875asfinfo.sample_rate=pcodec->
audio_info.sample_rate;
00876asfinfo.valid=pcodec->
audio_info.valid;
00877if(pcodec->audio_info.extra
data_size<=512){
00878memcpy(asfinfo.extradat
a,pcodec->audio_info.extradata,pcodec->audio_info.
extradata_size);
00879asfinfo.extradata_size=
pcodec->audio_info.extradata_size;
00880}
00881memcpy((char*)a_ainfo.extra
data,&asfinfo,sizeof(Asf_audio_info_t));
00882a_ainfo.extradata_size=size
of(Asf_audio_info_t);
00883}
00884}
00885audio_start(&pcodec->adec_priv,&a_a
info);
00886}
00887return;
00888}
00889
00890/*-----------------------------------------
---------------------------------*/
00899/*-----------------------------------------
---------------------------------*/
00900intcodec_checkin_pts(codec_para_t*pcodec,
unsignedlongpts)
00901{
00902//CODEC_PRINT("[%s:%d]pts=%x(%d)\n",__FU
NCTION__,__LINE__,pts,pts/90000);
00903returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_TSTAMP,pts);
00904}
00905
00906/*-----------------------------------------
---------------------------------*/
00915/*-----------------------------------------
---------------------------------*/
00916intcodec_get_vbuf_state(codec_para_t*p,st
ructbuf_status*buf)
00917{
00918intr;
00919structam_io_paramam_io;
00920r=codec_h_control(p->handle,AMSTREAM_
IOC_VB_STATUS,(unsignedlong)&am_io);
00921memcpy(buf,&am_io.status,sizeof(*buf))
;
00922returnsystem_error_to_codec_error(r);
00923}
00924/*-----------------------------------------
---------------------------------*/
00933/*-----------------------------------------
---------------------------------*/
00934intcodec_get_abuf_state(codec_para_t*p,st
ructbuf_status*buf)
00935{
00936intr;
00937structam_io_paramam_io;
00938r=codec_h_control(p->handle,AMSTREAM_
IOC_AB_STATUS,(unsignedlong)&am_io);
00939memcpy(buf,&am_io.status,sizeof(*buf))
;
00940returnsystem_error_to_codec_error(r);
00941}
00942
00943/*-----------------------------------------
---------------------------------*/
00952/*-----------------------------------------
---------------------------------*/
00953intcodec_get_vdec_state(codec_para_t*p,st
ructvdec_status*vdec)
00954{
00955intr;
00956structam_io_paramam_io;
00957r=codec_h_control(p->handle,AMSTREAM_
IOC_VDECSTAT,(unsignedlong)&am_io);
00958if(r<0){
00959CODEC_PRINT("[codec_get_vdec_state]e
rror[%d]:%s\n",r,codec_error_msg(system_error_t
o_codec_error(r)));
00960}
00961memcpy(vdec,&am_io.vstatus,sizeof(*vde
c));
00962returnsystem_error_to_codec_error(r);
00963}
00964
00965/*-----------------------------------------
---------------------------------*/
00974/*-----------------------------------------
---------------------------------*/
00975intcodec_get_adec_state(codec_para_t*p,st
ructadec_status*adec)
00976{
00977if(get_audio_decoder()==AUDIO_ARM_DECOD
ER)
00978returnget_decoder_status(p->adec_pr
iv,adec);
00979intr;
00980structam_io_paramam_io;
00981r=codec_h_control(p->handle,AMSTREAM_
IOC_ADECSTAT,(unsignedlong)&am_io);
00982if(r==0){
00983memcpy(adec,&am_io.astatus,sizeof(
*adec));
00984}
00985returnsystem_error_to_codec_error(r);
00986}
00987
00988/*-----------------------------------------
---------------------------------*/
00996/*-----------------------------------------
---------------------------------*/
00997staticintvideo_pause(codec_para_t*p)
00998{
00999CODEC_PRINT("video_pause!\n");
01000returncodec_h_control(p->cntl_handle,A
MSTREAM_IOC_VPAUSE,1);
01001}
01002
01003/*-----------------------------------------
---------------------------------*/
01011/*-----------------------------------------
---------------------------------*/
01012staticintvideo_resume(codec_para_t*p)
01013{
01014CODEC_PRINT("video_resume!\n");
01015returncodec_h_control(p->cntl_handle,A
MSTREAM_IOC_VPAUSE,0);
01016}
01017
01018/*-----------------------------------------
---------------------------------*/
01026/*-----------------------------------------
---------------------------------*/
01027intcodec_pause(codec_para_t*p)
01028{
01029intret=CODEC_ERROR_NONE;
01030if(p){
01031CODEC_PRINT("[codec_pause]p->has_aud
io=%d\n",p->has_audio);
01032if(p->has_audio){
01033audio_pause(p->adec_priv);
01034}
01035if(p->has_video){
01036ret=video_pause(p);
01037}
01038}else{
01039ret=CODEC_ERROR_PARAMETER;
01040}
01041returnret;
01042}
01043/*-----------------------------------------
---------------------------------*/
01051/*-----------------------------------------
---------------------------------*/
01052intcodec_resume(codec_para_t*p)
01053{
01054intret=CODEC_ERROR_NONE;
01055if(p){
01056CODEC_PRINT("[codec_resume]p->has_au
dio=%d\n",p->has_audio);
01057if(p->has_audio){
01058audio_resume(p->adec_priv);
01059}
01060if(p->has_video){
01061ret=video_resume(p);
01062}
01063}else{
01064ret=CODEC_ERROR_PARAMETER;
01065}
01066returnret;
01067}
01068
01069/*-----------------------------------------
---------------------------------*/
01077/*-----------------------------------------
---------------------------------*/
01078intcodec_reset(codec_para_t*p)
01079{
01080intret;
01081ret=codec_close(p);
01082if(ret!=0){
01083returnret;
01084}
01085ret=codec_init(p);
01086CODEC_PRINT("[%s:%d]ret=%x\n",__FUNCTIO
N__,__LINE__,ret);
01087returnsystem_error_to_codec_error(ret);
01088}
01089
01090/*-----------------------------------------
---------------------------------*/
01098/*-----------------------------------------
---------------------------------*/
01099intcodec_init_sub(codec_para_t*pcodec)
01100{
01101CODEC_HANDLEsub_handle;
01102intflags=O_WRONLY;
01103flags|=pcodec->noblock?O_NONBLOCK:
0;
01104sub_handle=codec_h_open(CODEC_SUB_DEVI
CE,flags);
01105if(sub_handle<0){
01106CODEC_PRINT("get%sfailed\n",CODEC
_SUB_DEVICE);
01107returnsystem_error_to_codec_error(s
ub_handle);
01108}
01109
01110pcodec->sub_handle=sub_handle;
01111returnCODEC_ERROR_NONE;
01112}
01113
01114/*-----------------------------------------
---------------------------------*/
01120/*-----------------------------------------
---------------------------------*/
01121intcodec_open_sub_read(void)
01122{
01123CODEC_HANDLEsub_handle;
01124
01125sub_handle=codec_h_open_rd(CODEC_SUB_R
EAD_DEVICE);
01126if(sub_handle<0){
01127CODEC_PRINT("get%sfailed\n",CODEC
_SUB_READ_DEVICE);
01128returnsystem_error_to_codec_error(s
ub_handle);
01129}
01130
01131returnsub_handle;
01132}
01133
01134/*-----------------------------------------
---------------------------------*/
01142/*-----------------------------------------
---------------------------------*/
01143intcodec_close_sub(codec_para_t*pcodec)
01144{
01145intres=CODEC_ERROR_NONE;
01146
01147if(pcodec){
01148if(pcodec->sub_handle){
01149res=codec_h_close(pcodec->sub_
handle);
01150}
01151}
01152returnres;
01153}
01154
01155/*-----------------------------------------
---------------------------------*/
01163/*-----------------------------------------
---------------------------------*/
01164intcodec_close_sub_fd(CODEC_HANDLEsub_fd)
01165{
01166intres=CODEC_ERROR_NONE;
01167
01168if(sub_fd){
01169res=codec_h_close(sub_fd);
01170}
01171returnres;
01172}
01173
01174/*-----------------------------------------
---------------------------------*/
01182/*-----------------------------------------
---------------------------------*/
01183intcodec_poll_sub(codec_para_t*pcodec)
01184{
01185structpollfdsub_poll_fd[1];
01186
01187if(pcodec->sub_handle==0){
01188return0;
01189}
01190
01191sub_poll_fd[0].fd=pcodec->sub_handle;
01192sub_poll_fd[0].events=POLLOUT;
01193
01194returnpoll(sub_poll_fd,1,10);
01195}
01196
01197/*-----------------------------------------
---------------------------------*/
01206/*-----------------------------------------
---------------------------------*/
01207intcodec_poll_sub_fd(CODEC_HANDLEsub_fd,i
nttimeout)
01208{
01209structpollfdsub_poll_fd[1];
01210
01211if(sub_fd<=0){
01212return0;
01213}
01214
01215sub_poll_fd[0].fd=sub_fd;
01216sub_poll_fd[0].events=POLLOUT;
01217
01218returnpoll(sub_poll_fd,1,timeout);
01219}
01220
01221/*-----------------------------------------
---------------------------------*/
01229/*-----------------------------------------
---------------------------------*/
01230intcodec_get_sub_size(codec_para_t*pcodec)
01231{
01232intsub_size,r;
01233
01234if(pcodec->sub_handle==0){
01235CODEC_PRINT("nocontrolhandler\n");
01236return0;
01237}
01238
01239r=codec_h_control(pcodec->sub_handle,
AMSTREAM_IOC_SUB_LENGTH,(unsignedlong)&sub_size)
;
01240if(r<0){
01241returnsystem_error_to_codec_error(r
);
01242}else{
01243returnsub_size;
01244}
01245}
01246
01247/*-----------------------------------------
---------------------------------*/
01255/*-----------------------------------------
---------------------------------*/
01256intcodec_get_sub_size_fd(CODEC_HANDLEsub_f
d)
01257{
01258intsub_size,r;
01259
01260if(sub_fd<=0){
01261CODEC_PRINT("nosubhandler\n");
01262return0;
01263}
01264
01265r=codec_h_control(sub_fd,AMSTREAM_IOC
_SUB_LENGTH,(unsignedlong)&sub_size);
01266if(r<0){
01267returnsystem_error_to_codec_error(r
);
01268}else{
01269returnsub_size;
01270}
01271}
01272
01273/*-----------------------------------------
---------------------------------*/
01283/*-----------------------------------------
---------------------------------*/
01284intcodec_read_sub_data(codec_para_t*pcodec
,char*buf,unsignedintlength)
01285{
01286intdata_size=length,r,read_done=0
;
01287
01288if(pcodec->sub_handle==0){
01289CODEC_PRINT("nocontrolhandler\n");
01290return0;
01291}
01292
01293while(data_size){
01294r=codec_h_read(pcodec->sub_handle,
buf+read_done,data_size);
01295if(r<0){
01296returnsystem_error_to_codec_err
or(r);
01297}else{
01298data_size-=r;
01299read_done+=r;
01300}
01301}
01302
01303return0;
01304}
01305
01306/*-----------------------------------------
---------------------------------*/
01316/*-----------------------------------------
---------------------------------*/
01317intcodec_read_sub_data_fd(CODEC_HANDLEsub_
fd,char*buf,unsignedintlength)
01318{
01319intdata_size=length,r,read_done=0
;
01320
01321if(sub_fd<=0){
01322CODEC_PRINT("nosubhandler\n");
01323return0;
01324}
01325
01326while(data_size){
01327r=codec_h_read(sub_fd,buf+read_
done,data_size);
01328if(r<0){
01329returnsystem_error_to_codec_err
or(r);
01330}else{
01331data_size-=r;
01332read_done+=r;
01333}
01334}
01335
01336return0;
01337}
01338
01339/*-----------------------------------------
---------------------------------*/
01349/*-----------------------------------------
---------------------------------*/
01350intcodec_write_sub_data(codec_para_t*pcode
c,char*buf,unsignedintlength)
01351{
01352if(pcodec->sub_handle==0){
01353CODEC_PRINT("nocontrolhandler\n");
01354return0;
01355}
01356
01357returncodec_h_write(pcodec->sub_handle,
buf,length);
01358}
01359
01360/*-----------------------------------------
---------------------------------*/
01368/*-----------------------------------------
---------------------------------*/
01369intcodec_init_cntl(codec_para_t*pcodec)
01370{
01371CODEC_HANDLEcntl;
01372
01373
01374cntl=codec_h_open(CODEC_CNTL_DEVICE,O
_RDWR);
01375if(cntl<0){
01376CODEC_PRINT("get%sfailed\n",CODEC
_CNTL_DEVICE);
01377returnsystem_error_to_codec_error(c
ntl);
01378}
01379
01380pcodec->cntl_handle=cntl;
01381
01382returnCODEC_ERROR_NONE;
01383}
01384
01385/*-----------------------------------------
---------------------------------*/
01393/*-----------------------------------------
---------------------------------*/
01394intcodec_close_cntl(codec_para_t*pcodec)
01395{
01396intres=CODEC_ERROR_NONE;
01397
01398if(pcodec){
01399if(pcodec->cntl_handle){
01400res=codec_h_control(pcodec->cn
tl_handle,AMSTREAM_IOC_CLEAR_VIDEO,0);
01401res=codec_h_close(pcodec->cntl
_handle);
01402}
01403}
01404returnres;
01405}
01406
01407/*-----------------------------------------
---------------------------------*/
01415/*-----------------------------------------
---------------------------------*/
01416intcodec_poll_cntl(codec_para_t*pcodec)
01417{
01418structpollfdcodec_poll_fd[1];
01419
01420if(pcodec->cntl_handle==0){
01421return0;
01422}
01423
01424codec_poll_fd[0].fd=pcodec->cntl_handle
;
01425codec_poll_fd[0].events=POLLOUT;
01426
01427returnpoll(codec_poll_fd,1,10);
01428}
01429
01430/*-----------------------------------------
---------------------------------*/
01438/*-----------------------------------------
---------------------------------*/
01439intcodec_get_cntl_state(codec_para_t*pcode
c)
01440{
01441intcntl_state,r;
01442
01443if(pcodec->cntl_handle==0){
01444CODEC_PRINT("nocontrolhandler\n");
01445return0;
01446}
01447
01448r=codec_h_control(pcodec->cntl_handle,
AMSTREAM_IOC_TRICK_STAT,(unsignedlong)&cntl_sta
te);
01449if(r<0){
01450returnsystem_error_to_codec_error(r
);
01451}else{
01452returncntl_state;
01453}
01454}
01455
01456/*-----------------------------------------
---------------------------------*/
01465/*-----------------------------------------
---------------------------------*/
01466intcodec_set_cntl_mode(codec_para_t*pcodec
,unsignedintmode)
01467{
01468returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_TRICKMODE,(unsignedlong)mode);
01469}
01470
01471intcodec_set_mode(codec_para_t*pcodec,uns
ignedintmode)
01472{
01473returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_TRICKMODE,(unsignedlong)mode);
01474}
01475/*-----------------------------------------
---------------------------------*/
01484/*-----------------------------------------
---------------------------------*/
01485intcodec_set_cntl_avthresh(codec_para_t*pc
odec,unsignedintavthresh)
01486{
01487returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_AVTHRESH,(unsignedlong)avthresh
);
01488}
01489
01490/*-----------------------------------------
---------------------------------*/
01500/*-----------------------------------------
---------------------------------*/
01501intcodec_set_cntl_syncthresh(codec_para_t*
pcodec,unsignedintsyncthresh)
01502{
01503returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SYNCTHRESH,(unsignedlong)syncth
resh);
01504}
01505
01506/*-----------------------------------------
---------------------------------*/
01514/*-----------------------------------------
---------------------------------*/
01515intcodec_reset_audio(codec_para_t*pcodec)
01516{
01517returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_AUDIO_RESET,0);
01518}
01519
01520/*-----------------------------------------
---------------------------------*/
01528/*-----------------------------------------
---------------------------------*/
01529intcodec_reset_subtile(codec_para_t*pcodec
)
01530{
01531returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SUB_RESET,0);
01532}
01533
01534/*-----------------------------------------
---------------------------------*/
01542/*-----------------------------------------
---------------------------------*/
01543intcodec_set_audio_pid(codec_para_t*pcodec
)
01544{
01545returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_AID,pcodec->audio_pid);
01546}
01547
01548/*-----------------------------------------
---------------------------------*/
01556/*-----------------------------------------
---------------------------------*/
01557intcodec_set_sub_id(codec_para_t*pcodec)
01558{
01559returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SID,pcodec->sub_pid);
01560}
01561
01562/*-----------------------------------------
---------------------------------*/
01570/*-----------------------------------------
---------------------------------*/
01571intcodec_set_sub_type(codec_para_t*pcodec)
01572{
01573returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SUB_TYPE,pcodec->sub_type);
01574}
01575
01576/*-----------------------------------------
---------------------------------*/
01584/*-----------------------------------------
---------------------------------*/
01585intcodec_audio_reinit(codec_para_t*pcodec)
01586{
01587intret;
01588ret=set_audio_format(pcodec);
01589if(!ret&&pcodec->audio_info.valid)
{
01590ret=set_audio_info(pcodec)
;
01591}
01592returnret;
01593}
01594
01595/*-----------------------------------------
---------------------------------*/
01603/*-----------------------------------------
---------------------------------*/
01604intcodec_set_dec_reset(codec_para_t*pcodec
)
01605{
01606returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SET_DEC_RESET,0);
01607}
01608
01609/*-----------------------------------------
---------------------------------*/
01617/*-----------------------------------------
---------------------------------*/
01618intcodec_audio_isready(codec_para_t*p)
01619{
01620intaudio_isready=1;
01621if(!p){
01622CODEC_PRINT("[%s]ERRORinvalidpoint
er!\n",__FUNCTION__);
01623return-1;
01624}
01625if(p->has_audio){
01626audio_isready=audio_dec_ready(p->a
dec_priv);
01627}
01628
01629returnaudio_isready;
01630}
01631
01632/*-----------------------------------------
---------------------------------*/
01640/*-----------------------------------------
---------------------------------*/
01641intcodec_audio_get_nb_frames(codec_para_t*
p)
01642{
01643intaudio_nb_frames=-1;
01644if(!p){
01645CODEC_PRINT("[%s]ERRORinvalidpoint
er!\n",__FUNCTION__);
01646return-1;
01647}
01648
01649if(p->has_audio){
01650audio_nb_frames=audio_get_decoded_
nb_frames(p->adec_priv);
01651}
01652//CODEC_PRINT("[%s]getaudiodecoded
framenumber[%d]!\n",__FUNCTION__,audio_nb_fram
es);
01653returnaudio_nb_frames;
01654}
01655
01656/*-----------------------------------------
---------------------------------*/
01664/*-----------------------------------------
---------------------------------*/
01665intcodec_get_apts(codec_para_t*pcodec)
01666{
01667unsignedintapts;
01668intret;
01669
01670if(!pcodec){
01671CODEC_PRINT("[%s]ERRORinvalidpoint
er!\n",__FUNCTION__);
01672return-1;
01673}
01674
01675ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_APTS,(unsignedlong)&apts);
01676if(ret<0){
01677CODEC_PRINT("[%s]ioctlfailed%d\n",
__FUNCTION__,ret);
01678return-1;
01679}
01680
01681returnapts;
01682}
01683
01684/*-----------------------------------------
---------------------------------*/
01692/*-----------------------------------------
---------------------------------*/
01693intcodec_get_vpts(codec_para_t*pcodec)
01694{
01695unsignedintvpts;
01696intret;
01697
01698if(!pcodec){
01699CODEC_PRINT("[%s]ERRORinvalidpoint
er!\n",__FUNCTION__);
01700return-1;
01701}
01702
01703ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_VPTS,(unsignedlong)&vpts);
01704if(ret<0){
01705CODEC_PRINT("[%s]ioctlfailed%d\n",
__FUNCTION__,ret);
01706return-1;
01707}
01708
01709returnvpts;
01710}
01711
01712/*-----------------------------------------
---------------------------------*/
01720/*-----------------------------------------
---------------------------------*/
01721intcodec_get_pcrscr(codec_para_t*pcodec)
01722{
01723unsignedintpcrscr;
01724intret;
01725
01726if(!pcodec){
01727CODEC_PRINT("[%s]ERRORinvalidpoint
er!\n",__FUNCTION__);
01728return-1;
01729}
01730
01731ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_PCRSCR,(unsignedlong)&pcrscr);
01732if(ret<0){
01733CODEC_PRINT("[%s]ioctlfailed%d\n",
__FUNCTION__,ret);
01734return-1;
01735}
01736
01737returnpcrscr;
01738}
01739
01740/*-----------------------------------------
---------------------------------*/
01749/*-----------------------------------------
---------------------------------*/
01750intcodec_set_pcrscr(codec_para_t*pcodec,i
ntval)
01751{
01752unsignedintpcrscr;
01753intret;
01754
01755if(!pcodec){
01756CODEC_PRINT("[%s]ERRORinvalidpoint
er!\n",__FUNCTION__);
01757return-1;
01758}
01759
01760ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_SET_PCRSCR,val);
01761if(ret<0){
01762CODEC_PRINT("[%s]ioctlfailed%d\n",
__FUNCTION__,ret);
01763return-1;
01764}
01765
01766return0;
01767}
01768
01769/*-----------------------------------------
---------------------------------*/
01778/*-----------------------------------------
---------------------------------*/
01779intcodec_set_syncenable(codec_para_t*pcode
c,intenable)
01780{
01781returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SYNCENABLE,(unsignedlong)enable
);
01782}
01783
01784/*-----------------------------------------
---------------------------------*/
01793/*-----------------------------------------
---------------------------------*/
01794intcodec_set_sync_audio_discont(codec_para_t
*pcodec,intdiscontinue)
01795{
01796returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SET_SYNC_ADISCON,(unsignedlong)
discontinue);
01797}
01798
01799/*-----------------------------------------
---------------------------------*/
01808/*-----------------------------------------
---------------------------------*/
01809intcodec_set_sync_video_discont(codec_para_t
*pcodec,intdiscontinue)
01810{
01811returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SET_SYNC_VDISCON,(unsignedlong)
discontinue);
01812}
01813
01814/*-----------------------------------------
---------------------------------*/
01822/*-----------------------------------------
---------------------------------*/
01823intcodec_get_sync_audio_discont(codec_para_t
*pcodec)
01824{
01825intdiscontinue=0;
01826intret;
01827
01828ret=codec_h_control(pcodec->cntl_handle
,AMSTREAM_IOC_GET_SYNC_ADISCON,(unsignedlong)&d
iscontinue);
01829if(ret<0){
01830returnret;
01831}
01832returndiscontinue;
01833}
01834
01835/*-----------------------------------------
---------------------------------*/
01843/*-----------------------------------------
---------------------------------*/
01844intcodec_get_sync_video_discont(codec_para_t
*pcodec)
01845{
01846intdiscontinue=0;
01847intret;
01848
01849ret=codec_h_control(pcodec->cntl_handle
,AMSTREAM_IOC_GET_SYNC_VDISCON,(unsignedlong)&d
iscontinue);
01850if(ret<0){
01851returnret;
01852}
01853returndiscontinue;
01854}
01855
01856/*-----------------------------------------
---------------------------------*/
01864/*-----------------------------------------
---------------------------------*/
01865unsignedlongcodec_get_sync_audio_discont_d
iff(codec_para_t*pcodec)
01866{
01867unsignedlongdiscontinue_diff=0;
01868intret;
01869
01870ret=codec_h_control(pcodec->cntl_handle
,AMSTREAM_IOC_GET_SYNC_ADISCON_DIFF,(unsignedlo
ng)&discontinue_diff);
01871if(ret<0){
01872returnret;
01873}
01874returndiscontinue_diff;
01875}
01876
01877/*-----------------------------------------
---------------------------------*/
01885/*-----------------------------------------
---------------------------------*/
01886unsignedlongcodec_get_sync_video_discont_d
iff(codec_para_t*pcodec)
01887{
01888unsignedlongdiscontinue_diff=0;
01889intret;
01890
01891ret=codec_h_control(pcodec->cntl_handle
,AMSTREAM_IOC_GET_SYNC_VDISCON_DIFF,(unsignedlo
ng)&discontinue_diff);
01892if(ret<0){
01893returnret;
01894}
01895returndiscontinue_diff;
01896}
01897
01898/*-----------------------------------------
---------------------------------*/
01907/*-----------------------------------------
---------------------------------*/
01908intcodec_set_sync_audio_discont_diff(codec_
para_t*pcodec,unsignedlongdiscontinue_diff)
01909{
01910returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SET_SYNC_ADISCON_DIFF,discontinu
e_diff);
01911}
01912
01913/*-----------------------------------------
---------------------------------*/
01922/*-----------------------------------------
---------------------------------*/
01923intcodec_set_sync_video_discont_diff(codec_
para_t*pcodec,unsignedlongdiscontinue_diff)
01924{
01925returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SET_SYNC_VDISCON_DIFF,discontinu
e_diff);
01926}
01927
01928/*-----------------------------------------
---------------------------------*/
01936/*-----------------------------------------
---------------------------------*/
01937intcodec_get_sub_num(codec_para_t*pcodec)
01938{
01939intsub_num=0;
01940intret;
01941
01942ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_SUB_NUM,(unsignedlong)&sub_num);
01943if(ret<0){
01944returnret;
01945}
01946returnsub_num;
01947}
01948
01949/*-----------------------------------------
---------------------------------*/
01958/*-----------------------------------------
---------------------------------*/
01959intcodec_get_sub_info(codec_para_t*pcodec,
subtitle_info_t*sub_info)
01960{
01961intret=0;
01962inti;
01963if(!sub_info){
01964CODEC_PRINT("[codec_get_sub_
info]error,NULLpointer!\n");
01965ret=CODEC_ERROR_INVAL;
01966returnret;
01967}
01968ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_SUB_INFO,(unsignedlong)sub_info);
01969if(ret<0){
01970returnret;
01971}
01972returnret;
01973}
01974
01975/*******************************************
*************************************
01976*
01977*theinterfaceforavsyncthresholdsetting
01978*
01979********************************************
*************************************/
01980intcodec_set_av_threshold(codec_para_t*pco
dec,intthreshold)
01981{
01982intret=0;
01983if(pcodec->has_audio)
01984{
01985audio_set_av_sync_threshold(pcodec->
adec_priv,threshold);
01986}
01987else
01988{
01989CODEC_PRINT("[codec_set_av_threshold
]error,noaudio!\n");
01990ret=-1;
01991}
01992
01993returnret;
01994}
01995
01996/*-----------------------------------------
---------------------------------*/
02004/*-----------------------------------------
---------------------------------*/
02005intcodec_get_freerun_mode(codec_para_t*pco
dec)
02006{
02007intfreerun_mode,r;
02008
02009if(pcodec->cntl_handle==0){
02010CODEC_PRINT("nocontrolhandler\n");
02011return0;
02012}
02013
02014r=codec_h_control(pcodec->cntl_handle,
AMSTREAM_IOC_GET_FREERUN_MODE,(unsignedlong)&fr
eerun_mode);
02015if(r<0){
02016returnsystem_error_to_codec_error(r
);
02017}else{
02018returnfreerun_mode;
02019}
02020}
02021
02022/*-----------------------------------------
---------------------------------*/
02031/*-----------------------------------------
---------------------------------*/
02032intcodec_set_freerun_mode(codec_para_t*pco
dec,unsignedintmode)
02033{
02034returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SET_FREERUN_MODE,(unsignedlong)
mode);
02035}
02036
02037/*-----------------------------------------
---------------------------------*/
02045/*-----------------------------------------
---------------------------------*/
02046intcodec_init_audio_utils(codec_para_t*pco
dec)
02047{
02048CODEC_HANDLEaudio_utils;
02049
02050audio_utils=codec_h_open(CODEC_AUDIO_U
TILS_DEVICE,O_RDONLY);
02051if(audio_utils<0){
02052CODEC_PRINT("get%sfailed\n",CODEC
_AUDIO_UTILS_DEVICE);
02053returnsystem_error_to_codec_error(a
udio_utils);
02054}
02055
02056pcodec->audio_utils_handle=audio_utils
;
02057
02058returnCODEC_ERROR_NONE;
02059}
02060
02061/*-----------------------------------------
---------------------------------*/
02069/*-----------------------------------------
---------------------------------*/
02070intcodec_release_audio_utils(codec_para_t*
pcodec)
02071{
02072if(pcodec){
02073if(pcodec->audio_utils_handle>=0)
02074codec_h_close(pcodec->audio_util
s_handle);
02075}
02076
02077pcodec->audio_utils_handle=-1;
02078
02079returnCODEC_ERROR_NONE;
02080}
02081
02082/*-----------------------------------------
---------------------------------*/
02090/*-----------------------------------------
---------------------------------*/
02091intcodec_set_audio_resample_ena(codec_para_t
*pcodec,unsignedlongmode)
02092{
02093returncodec_h_control(pcodec->audio_uti
ls_handle,AMAUDIO_IOC_SET_RESAMPLE_ENA,mode);
02094}
02095
02096/*-----------------------------------------
---------------------------------*/
02104/*-----------------------------------------
---------------------------------*/
02105intcodec_get_audio_resample_ena(codec_para_t
*pcodec)
02106{
02107unsignedlongaudio_resample_ena;
02108intret;
02109ret=codec_h_control(pcodec->audio_util
s_handle,AMAUDIO_IOC_GET_RESAMPLE_ENA,&audio_res
ample_ena);
02110if(ret<0){
02111returnsystem_error_to_codec_error(r
et);
02112}else{
02113returnaudio_resample_ena;
02114}
02115}
02116
02117/*-----------------------------------------
---------------------------------*/
02125/*-----------------------------------------
---------------------------------*/
02126intcodec_set_audio_resample_type(codec_para
_t*pcodec,unsignedlongtype)
02127{
02128returncodec_h_control(pcodec->audio_uti
ls_handle,AMAUDIO_IOC_SET_RESAMPLE_TYPE,type);
02129}
02130
02131/*-----------------------------------------
---------------------------------*/
02139/*-----------------------------------------
---------------------------------*/
02140intcodec_set_video_delay_limited_ms(codec_p
ara_t*pcodec,intdelay_ms)
02141{
02142returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SET_VIDEO_DELAY_LIMIT_MS,delay_ms);
02143}
02144/*-----------------------------------------
---------------------------------*/
02152/*-----------------------------------------
---------------------------------*/
02153intcodec_get_video_delay_limited_ms(codec_p
ara_t*pcodec,int*delay_ms)
02154{
02155returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_GET_VIDEO_DELAY_LIMIT_MS,delay_ms);
02156}
02157
02158
02159/*-----------------------------------------
---------------------------------*/
02167/*-----------------------------------------
---------------------------------*/
02168intcodec_set_audio_delay_limited_ms(codec_p
ara_t*pcodec,intdelay_ms)
02169{
02170returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SET_AUDIO_DELAY_LIMIT_MS,delay_ms);
02171}
02172
02173/*-----------------------------------------
---------------------------------*/
02181/*-----------------------------------------
---------------------------------*/
02182intcodec_get_audio_delay_limited_ms(codec_p
ara_t*pcodec,int*delay_ms)
02183{
02184returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_GET_AUDIO_DELAY_LIMIT_MS,delay_ms);
02185}
02186
02187/*-----------------------------------------
---------------------------------*/
02195/*-----------------------------------------
---------------------------------*/
02196intcodec_get_audio_cur_delay_ms(codec_para_t
*pcodec,int*delay_ms)
02197{
02198intabuf_delay=0;
02199intadec_delay=0;
02200intret=0;
02201ret=codec_h_control(pcodec->handle,AM
STREAM_IOC_GET_AUDIO_CUR_DELAY_MS,&abuf_delay);
02202if(ret<0){
02203CODEC_PRINT("[%s]ioctlfailed%d\n",
__FUNCTION__,ret);
02204return-1;
02205}
02206if(pcodec->has_audio){
02207adec_delay=audio_get_decoded_pcm_d
elay(pcodec->adec_priv);
02208if(adec_delay<0)
02209adec_delay=0;
02210}
02211*delay_ms=abuf_delay+adec_dela
y;
02212returnret;
02213}
02214
02215
02216
02217/*-----------------------------------------
---------------------------------*/
02225/*-----------------------------------------
---------------------------------*/
02226intcodec_get_video_cur_delay_ms(codec_para_t
*pcodec,int*delay_ms)
02227{
02228returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_GET_VIDEO_CUR_DELAY_MS,delay_ms);
02229}
02230
02231/*-----------------------------------------
---------------------------------*/
02239/*-----------------------------------------
---------------------------------*/
02240intcodec_get_video_cur_bitrate(codec_para_t
*pcodec,int*bitrate)
02241{
02242returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_GET_VIDEO_AVG_BITRATE_BPS,bitrate);
02243}
02244
02245
02246/*-----------------------------------------
---------------------------------*/
02254/*-----------------------------------------
---------------------------------*/
02255intcodec_get_audio_cur_bitrate(codec_para_t
*pcodec,int*bitrate)
02256{
02257returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_GET_AUDIO_AVG_BITRATE_BPS,bitrate);
02258}
02259
02260/*-----------------------------------------
---------------------------------*/
02269/*-----------------------------------------
---------------------------------*/
02270intcodec_set_vsync_upint(codec_para_t*pcod
ec,unsignedintmode)
02271{
02272returncodec_h_control(pcodec->cntl_hand
le,AMSTREAM_IOC_SET_VSYNC_UPINT,(unsignedlong)m
ode);
02273}
02274intcodec_set_drmmode(codec_para_t*pcodec,
unsignedintsetval)
02275{
02276returncodec_h_control(pcodec->handle,A
MSTREAM_IOC_SET_DRMMODE,setval);
02277}
02278
02283intcodec_get_last_checkout_apts(codec_para_t
*pcodec,unsignedlong*apts)
02284{
02285returncodec_h_control(pcodec->handle,AMS
TREAM_IOC_GET_LAST_CHECKOUT_APTS,apts);
02286}
02287
02288intcodec_get_last_checkin_apts(codec_para_t
*pcodec,unsignedlong*apts)
02289{
02290returncodec_h_control(pcodec->handle,AMS
TREAM_IOC_GET_LAST_CHECKIN_APTS,apts);
02291}
02292
02301intcodec_get_pcm_level(codec_para_t*pcodec
,unsignedint*level)
02302{
02303returnaudio_get_pcm_level(pcodec->adec_pr
iv);
02304}
02305
02306intcodec_set_skip_bytes(codec_para_t*pcode
c,unsignedintbytes)
02307{
02308returnaudio_set_skip_bytes(pcodec->adec_p
riv);
02309}
02310
02311intcodec_get_dsp_apts(codec_para_t*pcodec,
unsignedint*apts)
02312{
02313returnaudio_get_pts(pcodec->adec_priv,ap
ts);
02314}
02315
02316/*-----------------------------------------
---------------------------------*/
02324/*-----------------------------------------
---------------------------------*/
02325intcodec_get_cntl_vpts(codec_para_t*pcodec
)
02326{
02327intcntl_vpts,r;
02328
02329if(pcodec->cntl_handle==0){
02330CODEC_PRINT("nocontrolhandler\n");
02331return0;
02332}
02333
02334r=codec_h_control(pcodec->cntl_handle,
AMSTREAM_IOC_GET_TRICK_VPTS,(unsignedlong)&cntl
_vpts);
02335if(r<0){
02336returnsystem_error_to_codec_error(r
);
02337}else{
02338returncntl_vpts;
02339}
02340}
02341
02342/*-----------------------------------------
---------------------------------*/
02351/*-----------------------------------------
---------------------------------*/
02352intcodec_disalbe_slowsync(codec_para_t*pco
dec,intdisable_slowsync)
02353{
02354intcntl_vpts,r;
02355
02356if(pcodec->cntl_handle==0){
02357CODEC_PRINT("nocontrolhandler\n");
02358return0;
02359}
02360
02361r=codec_h_control(pcodec->cntl_handle,
AMSTREAM_IOC_DISABLE_SLOW_SYNC,(unsignedlong)di
sable_slowsync);
02362if(r<0){
02363returnsystem_error_to_codec_error(r
);
02364}else{
02365return0;
02366}
02367}
02368
GeneratedonTueDec2201421:58:54foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
codec_error.h
Gotothedocumentationofthisfile.00001
00008/*Copyright(C)2007-2011,AmlogicInc.
00009*Allrightreserved
00010*
00011*/
00012
00013#ifndefCODEC_ERROR_H_
00014#defineCODEC_ERROR_H_
00015
00016#defineC_PAE
(0x01000000)
00017
00018#defineCODEC_ERROR_NONE
(0)
00019#defineCODEC_ERROR_INVAL
(C_PAE|1)
00020#defineCODEC_ERROR_NOMEM
(C_PAE|2)
00021#defineCODEC_ERROR_BUSY
(C_PAE|3)
00022#defineCODEC_ERROR_IO
(C_PAE|4)
00023#defineCODEC_ERROR_PARAMETER
(C_PAE|5)
00024#defineCODEC_ERROR_AUDIO_TYPE_UNKNOW
(C_PAE|6)
00025#defineCODEC_ERROR_VIDEO_TYPE_UNKNOW
(C_PAE|7)
00026#defineCODEC_ERROR_STREAM_TYPE_UNKNOW
(C_PAE|8)
00027#defineCODEC_ERROR_VDEC_TYPE_UNKNOW
(C_PAE|9)
00028
00029#defineCODEC_ERROR_INIT_FAILED
(C_PAE|10)
00030#defineCODEC_ERROR_SET_BUFSIZE_FAILED
(C_PAE|11)
00031#defineCODEC_OPEN_HANDLE_FAILED
(C_PAE|12)
00032
00033
00034
00035
00036#endif
00037
GeneratedonTueDec2201421:58:54foramcodecMyProjectby1.7.6.1
MainPage Classes FilesFileList FileMembers
amcodecMyProject
codec_msg.h
Gotothedocumentationofthisfile.00001
00008/*Copyright(C)2007-2011,AmlogicInc.
00009*Allrightreserved
00010*
00011*/
00012#ifndefCODEC_MSG_H
00013#defineCODEC_MSG_H
00014
00015constchar*codec_error_msg(interror);
00016intsystem_error_to_codec_error(interror);
00017voidprint_error_msg(interror,intsyserr,
char*func,intline);
00018
00019#endif
GeneratedonTueDec2201421:58:54foramcodecMyProjectby1.7.6.1