# SeparableConvolution

# SeparableConvolution

Artifact:[androidx.media3:media3-effect](https://developer.android.com/jetpack/androidx/releases/media3)  
[View Source](https://cs.android.com/search?q=file:androidx/media3/effect/SeparableConvolution.java+class:androidx.media3.effect.SeparableConvolution)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/effect/SeparableConvolution "View this page in Java")

<br />

```
@UnstableApi
abstract class SeparableConvolution : GlEffect
```

<br />

Known direct subclasses  
[GaussianBlurWithFrameOverlaid](https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianBlurWithFrameOverlaid),[GaussianBlur](https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianBlur)  

|--------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [GaussianBlurWithFrameOverlaid](https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianBlurWithFrameOverlaid) | A[SeparableConvolution](https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution)to apply a Gaussian blur on image data. |
| [GaussianBlur](https://developer.android.com/reference/kotlin/androidx/media3/effect/GaussianBlur)                                   | A[SeparableConvolution](https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution)to apply a Gaussian blur on image data. |

*** ** * ** ***

A[GlEffect](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect)for performing separable convolutions.

A single 1D convolution function is applied horizontally on a first pass and vertically on a second pass.

## Summary

|                                                                                                                                                                          ### Public constructors                                                                                                                                                                           |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SeparableConvolution](https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution#SeparableConvolution())`()` Creates an instance with`scaleWidth`and`scaleHeight`set to`1.0f`.                                                                                                                                                            |
| [SeparableConvolution](https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution#SeparableConvolution(float,float))`(scaleWidth: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`, scaleHeight: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`)` Creates an instance. |

|                                                        ### Public functions                                                        |
|------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract `[ConvolutionFunction1D](https://developer.android.com/reference/kotlin/androidx/media3/effect/ConvolutionFunction1D)`!` | [getConvolution](https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution#getConvolution(long))`(presentationTimeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Returns a[1D convolution function](https://developer.android.com/reference/kotlin/androidx/media3/effect/ConvolutionFunction1D).                                                                                                                                  |
| [GlShaderProgram](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram)`!`                        | [toGlShaderProgram](https://developer.android.com/reference/kotlin/androidx/media3/effect/SeparableConvolution#toGlShaderProgram(android.content.Context,boolean))`(context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!, useHdr: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Returns a[GlShaderProgram](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram)that applies the effect. |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ### Inherited functions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.media3.common.Effect](https://developer.android.com/reference/kotlin/androidx/media3/common/Effect) |-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | [getDurationAfterEffectApplied](https://developer.android.com/reference/kotlin/androidx/media3/common/Effect#getDurationAfterEffectApplied(long))`(durationUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Returns the expected duration of the output stream when the effect is applied given a input`durationUs`. |                                                                                                                                                                                                   |
| From[androidx.media3.effect.GlEffect](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect) |-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isNoOp](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect#isNoOp(int,int))`(inputWidth: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, inputHeight: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Returns whether a[GlEffect](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlEffect)applies no change at every timestamp. | |

## Public constructors

### SeparableConvolution

```
SeparableConvolution()
```

Creates an instance with`scaleWidth`and`scaleHeight`set to`1.0f`.  

### SeparableConvolution

```
SeparableConvolution(scaleWidth: Float, scaleHeight: Float)
```

Creates an instance.  

|                                           Parameters                                           |
|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| `scaleWidth: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)  | The scaling factor used to determine the width of the output relative to the input.  |
| `scaleHeight: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | The scaling factor used to determine the height of the output relative to the input. |

## Public functions

### getConvolution

```
abstract fun getConvolution(presentationTimeUs: Long): ConvolutionFunction1D!
```

Returns a[1D convolution function](https://developer.android.com/reference/kotlin/androidx/media3/effect/ConvolutionFunction1D).  

|                                             Parameters                                              |
|-----------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
| `presentationTimeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | The presentation timestamp of the input frame, in microseconds. |

### toGlShaderProgram

```
fun toGlShaderProgram(context: Context!, useHdr: Boolean): GlShaderProgram!
```

Returns a[GlShaderProgram](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram)that applies the effect.  

|                                          Parameters                                           |
|-----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!` | A[Context](https://developer.android.com/reference/android/content/Context.html).                                                               |
| `useHdr: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether input textures come from an HDR source. If`true`, colors will be in linear RGB BT.2020. If`false`, colors will be in linear RGB BT.709. |

|                                                                           Throws                                                                            |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| [androidx.media3.common.VideoFrameProcessingException](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoFrameProcessingException) | If an error occurs while creating the[GlShaderProgram](https://developer.android.com/reference/kotlin/androidx/media3/effect/GlShaderProgram). |