Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-04-09 18:12:59 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-04-09 18:12:59 +0400
commitefbc9d9043ff8ff92716ddd00a5f61412d535593 (patch)
tree8f3e621f756cf1f5b4d64d97964c7e7abd8aaf08 /src/DSUtil/H264Nalu.cpp
parentdf6b139a6d9027156f614b68687e039e3a5854db (diff)
revert r1783
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1785 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/DSUtil/H264Nalu.cpp')
-rw-r--r--src/DSUtil/H264Nalu.cpp108
1 files changed, 54 insertions, 54 deletions
diff --git a/src/DSUtil/H264Nalu.cpp b/src/DSUtil/H264Nalu.cpp
index 288abf390..dd8fe57f9 100644
--- a/src/DSUtil/H264Nalu.cpp
+++ b/src/DSUtil/H264Nalu.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -25,74 +25,74 @@
void CH264Nalu::SetBuffer(BYTE* pBuffer, int nSize, int nNALSize)
{
- m_pBuffer = pBuffer;
- m_nSize = nSize;
- m_nNALSize = nNALSize;
- m_nCurPos = 0;
- m_nNextRTP = 0;
+ m_pBuffer = pBuffer;
+ m_nSize = nSize;
+ m_nNALSize = nNALSize;
+ m_nCurPos = 0;
+ m_nNextRTP = 0;
- m_nNALStartPos = 0;
- m_nNALDataPos = 0;
+ m_nNALStartPos = 0;
+ m_nNALDataPos = 0;
}
bool CH264Nalu::MoveToNextStartcode()
{
- int nBuffEnd = (m_nNextRTP > 0) ? min(m_nNextRTP, m_nSize - 4) : m_nSize - 4;
+ int nBuffEnd = (m_nNextRTP > 0) ? min (m_nNextRTP, m_nSize-4) : m_nSize-4;
- for(int i = m_nCurPos; i < nBuffEnd; i++)
- {
- if((*((DWORD*)(m_pBuffer + i)) & 0x00FFFFFF) == 0x00010000)
- {
- // Find next AnnexB Nal
- m_nCurPos = i;
- return true;
- }
- }
+ for (int i=m_nCurPos; i<nBuffEnd; i++)
+ {
+ if ((*((DWORD*)(m_pBuffer+i)) & 0x00FFFFFF) == 0x00010000)
+ {
+ // Find next AnnexB Nal
+ m_nCurPos = i;
+ return true;
+ }
+ }
- if((m_nNALSize != 0) && (m_nNextRTP < m_nSize))
- {
- m_nCurPos = m_nNextRTP;
- return true;
- }
+ if ((m_nNALSize != 0) && (m_nNextRTP < m_nSize))
+ {
+ m_nCurPos = m_nNextRTP;
+ return true;
+ }
- m_nCurPos = m_nSize;
- return false;
+ m_nCurPos = m_nSize;
+ return false;
}
bool CH264Nalu::ReadNext()
{
- if(m_nCurPos >= m_nSize) return false;
+ if (m_nCurPos >= m_nSize) return false;
- if((m_nNALSize != 0) && (m_nCurPos == m_nNextRTP))
- {
- // RTP Nalu type : (XX XX) XX XX NAL..., with XX XX XX XX or XX XX equal to NAL size
- m_nNALStartPos = m_nCurPos;
- m_nNALDataPos = m_nCurPos + m_nNALSize;
- int nTemp = 0;
- for(int i = 0; i < m_nNALSize; i++)
- {
- nTemp = (nTemp << 8) + m_pBuffer[m_nCurPos++];
- }
- m_nNextRTP += nTemp + m_nNALSize;
- MoveToNextStartcode();
- }
- else
- {
- // Remove trailing bits
- while(m_pBuffer[m_nCurPos] == 0x00 && ((*((DWORD*)(m_pBuffer + m_nCurPos)) & 0x00FFFFFF) != 0x00010000))
- m_nCurPos++;
+ if ((m_nNALSize != 0) && (m_nCurPos == m_nNextRTP))
+ {
+ // RTP Nalu type : (XX XX) XX XX NAL..., with XX XX XX XX or XX XX equal to NAL size
+ m_nNALStartPos = m_nCurPos;
+ m_nNALDataPos = m_nCurPos + m_nNALSize;
+ int nTemp = 0;
+ for (int i=0; i<m_nNALSize; i++)
+ {
+ nTemp = (nTemp << 8) + m_pBuffer[m_nCurPos++];
+ }
+ m_nNextRTP += nTemp + m_nNALSize;
+ MoveToNextStartcode();
+ }
+ else
+ {
+ // Remove trailing bits
+ while (m_pBuffer[m_nCurPos]==0x00 && ((*((DWORD*)(m_pBuffer+m_nCurPos)) & 0x00FFFFFF) != 0x00010000))
+ m_nCurPos++;
- // AnnexB Nalu : 00 00 01 NAL...
- m_nNALStartPos = m_nCurPos;
- m_nCurPos += 3;
- m_nNALDataPos = m_nCurPos;
- MoveToNextStartcode();
- }
+ // AnnexB Nalu : 00 00 01 NAL...
+ m_nNALStartPos = m_nCurPos;
+ m_nCurPos += 3;
+ m_nNALDataPos = m_nCurPos;
+ MoveToNextStartcode();
+ }
- forbidden_bit = (m_pBuffer[m_nNALDataPos] >> 7) & 1;
- nal_reference_idc = (m_pBuffer[m_nNALDataPos] >> 5) & 3;
- nal_unit_type = (NALU_TYPE)(m_pBuffer[m_nNALDataPos] & 0x1f);
+ forbidden_bit = (m_pBuffer[m_nNALDataPos]>>7) & 1;
+ nal_reference_idc = (m_pBuffer[m_nNALDataPos]>>5) & 3;
+ nal_unit_type = (NALU_TYPE) (m_pBuffer[m_nNALDataPos] & 0x1f);
- return true;
+ return true;
} \ No newline at end of file