- 05 May, 2023 7 commits
-
-
Anton Khirnov authored
Demuxers are not supposed to do this.
-
Anton Khirnov authored
-
Anton Khirnov authored
Demuxers are not supposed to do this.
-
Anton Khirnov authored
avg_frame_rate, if set, should be more reliable than stream timebase in this case.
-
Anton Khirnov authored
When tak_get_nb_samples() fails, it will currently write AVERROR_INVALIDDATA as TAKStreamInfo.frame_samples. The parser will then use this negative value as a frame duration, which leads to various breakage. Avoid this by returning the error code from tak_parse_streaminfo() directly; never store negative values in the parsed header.
-
Anton Khirnov authored
It is not used outside of tak.c
-
James Almer authored
Fixes compilation after af8db910. Signed-off-by: James Almer <jamrial@gmail.com>
-
- 04 May, 2023 14 commits
-
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
Zhao Zhili authored
So the values are in ascending order. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-
Zhao Zhili authored
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-
Zhao Zhili authored
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-
- 03 May, 2023 4 commits
-
-
Niklas Haas authored
This has not been the case since c0b93c4f+48c385fb.
-
Niklas Haas authored
Motivated by a desire to use vf_libplacebo as a GPU-accelerated cropping/padding/zooming filter. This commit adds support for setting the `input/target.crop` fields as dynamic expressions. Re-use the same generic variables available to other scale and crop type filters, and also add some more that we can afford as a result of being able to set these properties dynamically. It's worth pointing out that `out_t/ot` is currently redundant with `in_t/t` since it will always contain the same PTS values, but I plan on changing this in the near future. I decided to also expose `crop_w/crop_h` and `pos_w/pos_h` as variables in the expression parser itself, since this enables the fairly common use case of determining dimensions first and then placing the image appropriately, such as is done in the default behavior (which centers the cropped/placed region by default).
-
Niklas Haas authored
In some circumstances, libplacebo will clear the background as a result of cropping/padding. Currently, this uses the hard-coded default fill color of black. This option makes this behavior configurable.
-
Paul B Mahol authored
-
- 02 May, 2023 15 commits
-
-
Rémi Denis-Courmont authored
As with the earlier bswap change, all versions of GCC and Clang that support RISC-V support the popcount built-ins, so we can just use them instead of inline assembler.
-
Rémi Denis-Courmont authored
av_bswapXX() are used in context that expect exact size types, notably variable arguments to av_log(). On Linux RV64, uint_fast32_t is an unsigned long, so the current inline assembler does not work properly. Since GCC and Clang gained their byte-swap built-ins before they supported RISC-V, we can simply defer to them. As an added bonus, the compiler can do instruction scheduling, which it couldn't with the Zbb inline assembler.
-
Anton Khirnov authored
Currently those are set in different ways depending on whether the stream is decoded or not, using some values from the decoder if it is. This is wrong, because there may be arbitrary amount of delay between input packets and output frames (depending e.g. on the thread count when frame threading is used). Always use the path that was previously used only for streamcopy. This should not cause any issues, because these values are now used only for streamcopy and discontinuity handling. This change will allow to decouple discontinuity processing from decoding and move it to ffmpeg_demux. It also makes the code simpler. Changes output in fate-cover-art-aiff-id3v2-remux and fate-cover-art-mp3-id3v2-remux, where attached pictures are now written in the correct order. This happens because InputStream.dts is no longer reset to AV_NOPTS_VALUE after decoding, so streamcopy actually sees valid dts values.
-
Anton Khirnov authored
They are not modified by these functions.
-
Anton Khirnov authored
They are no longer used for anything.
-
Anton Khirnov authored
Use InputStream.last_frame_pts/duration instead, which is more accurate.
-
Anton Khirnov authored
This was added in 380db569 as a temporary crutch that is not needed anymore. The only case where this code can be triggered is the very first frame, for which InputStream.pts is always equal to 0.
-
Anton Khirnov authored
Stop using InputStream.dts for generating missing timestamps for decoded frames, because it contains pre-decoding timestamps and there may be arbitrary amount of delay between input packets and output frames (e.g. dependent on the thread count when frame threading is used). It is also in AV_TIME_BASE (i.e. microseconds), which may introduce unnecessary rounding issues. New code maintains a timebase that is the inverse of the LCM of all the samplerates seen so far, and thus can accurately represent every audio sample. This timebase is used to generate missing timestamps after decoding. Changes the result of the following FATE tests * pcm_dvd-16-5.1-96000 * lavf-smjpeg * adpcm-ima-smjpeg In all of these the timestamps now better correspond to actual frame durations.
-
Anton Khirnov authored
Makes it easier to keep track of the timebase the frames are in.
-
Anton Khirnov authored
If input packets have timestamps, they will be propagated to output frames by the decoder, so at best this block does not do anything. There can also be an arbitrary amount of delay between packets sent to the decoder and decoded frames (e.g. due to decoder's intrinsic delay or frame threading), so deriving any timestamps from packet properties is wrong.
-
Anton Khirnov authored
It does not need to be equal to demuxer timebase.
-
Anton Khirnov authored
Will be useful in following commits.
-
Anton Khirnov authored
Move InputFilter.frame_queue to it, which is not accessed outside of ffmpeg_filter.
-
Anton Khirnov authored
-
Anton Khirnov authored
It is not used outside of ffmpeg_filter.
-