1
0
Fork 0
Commit Graph

114413 Commits

Author SHA1 Message Date
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