Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | lavfi/framesync: reindent after previous commitframe_map | Anton Khirnov | 2022-12-10 |
| | |||
* | lavfi/framesync: map mode WIP | Anton Khirnov | 2022-12-10 |
| | |||
* | ffmpeg: write frame map WIP | Anton Khirnov | 2022-12-10 |
| | |||
* | lavfi/framesync: reorder functions to avoid a forward declaration | Anton Khirnov | 2022-12-10 |
| | |||
* | lavfi/framesync: use a local variable to shorten code | Anton Khirnov | 2022-12-10 |
| | |||
* | fftools/ffmpeg: always generate CFR output when -r is used | Anton Khirnov | 2022-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 documentation | Anton Khirnov | 2022-12-10 |
| | | | | Explain different behavior for encoding and streamcopy. | ||
* | fftools/ffmpeg: reindent after previous commit | Anton Khirnov | 2022-11-28 |
| | |||
* | fftools/ffmpeg: move video frame dup/drop logic into its own function | Anton Khirnov | 2022-11-28 |
| | |||
* | fftools/ffmpeg: rename a variable to be more descriptive | Anton Khirnov | 2022-11-28 |
| | |||
* | fftools/ffmpeg: fix stream id in an error message. | Anton Khirnov | 2022-11-28 |
| | | | | Broken in 7ef7a22251b8 | ||
* | fftools/ffmpeg: stop using AVCodecContext.sample_rate in decode_audio() | Anton Khirnov | 2022-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 option | Anton Khirnov | 2022-11-28 |
| | | | | | -ilme has not existed for 17 years, since 637b5326f3441b53e2f1004085c4d570ba2d7758 | ||
* | WIP lavc/amfenc: pass through frame durations to encoded packets | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libaomenc: pass through frame durations to encoded packets | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx265: pass through frame durations to encoded packets | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: pass through frame durations to encoded packets | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libtheoraenc: stop setting dts unnecessarily | Anton Khirnov | 2022-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 Khirnov | 2022-11-28 |
| | | | | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE | ||
* | lavc/pngenc: stop setting dts unnecessarily for APNG | Anton Khirnov | 2022-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_OPAQUE | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/ffv1enc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/adxenc: support AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/adxenc: rescale packet duration according to timebase | Anton Khirnov | 2022-11-28 |
| | | | | The timebase does not always have to be 1/samplerate. | ||
* | lavc/nvenc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/librav1e: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/encode: pass through frame durations to encoded packets | Anton Khirnov | 2022-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 encoders | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc: add a codec flag for propagating opaque from frames to packets | Anton Khirnov | 2022-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_opaque | Anton Khirnov | 2022-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 error | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: zero reordered opaque on alloc | Anton Khirnov | 2022-11-28 |
| | | | | This is safer. | ||
* | lavc/libx264: print an error on invalid opaque pointer | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: use a local variable to shorten code | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: reindent after previous commit | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: reorder control flow in setup_roi() to reduce nesting depth | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: reindent after previous commit | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: do not ignore memory allocation errors | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: unify cleanup in setup_frame() | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: reindent after previous commit | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: factor out setting up ROI | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: use a local variable for input frame in setup_frame() | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: reindent after previous commit | Anton Khirnov | 2022-11-28 |
| | |||
* | lavc/libx264: factor out setting up the input frame | Anton Khirnov | 2022-11-28 |
| | | | | X264_frame() is currently too large and complex. | ||
* | lavfi/vf_w3fdif: set output frame durations | Anton Khirnov | 2022-11-28 |
| | |||
* | lavfi/vf_nnedi: set output frame durations | Anton Khirnov | 2022-11-28 |
| | | | | | CFR output when the filter is enabled, rescale input durations otherwise. | ||
* | lavfi/setpts: unset frame durations | Anton Khirnov | 2022-11-28 |
| | | | | This filter cannot know frame durations. | ||
* | fftools/ffmpeg: cosmetics | Anton Khirnov | 2022-11-28 |
| | | | | | Reindent after previous commit and break/split some lines as appropriate. | ||
* | fftools/ffmpeg: remove a useless inner block | Anton Khirnov | 2022-11-28 |
| | | | | | adjust_frame_pts_to_encoder_tb() is so small that this serves no useful purpose. | ||
* | fftools/ffmpeg: drop an always-false check | Anton Khirnov | 2022-11-28 |
| |