ARWrapper
Provides a C++ wrapper around ARToolKit and exposes a C and JNI API
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
include
ARWrapper
VideoSource.h
Go to the documentation of this file.
1
/*
2
* VideoSource.h
3
* ARToolKit5
4
*
5
* This file is part of ARToolKit.
6
*
7
* ARToolKit is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU Lesser General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
*
12
* ARToolKit is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with ARToolKit. If not, see <http://www.gnu.org/licenses/>.
19
*
20
* As a special exception, the copyright holders of this library give you
21
* permission to link this library with independent modules to produce an
22
* executable, regardless of the license terms of these independent modules, and to
23
* copy and distribute the resulting executable under terms of your choice,
24
* provided that you also meet, for each linked independent module, the terms and
25
* conditions of the license of that module. An independent module is a module
26
* which is neither derived from nor based on this library. If you modify this
27
* library, you may extend this exception to your version of the library, but you
28
* are not obligated to do so. If you do not wish to do so, delete this exception
29
* statement from your version.
30
*
31
* Copyright 2015 Daqri, LLC.
32
* Copyright 2010-2015 ARToolworks, Inc.
33
*
34
* Author(s): Julian Looser, Philip Lamb
35
*
36
*/
37
38
#ifndef VIDEOSOURCE_H
39
#define VIDEOSOURCE_H
40
41
#include "
Platform.h
"
42
43
#include <AR/ar.h>
44
#include <AR/video.h>
45
46
#include <
ARWrapper/Image.h
>
47
48
#ifndef _WINRT
49
# if TARGET_PLATFORM_ANDROID || TARGET_PLATFORM_IOS
50
# include <AR/gsub_es.h>
51
# else
52
# include <AR/gsub_lite.h>
53
#endif
54
#endif
55
63
class
VideoSource
{
64
65
protected
:
66
67
typedef
enum
{
68
DEVICE_CLOSED
,
69
DEVICE_OPEN
,
70
DEVICE_GETTING_READY
,
71
DEVICE_RUNNING
72
}
DeviceState
;
73
74
DeviceState
deviceState
;
75
76
char
*
cameraParam
;
77
char
*
cameraParamBuffer
;
78
size_t
cameraParamBufferLen
;
79
ARParamLT *
cparamLT
;
80
81
char
*
videoConfiguration
;
82
83
int
videoWidth
;
84
int
videoHeight
;
85
86
AR_PIXEL_FORMAT
pixelFormat
;
87
#if defined(HAVE_ARM_NEON) || defined(HAVE_ARM64_NEON)
88
int
m_fastPath
;
89
#endif
90
#ifndef _WINRT
91
GLenum
glPixIntFormat
;
92
GLenum
glPixFormat
;
93
GLenum
glPixType
;
94
#endif
95
96
ARUint8 *
frameBuffer
;
97
ARUint8 *
frameBuffer2
;
98
int
frameStamp
;
99
100
int
m_error
;
101
void
setError
(
int
error);
102
107
VideoSource
();
108
109
public
:
110
115
static
VideoSource
*
newVideoSource
();
116
117
virtual
~VideoSource
();
118
119
int
getError
();
120
125
bool
isOpen
();
126
131
bool
isRunning
();
132
137
void
configure
(
const
char
* vconf,
const
char
* cparaName,
const
char
* cparaBuff,
size_t
cparaBuffLen);
138
139
144
ARParamLT*
getCameraParameters
();
145
150
int
getVideoWidth
();
151
156
int
getVideoHeight
();
157
162
AR_PIXEL_FORMAT
getPixelFormat
();
163
169
virtual
const
char
*
getName
() = 0;
170
175
virtual
bool
open
() = 0;
176
181
virtual
bool
close
() = 0;
182
187
virtual
bool
captureFrame
() = 0;
188
193
ARUint8*
getFrame
();
194
200
int
getFrameStamp
();
201
207
bool
updateTexture
(
Color
* buffer);
208
209
bool
fastPath
();
210
bool
updateTexture32
(uint32_t *buffer);
211
212
#ifndef _WINRT
213
217
void
updateTextureGL
(
int
textureID);
218
#endif
219
};
220
221
#endif // !VIDEOSOURCE_H
Generated on Wed Mar 23 2016 17:24:25 for ARWrapper by
1.8.3.1