summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--Android.mk26
-rw-r--r--tv_input.cpp246
-rw-r--r--tvapi/Android.mk1
-rw-r--r--tvapi/android/Android.mk1
-rw-r--r--tvapi/android/include/ITv.h51
-rw-r--r--tvapi/android/include/ITvClient.h30
-rw-r--r--tvapi/android/include/ITvService.h35
-rw-r--r--tvapi/android/include/Tv.h82
-rw-r--r--tvapi/android/include/tvcmd.h594
-rw-r--r--tvapi/android/jni/Android.mk66
-rw-r--r--tvapi/android/jni/android_amlogic_tv.cpp456
-rw-r--r--tvapi/android/jni/cfbc_jni.cpp167
-rw-r--r--tvapi/android/jni/cfbc_test.cpp43
-rw-r--r--tvapi/android/libtvbinder/Android.mk24
-rw-r--r--tvapi/android/libtvbinder/ITv.cpp145
-rw-r--r--tvapi/android/libtvbinder/ITvClient.cpp59
-rw-r--r--tvapi/android/libtvbinder/ITvService.cpp51
-rw-r--r--tvapi/android/libtvbinder/Tv.cpp189
-rw-r--r--tvapi/android/tvserver/Android.mk85
-rw-r--r--tvapi/android/tvserver/TvService.cpp4375
-rw-r--r--tvapi/android/tvserver/TvService.h83
-rw-r--r--tvapi/android/tvserver/main.cpp23
-rw-r--r--tvapi/build/include/.gitignore0
-rw-r--r--tvapi/build/include/xxxconfig.h1
-rw-r--r--tvapi/docs/TVMiddleware初期.wps252
-rw-r--r--tvapi/docs/tv.uml6093
-rw-r--r--tvapi/libtv/Android.mk224
-rw-r--r--tvapi/libtv/audio/audio_alsa.cpp1213
-rw-r--r--tvapi/libtv/audio/audio_alsa.h131
-rw-r--r--tvapi/libtv/audio/audio_android.cpp1035
-rw-r--r--tvapi/libtv/audio/audio_android.h79
-rw-r--r--tvapi/libtv/audio/audio_android_effect.cpp591
-rw-r--r--tvapi/libtv/audio/audio_android_effect.h66
-rw-r--r--tvapi/libtv/audio/audio_api.cpp2470
-rw-r--r--tvapi/libtv/audio/audio_api.h324
-rw-r--r--tvapi/libtv/audio/audio_effect.cpp228
-rw-r--r--tvapi/libtv/audio/audio_effect.h32
-rw-r--r--tvapi/libtv/include/amstream.h263
-rw-r--r--tvapi/libtv/include/amvecm.h68
-rw-r--r--tvapi/libtv/include/cm.h153
-rw-r--r--tvapi/libtv/include/hdmirx_cec.h331
-rw-r--r--tvapi/libtv/include/ve.h219
-rw-r--r--tvapi/libtv/projects/Android.mk1
-rw-r--r--tvapi/libtv/projects/haier_360_v1/CTvHaierDtmb360.cpp83
-rw-r--r--tvapi/libtv/projects/haier_360_v1/CTvHaierDtmb360.h18
-rw-r--r--tvapi/libtv/projects/haier_360_v1/haier_360_v1.h0
-rw-r--r--tvapi/libtv/projects/ref_n300_v1/Android.mk48
-rw-r--r--tvapi/libtv/projects/ref_n300_v1/CTvRefN300.cpp12
-rw-r--r--tvapi/libtv/projects/ref_n300_v1/CTvRefN300.h8
-rw-r--r--tvapi/libtv/projects/ref_n300_v1/ref_n300_v1.h1
-rw-r--r--tvapi/libtv/projects/skyworth_n310_v1/Android.mk48
-rw-r--r--tvapi/libtv/projects/skyworth_n310_v1/CTvSkyworthDtmbN310.cpp88
-rw-r--r--tvapi/libtv/projects/skyworth_n310_v1/CTvSkyworthDtmbN310.h18
-rw-r--r--tvapi/libtv/projects/skyworth_n310_v1/skyworth_n310_v1.h1
-rw-r--r--tvapi/libtv/tv/AutoBackLight.cpp213
-rw-r--r--tvapi/libtv/tv/AutoBackLight.h49
-rw-r--r--tvapi/libtv/tv/CAv.cpp381
-rw-r--r--tvapi/libtv/tv/CAv.h148
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.cpp1700
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.h382
-rw-r--r--tvapi/libtv/tv/CFrontEnd.cpp568
-rw-r--r--tvapi/libtv/tv/CFrontEnd.h160
-rw-r--r--tvapi/libtv/tv/CTv.cpp5385
-rw-r--r--tvapi/libtv/tv/CTv.h636
-rw-r--r--tvapi/libtv/tv/CTvBooking.cpp162
-rw-r--r--tvapi/libtv/tv/CTvBooking.h84
-rw-r--r--tvapi/libtv/tv/CTvDmx.cpp24
-rw-r--r--tvapi/libtv/tv/CTvDmx.h18
-rw-r--r--tvapi/libtv/tv/CTvEpg.cpp216
-rw-r--r--tvapi/libtv/tv/CTvEpg.h160
-rw-r--r--tvapi/libtv/tv/CTvEv.cpp11
-rw-r--r--tvapi/libtv/tv/CTvEv.h192
-rw-r--r--tvapi/libtv/tv/CTvLog.cpp20
-rw-r--r--tvapi/libtv/tv/CTvLog.h35
-rw-r--r--tvapi/libtv/tv/CTvRecord.cpp276
-rw-r--r--tvapi/libtv/tv/CTvRecord.h47
-rw-r--r--tvapi/libtv/tv/CTvSatellite.h22
-rw-r--r--tvapi/libtv/tv/CTvScanner.cpp1146
-rw-r--r--tvapi/libtv/tv/CTvScanner.h183
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.cpp530
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.h177
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.cpp348
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.h236
-rw-r--r--tvapi/libtv/tv/CTvTime.cpp15
-rw-r--r--tvapi/libtv/tv/CTvTime.h102
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.cpp161
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.h50
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.cpp556
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.h143
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.cpp353
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.h73
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.conf30
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.cpp53
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.h20
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.cpp347
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.h288
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.cpp259
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.h96
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.cpp644
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.h99
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.cpp241
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.h86
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.cpp44
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.h31
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.cpp883
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.h536
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.cpp183
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.h43
-rw-r--r--tvapi/libtv/tvin/CHDMIRxCEC.cpp654
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.cpp312
-rw-r--r--tvapi/libtv/tvin/CTvin.cpp3292
-rw-r--r--tvapi/libtv/tvin/CTvin.h1379
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.cpp27
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.h51
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp353
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.h77
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.cpp80
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.h27
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.cpp129
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.h38
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.cpp2212
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.h251
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingCfg.h371
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp187
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h23
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.cpp1392
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.h62
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.cpp1853
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.h169
-rw-r--r--tvapi/libtv/tvutils/CCondition.h91
-rw-r--r--tvapi/libtv/tvutils/CFile.cpp191
-rw-r--r--tvapi/libtv/tvutils/CFile.h47
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.cpp15
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.h10
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.cpp116
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.h54
-rw-r--r--tvapi/libtv/tvutils/CMutex.h116
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.cpp126
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.h50
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.cpp357
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.h55
-rw-r--r--tvapi/libtv/tvutils/CSqlite.cpp152
-rw-r--r--tvapi/libtv/tvutils/CSqlite.h186
-rw-r--r--tvapi/libtv/tvutils/CThread.cpp165
-rw-r--r--tvapi/libtv/tvutils/CThread.h62
-rw-r--r--tvapi/libtv/tvutils/CTvInput.cpp156
-rw-r--r--tvapi/libtv/tvutils/CTvInput.h39
-rw-r--r--tvapi/libtv/tvutils/serial_base.cpp466
-rw-r--r--tvapi/libtv/tvutils/serial_base.h17
-rw-r--r--tvapi/libtv/tvutils/serial_operate.cpp229
-rw-r--r--tvapi/libtv/tvutils/serial_operate.h36
-rw-r--r--tvapi/libtv/tvutils/tvutils.cpp1912
-rw-r--r--tvapi/libtv/tvutils/tvutils.h119
-rw-r--r--tvapi/libtv/tvutils/zepoll.cpp88
-rw-r--r--tvapi/libtv/tvutils/zepoll.h49
-rw-r--r--tvapi/libtv/version/version.cpp94
-rw-r--r--tvapi/libtv/version/version.h11
-rw-r--r--tvapi/libtv/vpp/CPQdb.cpp1535
-rw-r--r--tvapi/libtv/vpp/CPQdb.h161
-rw-r--r--tvapi/libtv/vpp/CVpp.cpp3711
-rw-r--r--tvapi/libtv/vpp/CVpp.h438
-rw-r--r--tvapi/libtv/vpp/pqdata.cpp143
-rw-r--r--tvapi/libtv/vpp/pqdata.h30
-rw-r--r--tvapi/script/setenv.sh54
-rw-r--r--tvapi/tvtests/Android.mk49
-rw-r--r--tvapi/tvtests/android_tvtest.cpp33
-rw-r--r--tvapi/tvtests/comm_test.cpp33
-rw-r--r--tvapi/tvtests/ssm_test.cpp210
-rw-r--r--tvapi/tvtests/tvconfig_test.cpp427
169 files changed, 64432 insertions, 116 deletions
diff --git a/tvapi/libtv/include/amstream.h b/tvapi/libtv/include/amstream.h
new file mode 100644
index 0000000..434c028
--- a/dev/null
+++ b/tvapi/libtv/include/amstream.h
@@ -0,0 +1,263 @@
+#ifndef __AMSTREAM_H__
+#define __AMSTREAM_H__
+
+#include "ve.h"
+
+#define AMSTREAM_IOC_MAGIC 'S'
+
+#define AMSTREAM_IOC_VB_START _IOW(AMSTREAM_IOC_MAGIC, 0x00, int)
+#define AMSTREAM_IOC_VB_SIZE _IOW(AMSTREAM_IOC_MAGIC, 0x01, int)
+#define AMSTREAM_IOC_AB_START _IOW(AMSTREAM_IOC_MAGIC, 0x02, int)
+#define AMSTREAM_IOC_AB_SIZE _IOW(AMSTREAM_IOC_MAGIC, 0x03, int)
+#define AMSTREAM_IOC_VFORMAT _IOW(AMSTREAM_IOC_MAGIC, 0x04, int)
+#define AMSTREAM_IOC_AFORMAT _IOW(AMSTREAM_IOC_MAGIC, 0x05, int)
+#define AMSTREAM_IOC_VID _IOW(AMSTREAM_IOC_MAGIC, 0x06, int)
+#define AMSTREAM_IOC_AID _IOW(AMSTREAM_IOC_MAGIC, 0x07, int)
+#define AMSTREAM_IOC_VB_STATUS _IOR(AMSTREAM_IOC_MAGIC, 0x08, unsigned long)
+#define AMSTREAM_IOC_AB_STATUS _IOR(AMSTREAM_IOC_MAGIC, 0x09, unsigned long)
+#define AMSTREAM_IOC_SYSINFO _IOW(AMSTREAM_IOC_MAGIC, 0x0a, int)
+#define AMSTREAM_IOC_ACHANNEL _IOW(AMSTREAM_IOC_MAGIC, 0x0b, int)
+#define AMSTREAM_IOC_SAMPLERATE _IOW(AMSTREAM_IOC_MAGIC, 0x0c, int)
+#define AMSTREAM_IOC_DATAWIDTH _IOW(AMSTREAM_IOC_MAGIC, 0x0d, int)
+#define AMSTREAM_IOC_TSTAMP _IOW(AMSTREAM_IOC_MAGIC, 0x0e, unsigned long)
+#define AMSTREAM_IOC_VDECSTAT _IOR(AMSTREAM_IOC_MAGIC, 0x0f, unsigned long)
+#define AMSTREAM_IOC_ADECSTAT _IOR(AMSTREAM_IOC_MAGIC, 0x10, unsigned long)
+
+#define AMSTREAM_IOC_PORT_INIT _IO(AMSTREAM_IOC_MAGIC, 0x11)
+#define AMSTREAM_IOC_TRICKMODE _IOW(AMSTREAM_IOC_MAGIC, 0x12, unsigned long)
+
+#define AMSTREAM_IOC_AUDIO_INFO _IOW(AMSTREAM_IOC_MAGIC, 0x13, unsigned long)
+#define AMSTREAM_IOC_TRICK_STAT _IOR(AMSTREAM_IOC_MAGIC, 0x14, unsigned long)
+#define AMSTREAM_IOC_AUDIO_RESET _IO(AMSTREAM_IOC_MAGIC, 0x15)
+#define AMSTREAM_IOC_SID _IOW(AMSTREAM_IOC_MAGIC, 0x16, int)
+#define AMSTREAM_IOC_VPAUSE _IOW(AMSTREAM_IOC_MAGIC, 0x17, int)
+#define AMSTREAM_IOC_AVTHRESH _IOW(AMSTREAM_IOC_MAGIC, 0x18, int)
+#define AMSTREAM_IOC_SYNCTHRESH _IOW(AMSTREAM_IOC_MAGIC, 0x19, int)
+#define AMSTREAM_IOC_SUB_RESET _IOW(AMSTREAM_IOC_MAGIC, 0x1a, int)
+#define AMSTREAM_IOC_SUB_LENGTH _IOR(AMSTREAM_IOC_MAGIC, 0x1b, unsigned long)
+#define AMSTREAM_IOC_SET_DEC_RESET _IOW(AMSTREAM_IOC_MAGIC, 0x1c, int)
+#define AMSTREAM_IOC_TS_SKIPBYTE _IOW(AMSTREAM_IOC_MAGIC, 0x1d, int)
+#define AMSTREAM_IOC_SUB_TYPE _IOW(AMSTREAM_IOC_MAGIC, 0x1e, int)
+#define AMSTREAM_IOC_CLEAR_VIDEO _IOW(AMSTREAM_IOC_MAGIC, 0x1f, int)
+
+#define AMSTREAM_IOC_APTS _IOR(AMSTREAM_IOC_MAGIC, 0x40, unsigned long)
+#define AMSTREAM_IOC_VPTS _IOR(AMSTREAM_IOC_MAGIC, 0x41, unsigned long)
+#define AMSTREAM_IOC_PCRSCR _IOR(AMSTREAM_IOC_MAGIC, 0x42, unsigned long)
+#define AMSTREAM_IOC_SYNCENABLE _IOW(AMSTREAM_IOC_MAGIC, 0x43, unsigned long)
+#define AMSTREAM_IOC_GET_SYNC_ADISCON _IOR(AMSTREAM_IOC_MAGIC, 0x44, unsigned long)
+#define AMSTREAM_IOC_SET_SYNC_ADISCON _IOW(AMSTREAM_IOC_MAGIC, 0x45, unsigned long)
+#define AMSTREAM_IOC_GET_SYNC_VDISCON _IOR(AMSTREAM_IOC_MAGIC, 0x46, unsigned long)
+#define AMSTREAM_IOC_SET_SYNC_VDISCON _IOW(AMSTREAM_IOC_MAGIC, 0x47, unsigned long)
+#define AMSTREAM_IOC_GET_VIDEO_DISABLE _IOR(AMSTREAM_IOC_MAGIC, 0x48, unsigned long)
+#define AMSTREAM_IOC_SET_VIDEO_DISABLE _IOW(AMSTREAM_IOC_MAGIC, 0x49, unsigned long)
+#define AMSTREAM_IOC_SET_PCRSCR _IOW(AMSTREAM_IOC_MAGIC, 0x4a, unsigned long)
+#define AMSTREAM_IOC_GET_VIDEO_AXIS _IOR(AMSTREAM_IOC_MAGIC, 0x4b, unsigned long)
+#define AMSTREAM_IOC_SET_VIDEO_AXIS _IOW(AMSTREAM_IOC_MAGIC, 0x4c, unsigned long)
+#define AMSTREAM_IOC_GET_VIDEO_CROP _IOR(AMSTREAM_IOC_MAGIC, 0x4d, unsigned long)
+#define AMSTREAM_IOC_SET_VIDEO_CROP _IOW(AMSTREAM_IOC_MAGIC, 0x4e, unsigned long)
+
+// VPP.VE IOCTL command list
+#define AMSTREAM_IOC_VE_BEXT _IOW(AMSTREAM_IOC_MAGIC, 0x20, struct ve_bext_s )
+#define AMSTREAM_IOC_VE_DNLP _IOW(AMSTREAM_IOC_MAGIC, 0x21, struct ve_dnlp_s )
+#define AMSTREAM_IOC_VE_HSVS _IOW(AMSTREAM_IOC_MAGIC, 0x22, struct ve_hsvs_s )
+#define AMSTREAM_IOC_VE_CCOR _IOW(AMSTREAM_IOC_MAGIC, 0x23, struct ve_ccor_s )
+#define AMSTREAM_IOC_VE_BENH _IOW(AMSTREAM_IOC_MAGIC, 0x24, struct ve_benh_s )
+#define AMSTREAM_IOC_VE_DEMO _IOW(AMSTREAM_IOC_MAGIC, 0x25, struct ve_demo_s )
+#define AMSTREAM_IOC_VE_VDO_MEAS _IOW(AMSTREAM_IOC_MAGIC, 0x27, struct vdo_meas_s )
+#define AMSTREAM_IOC_VE_DEBUG _IOWR(AMSTREAM_IOC_MAGIC, 0x28, unsigned long long)
+#define AMSTREAM_IOC_VE_REGMAP _IOW(AMSTREAM_IOC_MAGIC, 0x29, struct ve_regmap_s)
+
+// VPP.CM IOCTL command list
+#define AMSTREAM_IOC_CM_REGION _IOW(AMSTREAM_IOC_MAGIC, 0x30, struct cm_region_s)
+#define AMSTREAM_IOC_CM_TOP _IOW(AMSTREAM_IOC_MAGIC, 0x31, struct cm_top_s )
+#define AMSTREAM_IOC_CM_DEMO _IOW(AMSTREAM_IOC_MAGIC, 0x32, struct cm_demo_s )
+#define AMSTREAM_IOC_CM_DEBUG _IOWR(AMSTREAM_IOC_MAGIC, 0x33, unsigned long long)
+#define AMSTREAM_IOC_CM_REGMAP _IOW(AMSTREAM_IOC_MAGIC, 0x34, struct cm_regmap_s)
+
+//VPP.3D IOCTL command list
+#define AMSTREAM_IOC_SET_3D_TYPE _IOW(AMSTREAM_IOC_MAGIC, 0x3c, unsigned int)
+#define AMSTREAM_IOC_GET_3D_TYPE _IOW(AMSTREAM_IOC_MAGIC, 0x3d, unsigned int)
+
+#define AMSTREAM_IOC_SUB_NUM _IOR(AMSTREAM_IOC_MAGIC, 0x50, unsigned long)
+#define AMSTREAM_IOC_SUB_INFO _IOR(AMSTREAM_IOC_MAGIC, 0x51, unsigned long)
+#define AMSTREAM_IOC_GET_BLACKOUT_POLICY _IOR(AMSTREAM_IOC_MAGIC, 0x52, unsigned long)
+#define AMSTREAM_IOC_SET_BLACKOUT_POLICY _IOW(AMSTREAM_IOC_MAGIC, 0x53, unsigned long)
+#define AMSTREAM_IOC_GET_SCREEN_MODE _IOR(AMSTREAM_IOC_MAGIC, 0x58, int)
+#define AMSTREAM_IOC_SET_SCREEN_MODE _IOW(AMSTREAM_IOC_MAGIC, 0x59, int)
+#define AMSTREAM_IOC_GET_VIDEO_DISCONTINUE_REPORT _IOR(AMSTREAM_IOC_MAGIC, 0x5a, int)
+#define AMSTREAM_IOC_SET_VIDEO_DISCONTINUE_REPORT _IOW(AMSTREAM_IOC_MAGIC, 0x5b, int)
+#define AMSTREAM_IOC_VF_STATUS _IOR(AMSTREAM_IOC_MAGIC, 0x60, unsigned long)
+#define AMSTREAM_IOC_CLEAR_VBUF _IO(AMSTREAM_IOC_MAGIC, 0x80)
+
+#define AMSTREAM_IOC_APTS_LOOKUP _IOR(AMSTREAM_IOC_MAGIC, 0x81, unsigned long)
+#define GET_FIRST_APTS_FLAG _IOR(AMSTREAM_IOC_MAGIC, 0x82, long)
+
+#define AMSTREAM_IOC_GET_SYNC_ADISCON_DIFF _IOR(AMSTREAM_IOC_MAGIC, 0x83, unsigned long)
+#define AMSTREAM_IOC_GET_SYNC_VDISCON_DIFF _IOR(AMSTREAM_IOC_MAGIC, 0x84, unsigned long)
+#define AMSTREAM_IOC_SET_SYNC_ADISCON_DIFF _IOW(AMSTREAM_IOC_MAGIC, 0x85, unsigned long)
+#define AMSTREAM_IOC_SET_SYNC_VDISCON_DIFF _IOW(AMSTREAM_IOC_MAGIC, 0x86, unsigned long)
+#define AMSTREAM_IOC_GET_FREERUN_MODE _IOR(AMSTREAM_IOC_MAGIC, 0x87, unsigned long)
+#define AMSTREAM_IOC_SET_FREERUN_MODE _IOW(AMSTREAM_IOC_MAGIC, 0x88, unsigned long)
+#define AMSTREAM_IOC_SET_DEMUX _IOW(AMSTREAM_IOC_MAGIC, 0x90, unsigned long)
+
+#define AMSTREAM_IOC_SET_VIDEO_DELAY_LIMIT_MS _IOW(AMSTREAM_IOC_MAGIC, 0xa0, unsigned long)
+#define AMSTREAM_IOC_GET_VIDEO_DELAY_LIMIT_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa1, unsigned long)
+#define AMSTREAM_IOC_SET_AUDIO_DELAY_LIMIT_MS _IOW(AMSTREAM_IOC_MAGIC, 0xa2, unsigned long)
+#define AMSTREAM_IOC_GET_AUDIO_DELAY_LIMIT_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa3, unsigned long)
+#define AMSTREAM_IOC_GET_AUDIO_CUR_DELAY_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa4, unsigned long)
+#define AMSTREAM_IOC_GET_VIDEO_CUR_DELAY_MS _IOR(AMSTREAM_IOC_MAGIC, 0xa5, unsigned long)
+#define AMSTREAM_IOC_GET_AUDIO_AVG_BITRATE_BPS _IOR(AMSTREAM_IOC_MAGIC, 0xa6, unsigned long)
+#define AMSTREAM_IOC_GET_VIDEO_AVG_BITRATE_BPS _IOR(AMSTREAM_IOC_MAGIC, 0xa7, unsigned long)
+
+#define TRICKMODE_NONE 0x00
+#define TRICKMODE_I 0x01
+#define TRICKMODE_FFFB 0x02
+
+#define TRICK_STAT_DONE 0x01
+#define TRICK_STAT_WAIT 0x00
+
+#define AUDIO_EXTRA_DATA_SIZE (4096)
+#define MAX_SUB_NUM 32
+/*
+enum VIDEO_DEC_TYPE
+{
+ VIDEO_DEC_FORMAT_UNKNOW,
+ VIDEO_DEC_FORMAT_MPEG4_3,
+ VIDEO_DEC_FORMAT_MPEG4_4,
+ VIDEO_DEC_FORMAT_MPEG4_5,
+ VIDEO_DEC_FORMAT_H264,
+ VIDEO_DEC_FORMAT_MJPEG,
+ VIDEO_DEC_FORMAT_MP4,
+ VIDEO_DEC_FORMAT_H263,
+ VIDEO_DEC_FORMAT_REAL_8,
+ VIDEO_DEC_FORMAT_REAL_9,
+ VIDEO_DEC_FORMAT_WMV3,
+ VIDEO_DEC_FORMAT_WVC1,
+ VIDEO_DEC_FORMAT_SW,
+ VIDEO_DEC_FORMAT_MAX
+};
+*/
+struct buf_status {
+ int size;
+ int data_len;
+ int free_len;
+ unsigned int read_pointer;
+ unsigned int write_pointer;
+};
+
+
+struct vdec_status {
+ unsigned int width;
+ unsigned int height;
+ unsigned int fps;
+ unsigned int error_count;
+ unsigned int status;
+};
+
+struct adec_status {
+ unsigned int channels;
+ unsigned int sample_rate;
+ unsigned int resolution;
+ unsigned int error_count;
+ unsigned int status;
+};
+
+struct am_io_param {
+ union {
+ int data;
+ int id;//get bufstatus? //or others
+ };
+
+ int len; //buffer size;
+
+ union {
+ char buf[1];
+ struct buf_status status;
+ struct vdec_status vstatus;
+ struct adec_status astatus;
+ };
+};
+struct audio_info {
+ int valid;
+ int sample_rate;
+ int channels;
+ int bitrate;
+ int codec_id;
+ int block_align;
+ int extradata_size;
+ char extradata[AUDIO_EXTRA_DATA_SIZE];
+};
+
+struct dec_sysinfo {
+ unsigned int format;
+ unsigned int width;
+ unsigned int height;
+ unsigned int rate;
+ unsigned int extra;
+ unsigned int status;
+ unsigned int ratio;
+ void *param;
+ unsigned long long ratio64;
+};
+
+struct subtitle_info {
+ unsigned char id;
+ unsigned char width;
+ unsigned char height;
+ unsigned char type;
+};
+
+struct codec_profile_t {
+ char *name; // video codec short name
+ char *profile; // Attributes,seperated by commas
+};
+#define SUPPORT_VDEC_NUM (8)
+
+int vcodec_profile_register(const struct codec_profile_t *vdec_profile);
+int vcodec_profile_read(char *buf);
+
+#ifdef __KERNEL__
+#ifdef ENABLE_DEMUX_DRIVER
+/*TS demux operation interface*/
+struct tsdemux_ops {
+ int (*reset)(void);
+ int (*set_reset_flag)(void);
+ int (*request_irq)(irq_handler_t handler, void *data);
+ int (*free_irq)(void);
+ int (*set_vid)(int vpid);
+ int (*set_aid)(int apid);
+ int (*set_sid)(int spid);
+ int (*set_skipbyte)(int skipbyte);
+ int (*set_demux)(int dev);
+};
+
+void tsdemux_set_ops(struct tsdemux_ops *ops);
+int tsdemux_set_reset_flag(void);
+
+#endif /*ENABLE_DEMUX_DRIVER*/
+void set_vdec_func(int (*vdec_func)(struct vdec_status *));
+void set_adec_func(int (*adec_func)(struct adec_status *));
+void set_trickmode_func(int (*trickmode_func)(unsigned long trickmode));
+void wakeup_sub_poll(void);
+int wakeup_userdata_poll(int wp, int start_phyaddr, int buf_size);
+int get_sub_type(void);
+#endif
+
+typedef struct tcon_gamma_table_s {
+ unsigned short data[256];
+} tcon_gamma_table_t;
+
+typedef struct tcon_rgb_ogo_s {
+ unsigned int en;
+ int r_pre_offset; // s11.0, range -1024~+1023, default is 0
+ int g_pre_offset; // s11.0, range -1024~+1023, default is 0
+ int b_pre_offset; // s11.0, range -1024~+1023, default is 0
+ unsigned int r_gain; // u1.10, range 0~2047, default is 1024 (1.0x)
+ unsigned int g_gain; // u1.10, range 0~2047, default is 1024 (1.0x)
+ unsigned int b_gain; // u1.10, range 0~2047, default is 1024 (1.0x)
+ int r_post_offset; // s11.0, range -1024~+1023, default is 0
+ int g_post_offset; // s11.0, range -1024~+1023, default is 0
+ int b_post_offset; // s11.0, range -1024~+1023, default is 0
+} tcon_rgb_ogo_t;
+
+#endif //__AMSTREAM_H__