Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Save decoded Y 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_16X16_Y__)          // Make sure this is only included once
  11. #define __SAVE_16X16_Y__
  12.  
  13. // Module name: save_16x16_Y.asm
  14. //
  15. // Save decoded Y picture data to frame buffer
  16. //
  17.  
  18. save_16x16_Y:
  19.  
  20.     mov (1) MSGSRC.2:ud         0x000F000F:ud {NoDDClr}         // Block width and height (16x16)
  21.     mov (2) MSGSRC.0:ud         I_ORIX<2;2,1>:w {NoDDChk}       // X, Y offset
  22. #ifdef DEV_ILK
  23.     add (1)             MSGDSC  MSGDSC MSG_LEN(8)+DWBWMSGDSC_WC-DWBRMSGDSC_RC-0x00200000:ud  // Set message descriptor
  24. #else
  25.     add (1)             MSGDSC  MSGDSC MSG_LEN(8)+DWBWMSGDSC_WC-DWBRMSGDSC_RC-0x00020000:ud  // Set message descriptor
  26. #endif  // DEV_ILK
  27.  
  28.     mov (1) PDECBUF_UD<1>:ud    0x10001*DECBUF*GRFWIB+0x00400000:ud     // Pointers to row 0 and 2 of decoded data
  29.  
  30.     $for(0,0; <8; 2,4) {
  31.         mov (32)        MSGPAYLOAD(%1)<1>       r[PDECBUF, %2*GRFWIB]REGION(16,2) {Compr}               // Block Y0/Y2
  32.         mov (32)        MSGPAYLOAD(%1,16)<1>    r[PDECBUF, (1+%2)*GRFWIB]REGION(16,2) {Compr}   // Block Y1/Y3
  33.     }
  34.  
  35. //  Update message descriptor based on previous read setup
  36. //
  37.     send (8)    REG_WRITE_COMMIT_Y<1>:ud        MSGHDR  MSGSRC<8;8,1>:ud        DAPWRITE        MSGDSC
  38.  
  39.     RETURN
  40. // End of save_16x16_Y
  41.  
  42. #endif  // !defined(__SAVE_16X16_Y__)
  43.