Skip to content

Commit

Permalink
make payloads
Browse files Browse the repository at this point in the history
  • Loading branch information
JonnyBurger committed Nov 22, 2024
1 parent 803df49 commit f436909
Show file tree
Hide file tree
Showing 8 changed files with 239 additions and 148 deletions.
39 changes: 39 additions & 0 deletions packages/it-tests/src/monorepo/ruby-package.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,42 @@ test('Render Media payload', async () => {

expect(JSON.parse(output)).toEqual(nativeVersion);
});

test('Render Still payload', async () => {
const output = execSync('ruby lib/render_still_on_lambda_payload_spec.rb', {
cwd: rubySdk,
}).toString();
const nativeVersion = await LambdaInternals.makeLambdaRenderStillPayload({
region: 'us-east-1',
composition: 'still-helloworld',
functionName: 'remotion-render',
serveUrl: 'testbed',
inputProps: {
message: 'Hello from props!',
},
chromiumOptions: {},
deleteAfter: null,
downloadBehavior: {type: 'play-in-browser'},
envVariables: {},
forceBucketName: null,
forceHeight: null,
forceWidth: null,
imageFormat: 'jpeg',
jpegQuality: 80,
logLevel: 'info',
maxRetries: 1,
offthreadVideoCacheSizeInBytes: null,
outName: null,
privacy: 'public',
scale: 1,
timeoutInMilliseconds: 30000,
frame: 0,
indent: false,
onInit: () => undefined,
dumpBrowserLogs: false,
quality: undefined,
forcePathStyle: false,
});

expect(JSON.parse(output)).toEqual({...nativeVersion, streamed: false});
});
98 changes: 98 additions & 0 deletions packages/lambda-ruby/lib/render_media_on_lambda_payload.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
require_relative 'version'

def get_render_media_on_lambda_payload(
bucket_name: nil,
codec:,
audio_bitrate: nil,
audio_codec: nil,
color_space: nil,
composition: nil,
concurrency_per_lambda: 1,
crf: nil,
delete_after: nil,
download_behavior: nil,
encoding_buffer_size: nil,
encoding_max_rate: nil,
env_variables: {},
every_nth_frame: 1,
force_height: nil,
force_path_style: false,
force_width: nil,
frame_range: nil,
frames_per_lambda: nil,
image_format: "jpeg",
input_props: {},
jpeg_quality: 80,
log_level: "info",
max_retries: 1,
metadata: {},
muted: false,
number_of_gif_loops: 0,
offthread_video_cache_size_in_bytes: nil,
out_name: nil,
overwrite: false,
pixel_format: nil,
prefer_lossless: false,
privacy: "public",
pro_res_profile: nil,
renderer_function_name: nil,
scale: 1,
serve_url: "testbed",
timeout_in_milliseconds: 30000,
video_bitrate: nil,
webhook: nil,
x264_preset: nil,
chromium_options: {}
)

payload = {
audioBitrate: audio_bitrate,
audioCodec: audio_codec,
codec: codec,
colorSpace: color_space,
composition: composition,
concurrencyPerLambda: concurrency_per_lambda,
chromiumOptions: chromium_options,
crf: crf,
deleteAfter: delete_after,
downloadBehavior: download_behavior,
encodingBufferSize: encoding_buffer_size,
encodingMaxRate: encoding_max_rate,
envVariables: env_variables,
everyNthFrame: every_nth_frame,
forceHeight: force_height,
forcePathStyle: force_path_style,
forceWidth: force_width,
frameRange: frame_range,
framesPerLambda: frames_per_lambda,
imageFormat: image_format,
inputProps: {
type: "payload",
payload: JSON.generate(input_props)
},
jpegQuality: jpeg_quality,
logLevel: log_level,
maxRetries: max_retries,
metadata: metadata,
muted: muted,
numberOfGifLoops: number_of_gif_loops,
offthreadVideoCacheSizeInBytes: offthread_video_cache_size_in_bytes,
outName: out_name,
overwrite: overwrite,
pixelFormat: pixel_format,
preferLossless: prefer_lossless,
privacy: privacy,
proResProfile: pro_res_profile,
rendererFunctionName: renderer_function_name,
scale: scale,
serveUrl: serve_url,
timeoutInMilliseconds: timeout_in_milliseconds,
type: "start",
version: VERSION,
videoBitrate: video_bitrate,
webhook: webhook,
x264Preset: x264_preset,
bucketName: bucket_name
}
payload
end
12 changes: 2 additions & 10 deletions packages/lambda-ruby/lib/render_media_on_lambda_payload_spec.rb
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
require_relative 'sdk'
require_relative 's3_output_provider'
require_relative 'render_media_on_lambda_payload'
require 'json'

# Create a test instance of the RemotionLambda::Client
client = RemotionLambda::Client.new(
function_name: 'test-function',
serve_url: 'https://example.com',
region: 'us-east-1'
)

# Call get_render_media_on_lambda with sample data
payload = client.get_render_media_on_lambda_payload(
payload = get_render_media_on_lambda_payload(
codec: "h264",
metadata: {
Author: "Lunar"
Expand Down
19 changes: 19 additions & 0 deletions packages/lambda-ruby/lib/render_progress_payload.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
def get_render_progress_payload(
render_id:,
bucket_name:,
force_path_style: false,
log_level: 'info',
s3_output_provider: nil
)
payload = {
"type" => "status",
"renderId" => render_id,
"bucketName" => bucket_name,
"version" => VERSION,
"forcePathStyle" => force_path_style,
"logLevel" => log_level,
"s3OutputProvider" => s3_output_provider
}

payload
end
11 changes: 3 additions & 8 deletions packages/lambda-ruby/lib/render_progress_payload_spec.rb
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
require_relative 'sdk'
require_relative 's3_output_provider'
require 'json'
require_relative 'render_progress_payload'

# Create a test instance of the RemotionLambda::Client
client = RemotionLambda::Client.new(
function_name: 'test-function',
serve_url: 'https://example.com',
region: 'us-east-1'
)
require 'json'

# Sample data
render_id = "abcdef"
bucket_name = "remotion-render"

# Call get_render_progress_payload with sample data
payload = client.get_render_progress_payload(
payload = get_render_progress_payload(
render_id: render_id,
bucket_name: bucket_name,
s3_output_provider: RemotionLambda::S3OutputProvider.new(
Expand Down
60 changes: 60 additions & 0 deletions packages/lambda-ruby/lib/render_still_on_lambda_payload.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
require_relative 'version'

def get_render_still_on_lambda_payload(
bucket_name: nil,
composition: nil,
delete_after: nil,
download_behavior: nil,
env_variables: {},
force_height: nil,
force_path_style: false,
force_width: nil,
image_format: "jpeg",
input_props: {},
jpeg_quality: 80,
log_level: "info",
max_retries: 1,
metadata: {},
offthread_video_cache_size_in_bytes: nil,
out_name: nil,
overwrite: false,
privacy: "public",
scale: 1,
serve_url: "testbed",
timeout_in_milliseconds: 30000,
chromium_options: {},
frame: 0
)

payload = {
composition: composition,
chromiumOptions: chromium_options,
deleteAfter: delete_after,
downloadBehavior: download_behavior,
envVariables: env_variables,
forceHeight: force_height,
forcePathStyle: force_path_style,
forceWidth: force_width,
imageFormat: image_format,
inputProps: {
type: "payload",
payload: JSON.generate(input_props)
},
jpegQuality: jpeg_quality,
logLevel: log_level,
maxRetries: max_retries,
offthreadVideoCacheSizeInBytes: offthread_video_cache_size_in_bytes,
outName: out_name,
privacy: privacy,
scale: scale,
serveUrl: serve_url,
timeoutInMilliseconds: timeout_in_milliseconds,
type: "still",
version: VERSION,
bucketName: bucket_name,
attempt: 1,
streamed: false,
frame: frame,
}
payload
end
17 changes: 17 additions & 0 deletions packages/lambda-ruby/lib/render_still_on_lambda_payload_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require_relative 'render_still_on_lambda_payload'
require 'json'

# Call get_render_media_on_lambda with sample data
payload = get_render_still_on_lambda_payload(
bucket_name: nil,
composition: "still-helloworld",
download_behavior: {
type: "play-in-browser",
},
input_props: {
message: "Hello from props!",
}
)

# Print as JSON
puts JSON.generate(payload)
Loading

0 comments on commit f436909

Please sign in to comment.