一直想用6410的jpg解碼器替換wince的解碼器,這幾天終于有時間,弄了一下。過程不是太復(fù)雜,大致如下:
1.從wince自帶的decoder例子開始,主要是修改renderImage部分。
2.注冊表的配置,因為wince的例子沒有注冊表配置,所以這部分花了不少時間。
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftimagingcodecs]
'_LastCookie'=dword:00000001
[HKEY_LOCAL_MACHINESoftwareMicrosoftImagingCodecss3c6410 jpeg Decoder]
'MIME Type'='image/jpeg'
'Filename Extension'='*.jpg'
'File Type Description'='JPEG file'
'DLLNAME'='imgcodec'
'Signature Mask'=hex:
ff,ff ;SigMask
'Signature Pattern'=hex:
ff,d8 ;SigPattern
'Signature Size'=dword:2
'Signature Count'=dword:1
'Format ID'= hex:
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
; AE,3C,6B,B9,28,07,D3,11,9D,7B,00,00,F8,1E,F3,2E
;'{b96b3cae-0728-11d3-9d7b-0000f81ef32e}' ;ImageFormatJPEG
'CLSID'= hex:
FA,80,A2,80,A3,C2,0c,4E,98,BF,67,32,9B,22,FD,BF
;'{80A280FA-C2A3-4e0c-98BF-67329B22FDBF}' ;CLSID_JPEGDecoder
'Flags'=dword:00020022
'Version'=dword:1
'_InfoSize'=dword:d0
微軟的文檔上沒有提到_LastCookie,一開始沒設(shè)置_LastCookie,結(jié)果總是用系統(tǒng)的解碼器。
3.在測試時發(fā)再現(xiàn),解了幾十幅圖后,就出錯了。經(jīng)過一下午的郁悶,終于找到原因:
在jpeg驅(qū)動中,VirtualAllocCopyEx與VirtualFreeEx的用法出現(xiàn)問題。
開始是VirtualFreeEx(JPGRegCtx->callerProcess, // HANDLE hProcess
JPGRegCtx->strUserBuf,
JPG_STREAM_BUF_SIZE,
MEM_DECOMMIT);
好象并沒有真正釋放虛擬內(nèi)存,最后導(dǎo)制VirtualAllocCopyEx出錯.
改成VirtualFreeEx(JPGRegCtx->callerProcess, // HANDLE hProcess
(UINT32)JPGRegCtx->strUserBuf& ~VM_BLOCK_OFST_MASK,
0,
MEM_RELEASE);
后問題解決了。
上一篇:linux-2.6.38到tiny6410的移植手冊(連載4)__USB設(shè)備(U盤,攝像頭,wifi)
下一篇:c, cs, vala 性能簡單測試
推薦閱讀最新更新時間:2025-06-16 16:42


設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- LT3757,一個 10V30V 輸入、48V/1A 輸出升壓轉(zhuǎn)換器
- 使用 Semtech 的 SC2446 的參考設(shè)計
- LTC5585 的典型應(yīng)用 - 具有 IIP2 和 DC 偏移控制的寬帶 IQ 解調(diào)器
- EVAL-ADG5208FEBZ,ADG5208F 過壓保護 8:1 多路復(fù)用器評估板
- LTC3455EUF 演示板,USB 電源解決方案,USB/鋰離子適配器,3.15V @ 500mA,1.8V @ 400mA,Vin = 5V +/- 5%
- LTC3892IUH 高效率、雙路 5V/12V 輸出同步降壓型 DC/DC 控制器的典型應(yīng)用電路
- LTC3642EMS8E、5V、50mA 降壓轉(zhuǎn)換器的典型應(yīng)用電路
- 用于安全應(yīng)用的 L9654 Quad 爆管驅(qū)動器和雙傳感器接口 ASIC 的典型應(yīng)用
- REP019: 調(diào)諧于單一110MHz IF的雙頻前端CDMA IC
- OM13076、LPCXpresso 18S37 開發(fā)板,用于 LPC43/43S00 和 LPC18S00 系列 Cortex-M MCU
- 臺積電計劃兩年后停止氮化鎵晶圓生產(chǎn),納微轉(zhuǎn)投力積電
- 研華新品搭載最新 AMD Ryzen 嵌入式 8000 系列處理器,驅(qū)動AI 智能新篇章
- 美國EDA恢復(fù)供應(yīng)?
- 從追趕到超越:的盧深視的“AI +三維機器視覺“破局之戰(zhàn)
- 常用的音頻處理器有哪些應(yīng)用場景
- 研究顯示2035年全球酒店服務(wù)機器人市場規(guī)模有望達125億美元
- i9-14900HX對比一款換湯不換藥的馬甲老U R9-8945HX
- 納祥科技2W 24位數(shù)字功放NX4920,可用于AI語音播報、WIFI播放器
- 常用解調(diào)器的定義和工作原理
- 從性能與網(wǎng)絡(luò)傳輸出發(fā),講講鐵威馬MAX系列為什么一騎絕塵