Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Save decoded U/V picture data to frame buffer
  3.  * Copyright © <2010>, Intel Corporation.
  4.  *
  5.  * This program is licensed under the terms and conditions of the
  6.  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
  7.  * http://www.opensource.org/licenses/eclipse-1.0.php.
  8.  *
  9.  */
  10. #if !defined(__SAVE_8x8_UV__)           // Make sure this is only included once
  11. #define __SAVE_8x8_UV__
  12.  
  13. // Module name: save_8x8_UV.asm
  14. //
  15. // Save decoded U/V picture data to frame buffer
  16. //
  17.  
  18.     mov (1) MSGSRC.2:ud     0x0007000F:ud {NoDDClr}             // Block width and height (16x8)
  19.     mov (2) MSGSRC.0<1>:ud  I_ORIX<2;2,1>:w     {NoDDChk}       // I_ORIX has already been adjusted for NV12
  20.  
  21. //  Update message descriptor based on previous read setup
  22. //
  23. #ifdef DEV_ILK
  24.     add (1)             MSGDSC  MSGDSC MSG_LEN(4)+DWBWMSGDSC_WC-DWBRMSGDSC_RC-0x00100000:ud  // Set message descriptor
  25. #else
  26.     add (1)             MSGDSC  MSGDSC MSG_LEN(4)+DWBWMSGDSC_WC-DWBRMSGDSC_RC-0x00010000:ud  // Set message descriptor
  27. #endif  // DEV_ILK
  28.  
  29. // Write U/V picture data
  30. //
  31. #ifndef MONO
  32.     mov     MSGPAYLOAD(0,0)<1>  DEC_UV(0)REGION(16,2)   // U/V row 0
  33.     mov     MSGPAYLOAD(0,16)<1> DEC_UV(1)REGION(16,2)   // U/V row 1
  34.     mov     MSGPAYLOAD(1,0)<1>  DEC_UV(2)REGION(16,2)   // U/V row 2
  35.     mov     MSGPAYLOAD(1,16)<1> DEC_UV(3)REGION(16,2)   // U/V row 3
  36.     mov     MSGPAYLOAD(2,0)<1>  DEC_UV(4)REGION(16,2)   // U/V row 4
  37.     mov     MSGPAYLOAD(2,16)<1> DEC_UV(5)REGION(16,2)   // U/V row 5
  38.     mov     MSGPAYLOAD(3,0)<1>  DEC_UV(6)REGION(16,2)   // U/V row 6
  39.     mov     MSGPAYLOAD(3,16)<1> DEC_UV(7)REGION(16,2)   // U/V row 7
  40. #else   // defined(MONO)
  41.     $for(0; <4; 2) {
  42.         mov (16)        MSGPAYLOADD(%1)<1>              0x80808080:ud {Compr}
  43.         }
  44.  
  45. #endif  // !defined(MONO)
  46.  
  47.         send (8)        REG_WRITE_COMMIT_UV<1>:ud       MSGHDR  MSGSRC<8;8,1>:ud        DAPWRITE        MSGDSC
  48.  
  49. // End of save_8x8_UV
  50.  
  51. #endif  // !defined(__SAVE_8x8_UV__)
  52.