Loading media/java/android/media/tv/tuner/Tuner.java +1 −1 Original line number Diff line number Diff line Loading @@ -652,7 +652,7 @@ public class Tuner implements AutoCloseable { if (filter != null) { filter.setMainType(mainType); filter.setSubtype(subType); filter.setCallback(cb); filter.setCallback(cb, executor); if (mHandler == null) { mHandler = createEventHandler(); } Loading media/java/android/media/tv/tuner/filter/Filter.java +10 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.media.tv.tuner.TunerUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.concurrent.Executor; /** * Tuner data filter. Loading Loading @@ -177,6 +178,7 @@ public class Filter implements AutoCloseable { private long mNativeContext; private FilterCallback mCallback; private Executor mExecutor; private final int mId; private int mMainType; private int mSubtype; Loading @@ -199,6 +201,12 @@ public class Filter implements AutoCloseable { private void onFilterStatus(int status) { } private void onFilterEvent(FilterEvent[] events) { if (mCallback != null && mExecutor != null) { mExecutor.execute(() -> mCallback.onFilterEvent(this, events)); } } /** @hide */ public void setMainType(@Type int mainType) { mMainType = mainType; Loading @@ -209,8 +217,9 @@ public class Filter implements AutoCloseable { } /** @hide */ public void setCallback(FilterCallback cb) { public void setCallback(FilterCallback cb, Executor executor) { mCallback = cb; mExecutor = executor; } /** @hide */ public FilterCallback getCallback() { Loading media/jni/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -136,17 +136,23 @@ cc_library_shared { ], shared_libs: [ "android.hardware.graphics.bufferqueue@2.0", "android.hardware.tv.tuner@1.0", "libandroid_runtime", "libcutils", "libfmq", "libhidlbase", "liblog", "libmedia", "libnativehelper", "libutils", ], defaults: [ "libcodec2-impl-defaults", ], header_libs: [ "libcodec2_internal", "libstagefright_foundation_headers", ], Loading media/jni/android_media_MediaCodec.cpp +1 −38 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "android_media_MediaCodec.h" #include "android_media_MediaCodecLinearBlock.h" #include "android_media_MediaCrypto.h" #include "android_media_MediaDescrambler.h" #include "android_media_MediaMetricsJNI.h" Loading Loading @@ -174,44 +175,6 @@ struct fields_t { static fields_t gFields; static const void *sRefBaseOwner; struct JMediaCodecLinearBlock { std::shared_ptr<C2Buffer> mBuffer; std::shared_ptr<C2ReadView> mReadonlyMapping; std::shared_ptr<C2LinearBlock> mBlock; std::shared_ptr<C2WriteView> mReadWriteMapping; sp<IMemoryHeap> mHeap; sp<hardware::HidlMemory> mMemory; sp<MediaCodecBuffer> mLegacyBuffer; std::once_flag mCopyWarningFlag; std::shared_ptr<C2Buffer> toC2Buffer(size_t offset, size_t size) { if (mBuffer) { if (mBuffer->data().type() != C2BufferData::LINEAR) { return nullptr; } C2ConstLinearBlock block = mBuffer->data().linearBlocks().front(); if (offset == 0 && size == block.capacity()) { return mBuffer; } return C2Buffer::CreateLinearBuffer(block.subBlock(offset, size)); } if (mBlock) { return C2Buffer::CreateLinearBuffer(mBlock->share(offset, size, C2Fence{})); } return nullptr; } sp<hardware::HidlMemory> toHidlMemory() { if (mMemory) { return mMemory; } return nullptr; } }; struct JMediaCodecGraphicBlock { std::shared_ptr<C2Buffer> mBuffer; Loading media/jni/android_media_MediaCodec.h +3 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ #include "jni.h" #include <C2Buffer.h> #include <binder/MemoryHeapBase.h> #include <media/MediaCodecBuffer.h> #include <media/MediaMetricsItem.h> #include <media/hardware/CryptoAPI.h> #include <media/stagefright/foundation/ABase.h> Loading Loading
media/java/android/media/tv/tuner/Tuner.java +1 −1 Original line number Diff line number Diff line Loading @@ -652,7 +652,7 @@ public class Tuner implements AutoCloseable { if (filter != null) { filter.setMainType(mainType); filter.setSubtype(subType); filter.setCallback(cb); filter.setCallback(cb, executor); if (mHandler == null) { mHandler = createEventHandler(); } Loading
media/java/android/media/tv/tuner/filter/Filter.java +10 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.media.tv.tuner.TunerUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.concurrent.Executor; /** * Tuner data filter. Loading Loading @@ -177,6 +178,7 @@ public class Filter implements AutoCloseable { private long mNativeContext; private FilterCallback mCallback; private Executor mExecutor; private final int mId; private int mMainType; private int mSubtype; Loading @@ -199,6 +201,12 @@ public class Filter implements AutoCloseable { private void onFilterStatus(int status) { } private void onFilterEvent(FilterEvent[] events) { if (mCallback != null && mExecutor != null) { mExecutor.execute(() -> mCallback.onFilterEvent(this, events)); } } /** @hide */ public void setMainType(@Type int mainType) { mMainType = mainType; Loading @@ -209,8 +217,9 @@ public class Filter implements AutoCloseable { } /** @hide */ public void setCallback(FilterCallback cb) { public void setCallback(FilterCallback cb, Executor executor) { mCallback = cb; mExecutor = executor; } /** @hide */ public FilterCallback getCallback() { Loading
media/jni/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -136,17 +136,23 @@ cc_library_shared { ], shared_libs: [ "android.hardware.graphics.bufferqueue@2.0", "android.hardware.tv.tuner@1.0", "libandroid_runtime", "libcutils", "libfmq", "libhidlbase", "liblog", "libmedia", "libnativehelper", "libutils", ], defaults: [ "libcodec2-impl-defaults", ], header_libs: [ "libcodec2_internal", "libstagefright_foundation_headers", ], Loading
media/jni/android_media_MediaCodec.cpp +1 −38 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "android_media_MediaCodec.h" #include "android_media_MediaCodecLinearBlock.h" #include "android_media_MediaCrypto.h" #include "android_media_MediaDescrambler.h" #include "android_media_MediaMetricsJNI.h" Loading Loading @@ -174,44 +175,6 @@ struct fields_t { static fields_t gFields; static const void *sRefBaseOwner; struct JMediaCodecLinearBlock { std::shared_ptr<C2Buffer> mBuffer; std::shared_ptr<C2ReadView> mReadonlyMapping; std::shared_ptr<C2LinearBlock> mBlock; std::shared_ptr<C2WriteView> mReadWriteMapping; sp<IMemoryHeap> mHeap; sp<hardware::HidlMemory> mMemory; sp<MediaCodecBuffer> mLegacyBuffer; std::once_flag mCopyWarningFlag; std::shared_ptr<C2Buffer> toC2Buffer(size_t offset, size_t size) { if (mBuffer) { if (mBuffer->data().type() != C2BufferData::LINEAR) { return nullptr; } C2ConstLinearBlock block = mBuffer->data().linearBlocks().front(); if (offset == 0 && size == block.capacity()) { return mBuffer; } return C2Buffer::CreateLinearBuffer(block.subBlock(offset, size)); } if (mBlock) { return C2Buffer::CreateLinearBuffer(mBlock->share(offset, size, C2Fence{})); } return nullptr; } sp<hardware::HidlMemory> toHidlMemory() { if (mMemory) { return mMemory; } return nullptr; } }; struct JMediaCodecGraphicBlock { std::shared_ptr<C2Buffer> mBuffer; Loading
media/jni/android_media_MediaCodec.h +3 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ #include "jni.h" #include <C2Buffer.h> #include <binder/MemoryHeapBase.h> #include <media/MediaCodecBuffer.h> #include <media/MediaMetricsItem.h> #include <media/hardware/CryptoAPI.h> #include <media/stagefright/foundation/ABase.h> Loading