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

amcodecMy Project - documentation.help · amcodecMy Project Class List Here are the classes, structs, unions and interfaces with brief descriptions: arm_audio_info Asf_audio_info_t

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

MainPage Classes FilesClassList ClassIndex ClassMembers

amcodecMyProject

ClassList

Herearetheclasses,structs,unionsandinterfaceswithbriefdescriptions:arm_audio_infoAsf_audio_info_taudio_info_tcodec_para_tdec_sysinfo_tsubtitle_info_t

GeneratedonTueDec2201421:59:01foramcodecMyProjectby1.7.6.1

MainPage Classes FilesClassList ClassIndex ClassMembers

PublicAttributes

amcodecMyProject

arm_audio_infoStructReference

Listofallmembers.

PublicAttributes

int sample_rate audiostreamsamplerateint channels

audiostreamchannelsint format

codecformatidint bitrateint block_alignint codec_idint handle

codecdevicehandlerint extradata_size

extradatasizechar extradata[AUDIO_EXTRA_DATA_SIZE]int SessionIDint dspdec_not_supportedint droppcm_flagint automute

DetailedDescription

Definitionatline116offilecodec_type.h.

Thedocumentationforthisstructwasgeneratedfromthefollowingfile:

codec_type.h

GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1

MainPage Classes FilesClassList ClassIndex ClassMembers

PublicAttributes

amcodecMyProject

Asf_audio_info_tStructReference

Listofallmembers.

PublicAttributes

int valid audioextradatavalid(1)orinvalid(0),setbydspint sample_rate

audiostreamsamplerateint channels

audiostreamchannelsint bitrate

audiostreambitrateint codec_id

codecformatidint block_align

audioblockalignfromffmpegint extradata_size

extradatasizechar extradata[512]

DetailedDescription

Definitionatline55offilecodec_type.h.

Thedocumentationforthisstructwasgeneratedfromthefollowingfile:

codec_type.h

GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1

MainPage Classes FilesClassList ClassIndex ClassMembers

PublicAttributes

amcodecMyProject

audio_info_tStructReference

Listofallmembers.

PublicAttributes

int valid audioextradatavalid(1)orinvalid(0),setbydspint sample_rate

audiostreamsamplerateint channels

audiostreamchannelsint bitrate

audiostreambitrateint codec_id

codecformatidint block_align

audioblockalignfromffmpegint extradata_size

extradatasizechar extradata[AUDIO_EXTRA_DATA_SIZE]

DetailedDescription

Definitionatline44offilecodec_type.h.

Thedocumentationforthisstructwasgeneratedfromthefollowingfile:

codec_type.h

GeneratedonTueDec2201421:58:59foramcodecMyProjectby1.7.6.1

MainPage Classes FilesClassList ClassIndex ClassMembers

PublicAttributes

amcodecMyProject

codec_para_tStructReference

Collaborationdiagramforcodec_para_t:

[legend]

Listofallmembers.

PublicAttributes

CODEC_HANDLE handle codecdevicehandlerCODEC_HANDLE cntl_handle videocontroldevicehandlerCODEC_HANDLE sub_handle subtiledevicehandlerCODEC_HANDLE audio_utils_handle audioutilshandler

stream_type_t stream_type streamtype(es,ps,rm,ts)

unsignedint has_video:1 streamhasvideo(1)ornot(0)

unsignedint has_audio:1 streamhasaudio(1)ornot(0)

unsignedint has_sub:1 streamhassubtitle(1)ornot(0)

unsignedint noblock:1 codecdeviceisNONBLOCK(1)ornot(0)

int video_type streamvideotype(H264,VC1...)

int audio_type streamaudiotype(PCM,WMA...)

int sub_type streamsubtitletype(TXT,SSA...)

int video_pid streamvideopid

int audio_pid streamaudiopid

int sub_pid streamsubtitlepid

int audio_channels streamaudiochannelnumber

int audio_samplerate steramaudiosamplerate

int vbuf_size videobuffersizeofcodecdevice

int abuf_size audiobuffersizeofcodecdevice

dec_sysinfo_t am_sysinfo systeminformationforvideo

audio_info_t audio_info audioinformationpasstoaudiodsp

int packet_size datasizeperpacket

int avsync_threshold foradecinms>

void* adec_priv foradec>

int SessionIDint dspdec_not_supportedint switch_audio_flagint automute_flag

DetailedDescription

Definitionatline66offilecodec_type.h.

Thedocumentationforthisstructwasgeneratedfromthefollowingfile:

codec_type.h

GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1

MainPage Classes FilesClassList ClassIndex ClassMembers

PublicAttributes

amcodecMyProject

dec_sysinfo_tStructReference

Listofallmembers.

PublicAttributes

unsignedint format videoformat,suchasH264,MPEG2...

unsignedint width videosourcewidth

unsignedint height videosourceheight

unsignedint rate videosourceframeduration

unsignedint extra extradatainformationofvideostream

unsignedint status statusofvideostream

unsignedint ratio aspectratioofvideosource

void* param otherparametersforvideodecoderunsignedlonglong ratio64 aspectratioofvideosource

DetailedDescription

Definitionatline32offilecodec_type.h.

Thedocumentationforthisstructwasgeneratedfromthefollowingfile:

codec_type.h

GeneratedonTueDec2201421:59:00foramcodecMyProjectby1.7.6.1

MainPage Classes FilesClassList ClassIndex ClassMembers

PublicAttributes

amcodecMyProject

subtitle_info_tStructReference

Listofallmembers.

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