blob: b933c8b321895d925f9ff6969c26589f82703e23 (
plain) (
blame)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#if !defined(DRMINFO_HPP)
#define DRMINFO_HPP
//______________________________________________________________________________
//
// DRMInfo.hpp
//
//______________________________________________________________________________
// Include Files and Forward Declarations
#include <string>
#include <exception>
#include <iosfwd>
#include "FourCC.hpp"
namespace on2vp
{
//______________________________________________________________________________
// Macro, Enumeration, and Constant Definitions
//______________________________________________________________________________
// Type, Struct, and Class Definitions
//--------------------------------------
class DRMInfo
{
friend std::ostream& operator<<(std::ostream& os, const DRMInfo& drmi);
public:
class Exception : public std::exception
{
public:
Exception(const std::string& strText);
~Exception() throw();
const char* what() const throw();
private:
std::string m_strText;
};
DRMInfo();
DRMInfo(const DRMInfo& drmi);
~DRMInfo();
DRMInfo& operator=(const DRMInfo& drmi);
const FourCC scheme() const;
long scope() const;
long amount() const;
const unsigned char* data() const;
long dataSize() const;
const unsigned char* drmx() const;
long drmxSize() const;
void scheme(FourCC fccScheme);
void scope(long lScope);
void amount(long lAmount);
void data(const unsigned char* pData, long lDataSize);
void init(FourCC fccScheme, long lScope, long lAmount, const unsigned char* pData, long lDataSize);
void drmx(const unsigned char* pDRMX, long lDRMXSize);
private:
enum
{
DRMXHeaderSize = 16
};
FourCC m_fccScheme;
long m_lScope;
long m_lAmount;
unsigned char* m_pData;
long m_lDataSize;
mutable unsigned char* m_pDRMX;
long m_lDRMXSize;
};
//______________________________________________________________________________
// Object and Function Declarations
//______________________________________________________________________________
// Object and Function Definitions
} // namespace on2vp
#endif // DRMINFO_HPP
|