summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* lavfi/framesync: reindent after previous commitframe_mapAnton Khirnov2022-12-10
|
* lavfi/framesync: map mode WIPAnton Khirnov2022-12-10
|
* ffmpeg: write frame map WIPAnton Khirnov2022-12-10
|
* lavfi/framesync: reorder functions to avoid a forward declarationAnton Khirnov2022-12-10
|
* lavfi/framesync: use a local variable to shorten codeAnton Khirnov2022-12-10
|
* fftools/ffmpeg: always generate CFR output when -r is usedAnton Khirnov2022-12-10
| | | | | | | | | | | | | | | | Current code may, depending on the muxer, decide to use VSYNC_VFR tagged with the specified framerate, without actually performing framerate conversion. This is clearly wrong and against the documentation, which states unambiguously that -r should produce CFR output for video encoding. FATE test changes: * nuv-rtjpeg: replace -r with '-enc_time_base -1', which keeps the original timebase. Output frames are now produced with proper durations. * filter-mpdecimate: just drop the -r option, it is unnecessary * filter-fps-r: remove, this test makes no sense and actually produces broken VFR output (with incorrect frame durations).
* doc/ffmpeg: improve -r documentationAnton Khirnov2022-12-10
| | | | Explain different behavior for encoding and streamcopy.
* fftools/ffmpeg: reindent after previous commitAnton Khirnov2022-11-28
|
* fftools/ffmpeg: move video frame dup/drop logic into its own functionAnton Khirnov2022-11-28
|
* fftools/ffmpeg: rename a variable to be more descriptiveAnton Khirnov2022-11-28
|
* fftools/ffmpeg: fix stream id in an error message.Anton Khirnov2022-11-28
| | | | Broken in 7ef7a22251b8
* fftools/ffmpeg: stop using AVCodecContext.sample_rate in decode_audio()Anton Khirnov2022-11-28
| | | | | | | Use the decoded frame's sample_rate instead, which is the authoritative value. Drop a now-obsolete check validating AVCodecContext.sample_rate.
* doc/ffmpeg.texi: drop a non-existent optionAnton Khirnov2022-11-28
| | | | | -ilme has not existed for 17 years, since 637b5326f3441b53e2f1004085c4d570ba2d7758
* WIP lavc/amfenc: pass through frame durations to encoded packetsAnton Khirnov2022-11-28
|
* lavc/libaomenc: pass through frame durations to encoded packetsAnton Khirnov2022-11-28
|
* lavc/libx265: pass through frame durations to encoded packetsAnton Khirnov2022-11-28
|
* lavc/libx264: pass through frame durations to encoded packetsAnton Khirnov2022-11-28
|
* lavc/libtheoraenc: stop setting dts unnecessarilyAnton Khirnov2022-11-28
| | | | | Theora is not marked as supporting reordering, so dts will be set from pts by the generic code.
* lavc/libtheoraenc: handle frame durations and ↵Anton Khirnov2022-11-28
| | | | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
* lavc/pngenc: stop setting dts unnecessarily for APNGAnton Khirnov2022-11-28
| | | | | APNG is not marked as supporting reordering, so dts will be set from pts by the generic code.
* lavc/pngenc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2022-11-28
|
* lavc/ffv1enc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2022-11-28
|
* lavc/adxenc: support AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2022-11-28
|
* lavc/adxenc: rescale packet duration according to timebaseAnton Khirnov2022-11-28
| | | | The timebase does not always have to be 1/samplerate.
* lavc/nvenc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2022-11-28
|
* lavc/librav1e: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUEAnton Khirnov2022-11-28
|
* lavc/encode: pass through frame durations to encoded packetsAnton Khirnov2022-11-28
| | | | | | The generic code can only handle the no-delay case. Encoders with delay need to be handled individually, which will be done in the following commits.
* lavc: support AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE in all no-delay encodersAnton Khirnov2022-11-28
|
* lavc: add a codec flag for propagating opaque from frames to packetsAnton Khirnov2022-11-28
| | | | | | | | | This is intended to be a more convenient replacement for reordered_opaque. Add support for it in the two encoders that offer AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE: libx264 and libx265. Other encoders will be supported in future commits.
* lavc/libx265: restructure handling reordered_opaqueAnton Khirnov2022-11-28
| | | | | | | | | | Current code stores a pointer to allocated data in libx265 and frees it when the encoded packet is retrieved. This will leak if the packet is never retrieved, e.g. if the encoder is closed without being flushed. Restructure the code such that only indices to an array stored in our private data are given to libx265. This ensures no allocated memory can be lost.
* lavc/libx264: do not leave an invalid array size on alloc errorAnton Khirnov2022-11-28
|
* lavc/libx264: zero reordered opaque on allocAnton Khirnov2022-11-28
| | | | This is safer.
* lavc/libx264: print an error on invalid opaque pointerAnton Khirnov2022-11-28
|
* lavc/libx264: use a local variable to shorten codeAnton Khirnov2022-11-28
|
* lavc/libx264: reindent after previous commitAnton Khirnov2022-11-28
|
* lavc/libx264: reorder control flow in setup_roi() to reduce nesting depthAnton Khirnov2022-11-28
|
* lavc/libx264: reindent after previous commitAnton Khirnov2022-11-28
|
* lavc/libx264: do not ignore memory allocation errorsAnton Khirnov2022-11-28
|
* lavc/libx264: unify cleanup in setup_frame()Anton Khirnov2022-11-28
|
* lavc/libx264: reindent after previous commitAnton Khirnov2022-11-28
|
* lavc/libx264: factor out setting up ROIAnton Khirnov2022-11-28
|
* lavc/libx264: use a local variable for input frame in setup_frame()Anton Khirnov2022-11-28
|
* lavc/libx264: reindent after previous commitAnton Khirnov2022-11-28
|
* lavc/libx264: factor out setting up the input frameAnton Khirnov2022-11-28
| | | | X264_frame() is currently too large and complex.
* lavfi/vf_w3fdif: set output frame durationsAnton Khirnov2022-11-28
|
* lavfi/vf_nnedi: set output frame durationsAnton Khirnov2022-11-28
| | | | | CFR output when the filter is enabled, rescale input durations otherwise.
* lavfi/setpts: unset frame durationsAnton Khirnov2022-11-28
| | | | This filter cannot know frame durations.
* fftools/ffmpeg: cosmeticsAnton Khirnov2022-11-28
| | | | | Reindent after previous commit and break/split some lines as appropriate.
* fftools/ffmpeg: remove a useless inner blockAnton Khirnov2022-11-28
| | | | | adjust_frame_pts_to_encoder_tb() is so small that this serves no useful purpose.
* fftools/ffmpeg: drop an always-false checkAnton Khirnov2022-11-28
|