1 ; 2 ; Copyright (C) 2009 The Android Open Source Project 3 ; 4 ; Licensed under the Apache License, Version 2.0 (the "License"); 5 ; you may not use this file except in compliance with the License. 6 ; You may obtain a copy of the License at 7 ; 8 ; http://www.apache.org/licenses/LICENSE-2.0 9 ; 10 ; Unless required by applicable law or agreed to in writing, software 11 ; distributed under the License is distributed on an "AS IS" BASIS, 12 ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 ; See the License for the specific language governing permissions and 14 ; limitations under the License. 15 ; 16 17 REQUIRE8 18 PRESERVE8 19 20 AREA |.text|, CODE 21 22 EXPORT h264bsdFlushBits 23 24 ; Input / output registers 25 pStrmData RN 0 26 numBits RN 1 27 readBits RN 2 28 strmBuffSize RN 3 29 pStrmBuffStart RN 1 30 pStrmCurrPos RN 2 31 bitPosInWord RN 1 32 33 ; -- NEON registers -- 34 35 36 37 ;/*------------------------------------------------------------------------------ 38 ; 39 ; Function: h264bsdFlushBits 40 ; 41 ; Functional description: 42 ; 43 ; Inputs: 44 ; 45 ; Outputs: 46 ; 47 ; Returns: 48 ; 49 ;------------------------------------------------------------------------------*/ 50 51 h264bsdFlushBits 52 ;// PUSH {r4-r6,lr} 53 54 LDR readBits, [pStrmData, #0x10] 55 LDR strmBuffSize, [pStrmData, #0xC] 56 57 ADD readBits, readBits, numBits 58 AND bitPosInWord, readBits, #7 59 60 STR readBits, [pStrmData, #0x10] 61 STR bitPosInWord, [pStrmData, #0x8] 62 63 LDR pStrmBuffStart, [pStrmData, #0x0] 64 65 CMP readBits, strmBuffSize, LSL #3 66 67 BHI end_of_stream 68 69 ADD pStrmCurrPos, pStrmBuffStart, readBits, LSR #3 70 STR pStrmCurrPos, [pStrmData, #0x4] 71 MOV r0, #0 72 BX lr 73 ;// POP {r4-r6,pc} 74 75 end_of_stream 76 MVN r0, #0 77 BX lr 78 ;// POP {r4-r6,pc} 79 80 END 81 82 83