summaryrefslogtreecommitdiff
path: root/src/lib/video_decoder.cc
AgeCommit message (Collapse)Author
2016-07-29Fixes for separate L/R eye content.Carl Hetherington
2016-07-04Comment tweak.Carl Hetherington
2016-06-22Optimization for the referenced video case.Carl Hetherington
With referenced video from a DCP decoder, no video will ever be fetched from the decoder. Hence the code to discard given video will be activated after _decoded builds up to the magic size. Before this commit the code would attempt to fill with black up to given frame N (with N very large) from the last frame in _decoded when _decoded had been trimmed. This would result in exponential growth in execution time for the VideoDecoder::give() path.
2016-06-21Revert "Use make_shared<>."Carl Hetherington
Support for this seems to vary wildly across DoM's build targets. Stuff that builds on 16.04 won't build on 14.04, for example. Seems to not be worth the hassle now. This reverts commit 5a5324ed3a381a86dfe0a6e3932c1d58fdcd596f.
2016-06-21Use make_shared<>.Carl Hetherington
2016-06-14Fix subtle bug with 3D and add a explicit to stop it happening again.Carl Hetherington
2016-06-14Fix some confusion with filling and VideoFrame.Carl Hetherington
2016-06-14Add VideoFrame class.Carl Hetherington
This puts a frame index with an Eyes, which simplifies code in some areas. I can't think of a better name for it, unfortunately.
2016-06-13Fix VideoDecoder::get_video() with 3D.Carl Hetherington
get_video() promises to return all video frames at the given time, but this wasn't working for none-SBS-3D as it would be satisfied when it got the first (left) frame. Adjust get_video() to get all required frames. This showed up bugs in fill_both_eyes, whereby the from parameter was ignored and the wrong things were done in some cases; video_decoder_fill_test.cc tests this stuff.
2016-05-25No-op; fix GPL address and use the explicit-program-name version.Carl Hetherington
2016-05-18Fix seek, for video at least.Carl Hetherington
2016-05-18Rename some methods.Carl Hetherington
2016-05-18Basics of splitting up Decoder tree like Content.Carl Hetherington
2016-05-18Move video frame rate ('prepared-for') into Content.Carl Hetherington
2016-05-18Rename video/audio/subtitle part methods.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-01-27Possibly better version of d217a16d41dd71c921fa2155e068df7cca11f457.Carl Hetherington
Don't stop returning stuff from get_video when there are frames left in _decoded_video.
2016-01-24Merge branch 'master' of ssh://git.carlh.net/home/carl/git/dcpomaticCarl Hetherington
2016-01-24Stop trying to get frames from a video source when an attemptCarl Hetherington
to get an earlier frame has already failed because the decoder said it has no more data. Before this the VideoDecoder would repeatedly seek to try to get a frame which does not exist. This happens when the header of a file is wrong, it would seem; in the file that triggered the bug the header (as read by DoM or ffprobe) has a length of 137275 frames but the last frame in the file (according to DoM or ffprobe -show_frames) is 136207 (44.5s earlier).
2016-01-24Missing but inconsequential break.Carl Hetherington
2016-01-24Reduce variable scope slightly.Carl Hetherington
2015-10-26Reinstate subtitle speed-up patch 526fd6de4c80a7ac9614a1cb0209efff7b171cd5 ↵Carl Hetherington
but only for preview.
2015-10-23Revert "Avoid decoding other packets when looking for subs."Carl Hetherington
This reverts commit 9e025d3f85f9d6d855b3d5e6c90bca0eac3a3d49. It causes corruption in prophet_clip.xml for reasons that are not yet known.
2015-10-16Remove the dreaded _decoded_video size assertion.Carl Hetherington
I am reasonably convinced that the accumulation of _decoded_video is an optimisation rather than being required for correctness, so it's no problem to throw frames away as the code will just get them back again if and when it needs them.
2015-10-16Avoid decoding other packets when looking for subs.Carl Hetherington
The "accumulation" of, for example, video data when we are looking for audio data is an *optimisation* to reduce the number of seeks. It should not be necessary for correctness (the output should be right even if we never kept anything except what we were looking for). Doing this accumulation is not always an optimisation; sometimes not doing it is better. Avoiding it when going back for subtitles is one of these cases.
2015-10-15Use AV_ prefixes on some FFmpeg bits.Carl Hetherington
2015-10-09Logging improvements to allow prettier displays in the server GUI.Carl Hetherington
2015-09-14Lots of #include <iostream>s for Arch.Carl Hetherington
2015-08-18Remove debug code.Carl Hetherington
2015-08-18Include tidying.Carl Hetherington
2015-08-17Do filling correctly for separate-content L/R 3D; before it wasCarl Hetherington
trying to fill each individual piece of content as if it was providing both L and R frames.
2015-07-29Replace Time::frames with Time::frames_round and Time::frames_floor.Carl Hetherington
I believe both are necessary; doing floor instead of round caused #648.
2015-07-24Fix mistaken clamp to length_after_trim after adding trim_start.Carl Hetherington
2015-06-25Add DEBUG_DECODE and some basic debugging of the decoding process.Carl Hetherington
2015-06-21No-op: remove all trailing whitespace.Carl Hetherington
2015-06-12Remove PassReason stuff.Carl Hetherington
This feels wrong: it means that it is possible for FFmpegDecoder to discard packets. I can't see how this is ok in all cases: maybe we were lucky that it worked at all.
2015-06-12Small tidy-up.Carl Hetherington
2015-05-26{Video,Audio}Frame -> Frame.Carl Hetherington
2015-05-13Don't bother decoding video frames when we're seeking around trying to find ↵Carl Hetherington
subtitles.
2015-01-19Fix audio analysis; make sure we don't decode video and let it pile up unwanted.Carl Hetherington
2015-01-19VideoDecoder::_same can just be a local.Carl Hetherington
2015-01-06Add some writer-loop debugging from 1.x; ignore out-of-order frames when ↵Carl Hetherington
they come from decoders; fix hang if there are unsequenced images in the writer queue when we want to stop.
2015-01-05Increase stored-frames limit; fix skip_frame_test reference.Carl Hetherington
2015-01-05Assert in one case where memory usage can build up a lot.Carl Hetherington
2014-12-20Hand-apply d849d411cff28ef5453085791d0b4d7cd73bd070 from master; replace all ↵Carl Hetherington
assert()s with thrown exceptions.
2014-12-09Fix fill_2d not doing what it is specified to do.Carl Hetherington
2014-11-23Various fixes to seek since changing fill code.Carl Hetherington
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-09-30Basic video fade support.Carl Hetherington
2014-07-09Basics of DCP import.Carl Hetherington