+2013-06-13 Carl Hetherington <cth@carlh.net>
+
+ * Fix ffmpeg's pixel format 13.
+
+2013-06-13 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.99 released.
+
+2013-06-09 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.98 released.
+
+2013-06-07 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.97 released.
+
+2013-06-07 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.96 released.
+
2013-06-05 Carl Hetherington <cth@carlh.net>
* Version 0.95 released.
cmd = './waf configure --prefix=%s' % env.work_dir_cscript()
if target.platform == 'windows':
cmd += ' --target-windows'
- else:
+ elif target.platform == 'linux':
cmd += ' --static'
env.command(cmd)
#!/bin/bash
-iconutil --convert icns --output dvdomatic.icns dvdomatic.iconset/
+iconutil --convert icns --output dcpomatic.icns dcpomatic.iconset/
+++ /dev/null
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Exec=@PREFIX@/bin/dvdomatic
-Name=DVD-o-matic
-Icon=dvdomatic
-Comment=DCP generator
-Categories=AudioVideo;Video
+++ /dev/null
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Exec=@PREFIX@/bin/dvdomatic_batch
-Name=DVD-o-matic Batch Converter
-Icon=dvdomatic
-Comment=Batch DCP generator
-Categories=AudioVideo;Video
+++ /dev/null
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Exec=@PREFIX@/bin/servomatic_gui
-Name=DVD-o-matic Encode Server
-Icon=dvdomatic
-Comment=DCP generator
-Categories=AudioVideo;Video
d = { 'PREFIX' : '${PREFIX' }
obj = bld(features = 'subst')
- obj.source = 'dvdomatic.desktop.in'
- obj.target = 'dvdomatic.desktop'
+ obj.source = 'dcpomatic.desktop.in'
+ obj.target = 'dcpomatic.desktop'
obj.dict = d
obj = bld(features = 'subst')
- obj.source = 'dvdomatic_batch.desktop.in'
- obj.target = 'dvdomatic_batch.desktop'
+ obj.source = 'dcpomatic_batch.desktop.in'
+ obj.target = 'dcpomatic_batch.desktop'
obj.dict = d
obj = bld(features = 'subst')
- obj.source = 'servomatic.desktop.in'
- obj.target = 'servomatic.desktop'
+ obj.source = 'dcpomatic_server.desktop.in'
+ obj.target = 'dcpomatic_server.desktop'
obj.dict = d
- bld.install_files('${PREFIX}/share/applications', ['dvdomatic.desktop', 'dvdomatic_batch.desktop', 'servomatic.desktop'])
+ bld.install_files('${PREFIX}/share/applications', ['dcpomatic.desktop', 'dcpomatic_batch.desktop', 'dcpomatic_server.desktop'])
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
- <string>dvdomatic</string>
+ <string>dcpomatic</string>
<key>CFBundleGetInfoString</key>
<string>DCP generator</string>
<key>CFBundleIconFile</key>
- <string>DVD-o-matic.icns</string>
+ <string>DCP-o-matic.icns</string>
<key>CFBundleIdentifier</key>
- <string>net.carlh.dvdomatic</string>
+ <string>net.carlh.dcpomatic</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
- <string>DVD-o-matic</string>
+ <string>DCP-o-matic</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersions</key>
mkdir -p $WORK/$libs
mkdir -p $WORK/$resources
-cp build/src/tools/dvdomatic $WORK/$macos/
-cp build/src/lib/libdvdomatic.dylib $WORK/$libs/
-cp build/src/wx/libdvdomatic-wx.dylib $WORK/$libs/
+cp build/src/tools/dcpomatic $WORK/$macos/
+cp build/src/lib/libdcpomatic.dylib $WORK/$libs/
+cp build/src/wx/libdcpomatic-wx.dylib $WORK/$libs/
cp $DEPS/lib/libdcp.dylib $WORK/$libs/
cp $DEPS/lib/libasdcp-libdcp.dylib $WORK/$libs/
cp $DEPS/lib/libkumu-libdcp.dylib $WORK/$libs/
cp $ENV/lib/libfreetype*.dylib $WORK/$libs/
cp $ENV/lib/libexpat*.dylib $WORK/$libs/
-for obj in $WORK/$macos/dvdomatic $WORK/$libs/*.dylib; do
+for obj in $WORK/$macos/dcpomatic $WORK/$libs/*.dylib; do
deps=`otool -L $obj | awk '{print $1}' | egrep "(/Users/carl|libboost|libssh)"`
changes=""
for dep in $deps; do
fi
done
-
+pwd
cp build/platform/osx/Info.plist $WORK/$approot
-cp icons/dvdomatic.icns $WORK/$resources/DVD-o-matic.icns
+cp icons/dcpomatic.icns $WORK/$resources/DVD-o-matic.icns
-tmp_dmg=$WORK/dvdomatic_tmp.dmg
-dmg="$WORK/DVD-o-matic $version.dmg"
-vol_name=DVD-o-matic-$version
+tmp_dmg=$WORK/dcpomatic_tmp.dmg
+dmg="$WORK/DCP-o-matic $version.dmg"
+vol_name=DCP-o-matic-$version
mkdir -p $WORK/$vol_name
set current view of container window to icon view
set toolbar visible of container window to false
set statusbar visible of container window to false
- set the bounds of container window to {400, 200, 800, 440}
+ set the bounds of container window to {400, 200, 790, 410}
set theViewOptions to the icon view options of container window
set arrangement of theViewOptions to not arranged
set icon size of theViewOptions to 64
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
- set position of item "DVD-o-matic.app" of container window to {90, 100}
- set position of item "Applications" of container window to {310, 100}
+ set position of item "DCP-o-matic.app" of container window to {90, 80}
+ set position of item "Applications" of container window to {310, 80}
close
open
update without registering applications
umount $device
hdiutil eject $device
hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg"
-sips -i $WORK/$resources/DVD-o-matic.icns
-DeRez -only icns $WORK/$resources/DVD-o-matic.icns > $WORK/$resources/DVD-o-matic.rsrc
-Rez -append $WORK/$resources/DVD-o-matic.rsrc -o "$dmg"
+sips -i $WORK/$resources/DCP-o-matic.icns
+DeRez -only icns $WORK/$resources/DCP-o-matic.icns > $WORK/$resources/DCP-o-matic.rsrc
+Rez -append $WORK/$resources/DCP-o-matic.rsrc -o "$dmg"
SetFile -a C "$dmg"
File "%binaries%/src/lib/dcpomatic.dll"
File "%binaries%/src/tools/dcpomatic.exe"
File "%binaries%/src/tools/dcpomatic_batch.exe"
+File "%binaries%/src/tools/dcpomatic_cli.exe"
File "%binaries%/src/tools/dcpomatic_server_cli.exe"
File "%binaries%/src/tools/dcpomatic_server.exe"
RMDir /r "$INSTDIR\*.*"
RMDir "$INSTDIR"
+<<<<<<< HEAD
Delete "$DESKTOP\DCP-o-matic.lnk"
Delete "$DESKTOP\DCP-o-matic batch converter.lnk"
Delete "$DESKTOP\DCP-o-matic encode server.lnk"
RmDir "$SMPROGRAMS\DCP-o-matic"
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\DCP-o-matic"
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic"
+=======
+Delete "$DESKTOP\DVD-o-matic.lnk"
+Delete "$DESKTOP\DVD-o-matic batch converter.lnk"
+Delete "$DESKTOP\DVD-o-matic encode server.lnk"
+Delete "$SMPROGRAMS\DVD-o-matic\*.*"
+RmDir "$SMPROGRAMS\DVD-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\DVD-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic"
+>>>>>>> master
SectionEnd
File "%binaries%/src/lib/dcpomatic.dll"
File "%binaries%/src/tools/dcpomatic.exe"
File "%binaries%/src/tools/dcpomatic_batch.exe"
+File "%binaries%/src/tools/dcpomatic_cli.exe"
File "%binaries%/src/tools/dcpomatic_server_cli.exe"
File "%binaries%/src/tools/dcpomatic_server.exe"
+++ /dev/null
-#!/bin/bash
-
-export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:build/src/lib:build/src:/Users/carl/Environments/osx/10.8/lib
-if [ "$1" == "--debug" ]; then
- shift
- gdb --args build/src/tools/dvdomatic "$*"
-elif [ "$1" == "--valgrind" ]; then
- shift
- valgrind --tool="memcheck" build/src/tools/dvdomatic $*
-elif [ "$1" == "--i18n" ]; then
- shift
- LANGUAGE=fr_FR.UTF8 LANG=fr_FR.UTF8 build/src/tools/dvdomatic "$*"
-else
- build/src/tools/dvdomatic "$*"
-fi
+++ /dev/null
-#!/bin/bash
-
-export LD_LIBRARY_PATH=build/src/lib:build/src/wx:build/src/asdcplib/src:$LD_LIBRARY_PATH
-if [ "$1" == "--debug" ]; then
- shift
- gdb --args build/src/tools/dvdomatic_batch "$*"
-elif [ "$1" == "--valgrind" ]; then
- shift
- valgrind --tool="memcheck" build/src/tools/dvdomatic_batch $*
-elif [ "$1" == "--i18n" ]; then
- shift
- LANGUAGE=fr_FR.UTF8 LANG=fr_FR.UTF8 build/src/tools/dvdomatic_batch "$*"
-else
- build/src/tools/dvdomatic_batch
-fi
#include "film.h"
#include "ab_transcoder.h"
#include "config.h"
+#include "log.h"
#include "i18n.h"
*/
+#include <fstream>
+#include <boost/algorithm/string.hpp>
#include "cross.h"
#ifdef DCPOMATIC_POSIX
#include <unistd.h>
#ifdef DCPOMATIC_WINDOWS
#include "windows.h"
#endif
+#ifdef DCPOMATIC_OSX
+#include <sys/sysctl.h>
+#endif
+
+using std::pair;
+using std::ifstream;
+using std::string;
void
dcpomatic_sleep (int s)
Sleep (s * 1000);
#endif
}
+
+/** @return A pair containing CPU model name and the number of processors */
+pair<string, int>
+cpu_info ()
+{
+ pair<string, int> info;
+ info.second = 0;
+
+#ifdef DCPOMATIC_LINUX
+ ifstream f ("/proc/cpuinfo");
+ while (f.good ()) {
+ string l;
+ getline (f, l);
+ if (boost::algorithm::starts_with (l, "model name")) {
+ string::size_type const c = l.find (':');
+ if (c != string::npos) {
+ info.first = l.substr (c + 2);
+ }
+ } else if (boost::algorithm::starts_with (l, "processor")) {
+ ++info.second;
+ }
+ }
+#endif
+
+#ifdef DCPOMATIC_OSX
+ size_t N = sizeof (info.second);
+ sysctlbyname ("hw.ncpu", &info.second, &N, 0, 0);
+ char buffer[64];
+ N = sizeof (buffer);
+ if (sysctlbyname ("machdep.cpu.brand_string", buffer, &N, 0, 0) == 0) {
+ info.first = buffer;
+ }
+#endif
+
+ return info;
+}
+
#endif
void dcpomatic_sleep (int);
+extern std::pair<std::string, int> cpu_info ();
#include "sndfile_content.h"
#include "dcp_content_type.h"
#include "ratio.h"
+#include "cross.h"
#include "i18n.h"
Image::make_black ()
{
/* U/V black value for 8-bit colour */
- static uint8_t const eight_bit_uv = (1 << 7) - 1;
+ static uint8_t const eight_bit_uv = (1 << 7) - 1;
/* U/V black value for 9-bit colour */
- static uint16_t const nine_bit_uv = (1 << 8) - 1;
+ static uint16_t const nine_bit_uv = (1 << 8) - 1;
/* U/V black value for 10-bit colour */
- static uint16_t const ten_bit_uv = (1 << 9) - 1;
+ static uint16_t const ten_bit_uv = (1 << 9) - 1;
/* U/V black value for 16-bit colour */
static uint16_t const sixteen_bit_uv = (1 << 15) - 1;
memset (data()[2], eight_bit_uv, lines(2) * stride()[2]);
break;
+ case PIX_FMT_YUVJ420P:
+ case PIX_FMT_YUVJ422P:
+ case PIX_FMT_YUVJ444P:
+ memset (data()[0], 0, lines(0) * stride()[0]);
+ memset (data()[1], eight_bit_uv + 1, lines(1) * stride()[1]);
+ memset (data()[2], eight_bit_uv + 1, lines(2) * stride()[2]);
+ break;
+
case PIX_FMT_YUV422P9LE:
case PIX_FMT_YUV444P9LE:
yuv_16_black (nine_bit_uv);
*/
-#ifndef DVDOMATIC_IMAGEMAGICK_CONTENT_H
-#define DVDOMATIC_IMAGEMAGICK_CONTENT_H
+#ifndef DCPOMATIC_IMAGEMAGICK_CONTENT_H
+#define DCPOMATIC_IMAGEMAGICK_CONTENT_H
#include <boost/enable_shared_from_this.hpp>
#include "video_content.h"
*/
+#include <stdint.h>
#include "player.h"
#include "film.h"
#include "ffmpeg_decoder.h"
#include "sound_processor.h"
#include "config.h"
#include "ratio.h"
-#ifdef DVDOMATIC_WINDOWS
+#ifdef DCPOMATIC_WINDOWS
#include "stack.hpp"
#endif
return t.tv_sec + (double (t.tv_usec) / 1e6);
}
-#ifdef DVDOMATIC_WINDOWS
+#ifdef DCPOMATIC_WINDOWS
LONG WINAPI exception_handler(struct _EXCEPTION_POINTERS *)
{
dbg::stack s;
void
dcpomatic_setup ()
{
-#ifdef DVDOMATIC_WINDOWS
+#ifdef DCPOMATIC_WINDOWS
backtrace_file /= g_get_user_config_dir ();
backtrace_file /= "backtrace.txt";
SetUnhandledExceptionFilter(exception_handler);
return ((int64_t) v * audio_sample_rate / frames_per_second);
}
-/** @return A pair containing CPU model name and the number of processors */
-pair<string, int>
-cpu_info ()
-{
- pair<string, int> info;
- info.second = 0;
-
-#ifdef DCPOMATIC_POSIX
- ifstream f (N_("/proc/cpuinfo"));
- while (f.good ()) {
- string l;
- getline (f, l);
- if (boost::algorithm::starts_with (l, N_("model name"))) {
- string::size_type const c = l.find (':');
- if (c != string::npos) {
- info.first = l.substr (c + 2);
- }
- } else if (boost::algorithm::starts_with (l, N_("processor"))) {
- ++info.second;
- }
- }
-#endif
-
- return info;
-}
-
string
audio_channel_name (int c)
{
};
extern int64_t video_frames_to_audio_frames (ContentVideoFrame v, float audio_sample_rate, float frames_per_second);
-extern std::pair<std::string, int> cpu_info ();
class LocaleGuard
{
#ifdef __WXOSX__
#include <ApplicationServices/ApplicationServices.h>
#endif
-#include <wx/aboutdlg.h>
+#include <wx/generic/aboutdlgg.h>
#include <wx/stdpaths.h>
#include <wx/cmdline.h>
#include "wx/film_viewer.h"
#include "wx/new_film_dialog.h"
#include "wx/properties_dialog.h"
#include "wx/wx_ui_signaller.h"
+#include "wx/about_dialog.h"
#include "lib/film.h"
#include "lib/config.h"
#include "lib/util.h"
wxMenu* help = new wxMenu;
#ifdef __WXOSX__
- add_item (help, _("About DVD-o-matic"), wxID_ABOUT, ALWAYS);
+ add_item (help, _("About DCP-o-matic"), wxID_ABOUT, ALWAYS);
#else
add_item (help, _("About"), wxID_ABOUT, ALWAYS);
#endif
void help_about (wxCommandEvent &)
{
- wxAboutDialogInfo info;
- info.SetName (_("DCP-o-matic"));
- if (strcmp (dcpomatic_git_commit, "release") == 0) {
- info.SetVersion (std_to_wx (String::compose ("version %1", dcpomatic_version)));
- } else {
- info.SetVersion (std_to_wx (String::compose ("version %1 git %2", dcpomatic_version, dcpomatic_git_commit)));
- }
- info.SetDescription (_("Free, open-source DCP generation from almost anything."));
- info.SetCopyright (_("(C) 2012-2013 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"));
-
- wxArrayString authors;
- authors.Add (wxT ("Carl Hetherington"));
- authors.Add (wxT ("Terrence Meiczinger"));
- authors.Add (wxT ("Paul Davis"));
- authors.Add (wxT ("Ole Laursen"));
- info.SetDevelopers (authors);
-
- wxArrayString translators;
- translators.Add (wxT ("Olivier Perriere"));
- translators.Add (wxT ("Lilian Lefranc"));
- translators.Add (wxT ("Thierry Journet"));
- translators.Add (wxT ("Massimiliano Broggi"));
- translators.Add (wxT ("Manuel AC"));
- translators.Add (wxT ("Adam Klotblixt"));
- info.SetTranslators (translators);
-
- info.SetWebSite (wxT ("http://carlh.net/software/dcpomatic"));
- wxAboutBox (info);
+ AboutDialog* d = new AboutDialog (this);
+ d->ShowModal ();
+ d->Destroy ();
}
};
return false;
}
-#ifdef DCPOMATIC_POSIX
+#ifdef DCPOMATIC_LINUX
unsetenv ("UBUNTU_MENUPROXY");
#endif
return false;
}
-#ifdef DCPOMATIC_POSIX
+#ifdef DCPOMATIC_LINUX
unsetenv ("UBUNTU_MENUPROXY");
#endif
msgid "Film changed"
msgstr "PelĂcula cambiada"
-#: src/tools/dcpomatic.cc:416
-#: src/tools/dvdomatic.cc:288 src/tools/dvdomatic.cc:419
-#: src/tools/dvdomatic.cc:506
-msgid "DCP-o-matic"
-msgstr "DCP-o-matic"
-
#: src/tools/dvdomatic.cc:425
msgid "Free, open-source DCP generation from almost anything."
msgstr ""
--- /dev/null
+/*
+ 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 <wx/notebook.h>
+#include <wx/hyperlink.h>
+#include "lib/version.h"
+#include "lib/compose.hpp"
+#include "about_dialog.h"
+#include "wx_util.h"
+
+using std::vector;
+
+AboutDialog::AboutDialog (wxWindow* parent)
+ : wxDialog (parent, wxID_ANY, _("About DCP-o-matic"))
+{
+ wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL);
+
+ wxFont title_font (*wxNORMAL_FONT);
+ title_font.SetPointSize (title_font.GetPointSize() + 4);
+ title_font.SetWeight (wxFONTWEIGHT_BOLD);
+
+ wxFont version_font (*wxNORMAL_FONT);
+ version_font.SetWeight (wxFONTWEIGHT_BOLD);
+
+ wxStaticText* t = new wxStaticText (this, wxID_ANY, _("DCP-o-matic"));
+ t->SetFont (title_font);
+ sizer->Add (t, wxSizerFlags().Centre().Border());
+
+ wxString s;
+ if (strcmp (dcpomatic_git_commit, "release") == 0) {
+ t = new wxStaticText (this, wxID_ANY, std_to_wx (String::compose ("Version %1", dcpomatic_version)));
+ } else {
+ t = new wxStaticText (this, wxID_ANY, std_to_wx (String::compose ("Version %1 git %2", dcpomatic_version, dcpomatic_git_commit)));
+ }
+ t->SetFont (version_font);
+ sizer->Add (t, wxSizerFlags().Centre().Border());
+ sizer->AddSpacer (12);
+
+ t = new wxStaticText (
+ this, wxID_ANY,
+ _("Free, open-source DCP generation from almost anything."),
+ wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER
+ );
+
+ sizer->Add (t, wxSizerFlags().Centre().Border());
+
+ wxHyperlinkCtrl* h = new wxHyperlinkCtrl (
+ this, wxID_ANY,
+ wxT ("www.carlh.net/software/dcpomatic"),
+ wxT ("http://www.carlh.net/software/dcpomatic")
+ );
+
+ sizer->Add (h, wxSizerFlags().Centre().Border());
+
+ t = new wxStaticText (
+ this, wxID_ANY,
+ _("(C) 2012-2013 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"),
+ wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER
+ );
+
+ sizer->Add (t, wxSizerFlags().Centre().Border());
+
+ _notebook = new wxNotebook (this, wxID_ANY);
+
+ wxArrayString written_by;
+ written_by.Add (wxT ("Carl Hetherington"));
+ written_by.Add (wxT ("Terrence Meiczinger"));
+ written_by.Add (wxT ("Paul Davis"));
+ written_by.Add (wxT ("Ole Laursen"));
+ add_section (_("Written by"), written_by);
+
+ wxArrayString translated_by;
+ translated_by.Add (wxT ("Olivier Perriere"));
+ translated_by.Add (wxT ("Lilian Lefranc"));
+ translated_by.Add (wxT ("Thierry Journet"));
+ translated_by.Add (wxT ("Massimiliano Broggi"));
+ translated_by.Add (wxT ("Manuel AC"));
+ translated_by.Add (wxT ("Adam Klotblixt"));
+ add_section (_("Translated by"), translated_by);
+
+ wxArrayString supported_by;
+ supported_by.Add (wxT ("Carsten Kurz"));
+ supported_by.Add (wxT ("Wolfgang Woehl"));
+ supported_by.Add (wxT ("Manual AC"));
+ supported_by.Add (wxT ("Theo Lipfert"));
+ supported_by.Add (wxT ("Olivier Lemaire"));
+ supported_by.Add (wxT ("Andrä Steiner"));
+ supported_by.Add (wxT ("Jonathan Jensen"));
+ supported_by.Add (wxT ("Kjarten Michaelsen"));
+ supported_by.Add (wxT ("Jussi Siponen"));
+ supported_by.Add (wxT ("Cinema Clarici"));
+ supported_by.Add (wxT ("Evan Freeze"));
+ supported_by.Add (wxT ("Flor Guillaume"));
+ supported_by.Add (wxT ("Adam Klotblixt "));
+ supported_by.Add (wxT ("Lilian Lefranc"));
+ supported_by.Add (wxT ("Gavin Lewarne"));
+ supported_by.Add (wxT ("Lasse Salling"));
+ supported_by.Add (wxT ("Andres Fink"));
+ supported_by.Add (wxT ("Kieran Carroll"));
+ add_section (_("Supported by"), supported_by);
+
+ sizer->Add (_notebook, wxSizerFlags().Centre().Border().Expand());
+
+ SetSizerAndFit (sizer);
+}
+
+void
+AboutDialog::add_section (wxString name, wxArrayString credits)
+{
+ static bool first = true;
+ int const N = 3;
+
+ wxPanel* panel = new wxPanel (_notebook, wxID_ANY);
+ wxSizer* overall_sizer = new wxBoxSizer (wxHORIZONTAL);
+
+ vector<wxSizer*> sizers;
+
+ for (int i = 0; i < N; ++i) {
+ sizers.push_back (new wxBoxSizer (wxVERTICAL));
+ overall_sizer->Add (sizers.back (), 1, wxEXPAND | wxALL, 6);
+ }
+
+ int c = 0;
+ for (size_t i = 0; i < credits.Count(); ++i) {
+ add_label_to_sizer (sizers[c], panel, credits[i]);
+ ++c;
+ if (c == N) {
+ c = 0;
+ }
+ }
+
+ panel->SetSizerAndFit (overall_sizer);
+ _notebook->AddPage (panel, name, first);
+ first = false;
+}
--- /dev/null
+/*
+ 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 <wx/wx.h>
+
+class wxNotebook;
+
+class AboutDialog : public wxDialog
+{
+public:
+ AboutDialog (wxWindow *);
+
+private:
+ void add_section (wxString, wxArrayString);
+
+ wxNotebook* _notebook;
+};
+
msgid "%"
msgstr "%"
-msgid "(restart DCP-o-matic to see language changes)"
-
#: src/wx/film_editor.cc:1276
msgid "1 channel"
msgstr "1 canal"
import i18n
sources = """
+ about_dialog.cc
audio_dialog.cc
audio_mapping_view.cc
audio_plot.cc
pix_fmts.push_back (AV_PIX_FMT_YUV444P10LE);
pix_fmts.push_back (AV_PIX_FMT_YUV444P10BE);
pix_fmts.push_back (AV_PIX_FMT_UYVY422);
+ pix_fmts.push_back (AV_PIX_FMT_YUVJ420P);
+ pix_fmts.push_back (AV_PIX_FMT_YUVJ422P);
+ pix_fmts.push_back (AV_PIX_FMT_YUVJ444P);
int N = 0;
for (list<AVPixelFormat>::const_iterator i = pix_fmts.begin(); i != pix_fmts.end(); ++i) {
for (int y = 0; y < bar->size().height; ++y) {
uint8_t* q = p;
for (int x = 0; x < bar->line_size()[0]; ++x) {
+ if (*q != 0) {
+ std::cerr << "x=" << x << ", (x%3)=" << (x%3) << "\n";
+ }
BOOST_CHECK_EQUAL (*q++, 0);
}
p += bar->stride()[0];
#include "job_test.cc"
#include "client_server_test.cc"
#include "image_test.cc"
+
opt.add_option('--static', action='store_true', default=False, help='build statically, and link statically to libdcp and FFmpeg')
opt.add_option('--magickpp-config', action='store', default='Magick++-config', help='path to Magick++-config')
opt.add_option('--wx-config', action='store', default='wx-config', help='path to wx-config')
- opt.add_option('--osx', action='store_true', default=False, help='build on OS X')
def configure(conf):
conf.load('compiler_cxx')
if conf.options.target_windows:
conf.load('winres')
+ conf.env.TARGET_WINDOWS = conf.options.target_windows
+ conf.env.DISABLE_GUI = conf.options.disable_gui
+ conf.env.STATIC = conf.options.static
+ conf.env.VERSION = VERSION
+ conf.env.TARGET_OSX = sys.platform == 'darwin'
+ conf.env.TARGET_LINUX = not conf.env.TARGET_WINDOWS and not conf.env.TARGET_OSX
+
conf.env.append_value('CXXFLAGS', ['-D__STDC_CONSTANT_MACROS', '-D__STDC_LIMIT_MACROS', '-msse', '-mfpmath=sse', '-ffast-math', '-fno-strict-aliasing',
'-Wall', '-Wno-attributes', '-Wextra'])
- if conf.options.target_windows:
+ if conf.env.TARGET_WINDOWS:
conf.env.append_value('CXXFLAGS', ['-DDCPOMATIC_WINDOWS', '-DWIN32_LEAN_AND_MEAN', '-DBOOST_USE_WINDOWS_H', '-DUNICODE'])
wxrc = os.popen('wx-config --rescomp').read().split()[1:]
conf.env.append_value('WINRCFLAGS', wxrc)
boost_lib_suffix = ''
boost_thread = 'boost_thread'
conf.env.append_value('LINKFLAGS', '-pthread')
- # libxml2 seems to be linked against this on Ubuntu, but it doesn't mention it in its .pc file
+
+ if conf.env.TARGET_LINUX:
+ # libxml2 seems to be linked against this on Ubuntu but it doesn't mention it in its .pc file
conf.env.append_value('LIB', 'lzma')
+ conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_LINUX')
- conf.env.TARGET_WINDOWS = conf.options.target_windows
- conf.env.DISABLE_GUI = conf.options.disable_gui
- conf.env.STATIC = conf.options.static
- conf.env.VERSION = VERSION
- conf.env.TARGET_OSX = conf.options.osx
- conf.env.TARGET_LINUX = not conf.options.target_windows and not conf.options.osx
+ if conf.env.TARGET_OSX:
+ conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_OSX')
if conf.options.enable_debug:
conf.env.append_value('CXXFLAGS', ['-g', '-DDCPOMATIC_DEBUG'])
conf.check_cfg(package = 'sndfile', args = '--cflags --libs', uselib_store = 'SNDFILE', mandatory = True)
conf.check_cfg(package = 'glib-2.0', args = '--cflags --libs', uselib_store = 'GLIB', mandatory = True)
- if conf.options.target_windows is False:
- conf.check_cfg(package = 'liblzma', args = '--cflags --libs', uselib_store = 'LZMA', mandatory = True)
+
+ if conf.env.TARGET_LINUX:
+ conf.check_cfg(package='liblzma', args='--cflags --libs', uselib_store='LZMA', mandatory=True)
+
conf.check_cfg(package = '', path = conf.options.magickpp_config, args = '--cppflags --cxxflags --libs', uselib_store = 'MAGICK', mandatory = True)
if conf.options.static: