Add passthrough options for audio attachments
This commit is contained in:
parent
40ba6e119b
commit
0bc7bd75cb
@ -146,6 +146,20 @@ class MediaAttachment < ApplicationRecord
|
|||||||
original: VIDEO_FORMAT.merge(passthrough_options: VIDEO_PASSTHROUGH_OPTIONS).freeze,
|
original: VIDEO_FORMAT.merge(passthrough_options: VIDEO_PASSTHROUGH_OPTIONS).freeze,
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
|
AUDIO_PASSTHROUGH_OPTIONS = {
|
||||||
|
audio_codecs: ['acc'].freeze,
|
||||||
|
options: {
|
||||||
|
format: 'mp3',
|
||||||
|
convert_options: {
|
||||||
|
output: {
|
||||||
|
'loglevel' => 'fatal',
|
||||||
|
'map_metadata' => '-1',
|
||||||
|
'c:a' => 'copy',
|
||||||
|
}.freeze,
|
||||||
|
}.freeze,
|
||||||
|
}.freeze,
|
||||||
|
}.freeze
|
||||||
|
|
||||||
AUDIO_STYLES = {
|
AUDIO_STYLES = {
|
||||||
original: {
|
original: {
|
||||||
format: 'mp3',
|
format: 'mp3',
|
||||||
@ -156,6 +170,8 @@ class MediaAttachment < ApplicationRecord
|
|||||||
'q:a' => 2,
|
'q:a' => 2,
|
||||||
}.freeze,
|
}.freeze,
|
||||||
}.freeze,
|
}.freeze,
|
||||||
|
|
||||||
|
passthrough_options: AUDIO_PASSTHROUGH_OPTIONS,
|
||||||
}.freeze,
|
}.freeze,
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
|
@ -115,7 +115,11 @@ module Paperclip
|
|||||||
end
|
end
|
||||||
|
|
||||||
def eligible_to_passthrough?(metadata)
|
def eligible_to_passthrough?(metadata)
|
||||||
@passthrough_options && @passthrough_options[:video_codecs].include?(metadata.video_codec) && @passthrough_options[:audio_codecs].include?(metadata.audio_codec) && @passthrough_options[:colorspaces].include?(metadata.colorspace)
|
return false if @passthrough_options.blank?
|
||||||
|
|
||||||
|
%i(video_codec audio_codec colorspace).all? do |attribute|
|
||||||
|
@passthrough_options["#{attribute}s".to_sym].nil? || @passthrough_options["#{attribute}s".to_sym].include?(metadata.public_send(attribute))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_attachment_type(metadata)
|
def update_attachment_type(metadata)
|
||||||
|
Loading…
Reference in New Issue
Block a user