source: 3DVCSoftware/branches/0.1-poznan-univ/source/Lib/TLibCommon/SEI.h

Last change on this file was 2, checked in by hhi, 13 years ago

inital import

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1
2
3#pragma once
4
5/**
6 * Abstract class representing an SEI message with lightweight RTTI.
7 */
8class SEI
9{
10public:
11  enum PayloadType {
12    USER_DATA_UNREGISTERED = 5,
13    PICTURE_DIGEST = 256,
14  };
15 
16  SEI() {}
17  virtual ~SEI() {}
18 
19  virtual PayloadType payloadType() const = 0;
20};
21
22class SEIuserDataUnregistered : public SEI
23{
24public:
25  PayloadType payloadType() const { return USER_DATA_UNREGISTERED; }
26
27  SEIuserDataUnregistered()
28    : userData(0)
29    {}
30
31  virtual ~SEIuserDataUnregistered()
32  {
33    delete userData;
34  }
35
36  unsigned char uuid_iso_iec_11578[16];
37  unsigned userDataLength;
38  unsigned char *userData;
39};
40
41class SEIpictureDigest : public SEI
42{
43public:
44  PayloadType payloadType() const { return PICTURE_DIGEST; }
45
46  SEIpictureDigest() {}
47  virtual ~SEIpictureDigest() {}
48 
49  enum Method {
50    MD5,
51    RESERVED,
52  } method;
53
54  unsigned char digest[16];
55};
56
57/**
58 * A structure to collate all SEI messages.  This ought to be replaced
59 * with a list of std::list<SEI*>.  However, since there is only one
60 * user of the SEI framework, this will do initially */
61class SEImessages
62{
63public:
64  SEImessages()
65    : user_data_unregistered(0)
66    , picture_digest(0)
67    {}
68
69  ~SEImessages()
70  {
71    delete user_data_unregistered;
72    delete picture_digest;
73  }
74
75  SEIuserDataUnregistered* user_data_unregistered;
76  SEIpictureDigest* picture_digest;
77};
Note: See TracBrowser for help on using the repository browser.