aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/allformats.c
Commit message (Collapse)AuthorAgeFilesLines
* avformat/g728dec: raw G.728 demuxerPeter Ross2025-06-231-0/+1
|
* avformat/whip: Add WHIP muxer support for subsecond latency streamingJack Lau2025-06-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0. WHIP Version 3. 1. The WHIP muxer has been renamed and refined, with improved logging context and error messages for SSL, DTLS, and RTC. 2. Magic numbers have been replaced with macros and extracted to functions, and log levels have been altered for better clarity. 3. DTLS curve list has been updated, and SRTP profile names have been refined for FFmpeg and OpenSSL. 4. ICE STUN magic number has been refined, and RTP payload types have been updated based on Chrome's definition. 5. Fixed frame size has been refined to rtc->audio_par->frame_size, and h264_mp4toannexb is now used to convert MP4/ISOM to annexb. 6. OPUS timestamp issue has been addressed, and marker setting has been corrected after utilizing BSF. 7. DTLS handshake and ICE handling have been optimized for improved performance, with a single handshake timeout and server role to prevent ARQ. 8. Consolidated ICE request/response handling and DTLS handshake into a single function, and fixed OpenSSL build errors to work with Pion. 9. Merge TLS & DTLS implementation, shared BIO callbacks, read, write, print_ssl_error, openssl_init_ca_key_cert, init_bio_method function and shared same data structure 10. Modify configure that whip is enabled only dtls is enabled(just support openssl for now) to fix build error Co-authored-by: winlin <winlinvip@gmail.com> Co-authored-by: yangrtc <yangrtc@aliyun.com> Co-authored-by: cloudwebrtc <duanweiwei1982@gmail.com> Co-authored-by: Haibo Chen <495810242@qq.com> Co-authored-by: Steven Liu <lq@chinaffmpeg.org> Co-authored-by: Jun Zhao <barryjzhao@tencent.com> Signed-off-by: Jack Lau <jacklau1222@qq.com> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/allformats: Move avisynth and dvdvideo under external libraries groupZhao Zhili2025-05-201-2/+2
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* lavf: APV muxerMark Thompson2025-04-271-0/+1
|
* lavf: APV demuxerMark Thompson2025-04-271-0/+1
| | | | Demuxes raw streams as defined in draft spec section 10.2.
* lavf: add a header for generic-layer interfacesAnton Khirnov2024-10-161-0/+1
| | | | Analogous to what was previously done in avcodec and avfilter.
* avformat/lc3: add file format for LC3/LC3plus transportAntoine SOULIER2024-04-151-0/+2
| | | | | A file format is described in Bluetooth SIG LC3 and ETSI TS 103 634, for test purpose.
* avformat/rcwtdec: add RCWT Closed Captions demuxerMarth642024-04-021-0/+1
| | | | | | | | | | | | | | | RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly used OSS tool for processing 608/708 Closed Captions (CC). RCWT can be used to archive the original extracted CC bitstream. The muxer was added in January 2024. In this commit, add the demuxer. One can now demux RCWT files for rendering in ccaption_dec or interop with ccextractor (which produces RCWT). Using the muxer/demuxer combo, the CC bits can be kept for processing or rendering with either tool. This can be an effective way to backup an original CC stream, including format extensions like EIA-708 and overall original presentation. Signed-off-by: Marth64 <marth64@proxyid.net>
* all: Don't use ATOMIC_VAR_INITAndreas Rheinhardt2024-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | C11 required to use ATOMIC_VAR_INIT to statically initialize atomic objects with static storage duration. Yet this macro was unsuitable for initializing structures [1] and was actually unneeded for all known implementations (this includes our compatibility fallback implementations which simply wrap the value in parentheses: #define ATOMIC_VAR_INIT(value) (value)). Therefore C17 deprecated the macro and C23 actually removed it [2]. Since commit 5ff0eb34d2b1089d3dd9f27fdb51520001709138 we default to C17 if the compiler supports it; Clang warns about ATOMIC_VAR_INIT in this mode. Given that no implementation ever needed this macro, this commit stops using it to avoid this warning. [1]: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2396.htm#dr_485 [2]: https://en.cppreference.com/w/c/atomic/ATOMIC_VAR_INIT Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/fifo_test: Move into tests/fifo_muxer.cAndreas Rheinhardt2024-03-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This muxer solely exists to test the fifo muxer via a dedicated test tool in libavformat/tests/fifo_muxer.c. It fulfills no other role and it is only designed with this role in mind. The latter can be seen in two facts: The muxer uses printf for logging and it simply presumes the packets' data to contain a FailingMuxerPacketData (a struct duplicated in fifo_test.c and tests/fifo_muxer.c.); in particular, it presumes packets to have data at all, but this need not be true with side-data only packets and a segfault can easily be triggered by e.g. encoding flac (our native encoder sends a side-data only packet with updated extradata at the end of encoding). This patch fixes this by moving the test muxer into the fifo test tool, making it inaccessible via the API (and actually removing it from libavformat.so and libavformat.a). While this muxer was accessible via e.g. av_guess_format(), it was not really usable for an API user as FailingMuxerPacketData was not public. Therefore this is not considered a breaking change. In order to continue to use the test muxer in the test tool, the ordinary fifo muxer had to be overridden: fifo_muxer.c includes lavf/fifo.c but with FIFO_TEST defined which makes it support the fifo_test muxer. This is possible because test tools are always linked statically to their respective library. Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/aea: add aea muxerasivery2024-03-121-0/+1
| | | | Signed-off-by: asivery <asivery@protonmail.com>
* avformat/avformat: Add FFInputFormat, hide internals of AVInputFormatAndreas Rheinhardt2024-03-071-365/+368
| | | | | | | | | | | | | | | | | | | | | This commit does for AVInputFormat what commit 59c9dc82f450638a3068deeb1db5c56f6d155752 did for AVOutputFormat: It adds a new type FFInputFormat, moves all the internals of AVInputFormat to it and adds a now reduced AVInputFormat as first member. This does not affect/improve extensibility of both public or private fields for demuxers (it is still a mess due to lavd). This is possible since 50f34172e0cca2cabc5836308ec66dbf93f5f2a3 (which removed the last usage of an internal field of AVInputFormat in fftools). (Hint: tools/probetest.c accesses the internals of FFInputFormat as well, but given that it is a testing tool this is not considered a problem.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* libavformat/dvdvideo: add DVD-Video demuxer, powered by libdvdread and libdvdnavMarth642024-03-021-0/+1
| | | | | Signed-off-by: Marth64 <marth64@proxyid.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* libavformat: add RCWT closed caption muxexMarth642024-01-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Marth64 <marth64@proxyid.net> Raw Captions With Time (RCWT) is a format native to ccextractor, a commonly used open source tool for processing 608/708 closed caption (CC) sources. It can be used to archive the original, raw CC bitstream and to produce a source file file for later CC processing or conversion. As a result, it also allows for interopability with ccextractor for processing CC data extracted via ffmpeg. The format is simple to parse and can be used to retain all lines and variants of CC. A free specification of RCWT can be found here: https://github.com/CCExtractor/ccextractor/blob/master/docs/BINARY_FILE_FORMAT.TXT This muxer implements the specification as of 01/05/2024, which has been stable and unchanged for 10 years as of this writing. This muxer will have some nuances from the way that ccextractor muxes RCWT. No compatibility issues when processing the output with ccextractor have been observed as a result of this so far, but mileage may vary and outputs will not be a bit-exact match. Specifically, the differences are: (1) This muxer will identify as "FF" as the writing program identifier, so as to be honest about the output's origin. (2) ffmpeg's MPEG-1/2, H264, HEVC, etc. decoders extract closed captioning data differently than ccextractor from embedded SEI/user data. For example, DVD captioning bytes will be translated to ATSC A53 format. This allows ffmpeg to handle 608/708 in a consistant way downstream. This is a lossless conversion and the meaningful data is retained. (3) This muxer will not alter the extracted data except to remove invalid packets in between valid CC blocks. On the other hand, ccextractor will by default remove mid-stream padding, and add padding at the end of the stream (in order to convey the end time of the source video).
* avformat: Immersive Audio Model and Formats muxerJames Almer2023-12-181-0/+1
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: Immersive Audio Model and Formats demuxerJames Almer2023-12-181-0/+1
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: add QOA demuxerPaul B Mahol2023-11-261-0/+1
|
* avformat: add CRI USM demuxerPaul B Mahol2023-09-171-0/+1
|
* avformat: add OSQ demuxerPaul B Mahol2023-09-011-0/+1
|
* avformat/rawenc: add H266/VVC muxerThomas Siedel2023-06-291-0/+1
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: add demuxer and probe support for H266/VVCThomas Siedel2023-06-291-0/+1
| | | | | | | Add demuxer to probe raw vvc and parse vvcc byte stream format. Co-authored-by: Nuo Mi <nuomi2021@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: add raw AC-4 muxerPaul B Mahol2023-06-201-0/+1
|
* avformat: add raw AC-4 demuxerPaul B Mahol2023-06-201-0/+1
|
* avformat/evc_demuxer: Added demuxer to handle reading EVC video filesDawid Kozinski2023-06-151-0/+1
| | | | | | - Provided AVInputFormat struct describing EVC input format (ff_evc_demuxer) Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com>
* avformat/evc_muxer: Added muxer to handle writing EVC encoded data into file ↵Dawid Kozinski2023-06-151-0/+1
| | | | | | | | | 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>
* avformat/jpegxl_anim_dec: add animated JPEG XL demuxerLeo Izen2023-06-051-0/+1
| | | | | | | | | | | Animated JPEG XL files requires a separate demuxer than image2, because the timebase information is set by the demuxer. Should the timebase of an animated JPEG XL file be incompatible with the timebase set by the image2pipe demuxer (usually 1/25 unless set otherwise), rescaling will fail. Adding a separate demuxer for animated JPEG XL files allows the timebase to be set correctly. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* avformat: add PDV demuxerPaul B Mahol2023-04-201-0/+1
|
* avformat: add RKA demuxerPaul B Mahol2023-02-111-0/+1
|
* avformat: add SDNS demuxerPaul B Mahol2023-02-111-0/+1
|
* avformat/avformat: Move AVOutputFormat internals out of public headerAndreas Rheinhardt2023-02-091-180/+183
| | | | | | | | | | | | | | This commit does for AVOutputFormat what commit 20f972701806be20a77f808db332d9489343bb78 did for AVCodec: It adds a new type FFOutputFormat, moves all the internals of AVOutputFormat to it and adds a now reduced AVOutputFormat as first member. This does not affect/improve extensibility of both public or private fields for muxers (it is still a mess due to lavd). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avformat: add WavArc demuxerPaul B Mahol2023-02-041-0/+1
|
* avformat: add XMD demuxerPaul B Mahol2023-01-301-0/+1
|
* avformat: add WADY demuxerPaul B Mahol2023-01-241-0/+1
|
* configure: Add (h264|hevc)_sei subsystemsAndreas Rheinhardt2022-12-011-0/+3
| | | | | | | | | | | | | | | | | | Currently, several components select atsc_a53, despite not using anything from it themselves. They only select it because parsing SEI messages adds an indirect dependency. But using direct dependencies is more natural, so add dedicated subsystems for them. It already allows to remove a superfluous dependency of the HEVC QSV encoder on hevc_sei and atsc_a53. Adding new subsystems only becomes effective after a reconfiguration. In order to force this, some needed headers (which are only included implicitly before this commit) were included explicitly in libavformat/allformats.c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat: add APAC demuxerPaul B Mahol2022-09-231-0/+1
|
* avformat: add LAF demuxerPaul B Mahol2022-09-161-0/+1
|
* avformat: add bonk demuxerPaul B Mahol2022-09-121-0/+1
|
* avcodec: add Radiance HDR image format supportPaul B Mahol2022-07-161-0/+1
|
* avcodec: add PHM decoder and encoderPaul B Mahol2022-07-031-0/+2
|
* avcodec: add QOI decoder and demuxer and parser and encoder and muxerPaul B Mahol2022-06-051-0/+1
|
* avformat/movenc: Add support for AVIF muxingVignesh Venkatasubramanian2022-05-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an AVIF muxer by re-using the existing the mov/mp4 muxer. AVIF Specification: https://aomediacodec.github.io/av1-avif Sample usage for still image: ffmpeg -i image.png -c:v libaom-av1 -still-picture 1 image.avif Sample usage for animated AVIF image: ffmpeg -i video.mp4 animated.avif We can re-use any of the AV1 encoding options that will make sense for image encoding (like bitrate, tiles, encoding speed, etc). The files generated by this muxer has been verified to be valid AVIF files by the following: 1) Displays on Chrome (both still and animated images). 2) Displays on Firefox (only still images, firefox does not support animated AVIF yet). 3) Verified to be valid by Compliance Warden: https://github.com/gpac/ComplianceWarden Fixes the encoder/muxer part of Trac Ticket #7621 Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
* avformat/image2: add Jpeg XL as image2 formatLeo Izen2022-04-231-0/+1
| | | | | This commit adds support to libavformat for muxing and demuxing Jpeg XL images as image2 streams.
* avcodec/vbndec: add VBN decoderMarton Balint2022-04-101-0/+1
| | | | | | | | Add support for decoding Vizrt Binary Image (VBN) files. LZW-compressed data is not supported yet. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat: add DFPWM raw formatJack Bruienne2022-03-101-0/+2
| | | | | | | | | | | | | 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>
* avformat/imf: DemuxerPierre-Anthony Lemieux2021-12-311-0/+1
| | | | | Signed-off-by: Pierre-Anthony Lemieux <pal@palemieux.com> Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat: add bitpacked demuxerLimin Wang2021-12-311-0/+1
| | | | | | | | Allows user can playback bitpacked pixel format directly: ffplay -video_size 1280x720 -pixel_format yuv422p10 test.bitpacked ffplay -f bitpacked -video_size 1280x720 -pixel_format uyvy422 test.yuv Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/scd: add demuxerZane van Iperen2021-12-021-0/+1
| | | | | | | | | | | | | | | | Adds demuxer for Square Enux SCD files. Based off [1] and personal investigation. This has only been tested against Drakengard 3 (PS3) *_SCD.XXX files (big-endian). As it is highly likely that FFXIV (PC) files are little-endian, this demuxer is marked as experimental until this can be confirmed. [1]: http://ffxivexplorer.fragmenterworks.com/research/scd%20files.txt Reviewed-by: Peter Ross <pross@xvid.org> Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* avformat: add raw avs3 muxerLimin Wang2021-10-191-0/+1
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/allformats: Fix data race when accessing devices listsAndreas Rheinhardt2021-10-091-11/+11
| | | | | | | | | | | | | | | | | | Up until now setting the input and output devices lists is guarded by a mutex. This prevents data races emanating from multiple concurrent calls to avpriv_register_devices() (triggered by multiple concurrent calls to avdevice_register_all()). Yet reading the lists pointers was done without any lock and with nonatomic variables. This means that there are data races in case of concurrent calls to av_(de)muxer_iterate() and avdevice_register_all() (but only if the iteration in av_(de)muxer_iterate exhausts the non-device (de)muxers). This commit fixes this by putting said pointers into atomic objects. Due to the unavailability of _Atomic the object is an atomic_uintptr, leading to ugly casts. Switching to atomics also allowed to remove the mutex currently used in avpriv_register_devices(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/img2dec: add GEM Raster image demuxerPeter Ross2021-10-081-0/+1
| | | | Signed-off-by: Peter Ross <pross@xvid.org>