diff options
Diffstat (limited to 'mpeglib/lib/mpegplay/gop.h')
-rw-r--r-- | mpeglib/lib/mpegplay/gop.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/mpeglib/lib/mpegplay/gop.h b/mpeglib/lib/mpegplay/gop.h new file mode 100644 index 00000000..a36d2886 --- /dev/null +++ b/mpeglib/lib/mpegplay/gop.h @@ -0,0 +1,62 @@ +/* + parse/stores GOP (group of picture) information from a mpegVideoStream + Copyright (C) 2000 Martin Vogt + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Library General Public License as published by + the Free Software Foundation. + + For more information look at the file COPYRIGHT in this package + + */ + + + + + +#ifndef __GOP_H +#define __GOP_H + +#include "mpegVideoStream.h" +#include "mpegExtension.h" + +class GOP { + /* Group of pictures structure. */ + + int drop_flag; /* Flag indicating dropped frame. */ + int tc_hours; /* Hour component of time code. */ + unsigned int tc_minutes; /* Minute component of time code. */ + unsigned int tc_seconds; /* Second component of time code. */ + unsigned int tc_pictures; /* Picture counter of time code. */ + int closed_gop; /* Indicates no pred. vectors to + previous group of pictures. */ + int broken_link; /* B frame unable to be decoded. */ + MpegExtension* mpegExtension; + + + public: + GOP(); + ~GOP(); + + int processGOP(MpegVideoStream* mpegVideoStream); + void copyTo(GOP* dest); + + inline int getDropFlag() { return drop_flag; } + inline unsigned int getHour() { return tc_hours; } + inline unsigned int getMinutes() { return tc_minutes; } + inline unsigned int getSeconds() { return tc_seconds; } + inline unsigned int getPictures() { return tc_pictures; } + inline int getClosedGOP() { return closed_gop; } + inline int getBrokenLink() { return broken_link; } + + + inline void setHour(int hour) { this->tc_hours=hour; } + inline void setMinute(unsigned int minute) { this->tc_minutes=minute; } + inline void setSecond(unsigned int second) { this->tc_seconds=second; } + + + // returns diff in seconds + int substract(GOP* minus,GOP* dest); + void print(const char* description); +}; +#endif |