Loading media/libstagefright/omx/1.0/OmxStore.cpp 0 → 100644 +68 −0 Original line number Original line Diff line number Diff line /* * Copyright 2017, 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. */ #include <ios> #include <list> #include <android-base/logging.h> #include "Conversion.h" #include "OmxStore.h" namespace android { namespace hardware { namespace media { namespace omx { namespace V1_0 { namespace implementation { OmxStore::OmxStore() { } OmxStore::~OmxStore() { } Return<void> OmxStore::listServiceAttributes(listServiceAttributes_cb _hidl_cb) { _hidl_cb(toStatus(NO_ERROR), hidl_vec<ServiceAttribute>()); return Void(); } Return<void> OmxStore::getNodePrefix(getNodePrefix_cb _hidl_cb) { _hidl_cb(hidl_string()); return Void(); } Return<void> OmxStore::listRoles(listRoles_cb _hidl_cb) { _hidl_cb(hidl_vec<RoleInfo>()); return Void(); } Return<sp<IOmx>> OmxStore::getOmx(hidl_string const& omxName) { return IOmx::tryGetService(omxName); } // Methods from ::android::hidl::base::V1_0::IBase follow. IOmxStore* HIDL_FETCH_IOmxStore(const char* /* name */) { return new OmxStore(); } } // namespace implementation } // namespace V1_0 } // namespace omx } // namespace media } // namespace hardware } // namespace android media/libstagefright/omx/1.0/OmxStore.h 0 → 100644 +63 −0 Original line number Original line Diff line number Diff line /* * Copyright 2017, 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. */ #ifndef ANDROID_HARDWARE_MEDIA_OMX_V1_0_OMXSTORE_H #define ANDROID_HARDWARE_MEDIA_OMX_V1_0_OMXSTORE_H #include <hidl/MQDescriptor.h> #include <hidl/Status.h> #include <android/hardware/media/omx/1.0/IOmxStore.h> namespace android { namespace hardware { namespace media { namespace omx { namespace V1_0 { namespace implementation { using ::android::hardware::media::omx::V1_0::IOmxStore; using ::android::hardware::media::omx::V1_0::IOmx; using ::android::hardware::media::omx::V1_0::Status; using ::android::hidl::base::V1_0::IBase; using ::android::hardware::hidl_string; using ::android::hardware::hidl_vec; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::sp; using ::android::wp; struct OmxStore : public IOmxStore { OmxStore(); virtual ~OmxStore(); // Methods from IOmx Return<void> listServiceAttributes(listServiceAttributes_cb) override; Return<void> getNodePrefix(getNodePrefix_cb) override; Return<void> listRoles(listRoles_cb) override; Return<sp<IOmx>> getOmx(hidl_string const&) override; }; extern "C" IOmxStore* HIDL_FETCH_IOmxStore(const char* name); } // namespace implementation } // namespace V1_0 } // namespace omx } // namespace media } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_MEDIA_OMX_V1_0_OMXSTORE_H media/libstagefright/omx/Android.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,7 @@ LOCAL_SRC_FILES:= \ SoftVideoDecoderOMXComponent.cpp \ SoftVideoDecoderOMXComponent.cpp \ SoftVideoEncoderOMXComponent.cpp \ SoftVideoEncoderOMXComponent.cpp \ 1.0/Omx.cpp \ 1.0/Omx.cpp \ 1.0/OmxStore.cpp \ 1.0/WGraphicBufferProducer.cpp \ 1.0/WGraphicBufferProducer.cpp \ 1.0/WProducerListener.cpp \ 1.0/WProducerListener.cpp \ 1.0/WGraphicBufferSource.cpp \ 1.0/WGraphicBufferSource.cpp \ Loading services/mediacodec/main_codecservice.cpp +15 −8 Original line number Original line Diff line number Diff line Loading @@ -31,9 +31,9 @@ #include "MediaCodecService.h" #include "MediaCodecService.h" #include "minijail.h" #include "minijail.h" #include <android/hardware/media/omx/1.0/IOmx.h> #include <hidl/HidlTransportSupport.h> #include <hidl/HidlTransportSupport.h> #include <omx/1.0/Omx.h> #include <omx/1.0/Omx.h> #include <omx/1.0/OmxStore.h> using namespace android; using namespace android; Loading Loading @@ -61,17 +61,24 @@ int main(int argc __unused, char** argv) if (treble) { if (treble) { using namespace ::android::hardware::media::omx::V1_0; using namespace ::android::hardware::media::omx::V1_0; sp<IOmxStore> omxStore = new implementation::OmxStore(); if (omxStore == nullptr) { LOG(ERROR) << "Cannot create IOmxStore HAL service."; } else if (omxStore->registerAsService() != OK) { LOG(ERROR) << "Cannot register IOmxStore HAL service."; } else { sp<IOmx> omx = new implementation::Omx(); sp<IOmx> omx = new implementation::Omx(); if (omx == nullptr) { if (omx == nullptr) { LOG(ERROR) << "Cannot create a Treble IOmx service."; LOG(ERROR) << "Cannot create IOmx HAL service."; } else if (omx->registerAsService() != OK) { } else if (omx->registerAsService() != OK) { LOG(ERROR) << "Cannot register a Treble IOmx service."; LOG(ERROR) << "Cannot register IOmx HAL service."; } else { } else { LOG(INFO) << "Treble IOmx service created."; LOG(INFO) << "Treble OMX service created."; } } } } else { } else { MediaCodecService::instantiate(); MediaCodecService::instantiate(); LOG(INFO) << "Non-Treble IOMX service created."; LOG(INFO) << "Non-Treble OMX service created."; } } ProcessState::self()->startThreadPool(); ProcessState::self()->startThreadPool(); Loading Loading
media/libstagefright/omx/1.0/OmxStore.cpp 0 → 100644 +68 −0 Original line number Original line Diff line number Diff line /* * Copyright 2017, 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. */ #include <ios> #include <list> #include <android-base/logging.h> #include "Conversion.h" #include "OmxStore.h" namespace android { namespace hardware { namespace media { namespace omx { namespace V1_0 { namespace implementation { OmxStore::OmxStore() { } OmxStore::~OmxStore() { } Return<void> OmxStore::listServiceAttributes(listServiceAttributes_cb _hidl_cb) { _hidl_cb(toStatus(NO_ERROR), hidl_vec<ServiceAttribute>()); return Void(); } Return<void> OmxStore::getNodePrefix(getNodePrefix_cb _hidl_cb) { _hidl_cb(hidl_string()); return Void(); } Return<void> OmxStore::listRoles(listRoles_cb _hidl_cb) { _hidl_cb(hidl_vec<RoleInfo>()); return Void(); } Return<sp<IOmx>> OmxStore::getOmx(hidl_string const& omxName) { return IOmx::tryGetService(omxName); } // Methods from ::android::hidl::base::V1_0::IBase follow. IOmxStore* HIDL_FETCH_IOmxStore(const char* /* name */) { return new OmxStore(); } } // namespace implementation } // namespace V1_0 } // namespace omx } // namespace media } // namespace hardware } // namespace android
media/libstagefright/omx/1.0/OmxStore.h 0 → 100644 +63 −0 Original line number Original line Diff line number Diff line /* * Copyright 2017, 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. */ #ifndef ANDROID_HARDWARE_MEDIA_OMX_V1_0_OMXSTORE_H #define ANDROID_HARDWARE_MEDIA_OMX_V1_0_OMXSTORE_H #include <hidl/MQDescriptor.h> #include <hidl/Status.h> #include <android/hardware/media/omx/1.0/IOmxStore.h> namespace android { namespace hardware { namespace media { namespace omx { namespace V1_0 { namespace implementation { using ::android::hardware::media::omx::V1_0::IOmxStore; using ::android::hardware::media::omx::V1_0::IOmx; using ::android::hardware::media::omx::V1_0::Status; using ::android::hidl::base::V1_0::IBase; using ::android::hardware::hidl_string; using ::android::hardware::hidl_vec; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::sp; using ::android::wp; struct OmxStore : public IOmxStore { OmxStore(); virtual ~OmxStore(); // Methods from IOmx Return<void> listServiceAttributes(listServiceAttributes_cb) override; Return<void> getNodePrefix(getNodePrefix_cb) override; Return<void> listRoles(listRoles_cb) override; Return<sp<IOmx>> getOmx(hidl_string const&) override; }; extern "C" IOmxStore* HIDL_FETCH_IOmxStore(const char* name); } // namespace implementation } // namespace V1_0 } // namespace omx } // namespace media } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_MEDIA_OMX_V1_0_OMXSTORE_H
media/libstagefright/omx/Android.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,7 @@ LOCAL_SRC_FILES:= \ SoftVideoDecoderOMXComponent.cpp \ SoftVideoDecoderOMXComponent.cpp \ SoftVideoEncoderOMXComponent.cpp \ SoftVideoEncoderOMXComponent.cpp \ 1.0/Omx.cpp \ 1.0/Omx.cpp \ 1.0/OmxStore.cpp \ 1.0/WGraphicBufferProducer.cpp \ 1.0/WGraphicBufferProducer.cpp \ 1.0/WProducerListener.cpp \ 1.0/WProducerListener.cpp \ 1.0/WGraphicBufferSource.cpp \ 1.0/WGraphicBufferSource.cpp \ Loading
services/mediacodec/main_codecservice.cpp +15 −8 Original line number Original line Diff line number Diff line Loading @@ -31,9 +31,9 @@ #include "MediaCodecService.h" #include "MediaCodecService.h" #include "minijail.h" #include "minijail.h" #include <android/hardware/media/omx/1.0/IOmx.h> #include <hidl/HidlTransportSupport.h> #include <hidl/HidlTransportSupport.h> #include <omx/1.0/Omx.h> #include <omx/1.0/Omx.h> #include <omx/1.0/OmxStore.h> using namespace android; using namespace android; Loading Loading @@ -61,17 +61,24 @@ int main(int argc __unused, char** argv) if (treble) { if (treble) { using namespace ::android::hardware::media::omx::V1_0; using namespace ::android::hardware::media::omx::V1_0; sp<IOmxStore> omxStore = new implementation::OmxStore(); if (omxStore == nullptr) { LOG(ERROR) << "Cannot create IOmxStore HAL service."; } else if (omxStore->registerAsService() != OK) { LOG(ERROR) << "Cannot register IOmxStore HAL service."; } else { sp<IOmx> omx = new implementation::Omx(); sp<IOmx> omx = new implementation::Omx(); if (omx == nullptr) { if (omx == nullptr) { LOG(ERROR) << "Cannot create a Treble IOmx service."; LOG(ERROR) << "Cannot create IOmx HAL service."; } else if (omx->registerAsService() != OK) { } else if (omx->registerAsService() != OK) { LOG(ERROR) << "Cannot register a Treble IOmx service."; LOG(ERROR) << "Cannot register IOmx HAL service."; } else { } else { LOG(INFO) << "Treble IOmx service created."; LOG(INFO) << "Treble OMX service created."; } } } } else { } else { MediaCodecService::instantiate(); MediaCodecService::instantiate(); LOG(INFO) << "Non-Treble IOMX service created."; LOG(INFO) << "Non-Treble OMX service created."; } } ProcessState::self()->startThreadPool(); ProcessState::self()->startThreadPool(); Loading