L4T Multimedia API Reference

27.1 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nvee_camera_recording.md
Go to the documentation of this file.
1 Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
2 
3 @page nvee_camera_recording Camera Recording Sample
4 
5 - [Overview](#overview)
6 - [Key Structure and Classes](#key)
7 
8 - - - - - - - - - - - - -
9 <a name="overview">
10 ## Overview ##
11 
12 This sample demonstrates how to use libargus to set
13 up the camera class components for a capture operation.
14 An EGLStream is also created to connect to the V4L2
15 video encoder to allow for capturing encoded video
16 streams to a file.
17 
18 ![](nvee_camera_recording.jpg)
19 
20 #### Prerequisites ####
21 Before running the sample, you must have the following:
22 
23 * README that provides details on the environment requirements to build and run the sample
24 * A camera
25 
26 #### Additional Details
27 
28 This sample demonstrates the camera producer and consumer programming model.
29 The image output is performed using the EGLStream.
30 This is an efficient and zero-copy output to various EGLStream consumers.
31 Possible consumers include:
32 
33 * OpenGL ES
34 * CUDA
35 * Direct EGL display output
36 * JPEG
37 
38 - - - - - - - - - - - - - - -
39 <a name="key">
40 ## Key Structure and Classes ##
41 
42 The following classes are used. For more information on libargus and the EGLStream, refer to
43 the libargus documentation.
44 
45 | Classes | Description |
46 | ------- | ----------- |
47 | class [NvVideoEncoder](classNvVideoEncoder.html) | The class contains all the video encode related elements and functions. |
48 
49 The \c %NvVideoEncoder class packages all the video encoding related elements and functions.
50 The key members used in the sample are as follows:
51 
52 | %NvVideoEncoder | Description |
53 | -------------- | ----------- |
54 | [output_plane](classNvV4l2Element.html#aaba251827cef1b23e7c42f776e95fee5) | V4L2 output plane. |
55 | [capture_plane](classNvV4l2Element.html#a91806d7ed13b4b2c48758e8a02f46c6d) | V4L2 capture plane. |
56 | [createVideoEncoder](classNvVideoEncoder.html#aabb707f9188805ab7f097f82b3648351) | Static function to create video encode object. |
57 | [setExtControls](classNvV4l2Element.html#aaec1f40b777bb98870f18766690d7984) | Sets the external control to the V4L2 device. |
58 | [setOutputPlaneFormat](classNvVideoDecoder.html#a7cacbe8afce830495c25514cbd7c8efe) | Sets the output plane format. |
59 | [setCapturePlaneFormat](classNvVideoDecoder.html#abc20773d70cfafed881238dfda6046ce) | Sets the capture plane format. |
60 | [isInError](classNvV4l2Element.html#aa60303288ff142ea08e53fa1dc7a72bf) | Checks if under an error state. |
61 
62 The \c %NvVideoEncoder class contains two key elements:
63 * `output_plane`
64 * `capture_plane`
65 
66 The %NvVideoEncoder object is derived from the following class type:
68 
69 The key members used in the sample are as follows:
70 
71 | %NvV4l2ElementPlane | Description |
72 | ------------------ | ----------- |
73 | [setupPlane](classNvV4l2ElementPlane.html#a89959f455e5222f686187cc826b1b345) | Sets up the plane of the V4L2 element. |
74 | [deinitPlane](classNvV4l2ElementPlane.html#af89cfe87d8f818beb0478bcf5b72574c) | Destroys the plane of the V4L2 element. |
75 | [setStreamStatus](classNvV4l2ElementPlane.html#a03164dde4d7ab41f3e92b41e13059316) | Starts/stops the stream. |
76 | [setDQThreadCallback](classNvV4l2ElementPlane.html#a37f213325e0e4857180f5b2319317d6a) | Sets the callback function of the dqueue buffer thread. |
77 | [startDQThread](classNvV4l2ElementPlane.html#a31f77f5e5ed1f320caa44a868a7cbedd) | Starts the thread of the dqueue buffer. |
78 | [stopDQThread](classNvV4l2ElementPlane.html#aa798d14493de321fa90aeab6d944ca87) | Stops the thread of the dqueue buffer. |
79 | [qBuffer](classNvV4l2ElementPlane.html#af4d52964fcfd37082f47682e457f5e95) | Queues the V4L2 buffer. |
80 | [dqBuffer](classNvV4l2ElementPlane.html#a8dfcbc666ee6f36a02abfb1170ae05cd) | Dqueue the V4L2 buffer. |
81 | getNumberBuffers | Gets the number of V4L2 buffers. |
82 | [getNthBuffer](classNvV4l2ElementPlane.html#a868d438908f3d267dd4af1033133892f) | Gets the nth number V4L2 buffer. |
83 
84 
85 
86 @}
Defines a helper class for operations performed on a V4L2 Element plane.
Defines a helper class for V4L2 Video Encoder.