Skip to content

Commit

Permalink
fix clearfilters and removefilter index
Browse files Browse the repository at this point in the history
  • Loading branch information
pedroSG94 committed Mar 6, 2024
1 parent a4ab764 commit 0459e74
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 87 deletions.
2 changes: 1 addition & 1 deletion app/src/main/java/com/pedro/streamer/utils/FilterMenu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class FilterMenu(private val context: Context) {
spriteGestureController.stopListener()
when (item.itemId) {
R.id.no_filter -> {
glInterface.setFilter(NoFilterRender())
glInterface.clearFilters()
return true
}
R.id.analog_tv -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class MainRender {
screenRender.setTexId(texId)
}

fun setFilterAction(filterAction: FilterAction?, position: Int, baseFilterRender: BaseFilterRender) {
fun setFilterAction(filterAction: FilterAction, position: Int, baseFilterRender: BaseFilterRender) {
when (filterAction) {
FilterAction.SET -> if (filterRenders.size > 0) {
setFilter(position, baseFilterRender)
Expand All @@ -153,7 +153,6 @@ class MainRender {
FilterAction.CLEAR -> clearFilters()
FilterAction.REMOVE -> removeFilter(baseFilterRender)
FilterAction.REMOVE_INDEX -> removeFilter(position)
else -> {}
}
}

Expand Down
61 changes: 0 additions & 61 deletions library/src/main/java/com/pedro/library/util/Filter.java

This file was deleted.

28 changes: 28 additions & 0 deletions library/src/main/java/com/pedro/library/util/Filter.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* Copyright (C) 2023 pedroSG94.
*
* 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 com.pedro.library.util

import com.pedro.encoder.input.gl.FilterAction
import com.pedro.encoder.input.gl.render.filters.BaseFilterRender

/**
* Created by pedro on 30/07/18.
*/
class Filter(
@JvmField var filterAction: FilterAction,
@JvmField var position: Int,
@JvmField var baseFilterRender: BaseFilterRender
)
14 changes: 7 additions & 7 deletions library/src/main/java/com/pedro/library/view/GlInterface.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import android.graphics.SurfaceTexture;
import android.view.Surface;

import androidx.annotation.NonNull;

import com.pedro.encoder.input.gl.render.filters.BaseFilterRender;

public interface GlInterface {
Expand Down Expand Up @@ -70,15 +72,15 @@ public interface GlInterface {
* @param filterPosition filter position
* @param baseFilterRender filter to set
*/
void setFilter(int filterPosition, BaseFilterRender baseFilterRender);
void setFilter(int filterPosition, @NonNull BaseFilterRender baseFilterRender);

/**
* Appends the specified filter to the end.
* You can modify filter's parameters after set it to stream.
*
* @param baseFilterRender filter to add
*/
void addFilter(BaseFilterRender baseFilterRender);
void addFilter(@NonNull BaseFilterRender baseFilterRender);

/**
* Inserts the specified filter at the specified position.
Expand All @@ -87,7 +89,7 @@ public interface GlInterface {
* @param filterPosition filter position
* @param baseFilterRender filter to set
*/
void addFilter(int filterPosition, BaseFilterRender baseFilterRender);
void addFilter(int filterPosition, @NonNull BaseFilterRender baseFilterRender);

/**
* Remove all filters
Expand All @@ -106,7 +108,7 @@ public interface GlInterface {
*
* @param baseFilterRender filter to remove
*/
void removeFilter(BaseFilterRender baseFilterRender);
void removeFilter(@NonNull BaseFilterRender baseFilterRender);
/**
* @return number of filters
*/
Expand All @@ -118,7 +120,7 @@ public interface GlInterface {
*
* @param baseFilterRender filter to set.
*/
void setFilter(BaseFilterRender baseFilterRender);
void setFilter(@NonNull BaseFilterRender baseFilterRender);

void setRotation(int rotation);

Expand Down Expand Up @@ -157,15 +159,13 @@ public interface GlInterface {

/**
* INTERNAL METHOD.
*
* Start Opengl rendering.
*
*/
void start();

/**
* INTERNAL METHOD.
*
* Stop Opengl rendering.
*/
void stop();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import com.pedro.encoder.input.gl.FilterAction
import com.pedro.encoder.input.gl.SurfaceManager
import com.pedro.encoder.input.gl.render.MainRender
import com.pedro.encoder.input.gl.render.filters.BaseFilterRender
import com.pedro.encoder.input.gl.render.filters.NoFilterRender
import com.pedro.encoder.input.video.CameraHelper
import com.pedro.encoder.input.video.FpsLimiter
import com.pedro.encoder.utils.gl.AspectRatioMode
Expand Down Expand Up @@ -245,27 +246,27 @@ class GlStreamInterface(private val context: Context): OnFrameAvailableListener,
mainRender.setCameraRotation(orientation)
}

override fun setFilter(filterPosition: Int, baseFilterRender: BaseFilterRender?) {
override fun setFilter(filterPosition: Int, baseFilterRender: BaseFilterRender) {
filterQueue.add(Filter(FilterAction.SET_INDEX, filterPosition, baseFilterRender))
}

override fun addFilter(baseFilterRender: BaseFilterRender?) {
override fun addFilter(baseFilterRender: BaseFilterRender) {
filterQueue.add(Filter(FilterAction.ADD, 0, baseFilterRender))
}

override fun addFilter(filterPosition: Int, baseFilterRender: BaseFilterRender?) {
override fun addFilter(filterPosition: Int, baseFilterRender: BaseFilterRender) {
filterQueue.add(Filter(FilterAction.ADD_INDEX, filterPosition, baseFilterRender))
}

override fun clearFilters() {
filterQueue.add(Filter(FilterAction.CLEAR, 0, null))
filterQueue.add(Filter(FilterAction.CLEAR, 0, NoFilterRender()))
}

override fun removeFilter(filterPosition: Int) {
filterQueue.add(Filter(FilterAction.REMOVE_INDEX, filterPosition, null))
filterQueue.add(Filter(FilterAction.REMOVE_INDEX, filterPosition, NoFilterRender()))
}

override fun removeFilter(baseFilterRender: BaseFilterRender?) {
override fun removeFilter(baseFilterRender: BaseFilterRender) {
filterQueue.add(Filter(FilterAction.REMOVE, 0, baseFilterRender))
}

Expand Down Expand Up @@ -297,7 +298,7 @@ class GlStreamInterface(private val context: Context): OnFrameAvailableListener,
isPreviewVerticalFlip = flip
}

override fun setFilter(baseFilterRender: BaseFilterRender?) {
override fun setFilter(baseFilterRender: BaseFilterRender) {
filterQueue.add(Filter(FilterAction.SET, 0, baseFilterRender))
}

Expand Down
19 changes: 10 additions & 9 deletions library/src/main/java/com/pedro/library/view/OpenGlView.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import com.pedro.encoder.input.gl.SurfaceManager;
import com.pedro.encoder.input.gl.render.MainRender;
import com.pedro.encoder.input.gl.render.filters.BaseFilterRender;
import com.pedro.encoder.input.gl.render.filters.NoFilterRender;
import com.pedro.encoder.input.video.FpsLimiter;
import com.pedro.encoder.utils.gl.AspectRatioMode;
import com.pedro.encoder.utils.gl.GlUtil;
Expand Down Expand Up @@ -71,7 +72,7 @@ public class OpenGlView extends SurfaceView
private AspectRatioMode aspectRatioMode = AspectRatioMode.Adjust;
private ExecutorService executor = null;
private final FpsLimiter fpsLimiter = new FpsLimiter();
private ForceRenderer forceRenderer = new ForceRenderer();
private final ForceRenderer forceRenderer = new ForceRenderer();

public OpenGlView(Context context) {
super(context);
Expand Down Expand Up @@ -103,32 +104,32 @@ public Surface getSurface() {
}

@Override
public void setFilter(int filterPosition, BaseFilterRender baseFilterRender) {
public void setFilter(int filterPosition, @NonNull BaseFilterRender baseFilterRender) {
filterQueue.add(new Filter(FilterAction.SET_INDEX, filterPosition, baseFilterRender));
}

@Override
public void addFilter(BaseFilterRender baseFilterRender) {
public void addFilter(@NonNull BaseFilterRender baseFilterRender) {
filterQueue.add(new Filter(FilterAction.ADD, 0, baseFilterRender));
}

@Override
public void addFilter(int filterPosition, BaseFilterRender baseFilterRender) {
public void addFilter(int filterPosition, @NonNull BaseFilterRender baseFilterRender) {
filterQueue.add(new Filter(FilterAction.ADD_INDEX, filterPosition, baseFilterRender));
}

@Override
public void clearFilters() {
filterQueue.add(new Filter(FilterAction.CLEAR, 0, null));
filterQueue.add(new Filter(FilterAction.CLEAR, 0, new NoFilterRender()));
}

@Override
public void removeFilter(int filterPosition) {
filterQueue.add(new Filter(FilterAction.REMOVE_INDEX, filterPosition, null));
filterQueue.add(new Filter(FilterAction.REMOVE_INDEX, filterPosition, new NoFilterRender()));
}

@Override
public void removeFilter(BaseFilterRender baseFilterRender) {
public void removeFilter(@NonNull BaseFilterRender baseFilterRender) {
filterQueue.add(new Filter(FilterAction.REMOVE, 0, baseFilterRender));
}

Expand All @@ -138,7 +139,7 @@ public int filtersCount() {
}

@Override
public void setFilter(BaseFilterRender baseFilterRender) {
public void setFilter(@NonNull BaseFilterRender baseFilterRender) {
filterQueue.add(new Filter(FilterAction.SET, 0, baseFilterRender));
}

Expand Down Expand Up @@ -239,7 +240,7 @@ private void draw() {
if (!filterQueue.isEmpty() && mainRender.isReady()) {
try {
Filter filter = filterQueue.take();
mainRender.setFilterAction(filter.getFilterAction(), filter.getPosition(), filter.getBaseFilterRender());
mainRender.setFilterAction(filter.filterAction, filter.position, filter.baseFilterRender);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
Expand Down

0 comments on commit 0459e74

Please sign in to comment.