L4T Multimedia API Reference

27.1 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CameraProvider.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, 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 
37 #ifndef _ARGUS_CAMERA_PROVIDER_H
38 #define _ARGUS_CAMERA_PROVIDER_H
39 
51 namespace Argus
52 {
53 
60 {
61 public:
62 
70  static CameraProvider* create(Status* status = NULL);
71 
72 protected:
74 };
75 
81 DEFINE_UUID(InterfaceID, IID_CAMERA_PROVIDER, a00f33d7,8564,4226,955c,2d,1b,cd,af,a3,5f);
82 
83 class ICameraProvider : public Interface
84 {
85 public:
86  static const InterfaceID& id() { return IID_CAMERA_PROVIDER; }
87 
93  virtual const std::string& getVersion() const = 0;
94 
98  virtual const std::string& getVendor() const = 0;
99 
110  virtual bool supportsExtension(const ExtensionName& extension) const = 0;
111 
122  virtual Status getCameraDevices(std::vector<CameraDevice*>* devices) const = 0;
123 
132  Status* status = NULL) = 0;
133 
141  virtual CaptureSession* createCaptureSession(const std::vector<CameraDevice*>& devices,
142  Status* status = NULL) = 0;
143 
144 protected:
146 };
147 
148 } // namespace Argus
150 #endif // _ARGUS_CAMERA_PROVIDER_H
Extension name UUID.
Definition: Types.h:103
virtual CaptureSession * createCaptureSession(CameraDevice *device, Status *status=NULL)=0
Creates and returns a new CaptureSession using the given device.
The base interface for a class that provides libargus Interfaces.
Definition: Types.h:361
virtual const std::string & getVersion() const =0
Returns the version number of the Argus implementation.
Status
Status values returned by API function calls.
Definition: Types.h:228
The core interface provided by a CameraProvider.
static const InterfaceID & id()
The top-level interface class.
Definition: Types.h:330
virtual const std::string & getVendor() const =0
Returns the vendor string for the Argus implementation.
virtual Status getCameraDevices(std::vector< CameraDevice * > *devices) const =0
Returns the list of camera devices that are exposed by the provider.
virtual bool supportsExtension(const ExtensionName &extension) const =0
Returns whether or not an extension is supported by this libargus implementation. ...
DEFINE_UUID(ExtensionName, EXT_BAYER_SHARPNESS_MAP, 7d5e0470, 4ea6, 11e6, bdf4, 08, 00, 20, 0c, 9a, 66)
The Ext::BayerSharpnessMap extension adds internally-generated sharpness metrics to CaptureMetadata r...
The object that controls all operations on a single sensor.
static CameraProvider * create(Status *status=NULL)
Creates and returns a new libargus CameraProvider.
Contains an object representing a single camera device.
Definition: CameraDevice.h:65
A CameraProvider instance provides the entry point to the Argus runtime.
A unique identifier for an libargus Interface.
Definition: Types.h:340
A top level object class for libargus objects that are created and owned by the client.
Definition: Types.h:398