1. / **
  2. 播放应用程序的头文件。
  3.  
  4. 此文件是头文件,用于定义Playback应用程序的API和数据类型。
  5.  
  6. @file PlaybackTsk.h
  7. @ingroup mIAPPPlay
  8. @note什么都没有。
  9.  
  10. 版权所有Novatek Microelectronics Corp. .保留所有权利。
  11. * /
  12. #ifndef _PLAYBACKAPI_H
  13. #define _PLAYBACKAPI_H
  14.  
  15. #includeSysKer.h
  16. #includeExifDef.h
  17. #includeJpgHeader.h
  18. #includeGxImage.h
  19.  
  20. / **
  21. @addtogroup mIAPPPlay
  22. * /
  23. // @ {
  24.  
  25. // ------------------------------------------------ ------------------------------
  26. //定义
  27. // ------------------------------------------------ ------------------------------
  28. / **
  29. @name播放文件格式
  30.  
  31. 文件的格式和属性。
  32.  
  33. @note对于_PLAY_OBJ :: uiPlayFileFmt
  34. * /
  35. // @ {
  36. #define PBFMT_UNKNOWN 0x00000000 /// <文件格式:未知
  37. #define PBFMT_JPG 0x00000001 /// <文件格式:JPEG
  38. #define PBFMT_WAV 0x00000002 /// <文件格式:WAV
  39. #define PBFMT_AVI 0x00000004 /// <文件格式:AVI
  40. #define PBFMT_ASF 0x00000008 /// <文件格式:ASF
  41. #define PBFMT_RAW 0x00000010 /// <文件格式:RAW
  42. #define PBFMT_JPGMEMO 0x00000010 /// <文件属性:带语音备忘录的JPEG
  43. #define PBFMT_MP4 0x00000020 /// <文件格式:MP4
  44. #define PBFMT_READONLY 0x00000040 /// <文件属性:只读
  45. #define PBFMT_MPG 0x00000080 /// <文件格式:MPEG
  46. #define PBFMT_MOVMJPG 0x00000100 /// <文件格式:带动态JPEG的MOV
  47. #define PBFMT_MPO 0x00000200 /// <文件格式:MPO
  48. #define PB_SUPPORT_FMTPBFMT_JPG | PBFMT_WAV | PBFMT_AVI | PBFMT_MOVMJPG | PBFMT_ASF | PBFMT_MPG | PBFMT_MPO/// <播放的默认文件格式
  49. // @}
  50.  
  51. / **
  52. @name播放图像方向
  53.  
  54. #note为#PBPRMID_ROTATE_DIR。
  55. * /
  56. // @ {
  57. #define PLAY_ROTATE_DIR_UNKNOWN 0xFF /// <旋转方向:初始化(未知)
  58. #define PLAY_ROTATE_DIR_0 PLAY_ROTATE_DIR_UNKNOWN
  59. #define PLAY_ROTATE_DIR_90 0x00 /// <旋转方向:90度
  60. #define PLAY_ROTATE_DIR_180 0x01 /// <旋转方向:180度
  61. #define PLAY_ROTATE_DIR_270 0x02 /// <旋转方向:270度
  62. #define PLAY_ROTATE_DIR_HOR 0x03 /// <旋转方向:水平
  63. #define PLAY_ROTATE_DIR_VER 0x04 /// <旋转方向:垂直
  64. // @}
  65.  
  66. / **
  67. @name播放照片显示方向
  68.  
  69. #note为#PBPRMID_DISP_DIRECTION。
  70. * /
  71. // @ {
  72. #define PB_DISPDIR_HORIZONTAL 0x01 /// <将显示方向设置为水平
  73. #define PB_DISPDIR_VERTICAL 0x02 /// <将显示方向设置为垂直
  74. // @}
  75.  
  76. / **
  77. @name播放功能启用标志
  78.  
  79. #note为#PBPRMID_EN_FLAGS。
  80. * /
  81. // @ {
  82. #define PB_ENABLE_KEEP_ASPECT_RATIO 0x00000001 /// <保持宽高比(letterboxing或邮箱)
  83. #define PB_ENABLE_SHOW_BACKGROUND_IN_THUMB 0x00000002 /// <以缩略图模式显示背景
  84. #define PB_ENABLE_SEARCH_FILE_WITHOUT_DCF 0x00000004 /// <没有DCF的搜索文件
  85. #define PB_ENABLE_SHOW_BG_IN_MOVIE 0x00000008 /// <在电影文件中显示背景
  86. #define PB_ENABLE_SHOW_BG_IN_BADFILE 0x00000010 /// <在Bad文件中显示背景
  87. #define PB_ENABLE_PLAY_FILE_BY_DATE 0x00000020 /// <按日期播放文件
  88. #define PB_ENABLE_THUMB_WITH_DIFF_FOLDER 0x00000040 /// <带有diff文件夹的缩略图
  89. #define PB_ENABLE_TV_PLUGIN 0x00000080 /// <代表电视插入
  90. #define PB_ENABLE_SPEEDUP_SCREENNAIL 0x00000100 /// <在主图像后附加代表屏幕
  91. // @}
  92.  
  93. / **
  94. @name播放缩略图模式显示方法
  95.  
  96. #note为#PBPRMID_THUMB_SHOW_METHOD。
  97. * /
  98. // @ {
  99. #define PB_SHOW_THUMBNAIL_ONE_BY_ONE 0x00000001 /// <单一显示缩略图
  100. #define PB_SHOW_THUMBNAIL_IN_THE_SAME_TIME 0x00000002 /// <同时显示缩略图
  101. // @}
  102.  
  103. / **
  104. @name播放任务状态
  105.  
  106. #note为#PBPRMID_PLAYBACK_STATUS。
  107. * /
  108. // @ {
  109. #define PB_STA_UNKNOWN 0x00000000 /// <未知
  110. #define PB_STA_NOIMAGE 0x00000001 /// <无图像
  111. #define PB_STA_ERR_FILE 0x00000002 /// <错误文件
  112. #define PB_STA_ERR_DECODE 0x00000004 /// <解码错误
  113. #define PB_STA_ERR_WRITE 0x00000008 /// <写入错误
  114. #define PB_STA_DONE 0x00000010 /// <完成
  115. #define PB_STA_BUSY 0x00000020 /// <忙碌
  116. #define PB_STA_STANDBY 0x00000040 /// <待机
  117. #define PB_STA_INITFAIL 0x00000080 /// <Init失败
  118. #define PB_STA_ERR_TASK 0x00000100 /// <任务无法启动
  119. // @}
  120.  
  121. / **
  122. @name播放单视图命令
  123.  
  124. @note对于_PLAY_SINGLE_OBJ :: PlayCommand
  125. * /
  126. // @ {
  127. #define PB_SINGLE_CURR 0x01 /// <播放当前图像
  128. #define PB_SINGLE_NEXT 0x02 /// <播放下一张图像
  129. #define PB_SINGLE_PREV 0x04 /// <播放上一张图像
  130. #define PB_SINGLE_PRIMARY 0x08 /// <播放屏幕图像或主图像
  131. #define PB_SINGLE_THUMB 0x40 /// <仅播放缩略图
  132. #define PB_SINGLE_NO_HIDDEN 0x80 /​​// <仅播放主图像
  133. // @}
  134.  
  135. / **
  136. @name Playback缩略图查看命令
  137.  
  138. @note对于_PLAY_BROWSER_OBJ :: BrowserCommand
  139. * /
  140. // @ {
  141. #define PB_BROWSER_CURR 0x01 /// <浏览当前缩略图页面
  142. #define PB_BROWSER_NEXT 0x02 /// <浏览下一个缩略图页面
  143. #define PB_BROWSER_PREV 0x04 /// <浏览上一个缩略图页面
  144. #define PB_BROWSER_THUMB 0x40 /// <仅浏览缩略图
  145. // @}
  146.  
  147. / **
  148. @name播放缩放命令
  149.  
  150. @note用于PB_PlayZoomMode(),PB_PlayZoomPanMode()。
  151. * /
  152. // @ {
  153. #define PLAYZOOM_IN 0x01 /// <放大
  154. #define PLAYZOOM_OUT 0x02 /// <缩小
  155. #define PLAYZOOM_UP 0x04 /// <缩放 - 向上滚动
  156. #define PLAYZOOM_DOWN 0x08 /// <缩放 - 向下滚动
  157. #define PLAYZOOM_LEFT 0x10 /// <缩放 - 向左滚动
  158. #define PLAYZOOM_RIGHT 0x20 /// <缩放 - 向右滚动
  159. #define PLAYZOOM_USER 0x40 /// <用户定义的缩放命令
  160. // @}
  161.  
  162. / **
  163. @name播放模式
  164.  
  165. @note用于PBPRMID_PLAYBACK_MODE
  166. * /
  167. // @ {
  168. #define PLAYMODE_THUMB 9 /// <缩略图模式
  169. #define PLAYMODE_PRIMARY 10 /// <单视图模式:JPEG
  170. #define PLAYMODE_AVI 11 /// <单视图模式:AVI
  171. #define PLAYMODE_ROTATE 12 /// <Rotae display
  172. #define PLAYMODE_WAV 13 /// <单视图模式:WAV
  173. #define PLAYMODE_ASF 14 /// <单一视图模式:ASF
  174. #define PLAYMODE_MPG 16 /// <单一视图模式:MPEG
  175. #define PLAYMODE_MOVMJPG 17 /// <单视图模式:Motion JPEG
  176. #define PLAYMODE_ONLYTHUMB 33 /// <首先解码始终只解码缩略图
  177. #define PLAYMODE_PICBRIDGE 55 /// <图片桥模式
  178. #define PLAYMODE_USERJPGOUT 77 /// <用户JPEG模式
  179. #define PLAYMODE_UNKNOWN 99 /// <开始播放时的初始模式
  180. // @}
  181.  
  182. // ------------------------------------------------ ------------------------------
  183. //枚举
  184. // ------------------------------------------------ ------------------------------
  185. / **
  186. 播放显示video1 / video2中的特定文件
  187.  
  188. @note对于_PLAY_SPECFILE_OBJ :: PlayFileVideo
  189. * /
  190. typedef enum
  191. {
  192. PLAY_SPEC_FILE_IN_VIDEO_1/// <0,在video1中显示
  193. PLAY_SPEC_FILE_IN_VIDEO_2 /// <1,在video2中显示
  194. } PB_SPEC_VDO;
  195.  
  196. / **
  197. 播放用/ wo清除缓冲区显示特定文件
  198.  
  199. @note对于_PLAY_SPECFILE_OBJ :: PlayFileClearBuf
  200. * /
  201. typedef enum
  202. {
  203. PLAY_SPEC_FILE_WITH_CLEAR_BUF/// <0,清除缓冲区
  204. PLAY_SPEC_FILE_WITH_NOT_CLEAR_BUF /// <1,不清除缓冲区
  205. } PB_SPEC_CLR;
  206.  
  207. / **
  208. 播放参数枚举
  209.  
  210. @note对于PB_GetParam(),PB_SetParam()。
  211. * /
  212. typedef enum _PB_PRMID
  213. {
  214. PBPRMID_FILE_ATTR_LOCK = 0x01/// <文件属性:只读
  215. PBPRMID_JPEG_WITH_VOICE = 0x02/// <带语音备忘录的JPEG
  216.  
  217. PBPRMID_PLAYBACK_MODE = 0x10/// <当前播放模式
  218. PBPRMID_PLAYBACK_STATUS = 0x11/// <播放任务的当前状态
  219. PBPRMID_PLAYBACK_OBJ = 0x12/// <指向回放对象设置结构的指针
  220. PBPRMID_INFO_IMG = 0x13/// <指向当前图像配置结构的指针
  221. PBPRMID_INFO_VDO = 0x14/// <指向当前视频配置结构的指针
  222. PBPRMID_ROTATE_DIR = 0x15/// <当前图像旋转方向
  223. PBPRMID_MAX_PANELSZ = 0x16/// <播放的最大面板大小
  224. PBPRMID_EN_FLAGS = 0x17/// <功能启用播放标志
  225. PBPRMID_BG_COLOR = 0x18/// <默认背景颜色
  226.  
  227. PBPRMID_THUMB_CURR_IDX = 0x20/// <当前缩略图页面中当前浏览的文件索引
  228. PBPRMID_THUMB_CURR_NUM = 0x21/// <当前缩略图页面中当前解码的拇指文件编号
  229. PBPRMID_THUMB_FMT_ARRAY = 0x22/// <指向当前缩略图页面的文件格式数组的指针
  230. PBPRMID_THUMB_DEC_ARRAY = 0x23/// <指向当前缩略图页面的解码结果数组的指针
  231. PBPRMID_THUMB_SEQ_ARRAY = 0x24/// <指向当前缩略图页面的文件序列ID数组的指针
  232. PBPRMID_THUMB_VDO_LTH_ARRAY = 0x25/// <指向当前缩略图页面的视频时间数组的指针
  233. PBPRMID_THUMB_SHOW_METHOD = 0x26/// <缩略图模式显示方法(#PB_SHOW_THUMBNAIL_ONE_BY_ONE /#PB_SHOW_THUMBNAIL_IN_THE_SAME_TIME)
  234. PBPRMID_THUMB_LAYOUT_ARRAY = 0x27/// <指向播放缩略图模式外观的配置数组的指针
  235. PBPRMID_THUMB_LAYOUT_ARRAY2 = 0x28/// <指向一个配置数组的指针,用于双视图的回放缩略图模式外观
  236.  
  237. PBPRMID_ZOOM_INDEX = 0x30/// <当前缩放表索引
  238. PBPRMID_ZOOM_LVL_TBL = 0x31/// <指向缩放级别表的指针
  239. PBPRMID_PAN_CURX = 0x32/// <当前X地址 - PBZoom子图像左上角相对于主图像左上角((0,0)点)
  240. PBPRMID_PAN_CURY = 0x33/// <当前Y地址 - PBZoom子图像左上角相对于主图像左上角((0,0)点)
  241. PBPRMID_PAN_MAXX = 0x34/// <MAX X addr - MAX PBZoom图像滚动范围
  242. PBPRMID_PAN_MAXY = 0x35/// <MAX Y addr - MAX PBZoom图像滚动范围
  243.  
  244. PBPRMID_NAMEID_FILE = 0x40/// <当前DCF文件ID
  245. PBPRMID_NAMEID_DIR = 0x41/// <当前DCF目录ID
  246. PBPRMID_DATABUF_ADDR = 0x42/// <当前数据缓冲区地址
  247. PBPRMID_DATABUF_SIZE = 0x43/// <当前数据缓冲区大小
  248. PBPRMID_CURR_FILEPATH = 0x44/// <当前文件路径
  249. PBPRMID_CURR_FILESEQ = 0x45/// <当前文件序列
  250. PBPRMID_CURR_FILESIZE = 0x46/// <当前文件大小
  251. PBPRMID_CURR_FILEFMT = 0x47/// <当前文件格式
  252. PBPRMID_TOTAL_FILE_COUNT = 0x48/// <文件总数
  253.  
  254. PBPRMID_DISP_DIRECTION = 0x50/// <显示方向(#PB_DISPDIR_HORIZONTAL /#PB_DISPDIR_VERTICAL)
  255. PBPRMID_AUTO_ROTATE = 0x51/// <根据EXIF方向自动旋转图像(TRUE / FALSE)
  256.  
  257. PBPRMID_SLIDE_SPEED_TBL = 0x60/// <幻灯片速度表的指针用于幻灯片效果功能
  258.  
  259. PBPRMID_FILEDB_HANDLE = 0x90/// <与文件DB通信的文件句柄
  260. PBPRMID_FILELIST_OBJ = 0x91/// <文件列表对象指针
  261. PBPRMID_DEC_IMG_CALLBACK = 0x92/// <用于解码图像文件的回调函数
  262. PBPRMID_DEC_VIDEO_CALLBACK = 0x93/// <用于解码视频文件的回调函数
  263. PBPRMID_CFG4NEXT_CALLBACK = 0x94/// <在下一次触发之前做某事的回调函数(DspSrv)
  264. ENUM_DUMMY4WORDPB_PRMID
  265. PB_PRMID;
  266.  
  267. / **
  268. 播放错误代码。
  269. * /
  270. typedef enum _PB_ERR
  271. {
  272. PBERR_OK = 0x00/// <操作成功
  273.  
  274. PBERR_NOT_SUPPORT = 0xF0/// <不支持的功能
  275. PBERR_PAR = 0xF1/// <参数无效
  276. PBERR_FAIL = 0xFF/// <操作失败
  277.  
  278. ENUM_DUMMY4WORDPB_ERR
  279. } PB_ERR;
  280.  
  281. / **
  282. 播放等待模式。
  283.  
  284. @note用于PB_WaitCommandFinish()。
  285. * /
  286. typedef enum _PB_WAIT_MODE
  287. {
  288. PB_WAIT_NOWAIT = 0x00/// <不等待
  289. PB_WAIT_INFINITE = 0xFF/// <等待操作完成
  290. ENUM_DUMMY4WORDPB_WAIT_MODE
  291. } PB_WAIT_MODE;
  292.  
  293. / **
  294. 播放编辑图像操作。
  295.  
  296. @note对于_PB_EDIT_CONFIG :: Operation
  297. * /
  298. typedef enum _PB_EDIT_IMAGE
  299. {
  300. PBEDIT_RESIZE/// <将图像大小调整为特定大小并保存文件
  301. PBEDIT_REQTY/// <当前图像和保存文件的重新质量
  302. PBEDIT_ROTATE/// <更新当前的JPEG EXIF-Orientation标签并保存文件
  303. PBEDIT_ROTATE_DISP/// <旋转图像仅供显示
  304. PBEDIT_CROP/// <裁剪打开的图像并保存为新文件
  305. PBEDIT_NLIGHT_DISP/// <设置Nova-Light仅供显示
  306. PBEDIT_NLIGHT/// <设置Nova-Light并保存文件
  307. PBEDIT_CUSTOMIZE_DISP/// <设置自定义效果仅供显示
  308. PBEDIT_CUSTOMIZE/// <设置自定义效果并保存文件
  309. PBEDIT_CUSTOMIZE_PARA/// <设置自定义参数(如有必要)
  310. ENUM_DUMMY4WORDPB_EDIT_IMAGE
  311. } PB_EDIT_IMAGE;
  312.  
  313. / **
  314. 播放屏幕控制类型。
  315.  
  316. 屏幕控制与OSD同步显示。
  317.  
  318. @note用于PB_ScreenControl()。
  319. * /
  320. typedef enum {
  321. PB_LOCK_SCREEN = /// <图像操作的结果不会显示在显示屏上
  322. PB_FLUSH_SCREEN = 1/// <在显示屏上显示图像操作的结果
  323. ENUM_DUMMY4WORDPB_SCREEN_CTRL_TYPE
  324. } PB_SCREEN_CTRL_TYPE;
  325.  
  326. / **
  327. 要加载的文件的类型。
  328.  
  329. @note用于PB_QuasiLoadFile()。
  330. * /
  331. typedef enum _PB_FILE_TYPE
  332. {
  333. PB_FILE_JPEG = /// <JPEG文件的主图像
  334. PB_FILE_JPEG_THUMBNAIL/// <JPEG文件的缩略图
  335. PB_FILE_SCREENNAIL/// <JPEG文件的屏幕图像
  336. PB_FILE_AVI/// <AVI文件的第1帧
  337. PB_FILE_AVI_THUMBNAIL/// <AVI文件的缩略图
  338. ENUM_DUMMY4WORDPB_FILE_TYPE
  339. } PB_FILE_TYPE;
  340.  
  341. / **
  342. 显示索引
  343.  
  344. 有两种显示引擎可供支持。
  345.  
  346. @note用于PB_ConfigVdoWIN(),PB_Set1stVideoFrame()。
  347. * /
  348. typedef enum _PB_DISP_IDX
  349. {
  350. PBDISP_IDX_PRI = /// <主显示
  351. PBDISP_IDX_SEC/// <辅助显示
  352. PBDISP_IDX_MAX
  353. ENUM_DUMMY4WORDPB_DISP_IDX
  354. } PB_DISP_IDX;
  355.  
  356. / **
  357. 播放解码图像类型。
  358.  
  359. 此信息表示播放模块正在解码缩略图或主图像。
  360.  
  361. @note适用于PB_DECIMG_CB
  362. * /
  363. typedef enum
  364. {
  365. PB_DECIMG_THUMBNAIL/// <播放模块正在解码缩略图图像。
  366. PB_DECIMG_PRIMARY/// <播放模块正在解码主图像。
  367. ENUM_DUMMY4WORDPB_DECIMG_TYPE
  368. } PB_DECIMG_TYPE;
  369.  
  370. // ------------------------------------------------ ------------------------------
  371. //函数原型
  372. // ------------------------------------------------ ------------------------------
  373. / **
  374. 用于解码图像文件的回调函数原型。
  375.  
  376. 每次重放图像文件时都会调用回调函数。
  377. 用户可以通过返回FLASE返回TRUE来决定图像文件的解码位置。
  378. * /
  379. typedef BOOL(* PB_DECIMG_CB)(PB_DECIMG_TYPE DecType);
  380.  
  381. / **
  382. 用于解码视频文件的回调函数原型。
  383.  
  384. 每次播放视频文件时都会调用回调函数。
  385. 用户可以通过返回FLASE来返回TRUE,从而决定视频文件的解码位置。
  386. * /
  387. typedef BOOL(* PB_DECVIDEO_CB)(UINT32 uiUserDataAddrUINT32 uiUserDataSize);
  388.  
  389. / **
  390. 回调函数原型,用于在DspSrv tirgger下一个图像之前做一些事情。
  391.  
  392. 每次重放图像/视频时都会调用回调函数。
  393. 用户可以在DspSrv tirgger下一个图像之前旋转图像或执行其他操作。
  394. * /
  395. typedef void(* PB_CFG4NEXT_CB)(void);
  396.  
  397. // ------------------------------------------------ ------------------------------
  398. //结构
  399. // ------------------------------------------------ ------------------------------
  400. / **
  401. 播放的配置对象(PB_Open)。
  402.  
  403. @note用于PB_Open()。
  404. * /
  405. typedef struct _PLAY_OBJ
  406. {
  407. UINT32 uiMemoryAddr; /// <内存缓冲区起始地址
  408. UINT32 uiMemorySize; /// <内存缓冲区大小
  409. UINT32 uiPlayFileFmt; /// <播放静止图像和视频的文件格式
  410. PLAY_OBJ,* PPLAY_OBJ;
  411.  
  412. / **
  413. 播放编辑图像配置。
  414.  
  415. 配置结构,包含操作的ID及其参数。
  416.  
  417. @注意
  418. - #对于PB_EditImage()。
  419. - #除非另有说明,否则puiParam []的值应始终为零。
  420. * /
  421. typedef struct _PB_EDIT_CONFIG
  422. {
  423. PB_EDIT_IMAGE操作; /// <图像编辑操作ID
  424. UINT32 puiParam [4]; /// <特定编辑操作的参数
  425. } PB_EDIT_CONFIG,* PPB_EDIT_CONFIG;
  426.  
  427. / **
  428. 单个视图的命令对象。
  429.  
  430. 播放模式命令对象的结构。
  431.  
  432. @note用于PB_PlaySingleMode()。
  433. * /
  434. typedef struct _PLAY_SINGLE_OBJ
  435. {
  436. UINT32 PlayCommand; /// <播放单个视图命令
  437. UINT32 slideEffectFunc; /// <幻灯片效果函数,请参阅SlideEffect.h
  438. UINT8 JumpOffset; /// <读取下一个/上一个文件的跳转偏移量
  439. PLAY_SINGLE_OBJ,* PPLAY_SINGLE_OBJ;
  440.  
  441. / **
  442. 缩略图视图的命令对象。
  443.  
  444. 缩略图模式命令对象的结构。
  445.  
  446. @note用于PB_PlayBrowserMode()。
  447. * /
  448. typedef struct _PLAY_BROWSER_OBJ
  449. {
  450. UINT8 BrowserCommand; /// <播放缩略图视图命令
  451. UINT8 HorNums; /// <水平方向的图像数量,HorNums * VerNums必须<= 25
  452. UINT8 VerNums; /// <垂直方向有多少个图像,HorNums * VerNums必须<= 25
  453. UINT32 slideEffectFunc; /// <幻灯片效果函数,请参阅SlideEffect.h
  454. UINT8 JumpOffset; /// <读取下一个/上一个文件的跳转偏移量
  455. BOOL bReDecodeImages; /// <用于重新解码所有拇指图像
  456. /// < - @b FALSE:这意味着#JumpOffset仍在同一页面中
  457. /// < - @b TRUE:这意味着Playback必须解码另一个页面中的所有图像
  458. } PLAY_BROWSER_OBJ,* PPLAY_BROWSER_OBJ;
  459.  
  460. / **
  461. 显示特定文件的命令对象。
  462.  
  463. 用于在特定视频层(#PB_SPEC_VDO)和特定大小中显示特定文件的结构。
  464.  
  465. @note用于PB_PlaySpecFile()。
  466. * /
  467. typedef struct _PLAY_SPECFILE_OBJ
  468. {
  469. PB_SPEC_VDO PlayFileVideo; /// <播放在video1 / video2 #PB_SPEC_VDO中显示特定文件
  470. PB_SPEC_CLR PlayFileClearBuf; /// <使用/ wo清除缓冲区#PB_SPEC_CLR播放显示特定文件
  471. URECT PlayRect; /// <帧缓冲区布局的矩形数组的指针
  472. BOOL bDisplayWoReDec; /// <用于加速第二个相同的特定文件
  473. /// < - @b FALSE:强制当前图像重新解码以进行显示
  474. /// < - @b TRUE:绘制图像,无需重新解码,以加速第二个相同的特定文件
  475. PLAY_SPECFILE_OBJ,* PPLAY_SPECFILE_OBJ;
  476.  
  477. / **
  478. 捕获屏幕的配置对象。
  479.  
  480. 用于捕获屏幕到特定图像大小的结构。
  481.  
  482. @note用于PB_CaptureScreen()。
  483. * /
  484. typedef struct _PB_LOGO_INFO
  485. {
  486. UINT32 uiDstWidth; /// <[in]捕获图像的宽度('0'是特殊情况:使用面板宽度)
  487. UINT32 uiDstHeight; /// <[in]捕获图像的高度('0'是特殊情况:使用面板高度)
  488. UINT32 uiFileSize; /// <[in] JPEG文件的上限大小('0'是特殊情况:文件大小不受限制)
  489. /// <[out]捕获的JPEG文件的大小
  490. UINT32 uiFileAddr; /// <[out]捕获的JPEG文件的起始地址
  491. } PB_LOGO_INFO,* PPB_LOGO_INFO;
  492.  
  493. // ------------------------------------------------ ------------------------------
  494. //导出功能
  495. // ------------------------------------------------ ------------------------------
  496. / **
  497. 安装播放任务,标志和信号量ID
  498.  
  499. @return无效
  500. * /
  501. extern void PB_InstallIDvoid_SECTION(“。kercfg_text”);
  502.  
  503. / **
  504. 打开播放模式。
  505.  
  506. 打开播放模式并开始播放任务。
  507.  
  508. @param [in] pPlayObj播放配置对象的指针:#_ PLAY_OBJ
  509. @返回
  510. - @b PBERR_OK:成功。
  511. - @b PBERR_FAIL:失败。
  512.  
  513. 例:
  514. @码
  515. {
  516. PLAY_OBJ PlayObj;
  517.  
  518. PlayObj.uiMemoryAddr = 0x80000000;
  519. PlayObj.uiMemorySize = 0x00200000;
  520. PlayObj.uiPlayFileFmt =(PBFMT_JPG | PBFMT_AVI);
  521. PB_Open(&PlayObj);
  522. }
  523. @endcode
  524. * /
  525. extern PB_ERR PB_OpenPPLAY_OBJ pPlayObj);
  526.  
  527. / **
  528. 关闭播放模式。
  529.  
  530. 关闭播放模式并终止播放任务。
  531.  
  532. @param [in] TimeOut播放等待模式
  533. @返回
  534. - @b PBERR_OK:成功。
  535. - @b PBERR_FAIL:失败。
  536. * /
  537. extern PB_ERR PB_ClosePB_WAIT_MODE TimeOut);
  538.  
  539. / **
  540. 获取播放参数。
  541.  
  542. 获取特定Playback参数的值。
  543.  
  544. @param [in] ParamID要设置的Playback参数的标识符。
  545. @param [inout] puiVal指针在哪里写入从Playback读取的特定参数值。
  546. @返回
  547. - @b PBERR_OK:成功。
  548. - @b PBERR_PAR:参数无效。
  549. * /
  550. extern PB_ERR PB_GetParamPB_PRMID ParamIDUINT32 * puiVal);
  551.  
  552. / **
  553. 设置播放参数。
  554.  
  555. 为某些播放参数设置特定值。
  556.  
  557. @param [in] ParamID要设置的Playback参数的标识符。
  558. @param [in] uiValue要设置为特定Playback参数的值。
  559. @返回
  560. - @b PBERR_OK:成功。
  561. - @b PBERR_PAR:参数无效。
  562. * /
  563. extern PB_ERR PB_SetParamPB_PRMID ParamIDUINT32 uiValue);
  564.  
  565. / **
  566. 等待播放命令完成。
  567.  
  568. 等待播放的最后命令完成。
  569.  
  570. @param [in] TimeOut播放等待模式:#_PB_WAIT_MODE
  571. @返回
  572. - @b任务状态:根据响应状态回放任务状态。
  573. * /
  574. extern INT32 PB_WaitCommandFinishPB_WAIT_MODE TimeOut);
  575.  
  576. // ------------------------- [Async Functions] ------------------- ---------
  577. / **
  578. 编辑图像。
  579.  
  580. 该功能执行图像编辑操作。
  581. @注意
  582. - #仅在JPEG文件格式的播放模式下允许图像编辑
  583. - 必须在#PBEDIT_NLIGHT命令之前调用## PBEDIT_NLIGHT_DISP才能配置相关的Nova-light参数。
  584. - #这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  585.  
  586. @param [in] pConfig指向播放的指针编辑图像配置结构:#_PB_EDIT_CONFIG
  587. - @b Operation - 要执行的操作:
  588. - @b #PBEDIT_RESIZE
  589. - @b puiParam []输出图像大小的宽度。
  590. - @b puiParam []输出图像大小的高度。
  591. - @b puiParam []如果覆盖当前文件。
  592. - @b #PBEDIT_ROTATE
  593. - @b puiParam [] JPEG EXIF-Orientation
  594. - @b puiParam []如果在应用更改后显示已编辑的图像。
  595. - @b puiParam []如果覆盖当前文件。
  596. - @b #PBEDIT_ROTATE_DISP
  597. - @b puiParam [] JPEG EXIF-Orientation
  598. - @b #PBEDIT_CROP
  599. - @b puiParam []裁剪边界的水平开始。
  600. - @b puiParam []裁剪边界的垂直开始。
  601. - @b puiParam []裁剪边界的宽度。
  602. - @b puiParam []裁剪边界的高度。
  603. - @b #PBEDIT_NLIGHT_DISP
  604. - @b puiParam [] Nova-light的等级。
  605. - @b #PBEDIT_NLIGHT
  606. - @b puiParam []如果覆盖当前文件。
  607. - @b #PBEDIT_CUSTOMIZE_DISP
  608. - @b puiParam []自定义编辑功能指针。
  609. - @b puiParam []工作缓冲区所需的大小。
  610. - @b #PBEDIT_CUSTOMIZE
  611. - @b puiParam []自定义编辑功能指针。
  612. - @b puiParam []工作缓冲区所需的大小。
  613. - @b puiParam []如果覆盖当前文件。
  614. @返回
  615. - @b PBERR_OK:成功。
  616. - @b PBERR_PAR:参数无效。
  617. - @b PBERR_NOT_SUPPORT:不支持的操作。
  618.  
  619. 例:
  620. @码
  621. {
  622. PB_EDIT_CONFIG配置= {};
  623.  
  624. Config.Operation = PBEDIT_RESIZE;
  625. Config.puiParam [] = ;
  626. Config.puiParam [] = ;
  627. Config.puiParam [] = FALSE;
  628. PB_EditImage(配置);
  629. PB_WaitCommandFinishPB_WAIT_INFINITE);
  630. }
  631. @endcode
  632. * /
  633. extern PB_ERR PB_EditImagePPB_EDIT_CONFIG pConfig);
  634.  
  635. / **
  636. 播放单张图片。
  637.  
  638. 显示单个图像和第一帧视频剪辑。
  639. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  640.  
  641. @param [in] pPlaySingleObj单个视图的命令对象的指针:#_ PLAY_SINGLE_OBJ
  642. @return无效。
  643. * /
  644. extern void PB_PlaySingleModePPLAY_SINGLE_OBJ pPlaySingleObj);
  645.  
  646. / **
  647. 在缩略图视图中浏览图像。
  648.  
  649. 显示缩略图页面,绘制缩略图图像和视频剪辑的第一帧。
  650. @注意
  651. - #水平图像编号*垂直图像编号不能超过25
  652. - #这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  653.  
  654. @param [in] pPlayBrowserObj缩略图视图的命令对象的指针:#_ PLAY_BROWSER_OBJ
  655. @返回
  656. - @b PBERR_OK:作业被发送到回放任务,你必须等待结果。
  657. - @b PBERR_PAR:参数无效。
  658. - @b PB_STA_DONE:此命令已完成。
  659. * /
  660. extern INT32 PB_PlayBrowserModePPLAY_BROWSER_OBJ pPlayBrowserObj);
  661.  
  662. / **
  663. 播放图像缩放。
  664.  
  665. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  666.  
  667. @param [in] PlayCommand播放缩放命令(#PLAYZOOM_IN / #PLAYZOOM_OUT ..)。
  668. @return无效。
  669.  
  670. 例:
  671. @码
  672. {
  673. PB_PlayZoomModePLAYZOOM_IN);
  674. PB_WaitCommandFinishPB_WAIT_INFINITE);
  675. }
  676. @endcode
  677. * /
  678. extern void PB_PlayZoomModeUINT32 PlayCommand);
  679.  
  680. / **
  681. 播放图像滚动。
  682.  
  683. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  684.  
  685. @param [in] PlayCommand播放缩放命令(#PLAYZOOM_UP / #PLAYZOOM_DOWN / #PLAYZOOM_LEFT / #PLAYZOOM_RIGHT)。
  686. @param [in] MoveOffsetX水平滚动偏移量。
  687. @param [in] MoveOffsetY垂直滚动偏移。
  688. @返回
  689. - @b PBERR_OK:作业被发送到回放任务,你必须等待结果。
  690. - @b PBERR_PAR:参数无效。
  691. - @b PB_STA_DONE:此命令已完成,无法再滚动。
  692.  
  693. 例:
  694. @码
  695. {
  696. PB_PlayZoomPanModePLAYZOOM_UP,,);
  697. PB_WaitCommandFinishPB_WAIT_INFINITE);
  698. }
  699. @endcode
  700. * /
  701. extern INT32 PB_PlayZoomPanModeUINT32 PlayCommandUINT32 MoveOffsetXUINT32 MoveOffsetY);
  702.  
  703. / **
  704. 通过用户设置进行数码变焦播放。
  705.  
  706. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  707.  
  708. @param [in] LeftUp_X此图片的start-Left-Up-pixel-X
  709. @param [in] LeftUp_Y此图片的开始 - 左上 - 像素-Y
  710. @param [in] RightDown_X此图片的结束 - 右下 - 像素-X
  711. @param [in] RightDown_Y此图片的结束 - 右下 - 像素-Y
  712. @返回
  713. - @b PBERR_OK:作业被发送到回放任务,你必须等待结果。
  714. - @b PBERR_PAR:参数无效。
  715.  
  716. 例:
  717. @码
  718. {
  719. PB_PlayZoomUserSetting(,,,);
  720. PB_WaitCommandFinishPB_WAIT_INFINITE);
  721. }
  722. @endcode
  723. * /
  724. extern INT32 PB_PlayZoomUserSettingUINT32 LeftUp_XUINT32 LeftUp_YUINT32 RightDown_XUINT32 RightDown_Y);
  725.  
  726. / **
  727. video1 / video2和规格尺寸中显示spec文件。
  728.  
  729. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  730.  
  731. @param [in] pPlayFileObj显示特定文件的命令对象的指针:#_ PLAY_SPECFILE_OBJ
  732. @return无效。
  733. * /
  734. extern void PB_PlaySpecFilePPLAY_SPECFILE_OBJ pPlayFileObj);
  735.  
  736. / **
  737. 将屏幕捕获到特定图像大小。
  738.  
  739. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  740.  
  741. @param [inout] pPBLogoInfo指向捕获屏幕的配置对象的指针:#_PB_LOGO_INFO
  742. @return无效。
  743.  
  744. 例:
  745. @码
  746. {
  747. PB_LOGO_INFO LogoInfo = {};
  748.  
  749. LogoInfo.uiDstWidth = ;
  750. LogoInfo.uiDstHeight = ;
  751. LogoInfo.uiFileSize = ;
  752. PB_CaptureScreen(&LogoInfo);
  753. PB_WaitCommandFinishPB_WAIT_INFINITE);
  754. }
  755. @endcode
  756. * /
  757. extern void PB_CaptureScreenPPB_LOGO_INFO pPBLogoInfo);
  758.  
  759. / **
  760. 在显示坐标中获取面部编号和位置。
  761.  
  762. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  763.  
  764. @param [out] ppRect指向面矩形的指针。
  765. @param [out] pNum指向面数的指针。
  766. @return无效。
  767.  
  768. 例:
  769. @码
  770. {
  771. URECT * pRcLocation;
  772. UINT32 nFaces;
  773.  
  774. PB_FaceDetection(&pRcLocation,&nFaces);
  775. PB_WaitCommandFinishPB_WAIT_INFINITE);
  776. }
  777. @endcode
  778. * /
  779. extern void PB_FaceDetectionURECT ** ppRectUINT32 * pNum);
  780.  
  781. / **
  782. 打开特定文件。
  783.  
  784. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  785.  
  786. @param [in] PlayDirId DCF目录ID
  787. @param [in] PlayFileId DCF文件ID
  788. @return无效。
  789.  
  790. 例:
  791. @码
  792. {
  793. PB_OpenSpecFile(,);
  794. PB_WaitCommandFinishPB_WAIT_INFINITE);
  795. }
  796. @endcode
  797. * /
  798. extern void PB_OpenSpecFileUINT32 PlayDirIdUINT32 PlayFileId);
  799.  
  800. / **
  801. 按序列ID打开特定文件。
  802.  
  803. @note这个API是一个异步函数(意思是:需要调用#PB_WaitCommandFinish()来等待操作完成)。
  804.  
  805. @param [in] uiSeqID文件序列ID
  806. @param [in] bOnlyQuery Only查询文件但不读取所有文件数据。
  807. @return无效。
  808.  
  809. 例:
  810. @码
  811. {
  812. PB_OpenSpecFileBySeq(,FALSE);
  813. PB_WaitCommandFinishPB_WAIT_INFINITE);
  814. }
  815. @endcode
  816. * /
  817. extern void PB_OpenSpecFileBySeqUINT32 uiSeqIDBOOL bOnlyQuery);
  818.  
  819. // - - - - - - - - - - - - - - -[ 获取信息 ] - - - - - - - - ----------------------
  820. / **
  821. 在解码之前获取当前图像的JPEG信息。
  822.  
  823. @param [in] bParseEXIF
  824. - @b TRUE:解析EXIF和主要图像信息。
  825. - @b FALSE:仅解析主图像信息。
  826. @return pJPGInfo指向JPEG解码配置的指针(@b NULL表示解析NG)。
  827.  
  828. 例:
  829. @码
  830. {
  831. PJPGHEAD_DEC_CFG pJPGDecCfg;
  832.  
  833. pJPGDecCfg = PB_GetCurrImageInfoBeforeDecFALSE);
  834. }
  835. @endcode
  836. * /
  837. extern PJPGHEAD_DEC_CFG PB_GetCurrImageInfoBeforeDecBOOL bParseEXIF);
  838.  
  839. / **
  840. 使用此API检查是否可以成功显示可绘制文件(JPEGMJPEG等)而不实际显示它。
  841.  
  842. @param [in] FileType要加载的文件的类型:#_PB_FILE_TYPE
  843. @返回
  844. - @b PBERR_OK:成功。
  845. - @b PBERR_FAIL:失败。
  846.  
  847. 例:
  848. @码
  849. {
  850. PB_ERR LoadRslt;
  851.  
  852. PB_OpenSpecFileBySeq(,FALSE);
  853. PB_WaitCommandFinishPB_WAIT_INFINITE);
  854. LoadRslt = PB_QuasiLoadFilePB_FILE_JPEG);
  855. }
  856. @endcode
  857. * /
  858. extern PB_ERR PB_QuasiLoadFilePB_FILE_TYPE FileType);
  859.  
  860. // - - - - - - - - - - - - - - -[ 设置 ] - - - - - - - - ---------------------
  861. / **
  862. 设置BRC(比特率控制)参数,以便在回放模式下重新编码PRIMARY图像。
  863.  
  864. @param [in] uiCompressRatio目标比特流压缩比。
  865. @param [in] uiUpBoundRatio目标大小的上限比。
  866. @param [in] uiLowBoundRatio目标大小的下限比率。
  867. @param [in] uiLimitCnt重新编码的最大次数。
  868. @return无效。
  869.  
  870. 例:
  871. @码
  872. {
  873. PB_SetExpectJPEGSize(,,,);
  874.  
  875. PB_SetPerfectFixPB_PERFECT_FIX_LIGHTINGFALSENULL);
  876. PB_WaitCommandFinishPB_WAIT_INFINITE);
  877. }
  878. @endcode
  879. * /
  880. extern void PB_SetExpectJPEGSizeUINT32 uiCompressRatioUINT32 uiUpBoundRatioUINT32 uiLowBoundRatioUINT32 uiLimitCnt);
  881.  
  882. / **
  883. 设置视频输出窗口(在此特定区域中绘制图像)。
  884.  
  885. @param [in] DispIdx显示索引:#_PB_DISP_IDX
  886. @param [in] pRect指向视频窗口矩形的指针
  887. @return无效
  888. * /
  889. extern void PB_ConfigVdoWINPB_DISP_IDX DispIdxPURECT pRect);
  890.  
  891. / **
  892. 更新第一个视频帧对象。
  893.  
  894. @param [in] DispIdx显示索引:#_PB_DISP_IDX
  895. @param [in] pRect指向第一个视频剪辑帧的显示位置矩形的指针
  896. @return无效。
  897. * /
  898. extern void PB_Set1stVideoFramePB_DISP_IDX DispIdxPURECT pRect);
  899.  
  900. // - - - - - - - - - - - - - - -[ 其他 ] - - - - - - - - ---------------------
  901. / **
  902. 控制操作结果立即显示在显示器上。
  903. @noteAPI仅对一个PB操作有效。
  904.  
  905. @param [in] CtrlType播放屏幕控制类型:#PB_SCREEN_CTRL_TYPE
  906. @return无效。
  907.  
  908. 例:
  909. @码
  910. {
  911. PB_ScreenControlPB_LOCK_SCREEN);
  912. PB_PlayZoomModePLAYZOOM_IN);
  913. PB_WaitCommandFinishPB_WAIT_INFINITE);
  914.  
  915. //在这里更新OSD
  916.  
  917. PB_ScreenControlPB_FLUSH_SCREEN);
  918. }
  919. @endcode
  920. * /
  921. extern void PB_ScreenControlPB_SCREEN_CTRL_TYPE CtrlType);
  922.  
  923. extern void PB_InSlideEffect4DetailModevoid);
  924. extern void PB_OutSlideEffect4DetailModevoid);
  925.  
  926. // ----------------------------- [system] ---------------- ---------------------
  927. / **
  928. 进入睡眠模式
  929.  
  930. @return无效
  931. * /
  932. extern void PB_Sleepvoid);
  933.  
  934. / **
  935. 离开睡眠模式
  936.  
  937. @return无效
  938. * /
  939. extern void PB_Wakeupvoid);
  940.  
  941. / **
  942. 暂停DMA
  943.  
  944. @return无效
  945. * /
  946. extern void PB_PauseDMAvoid);
  947.  
  948. / **
  949. 恢复DMA
  950.  
  951. @return无效
  952. * /
  953. extern void PB_ResumeDMAvoid);
  954.  
  955. / **
  956. 暂停显示
  957.  
  958. @param [in] bWaitFinish如果等到操作完成。
  959. @return无效
  960. * /
  961. extern void PB_PauseDispBOOL bWaitFinish);
  962.  
  963. / **
  964. 恢复显示
  965.  
  966. @param [in] bWaitFinish如果等到操作完成。
  967. @return无效
  968. * /
  969. extern void PB_ResumeDispBOOL bWaitFinish);
  970.  
  971. / **
  972. 更改TV / LCD的显示尺寸。
  973.  
  974. @param [in] uiDisp_w显示目标的宽度。
  975. @param [in] uiDisp_h显示目标的高度。
  976. @return无效
  977. * /
  978. extern void PB_ChangeDisplaySizeUINT32 uiDisp_wUINT32 uiDisp_h);
  979.  
  980. // ***** [当FileList与FileDB合并时将删除以下代码] ******
  981. //
  982. // [按日期排序]
  983. //
  984. #define PLAY_FILE_ALL 0
  985. #define PLAY_FILE_BY_DAY 1
  986. #define PLAY_FILE_BY_MONTH 2
  987. #define PLAY_FILE_BY_YEAR 3
  988.  
  989. #define PB_GET_DAY_FROM_DATEx)(x0x1F
  990. #define PB_GET_MONTH_FROM_DATEx)((x >> 5)&0x0F
  991. #define PB_GET_YEAR_FROM_DATEx)(((x >> 9)&0x7F)+1980
  992.  
  993. typedef enum {
  994. PLAYDATE_INDEX_TO_1ST
  995. PLAYDATE_INDEX_TO_CURR
  996. PLAYDATE_INDEX_TO_LAST
  997. PLAYDATE_INDEX_MAX
  998. } PLAYDATE_INDEX;
  999.  
  1000. extern void PB_PlayDeletByDateUINT32 YearUINT32 MonthUINT32 Day);
  1001. extern UINT32 PB_SetBuffForFileDBUINT32 u32MemAddrUINT32 u32MaxFileNum);
  1002. extern INT32 PB_PlayByDateInitvoid);
  1003. extern void PB_PlayByDateUnInitvoid);
  1004. extern UINT16 PB_GetTotalPlayDayvoid);
  1005. extern UINT16 PB_GetFirstPlayDayvoid);
  1006. extern UINT16 PB_GetLastPlayDayvoid);
  1007. extern UINT16 PB_GetNextPlayDayvoid);
  1008. extern UINT16 PB_GetPrevPlayDayvoid);
  1009. extern UINT16 PB_GetCurrPlayDayvoid);
  1010. extern UINT16 PB_GetCurrPlayDaySeqvoid);
  1011. extern UINT16 PB_GetCurrPlayYearSeqvoid);
  1012. extern UINT16 PB_GetCurrPlayDaySeqInThisYearvoid);
  1013. extern UINT16 PB_GetPlayDaysNuminYearUINT16 SpecYear);
  1014. extern UINT16 PB_GetTotalPlayMonthvoid);
  1015. extern UINT16 PB_GetFirstPlayMonthvoid);
  1016. extern UINT16 PB_GetNextPlayMonthvoid);
  1017. extern UINT16 PB_GetPrevPlayMonthvoid);
  1018. extern UINT16 PB_GetTotalPlayYearvoid);
  1019. extern UINT16 PB_GetFirstPlayYearvoid);
  1020. extern UINT16 PB_GetNextPlayYearvoid);
  1021. extern UINT16 PB_GetPrevPlayYearvoid);
  1022. extern UINT16 PB_GetTotalFilesNumOfSpecDatevoid);
  1023. extern void PB_SetPlayDateUINT32 DateTypeUINT16 DatePLAYDATE_INDEX CurrIdxTo);
  1024. extern void PB_SetPlayDateToPrevvoid);
  1025. extern void PB_SetPlayDateToNextvoid);
  1026. // ********* [当FileList与FileDB合并时将删除上面的代码] **********
  1027.  
  1028. // @}
  1029. #万一

PlayBackTsk.h

playbacktask的更多相关文章

随机推荐

  1. 模拟 百度之星资格赛 1003 IP聚合

    题目传送门 /* 模拟水题,排序后找出重复的ip就可以了 */ #include <cstdio> #include <iostream> #include <algor ...

  2. maven编译报错 -source 1.5 中不支持 lambda(或diamond) 表达式,编码 UTF-8 的不可映射字符

    在用maven编译项目是由于项目中用了jdk 1.8, 编译是报错  -source 1.5 中不支持 lambda 表达式. 错误原因: Maven Compiler 插件默认会加 -source ...

  3. html5新增的主题结构元素

    article元素 article元素代表文档.页面或应用程序中独立的.完整的.可以独自被外部引用的内容. 它可以是一篇博客或者报刊中的文章,一篇论坛帖子.一段用户评论或独立的插件. 或其他任何独立的 ...

  4. JSP报错The value for the useBean class attribute *** is invalid.

    环境:IDEA+Tomcat9+JDK1.8 在前期学习时,环境一直能够"正常"使用,实际上环境并没有完全搭建成功. 推荐: https://blog.csdn.net/lw_po ...

  5. CMSIS的简介

    Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A ...

  6. BST AVL RBT B- B+ 的一些理解

    BST(二叉查找树,排序二叉树),如果数据有序的话,组成的二叉树会形成单列的形式,导致查询效率低AVL(平衡二叉树) 使树的左右高度差的绝对值不超过2,保证了查询效率.但是插入和删除会带来多次旋转,导 ...

  7. 几个windows使用小技巧

    windows使用技巧 保存网页上图片时,可以按住左键把图片拖到右下角(win+D,双屏幕直接拖动)然后就可以放在桌面啦 放大镜-->Win+加号或者减号(放大或缩小).Win + Esc(退出 ...

  8. UVALive 2238 Fixed Partition Memory Management 固定分区内存管理(KM算法,变形)

    题意:目前有一部分可用内存,分为m个大小固定的区域.现有n个程序要执行,每个程序在不同大小的内存中运行所需的时间不同,要使运行完所有程序所耗时最少,问每个程序在哪块区域中从什么时间运行到什么时间,以及 ...

  9. 洛谷 P1413 坚果保龄球

    题目描述 PVZ这款游戏中,有一种坚果保龄球.zombie从地图右侧不断出现,向左走,玩家需要从左侧滚动坚果来碾死他们. 我们可以认为地图是一个行数为6,列数为60的棋盘.zombie出现的那一秒站在 ...

  10. Android(java)学习笔记170:服务(service)之服务的生命周期 与 两种启动服务的区别

    1.之前我们在Android(java)学习笔记171:Service生命周期 (2015-08-18 10:56)说明过,可以回头看看: 2.Service 的两种启动方法和区别: (1)Servi ...