summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avfilter: add pixelize video filterPaul B Mahol2022-04-14
|
* avfilter: add feedback video filterPaul B Mahol2022-04-14
|
* avfilter/avf_showspectrum: fix pts offset by onePaul B Mahol2022-04-14
|
* fate/oma: Use REMUX where appropriateAndreas Rheinhardt2022-04-14
| | | | | | Simplifies the checks. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/subtitles: Use REMUX where appropriateAndreas Rheinhardt2022-04-14
| | | | | | | It also adds the missing depenencies on the file and pipe protocols and the framecrc muxer. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/image: Use TRANSCODE where appropriateAndreas Rheinhardt2022-04-14
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/Makefile: Add auxiliary functions for transcode and stream_remuxAndreas Rheinhardt2022-04-14
| | | | | | | | | | | | | | | | | Tests using the transcode and stream_remux functions have some common requirements (namely the file and pipe protocols as well as the framecrc muxer) and also other commonalities: The create a file and read it immediately afterwards, so that they typically rely on a corresponding muxer+demuxer pair which typically shares the same name; for transcode (if it does not use stream copy) the same is true for encoders and decoders. This means that using special Makefile-functions instead of the general ALLYES is worthwhile. This commit adds such functions. These functions allow to add arbitrary CONFIG-checks on top of the aforementioned ones in order to satisfy special needs (for e.g. parsers, filters) that several intended users have. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mjpegenc: Don't unnecessarily grow bufferAndreas Rheinhardt2022-04-14
| | | | | | | | | The size of the ICC chunk has already been accounted for when the packet's buffer was initially set in ff_mpv_encode_picture() and the header (including the ICC chunk) has already been written at this point. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_enc: Remove always-true checkAndreas Rheinhardt2022-04-14
| | | | | | | It is a remnant of the old way for user-supplied buffers; it is always-true since 93016f5d1d280f9cb7856883af287fa66affc04c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_enc: Fix unnecessary linear growth of bufferAndreas Rheinhardt2022-04-14
| | | | | | | | | | | If one encodes MJPEG with a single slice and uses input with AV_FRAME_DATA_ICC_PROFILE side data, the current allocation code in ff_mpv_encode_picture() will always increase the size of the temporary buffer used for allocating packets by the size needed for to write the ICC chunk even when the current buffer is actually large enough. This commit fixes this. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo_enc: Ignore ICC profile size when not MJPEGAndreas Rheinhardt2022-04-14
| | | | | | | | MJPEG is the only mpegvideo-based encoder making use of it. Fixes linking failures in case mpegvideo_enc.c is compiled with AMV, LJPEG and MJPEG encoders disabled. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/avf_showspectrum: add alpha pixel format supportPaul B Mahol2022-04-14
|
* avformat/ipfsgateway: define PATH_MAXMark Gaiser2022-04-14
| | | | | | | | | PATH_MAX is posix. Some compilers (MSVC) don't define this thus failing to compile the ipfsgateway file. Defining it fixes the compile. Signed-off-by: Mark Gaiser <markg85@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* avfilter/af_adenorm: simplify handling of commandsPaul B Mahol2022-04-13
|
* avfilter/avf_showvolume: check for allocation error and stop leaksPaul B Mahol2022-04-13
|
* avcodec/avcodec: Don't reset decoder-fields for encoders when flushingAndreas Rheinhardt2022-04-13
| | | | | Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/avcodec: Simplify accessing AVSubtitleRect via dedicated pointerAndreas Rheinhardt2022-04-13
| | | | | Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/avcodec: Avoid av_frame_unref(NULL)Andreas Rheinhardt2022-04-13
| | | | | | | It works, but it is not documented to work. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/encode: Fix check for encoders impl. encode-simple APIAndreas Rheinhardt2022-04-13
| | | | | | | FFCodec.cb is a union. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mlpenc: fix encoding after receiving last framePaul B Mahol2022-04-13
| | | | | This happened when major header needed to be written after input EOF.
* lavc/encode: pick a sane default for bits_per_raw_sample if it's not setAnton Khirnov2022-04-13
| | | | Fixes #9563.
* lavc/encode: reindentAnton Khirnov2022-04-13
|
* lavc/encode: factor audio/video-specific parts out of ff_encode_preinit()Anton Khirnov2022-04-13
|
* lavc: move default get_buffer2() to its own fileAnton Khirnov2022-04-13
| | | | | It is also used by some encoders, so decode.c is not the right place for it.
* lavc/encode: drop EncodeSimpleContextAnton Khirnov2022-04-13
| | | | It has only a single member.
* lavc/avcodec: only allocate the encoding frame for encodersAnton Khirnov2022-04-13
| | | | And only when needed, i.e. for encoders using the simple API.
* lavc/avcodec: simplify codec id/type validity checkingAnton Khirnov2022-04-13
| | | | | On entry to avcodec_open2(), the AVCodecContext type and id either have to be UNKNOWN/NONE or have to match the codec to be used.
* fftools/ffmpeg: store output format separately from the muxer contextAnton Khirnov2022-04-13
| | | | | | Allows accessing it without going through the muxer context. This will be useful in the following commits, where the muxer context will be hidden.
* fftools/ffmpeg: move freeing the output file to ffmpeg_mux.cAnton Khirnov2022-04-13
|
* fftools/ffmpeg: move writing the trailer to ffmpeg_mux.cAnton Khirnov2022-04-13
|
* fftools/ffmpeg: move some muxing-related code into a separate fileAnton Khirnov2022-04-13
| | | | | This is a first step towards making muxers more independent from the rest of the code.
* fftools/ffmpeg: store the output file index in OutputFileAnton Khirnov2022-04-13
| | | | | Use it to simplify check_init_output_file(). Will allow further simplifications in the following commits.
* fftools/ffmpeg: pass the muxer context explicitly to some functionsAnton Khirnov2022-04-13
| | | | | Stop accessing OutputFile.ctx. This will be useful in the following commits, where it will become hidden.
* fftools/ffmpeg: stop using OutputStream.frame_number for streamcopyAnton Khirnov2022-04-13
| | | | | | | | | | | | | | This field is currently used by checks - skipping packets before the first keyframe - skipping packets before start time to test whether any packets have been output already. But since frame_number is incremented after the bitstream filters are applied (which may involve delay), this use is incorrect. The keyframe check works around this by adding an extra flag, the start-time check does not. Simplify both checks by replacing the seen_kf flag with a flag tracking whether any packets have been output by do_streamcopy().
* fftools/ffmpeg: move a comment to a more appropriate placeAnton Khirnov2022-04-13
|
* fftools/ffmpeg: drop an obsolete hackAnton Khirnov2022-04-13
| | | | | Introduced in 05741d70c7a. All encoders should set the timestamps properly now, so it should never be necessary.
* avfilter/vf_deblock: fix posible overreadsPaul B Mahol2022-04-13
|
* avfilter/vf_xmedian: simplify changing index variablePaul B Mahol2022-04-13
|
* avfilter/af_crystalizer: remove no longer needed wrapper functionPaul B Mahol2022-04-13
|
* avfilter/vf_chromashift: simplify handling of commandsPaul B Mahol2022-04-13
|
* libavutil/hwcontext_qsv: Align width and heigh when download qsv frameWenbin Chen2022-04-13
| | | | | | | | | | | | The width and height for qsv frame to download need to be aligned with 16. Add the alignment operation. Now the following command works: ffmpeg -hwaccel qsv -f rawvideo -s 1920x1080 -pix_fmt yuv420p -i \ input.yuv -vf "hwupload=extra_hw_frames=16,format=qsv,hwdownload, \ format=nv12" -f null - Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avcodec/mss12: Constify slice context->parent context pointerAndreas Rheinhardt2022-04-13
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vbnenc: Add AV_CODEC_CAP_DR1Andreas Rheinhardt2022-04-13
| | | | | | | This encoder uses ff_get_encode_buffer(). Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vbn(dec|enc): Avoid always-false checksAndreas Rheinhardt2022-04-13
| | | | | | | | | | Do this by switching to bytestream2_(get|put)_le32u() from bytestream2_(get|put)_le32(); it has after all already been checked that the packet contains at least a full header, making all the implicit checks in bytestream2_(get|put)_le32() dead code. Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vbn(dec|enc): Avoid leaving stale pointers in contextAndreas Rheinhardt2022-04-13
| | | | | | | | Therefore move the (Get|Put)ByteContext from the context to the stack. It is transient anyway. Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vbn(dec|enc): Remove empty close functionAndreas Rheinhardt2022-04-13
| | | | | | Reviewed-by: Marton Balint <cus@passwd.hu> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat: Add IPFS protocol support.Mark Gaiser2022-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for: - ffplay ipfs://<cid> - ffplay ipns://<cid> IPFS data can be played from so called "ipfs gateways". A gateway is essentially a webserver that gives access to the distributed IPFS network. This protocol support (ipfs and ipns) therefore translates ipfs:// and ipns:// to a http:// url. This resulting url is then handled by the http protocol. It could also be https depending on the gateway provided. To use this protocol, a gateway must be provided. If you do nothing it will try to find it in your $HOME/.ipfs/gateway file. The ways to set it manually are: 1. Define a -gateway <url> to the gateway. 2. Define $IPFS_GATEWAY with the full http link to the gateway. 3. Define $IPFS_PATH and point it to the IPFS data path. 4. Have IPFS running in your local user folder (under $HOME/.ipfs). Signed-off-by: Mark Gaiser <markg85@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mlpenc: simplify calling functionPaul B Mahol2022-04-12
|
* avcodec/mlpenc: use FFMAX()Paul B Mahol2022-04-12
|
* avcodec/mlpenc: improve handling of last samplesPaul B Mahol2022-04-12
|