5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'app/jobs/animate_it/render_job.rb', line 5
def perform(render_id, composition_id, host, output_path, frames_dir, props = {}, _options = {})
AnimateIt.load_compositions!
composition = AnimateIt.registry.fetch(composition_id)
RenderStore.start!(render_id)
VideoRenderer.new(
composition:,
host:,
output_path:,
frames_dir:
).render(
props:,
cancel_check: -> { RenderStore.cancelled?(render_id) },
on_progress: ->(frame, total_frames) { RenderStore.progress!(render_id, frame:, total_frames:) }
)
RenderStore.complete!(render_id)
rescue VideoRenderer::CancelledError
RenderStore.cancel!(render_id)
rescue StandardError => e
RenderStore.fail!(render_id, e)
raise
end
|