Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/liv 3851 update ffmpeg to 7.1 #53

Draft
wants to merge 2,774 commits into
base: livery
Choose a base branch
from

Conversation

Merkyrio
Copy link

@Merkyrio Merkyrio commented Dec 6, 2024

No description provided.

cyanreg and others added 30 commits September 10, 2024 04:59
AMF_VIDEO_ENCODER_AV1_INPUT_HDR_METADATA was set above in the normal
input case but forgotten for the same in the delayed surface codepath.

Signed-off-by: Cameron Gutman <[email protected]>
Signed-off-by: Dmitrii Ovchinnikov <[email protected]>
…s_ref

Should fix memory leaks show in fate-filter-join and fate-filter-crazychannels.

Reviewed-by: FFmpeg development discussions and patches <[email protected]>
Signed-off-by: James Almer <[email protected]>
When ret is checked here, it was never assigned anything, making this
check useless, as highlighted by Coverity.

It seems to be a copy paste mistake given that opt_match_per_stream_str
does not return an error code that could be checked and the previous
value assigned to ret is already checked above. So just remove this
check.

Fixes: CID1616292
The input file is MPEG range, so we should also encode to MPEG range
before comparing against it. This bug was avoided in the past because
YUVJ inputs were automatically converted back to limited range when converting
to a different pixfmt (in the absence of tagging). However, with proper YUV
negotiation in place, the default behavior is to preserve the YUV range
wherever possible. Since `rawvideo` does not signal or care about the YUV
range, we need to explicitly request the desired output range to force a
conversion.

Affects all rawvideo tests, in particular vsynth and owdenoise.
Ironically, despite being introduced to make YUVJ unnecessary, the new
YUV negotiation logic failed to actually negotiate YUVJ formats
themselves correctly, leading to errors when passing YUVJ frames into
a filter graph. (They were effectively treated like RGB or Grayscale
formats, rather than as forced-full-range YUV, and hence did not have
their colorspace matrix correctly negotiated)

Fix this by splitting off the YUVJ check from ff_fmt_is_regular_yuv().
Obviously, we can trivially undo this change again once YUVJ is actually
deleted from the codebase.

Fixes: #11179
No need to explicitly specify the buffer here as it is only ever passed
to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
This dict is declared and freed but nothing is ever written to it.
pkt_dts needs to be set manually when using the receive_frame() callback, so
it was unset after 2fdecbb.

Fixes PTS guessing for certain files with broken timestamps. Cf.
mpv-player/mpv#14806

Reported-by: llyyr <[email protected]>
Not all changelog readers may be familiar with it.
In hls_decode_entry_wpp(), self_id is always identical to thread.
Would trigger #10887 before it was fixed, sample cut from the one
attached to the bug.
The channelmap_init function was returning success even on error after
7dc81d3 due to shadowing of the
outer ret variable.

Fixes CID1619297 Logically dead code
pkoshevoy and others added 28 commits November 17, 2024 12:19
realign_frame called av_pix_fmt_count_planes with incorrect parameter.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 00cf3df)
Signed-off-by: James Almer <[email protected]>
(cherry picked from commit c8e5c68)
If the audio loop stops inside an audio frame, the leftover buffer contains the
end of the frame, which is not looped. The length supposed to be the part which
was not written to the loop buffer, so we need to drain exactly that number of
bytes from the leftover buffer.

Signed-off-by: Marton Balint <[email protected]>
(cherry picked from commit b33a594)
The logic did not follow the documented behaviour and that caused skipping of
some audio in the loop and in the leftover buffer.

Example command line which should produce a smooth sine wave for the whole
duration of the output:

ffmpeg -f lavfi -i "sine=r=48000:f=480:d=4" -af "aloop=loop=4:start=48000:size=48000" out.wav

Fixes ticket #11283.

Signed-off-by: Marton Balint <[email protected]>
(cherry picked from commit fe18ed3)
The half-baked assembler in Clang 16 and earlier can't process our
RISC-V assembler. This adds yet another work around that.

If you must use Clang, please use version 17 or later.

(cherry picked from commit e29432e)
Also include the hardware feature flags like the other archs do and
clean up the code a bit.

Tested on Linux POWER9.

Signed-off-by: Brad Smith <[email protected]>
(cherry picked from commit d6b2d08)
Signed-off-by: Brad Smith <[email protected]>
Otherwise, these can overflow at the boundaries of the integer type.

Signed-off-by: Brad Smith <[email protected]>
(cherry picked from commit c325f9c)
Signed-off-by: Brad Smith <[email protected]>
libavutil/riscv: Make use of elf_aux_info() on FreeBSD / OpenBSD riscv

FreeBSD/OpenBSD riscv have elf_aux_info().

Signed-off-by: Brad Smith <[email protected]>
Signed-off-by: Rémi Denis-Courmont <[email protected]>
(cherry picked from commit f3eca3f)
Signed-off-by: Brad Smith <[email protected]>
…d one is unset

avgBitrate == 0 is used to signal a VBR track, so if that value is propagated by an
encoder, don't overwrite it with a calculated value based on track size.

Part of a fix for ticket #11303.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 944212a)
Needed to signal the muxer that the stream is VBR.

Finishes fixing ticket #11303.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 46c6ca3)
They are needed for audio tracks with priming samples, where negative CTS
offsets can't be used.

Fixes ticket #11031.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit ecc7d5d)
Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 4e6d317)
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 23a1c02)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit f938b2b)
…rames

And not just the first, as it was being done for lacing. The spec states that the
flag applies to everything inside the simple box.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit f656c00)
…s as key frames

Some audio codecs, like TrueHD, have non key frames.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 8ddbc26)
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 64bb91f)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit faea08b)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit ffdace5)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit d3dd14b)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 495c891)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 281b7fc)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 99f8725)
Don't depend on the generic code setting this.
This is in preparation for a following change.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 8d2d251)
xHE-AAC is a profile where some frames depend on other key frames, named IPF.
By setting the codec as Intra Only, all frames output by decoders and all
packets output by encoders/demuxers will be unconditionally flaged as
keyframes, which is incorrect.

Should fix ticket #11272.

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 40bd6d8)
Ensure downmixed is only set once during init, as it used to be.

Fixes a regression since acbb277.
Fixes ticket #11321

Signed-off-by: James Almer <[email protected]>
(cherry picked from commit 0e07a70)
@Merkyrio Merkyrio force-pushed the feature/LIV-3851-update-ffmpeg-to-7.1 branch from 6079cf0 to 1423746 Compare December 10, 2024 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.