mb_utils.cpp revision 3306cfee3bf38ab207a0504e49c2d492bb73ffbf
13306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/* ------------------------------------------------------------------
23306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Copyright (C) 1998-2009 PacketVideo
33306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *
43306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Licensed under the Apache License, Version 2.0 (the "License");
53306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * you may not use this file except in compliance with the License.
63306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * You may obtain a copy of the License at
73306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *
83306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *      http://www.apache.org/licenses/LICENSE-2.0
93306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong *
103306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Unless required by applicable law or agreed to in writing, software
113306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * distributed under the License is distributed on an "AS IS" BASIS,
123306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
133306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * express or implied.
143306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * See the License for the specific language governing permissions
153306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * and limitations under the License.
163306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * -------------------------------------------------------------------
173306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong */
183306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong#include "mp4dec_lib.h"
193306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
203306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/* ====================================================================== /
213306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    Function : PutSKIPPED_MB()
223306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    Date     : 04/03/2000
233306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/ ====================================================================== */
243306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
253306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongvoid PutSKIPPED_MB(uint8 *comp, uint8 *prev, int width)
263306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong{
273306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    int32 *temp0, *temp1;
283306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    int  row;
293306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    row = MB_SIZE;
303306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
313306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
323306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    while (row)
333306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    {
343306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
353306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
363306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
373306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
383306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
393306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[2] = temp0[2];
403306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[3] = temp0[3];
413306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
423306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
433306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
443306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
453306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
463306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
473306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
483306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
493306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
503306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[2] = temp0[2];
513306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[3] = temp0[3];
523306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
533306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
543306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
553306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
563306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
573306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
583306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
593306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
603306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[2] = temp0[2];
613306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[3] = temp0[3];
623306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
633306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
643306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
653306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
663306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
673306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
683306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
693306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
703306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
713306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[2] = temp0[2];
723306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[3] = temp0[3];
733306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
743306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
753306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
763306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        row -= 4;
773306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    }
783306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong}
793306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
803306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
813306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/* ====================================================================== /
823306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    Function : PutSKIPPED_B()
833306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    Date     : 04/03/2000
843306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/ ====================================================================== */
853306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
863306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongvoid PutSKIPPED_B(uint8 *comp, uint8 *prev, int width)
873306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong{
883306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    int32 *temp0, *temp1;
893306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    int  row;
903306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
913306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    row = B_SIZE;
923306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    while (row)
933306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    {
943306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
953306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
963306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
973306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
983306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
993306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1003306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
1013306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
1023306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1033306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
1043306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
1053306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1063306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
1073306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
1083306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1093306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
1103306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
1113306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1123306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
1133306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
1143306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1153306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
1163306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
1173306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1183306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
1193306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
1203306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1213306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp0 = (int32 *)prev;
1223306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1 = (int32 *)comp;
1233306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1243306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[0] = temp0[0];
1253306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        temp1[1] = temp0[1];
1263306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1273306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        comp += width;
1283306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        prev += width;
1293306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong        row -= 4;
1303306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong    }
1313306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong}
1323306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
1333306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong
134