summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_examiner.h
AgeCommit message (Collapse)Author
2025-10-15Disable use of stream IDs if there are duplicates, rather than rewriting.Carl Hetherington
It turns out that FFmpeg decoders (e.g. flv, see FFmpeg 25faaa311a74efdfdc4fed56996d7338ed807488) check stream IDs and sometimes create new streams if they see one that they didn't see before. If we change stream IDs we break this. Here we try to use stream indices in cases where the IDs are duplicated. We also account for the case where a new stream appears during examination. This wasn't covered by tests until the FFmpeg commit mentioned above, were the flv decoder creates a new stream during examination of boon_telly.mkv.
2025-10-15White space: ffpmeg_examiner.{cc,h}Carl Hetherington
2025-04-12Add has_alpha() flag to VideoContent.Carl Hetherington
2024-11-01Needing length is the same for audio and video, so merge them.Carl Hetherington
2024-11-01Obtain audio length by scanning through the file if required (#2880).Carl Hetherington
2024-10-19Cleanup: initialise a few members in-place.Carl Hetherington
2024-10-19Tidy up and fix obtaining video length when it's not in the header.Carl Hetherington
I think this has been broken for a while as we would come out of the loop even if we still wanted to find the video length.
2024-02-21Make DCPExaminer::size() optional and deal with the consequences.v2.16.78Carl Hetherington
This means we can fix the case of a VF having no known size in a nice way, in turn fixing problems caused by the fix to #2775.
2023-12-12Add FFmpegExaminer::has_alpha().Carl Hetherington
2022-04-08More missing override labels.Carl Hetherington
2022-04-08Add some missing override labels.Carl Hetherington
2022-01-11Use a separate AVFrame for each stream when decoding.Carl Hetherington
This seems to be what ffplay does and it feels like it makes sense as frames may be built from multiple packets AFAICS.
2021-10-03Add PixelQuanta to VideoContent.Carl Hetherington
2021-04-08Assorted C++11/formatting cleanups.Carl Hetherington
2021-03-02Remove FFmpeg::_packet.Carl Hetherington
2021-03-01With multi-threaded decoding we need to be careful to flushCarl Hetherington
after the main examination loop otherwise we can miss things.
2021-01-07std::shared_ptrCarl Hetherington
2020-11-23Remove swaroop variant.Carl Hetherington
2020-08-02Detect soft 2:3 pulldown (telecine) files and decode them at 23.976.Carl Hetherington
DVD rips from NTSC DVDs are sometimes (always?) encoded using soft 2:3 pulldown. The video frames are actually 23.976 but FFmpeg detects them as 29.97. With the current approach of the video decoder ignoring most PTSs and assuming a constant frame rate it is vital that the file contains the number of frames per second that the detected frame rate predicts. This fixes large sync errors with NTSC DVD rips (#1790).
2019-05-24Basic ability to set video range (JPEG/MPEG) at least for YUV content. May ↵Carl Hetherington
not work for RGB. See #1509.
2019-05-13swaroop: basics of encrypted MP4 playback.Carl Hetherington
2019-05-10Put Time types in dcpomatic namespace.Carl Hetherington
2018-06-08Auto-rotate videos.Carl Hetherington
2018-01-12Don't throw an exception if we can't find bits_per_pixel, as it's not the ↵Carl Hetherington
end of the world.
2017-04-27Initial work on removing storage of subtitle times.Carl Hetherington
2016-06-01Basics of better audio stream labelling in the audio mapping view (#849).Carl Hetherington
2016-05-25No-op; fix GPL address and use the explicit-program-name version.Carl Hetherington
2016-05-18Partial work on using a no-video FFmpeg file.Carl Hetherington
2016-05-18Reasonably straightforward stuff; main things are addingCarl Hetherington
a _parent to VideoContent (mainly, but not only, for signalling) and moving the video shared_ptr into Content, which makes much more sense to replace dynamic_cast tests for whether something has video or whatever. Nearly builds.
2016-02-26Allow changes to colours of FFmpeg subtitles (#795).Carl Hetherington
2016-02-15Support SSA subtitles embedded within FFmpeg files.Carl Hetherington
2016-02-01Subtitle "to" times used to be stored against their "from" times.Carl Hetherington
Sadly an example shows that from times are not unique. This patch uses a hash of stuff from the first AVSubtitle as the key.
2015-11-13Disable YUV->RGB conversion controls with non-YUV sources (#649).Carl Hetherington
2015-09-25Fix assertion failure with .MTS files.Carl Hetherington
These files have subs which start but are never officially finished; this means there are no `to' times to find in find_subtitle_to. Cope with this by stopping the previous sub when a new one arrives if there hasn't been a proper "stop" in the mean time.
2015-07-17A couple of class/struct confusions.Carl Hetherington
2015-07-16float -> double in a few places.Carl Hetherington
2015-07-02Add bits per pixel to video content properties.Carl Hetherington
2015-06-30Write FFmpeg log output to our log file.Carl Hetherington
2015-06-21Add more video properties to content properties dialog.Carl Hetherington
Also implement the whole properties thing more neatly.
2015-06-21No-op: remove all trailing whitespace.Carl Hetherington
2015-05-27Untested use of Frame for video/audio content lengths.Carl Hetherington
2015-05-12Assorted image subtitle fixes.Carl Hetherington
2015-01-23Hand-apply 111f02f4fc8ace359a16aea1c88c2821bf3dde31 from master; improve ↵Carl Hetherington
progress reporting when scanning a file for length.
2015-01-23Hand-apply cb998bee2e70f3426fd95655736deae803efa58e from master; examine a ↵Carl Hetherington
whole FFmpeg file if there is no length information in the header.
2014-12-05Some include tidying.Carl Hetherington
2014-12-03Hand-apply 6a3cd511559433554ab40ed72ff94b7d8dc2c5bd from master;Carl Hetherington
Basics of an image sequence dialog that asks about frame rate and digest calculation.
2014-11-11Hand-apply 80562fe5dce5fd625da583ca6f7c2833f9db8754 from master (remove ↵Carl Hetherington
default scale and use a scale guessed from the content's size and sample aspect ratio).
2014-05-22Split FFmpegExaminer stuff into separate methods.Carl Hetherington
2014-03-04New DCPTime/ContentTime types.Carl Hetherington
2014-02-24Merge master; specify libdcp-1.0.Carl Hetherington