| commit | 43f0d160b4ab3bbac0cd4f1f80f6524bc3f89c66 | [log] [tgz] |
|---|---|---|
| author | Yangwoo-Kim <37748041+tuzm24@users.noreply.github.com> | Tue Jul 01 15:01:38 2025 +0900 |
| committer | GitHub <noreply@github.com> | Tue Jul 01 15:01:38 2025 +0900 |
| tree | c3e5e44b51c47520b51c5594ffb19aec9766d8f4 | |
| parent | 4a95a7bac3fc979e8fa38cc5f3ae62069ad72ccd [diff] |
Copy metadata data in apv library (#109) * Copy metadata data in apv library - Fix memory leak on metadata payload - Change metadata data to be copied by the apv library Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * Adding error handle for mdp - Add error handler when mdp data size is zero. - Remove duplicated or unused code Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * Add check condition for metadata set - If memory allocation for mdp fails, the pld data should only be freed if size > 0. Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * Change condition in meta_free_mdp_data() Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * Clean-up metadata codes Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * Fix vlc_metadata when payload_size is zero Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * Refactoring about metadata - Remove metadata size - Some code cleaning in the oapv_metadata.c Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> * removed compilation error Signed-off-by: Kwang Pyo Choi <kp5.choi@samsung.com> * removed uuid parameter at oapvm_get() Signed-off-by: Kwang Pyo Choi <kp5.choi@samsung.com> * refactored code Signed-off-by: Kwang Pyo Choi <kp5.choi@samsung.com> --------- Signed-off-by: Yangwoo Kim <yearly.kim@samsung.com> Signed-off-by: Kwang Pyo Choi <kp5.choi@samsung.com> Co-authored-by: Yangwoo Kim <yearly.kim@samsung.com> Co-authored-by: Kwang Pyo Choi <kp5.choi@samsung.com>
OpenAPV provides the reference implementation of the APV codec which can be used to record professional-grade video and associated metadata without quality degradation. OpenAPV is free and open source software provided by LICENSE.
The OpenAPV supports the following features:
The APV codec is a professional video codec, which was developed in response to the need for professional level high quality video recording and post production. The primary purpose of the APV codec is for use in professional video recording and editing workflows for various types of content.
APV codec utilizes technologies known to be over 20 years to achieve a royalty free codec. APV builds a video codec using only conventional coding technologies, which consist of traditional methods published between the early 1980s and the end of the 1990s.
The APV codec standard has the following features:
Build Requirements
For ARM
For Windows (crosscompile)
Build Instructions PC (Linux)
cmake -DCMAKE_BUILD_TYPE=Release -S . -B build cmake --build build
Build Instructions ARM (Crosscompile)
cmake -S . -B build-arm -DCMAKE_TOOLCHAIN_FILE=aarch64_toolchain.cmake -DCMAKE_BUILD_TYPE=Release cmake --build build-arm
Build Instructions Windows (Crosscompile)
cmake -S . -B build-windows -DCMAKE_TOOLCHAIN_FILE=windows_x86_64_toolchain.cmake -DCMAKE_BUILD_TYPE=Release cmake --build build-windows
Output Location
Encoder as input require raw YCbCr file (422, 444), 10-bit or more.
Displaying help:
oapv_app_enc --help
Encoding:
oapv_app_enc -i input_1920x1080_yuv422_10bit.yuv -w 1920 -h 1080 -d 10 -z 30 --input-csp 2 -o encoded.apv oapv_app_enc -i input.y4m -o encoded.apv
Decoder output can be in yuv or y4m formats.
Displaying help:
oapv_app_dec --help
Decoding:
oapv_app_dec -i encoded.apv -o output.y4m
Pattern file of APV bitstream for ImHex is provided here.
In build directory run ctest
For generating package ready for distribution (default deb) execute in build directory cpack, or other formats (tgz, zip etc.) cpack -G TGZ.
This project is using folowing versioning scheme API-SET.MAJOR.MINOR.PATCH. It's mostly based on Semantic Versioning with addition of API-SET on first place. Project and library is following one common version number.
See LICENSE file for details.