Skip to content

Commit 448ce42

Browse files
Documenation updated. Frame submodule updated
1 parent 329e362 commit 448ce42

File tree

7 files changed

+24
-27
lines changed

7 files changed

+24
-27
lines changed

README.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
![vcodec_web_logo](_static/vcodec_web_logo.png)
1+
![vcodec_web_logo](./static/vcodec_web_logo.png)
22

33

44

55
# **VCodec interface C++ library**
66

7-
**v2.1.3**
7+
**v2.1.4**
88

99

1010

@@ -28,7 +28,7 @@
2828

2929
# Overview
3030

31-
**VCodec** C++ library provides standard interface as well defines data structures and rules for different video codec classes (video encoding and decoding). **VCodec** interface class doesn't do anything, just provides interface. Different video codec classes inherit interface form **VCodec** C++ class. **VCodec.h** file contains **VCodecCommand** enum, **VCodecParam** enum and **VCodec** class declaration. **VCodecCommands** enum contains IDs of commands supported by **VCodec** class. **VCodecParam** enum contains IDs of params supported by **VCodec** class. All video codec should include params and commands listed in **VCodec.h** file. **VCodec** class depends on [Frame](https://github.com/ConstantRobotics-Ltd/Frame) class which determines video frame structure. Video codec interface supports only 8 bit depth input pixels. It uses C++17 standard. The library is licensed under the **Apache 2.0** license.
31+
**VCodec** C++ library provides standard interface as well defines data structures and rules for different video codec classes (video encoding and decoding). **VCodec** interface class doesn't do anything, just provides interface. Different video codec classes inherit interface form **VCodec** C++ class. **VCodec.h** file contains **VCodecCommand** enum, **VCodecParam** enum and **VCodec** class declaration. **VCodecCommands** enum contains IDs of commands supported by **VCodec** class. **VCodecParam** enum contains IDs of params supported by **VCodec** class. All video codec should include params and commands listed in **VCodec.h** file. **VCodec** class depends on [Frame](https://rapidpixel.constantrobotics.com/docs/service-libraries/frame.html) class which determines video frame structure. Video codec interface supports only 8 bit depth input pixels. It uses C++17 standard. The library is licensed under the **Apache 2.0** license.
3232

3333

3434

@@ -45,6 +45,7 @@
4545
| 2.1.1 | 14.12.2023 | - Virtual destructor added.<br />- Frame submodule updated. |
4646
| 2.1.2 | 14.12.2023 | - Frame submodule updated.<br />- Documentation updated. |
4747
| 2.1.3 | 25.04.2024 | - Documentation updated. |
48+
| 2.1.4 | 16.05.2024 | - Documentation updated.<br />- Frame submodule updated. |
4849

4950

5051

@@ -53,16 +54,16 @@
5354
The library supplied by source code only. The user would be given a set of files in the form of a CMake project (repository). The repository structure is shown below:
5455

5556
```xml
56-
CMakeLists.txt ---------------- Main CMake file of the library.
57-
3rdparty ---------------------- Folder with third-party libraries.
58-
CMakeLists.txt ------------ CMake file to include third-party libraries.
59-
Frame --------------------- Folder with Frame library files.
60-
src --------------------------- Folder with library source code.
61-
CMakeLists.txt ------------ CMake file of the library.
62-
VCodec.h ------------------ Main library header file.
63-
VCodecVersion.h ----------- Header file with library version.
64-
VCodecVersion.h.in -------- File for CMake to generate version header.
65-
VCodec.cpp ---------------- C++ implementation file.
57+
CMakeLists.txt ---------- Main CMake file of the library.
58+
3rdparty ---------------- Folder with third-party libraries.
59+
CMakeLists.txt ------ CMake file to include third-party libraries.
60+
Frame --------------- Folder with Frame library files.
61+
src --------------------- Folder with library source code.
62+
CMakeLists.txt ------ CMake file of the library.
63+
VCodec.h ------------ Main library header file.
64+
VCodecVersion.h ----- Header file with library version.
65+
VCodecVersion.h.in -- File for CMake to generate version header.
66+
VCodec.cpp ---------- C++ implementation file.
6667
```
6768

6869

@@ -119,23 +120,23 @@ std::cout << "VCodec class version: " << VCodec::getVersion() << std::endl;
119120
Console output:
120121

121122
```bash
122-
VCodec class version: 2.1.3
123+
VCodec class version: 2.1.4
123124
```
124125

125126

126127

127128
## transcode method
128129

129-
The **transcode(...)** method intended to encode and decode video frame ([Frame](https://github.com/ConstantRobotics-Ltd/Frame) class). Video codec encode/decode video frames frame-by-frame. Method declaration:
130+
The **transcode(...)** method intended to encode and decode video frame ([Frame](https://rapidpixel.constantrobotics.com/docs/service-libraries/frame.html) class). Video codec encodes / decodes video frame-by-frame. Method declaration:
130131

131132
```cpp
132133
virtual bool transcode(Frame& src, Frame& dst) = 0;
133134
```
134135
135136
| Parameter | Value |
136137
| --------- | ------------------------------------------------------------ |
137-
| src | Source video frame (see [Frame](https://github.com/ConstantRobotics-Ltd/Frame) class description). To encode video data **src** frame must have RAW pixel data (field **fourcc** of **Frame** class): **RGB24**, **BGR24**, **YUYV**, **UYVY**, **GRAY**, **YUV24**, **NV12**, **NV21**, **YU12** or **YV12**. To decode video data **src** frame must have compressed pixel format (field **fourcc** of **Frame** class): **JPEG**, **H264** or **HEVC**. Particular video codec can support limited RAW input pixel format or only one. When it possible video codec should accept all supported RAW pixel formats and should do pixel format conversion inside if it necessary. Also, particular video codec can support all, few or just one compressed pixel format. When it possible video code should support all compressed pixel format to encode/decode. |
138-
| dst | Result video frame (see **Frame** class description). To decode video data **src** frame must have compressed pixel format (field **fourcc** of **Frame** class): **JPEG**, **H264** or **HEVC**. In case decoding particular video codec can set output pixel format automatically. To encode video frame user must set **fourcc** field of dst frame to necessary output compressed format: **JPEG**, **H264** or **HEVC**. The method will write decoded frame data (RAW pixel format) to **data** filed of **src** frame in case decoding or will write compressed data in case encoding. |
138+
| src | Source video frame (see [Frame](https://rapidpixel.constantrobotics.com/docs/service-libraries/frame.html) class description). To encode video data **src** frame must have RAW pixel data (field **fourcc** of **Frame** class): **RGB24**, **BGR24**, **YUYV**, **UYVY**, **GRAY**, **YUV24**, **NV12** (default format for codec), **NV21**, **YU12** or **YV12**. To decode video data **src** frame must have compressed pixel format (field **fourcc** of **Frame** class): **JPEG**, **H264** or **HEVC**. Particular video codec can support limited RAW input pixel format or only one (usually only **NV12**). When it possible video codec should accept all supported RAW pixel formats and should do pixel format conversion inside if it necessary. Also, particular video codec can support all, few or just one compressed pixel format. When it possible video code should support all compressed pixel format to encode / decode. |
139+
| dst | Result video frame (see [Frame](https://rapidpixel.constantrobotics.com/docs/service-libraries/frame.html) class description). To decode video data **src** frame must have compressed pixel format (field **fourcc** of **Frame** class): **JPEG**, **H264** or **HEVC**. In case decoding particular video codec can set output pixel format automatically. To encode video frame user must set **fourcc** field of dst frame to necessary output compressed format: **JPEG**, **H264** or **HEVC**. The method will write decoded frame data (RAW pixel format) to **data** filed of **src** frame in case decoding or will write compressed data in case encoding. |
139140
140141
**Returns:** TRUE if frame was encoded/decoded or FALSE if not.
141142
132 KB
Binary file not shown.

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.13)
66
## LIBRARY-PROJECT
77
## name and version
88
###############################################################################
9-
project(VCodec VERSION 2.1.2 LANGUAGES CXX)
9+
project(VCodec VERSION 2.1.4 LANGUAGES CXX)
1010

1111

1212

src/VCodec.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class VCodec
7373
* @brief Encode/decode.
7474
* @param src Source frame (RAW or compressed).
7575
* @param dst Result frame (RAW or compressed).
76-
* @return TRUE if frame was processed or FLASE if not.
76+
* @return TRUE if frame was processed or FALSE if not.
7777
*/
7878
virtual bool transcode(Frame& src, Frame& dst) = 0;
7979

@@ -100,8 +100,4 @@ class VCodec
100100
virtual bool executeCommand(VCodecCommand id) = 0;
101101
};
102102
}
103-
}
104-
105-
106-
107-
103+
}

src/VCodecVersion.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
#define VCODEC_MAJOR_VERSION 2
44
#define VCODEC_MINOR_VERSION 1
5-
#define VCODEC_PATCH_VERSION 2
5+
#define VCODEC_PATCH_VERSION 4
66

7-
#define VCODEC_VERSION "2.1.2"
7+
#define VCODEC_VERSION "2.1.4"
File renamed without changes.

0 commit comments

Comments
 (0)