1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

491 Commits

Author SHA1 Message Date
Jack Bruienne
70fef2371c avformat: add DFPWM raw format
This patch builds on my previous DFPWM codec patch, adding a raw
audio format to be able to read/write the raw files that are most commonly
used (as no other container format supports it yet).

The muxers are mostly copied from the PCM demuxer and the raw muxers, as
DFPWM is typically stored as raw data.

Please see the previous patch for more information on DFPWM.

Signed-off-by: Jack Bruienne <jackbruienne@gmail.com>
2022-03-10 14:11:12 +01:00
Jack Bruienne
39a33038ce avcodec: add DFPWM1a codec
From the wiki page (https://wiki.vexatos.com/dfpwm):
> DFPWM (Dynamic Filter Pulse Width Modulation) is an audio codec
> created by Ben “GreaseMonkey” Russell in 2012, originally to be used
> as a voice codec for asiekierka's pixmess, a C remake of 64pixels.
> It is a 1-bit-per-sample codec which uses a dynamic-strength one-pole
> low-pass filter as a predictor. Due to the fact that a raw DPFWM decoding
> creates a high-pitched whine, it is often followed by some post-processing
> filters to make the stream more listenable.

It has recently gained popularity through the ComputerCraft mod for
Minecraft, which added support for audio through this codec, as well as
the Computronics expansion which preceeded the official support. These
both implement the slightly adjusted 1a version of the codec, which is
the version I have chosen for this patch.

This patch adds a new codec (with encoding and decoding) for DFPWM1a.
The codec sources are pretty simple: they use the reference codec with
a basic wrapper to connect it to the FFmpeg AVCodec system.

To clarify, the codec does not have a specific sample rate - it is
provided by the container (or user), which is typically 48000, but has
also been known to be 32768. The codec does not specify channel info
either, and it's pretty much always used with one mono channel.
However, since it appears that libavcodec expects both sample rate and
channel count to be handled by either the codec or container, I have
made the decision to allow multiple channels interleaved, which as far
as I know has never been used, but it works fine here nevertheless. The
accompanying raw format has a channels option to set this. (I expect
most users of this will not use multiple channels, but it remains an
option just in case.)

This patch will be highly useful to ComputerCraft developers who are
working with audio, as it is the standard format for audio, and there
are few user-friendly encoders out there, and even fewer decoders. It
will streamline the process for importing and listening to audio,
replacing the need to write code or use tools that require very
specific input formats.

You may use the CraftOS-PC program (https://www.craftos-pc.cc) to test
out DFPWM playback. To use it, run the program and type this command:
"attach left speaker" Then run "speaker play <file.dfpwm>" for each file.
The app runs in a sandbox, so files have to be transferred in first;
the easiest way to do this is to simply drag the file on the window.
(Or copy files to the folder at https://www.craftos-pc.cc/docs/saves.)

Sample DFPWM files can be generated with an online tool at
https://music.madefor.cc. This is the current best way to encode DFPWM
files. Simply drag an audio file onto the page, and it will encode it,
giving a download link on the page.

I've made sure to update all of the docs as per Developer§7, and I've
tested it as per section 8. Test files encoded to DFPWM play correctly
in ComputerCraft, and other files that work in CC are correctly decoded.
I have also verified that corrupt files do not crash the decoder - this
should theoretically not be an issue as the result size is constant with
respect to the input size.

Signed-off-by: Jack Bruienne <jackbruienne@gmail.com>
2022-03-10 14:05:25 +01:00
Anton Khirnov
be95df12bb lavc/mpeg*: drop the XvMC hwaccel code
XvMC was last relevant over 10 years ago, if ever. There is no reason to
use it today.
2022-02-15 10:16:15 +01:00
Haihao Xiang
ba44843f40 MAINTAINERS: add my gpg fingerprint
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2021-12-23 09:25:16 +08:00
U. Artie Eoff
cde2efb5da MAINTAINERS: Add Haihao Xiang for vaapi
Current listed maintainers for vaapi plugin are
not reponsive and/or currently active in the
ffmpeg community.  Thus, vaapi plugin patches
(and qsv plugin) have generally gone ignored or
lost in the ether for too long.

Remove Gwenole Beauchesne from vaapi maintainer
who has not been active since 2016.

Current alternative maintainer for vaapi is Mark
Thompson whom has not been active since
March/April 2021.

Therefore, add Haihao Xiang to vaapi maintainer
who's primary role is FFmpeg development with a
focus on the vaapi and qsv plugins.  Haihao has
over a decade of media experience and many years
of FFmpeg development experience, amongst other
media frameworks.

The additional patch for adding Haihao as qsv
plugin maintainer has been submitted previously:

https://patchwork.ffmpeg.org/project/ffmpeg/patch/20210608141134.27448-1-zhongli_dev@126.com/

This will help FFmpeg to continue to be the leading
multimedia framework by allowing these plugins to be
actively improved, enhanced, and maintained for existing
and future HW platforms.

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
2021-12-20 14:31:57 -08:00
Zhong Li
c47896536c MAINTAINERS: Add Haihao Xiang for qsv
Signed-off-by: Zhong Li <zhongli_dev@126.com>
2021-12-20 23:36:07 +08:00
Zane van Iperen
9789ea59d0
avformat: add Argonaut Games CVG demuxer
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2021-05-12 20:25:50 +10:00
Zane van Iperen
f53e54b3a5
MAINTAINERS: add myself as adpcm maintainer
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2021-03-25 12:51:10 +10:00
rcombs
2021dbe1d6 MAINTAINERS: update names 2021-01-20 01:04:26 -06:00
Anton Khirnov
19ce064239 smvjpegdec: merge into mjpegdec
SMVJPEG stores frames as slices of a big JPEG image. The decoder is
implemented as a wrapper that instantiates a full internal MJPEG
decoder, then forwards the decoded frames with offset data pointers.
This is unnecessarily complex and fragile, not supporting useful decoder
capabilities like direct rendering.

Re-implement the decoder inside the MJPEG decoder, which is accomplished
by returning each decoded frame multiple times, setting cropping
information appropriately on each instance.

One peculiar aspect of the previous design is that since
- the smvjpeg decoder returns one frame per input packet
- there are multiple frames in each packets (the aformentioned slices)
the demuxer needs to return each packet multiple times.
This is now also eliminated - the demuxer now returns each packet
exactly once, with the duration set to the number of frames it decodes
to.

This also removes one of the last remaining internal uses of the old
video decoding API.
2020-12-10 10:07:09 +01:00
Zane van Iperen
a2fea0f469
avformat: add amv muxer
AMV is a hard-coded (and broken) subset of AVI. It's not worth sullying
the existing AVI muxer with its filth.

Fixes ticket #747.

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2020-11-09 14:58:38 +10:00
Lou Logan
7a4b2c196c MAINTAINERS: remove my public key fingerprint
Forgot to remove this last time I edited my info.

Signed-off-by: Lou Logan <lou@lrcd.com>
2020-09-20 15:08:18 -08:00
Zane van Iperen
119efa275e
avformat: add Argonaut Games BRP demuxer
Used in FMVs for FX Fighter and Croc. Supports BVID and BASF streams,
requests samples for anything else.

Due to the way BASF streams are contained in the file, only one is
supported. I have yet to see a BRP file with multiple.

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2020-09-14 14:38:45 +10:00
Zane van Iperen
dabac26fa5 MAINTAINERS: add myself and gpg fingerprint
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-07-17 21:57:18 +02:00
Lou Logan
4cfcfb3677 MAINTAINERS: remove myself as Twitter maintainer
Signed-off-by: Lou Logan <lou@lrcd.com>
2020-06-28 12:37:55 -08:00
Lynne
9576e49b40
oggdec: remove the oggparsedaala subdemuxer
The Xiph foundation never standardized either Daala nor its mapping in Ogg,
and all files that were created are undecodable without knowledge of the
git hash.
2020-05-23 19:07:20 +01:00
Linjie Fu
74aa332157 MAINTAINERS: Add myself to libopenh264enc
Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-05-06 19:12:00 +02:00
Limin Wang
a124f4ebff MAINTAINERS: add myself to the general developers list
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-04-29 16:39:16 +02:00
Ramiro Polla
ba698a23c6 MAINTAINERS: add my gpg fingerprint
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-03-23 23:37:19 +01:00
Andreas Rheinhardt
daa2fb9a8c MAINTAINERS: Don't mention Google+
It has been shut down in April 2019.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-03-19 02:19:25 +01:00
Andreas Rheinhardt
c7bcc30f37 MAINTAINERS: Add myself as maintainer for matroska*
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-03-19 02:19:25 +01:00
Lynne
2e611cd9c0
MAINTAINERS: add myself and my gpg key 2020-03-18 17:59:49 +00:00
Andriy Gelman
da80d80b93 MAINTAINERS: Add myself as libzmq maintainer
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-02-15 18:25:51 +01:00
Tomas Härdin
1c15111148 MAINTAINERS: Add myself as mxf* maintainer
I have more time for this these days
2020-02-03 08:22:29 +01:00
Michael Niedermayer
c2d4762922 MAINTAINERS: Add patchwork maintainer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-31 22:17:09 +01:00
hwrenx
b7583230ae MAINTAINERS: add myself as libxavs2 maintainer
Signed-off-by: hwrenx <hwrenx@126.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-07 19:34:57 +01:00
Guo, Yejun
b864af033d MAINTAINERS: add myself to libavfilter/dnn
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-03 09:52:17 +01:00
Aman Gupta
c62a1db0ac MAINTAINERS: add myself to OMX
Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-23 17:07:05 -07:00
Thilo Borgmann
33186028fc MAINTAINERS: Add my GnuPG fingerprint. 2019-08-11 12:08:15 +02:00
Lou Logan
7366174086 MAINTAINERS: remove myself as mailing list maintainer
Refer to Michael, compn, or Baptiste.

Signed-off-by: Lou Logan <lou@lrcd.com>
2019-03-21 11:34:13 -08:00
Martin Vignali
6dc1da416e Maintainers : remove myself
Too much hostility in this project
Not enough respect for users and contributors

I'm not interested to contribute anymore
2019-03-21 01:39:12 +01:00
Lou Logan
6f93868e46 MAINTAINERS: remove myself as a docs & trac maintainer
It is no longer interesting.

Signed-off-by: Lou Logan <lou@lrcd.com>
2019-02-22 10:57:26 -09:00
Ruiling Song
dfde416ea8 MAINTAINERS: add myself for tonemap_opencl
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-20 21:15:07 +01:00
Lauri Kasanen
87b00cac2a MAINTAINERS: add myself to the PPC section
Signed-off-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-04 19:14:20 +01:00
hwren
3016e1f8c5 MAINTAINERS: add AVS2 section
Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-01-28 01:09:38 +01:00
Anssi Hannula
b2adc31697 MAINTAINERS: remove myself as hls demuxer maintainer 2018-10-16 01:18:00 +03:00
Shiyou Yin
90dc584d21 MAINTAINERS: add myself to MIPS section
Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-08 01:00:10 +02:00
Mina
0bb5cd8c4d avfilter: Add colorconstancy filter
Signed-off-by: Mina <minasamy_@hotmail.com>
2018-07-23 22:34:52 +02:00
Zhong Li
550372d0c4 MAINTAINERS: add myself to qsv section
Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-06-07 23:57:27 +01:00
Tomas Härdin
10ed9f2b12 Add IRC nicknames 2018-05-14 11:36:40 +02:00
Rostislav Pehlivanov
a1c6fc773f mpegvideo: remove support for libxvid's RC system
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-05-05 19:41:30 +01:00
Gyan Doshi
6b28e551d0 MAINTAINERS: add myself to documentation section
Signed-off-by: Lou Logan <lou@lrcd.com>
2018-04-13 09:40:27 -08:00
Jun Zhao
3b350528d2 MAINTAINERS: add myself to the general developers list
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-10 02:36:11 +02:00
Aman Gupta
b19e11a4dc MAINTAINERS: add myself to mediacodec
Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2018-03-06 13:54:35 -08:00
Tomas Härdin
5f36c546ec Add myself as codec2 maintainer 2018-02-24 17:06:31 +01:00
Felix Matouschek
5ac3a309fd avdevice: add android_camera indev
This commit adds an indev for Android devices on API level 24+ which
uses the Android NDK Camera2 API to capture video from builtin cameras

Signed-off-by: Felix Matouschek <felix@matouschek.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-22 00:29:27 +01:00
Aurelien Jacobs
3e21f285cc MAINTAINERS: add myself for aptx.c 2018-02-10 16:53:43 +01:00
Karthick Jeyapal
046a946868 MAINTAINERS: Add dashenc maintainer
If somebody else wants to maintain dashenc either now or in future,
I am absolutely fine with giving up this responsibility anytime.
But till then we need a maintainer for dashenc, and I am volunteering for that task.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-01-24 00:19:55 +01:00
Jorge Ramirez-Ortiz
15a05d2b73 MAINTAINERS: add myself for avcodec/v4l2_
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-01-21 22:51:49 +01:00
Rostislav Pehlivanov
6b35a83214 Remove the ffserver program
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-01-06 18:31:37 +00:00