diff --git a/cloudinary-core/src/main/java/com/cloudinary/Transformation.java b/cloudinary-core/src/main/java/com/cloudinary/Transformation.java index e83da54d..afb5011e 100644 --- a/cloudinary-core/src/main/java/com/cloudinary/Transformation.java +++ b/cloudinary-core/src/main/java/com/cloudinary/Transformation.java @@ -490,6 +490,30 @@ public T fps(int value) { return param("fps", new Integer(value)); } + /** + * fps (frames per second) parameter for video + * @param rangeStart String or Number, can be null for open range. + * @param rangeEnd String or Number, can be null for open range. + * @return the transformation for chaining. + */ + public T fps(Object rangeStart, Object rangeEnd){ + if (rangeEnd == null && rangeStart == null){ + throw new IllegalArgumentException("At least one of [rangeStart, rangeEnd] must be provided"); + } + StringBuilder builder = new StringBuilder(); + if (rangeStart != null){ + builder.append(rangeStart); + } + + builder.append("-"); + + if (rangeEnd != null){ + builder.append(rangeEnd); + } + + return param("fps", builder.toString()); + } + public T streamingProfile(String value) { return param("streaming_profile", value); } diff --git a/cloudinary-core/src/test/java/com/cloudinary/test/CloudinaryTest.java b/cloudinary-core/src/test/java/com/cloudinary/test/CloudinaryTest.java index 7e279576..aa3c9228 100644 --- a/cloudinary-core/src/test/java/com/cloudinary/test/CloudinaryTest.java +++ b/cloudinary-core/src/test/java/com/cloudinary/test/CloudinaryTest.java @@ -1117,15 +1117,22 @@ public void testResponsiveBreakpointsToJson() { @Test public void testFps() { - Transformation t = new Transformation().fps(12); - assertEquals("fps_12", t.generate()); - t = new Transformation().fps(12.5); - assertEquals("fps_12.5", t.generate()); - t = new Transformation().fps("12"); - assertEquals("fps_12", t.generate()); - t = new Transformation().fps("12-25.6"); - assertEquals("fps_12-25.6", t.generate()); - + Transformation t = new Transformation().fps("24-29.97"); + assertEquals("fps_24-29.97", t.generate()); + t = new Transformation().fps(24); + assertEquals("fps_24", t.generate()); + t = new Transformation().fps(24.5); + assertEquals("fps_24.5", t.generate()); + t = new Transformation().fps("24"); + assertEquals("fps_24", t.generate()); + t = new Transformation().fps("-24"); + assertEquals("fps_-24", t.generate()); + t = new Transformation().fps(24,29.97); + assertEquals("fps_24-29.97", t.generate()); + t = new Transformation().fps(24,null); + assertEquals("fps_24-", t.generate()); + t = new Transformation().fps(null,29.97); + assertEquals("fps_-29.97", t.generate()); } @Test