Commit cfe29478 authored by Dawid Kozinski's avatar Dawid Kozinski Committed by James Almer

avcodec/evc_decoder: Provided support for EVC decoder

- Added EVC decoder wrapper
- Changes in project configuration file and libavcodec Makefile
- Added documentation for xevd wrapper
Signed-off-by: 's avatarDawid Kozinski <d.kozinski@samsung.com>
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent c59a96fd
...@@ -290,6 +290,7 @@ External library support: ...@@ -290,6 +290,7 @@ External library support:
--enable-libx264 enable H.264 encoding via x264 [no] --enable-libx264 enable H.264 encoding via x264 [no]
--enable-libx265 enable HEVC encoding via x265 [no] --enable-libx265 enable HEVC encoding via x265 [no]
--enable-libxeve enable EVC encoding via libxeve [no] --enable-libxeve enable EVC encoding via libxeve [no]
--enable-libxevd enable EVC decoding via libxevd [no]
--enable-libxavs enable AVS encoding via xavs [no] --enable-libxavs enable AVS encoding via xavs [no]
--enable-libxavs2 enable AVS2 encoding via xavs2 [no] --enable-libxavs2 enable AVS2 encoding via xavs2 [no]
--enable-libxcb enable X11 grabbing using XCB [autodetect] --enable-libxcb enable X11 grabbing using XCB [autodetect]
...@@ -1902,6 +1903,7 @@ EXTERNAL_LIBRARY_LIST=" ...@@ -1902,6 +1903,7 @@ EXTERNAL_LIBRARY_LIST="
libvorbis libvorbis
libvpx libvpx
libwebp libwebp
libxevd
libxeve libxeve
libxml2 libxml2
libzimg libzimg
...@@ -3460,6 +3462,7 @@ libx265_encoder_deps="libx265" ...@@ -3460,6 +3462,7 @@ libx265_encoder_deps="libx265"
libx265_encoder_select="atsc_a53" libx265_encoder_select="atsc_a53"
libxavs_encoder_deps="libxavs" libxavs_encoder_deps="libxavs"
libxavs2_encoder_deps="libxavs2" libxavs2_encoder_deps="libxavs2"
libxevd_decoder_deps="libxevd"
libxeve_encoder_deps="libxeve" libxeve_encoder_deps="libxeve"
libxvid_encoder_deps="libxvid" libxvid_encoder_deps="libxvid"
libzvbi_teletext_decoder_deps="libzvbi" libzvbi_teletext_decoder_deps="libzvbi"
...@@ -6875,6 +6878,7 @@ enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get ...@@ -6875,6 +6878,7 @@ enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get
require_cpp_condition libx265 x265.h "X265_BUILD >= 89" require_cpp_condition libx265 x265.h "X265_BUILD >= 89"
enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs"
enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get
enabled libxevd && require_pkg_config libxevd "xevd >= 0.4.1" "xevd.h" xevd_decode
enabled libxeve && require_pkg_config libxeve "xeve >= 0.4.3" "xeve.h" xeve_encode enabled libxeve && require_pkg_config libxeve "xeve >= 0.4.3" "xeve.h" xeve_encode
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
enabled libzimg && require_pkg_config libzimg "zimg >= 2.7.0" zimg.h zimg_get_api_version enabled libzimg && require_pkg_config libzimg "zimg >= 2.7.0" zimg.h zimg_get_api_version
......
...@@ -130,6 +130,30 @@ Set amount of frame threads to use during decoding. The default value is 0 (auto ...@@ -130,6 +130,30 @@ Set amount of frame threads to use during decoding. The default value is 0 (auto
@end table @end table
@section libxevd
eXtra-fast Essential Video Decoder (XEVD) MPEG-5 EVC decoder wrapper.
This decoder requires the presence of the libxevd headers and library
during configuration. You need to explicitly configure the build with
@option{--enable-libxevd}.
The xevd project website is at @url{https://github.com/mpeg5/xevd}.
@subsection Options
The following options are supported by the libxevd wrapper.
The xevd-equivalent options or values are listed in parentheses for easy migration.
To get a more accurate and extensive documentation of the libxevd options,
invoke the command @code{xevd_app --help} or consult the libxevd documentation.
@table @option
@item threads (@emph{threads})
Force to use a specific number of threads
@end table
@section QSV Decoders @section QSV Decoders
The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC, The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
......
...@@ -351,6 +351,14 @@ Go to @url{https://github.com/mpeg5/xeve} and follow the instructions for ...@@ -351,6 +351,14 @@ Go to @url{https://github.com/mpeg5/xeve} and follow the instructions for
installing the XEVE library. Then pass @code{--enable-libxeve} to configure to installing the XEVE library. Then pass @code{--enable-libxeve} to configure to
enable it. enable it.
@section eXtra-fast Essential Video Decoder (XEVD)
FFmpeg can make use of the XEVD library for EVC video decoding.
Go to @url{https://github.com/mpeg5/xevd} and follow the instructions for
installing the XEVD library. Then pass @code{--enable-libxevd} to configure to
enable it.
@section ZVBI @section ZVBI
ZVBI is a VBI decoding library which can be used by FFmpeg to decode DVB ZVBI is a VBI decoding library which can be used by FFmpeg to decode DVB
...@@ -606,7 +614,7 @@ library: ...@@ -606,7 +614,7 @@ library:
@item raw DTS @tab X @tab X @item raw DTS @tab X @tab X
@item raw DTS-HD @tab @tab X @item raw DTS-HD @tab @tab X
@item raw E-AC-3 @tab X @tab X @item raw E-AC-3 @tab X @tab X
@item raw EVC @tab X @tab @item raw EVC @tab X @tab X
@item raw FLAC @tab X @tab X @item raw FLAC @tab X @tab X
@item raw GSM @tab @tab X @item raw GSM @tab @tab X
@item raw H.261 @tab X @tab X @item raw H.261 @tab X @tab X
...@@ -953,8 +961,8 @@ following image formats are supported: ...@@ -953,8 +961,8 @@ following image formats are supported:
@item Electronic Arts TQI video @tab @tab X @item Electronic Arts TQI video @tab @tab X
@item Escape 124 @tab @tab X @item Escape 124 @tab @tab X
@item Escape 130 @tab @tab X @item Escape 130 @tab @tab X
@item EVC / MPEG-5 Part 1 @tab E @tab @item EVC / MPEG-5 Part 1 @tab E @tab E
@tab encoding supported through external library libxeve @tab encoding and decoding supported through external libraries libxeve and libxevd
@item FFmpeg video codec #1 @tab X @tab X @item FFmpeg video codec #1 @tab X @tab X
@tab lossless codec (fourcc: FFV1) @tab lossless codec (fourcc: FFV1)
@item Flash Screen Video v1 @tab X @tab X @item Flash Screen Video v1 @tab X @tab X
......
...@@ -1149,6 +1149,7 @@ OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o ...@@ -1149,6 +1149,7 @@ OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
OBJS-$(CONFIG_LIBX265_ENCODER) += libx265.o OBJS-$(CONFIG_LIBX265_ENCODER) += libx265.o
OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o
OBJS-$(CONFIG_LIBXAVS2_ENCODER) += libxavs2.o OBJS-$(CONFIG_LIBXAVS2_ENCODER) += libxavs2.o
OBJS-$(CONFIG_LIBXEVD_DECODER) += libxevd.o
OBJS-$(CONFIG_LIBXEVE_ENCODER) += libxeve.o OBJS-$(CONFIG_LIBXEVE_ENCODER) += libxeve.o
OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o
OBJS-$(CONFIG_LIBZVBI_TELETEXT_DECODER) += libzvbi-teletextdec.o ass.o OBJS-$(CONFIG_LIBZVBI_TELETEXT_DECODER) += libzvbi-teletextdec.o ass.o
......
...@@ -822,6 +822,7 @@ extern LIBX264_CONST FFCodec ff_libx264_encoder; ...@@ -822,6 +822,7 @@ extern LIBX264_CONST FFCodec ff_libx264_encoder;
extern const FFCodec ff_libx264rgb_encoder; extern const FFCodec ff_libx264rgb_encoder;
extern FFCodec ff_libx265_encoder; extern FFCodec ff_libx265_encoder;
extern const FFCodec ff_libxeve_encoder; extern const FFCodec ff_libxeve_encoder;
extern const FFCodec ff_libxevd_decoder;
extern const FFCodec ff_libxavs_encoder; extern const FFCodec ff_libxavs_encoder;
extern const FFCodec ff_libxavs2_encoder; extern const FFCodec ff_libxavs2_encoder;
extern const FFCodec ff_libxvid_encoder; extern const FFCodec ff_libxvid_encoder;
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment