1f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa/* 2f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * Copyright 2016, The Android Open Source Project 3f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * 4f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * Licensed under the Apache License, Version 2.0 (the "License"); 5f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * you may not use this file except in compliance with the License. 6f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * You may obtain a copy of the License at 7f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * 8f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * http://www.apache.org/licenses/LICENSE-2.0 9f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * 10f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * Unless required by applicable law or agreed to in writing, software 11f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * distributed under the License is distributed on an "AS IS" BASIS, 12f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * See the License for the specific language governing permissions and 14f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * limitations under the License. 15f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa */ 16f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 17ac7d4125516299b8a3e6f2b25822a692bdd96311Pawin Vongmasa#include <media/omx/1.0/WGraphicBufferSource.h> 18ac7d4125516299b8a3e6f2b25822a692bdd96311Pawin Vongmasa#include <media/omx/1.0/WOmxNode.h> 19ac7d4125516299b8a3e6f2b25822a692bdd96311Pawin Vongmasa#include <media/omx/1.0/Conversion.h> 20517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 21517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasanamespace android { 22517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasanamespace hardware { 23517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasanamespace media { 24517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasanamespace omx { 25517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasanamespace V1_0 { 26eeac97b18ca5c939bf2ac59334d36d54f705af3dPawin Vongmasanamespace utils { 27517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 28517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa// LWGraphicBufferSource 29517b0e090680e378f056677201426ed9dc325c65Pawin VongmasaLWGraphicBufferSource::LWGraphicBufferSource( 30517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa sp<TGraphicBufferSource> const& base) : mBase(base) { 31517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 32517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 33d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::configure( 34517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa const sp<IOMXNode>& omxNode, int32_t dataSpace) { 35ac7d4125516299b8a3e6f2b25822a692bdd96311Pawin Vongmasa sp<IOmxNode> hOmxNode = omxNode->getHalInterface(); 36517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->configure( 37ac7d4125516299b8a3e6f2b25822a692bdd96311Pawin Vongmasa hOmxNode == nullptr ? new TWOmxNode(omxNode) : hOmxNode, 38ac7d4125516299b8a3e6f2b25822a692bdd96311Pawin Vongmasa toHardwareDataspace(dataSpace))); 39517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 40517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 41d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setSuspend( 42764d945bfdb9dec60f2b482fbf6c5e83824ed950Hangyu Kuang bool suspend, int64_t timeUs) { 43764d945bfdb9dec60f2b482fbf6c5e83824ed950Hangyu Kuang return toBinderStatus(mBase->setSuspend(suspend, timeUs)); 44517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 45517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 46d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setRepeatPreviousFrameDelayUs( 47517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa int64_t repeatAfterUs) { 48517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->setRepeatPreviousFrameDelayUs(repeatAfterUs)); 49517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 50517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 51d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setMaxFps(float maxFps) { 52517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->setMaxFps(maxFps)); 53517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 54517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 55d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setTimeLapseConfig( 5622dc508717c7767927064ec7c152def99e54adcbPawin Vongmasa double fps, double captureFps) { 5722dc508717c7767927064ec7c152def99e54adcbPawin Vongmasa return toBinderStatus(mBase->setTimeLapseConfig(fps, captureFps)); 58517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 59517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 60d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setStartTimeUs( 61517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa int64_t startTimeUs) { 62517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->setStartTimeUs(startTimeUs)); 63517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 64517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 65d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setStopTimeUs( 66764d945bfdb9dec60f2b482fbf6c5e83824ed950Hangyu Kuang int64_t stopTimeUs) { 67764d945bfdb9dec60f2b482fbf6c5e83824ed950Hangyu Kuang return toBinderStatus(mBase->setStopTimeUs(stopTimeUs)); 68764d945bfdb9dec60f2b482fbf6c5e83824ed950Hangyu Kuang} 69764d945bfdb9dec60f2b482fbf6c5e83824ed950Hangyu Kuang 70f72cefddf378909f360998852e41f49042711299Hangyu KuangBnStatus LWGraphicBufferSource::getStopTimeOffsetUs( 71f72cefddf378909f360998852e41f49042711299Hangyu Kuang int64_t *stopTimeOffsetUs) { 72f72cefddf378909f360998852e41f49042711299Hangyu Kuang return toBinderStatus(mBase->getStopTimeOffsetUs( 73f72cefddf378909f360998852e41f49042711299Hangyu Kuang [stopTimeOffsetUs](auto, auto offsetUs) { 74f72cefddf378909f360998852e41f49042711299Hangyu Kuang *stopTimeOffsetUs = offsetUs; 75f72cefddf378909f360998852e41f49042711299Hangyu Kuang })); 76f72cefddf378909f360998852e41f49042711299Hangyu Kuang} 77f72cefddf378909f360998852e41f49042711299Hangyu Kuang 78d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setColorAspects( 79517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa int32_t aspects) { 80517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->setColorAspects( 81517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa toHardwareColorAspects(aspects))); 82517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 83517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 84d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::setTimeOffsetUs( 85517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa int64_t timeOffsetsUs) { 86517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->setTimeOffsetUs(timeOffsetsUs)); 87517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 88517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 89d095e65c8c125c555046c60539a0f7abf0ccf271Robert ShihBnStatus LWGraphicBufferSource::signalEndOfInputStream() { 90517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa return toBinderStatus(mBase->signalEndOfInputStream()); 91517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} 92517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa 93eeac97b18ca5c939bf2ac59334d36d54f705af3dPawin Vongmasa} // namespace utils 94517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} // namespace V1_0 95517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} // namespace omx 96517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} // namespace media 97517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} // namespace hardware 98517b0e090680e378f056677201426ed9dc325c65Pawin Vongmasa} // namespace android 99