summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
AgeCommit message (Collapse)Author
2017-05-05Don't seek a piece if the seek is outside its boundary.Carl Hetherington
2017-04-30Fix some cppcheck warnings.Carl Hetherington
2017-04-27Initial work on removing storage of subtitle times.Carl Hetherington
2017-04-23Tidy up _last_video_time to make it more like _last_audio_time.Carl Hetherington
2017-04-23Fix seeking; seek all decoders even if they have no content at theCarl Hetherington
seek position, and make Player cope with the FFmpegDecoder emitting pre-roll data. This seems nicer than making FFmpegDecoder do it.
2017-04-23Discard audio received before the time of the last accurate seek.Carl Hetherington
2017-04-23Cope better with the butler thread throwing an exception; stop the butler ↵Carl Hetherington
doing anything so that the exception can be reported.
2017-04-19Various fixes to seeking with audio.Carl Hetherington
2017-04-19Reset _last_*_time as required.Carl Hetherington
2017-04-19Several fixes to audio.Carl Hetherington
2017-04-19Seemingly basically working butler for video.Carl Hetherington
2017-04-19Handle end-trim correctly in player; there is scope to make this more ↵Carl Hetherington
efficient by adjusting decoders.
2017-04-19Fix crash brought on by previous.Carl Hetherington
2017-04-19Restore upmixer_a_test and fix resampler flushing.Carl Hetherington
2017-04-19Fix merging of audio in various circumstances.Carl Hetherington
2017-04-19Fix skip-frame.Carl Hetherington
2017-04-19Don't emit zero-sample buffers.Carl Hetherington
2017-04-19Fix black fill when first content is not at 0.Carl Hetherington
2017-04-19More fixes to when to pull from the audio merger.Carl Hetherington
2017-04-19Fix pull timing; fix units of ReelWriter::total_written_audio_frames.Carl Hetherington
2017-04-19Fix end-of-DCP padding and some audio bugs.Carl Hetherington
2017-04-19Remove unnecessary VideoFrame class.Carl Hetherington
2017-04-19Add FIXME.Carl Hetherington
2017-04-19Various fixes to push audio vaguely in the right direction.Carl Hetherington
2017-04-19Fix bug in gap-filling; rename _last_video_time -> _last_time.Carl Hetherington
2017-04-19Attempt to tidy up internal APIs slightly.Carl Hetherington
2017-04-19Remove some unused bits.Carl Hetherington
2017-04-19Implement subtitles.Carl Hetherington
2017-04-19Various bits; preview video seems to work.Carl Hetherington
2017-04-19Various work on the audio code.Carl Hetherington
2017-04-19Add a comment.Carl Hetherington
2017-04-19Basic grunt-work, untested and unfinished, but it compiles.Carl Hetherington
2016-12-16Fix referencing of assets with non-zero entry points (#1021).Carl Hetherington
2016-09-21Correctly spot that a DCP with unencrypted picture but encrypted ↵Carl Hetherington
sound/subtitle needs a KDM.
2016-09-21Trim referred-to DCPs correctly using CPL entry point / duration.Carl Hetherington
2016-08-28Update view on changing subtitle fade.Carl Hetherington
2016-08-25Make burnt-in subtitle outline width configurable (#940).Carl Hetherington
2016-08-16Basic support for fading subtitles in and out (#923).Carl Hetherington
2016-08-16Remove unused variable.Carl Hetherington
2016-07-08Support shadow in subtitles (#911).Carl Hetherington
2016-07-02Take y scale into account when deciding subtitle line spacing.Carl Hetherington
2016-07-01Make the preview respond to changes in subtitle line spacing.Carl Hetherington
2016-06-29Fix handling of incorrectly-recognised JPEG2000 files.Carl Hetherington
Previously we asked libdcp whether an imported J2K file was RGB or XYZ. The answer it gives is sometimes wrong, for reasons that are not clear (either the files are not marked correctly, or openjpeg is not parsing whatever metadata correctly). However it seems that, in general, we use the user's specified colour conversion to decide what to do with an image, rather than asking the image what should be done to it. Hence it makes more sense to assume that if a user specifies no colour conversion for a J2K file then the file is XYZ. With preview, the colour conversion from XYZ back to RGB is done by FFmpeg, so we have to set the pixel format correctly on the Image that comes back from J2KImageProxy. Now we get that pixel format from the configured colourspace conversion rather than from openjpeg's guess as to the file's colourspace. It's a bit ugly that the only thing we ask the file about is whether or not it is in YUV (which governs whether or not FFmpeg applies the user's configured YUV-to-RGB conversion). Everything else is decided by the configured conversion. I think there's still some uglyness in here that I can't put my finger on.
2016-06-22Don't bother decoding referenced DCP video if the player will ignore it.Carl Hetherington
2016-06-22Set AudioDecoder::fast a different way.Carl Hetherington
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-14Clean up of 3D->2D conversion.Carl Hetherington
It makes slightly more sense to discard 2D in the Transcoder rather than the Encoder. Unfortunately this requires quite invasive changes, mainly to remove Encoder::_position and instead derive this information from the PlayerVideo that is being handled. This is also nicer than before, I think. A notable change is that in player.cc; using time rather than content_video_to_dcp(). This means we are assuming that the decoder returns video at the time we ask it to, rather than checking what it has returned. I can't think of a problem with this (yet).
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-13Remove caching of old ImageDecoder objects.Carl Hetherington
This breaks things when there is a 3D ImageContent. When you change the video frame type on this content the view does not update because the re-used ImageDecoder recycles the same video without noticing that the frame type has changed. I guess this is sort of `because' the video frame type is used in VideoDecoder::give, which sets up the cache. Unfortunately I can't remember the case which the caching of ImageDecoders was meant to speed up. Maybe this will now become apparent.