Jetson Linux API Reference

32.7.5 Release
CameraProvider.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of NVIDIA CORPORATION nor the names of its
13  * contributors may be used to endorse or promote products derived
14  * from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
36 #ifndef _ARGUS_CAMERA_PROVIDER_H
37 #define _ARGUS_CAMERA_PROVIDER_H
38 
39 namespace Argus
40 {
41 
52 {
53 public:
54 
62  static CameraProvider* create(Status* status = NULL);
63 
64 protected:
66 };
67 
75 DEFINE_UUID(InterfaceID, IID_CAMERA_PROVIDER, a00f33d7,8564,4226,955c,2d,1b,cd,af,a3,5f);
76 
77 class ICameraProvider : public Interface
78 {
79 public:
80  static const InterfaceID& id() { return IID_CAMERA_PROVIDER; }
81 
87  virtual const std::string& getVersion() const = 0;
88 
92  virtual const std::string& getVendor() const = 0;
93 
104  virtual bool supportsExtension(const ExtensionName& extension) const = 0;
105 
116  virtual Status getCameraDevices(std::vector<CameraDevice*>* devices) const = 0;
117 
126  Status* status = NULL) = 0;
127 
135  virtual CaptureSession* createCaptureSession(const std::vector<CameraDevice*>& devices,
136  Status* status = NULL) = 0;
137 
138 protected:
140 };
141 
142 } // namespace Argus
143 
144 #endif // _ARGUS_CAMERA_PROVIDER_H
Argus::DEFINE_UUID
DEFINE_UUID(ExtensionName, EXT_BAYER_AVERAGE_MAP, 12c3de20, 64c5, 11e6, bdf4, 08, 00, 20, 0c, 9a, 66)
Argus::ICameraProvider
Definition: CameraProvider.h:77
Argus
Definition: BayerAverageMap.h:39
Argus::CameraProvider
Definition: CameraProvider.h:51
Argus::Interface
The top-level interface class.
Definition: Types.h:344
Argus::InterfaceID
A unique identifier for a libargus Interface.
Definition: Types.h:354
Argus::CaptureSession
Definition: CaptureSession.h:51
Argus::ICameraProvider::id
static const InterfaceID & id()
Definition: CameraProvider.h:80
Argus::InterfaceProvider
The base interface for a class that provides libargus Interfaces.
Definition: Types.h:375
Argus::ICameraProvider::createCaptureSession
virtual CaptureSession * createCaptureSession(CameraDevice *device, Status *status=NULL)=0
Creates and returns a new CaptureSession using the given device.
Argus::CameraProvider::~CameraProvider
~CameraProvider()
Definition: CameraProvider.h:65
Argus::ICameraProvider::getVendor
virtual const std::string & getVendor() const =0
Returns the vendor string for the libargus implementation.
Argus::CameraProvider::create
static CameraProvider * create(Status *status=NULL)
Creates and returns a new CameraProvider.
Argus::CameraDevice
Definition: CameraDevice.h:54
Argus::ICameraProvider::~ICameraProvider
~ICameraProvider()
Definition: CameraProvider.h:139
Argus::ICameraProvider::getCameraDevices
virtual Status getCameraDevices(std::vector< CameraDevice * > *devices) const =0
Returns the list of camera devices that are exposed by the provider.
Argus::Destructable
A top level object class for libargus objects that are created and owned by the client.
Definition: Types.h:412
Argus::Status
Status
Status values returned by API function calls.
Definition: Types.h:93
Argus::ICameraProvider::supportsExtension
virtual bool supportsExtension(const ExtensionName &extension) const =0
Returns whether or not an extension is supported by this libargus implementation.
Argus::ICameraProvider::getVersion
virtual const std::string & getVersion() const =0
Returns the version number of the libargus implementation.