Class TransformationRequest.Builder

    • Method Detail

      • setTransformationMatrix

        public TransformationRequest.Builder setTransformationMatrix​(Matrix transformationMatrix)
        Sets the transformation matrix. The default value is to apply no change.

        This can be used to perform operations supported by Matrix, like scaling and rotating the video.

        The video dimensions will be on the x axis, from -aspectRatio to aspectRatio, and on the y axis, from -1 to 1.

        For now, resolution will not be affected by this method.

        Parameters:
        transformationMatrix - The transformation to apply to video frames.
        Returns:
        This builder.
      • setFlattenForSlowMotion

        public TransformationRequest.Builder setFlattenForSlowMotion​(boolean flattenForSlowMotion)
        Sets whether the input should be flattened for media containing slow motion markers. The transformed output is obtained by removing the slow motion metadata and by actually slowing down the parts of the video and audio streams defined in this metadata. The default value for flattenForSlowMotion is false.

        Only Samsung Extension Format (SEF) slow motion metadata type is supported. The transformation has no effect if the input does not contain this metadata type.

        For SEF slow motion media, the following assumptions are made on the input:

        • The input container format is (unfragmented) MP4.
        • The input contains an AVC video elementary stream with temporal SVC.
        • The recording frame rate of the video is 120 or 240 fps.

        If specifying a MediaSource.Factory using Transformer.Builder.setMediaSourceFactory(MediaSource.Factory), make sure that Mp4Extractor.FLAG_READ_SEF_DATA is set on the Mp4Extractor used. Otherwise, the slow motion metadata will be ignored and the input won't be flattened.

        Parameters:
        flattenForSlowMotion - Whether to flatten for slow motion.
        Returns:
        This builder.
      • setResolution

        public TransformationRequest.Builder setResolution​(int outputHeight)
        Sets the output resolution using the output height. The default value C.LENGTH_UNSET corresponds to using the same height as the input. Output width will scale to preserve the input video's aspect ratio.

        For now, only "popular" heights like 144, 240, 360, 480, 720, 1080, 1440, or 2160 are supported, to ensure compatibility on different devices.

        For example, a 1920x1440 video can be scaled to 640x480 by calling setResolution(480).

        Parameters:
        outputHeight - The output height in pixels.
        Returns:
        This builder.
        Throws:
        IllegalArgumentException - If the outputHeight is not supported.
      • experimental_setEnableHdrEditing

        public TransformationRequest.Builder experimental_setEnableHdrEditing​(boolean enableHdrEditing)
        Sets whether to attempt to process any input video stream as a high dynamic range (HDR) signal.

        This method is experimental, and will be renamed or removed in a future release. The HDR editing feature is under development and is intended for developing/testing HDR processing and encoding support.

        Parameters:
        enableHdrEditing - Whether to attempt to process any input video stream as a high dynamic range (HDR) signal.
        Returns:
        This builder.