public interface

ConvolutionFunction1D

 androidx.media3.effect.ConvolutionFunction1D

Subclasses:

GaussianFunction

Gradle dependencies

compile group: 'androidx.media3', name: 'media3-effect', version: '1.5.0-alpha01'

  • groupId: androidx.media3
  • artifactId: media3-effect
  • version: 1.5.0-alpha01

Artifact androidx.media3:media3-effect:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

An interface for 1 dimensional convolution functions.

The domain defines the region over which the function operates, in pixels.

Summary

Methods
public floatdomainEnd()

Returns the end of the domain.

public floatdomainStart()

Returns the start of the domain.

public floatvalue(float samplePosition)

Returns the value of the function at the samplePosition.

public floatwidth()

Returns the width of the domain.

Methods

public float domainStart()

Returns the start of the domain.

public float domainEnd()

Returns the end of the domain.

public float width()

Returns the width of the domain.

public float value(float samplePosition)

Returns the value of the function at the samplePosition.

Source

/*
 * Copyright 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.media3.effect;

import androidx.media3.common.util.Size;
import androidx.media3.common.util.UnstableApi;

/**
 * An interface for 1 dimensional convolution functions.
 *
 * <p>The domain defines the region over which the function operates, in pixels.
 */
@UnstableApi
public interface ConvolutionFunction1D {

  /** A configurable provider for {@link ConvolutionFunction1D} instances. */
  interface Provider {

    /**
     * Configures the provider to return {@linkplain ConvolutionFunction1D 1D convolution functions}
     * based on the input frame dimensions.
     *
     * <p>This method must be called before {@link #getConvolution(long)}.
     *
     * @param inputSize The input frame size on which to apply a convolution.
     * @return The output frame size after applying the convolution.
     */
    Size configure(Size inputSize);

    /**
     * Returns a {@linkplain ConvolutionFunction1D 1D convolution function}.
     *
     * @param presentationTimeUs The presentation timestamp of the input frame, in microseconds.
     */
    ConvolutionFunction1D getConvolution(long presentationTimeUs);
  }

  /** Returns the start of the domain. */
  float domainStart();

  /** Returns the end of the domain. */
  float domainEnd();

  /** Returns the width of the domain. */
  default float width() {
    return domainEnd() - domainStart();
  }

  /** Returns the value of the function at the {@code samplePosition}. */
  float value(float samplePosition);
}