OggValidationState.h

Go to the documentation of this file.
00001 #pragma once
00002 #include <vector>
00003 using namespace std;
00004 
00005 #include <libOOOgg/libOOOgg.h>
00006 #include "OggStreamValidationState.h"
00007 class OggValidationState
00008         :       public IOggCallback
00009 {
00010 public:
00011         OggValidationState(void);
00012         virtual ~OggValidationState(void);
00013         enum eOggValidationErrors {
00014                 OVE_OK,
00015 
00016                 OVE_STRUCTURE_VERSION_NOT_ZERO,
00017 
00018                 OVE_GRANULE_POS_DECREASED,
00019                 
00020                 OVE_MORE_THAN_ONE_BOS,
00021                 OVE_BOS_PAGE_NOT_AT_START,
00022                 
00023                 OVE_MORE_THAN_ONE_EOS,
00024                 OVE_EOS_BEFORE_BOS,
00025 
00026                 OVE_DATA_AFTER_VALID_STREAM,
00027                 
00028                 OVE_SEQUENCE_NO_REPEATED,
00029                 OVE_SEQUENCE_NO_DECREASED,
00030 
00031                 OVE_UNUSED_HEADER_BITS_SET,
00032                 OVE_CONTINUATION_FLAG_EXPECTED,
00033                 OVE_UNEXPECTED_CONTINUATION_FLAG,
00034 
00035                 OVE_BOS_
00036         };
00037         enum eOggValidationState {
00038                 FVS_OK,
00039                 FVS_SEEN_NOTHING,
00040                 FVS_AWAITING_BOS,
00041                 FVS_AWAITING_EOS,
00042                 FVS_INVALID
00043         };
00044 
00045         
00046 
00047         //IOggCallback
00048         virtual bool acceptOggPage(OggPage* inOggPage);
00049 
00050         OggStreamValidationState* getStream(unsigned long inIndex);
00051         OggStreamValidationState* getStreamBySerialNo(unsigned long inSerialNo);
00052         unsigned long numStreams();
00053         vector<OggStreamValidationState*> mStreams;
00054 
00055         bool notify(bool inIsBOS, bool inIsEOS);
00056         void error_write(short int inErrNo, OggPage* inOggPage, OggStreamValidationState* inStreamState);
00057         
00058         eOggValidationState validationState();
00059         
00060         bool isValid();
00061 protected:
00062         bool mExpectingBOS;
00063         unsigned long mNumBOS;
00064         unsigned long mNumEOS;
00065         bool mIsValid;
00066         eOggValidationState mState;
00067 };

Generated on Tue Feb 15 14:54:23 2005 for oggdsf by  doxygen 1.3.9