Hendrik Leppkes
5d0527a6ab
swscale: make sws_getCachedContext properly handle pre-processed formats
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
0710962a3a
matroskadec_haali: optimize fuzzy CueAware seeking
...
This allows finding Cues that would match the same frame as the requested timecode,
and allow for more accurate seeking on ordered chapter boundaries.
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
64047e9b53
flac: export vorbiscomment metadata in extradata
...
It can contain special metadata that informs us about the desired channel
layout for non-standard layouts, which means its crucial for correct
playback.
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
ae6a354433
matroskadec_haali: defer parsing of the full MKV header until required
...
This allows quickly scanning the file header for the segment UID instead
of parsing the full headers for this information.
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
6e0908dd04
matroskadec_haali: optimize opening of external segments
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
821abdd77c
HACK avio: add a flag to skip the fstat on file opening for performance reasons
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
6d225eb160
matroskadec_haali: protect against unknown tracks causing a crash
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
7a656f05d6
matroskadec_haali: added an option to suppress opening external segments
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
4bbb506f83
HACK: matroskadec_haali: extract the SSA extradata from the main segment
...
This works around a short-coming in dynamic format switching of the common subtitle renderers.
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
299257ea20
matroskadec_haali: process attachments of all segments
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
ab207da091
matroskadec_haali: send new extradata and stream params on segment changes
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
dd47b5e077
matroskadec_haali: support changing compression settings in different segments
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
4dc85470ed
matroskadec_haali: support Next/Prev file linking
2024-04-05 22:06:11 +02:00
Hendrik Leppkes
6e3cc536a5
matroskadec_haali: make cue-aware seeking more lenient
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
b8e423d95f
matroskadec_haali: add public api for interacting with editions
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
4fd0350c9d
matroskadec_haali: support for linked segments in ordered chapters
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
15a545e85a
matroskadec_haali: support ordered chapters/virtual timelines
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
5ee80cdeac
matroskadec_haali: add logging of the edition/chapter structure
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
e0bb33a95e
matroskadec_haali: obey the Enabled and Hidden flags for tracks and chapters
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
1036ca2ca5
matroskadec_haali: refactor/simplify for edition support
...
- creating IOstreams
- Cue-aware seeking
- Cleanup
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
e4ba0fa634
matroskadec_haali: avoid memcpys when the packet data can be reused as-is.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
596421670e
matroskadec_haali: only use default values for DisplayWidth/Height if appropriate.
...
The default values are only valid when the DisplayUnit is 0 (pixels), and all other
values require explicit coding of the DisplayWidth/Height values.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
637a926e74
HACK: store dvd palette info for user-app use
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
0c36516659
aac: 7.1 should have side channels, and not 2 pairs of front channels.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
6cb3b0e303
swresample: add a "clipping protection" mode when mixing
...
This mode normalizes audio down to stay below 1.0 after mixing, so no clipping occurs when converting to integer formats.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
1f36d01d46
matroskadec_haali: parse new CueDuration and CueRelativePosition elements
...
Parse the new elements into the Cue structure, but they remain unused in the Matroska Parser itself.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
81705af9b7
HACK: mov: when seeking secondary streams, don't insist on key-frames.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
0b83a00429
HACK: preserve mpeg2 END_OF_SEQ code to the start of the next frame to cause a implicit decoder flush
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
8a33eb3ef2
HACK: make the image2pipe demuxer work more like we want it to.
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
d97f6e7972
HACK: dvdsubdec: try to improve default dvd subtitle color guessing
2024-04-05 22:06:10 +02:00
Hendrik Leppkes
bb8faf7667
avidec: force probing of subtitle streams
2024-04-05 22:06:09 +02:00
Hendrik Leppkes
107ea6c0fa
h264: flag interlaced-coded frames as such when sei_pic_struct indicates otherwise
...
According to the H.264 standard, Annex D, Table D-1, field_pic_flag shall be 0 when sei_pic_struct signals progressive. In the case when this restriction is not fullfilled, its safer to assume the field is actually interlaced.
Not doing so can cause a renderer to assume the frame is progressive and not deinterlace it, even if required.
2024-04-05 22:06:09 +02:00
Hendrik Leppkes
067549f72e
configure: don't use pkgconfig for libopus or libspeex (HACK)
2024-04-05 22:06:09 +02:00
Hendrik Leppkes
df0575dc21
mpegvideo: null out current_picture_ptr when allocation failed
...
This avoids using an uninitialized picture in further decode calls.
2024-04-05 22:06:09 +02:00
Hendrik Leppkes
27db6dceb5
matroskadec_haali: Only accept a "sane" DefaultDuration for FPS.
...
Alot of files have their DefaultDuration set to an calculated
value which is not directly tied to the FPS, and because Matroska
actually doesn't specify the DefaultDuration to be tied to the FPS,
this is perfectly legal.
So, before assuming the DefaultDuration is the FPS, check if the value
actually makes sense. The most basic check here is that the FPS is
below 125fps, because any more really doesn't make sense.
If the FPS from the header is not set, avformat will probe the FPS
based on the files timestamps, which will give a much better result.
2024-04-05 22:06:09 +02:00
Hendrik Leppkes
31768fdae6
file: increase io buffer for better performance on high latency resources
2024-04-05 22:06:04 +02:00
Hendrik Leppkes
106568ff4a
Add Matroska demuxer based on Haalis MatroskaParser
2024-03-24 10:29:48 +01:00
Hendrik Leppkes
0a43301e95
build: remove slashes from the last lines of x86 build files
...
This unbreaks compilation in mingw with CRLF line endings
2024-03-24 10:29:48 +01:00
Hendrik Leppkes
f536070d4d
mpegts: switch back to mpegts_get_pcr
2024-03-24 10:29:48 +01:00
Hendrik Leppkes
a94b6aa6cf
HACK: Don't return -1 in avformat_find_stream_info when codec details are still unknown.
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
98247d2d82
HACK: Add a function to manually add streams to the MPEG-TS demuxer
...
This is used by the BDMV demuxer when some streams are not detected by auto-probing
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
7e07a38fe8
HACK: disable mpegts crc checks for pat/pmt/...
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
d9955ce11b
Silently error out when pos_limit exceeds pos_max instead of aborting the process.
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
34a33b5144
Export avcodec functions used in LAV
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
f36c43440e
avformat: add a new flag to let the user indicate the file is on a slow network device
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
931da054bb
Export avformat functions used in LAV
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
6bbf5c05b1
dxva2_mpeg2: prevent calling end_frame without start_frame
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
539b17963b
prores: set avtx->pix_fmt based on the fourcc code during init
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
e40b1a9214
HACK: Disable automatic multi-threading.
...
Using multi-threading for stream probing is a bad idea.
2024-03-24 10:29:47 +01:00
Hendrik Leppkes
007f706d5d
Increase the maximum probe size to 4MB.
...
This allows detection of some files with corruption within the first few MB and should not have a speed impact on previous functional files.
2024-03-24 10:29:47 +01:00