From 0fd0fad4b4db0cd5bd134ffcff60ed0c5e6d932d Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Tue, 16 Jul 2019 01:39:15 -0300 Subject: [PATCH] Make inner classes public --- .../video/encoding/AudioMediaEncoder.java | 8 ++++---- .../cameraview/video/encoding/InputBuffer.java | 15 ++++++++------- .../cameraview/video/encoding/MediaEncoder.java | 15 ++++++++------- .../video/encoding/MediaEncoderEngine.java | 17 ++++++++++------- .../cameraview/video/encoding/OutputBuffer.java | 9 +++++---- .../video/encoding/TextureMediaEncoder.java | 4 ++-- .../video/encoding/VideoMediaEncoder.java | 8 ++++---- 7 files changed, 41 insertions(+), 35 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java index b01a9b52..3d2f3eba 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/AudioMediaEncoder.java @@ -88,7 +88,7 @@ public class AudioMediaEncoder extends MediaEncoder { @EncoderThread @Override - void onPrepare(@NonNull MediaEncoderEngine.Controller controller, long maxLengthMillis) { + protected void onPrepare(@NonNull MediaEncoderEngine.Controller controller, long maxLengthMillis) { final MediaFormat audioFormat = MediaFormat.createAudioFormat(MIME_TYPE, SAMPLING_FREQUENCY, CHANNELS_COUNT); audioFormat.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectLC); audioFormat.setInteger(MediaFormat.KEY_CHANNEL_MASK, CHANNELS); @@ -106,14 +106,14 @@ public class AudioMediaEncoder extends MediaEncoder { @EncoderThread @Override - void onStart() { + protected void onStart() { mRequestStop = false; mRecorder.start(); } @EncoderThread @Override - void onStop() { + protected void onStop() { mRequestStop = true; } @@ -130,7 +130,7 @@ public class AudioMediaEncoder extends MediaEncoder { } @Override - int getEncodedBitRate() { + protected int getEncodedBitRate() { return mConfig.bitRate; } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/InputBuffer.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/InputBuffer.java index 979ef268..b4bbf85c 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/InputBuffer.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/InputBuffer.java @@ -6,11 +6,12 @@ import java.nio.ByteBuffer; * Represents an input buffer, which means, * raw data that should be encoded by MediaCodec. */ -class InputBuffer { - ByteBuffer data; - ByteBuffer source; - int index; - int length; - long timestamp; - boolean isEndOfStream; +@SuppressWarnings("WeakerAccess") +public class InputBuffer { + public ByteBuffer data; + public ByteBuffer source; + public int index; + public int length; + public long timestamp; + public boolean isEndOfStream; } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java index dc585a34..fb17f8f1 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoder.java @@ -75,7 +75,7 @@ import java.nio.ByteBuffer; */ // https://github.com/saki4510t/AudioVideoRecordingSample/blob/master/app/src/main/java/com/serenegiant/encoder/MediaEncoder.java @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) -abstract class MediaEncoder { +public abstract class MediaEncoder { private final static String TAG = MediaEncoder.class.getSimpleName(); private final static CameraLogger LOG = CameraLogger.create(TAG); @@ -129,7 +129,8 @@ abstract class MediaEncoder { * Needs a readable name for the thread and for logging. * @param name a name */ - MediaEncoder(@NonNull String name) { + @SuppressWarnings("WeakerAccess") + protected MediaEncoder(@NonNull String name) { mName = name; } @@ -261,7 +262,7 @@ abstract class MediaEncoder { * @param maxLengthMillis the maxLength in millis */ @EncoderThread - abstract void onPrepare(@NonNull final MediaEncoderEngine.Controller controller, final long maxLengthMillis); + protected abstract void onPrepare(@NonNull final MediaEncoderEngine.Controller controller, final long maxLengthMillis); /** * Start recording. This might be a lightweight operation @@ -269,7 +270,7 @@ abstract class MediaEncoder { * like a "frame available". */ @EncoderThread - abstract void onStart(); + protected abstract void onStart(); /** * The caller notifying of a certain event occurring. @@ -278,14 +279,14 @@ abstract class MediaEncoder { * @param data object */ @EncoderThread - void onEvent(@NonNull String event, @Nullable Object data) {} + protected void onEvent(@NonNull String event, @Nullable Object data) {} /** * Stop recording. This involves signaling the end of stream and draining * all output left. */ @EncoderThread - abstract void onStop(); + protected abstract void onStop(); /** * Called by {@link #drainOutput(boolean)} when we get an EOS signal (not necessarily in the @@ -461,7 +462,7 @@ abstract class MediaEncoder { } } - abstract int getEncodedBitRate(); + protected abstract int getEncodedBitRate(); /** * Returns the max length setting, in milliseconds, which can be used diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoderEngine.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoderEngine.java index 38a5d958..118ebd10 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoderEngine.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/MediaEncoderEngine.java @@ -246,7 +246,8 @@ public class MediaEncoderEngine { * A handle for {@link MediaEncoder}s to pass information to this engine. * All methods here can be called for multiple threads. */ - class Controller { + @SuppressWarnings("WeakerAccess") + public class Controller { /** * Request that the muxer should start. This is not guaranteed to be executed: @@ -254,7 +255,7 @@ public class MediaEncoderEngine { * @param format the media format * @return the encoder track index */ - int notifyStarted(@NonNull MediaFormat format) { + public int notifyStarted(@NonNull MediaFormat format) { synchronized (mControllerLock) { if (mMediaMuxerStarted) { throw new IllegalStateException("Trying to start but muxer started already"); @@ -274,10 +275,12 @@ public class MediaEncoderEngine { } /** - * Whether the muxer is started. + * Whether the muxer is started. MediaEncoders are required to avoid + * calling {@link #write(OutputBufferPool, OutputBuffer)} until this method returns true. + * * @return true if muxer was started */ - boolean isStarted() { + public boolean isStarted() { synchronized (mControllerLock) { return mMediaMuxerStarted; } @@ -287,7 +290,7 @@ public class MediaEncoderEngine { * Writes the given data to the muxer. Should be called after {@link #isStarted()} * returns true. Note: this seems to be thread safe, no lock. */ - void write(@NonNull OutputBufferPool pool, @NonNull OutputBuffer buffer) { + public void write(@NonNull OutputBufferPool pool, @NonNull OutputBuffer buffer) { if (!mMediaMuxerStarted) { throw new IllegalStateException("Trying to write before muxer started"); } @@ -303,7 +306,7 @@ public class MediaEncoderEngine { * * When this succeeds, {@link MediaEncoder#stop()} is called. */ - void requestStop(int track) { + public void requestStop(int track) { synchronized (mControllerLock) { LOG.w("requestStop:", "Called for track", track); if (--mStartedEncodersCount == 0) { @@ -318,7 +321,7 @@ public class MediaEncoderEngine { * Notifies that the encoder was stopped. After this is called by all encoders, * we will actually stop the muxer. */ - void notifyStopped(int track) { + public void notifyStopped(int track) { synchronized (mControllerLock) { LOG.w("notifyStopped:", "Called for track", track); if (++mReleasedEncodersCount == mEncoders.size()) { diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/OutputBuffer.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/OutputBuffer.java index 711acfdb..5e04349f 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/OutputBuffer.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/OutputBuffer.java @@ -9,8 +9,9 @@ import java.nio.ByteBuffer; * an encoded buffer of data that should be passed * to the muxer. */ -class OutputBuffer { - MediaCodec.BufferInfo info; - int trackIndex; - ByteBuffer data; +@SuppressWarnings("WeakerAccess") +public class OutputBuffer { + public MediaCodec.BufferInfo info; + public int trackIndex; + public ByteBuffer data; } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java index aef17362..3e348de5 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java @@ -110,7 +110,7 @@ public class TextureMediaEncoder extends VideoMediaEncoder extends Med @EncoderThread @Override - void onPrepare(@NonNull MediaEncoderEngine.Controller controller, long maxLengthMillis) { + protected void onPrepare(@NonNull MediaEncoderEngine.Controller controller, long maxLengthMillis) { MediaFormat format = MediaFormat.createVideoFormat(mConfig.mimeType, mConfig.width, mConfig.height); // Set some properties. Failing to specify some of these can cause the MediaCodec @@ -93,14 +93,14 @@ abstract class VideoMediaEncoder extends Med @EncoderThread @Override - void onStart() { + protected void onStart() { // Nothing to do here. Waiting for the first frame. mFrameNumber = 0; } @EncoderThread @Override - void onStop() { + protected void onStop() { LOG.i("onStop", "setting mFrameNumber to 1 and signaling the end of input stream."); mFrameNumber = -1; // Signals the end of input stream. This is a Video only API, as in the normal case, @@ -111,7 +111,7 @@ abstract class VideoMediaEncoder extends Med } @Override - int getEncodedBitRate() { + protected int getEncodedBitRate() { return mConfig.bitRate; } }