android_LocAVPlayer.cpp revision 2b06e20ae32388f6e1dfd088d9773c34e6b1cb45
197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi/* 297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * Copyright (C) 2011 The Android Open Source Project 397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * 497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * you may not use this file except in compliance with the License. 697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * You may obtain a copy of the License at 797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * 897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * 1097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 1197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 1297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * See the License for the specific language governing permissions and 1497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * limitations under the License. 1597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi */ 1697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 1797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi//#define USE_LOG SLAndroidLogLevel_Verbose 1897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 1997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#include "sles_allinclusive.h" 2097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#include <media/IMediaPlayerService.h> 212b06e20ae32388f6e1dfd088d9773c34e6b1cb45Jean-Michel Trivi#include "android_LocAVPlayer.h" 2297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 2397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 2497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivinamespace android { 2597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 2697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi//-------------------------------------------------------------------------------------------------- 2768d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel TriviLocAVPlayer::LocAVPlayer(AudioPlayback_Parameters* params, bool hasVideo) : 2868d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel Trivi GenericMediaPlayer(params, hasVideo) 2997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi{ 30e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi SL_LOGD("LocAVPlayer::LocAVPlayer()"); 3197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 3297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi} 3397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 3497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 3597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel TriviLocAVPlayer::~LocAVPlayer() { 36e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi SL_LOGD("LocAVPlayer::~LocAVPlayer()"); 3797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 3897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi} 3997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 4097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 4197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi//-------------------------------------------------- 4297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi// Event handlers 4397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivivoid LocAVPlayer::onPrepare() { 44e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi SL_LOGD("LocAVPlayer::onPrepare()"); 4597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi switch (mDataLocatorType) { 4697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi case kDataLocatorUri: 4797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi mPlayer = mMediaPlayerService->create(getpid(), mPlayerClient /*IMediaPlayerClient*/, 4868d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel Trivi mDataLocator.uriRef /*url*/, NULL /*headers*/, mPlaybackParams.sessionId); 4997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi break; 5097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi case kDataLocatorFd: 5197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi mPlayer = mMediaPlayerService->create(getpid(), mPlayerClient /*IMediaPlayerClient*/, 5297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi mDataLocator.fdi.fd, mDataLocator.fdi.offset, mDataLocator.fdi.length, 5397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi mPlaybackParams.sessionId); 5497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi break; 5597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi case kDataLocatorNone: 5697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi SL_LOGE("no data locator for MediaPlayer object"); 5797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi break; 5897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi default: 5997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi SL_LOGE("unsupported data locator %d for MediaPlayer object", mDataLocatorType); 6097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi break; 6197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi } 6297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi // blocks until mPlayer is prepared 6368d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel Trivi GenericMediaPlayer::onPrepare(); 64e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi SL_LOGD("LocAVPlayer::onPrepare() done"); 6597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi} 6697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 6797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi} // namespace android 68