1 Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
3 @page l4t_mm_jpeg_decode 06_jpeg_decode
6 - [Overview](#overview)
7 - [Building and Running](#build_and_run)
9 - [Key Structure and Classes](#key)
11 - - - - - - - - - - - - - - -
15 The JPEG decode sample demonstrates JPEG decode and optional use of the lib4L2 conversion API, should buffer format conversion be required.
18 <a name=
"build_and_run">
19 - - - - - - - - - - - - - - -
20 ## Building and Running ##
22 #### Prerequisites ####
23 * You have followed Steps 1-3 in @ref mmapi_build.
24 * If you are building from your host Linux PC (x86), you have
25 followed Step 4 in @ref mmapi_build.
31 $ cd $HOME/tegra_multimedia_api/samples/06_jpeg_decode
37 $ ./jpeg_decode num_files <number of files to decode> \
38 <in-file1> <out-file1> ...<in-filen> <out-filen> [OPTIONS]
42 $ ./jpeg_decode num_files 1 ../../data/Picture/nvidia-logo.jpg ../../data/Picture/nvidia-logo.yuv
45 - - - - - - - - - - - - - - -
47 The following diagram shows the flow of data through the sample.
49 
51 #### Additional Details
53 The output plane is used to receive input and the capture plane is used to produce output.
54 When calling [decodeToFd](classNvJPEGDecoder.html#ad23c66c8f6ff167a8f32737904674cad), the data format matches Tegra hardware so that no format conversion
55 is required. Calling [decodeToBuffer](classNvJPEGDecoder.html#a36819bd7bb80afc37854539c3d24a83a) requires converting the buffer to software format after
56 hardware-accelerated JPEG decoding. The JPEG file format contains the standard software format.
58 - - - - - - - - - - - - - - -
60 ## Key Structure and Classes ##
62 This sample uses the following key structures and classes:
66 |[
NvVideoConverter](classNvVideoConverter.html)|Contains elements and functions
for video format conversion.|
67 |[NvJpegDecoder](classNvJpegDecoder.html)|Contains elements and functions
for decoding JPEG images.|
73 |[output_plane](classNvV4l2Element.html#aaba251827cef1b23e7c42f776e95fee5)|V4l2 output plane.|
74 |[capture_plane](classNvV4l2Element.html#a91806d7ed13b4b2c48758e8a02f46c6d)|V4l2 capture plane.|
75 |[waitForIdle](classNvVideoConverter.html#a2f5d1a234427862adf9cae7323b5e24c)|Wait until all queued output plane buffers are processed and dequeued from the capture plane.|
76 |[setOutputPlaneFormat](classNvVideoDecoder.html#a7cacbe8afce830495c25514cbd7c8efe)|Set output plane format.|
77 |[setCapturePlaneFormat](classNvVideoDecoder.html#abc20773d70cfafed881238dfda6046ce)|Set capture plane format.|
83 |[setupPlane](classNvV4l2ElementPlane.html#a89959f455e5222f686187cc826b1b345)|Setup the plane of V4l2 element.|
84 |[deinitPlane](classNvV4l2ElementPlane.html#af89cfe87d8f818beb0478bcf5b72574c)|Destroy the plane of V4l2 element.|
85 |[setStreamStatus](classNvV4l2ElementPlane.html#a03164dde4d7ab41f3e92b41e13059316)|Start/Stop the stream.|
86 |[setDQThreadCallback](classNvV4l2ElementPlane.html#a37f213325e0e4857180f5b2319317d6a)|Set the callback
function of the dqueue buffer thread.|
87 |[startDQThread](classNvV4l2ElementPlane.html#a31f77f5e5ed1f320caa44a868a7cbedd)|Start the thread of the dqueue buffer.|
88 |[stopDQThread](classNvV4l2ElementPlane.html#aa798d14493de321fa90aeab6d944ca87)|Stop the thread of the dqueue buffer.|
89 |[qBuffer](classNvV4l2ElementPlane.html#af4d52964fcfd37082f47682e457f5e95)|Queue the V4l2 buffer.|
90 |[dqBuffer](classNvV4l2ElementPlane.html#a8dfcbc666ee6f36a02abfb1170ae05cd)|Dequeue the V4l2 buffer.|
91 |[getNumBuffers](classNvV4l2ElementPlane.html#ac5cd394a7e0a4afd69395759aeac8787)|Get the number of the V4l2 buffer.|
93 |[getNthBuffer](classNvV4l2ElementPlane.html#a868d438908f3d267dd4af1033133892f)| Get the
NvBuffer at Index N.|
95 The [NvJpegDecoder](classNvJPEGDecoder.html)
class contains all of the functions
for JPEG image decoding. Key members used are:
97 |Function|Description|
99 |[decodeToFd](classNvJPEGDecoder.html#ad23c66c8f6ff167a8f32737904674cad)|Decode to hardware buffer (at a file descriptor) where the data is available to other components.|
100 |[decodeToBuffer](classNvJPEGDecoder.html#a36819bd7bb80afc37854539c3d24a83a)|Decode to a software buffer.|
Defines a helper class for operations performed on a V4L2 Element plane.
Class representing a buffer.
Defines a helper class for V4L2 Video Converter.
uint32_t getNumQueuedBuffers()
Gets the number of buffers currently queued on the plane.