QtGStreamer  1.2.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
memory.h
1 /*
2  Copyright (C) 2014 Diane Trout <diane@ghic.org>
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_MEMORY_H
18 #define QGST_MEMORY_H
19 
20 #include "global.h"
21 #include "miniobject.h"
22 
23 namespace QGst {
24 
25 class QTGSTREAMER_EXPORT MapInfo
26 {
27 public:
28  MapInfo();
29  virtual ~MapInfo();
30 
31  MapFlags flags() const;
32  quint8 *data() const;
33  size_t size() const;
34  size_t maxSize() const;
35 
36 private:
37  friend class Buffer;
38  friend class Memory;
39  Q_DISABLE_COPY(MapInfo);
40 
41  void *m_object;
42 };
43 
51 class QTGSTREAMER_EXPORT Memory : public MiniObject
52 {
53  QGST_WRAPPER(Memory)
54 public:
55  QGst::AllocatorPtr allocator() const;
56 
57  size_t size() const;
58  size_t offset() const;
59  size_t maxSize() const;
60 
61  bool isType(const char *type) const;
62 
63  bool map(MapInfo &info, MapFlags flags);
64  void unmap(MapInfo &info);
65 };
66 
67 } // namespace QGst
68 
69 QGST_REGISTER_TYPE(QGst::Memory)
70 
71 #endif
Wrapper class for GstMiniObject.
Definition: miniobject.h:29
Smart pointer class for working with wrapper classes that support reference counting.
Definition: global.h:56
Wrapper class for GstMemory.
Definition: memory.h:51