summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-07-10 13:35:36 +0100
committerCarl Hetherington <cth@carlh.net>2013-07-10 13:35:36 +0100
commite18ebfab7383efc601d3024687f9761419006184 (patch)
treee2485ccb083e4420a96db95af591c68e719af580 /src/lib
parentadb9882ec12fecb0bbb1925a46c8e63368f9e2b5 (diff)
Remove erroneous trimmer.cc; use copy for FFMpeg filter passthrough.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/encoder.cc1
-rw-r--r--src/lib/filter_graph.cc7
-rw-r--r--src/lib/trimmer.cc123
-rw-r--r--src/lib/util.cc14
-rw-r--r--src/lib/util.h1
5 files changed, 3 insertions, 143 deletions
diff --git a/src/lib/encoder.cc b/src/lib/encoder.cc
index d3181acd9..ed14f2755 100644
--- a/src/lib/encoder.cc
+++ b/src/lib/encoder.cc
@@ -200,7 +200,6 @@ Encoder::process_video (shared_ptr<const Image> image, bool same)
} else {
/* Queue this new frame for encoding */
TIMING ("adding to queue of %1", _queue.size ());
- /* XXX: padding */
_queue.push_back (shared_ptr<DCPVideoFrame> (
new DCPVideoFrame (
image, _video_frames_out, _film->dcp_video_frame_rate(),
diff --git a/src/lib/filter_graph.cc b/src/lib/filter_graph.cc
index 275c46909..cc16b279d 100644
--- a/src/lib/filter_graph.cc
+++ b/src/lib/filter_graph.cc
@@ -58,13 +58,10 @@ FilterGraph::FilterGraph (shared_ptr<const FFmpegContent> content, libdcp::Size
_frame = av_frame_alloc ();
string filters = Filter::ffmpeg_strings (content->filters()).first;
- if (!filters.empty ()) {
- filters += ",";
+ if (filters.empty ()) {
+ filters = "copy";
}
- /* XXX; remove */
- filters += crop_string (Position (), _size);
-
AVFilterGraph* graph = avfilter_graph_alloc();
if (graph == 0) {
throw DecodeError (N_("could not create filter graph."));
diff --git a/src/lib/trimmer.cc b/src/lib/trimmer.cc
deleted file mode 100644
index 99f04793f..000000000
--- a/src/lib/trimmer.cc
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#include <boost/shared_ptr.hpp>
-#include <stdint.h>
-#include "trimmer.h"
-
-using std::cout;
-using std::max;
-using boost::shared_ptr;
-
-/** @param audio_sample_rate Audio sampling rate, or 0 if there is no audio */
-Trimmer::Trimmer (
- shared_ptr<Log> log,
- int video_trim_start,
- int video_trim_end,
- int video_length,
- int audio_sample_rate,
- float frames_per_second,
- int dcp_frames_per_second
- )
- : AudioVideoProcessor (log)
- , _video_start (video_trim_start)
- , _video_end (video_length - video_trim_end)
- , _video_in (0)
- , _audio_in (0)
-{
- FrameRateConversion frc (frames_per_second, dcp_frames_per_second);
-
- if (frc.skip) {
- _video_start /= 2;
- _video_end /= 2;
- } else if (frc.repeat) {
- _video_start *= 2;
- _video_end *= 2;
- }
-
- if (audio_sample_rate) {
- _audio_start = video_frames_to_audio_frames (_video_start, audio_sample_rate, frames_per_second);
- _audio_end = video_frames_to_audio_frames (_video_end, audio_sample_rate, frames_per_second);
- }
-
- /* XXX: this is a hack; if there is no trim at the end, set
- the audio end point to infinity so that
- shorter-video-than-audio does not trim audio (which breaks
- the current set of regression tests). This could be
- removed if a) the regression tests are regenerated and b) I
- can work out what DCP length should be.
-
- There is also a problem whereby black video frames inserted
- at the start of the output by the matcher are not taken into account,
- so if black frames are inserted it means more gets trimmed off the
- end than should be. Hack around this in similar fashion with the
- _video_end = INT_MAX line.
- */
- if (video_trim_end == 0) {
- _video_end = INT_MAX;
- _audio_end = INT64_MAX;
- }
-}
-
-void
-Trimmer::process_video (shared_ptr<const Image> image, bool same, shared_ptr<Subtitle> sub)
-{
- if (_video_in >= _video_start && _video_in < _video_end) {
- Video (image, same, sub);
- }
-
- ++_video_in;
-}
-
-void
-Trimmer::process_audio (shared_ptr<const AudioBuffers> audio)
-{
- int64_t offset = _audio_start - _audio_in;
- if (offset > audio->frames()) {
- /* we haven't reached the start of the untrimmed section yet */
- _audio_in += audio->frames ();
- return;
- }
-
- if (offset < 0) {
- offset = 0;
- }
-
- int64_t length = _audio_end - max (_audio_in, _audio_start);
- if (length < 0) {
- _audio_in += audio->frames ();
- return;
- }
-
- if (length > (audio->frames() - offset)) {
- length = audio->frames () - offset;
- }
-
- _audio_in += audio->frames ();
-
- if (offset != 0 || length != audio->frames ()) {
- shared_ptr<AudioBuffers> copy (new AudioBuffers (audio));
- copy->move (offset, 0, length);
- copy->set_frames (length);
- audio = copy;
- }
-
- Audio (audio);
-}
-
diff --git a/src/lib/util.cc b/src/lib/util.cc
index d425fc8fe..2e4abe64d 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -270,7 +270,7 @@ LONG WINAPI exception_handler(struct _EXCEPTION_POINTERS *)
}
#endif
-/** Call the required functions to set up DVD-o-matic's static arrays, etc.
+/** Call the required functions to set up DCP-o-matic's static arrays, etc.
* Must be called from the UI thread, if there is one.
*/
void
@@ -338,18 +338,6 @@ dcpomatic_setup_gettext_i18n (string lang)
#endif
}
-/** @param start Start position for the crop within the image.
- * @param size Size of the cropped area.
- * @return FFmpeg crop filter string.
- */
-string
-crop_string (Position start, libdcp::Size size)
-{
- stringstream s;
- s << N_("crop=") << size.width << N_(":") << size.height << N_(":") << start.x << N_(":") << start.y;
- return s.str ();
-}
-
/** @param s A string.
* @return Parts of the string split at spaces, except when a space is within quotation marks.
*/
diff --git a/src/lib/util.h b/src/lib/util.h
index 7af8ffedf..57dc0f783 100644
--- a/src/lib/util.h
+++ b/src/lib/util.h
@@ -106,7 +106,6 @@ struct FrameRateConversion
std::string description;
};
-extern std::string crop_string (Position, libdcp::Size);
extern int dcp_audio_frame_rate (int);
extern std::string colour_lut_index_to_name (int index);
extern int stride_round_up (int, int const *, int);