File: XnLink12BitS2DParser.h

package info (click to toggle)
openni2 2.2.0.33%2Bdfsg-11
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 22,216 kB
  • sloc: cpp: 111,197; ansic: 35,511; sh: 10,542; python: 1,313; java: 952; makefile: 575; xml: 12
file content (39 lines) | stat: -rw-r--r-- 1,120 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef __XNLINK12BITS2DPARSER_H__
#define __XNLINK12BITS2DPARSER_H__

#include "XnLinkMsgParser.h"
#include "XnShiftToDepth.h"

/* The size of an input element in the stream. */
#define XN_INPUT_ELEMENT_SIZE 24
/* The size of an output element in the stream. */
#define XN_OUTPUT_ELEMENT_SIZE 32

namespace xn
{

class Link12BitS2DParser : public LinkMsgParser
{
public:
	Link12BitS2DParser(const XnShiftToDepthTables& shiftToDepthTables);
	virtual ~Link12BitS2DParser();

protected:
	virtual XnStatus ParsePacketImpl(XnLinkFragmentation fragmentation,
									 const XnUInt8* pSrc, 
	                                 const XnUInt8* pSrcEnd, 
									 XnUInt8*& pDst, 
									 const XnUInt8* pDstEnd);

private:
	XnStatus Unpack12to16(const XnUInt8* pcInput,XnUInt8* pDest, const XnUInt32 nInputSize, XnUInt32* pnActualRead, XnUInt32* pnActualWritten);
	XnUInt32 ProcessFramePacketChunk(const XnUInt8* pData,XnUInt8* pDest, XnUInt32 nDataSize);

	const OniDepthPixel* m_pShiftToDepth;
	XnUInt32 m_ContinuousBufferSize;
	XnUInt8 m_ContinuousBuffer[XN_INPUT_ELEMENT_SIZE];
};

}

#endif // __XNLINK12BITS2DPARSER_H__