aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDawid Kozinski <d.kozinski@samsung.com>2023-06-15 13:47:03 +0200
committerJames Almer <jamrial@gmail.com>2023-06-15 09:51:13 -0300
commit3069a8fe3cc7159dceec29130deb101edf99b456 (patch)
treeb02dd707070ce850fa6df91cf29e081153fea0f6
parent34e4f18360c4ecb8e5979cab8f389478d8cd7819 (diff)
downloadffmpeg-3069a8fe3cc7159dceec29130deb101edf99b456.tar.gz
avformat/evc_muxer: Added muxer to handle writing EVC encoded data into file or output bytestream
- Provided AVOutputFormat structure describing EVC output format (ff_evc_muxer) - Added documentation for EVC muxer Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com>
-rw-r--r--doc/muxers.texi6
-rw-r--r--libavformat/Makefile1
-rw-r--r--libavformat/allformats.c1
-rw-r--r--libavformat/rawenc.c13
4 files changed, 21 insertions, 0 deletions
diff --git a/doc/muxers.texi b/doc/muxers.texi
index 91d30c5b3b..f6071484ff 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2122,6 +2122,12 @@ DTS Coherent Acoustics (DCA) audio.
Dolby Digital Plus, also known as Enhanced AC-3, audio.
+@subsection evc
+
+MPEG-5 Essential Video Coding (EVC) / EVC / MPEG-5 Part 1 EVC video.
+
+Extensions: evc
+
@subsection g722
ITU-T G.722 audio.
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 05434a0f82..f31135d806 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -251,6 +251,7 @@ OBJS-$(CONFIG_HCOM_DEMUXER) += hcom.o pcm.o
OBJS-$(CONFIG_HDS_MUXER) += hdsenc.o
OBJS-$(CONFIG_HEVC_DEMUXER) += hevcdec.o rawdec.o
OBJS-$(CONFIG_HEVC_MUXER) += rawenc.o
+OBJS-$(CONFIG_EVC_MUXER) += rawenc.o
OBJS-$(CONFIG_HLS_DEMUXER) += hls.o hls_sample_encryption.o
OBJS-$(CONFIG_HLS_MUXER) += hlsenc.o hlsplaylist.o avc.o
OBJS-$(CONFIG_HNM_DEMUXER) += hnm.o
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index 96443a7272..d3871de268 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -154,6 +154,7 @@ extern const AVInputFormat ff_ea_cdata_demuxer;
extern const AVInputFormat ff_eac3_demuxer;
extern const FFOutputFormat ff_eac3_muxer;
extern const AVInputFormat ff_epaf_demuxer;
+extern const FFOutputFormat ff_evc_muxer;
extern const FFOutputFormat ff_f4v_muxer;
extern const AVInputFormat ff_ffmetadata_demuxer;
extern const FFOutputFormat ff_ffmetadata_muxer;
diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c
index 78fadda967..70d6322c53 100644
--- a/libavformat/rawenc.c
+++ b/libavformat/rawenc.c
@@ -401,6 +401,19 @@ const FFOutputFormat ff_hevc_muxer = {
};
#endif
+#if CONFIG_EVC_MUXER
+const FFOutputFormat ff_evc_muxer = {
+ .p.name = "evc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw EVC video"),
+ .p.extensions = "evc",
+ .p.audio_codec = AV_CODEC_ID_NONE,
+ .p.video_codec = AV_CODEC_ID_EVC,
+ .init = force_one_stream,
+ .write_packet = ff_raw_write_packet,
+ .p.flags = AVFMT_NOTIMESTAMPS,
+};
+#endif
+
#if CONFIG_M4V_MUXER
const FFOutputFormat ff_m4v_muxer = {
.p.name = "m4v",