mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00

Introduce a rewritten picojpeg that is able to operate statefully and rasterize into an internal line ringbuffer, emitting a line of pixels at a time to the caller. This is the JPEG equivalent of the lws PNG decoder. JPEG is based around 8- or 16- line height MCU blocks, depending on the chroma coding, mandating a corresponding internal line buffer requirement. Example total heap requirement for various kinds of 600px width jpeg decoding: Grayscale: 6.5KB RGB 4:4:4: 16.4KB RGB 4:2:2v: 16.4KB RGB 4:4:2h: 31KB RGB 4:4:0: 31KB No other allocations occur during decode. Stateful stream parsing means decode can be paused for lack of input at any time and resumed seamlessly when more input becomes available.
25 lines
696 B
CMake
25 lines
696 B
CMake
project(lws-api-test-ssjpeg C)
|
|
cmake_minimum_required(VERSION 2.8.12)
|
|
find_package(libwebsockets CONFIG REQUIRED)
|
|
list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR})
|
|
include(CheckCSourceCompiles)
|
|
include(LwsCheckRequirements)
|
|
|
|
set(SAMP lws-api-test-ssjpeg)
|
|
set(SRCS main.c )
|
|
|
|
set(requirements 1)
|
|
require_lws_config(LWS_WITH_JPEG 1 requirements)
|
|
require_lws_config(LWS_WITH_SECURE_STREAMS 1 requirements)
|
|
|
|
if (requirements)
|
|
|
|
add_executable(${SAMP} ${SRCS})
|
|
|
|
if (websockets_shared)
|
|
target_link_libraries(${SAMP} websockets_shared ${LIBWEBSOCKETS_DEP_LIBS})
|
|
add_dependencies(${SAMP} websockets_shared)
|
|
else()
|
|
target_link_libraries(${SAMP} websockets ${LIBWEBSOCKETS_DEP_LIBS})
|
|
endif()
|
|
endif()
|