summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_examiner.cc
AgeCommit message (Collapse)Author
2025-12-05Cleanup: can now remove the _NC log variants.Carl Hetherington
2025-11-03Missing check for duplicate IDs.Carl Hetherington
Without this call we don't spot duplicates that are found in the initial scan.
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-07-10Replace String::compose with fmt.Carl Hetherington
sed -i "/Plural-Forms/n;/%100/n;/scanf/n;s/%[123456789]/{}/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/tools/*.cc src/lib/po/*.po src/wx/po/*.po src/tools/po/*.po test/*.cc sed -i "s/String::compose */fmt::format/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/tools/*.cc test/*.cc
2024-11-10Merge remote-tracking branch 'origin/main' into v2.17.xCarl Hetherington
2024-11-10Fix examination logic.v2.16.97Carl Hetherington
Before we would stop if there was one audio stream and the first packet was from that stream; we would not carry on to find the video.
2024-11-08I think carry_on_audio should also be set false if audio_packet() returns false.Carl Hetherington
2024-11-08Remove out-of-date comment.Carl Hetherington
2024-11-01Merge remote-tracking branch 'origin/main' into v2.17.xCarl 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-19Fix video length when we scan for it.Carl Hetherington
Length is 1 frame more than the start time of the last frame.
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-03-30Merge remote-tracking branch 'origin/main' into v2.17.xCarl Hetherington
2024-03-29Fix crash introduced in previous commit.Carl Hetherington
2024-03-29Merge remote-tracking branch 'origin/main' into v2.17.xCarl Hetherington
2024-03-29Fix lack of video rotation in some cases (#2971).Carl Hetherington
Setting the optional to 0 here means we never even looked at the packet side data. This seems to be more of a problem with the v2.17.x branch for some reason.
2024-02-22Merge tag 'v2.16.78' into v2.17.xv2.17.12Carl Hetherington
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.
2024-01-28Bump FFmpeg to 6.1.v2.17.10Carl Hetherington
2024-01-28Fix FFmpegExaminer termination condition when there is no video;Carl Hetherington
it's hard to see how this ever worked.
2024-01-28Bump ffmpeg to 5.1.2 "Riemann"Carl Hetherington
2023-12-12Add FFmpegExaminer::has_alpha().Carl Hetherington
2022-12-25Show audio bit depth in content properties (#559).Carl Hetherington
2022-04-22Use libdcp's warnings.hCarl Hetherington
2022-02-17Add an assert.Carl Hetherington
2022-02-17Try to handle EAGAIN from avcodec_send_packet() properly.Carl Hetherington
The docs say on EAGAIN we should call avcodec_receive_frame() and then re-send the same packet again. This should do that. This is a fix for errors trigged by the accompanying test.
2022-02-13Relax error handling when examining FFmpeg files (#2187).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-08-03Fix build with newer FFmpeg.Carl Hetherington
2021-05-21Fix invalid memory access introduced in 6f832724ef942f133f6f8d0a06d7377beea8f7a6v2.15.150Carl Hetherington
2021-05-19Don't assert on a non-existant codec (#1999).Carl Hetherington
2021-05-01Switch decoding to ffmpeg send/receive API.Carl Hetherington
2021-05-01Remove some FFmpeg-related warnings by directly accessing AVFrame.Carl Hetherington
2021-04-08Assorted C++11/formatting cleanups.Carl Hetherington
2021-03-02Tidy up and do flushing more correctly.v2.15.133Carl Hetherington
This seems necessary with the multi-threaded decoding; it looks like we were doing it quite wrong before but getting away with it.
2021-03-02Remove FFmpeg::_packet.Carl Hetherington
2021-03-02C++11 tidying.Carl Hetherington
2021-03-01Fix another crash introduced in cc40b6ea6d882c07c05602d6f3dd1c185481585bCarl Hetherington
2021-03-01Fix warning.Carl Hetherington
2021-03-01Fix crash introduced in previous.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-27Use enum class for VideoRange.Carl Hetherington
2021-01-07BOOST_FOREACH.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-11-23Remove swaroop variant.Carl Hetherington
2020-11-11Remove assertion checking that rotations are a multiple of 90.Carl Hetherington
This is checked later, anyway (without asserting) and we have seen files in the wild with other rotations (e.g. -135.62) which do not appear to need rotation to be applied. Fixes #1871. Backported-from-commit: f235ed07f969e1b8b9d3d05082dcdd68ceae771e Backported-from-branch: master