amcodecmy project - documentation.help · amcodecmy project class list here are the classes,...

219
Main Page Classes Files Class List Class Index Class Members amcodecMy Project Class List Here are the classes, structs, unions and interfaces with brief descriptions: arm_audio_info Asf_audio_info_t audio_info_t codec_para_t dec_sysinfo_t subtitle_info_t Generated on Tue Dec 2 2014 21:59:01 for amcodecMy Project by 1.7.6.1

Upload: others

Post on 24-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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.

PublicAttributes

signedchar idunsignedchar widthunsignedchar heightunsignedchar type

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.

Defines

#define SUBTITLE_EVENT#define TS_PACKET_SIZE188#define DEMUX_PLAYER_SOURCE1

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

Typedefs

typedefint CODEC_HANDLE

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