-
Notifications
You must be signed in to change notification settings - Fork 360
Update FFmpeg to version 8.0 #1223
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
Conversation
In mpeg_decode_a53_cc() only the A/53 part 4 CC data ("GA94") is saved between
frames. The other formats incorrectly created a larger buffer than they use
since a705bcd763e344fac191e157ffeddc285388b7fa because they did not append to
the previous data.
The a53_buf_ref is added to the frame in mpeg_field_start() which will only be
called in decode_chunks() if not all of the picture data slices are skipped.
For these formats, utilize the data added to the buffer in case frames are skipped
(concatenating the CC data until a frame can be exported), in a similar fashion to
the A/53 part 4 logic.
Reviewed-by: Marth64 <marth64@proxyid.net>
Signed-off-by: Marth64 <marth64@proxyid.net>
(cherry picked from commit 8ad2d1919fdf8a33f72761799367293bbb379b55)
The format is used by at least Dish Network, but is not defined in any DVB standard, so remove references to DVB. This is a simple rename, no functional change. Signed-off-by: Marth64 <marth64@proxyid.net> (cherry picked from commit 33daef5f498c7c6092dd1440481fa898f7c83cf4)
3b5e65c to
a20fb52
Compare
IVTV, a Linux driver for TV tuners, and V4L2 utilize
a coding named after IVTV to carry sliced VBI data
in MPEG streams produced by tuner cards with
VBI capture capability and an MPEG-2 encoder SoC.
IVTV or V4L2 driver will transport the coded data into a
MPEG-PS private stream ("IVTV") that can be captured
from the card alongside the video/audio.
The data could include:
EIA-608, Teletext, WSS (PAL widescreen signaling),
or VPS (PAL VCR signaling).
Signed-off-by: Marth64 <marth64@proxyid.net>
(cherry picked from commit 9fb806fa57731690852dfb9ac2a0ae4ad5692fbf)
avformat/mpeg: demux ivtv captions
The packets start 'IVT0' or 'ivt0'
('I' = 0x49, 'i' = 0x69).
Signed-off-by: Marth64 <marth64@proxyid.net>
(cherry picked from commit e838e6cbe2d8ab4ad9cea85e04e545ff27e97bdb)
It has been split from FFmpeg in version 8.0.
a20fb52 to
0ed98a5
Compare
It was pointed out when trying to upstream this change that the crash MythTV was trying to fix was already fixed by the prior if (pmt_pid == ts->current_pid) test. The PID for the PAT is 0 and the added check was originally just against 0.
|
Scott, |
|
@warpme The VAAPI deinterlacer is not being created so I would expect you to see interlacing artifacts depending on the source video. Although, it might just be the double rate deinterlacer that isn't working, since the single rate one looks like it didn't error. Please attach the console output from a run with |
|
A sorry - i forgot switch to debug... |
|
@warpme Piotr, the new commit should allow the creation of the VAAPI deinterlacer. Can you test it? |
…alizing the AVFilter FFmpeg now checks for a hardware context when using a hardware frame format during initialization of the filter, so set all parameters with av_buffersrc_parameters_set() before initializing.
Without this change, using an AMD Radeon RX 9060 XT, FFmpeg gives the following error and will not create any VAAPI surfaces for the deinterlacer: Failed to create surface: 10 (attribute not supported). Limit the workarounds to the specific driver they are for (i965).
FFmpeg says this will "Use the highest-numbered (and therefore possibly most advanced) deinterlacing algorithm". With my AMD Radeon RX 9060 XT, if deinterlacing is set to high the VAAPI deinterlacer will not be created since it does not support the motion_compensated deinterlacing mode. By instead telling it to use default, it will select motion_adaptive. Otherwise, see <va/va_vpp.h> and vaQueryVideoProcFilterCaps() to actually get what VAAPI supports.
4d03e4f to
a95eebb
Compare
|
I had to force push due to a destruction order bug I inadvertently introduced when setting hw_frames_ctx before initializing the buffer AVFilter. I think it might have been double freeing Source. @warpme I could replicate the green flashing when the VAAPI deinterlacer fails to be created and the shader deinterlacer is then used. However, there is no green flashing if just the shader deinterlacer is used (i.e. the driver deinterlacer is disabled). I have no idea what would cause that, but I doubt it is related to anything in FFmpeg. |
|
Scott, |
This was fairly straightforward, only a few minor merge conflicts in FFmpeg due to our modifications.
I'll rebase and see about upstreaming more of our changes later.
Checklist