Skip to content

Commit da68a71

Browse files
committed
Update TegraJPEG detection
Use jpeglib.h from /usr/src/tegra_multimedia_api. Remove old source downloading and Tegra version detection routines. Remove support for 32-bit platforms (probably TK1).
1 parent dfd4eaf commit da68a71

File tree

2 files changed

+6
-108
lines changed

2 files changed

+6
-108
lines changed

cmake_modules/FindTegraJPEG.cmake

+4-107
Original file line numberDiff line numberDiff line change
@@ -3,106 +3,10 @@
33
# - TegraJPEG_INCLUDE_DIRS
44
# - TegraJPEG_LIBRARIES
55

6-
# Detect Linux4Tegra distribution
7-
SET(L4T_RELEASE_FILE /etc/nv_tegra_release)
8-
IF(EXISTS ${L4T_RELEASE_FILE})
9-
SET(TegraJPEG_IS_L4T TRUE)
10-
EXECUTE_PROCESS(
11-
COMMAND sha1sum --quiet -c /etc/nv_tegra_release
12-
RESULT_VARIABLE TegraJPEG_DRIVER_ERROR
13-
OUTPUT_VARIABLE TegraJPEG_DRIVER_OUTPUT
14-
ERROR_QUIET
15-
)
16-
IF(TegraJPEG_DRIVER_ERROR)
17-
MESSAGE(WARNING "Tegra drivers have wrong checksum:\n${TegraJPEG_DRIVER_OUTPUT}")
18-
ELSE()
19-
SET(TegraJPEG_DRIVER_OK TRUE)
20-
ENDIF()
21-
ENDIF()
22-
23-
# Detect L4T version
24-
IF(TegraJPEG_IS_L4T)
25-
FILE(READ ${L4T_RELEASE_FILE} L4T_RELEASE_CONTENT LIMIT 64 OFFSET 2)
26-
STRING(REGEX REPLACE "^R([0-9]*)[^,]*, REVISION: ([0-9.]*).*" "\\1" L4T_VER_MAJOR "${L4T_RELEASE_CONTENT}")
27-
STRING(REGEX REPLACE "^R([0-9]*)[^,]*, REVISION: ([0-9.]*).*" "\\2" L4T_VER_MINOR "${L4T_RELEASE_CONTENT}")
28-
SET(L4T_VER "${L4T_VER_MAJOR}.${L4T_VER_MINOR}")
29-
MESSAGE(STATUS "Found Linux4Tegra ${L4T_VER}")
30-
IF(L4T_VER VERSION_LESS 21.3.0)
31-
MESSAGE(WARNING "Linux4Tegra version (${L4T_VER}) less than minimum requirement (21.3)")
32-
ELSE()
33-
SET(TegraJPEG_L4T_OK TRUE)
34-
ENDIF()
35-
36-
IF(L4T_VER MATCHES ^21.3)
37-
SET(L4T_SRC_PART r21_Release_v3.0/sources/gstjpeg_src.tbz2)
38-
ELSEIF(L4T_VER MATCHES ^21.4)
39-
SET(L4T_SRC_PART r21_Release_v4.0/source/gstjpeg_src.tbz2)
40-
ELSEIF(L4T_VER MATCHES ^21.5)
41-
SET(L4T_SRC_PART r21_Release_v5.0/source/gstjpeg_src.tbz2)
42-
ELSEIF(L4T_VER MATCHES ^23.1)
43-
SET(L4T_SRC_PART r23_Release_v1.0/source/gstjpeg_src.tbz2)
44-
ELSEIF(L4T_VER MATCHES ^23.2)
45-
SET(L4T_SRC_PART r23_Release_v2.0/source/gstjpeg_src.tbz2)
46-
ELSEIF(L4T_VER MATCHES ^24.1)
47-
SET(L4T_SRC_PART r24_Release_v1.0/24.1_64bit/source/gstjpeg_src.tbz2)
48-
ELSEIF(L4T_VER MATCHES ^24.2)
49-
SET(L4T_SRC_PART r24_Release_v2.0/BSP/sources.tbz2)
50-
ELSEIF(L4T_VER MATCHES ^27.1)
51-
SET(L4T_SRC_PART r27_Release_v1.0/BSP/r27.1.0_sources.tbz2)
52-
ELSEIF(L4T_VER MATCHES ^28.1)
53-
SET(L4T_SRC_PART r28_Release_v1.0/BSP/source_release.tbz2)
54-
ELSEIF(L4T_VER MATCHES ^28.2)
55-
SET(L4T_SRC_PART r28_Release_v2.0/BSP/source_release.tbz2)
56-
ELSE()
57-
MESSAGE(WARNING "Linux4Tegra version (${L4T_VER}) is not recognized. Add the new source URL part to FindTegraJPEG.cmake.")
58-
SET(TegraJPEG_L4T_OK FALSE)
59-
ENDIF()
60-
ENDIF()
61-
62-
# Download gstjpeg source
63-
IF(TegraJPEG_L4T_OK)
64-
SET(L4T_SRC_PATH ${DEPENDS_DIR}/source/${L4T_SRC_PART})
65-
GET_FILENAME_COMPONENT(L4T_SRC_DIR ${L4T_SRC_PATH} DIRECTORY)
66-
IF(NOT EXISTS ${L4T_SRC_PATH})
67-
MESSAGE(STATUS "Downloading ${L4T_SRC_PART}...")
68-
SET(L4T_SRC_URL "http://developer.download.nvidia.com/embedded/L4T/${L4T_SRC_PART}")
69-
# Do we want checksum for the download?
70-
FILE(DOWNLOAD ${L4T_SRC_URL} ${L4T_SRC_PATH} STATUS L4T_SRC_STATUS)
71-
LIST(GET L4T_SRC_STATUS 0 L4T_SRC_ERROR)
72-
LIST(GET L4T_SRC_STATUS 1 L4T_SRC_MSG)
73-
IF(L4T_SRC_ERROR)
74-
MESSAGE(WARNING "Failed to download ${L4T_SRC_PART}: ${L4T_SRC_MSG}")
75-
FILE(REMOVE ${L4T_SRC_PATH})
76-
ENDIF()
77-
ENDIF()
78-
79-
FILE(GLOB_RECURSE L4T_GSTJPEG_PATH ${L4T_SRC_DIR}/gstjpeg_src.tbz2)
80-
IF(NOT L4T_GSTJPEG_PATH)
81-
MESSAGE(STATUS "Extracting ${L4T_SRC_PART}...")
82-
EXECUTE_PROCESS(
83-
COMMAND ${CMAKE_COMMAND} -E tar xjf ${L4T_SRC_PATH}
84-
WORKING_DIRECTORY ${L4T_SRC_DIR}
85-
)
86-
FILE(GLOB_RECURSE L4T_GSTJPEG_PATH ${L4T_SRC_DIR}/gstjpeg_src.tbz2)
87-
ENDIF()
88-
89-
IF(L4T_GSTJPEG_PATH)
90-
EXECUTE_PROCESS(
91-
COMMAND ${CMAKE_COMMAND} -E tar xjf ${L4T_GSTJPEG_PATH}
92-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
93-
RESULT_VARIABLE L4T_HEADERS_ERROR
94-
ERROR_VARIABLE L4T_HEADERS_MSG
95-
)
96-
IF(L4T_HEADERS_ERROR)
97-
MESSAGE(WARNING "Failed to unpack ${L4T_GSTJPEG_PATH}: ${L4T_HEADERS_MSG}")
98-
ENDIF()
99-
ENDIF()
100-
ENDIF()
101-
1026
FIND_PATH(TegraJPEG_INCLUDE_DIRS
103-
nv_headers/jpeglib.h
7+
libjpeg-8b/jpeglib.h
1048
DOC "Found TegraJPEG include directory"
105-
PATHS ${CMAKE_BINARY_DIR}/gstjpeg_src
9+
PATHS /usr/src/tegra_multimedia_api/include
10610
NO_DEFAULT_PATH
10711
)
10812

@@ -112,22 +16,15 @@ FIND_LIBRARY(TegraJPEG_LIBRARIES
11216
PATH_SUFFIXES tegra
11317
)
11418

115-
FIND_LIBRARY(TegraJPEG_LIBRARIES
116-
NAMES jpeg
117-
DOC "Found TegraJPEG library (libjpeg.so)"
118-
PATHS /usr/lib/arm-linux-gnueabihf/tegra
119-
NO_DEFAULT_PATH
120-
)
121-
12219
IF(TegraJPEG_INCLUDE_DIRS AND TegraJPEG_LIBRARIES)
12320
INCLUDE(CheckCSourceCompiles)
12421
set(CMAKE_REQUIRED_INCLUDES ${TegraJPEG_INCLUDE_DIRS})
12522
set(CMAKE_REQUIRED_LIBRARIES ${TegraJPEG_LIBRARIES})
126-
check_c_source_compiles("#include <stdio.h>\n#include <nv_headers/jpeglib.h>\nint main() { struct jpeg_decompress_struct d; jpeg_create_decompress(&d); d.jpegTegraMgr = 0; d.input_frame_buf = 0; return 0; }" TegraJPEG_WORKS)
23+
check_c_source_compiles("#include <stdio.h>\n#include <libjpeg-8b/jpeglib.h>\nint main() { struct jpeg_decompress_struct d; jpeg_create_decompress(&d); d.jpegTegraMgr = 0; d.input_frame_buf = 0; return 0; }" TegraJPEG_WORKS)
12724
set(CMAKE_REQUIRED_INCLUDES)
12825
set(CMAKE_REQUIRED_LIBRARIES)
12926
ENDIF()
13027

13128
INCLUDE(FindPackageHandleStandardArgs)
13229
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TegraJPEG FOUND_VAR TegraJPEG_FOUND
133-
REQUIRED_VARS TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_L4T_OK TegraJPEG_DRIVER_OK TegraJPEG_WORKS)
30+
REQUIRED_VARS TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_WORKS)

src/tegra_jpeg_rgb_packet_processor.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929

3030
namespace nv_headers {
3131
#define DONT_USE_EXTERN_C
32-
#include "nv_headers/jpeglib.h"
32+
#define TEGRA_ACCELERATE
33+
#include "libjpeg-8b/jpeglib.h"
3334
}
3435

3536
#include <dlfcn.h>

0 commit comments

Comments
 (0)