Jetson Linux Multimedia API Reference

32.4.2 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NvElement.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 
36 #ifndef __NV_ELEMENT_H__
37 #define __NV_ELEMENT_H__
38 
39 #include <iostream>
40 #include <sys/time.h>
41 #include <stdint.h>
42 #include <string.h>
43 
44 #include "NvElementProfiler.h"
45 
63 class NvElement
64 {
65 public:
72  virtual int isInError()
73  {
74  return is_in_error;
75  }
76  virtual ~NvElement()
77  {
78  }
79 
86 
93  void printProfilingStats(std::ostream &out_stream = std::cout);
94 
98  virtual void enableProfiling();
99 
105  bool isProfilingEnabled();
106 
107 protected:
108 
119 
122  const char *comp_name;
129  NvElement(const NvElement& that);
133  void operator=(NvElement const&);
134 
135 };
137 #endif
static const ProfilerField PROFILER_FIELD_NONE
NVIDIA Multimedia API: Element Profiler API
Holds profiling data for the element.
int is_in_error
Indicates if an error was encountered during the operation of the element.
Definition: NvElement.h:120
void operator=(NvElement const &)
Disallows assignment.
Every element has a unique name that can be used for identifying the element in debug logs...
Definition: NvElement.h:63
const char * comp_name
Specifies the name of the component, for debugging.
Definition: NvElement.h:122
void printProfilingStats(std::ostream &out_stream=std::cout)
Prints profiling data for the element to an output stream.
NvElement(const char *name, NvElementProfiler::ProfilerField=NvElementProfiler::PROFILER_FIELD_NONE)
Creates a new NvElement object with name name.
void getProfilingData(NvElementProfiler::NvElementProfilerData &data)
Gets profiling data for the element.
bool isProfilingEnabled()
Checks whether profiling is enabled for the element.
virtual void enableProfiling()
Enables profiling for the element.
virtual int isInError()
Indicates whether the element encountered an error during its operation.
Definition: NvElement.h:72
virtual ~NvElement()
Definition: NvElement.h:76
NvElementProfiler profiler
Profiler for the element.
Definition: NvElement.h:124