X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fupmixer_b.cc;h=3b0c2d94f8c7e55ce2196a61e31e6c1f7f9290ee;hp=317108f41799a6a85f2feff1d4b38fdf7c54a9da;hb=8963f0007af1a312017b9627c18b82ec2a577591;hpb=29f84e2b8785585885e0658bdf9938967547460f diff --git a/src/lib/upmixer_b.cc b/src/lib/upmixer_b.cc index 317108f41..3b0c2d94f 100644 --- a/src/lib/upmixer_b.cc +++ b/src/lib/upmixer_b.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2015 Carl Hetherington + Copyright (C) 2015-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,17 +18,21 @@ */ + #include "upmixer_b.h" #include "audio_buffers.h" #include "audio_mapping.h" #include "i18n.h" + using std::string; +using std::make_shared; using std::min; using std::vector; using std::shared_ptr; + UpmixerB::UpmixerB (int sampling_rate) : _lfe (0.01, 150.0 / sampling_rate) , _delay (0.02 * sampling_rate) @@ -36,6 +40,7 @@ UpmixerB::UpmixerB (int sampling_rate) } + string UpmixerB::name () const { @@ -49,25 +54,28 @@ UpmixerB::id () const return N_("stereo-5.1-upmix-b"); } + int UpmixerB::out_channels () const { return 6; } + shared_ptr UpmixerB::clone (int sampling_rate) const { - return shared_ptr (new UpmixerB (sampling_rate)); + return make_shared(sampling_rate); } + shared_ptr UpmixerB::run (shared_ptr in, int channels) { - shared_ptr out (new AudioBuffers (channels, in->frames())); + auto out = make_shared(channels, in->frames()); /* L + R minus 6dB (in terms of amplitude) */ - shared_ptr in_LR = in->channel(0); + auto in_LR = in->channel(0); in_LR->accumulate_frames (in->channel(1).get(), in->frames(), 0, 0); in_LR->apply_gain (-6); @@ -94,7 +102,7 @@ UpmixerB::run (shared_ptr in, int channels) shared_ptr S; if (channels > 4) { /* Ls is L - R with some delay */ - shared_ptr sub (new AudioBuffers (1, in->frames())); + auto sub = make_shared(1, in->frames()); sub->copy_channel_from (in.get(), 0, 0); float* p = sub->data (0); float const * q = in->data (1); @@ -113,6 +121,7 @@ UpmixerB::run (shared_ptr in, int channels) return out; } + void UpmixerB::flush () { @@ -120,6 +129,7 @@ UpmixerB::flush () _delay.flush (); } + void UpmixerB::make_audio_mapping_default (AudioMapping& mapping) const { @@ -130,11 +140,12 @@ UpmixerB::make_audio_mapping_default (AudioMapping& mapping) const } } + vector UpmixerB::input_names () const { - vector n; - n.push_back (NamedChannel(_("Upmix L"), 0)); - n.push_back (NamedChannel(_("Upmix R"), 1)); - return n; + return { + NamedChannel(_("Upmix L"), 0), + NamedChannel(_("Upmix R"), 1) + }; }