Merge branch 'master' into PHRAS-2375-port41-preview-pdf-on-pdfjs

This commit is contained in:
Nicolas Maillat
2019-02-13 11:55:19 +01:00
committed by GitHub
10 changed files with 86 additions and 30 deletions

44
AUTHORS
View File

@@ -1,27 +1,39 @@
** Phraseanet is written and maintained by the Phraseanet Developer Team ** ** Phraseanet is written and maintained by the Phraseanet Developer Team **
Benoît Burnichon - Jean-Yves Gaulier
Jean-Yves Gaulier - Milos M
Andrey Kalinovsky - Mike NG
Nicolas Legoff - Xavier Rousset
Romain Neutron - Aina Sitraka
- Filip Vilic
** Proudly Powered by Alchemy ** ** Proudly Powered by Alchemy **
Nicolas Amendola - Aurélie Bachelet
Nathanaël Attar - Laetitia Bianchi
Aurélie Bachelet - Anthony Cabot
Anthony Cabot - Moctar Diouf
Moctar Diouf - Jennifer Guérin
Jennifer Guérin - Félix Noir
Nicolas Honoré - Nicolas Maillat
Nicolas Maillat - Guillaume Maubert
Guillaume Maubert
Jonathan Schneider
** They gave some love to Phraseanet ** ** They gave some love to Phraseanet **
Ysoline Gresille - Nicolas Amendola
- Nathanaël Attar
- Florian Blouet
- Benoît Burnichon
- Thibaud Fabre
- Ysoline Gresille
- Nicolas Honoré
- Andrey Kalinovsky
- Nicolas Legoff
- Romain Neutron
- Jonathan Schneider
Phraseanet c/o Alchemy Phraseanet c/o Alchemy
30 Place Saint Georges 30 Place Saint Georges

View File

@@ -1,3 +1,7 @@
#version 4.0
- Krzysztof Szulski Security
- Ideepix Docker Deploiement
#version 3.7 #version 3.7
- Pieter Demonie (Dutch localization) - Pieter Demonie (Dutch localization)

10
composer.lock generated
View File

@@ -4334,16 +4334,16 @@
}, },
{ {
"name": "media-alchemyst/media-alchemyst", "name": "media-alchemyst/media-alchemyst",
"version": "0.5.1", "version": "0.5.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/alchemy-fr/Media-Alchemyst.git", "url": "https://github.com/alchemy-fr/Media-Alchemyst.git",
"reference": "b82bb891640cb1ce5d5523235047c34c64194514" "reference": "5d2fe6dd95215804202ecf0466fd9cfaeedd0140"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/alchemy-fr/Media-Alchemyst/zipball/b82bb891640cb1ce5d5523235047c34c64194514", "url": "https://api.github.com/repos/alchemy-fr/Media-Alchemyst/zipball/5d2fe6dd95215804202ecf0466fd9cfaeedd0140",
"reference": "b82bb891640cb1ce5d5523235047c34c64194514", "reference": "5d2fe6dd95215804202ecf0466fd9cfaeedd0140",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4404,7 +4404,7 @@
"video", "video",
"video processing" "video processing"
], ],
"time": "2016-03-16T13:11:52+00:00" "time": "2019-01-25T12:09:11+00:00"
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",

View File

@@ -145,6 +145,7 @@ class SubdefsController extends Controller
$options[Audio::OPTION_AUDIOBITRATE] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOBITRATE]; $options[Audio::OPTION_AUDIOBITRATE] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOBITRATE];
$options[Audio::OPTION_AUDIOSAMPLERATE] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOSAMPLERATE]; $options[Audio::OPTION_AUDIOSAMPLERATE] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOSAMPLERATE];
$options[Audio::OPTION_ACODEC] = $config["audio"]["definitions"][$preset][Audio::OPTION_ACODEC]; $options[Audio::OPTION_ACODEC] = $config["audio"]["definitions"][$preset][Audio::OPTION_ACODEC];
$options[Audio::OPTION_AUDIOCHANNEL] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOCHANNEL];
foreach ($config["audio"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { foreach ($config["audio"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) {
$options[Subdef::OPTION_DEVICE][] = $devices; $options[Subdef::OPTION_DEVICE][] = $devices;
} }
@@ -211,7 +212,7 @@ class SubdefsController extends Controller
{ {
$mapping = [ $mapping = [
Type::TYPE_IMAGE => [Subdef::TYPE_IMAGE, Subdef::TYPE_PDF], Type::TYPE_IMAGE => [Subdef::TYPE_IMAGE, Subdef::TYPE_PDF],
Type::TYPE_VIDEO => [Subdef::TYPE_IMAGE, Subdef::TYPE_VIDEO, Subdef::TYPE_ANIMATION], Type::TYPE_VIDEO => [Subdef::TYPE_IMAGE, Subdef::TYPE_VIDEO, Subdef::TYPE_ANIMATION, Subdef::TYPE_AUDIO],
Type::TYPE_AUDIO => [Subdef::TYPE_IMAGE, Subdef::TYPE_AUDIO], Type::TYPE_AUDIO => [Subdef::TYPE_IMAGE, Subdef::TYPE_AUDIO],
Type::TYPE_DOCUMENT => [Subdef::TYPE_IMAGE, Subdef::TYPE_FLEXPAPER, Subdef::TYPE_PDF], Type::TYPE_DOCUMENT => [Subdef::TYPE_IMAGE, Subdef::TYPE_FLEXPAPER, Subdef::TYPE_PDF],
Type::TYPE_FLASH => [Subdef::TYPE_IMAGE] Type::TYPE_FLASH => [Subdef::TYPE_IMAGE]
@@ -525,29 +526,44 @@ class SubdefsController extends Controller
], ],
Subdef::TYPE_AUDIO => [ Subdef::TYPE_AUDIO => [
"definitions" => [ "definitions" => [
"Low AAC 96 kbit/s" => [ "Low MP3 96 kbit/s" => [
Audio::OPTION_AUDIOBITRATE => "100", Audio::OPTION_AUDIOBITRATE => "100",
Audio::OPTION_AUDIOSAMPLERATE => "8000", Audio::OPTION_AUDIOSAMPLERATE => "8000",
Audio::OPTION_ACODEC => "libmp3lame", Audio::OPTION_ACODEC => "libmp3lame",
Subdef::OPTION_DEVICE => ["all"] Subdef::OPTION_DEVICE => ["all"]
], ],
"Normal AAC 128 kbit/s" => [ "Normal MP3 128 kbit/s" => [
Audio::OPTION_AUDIOBITRATE => "180", Audio::OPTION_AUDIOBITRATE => "180",
Audio::OPTION_AUDIOSAMPLERATE => "44100", Audio::OPTION_AUDIOSAMPLERATE => "44100",
Audio::OPTION_ACODEC => "libmp3lame", Audio::OPTION_ACODEC => "libmp3lame",
Subdef::OPTION_DEVICE => ["all"] Subdef::OPTION_DEVICE => ["all"]
], ],
"High AAC 320 kbit/s" => [ "High MP3 320 kbit/s" => [
Audio::OPTION_AUDIOBITRATE => "230", Audio::OPTION_AUDIOBITRATE => "230",
Audio::OPTION_AUDIOSAMPLERATE => "50000", Audio::OPTION_AUDIOSAMPLERATE => "50000",
Audio::OPTION_ACODEC => "libmp3lame", Audio::OPTION_ACODEC => "libmp3lame",
Subdef::OPTION_DEVICE => ["all"] Subdef::OPTION_DEVICE => ["all"]
], ],
"Wave Mono 16 kHz" => [
Audio::OPTION_AUDIOBITRATE => "256",
Audio::OPTION_AUDIOSAMPLERATE => "16000",
Audio::OPTION_ACODEC => "pcm_s16le",
Audio::OPTION_AUDIOCHANNEL => "mono",
Subdef::OPTION_DEVICE => ["all"]
],
"Wave Mono 8 kHz" => [
Audio::OPTION_AUDIOBITRATE => "128",
Audio::OPTION_AUDIOSAMPLERATE => "8000",
Audio::OPTION_ACODEC => "pcm_s16le",
Audio::OPTION_AUDIOCHANNEL => "mono",
Subdef::OPTION_DEVICE => ["all"]
],
], ],
"form" => [ "form" => [
Audio::OPTION_AUDIOBITRATE => "slide", Audio::OPTION_AUDIOBITRATE => "slide",
Audio::OPTION_AUDIOSAMPLERATE => "select", Audio::OPTION_AUDIOSAMPLERATE => "select",
Audio::OPTION_ACODEC => "select", Audio::OPTION_ACODEC => "select",
Audio::OPTION_AUDIOCHANNEL => "select",
Subdef::OPTION_DEVICE => "checkbox", Subdef::OPTION_DEVICE => "checkbox",
], ],
], ],

View File

@@ -201,6 +201,8 @@ class FilesystemService
return 'ogg'; return 'ogg';
case 'libmp3lame': case 'libmp3lame':
return 'mp3'; return 'mp3';
case 'pcm_s16le':
return 'wav';
} }
return null; return null;

View File

@@ -19,6 +19,7 @@ class Audio extends Provider
const OPTION_THREADS = 'threads'; const OPTION_THREADS = 'threads';
const OPTION_ACODEC = 'acodec'; const OPTION_ACODEC = 'acodec';
const OPTION_AUDIOSAMPLERATE = 'audiosamplerate'; const OPTION_AUDIOSAMPLERATE = 'audiosamplerate';
const OPTION_AUDIOCHANNEL = 'audiochannel';
public function __construct(TranslatorInterface $translator) public function __construct(TranslatorInterface $translator)
{ {
@@ -29,9 +30,12 @@ class Audio extends Provider
47250, 48000, 50000, 50400, 88200, 96000 47250, 48000, 50000, 50400, 88200, 96000
]; ];
$audioChannel = ['mono', 'stereo'];
$this->registerOption(new OptionType\Range($this->translator->trans('Audio Birate'), self::OPTION_AUDIOBITRATE, 32, 320, 128, 32)); $this->registerOption(new OptionType\Range($this->translator->trans('Audio Birate'), self::OPTION_AUDIOBITRATE, 32, 320, 128, 32));
$this->registerOption(new OptionType\Enum($this->translator->trans('AudioSamplerate'), self::OPTION_AUDIOSAMPLERATE, $AVaudiosamplerate)); $this->registerOption(new OptionType\Enum($this->translator->trans('AudioSamplerate'), self::OPTION_AUDIOSAMPLERATE, $AVaudiosamplerate));
$this->registerOption(new OptionType\Enum($this->translator->trans('Audio Codec'), self::OPTION_ACODEC, ['libmp3lame', 'flac'], 'libmp3lame')); $this->registerOption(new OptionType\Enum($this->translator->trans('Audio Codec'), self::OPTION_ACODEC, ['libmp3lame', 'flac', 'pcm_s16le'], 'libmp3lame'));
$this->registerOption(new OptionType\Enum($this->translator->trans('Audio channel'), self::OPTION_AUDIOCHANNEL, $audioChannel));
} }
public function getType() public function getType()
@@ -53,7 +57,21 @@ class Audio extends Provider
$this->spec->setAudioCodec($this->getOption(self::OPTION_ACODEC)->getValue()); $this->spec->setAudioCodec($this->getOption(self::OPTION_ACODEC)->getValue());
$this->spec->setAudioSampleRate($this->getOption(self::OPTION_AUDIOSAMPLERATE)->getValue()); $this->spec->setAudioSampleRate($this->getOption(self::OPTION_AUDIOSAMPLERATE)->getValue());
$this->spec->setAudioKiloBitrate($this->getOption(self::OPTION_AUDIOBITRATE)->getValue()); $this->spec->setAudioKiloBitrate($this->getOption(self::OPTION_AUDIOBITRATE)->getValue());
$this->spec->setAudioChannels($this->getChannelNumber($this->getOption(self::OPTION_AUDIOCHANNEL)->getValue()));
return $this->spec; return $this->spec;
} }
private function getChannelNumber($audioChannel)
{
switch($audioChannel)
{
case 'mono':
return 1;
case 'stereo':
return 2;
default:
return null;
}
}
} }

View File

@@ -44,7 +44,7 @@ class databox_subdef
SubdefType::TYPE_DOCUMENT => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_FLEXPAPER, SubdefSpecs::TYPE_PDF], SubdefType::TYPE_DOCUMENT => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_FLEXPAPER, SubdefSpecs::TYPE_PDF],
SubdefType::TYPE_FLASH => [SubdefSpecs::TYPE_IMAGE], SubdefType::TYPE_FLASH => [SubdefSpecs::TYPE_IMAGE],
SubdefType::TYPE_IMAGE => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_PDF], SubdefType::TYPE_IMAGE => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_PDF],
SubdefType::TYPE_VIDEO => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_VIDEO, SubdefSpecs::TYPE_ANIMATION], SubdefType::TYPE_VIDEO => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_VIDEO, SubdefSpecs::TYPE_ANIMATION, SubdefSpecs::TYPE_AUDIO],
SubdefType::TYPE_UNKNOWN => [SubdefSpecs::TYPE_IMAGE], SubdefType::TYPE_UNKNOWN => [SubdefSpecs::TYPE_IMAGE],
]; ];
const CLASS_THUMBNAIL = 'thumbnail'; const CLASS_THUMBNAIL = 'thumbnail';
@@ -156,6 +156,10 @@ class databox_subdef
if ($sd->audiosamplerate) { if ($sd->audiosamplerate) {
$audio->setOptionValue(Audio::OPTION_AUDIOSAMPLERATE, (int) $sd->audiosamplerate); $audio->setOptionValue(Audio::OPTION_AUDIOSAMPLERATE, (int) $sd->audiosamplerate);
} }
if ($sd->audiochannel) {
$audio->setOptionValue(Audio::OPTION_AUDIOCHANNEL, (string) $sd->audiochannel);
}
return $audio; return $audio;
} }
/** /**

View File

@@ -148,7 +148,7 @@
</subdef> </subdef>
<subdef class="preview" name="preview" downloadable="false"> <subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path> <path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>flexpaper</mediatype> <mediatype>pdf</mediatype>
<writeDatas>no</writeDatas> <writeDatas>no</writeDatas>
<devices>screen</devices> <devices>screen</devices>
<label lang="fr">Prévisualisation</label> <label lang="fr">Prévisualisation</label>

View File

@@ -148,7 +148,7 @@
</subdef> </subdef>
<subdef class="preview" name="preview" downloadable="false"> <subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path> <path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>flexpaper</mediatype> <mediatype>pdf</mediatype>
<writeDatas>no</writeDatas> <writeDatas>no</writeDatas>
<devices>screen</devices> <devices>screen</devices>
<label lang="fr">Prévisualisation</label> <label lang="fr">Prévisualisation</label>

View File

@@ -148,7 +148,7 @@
</subdef> </subdef>
<subdef class="preview" name="preview" downloadable="false"> <subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path> <path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>flexpaper</mediatype> <mediatype>pdf</mediatype>
<writeDatas>no</writeDatas> <writeDatas>no</writeDatas>
<devices>screen</devices> <devices>screen</devices>
<label lang="fr">Prévisualisation</label> <label lang="fr">Prévisualisation</label>