QtGStreamer  1.2.0
segment.h
1 /*
2  Copyright (C) 2014 George Kiagiadakis <kiagiadakis.george@gmail.com>
3 
4  This library is free software; you can redistribute it and/or modify
5  it under the terms of the GNU Lesser General Public License as published
6  by the Free Software Foundation; either version 2.1 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public License
15  along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17 #ifndef QGST_SEGMENT_H
18 #define QGST_SEGMENT_H
19 
20 #include "global.h"
21 
22 namespace QGst {
23 
27 class QTGSTREAMER_EXPORT Segment
28 {
29 public:
30  Segment();
31  explicit Segment(Format fmt);
32  explicit Segment(const GstSegment *segment);
33  Segment(const Segment & other);
34  virtual ~Segment();
35 
36  Segment & operator=(const Segment & other);
37 
38  bool isValid() const;
39  void init(Format fmt);
40 
41  // fields
42  SegmentFlags flags() const;
43 
44  double rate() const;
45  double appliedRate() const;
46 
47  Format format() const;
48  quint64 base() const;
49  quint64 offset() const;
50  quint64 start() const;
51  quint64 stop() const;
52  quint64 time() const;
53 
54  quint64 position() const;
55  quint64 duration() const;
56 
57  operator GstSegment*();
58  operator const GstSegment*() const;
59 
60 private:
61  struct Data;
62  QSharedDataPointer<Data> d;
63 };
64 
65 } //namespace QGst
66 
67 QGST_REGISTER_TYPE(QGst::Segment)
68 
69 #endif
Wrapper for GstSegment.
Definition: segment.h:28
Wrappers for GStreamer classes.
void init()
Definition: init.cpp:29