mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-11-30 14:57:59 +01:00
21 lines
869 B
Elixir
21 lines
869 B
Elixir
defmodule PhilomenaMedia.Processors.Processor do
|
|
@moduledoc false
|
|
|
|
alias PhilomenaMedia.Analyzers.Result
|
|
alias PhilomenaMedia.Processors
|
|
alias PhilomenaMedia.Intensities
|
|
|
|
# Generate a list of version filenames for the given version list.
|
|
@callback versions(Processors.version_list()) :: [Processors.version_filename()]
|
|
|
|
# Process the media at the given path against the given version list, and return an
|
|
# edit script with the resulting files
|
|
@callback process(Result.t(), Path.t(), Processors.version_list()) :: Processors.edit_script()
|
|
|
|
# Perform post-processing optimization tasks on the file, to reduce its size
|
|
# and strip non-essential metadata
|
|
@callback post_process(Result.t(), Path.t()) :: Processors.edit_script()
|
|
|
|
# Generate corner intensities for the given path
|
|
@callback intensities(Result.t(), Path.t()) :: Intensities.t()
|
|
end
|