omxVCM4P2_DecodeVLCZigzag_IntraDCVLC_s.s revision 0c1bc742181ded4930842b46e9507372f0b1b963
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project;/** 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * File Name: omxVCM4P2_DecodeVLCZigzag_IntraDCVLC_s.s 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * OpenMAX DL: v1.0.2 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Revision: 9641 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Date: Thursday, February 7, 2008 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Description: 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Contains modules for zigzag scanning and VLC decoding 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * for inter block. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Function: omxVCM4P2_DecodeVLCZigzag_Inter 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Description: 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Performs VLC decoding and inverse zigzag scan for one intra coded block. 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Remarks: 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * Parameters: 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * [in] ppBitStream pointer to the pointer to the current byte in 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * the bitstream buffer 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * [in] pBitOffset pointer to the bit position in the byte pointed 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * to by *ppBitStream. *pBitOffset is valid within [0-7]. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * [in] shortVideoHeader binary flag indicating presence of short_video_header; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * escape modes 0-3 are used if shortVideoHeader==0, 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * and escape mode 4 is used when shortVideoHeader==1. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * [out] ppBitStream *ppBitStream is updated after the block is 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * decoded, so that it points to the current byte 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * in the bit stream buffer 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * [out] pBitOffset *pBitOffset is updated so that it points to the 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * current bit position in the byte pointed by 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * *ppBitStream 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * [out] pDst pointer to the coefficient buffer of current 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * block. Must be 16-byte aligned 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 42bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana; * Return Value: 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * OMX_Sts_BadArgErr - bad arguments 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * -At least one of the following pointers is NULL: ppBitStream, *ppBitStream, pBitOffset, pDst, or 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * -pDst is not 16-byte aligned, or 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * -*pBitOffset exceeds [0,7]. 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * OMX_Sts_Err - status error 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * -At least one mark bit is equal to zero 49bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana; * -Encountered an illegal stream code that cannot be found in the VLC table 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * -Encountered and illegal code in the VLC FLC table 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * -The number of coefficients is greater than 64 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; * 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; */ 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project INCLUDE omxtypes_s.h 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project INCLUDE armCOMM_s.h 58bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana INCLUDE armCOMM_BitDec_s.h 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_VARIANTS ARM1136JS 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IF ARM1136JS :LOR: CortexA8 68bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana 691c4027b68d5938795cc536c1d45e8d942ea537a4Daniel Lehmann 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Import various tables needed for the function 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IMPORT armVCM4P2_IntraVlcL0L1 ;// Contains optimized and packed VLC Tables for both Last =1 and last=0 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Packed in Run:Level:Last format 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IMPORT armVCM4P2_IntraL0L1LMAX ;// Contains LMAX table entries with both Last=0 and Last=1 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IMPORT armVCM4P2_IntraL0L1RMAX ;// Contains RMAX table entries with both Last=0 and Last=1 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IMPORT armVCM4P2_aClassicalZigzagScan ;// contains CLassical, Horizontal, Vertical Zigzag table entries with double the original values 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IMPORT armVCM4P2_aIntraDCLumaChromaIndex ;// Contains Optimized DCLuma and DCChroma Index table Entries 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IMPORT armVCM4P2_DecodeVLCZigzag_AC_unsafe 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project;//Input Arguments 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectppBitStream RN 0 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpBitOffset RN 1 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpDst RN 2 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectPredDir RN 3 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectshortVideoHeader RN 3 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectvideoComp RN 5 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project;//Local Variables 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectReturn RN 0 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpDCLumaChromaIndex RN 4 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpDCChromaIndex RN 7 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpVlcTableL0L1 RN 4 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpLMAXTableL0L1 RN 4 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpRMAXTableL0L1 RN 4 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpZigzagTable RN 4 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectCount RN 6 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectDCValueSize RN 6 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectpowOfSize RN 7 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projecttemp1 RN 5 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project;// Scratch Registers 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectRBitStream RN 8 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectRBitBuffer RN 9 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectRBitCount RN 10 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectT1 RN 11 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectT2 RN 12 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectDCVal RN 14 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Allocate stack memory to store optimized VLC,Zigzag, RMAX, LMAX Table Addresses 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ALLOC4 ppVlcTableL0L1,4 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ALLOC4 ppLMAXTableL0L1,4 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ALLOC4 ppRMAXTableL0L1,4 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ALLOC4 ppZigzagTable,4 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ALLOC4 pDCCoeff,4 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_START omxVCM4P2_DecodeVLCZigzag_IntraDCVLC,r12 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ARG shortVideoHeaderonStack,4 ;// Pointer to argument on stack 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_ARG videoComponstack,4 ;// Pointer to argument on stack 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Decode DC Coefficient 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LDR pDCLumaChromaIndex, =armVCM4P2_aIntraDCLumaChromaIndex ;// Load Optimized VLC Table for Luminance and Chrominance 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Initializing the Bitstream Macro 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_INIT0 ppBitStream, pBitOffset, RBitStream, RBitBuffer, RBitCount 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_LDR videoComp,videoComponstack 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_INIT1 T1, T2, T2 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ADD pDCLumaChromaIndex,pDCLumaChromaIndex,videoComp, LSL #6 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_INIT2 T1, T2, T2 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_VLD DCValueSize,T1,T2,pDCLumaChromaIndex,4,2 ;// VLC Decode using optimized Luminance and Chrominance VLC Table 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectDecodeDC 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CMP DCValueSize,#12 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project BGT ExitError 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CMP DCValueSize,#0 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MOVEQ DCVal,#0 ;// If DCValueSize is zero then DC coeff =0 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project BEQ ACDecode ;// Branch to perform AC Coeff Decoding 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_VREAD16 DCVal,DCValueSize,T1,T2 ;// Get DC Value From Bit stream 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MOV powOfSize,#1 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LSL powOfSize,DCValueSize ;// powOfSize=pow(2,DCValueSize) 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CMP DCVal,powOfSize,LSR #1 ;// Compare DCVal with powOfSize/2 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ADDLT DCVal,DCVal,#1 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SUBLT DCVal,DCVal,powOfSize ;// If Lessthan powOfSize/2 DCVal=DCVal-powOfSize+1 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Else DCVal= fetchbits from bit stream 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectCheckDCValueSize 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CMP DCValueSize,#8 ;// If DCValueSize greater than 8 check marker bit 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project BLE ACDecode 177bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_READ8 temp1,1,T1 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TEQ temp1,#0 ;// If Marker bit is zero Exit with an Error Message 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project BEQ ExitError 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ;// Decode AC Coefficient 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectACDecode 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_STR DCVal,pDCCoeff ;// Store Decoded DC Coeff on Stack 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_FINI ppBitStream,pBitOffset ;// Terminating the Bit stream Macro 190bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LDR pZigzagTable, =armVCM4P2_aClassicalZigzagScan ;// Load Zigzag talbe address 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ADD pZigzagTable, pZigzagTable, PredDir, LSL #6 ;// Modify the Zigzag table adress based on PredDir 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_STR pZigzagTable,ppZigzagTable ;// Store zigzag table on stack 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LDR pVlcTableL0L1, =armVCM4P2_IntraVlcL0L1 ;// Load Optimized VLC Table With both Last=0 and Last=1 Entries 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_STR pVlcTableL0L1,ppVlcTableL0L1 ;// Store Optimized VLC Table on stack 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project LDR pLMAXTableL0L1, =armVCM4P2_IntraL0L1LMAX ;// Load LMAX Table 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_STR pLMAXTableL0L1,ppLMAXTableL0L1 ;// Store LMAX table on stack 199bda8874a2990a864f32f8d2d916f7a05f33f797bFred Quintana LDR pRMAXTableL0L1, =armVCM4P2_IntraL0L1RMAX ;// Load RMAX Table 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MOV Count,#1 ;// Set Start =1 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_STR pRMAXTableL0L1,ppRMAXTableL0L1 ;// Store RMAX Table on Stack 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_LDR shortVideoHeader,shortVideoHeaderonStack ;// Load the Input Argument From Stack 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project BL armVCM4P2_DecodeVLCZigzag_AC_unsafe ;// Call the Unsafe Function 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_LDR DCVal,pDCCoeff ;// Get the Decoded DC Value From Stack 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project STRH DCVal,[pDst] ;// Store the DC Value 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project B ExitOK 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectExitError 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_BD_FINI ppBitStream,pBitOffset ;// Terminating the Bit Stream Macro in case of an Error 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MOV Return,#OMX_Sts_Err ;// Exit with an Error Message 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectExitOK 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project M_END 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ENDIF 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project END 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project