⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h263_enc_bitstream.cpp

📁 audio-video-codecs.rar语音编解码器
💻 CPP
字号:
/* ///////////////////////////////////////////////////////////////////////
//
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 2005-2006 Intel Corporation. All Rights Reserved.
//
//  Description:    class H263BitStream
//
*/

#include "h263_enc_bitstream.hpp"
#include "ippdefs.h"

#if /*(_WIN32_WCE == 500) && */(_MSC_VER == 1201)
// INTERNAL COMPILER ERROR
#pragma optimize ("g", off)
#endif

void H263BitStream::PutBits(Ipp32u val, Ipp32s n)
{
    val <<= 32 - n;
    if (mBitOff == 0) {
        mPtr[0] = (Ipp8u)(val >> 24);
        if (n > 8) {
            mPtr[1] = (Ipp8u)(val >> 16);
            if (n > 16) {
                mPtr[2] = (Ipp8u)(val >> 8);
                if (n > 24) {
                    mPtr[3] = (Ipp8u)(val);
                }
            }
        }
    } else {
        mPtr[0] = (Ipp8u)((mPtr[0] & (0xFF << (8 - mBitOff))) | (Ipp8u)(val >> (24 + mBitOff)));
        if (n > 8 - mBitOff) {
            val <<= 8 - mBitOff;
            mPtr[1] = (Ipp8u)(val >> 24);
            if (n > 16 - mBitOff) {
                mPtr[2] = (Ipp8u)(val >> 16);
                if (n > 24 - mBitOff) {
                    mPtr[3] = (Ipp8u)(val >> 8);
                    if (n > 32 - mBitOff) {
                        mPtr[4] = (Ipp8u)val;
                    }
                }
            }
        }
    }
    mPtr += (mBitOff + n) >> 3;
    mBitOff = (mBitOff + n) & 7;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -