projects
/
dcpomatic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
56aa7ee
)
Some basics of AudioMapping.
author
Carl Hetherington
<cth@carlh.net>
Mon, 20 May 2013 15:21:55 +0000
(16:21 +0100)
committer
Carl Hetherington
<cth@carlh.net>
Mon, 20 May 2013 15:21:55 +0000
(16:21 +0100)
18 files changed:
src/lib/audio_content.cc
patch
|
blob
|
history
src/lib/audio_content.h
patch
|
blob
|
history
src/lib/audio_mapping.cc
patch
|
blob
|
history
src/lib/audio_mapping.h
patch
|
blob
|
history
src/lib/content.h
patch
|
blob
|
history
src/lib/ffmpeg_content.cc
patch
|
blob
|
history
src/lib/ffmpeg_content.h
patch
|
blob
|
history
src/lib/ffmpeg_decoder.cc
patch
|
blob
|
history
src/lib/film.h
patch
|
blob
|
history
src/lib/sndfile_content.cc
patch
|
blob
|
history
src/lib/sndfile_content.h
patch
|
blob
|
history
src/wx/audio_mapping_view.cc
patch
|
blob
|
history
src/wx/audio_mapping_view.h
patch
|
blob
|
history
src/wx/ffmpeg_content_dialog.cc
patch
|
blob
|
history
src/wx/ffmpeg_content_dialog.h
patch
|
blob
|
history
src/wx/film_editor.cc
patch
|
blob
|
history
src/wx/film_editor.h
patch
|
blob
|
history
src/wx/properties_dialog.cc
patch
|
blob
|
history
diff --git
a/src/lib/audio_content.cc
b/src/lib/audio_content.cc
index 9968f472561121e833f09392302ede079981575f..e38d9d265aefd723210845c877ac81e2ac8d54fc 100644
(file)
--- a/
src/lib/audio_content.cc
+++ b/
src/lib/audio_content.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-35,7
+37,6
@@
AudioContent::AudioContent (boost::filesystem::path f)
AudioContent::AudioContent (shared_ptr<const cxml::Node> node)
: Content (node)
{
AudioContent::AudioContent (shared_ptr<const cxml::Node> node)
: Content (node)
{
-
}
AudioContent::AudioContent (AudioContent const & o)
}
AudioContent::AudioContent (AudioContent const & o)
@@
-43,3
+44,9
@@
AudioContent::AudioContent (AudioContent const & o)
{
}
{
}
+
+void
+AudioContent::as_xml (xmlpp::Node* node) const
+{
+
+}
diff --git
a/src/lib/audio_content.h
b/src/lib/audio_content.h
index 87858488cec8a1f4ae416dc636241b43acadc7f7..51f05efb0c9afcdfe3e506940d6d4dac3ba9b5c7 100644
(file)
--- a/
src/lib/audio_content.h
+++ b/
src/lib/audio_content.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-21,7
+23,7
@@
#define DCPOMATIC_AUDIO_CONTENT_H
#include "content.h"
#define DCPOMATIC_AUDIO_CONTENT_H
#include "content.h"
-#include "
util
.h"
+#include "
audio_mapping
.h"
namespace cxml {
class Node;
namespace cxml {
class Node;
@@
-42,10
+44,13
@@
public:
AudioContent (boost::shared_ptr<const cxml::Node>);
AudioContent (AudioContent const &);
AudioContent (boost::shared_ptr<const cxml::Node>);
AudioContent (AudioContent const &);
+ void as_xml (xmlpp::Node *) const;
+
virtual int audio_channels () const = 0;
virtual ContentAudioFrame audio_length () const = 0;
virtual int content_audio_frame_rate () const = 0;
virtual int output_audio_frame_rate (boost::shared_ptr<const Film>) const = 0;
virtual int audio_channels () const = 0;
virtual ContentAudioFrame audio_length () const = 0;
virtual int content_audio_frame_rate () const = 0;
virtual int output_audio_frame_rate (boost::shared_ptr<const Film>) const = 0;
+ virtual AudioMapping audio_mapping () const = 0;
};
#endif
};
#endif
diff --git
a/src/lib/audio_mapping.cc
b/src/lib/audio_mapping.cc
index e1fa0c220ee64f78f65034739be3fcafaec0479e..d0aa33657fb383c9fbddcdde996186a9485e4b92 100644
(file)
--- a/
src/lib/audio_mapping.cc
+++ b/
src/lib/audio_mapping.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-18,6
+20,7
@@
*/
#include <boost/lexical_cast.hpp>
*/
#include <boost/lexical_cast.hpp>
+#include <libxml++/libxml++.h>
#include <libcxml/cxml.h>
#include "audio_mapping.h"
#include <libcxml/cxml.h>
#include "audio_mapping.h"
@@
-30,23
+33,39
@@
using boost::shared_ptr;
using boost::lexical_cast;
using boost::dynamic_pointer_cast;
using boost::lexical_cast;
using boost::dynamic_pointer_cast;
-void
-AudioMapping::add (int c, libdcp::Channel d)
+AudioMapping::AudioMapping ()
{
{
- _content_to_dcp.push_back (make_pair (c, d));
+
}
}
-/* XXX: this is grotty */
-int
-AudioMapping::dcp_channels () const
+/** Create a default AudioMapping for a given channel count.
+ * @param c Number of channels.
+ */
+AudioMapping::AudioMapping (int c)
{
{
- for (list<pair<int, libdcp::Channel> >::const_iterator i = _content_to_dcp.begin(); i != _content_to_dcp.end(); ++i) {
- if (((int) i->second) >= 2) {
- return 6;
+ if (c == 1) {
+ /* Mono -> Centre */
+ add (0, libdcp::CENTRE);
+ } else {
+ /* 1:1 mapping */
+ for (int i = 0; i < c; ++i) {
+ add (i, static_cast<libdcp::Channel> (i));
}
}
}
}
+}
+
+AudioMapping::AudioMapping (shared_ptr<const cxml::Node> node)
+{
+ list<shared_ptr<cxml::Node> > const c = node->node_children ("Map");
+ for (list<shared_ptr<cxml::Node> >::const_iterator i = c.begin(); i != c.end(); ++i) {
+ add ((*i)->number_child<int> ("ContentIndex"), static_cast<libdcp::Channel> ((*i)->number_child<int> ("DCP")));
+ }
+}
- return 2;
+void
+AudioMapping::add (int c, libdcp::Channel d)
+{
+ _content_to_dcp.push_back (make_pair (c, d));
}
list<int>
}
list<int>
@@
-97,12
+116,3
@@
AudioMapping::as_xml (xmlpp::Node* node) const
t->add_child ("DCP")->add_child_text (lexical_cast<string> (i->second));
}
}
t->add_child ("DCP")->add_child_text (lexical_cast<string> (i->second));
}
}
-
-void
-AudioMapping::set_from_xml (shared_ptr<const cxml::Node> node)
-{
- list<shared_ptr<cxml::Node> > const c = node->node_children ("Map");
- for (list<shared_ptr<cxml::Node> >::const_iterator i = c.begin(); i != c.end(); ++i) {
- add ((*i)->number_child<int> ("ContentIndex"), static_cast<libdcp::Channel> ((*i)->number_child<int> ("DCP")));
- }
-}
diff --git
a/src/lib/audio_mapping.h
b/src/lib/audio_mapping.h
index 3c471d3f4f16aaead62df787c4c7666e5226e8aa..7d76e4f5a0643066285086522cd66d12d81ceaea 100644
(file)
--- a/
src/lib/audio_mapping.h
+++ b/
src/lib/audio_mapping.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-21,20
+23,28
@@
#define DCPOMATIC_AUDIO_MAPPING_H
#include <list>
#define DCPOMATIC_AUDIO_MAPPING_H
#include <list>
-#include <string>
#include <libdcp/types.h>
#include <boost/shared_ptr.hpp>
#include <libdcp/types.h>
#include <boost/shared_ptr.hpp>
-#include "audio_content.h"
+
+namespace xmlpp {
+ class Node;
+}
+
+namespace cxml {
+ class Node;
+}
class AudioMapping
{
public:
class AudioMapping
{
public:
+ AudioMapping ();
+ AudioMapping (int);
+ AudioMapping (boost::shared_ptr<const cxml::Node>);
+
void as_xml (xmlpp::Node *) const;
void as_xml (xmlpp::Node *) const;
- void set_from_xml (boost::shared_ptr<const cxml::Node>);
void add (int, libdcp::Channel);
void add (int, libdcp::Channel);
- int dcp_channels () const;
std::list<int> dcp_to_content (libdcp::Channel) const;
std::list<std::pair<int, libdcp::Channel> > content_to_dcp () const {
return _content_to_dcp;
std::list<int> dcp_to_content (libdcp::Channel) const;
std::list<std::pair<int, libdcp::Channel> > content_to_dcp () const {
return _content_to_dcp;
diff --git
a/src/lib/content.h
b/src/lib/content.h
index 9f465570bd2312570a6d5bae2602830ea866db39..8db35891a4979af6f795421bcc026cd923e17a4f 100644
(file)
--- a/
src/lib/content.h
+++ b/
src/lib/content.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
diff --git
a/src/lib/ffmpeg_content.cc
b/src/lib/ffmpeg_content.cc
index f0df1519393e96c423fa1f935b1357e6fe5cf7d9..d730f3ecbc6057c4a65a660f962b8d3bbf590c52 100644
(file)
--- a/
src/lib/ffmpeg_content.cc
+++ b/
src/lib/ffmpeg_content.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-88,6
+90,7
@@
FFmpegContent::as_xml (xmlpp::Node* node) const
node->add_child("Type")->add_child_text ("FFmpeg");
Content::as_xml (node);
VideoContent::as_xml (node);
node->add_child("Type")->add_child_text ("FFmpeg");
Content::as_xml (node);
VideoContent::as_xml (node);
+ AudioContent::as_xml (node);
boost::mutex::scoped_lock lm (_mutex);
boost::mutex::scoped_lock lm (_mutex);
@@
-263,6
+266,7
@@
operator== (FFmpegAudioStream const & a, FFmpegAudioStream const & b)
}
FFmpegAudioStream::FFmpegAudioStream (shared_ptr<const cxml::Node> node)
}
FFmpegAudioStream::FFmpegAudioStream (shared_ptr<const cxml::Node> node)
+ : mapping (node->node_child ("Mapping"))
{
name = node->string_child ("Name");
id = node->number_child<int> ("Id");
{
name = node->string_child ("Name");
id = node->number_child<int> ("Id");
@@
-277,6
+281,7
@@
FFmpegAudioStream::as_xml (xmlpp::Node* root) const
root->add_child("Id")->add_child_text (lexical_cast<string> (id));
root->add_child("FrameRate")->add_child_text (lexical_cast<string> (frame_rate));
root->add_child("Channels")->add_child_text (lexical_cast<string> (channels));
root->add_child("Id")->add_child_text (lexical_cast<string> (id));
root->add_child("FrameRate")->add_child_text (lexical_cast<string> (frame_rate));
root->add_child("Channels")->add_child_text (lexical_cast<string> (channels));
+ mapping.as_xml (root->add_child("Mapping"));
}
/** Construct a SubtitleStream from a value returned from to_string().
}
/** Construct a SubtitleStream from a value returned from to_string().
@@
-308,3
+313,13
@@
FFmpegContent::length (shared_ptr<const Film> film) const
FrameRateConversion frc (video_frame_rate (), film->dcp_video_frame_rate ());
return video_length() * frc.factor() * TIME_HZ / film->dcp_video_frame_rate ();
}
FrameRateConversion frc (video_frame_rate (), film->dcp_video_frame_rate ());
return video_length() * frc.factor() * TIME_HZ / film->dcp_video_frame_rate ();
}
+
+AudioMapping
+FFmpegContent::audio_mapping () const
+{
+ if (!_audio_stream) {
+ return AudioMapping ();
+ }
+
+ return _audio_stream->mapping;
+}
diff --git
a/src/lib/ffmpeg_content.h
b/src/lib/ffmpeg_content.h
index 540df041f510c8bd3b78f94231d9cb0a9dd36efb..d26c73125b663bf8c7f341fde049e9a185f37ea7 100644
(file)
--- a/
src/lib/ffmpeg_content.h
+++ b/
src/lib/ffmpeg_content.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-32,6
+34,7
@@
public:
, id (i)
, frame_rate (f)
, channels (c)
, id (i)
, frame_rate (f)
, channels (c)
+ , mapping (c)
{}
FFmpegAudioStream (boost::shared_ptr<const cxml::Node>);
{}
FFmpegAudioStream (boost::shared_ptr<const cxml::Node>);
@@
-42,6
+45,7
@@
public:
int id;
int frame_rate;
int channels;
int id;
int frame_rate;
int channels;
+ AudioMapping mapping;
};
extern bool operator== (FFmpegAudioStream const & a, FFmpegAudioStream const & b);
};
extern bool operator== (FFmpegAudioStream const & a, FFmpegAudioStream const & b);
@@
-96,6
+100,7
@@
public:
ContentAudioFrame audio_length () const;
int content_audio_frame_rate () const;
int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
ContentAudioFrame audio_length () const;
int content_audio_frame_rate () const;
int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
+ AudioMapping audio_mapping () const;
std::vector<FFmpegSubtitleStream> subtitle_streams () const {
boost::mutex::scoped_lock lm (_mutex);
std::vector<FFmpegSubtitleStream> subtitle_streams () const {
boost::mutex::scoped_lock lm (_mutex);
diff --git
a/src/lib/ffmpeg_decoder.cc
b/src/lib/ffmpeg_decoder.cc
index e99a960cef4723095ab6017b278f0c5a78a51e95..adf16c9408a36d39976d730e86e8c29a894ec505 100644
(file)
--- a/
src/lib/ffmpeg_decoder.cc
+++ b/
src/lib/ffmpeg_decoder.cc
@@
-143,7
+143,7
@@
FFmpegDecoder::setup_general ()
_audio_streams.push_back (
FFmpegAudioStream (stream_name (s), i, s->codec->sample_rate, s->codec->channels)
);
_audio_streams.push_back (
FFmpegAudioStream (stream_name (s), i, s->codec->sample_rate, s->codec->channels)
);
-
+
} else if (s->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
_subtitle_streams.push_back (FFmpegSubtitleStream (stream_name (s), i));
}
} else if (s->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
_subtitle_streams.push_back (FFmpegSubtitleStream (stream_name (s), i));
}
diff --git
a/src/lib/film.h
b/src/lib/film.h
index cfc55c0aca7c7ed70285320191081e29938e03ea..03d472cee3e85a609ecea48f318787896d356674 100644
(file)
--- a/
src/lib/film.h
+++ b/
src/lib/film.h
@@
-154,7
+154,6
@@
public:
J2K_BANDWIDTH,
DCI_METADATA,
DCP_VIDEO_FRAME_RATE,
J2K_BANDWIDTH,
DCI_METADATA,
DCP_VIDEO_FRAME_RATE,
- AUDIO_MAPPING
};
};
@@
-322,7
+321,6
@@
private:
void read_metadata ();
void playlist_changed ();
void playlist_content_changed (boost::weak_ptr<Content>, int);
void read_metadata ();
void playlist_changed ();
void playlist_content_changed (boost::weak_ptr<Content>, int);
- void setup_default_audio_mapping ();
std::string filename_safe_name () const;
/** Log to write to */
std::string filename_safe_name () const;
/** Log to write to */
diff --git
a/src/lib/sndfile_content.cc
b/src/lib/sndfile_content.cc
index 210ca15779980d6970d79eebf61d801ca973cdb7..963abb58e0f63d3dc12e4f91859cc296a5b5f63f 100644
(file)
--- a/
src/lib/sndfile_content.cc
+++ b/
src/lib/sndfile_content.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-48,6
+50,7
@@
SndfileContent::SndfileContent (shared_ptr<const cxml::Node> node)
_audio_channels = node->number_child<int> ("AudioChannels");
_audio_length = node->number_child<ContentAudioFrame> ("AudioLength");
_audio_frame_rate = node->number_child<int> ("AudioFrameRate");
_audio_channels = node->number_child<int> ("AudioChannels");
_audio_length = node->number_child<ContentAudioFrame> ("AudioLength");
_audio_frame_rate = node->number_child<int> ("AudioFrameRate");
+ _mapping = AudioMapping (node->node_child ("Mapping"));
}
string
}
string
@@
-103,6
+106,7
@@
SndfileContent::examine (shared_ptr<Film> film, shared_ptr<Job> job, bool quick)
_audio_channels = dec.audio_channels ();
_audio_length = dec.audio_length ();
_audio_frame_rate = dec.audio_frame_rate ();
_audio_channels = dec.audio_channels ();
_audio_length = dec.audio_length ();
_audio_frame_rate = dec.audio_frame_rate ();
+ _mapping = AudioMapping (_audio_channels);
}
signal_changed (AudioContentProperty::AUDIO_CHANNELS);
}
signal_changed (AudioContentProperty::AUDIO_CHANNELS);
@@
-118,6
+122,7
@@
SndfileContent::as_xml (xmlpp::Node* node) const
node->add_child("AudioChannels")->add_child_text (lexical_cast<string> (_audio_channels));
node->add_child("AudioLength")->add_child_text (lexical_cast<string> (_audio_length));
node->add_child("AudioFrameRate")->add_child_text (lexical_cast<string> (_audio_frame_rate));
node->add_child("AudioChannels")->add_child_text (lexical_cast<string> (_audio_channels));
node->add_child("AudioLength")->add_child_text (lexical_cast<string> (_audio_length));
node->add_child("AudioFrameRate")->add_child_text (lexical_cast<string> (_audio_frame_rate));
+ _mapping.as_xml (node->add_child("Mapping"));
}
int
}
int
diff --git
a/src/lib/sndfile_content.h
b/src/lib/sndfile_content.h
index 0623aa6f054748f9f56cada8573b736a7ce30e79..e0d66b9928e7de8ec21e6b8b71158afe3b6f5d79 100644
(file)
--- a/
src/lib/sndfile_content.h
+++ b/
src/lib/sndfile_content.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-61,10
+63,16
@@
public:
int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
int output_audio_frame_rate (boost::shared_ptr<const Film>) const;
+ AudioMapping audio_mapping () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _mapping;
+ }
+
static bool valid_file (boost::filesystem::path);
private:
int _audio_channels;
ContentAudioFrame _audio_length;
int _audio_frame_rate;
static bool valid_file (boost::filesystem::path);
private:
int _audio_channels;
ContentAudioFrame _audio_length;
int _audio_frame_rate;
+ AudioMapping _mapping;
};
};
diff --git
a/src/wx/audio_mapping_view.cc
b/src/wx/audio_mapping_view.cc
index 10157eb2c6460e6fea4177f15c57471c3c323173..8d049e05f7de38e4511d493e66b4d24d2ea76098 100644
(file)
--- a/
src/wx/audio_mapping_view.cc
+++ b/
src/wx/audio_mapping_view.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
diff --git
a/src/wx/audio_mapping_view.h
b/src/wx/audio_mapping_view.h
index 36429412f5ef4309dfbf8798e2704e85fa554724..9385f492db61aa134669c0a4ba6cee7746da1bf6 100644
(file)
--- a/
src/wx/audio_mapping_view.h
+++ b/
src/wx/audio_mapping_view.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-20,6
+22,7
@@
#include <boost/signals2.hpp>
#include <wx/wx.h>
#include <wx/grid.h>
#include <boost/signals2.hpp>
#include <wx/wx.h>
#include <wx/grid.h>
+#include "lib/audio_mapping.h"
class AudioMappingView : public wxPanel
{
class AudioMappingView : public wxPanel
{
diff --git
a/src/wx/ffmpeg_content_dialog.cc
b/src/wx/ffmpeg_content_dialog.cc
index 0949d02a6c7e38cb196e28a97dab60671615bca9..762ec377464f6a0e8e8e068ed8636ed187f5b6c2 100644
(file)
--- a/
src/wx/ffmpeg_content_dialog.cc
+++ b/
src/wx/ffmpeg_content_dialog.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-21,6
+23,7
@@
#include "lib/ffmpeg_content.h"
#include "ffmpeg_content_dialog.h"
#include "wx_util.h"
#include "lib/ffmpeg_content.h"
#include "ffmpeg_content_dialog.h"
#include "wx_util.h"
+#include "audio_mapping_view.h"
using std::vector;
using std::string;
using std::vector;
using std::string;
@@
-44,6
+47,10
@@
FFmpegContentDialog::FFmpegContentDialog (wxWindow* parent, shared_ptr<FFmpegCon
grid->Add (_subtitle_stream, 1, wxEXPAND | wxALL, 6);
grid->AddSpacer (0);
grid->Add (_subtitle_stream, 1, wxEXPAND | wxALL, 6);
grid->AddSpacer (0);
+ _audio_mapping = new AudioMappingView (this);
+ grid->Add (_audio_mapping, 1, wxEXPAND | wxALL, 6);
+ grid->AddSpacer (0);
+
_audio_stream->Clear ();
vector<FFmpegAudioStream> a = content->audio_streams ();
for (vector<FFmpegAudioStream>::iterator i = a.begin(); i != a.end(); ++i) {
_audio_stream->Clear ();
vector<FFmpegAudioStream> a = content->audio_streams ();
for (vector<FFmpegAudioStream>::iterator i = a.begin(); i != a.end(); ++i) {
@@
-69,6
+76,8
@@
FFmpegContentDialog::FFmpegContentDialog (wxWindow* parent, shared_ptr<FFmpegCon
_subtitle_stream->SetSelection (wxNOT_FOUND);
}
_subtitle_stream->SetSelection (wxNOT_FOUND);
}
+ _audio_mapping->set_mapping (content->audio_mapping ());
+
wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
overall_sizer->Add (grid, 1, wxEXPAND | wxALL, 6);
wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
overall_sizer->Add (grid, 1, wxEXPAND | wxALL, 6);
diff --git
a/src/wx/ffmpeg_content_dialog.h
b/src/wx/ffmpeg_content_dialog.h
index 5251ad5da8a51093d5e5cad12a24826716e1abea..a04645f6947b5e054804bec7331e91574d86b51e 100644
(file)
--- a/
src/wx/ffmpeg_content_dialog.h
+++ b/
src/wx/ffmpeg_content_dialog.h
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@
-23,6
+25,7
@@
class wxSpinCtrl;
class FFmpegContent;
class wxSpinCtrl;
class FFmpegContent;
+class AudioMappingView;
class FFmpegContentDialog : public wxDialog
{
class FFmpegContentDialog : public wxDialog
{
@@
-37,4
+40,5
@@
private:
wxChoice* _audio_stream;
wxStaticText* _audio_description;
wxChoice* _subtitle_stream;
wxChoice* _audio_stream;
wxStaticText* _audio_description;
wxChoice* _subtitle_stream;
+ AudioMappingView* _audio_mapping;
};
};
diff --git
a/src/wx/film_editor.cc
b/src/wx/film_editor.cc
index 73c52945b8f69af8c70b689a0a5984633cbb146f..d96d146f982a7b3fa99fd4e504d52c035b4154b1 100644
(file)
--- a/
src/wx/film_editor.cc
+++ b/
src/wx/film_editor.cc
@@
-53,7
+53,6
@@
#include "audio_dialog.h"
#include "imagemagick_content_dialog.h"
#include "ffmpeg_content_dialog.h"
#include "audio_dialog.h"
#include "imagemagick_content_dialog.h"
#include "ffmpeg_content_dialog.h"
-#include "audio_mapping_view.h"
#include "timeline_dialog.h"
using std::string;
#include "timeline_dialog.h"
using std::string;
@@
-401,9
+400,6
@@
FilmEditor::make_audio_panel ()
grid->Add (s);
}
grid->Add (s);
}
- _audio_mapping = new AudioMappingView (_audio_panel);
- _audio_sizer->Add (_audio_mapping, 1, wxEXPAND | wxALL, 6);
-
_audio_gain->SetRange (-60, 60);
_audio_delay->SetRange (-1000, 1000);
}
_audio_gain->SetRange (-60, 60);
_audio_delay->SetRange (-1000, 1000);
}
@@
-864,7
+860,6
@@
FilmEditor::set_film (shared_ptr<Film> f)
film_changed (Film::J2K_BANDWIDTH);
film_changed (Film::DCI_METADATA);
film_changed (Film::DCP_VIDEO_FRAME_RATE);
film_changed (Film::J2K_BANDWIDTH);
film_changed (Film::DCI_METADATA);
film_changed (Film::DCP_VIDEO_FRAME_RATE);
- film_changed (Film::AUDIO_MAPPING);
film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAMS);
film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAM);
film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAMS);
film_content_changed (boost::shared_ptr<Content> (), FFmpegContentProperty::SUBTITLE_STREAM);
diff --git
a/src/wx/film_editor.h
b/src/wx/film_editor.h
index c791ad064ef411b4e32c94f4ca2fde065b93ccc0..4bdba9979b1f53d3f0032cd04359547b1f5acf5a 100644
(file)
--- a/
src/wx/film_editor.h
+++ b/
src/wx/film_editor.h
@@
-33,7
+33,6
@@
class wxListCtrl;
class wxListEvent;
class Film;
class AudioDialog;
class wxListEvent;
class Film;
class AudioDialog;
-class AudioMappingView;
class TimelineDialog;
/** @class FilmEditor
class TimelineDialog;
/** @class FilmEditor
@@
-159,7
+158,6
@@
private:
wxButton* _audio_gain_calculate_button;
wxButton* _show_audio;
wxSpinCtrl* _audio_delay;
wxButton* _audio_gain_calculate_button;
wxButton* _show_audio;
wxSpinCtrl* _audio_delay;
- AudioMappingView* _audio_mapping;
wxCheckBox* _with_subtitles;
wxSpinCtrl* _subtitle_offset;
wxSpinCtrl* _subtitle_scale;
wxCheckBox* _with_subtitles;
wxSpinCtrl* _subtitle_offset;
wxSpinCtrl* _subtitle_scale;
diff --git
a/src/wx/properties_dialog.cc
b/src/wx/properties_dialog.cc
index 40527ded712b038c25d4c3b3ff13e329400504fb..1e0641ac4330d5ec576aa33c9135db7906977e10 100644
(file)
--- a/
src/wx/properties_dialog.cc
+++ b/
src/wx/properties_dialog.cc
@@
-1,3
+1,5
@@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
/*
Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
/*
Copyright (C) 2012 Carl Hetherington <cth@carlh.net>