1 Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
3 @page nvee_camera_recording Camera Recording Sample
5 - [Overview](#overview)
6 - [Key Structure and Classes](#key)
8 - - - - - - - - - - - - -
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
18 
20 #### Prerequisites ####
21 Before running the sample, you must have the following:
23 * README that provides details on the environment requirements to build and run the sample
26 #### Additional Details
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:
35 * Direct EGL display output
38 - - - - - - - - - - - - - - -
40 ## Key Structure and Classes ##
42 The following classes are used. For more information on libargus and the EGLStream, refer to
43 the libargus documentation.
45 | Classes | Description |
46 | ------- | ----------- |
47 | class [
NvVideoEncoder](classNvVideoEncoder.html) | The class contains all the video encode related elements and functions. |
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:
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. |
66 The %
NvVideoEncoder object is derived from the following class type:
69 The key members used in the sample are as follows:
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. |
Defines a helper class for operations performed on a V4L2 Element plane.
Defines a helper class for V4L2 Video Encoder.