Tags give the ability to mark specific points in history as being important
-
v1.8.0
9fc5aa06 · ·LLICF v1.8.0 - llicf_repair gives a file cut off by a crash or written without an index an index and a TAIL, in place, and replaces an index that does not match the file - llicf_decoderJoin (API 1.8) starts a receiver that joins the stream a decoder follows, for passing a stream on or recording it from the middle; Python: Decoder.join() - llicf_dump is now llicf_inspect, whose --check also compares the index's definitions - Fixes for a decoder that runs out of memory on a record or a file header - The tools open paths outside ASCII on Windows; for images, this needs LLIC 4.3.1 See CHANGELOG.md for more details. -
v1.7.0
563d9364 · ·LLICF v1.7.0 - llicf_decode writes images of YCbCr tracks as 8-bit RGB, with the matrix, range and chroma siting the track records, else those of most video - LLICF_DECODER_HIGH_PLANES (API 1.7) leaves the low planes of deep tracks out of every definition, also through the reader, and holds no memory for them - llicf_convert.py names the Cb and Cr planes of YCbCr tracks in its summary - Needs LLIC 4.3, whose YCbCr to RGB helpers llicf_decode uses See CHANGELOG.md for more details. -
v1.6.0
6edc2c82 · ·LLICF v1.6.0 - SPEC.md 1.1 adds YCBCR420 and YCBCR422, stored as they are, and allows RGBA with YCOCG420 at 8 bits; writers write version 1.1, and conformance/1.1 has files for it - YCbCr images (API 1.6) are NV12 and YUYV, with LLICF_IMAGE_CR_FIRST and LLICF_IMAGE_CHROMA_FIRST for NV21, YVYU, UYVY and VYUY - LLICF_IMAGE_MIPI_RAW14, LLICF_IMAGE_BGR and LLICF_DECODER_NEAREST_CHROMA (API 1.6) - llicf_decoderGetPlane() takes a decoder that is not const - llicf_convert.py and llicf_teslacam.py store YCbCr sources unchanged by default - Needs LLIC 4.2, whose one-pass helpers split and merge images faster; frames whose A or low planes are dropped encode and decode faster See CHANGELOG.md for more details. -
v1.5.1
7b54b3a3 · ·LLICF v1.5.1 - Added with add_subdirectory or FetchContent, LLICF builds the library only; the tools, tests and Python bindings are on by default only at the top level - Builds against an LLIC source tree the project has added before it, as the project built it, instead of fetching another; LLIC's options are no longer written to the cache - MSVC C4701 in RelWithDebInfo builds fixed - The API stays 1.5 and the format is as in 1.4 See CHANGELOG.md for more details. -
v1.5.0
e7313bc5 · ·LLICF v1.5.0 - llicf_version() (API 1.5) gives the version of the source the library was built from: git describe of the checkout, else the release version and the commit. In Python: llicf.VERSION - Builds that compile the sources directly need src/llicf/llicf_version.cpp - The format is as in 1.4 See CHANGELOG.md for more details. -
v1.4.0
b095da0c · ·LLICF v1.4.0 - llicf_encoderEncodePlanes() (API 1.4) encodes a frame from planes the writer makes, as the frame stores them, such as YCoCg 4:2:0 straight from YCbCr 4:2:0. In Python: Encoder.encode_planes() - llicf.color_space takes display_p3, bt709, bt2020, bt2100_hlg and bt2100_pq - tools/llicf_convert.py converts images and videos to LLICF with their metadata, and tools/llicf_teslacam.py converts TeslaCam clips with the vehicle data of every frame - Metadata is faster to write and read: writers send it without a copy, lookups take one pass, and record values cost no allocation per item - Python gives numeric arrays as array.array of their type, which NumPy takes without a copy, and meta_encode() copies buffers of the type's elements, NumPy arrays among them, as they are - The format is as in 1.3 See CHANGELOG.md for more details. -
v1.3.0
17af799b · ·LLICF v1.3.0 - An embedding encoder (API 1.3) turns images into records for other formats to keep, in a buffer the caller sizes with llicf_embedEncoderBound(), and llicf_embedDecode() decodes them. In Python: EmbedEncoder and Decoder.decode_record() - Encoders and decoders take samples at the top of uint16 and MIPI CSI-2 RAW10 and RAW12 rows, and llicf_encode and llicf_decode take --sample-layout - llicf_checkParams() checks plane parameters as encoders do - CRC-32C uses the CPU's instructions on 64-bit ARM and three streams on x86 - llicf_encoderEncode() takes the image's kind, and llicf_decoderImageLayout() fills an llicf_image_layout_t - The format is as in 1.0, except that an LLIC or TRAK chunk that differs only by having a CRC or not is a repeat (SPEC.md 3.1, 3.2) See CHANGELOG.md for more details. -
v1.2.0
fe499547 · ·LLICF v1.2.0 - LLICF_DECODER_NO_PLANES (API 1.2) makes a decoder that follows a stream and checks every frame and every plane's entry, but decodes no plane and takes no room for planes, for applications that decode or keep the planes themselves. In Python: DECODER_NO_PLANES - The format is as in 1.0 See CHANGELOG.md for more details. -
v1.1.0
7f45c1c1 · ·LLICF v1.1.0 - llicf_decoderPushChunks() (API 1.1) decodes LLICF frames kept in other formats: each image a record of its own, the frame with the header in front. In Python: Decoder.push_chunks() - A decoder that ran out of memory on a track definition no longer crashes or skips the track's frames - A writer without an index no longer takes memory per chunk - The format is as in 1.0 See CHANGELOG.md for more details. -
v1.0.0
b328ac9a · ·LLICF v1.0.0 - The first release of LLICF, the Low Latency Image Container Format: the file and stream format of LLIC. Format specification version 1.0 (SPEC.md), no longer a draft - One format for files and live streams: writers only append, so the same writer feeds a disk, a pipe or a TCP socket; receivers join a stream at any frame (llicf_writerJoin, llicf_readerJoin) - Intra coding only, every LLIC image type (gray, RGB, RGBA, Bayer, RGB-IR; 8 to 16 bits), multiple cameras as tracks, per-frame nanosecond timestamps and typed metadata - Reference library with C API 1.0 on top of LLIC 4.0: writer (also appending to a file), encoder, decoder (plane subsets and 8-bit output) and a memory-mapped reader that follows growing files; installed as a CMake package - Command-line tools llicf_encode, llicf_decode and llicf_dump, and Python bindings - Conformance files, with what a reader does with each See CHANGELOG.md for more details.