MediaPlayer_to_android.h revision 97876858aa17c7f24c6a1d60be09a57bc1824ba3
1eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/*
2eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Copyright (C) 2010 The Android Open Source Project
3eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi *
4eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License");
5eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * you may not use this file except in compliance with the License.
6eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * You may obtain a copy of the License at
7eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi *
8eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi *      http://www.apache.org/licenses/LICENSE-2.0
9eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi *
10eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software
11eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS,
12eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * See the License for the specific language governing permissions and
14eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * limitations under the License.
15eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi */
16eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
17eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/**************************************************************************************************
18eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Player lifecycle
19eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi ****************************/
20eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
21eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Triviextern XAresult android_Player_create(CMediaPlayer *mp);
22eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
23eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Triviextern XAresult android_Player_realize(CMediaPlayer *mp, SLboolean async);
24eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
2597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Triviextern XAresult android_Player_destroy(CMediaPlayer *mp);
2697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
27eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
28eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/**************************************************************************************************
29eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Configuration
30eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi ****************************/
310e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi/**
320e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi * pre-conditions: avp != NULL, surface != NULL
330e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi */
340e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Triviextern XAresult android_Player_setVideoSurface(android::AVPlayer *avp, void* surface);
35eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
36eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/**************************************************************************************************
37eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Playback control and events
38eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi ****************************/
39f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi/**
40f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * pre-condition: avp != NULL
41f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */
42f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Triviextern XAresult android_Player_setPlayState(android::AVPlayer *avp, SLuint32 playState,
43581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi        AndroidObject_state* pObjState);
44eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
45eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
46eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
47eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/**************************************************************************************************
48eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Buffer Queue events
49eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi ****************************/
50eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
51eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/**************************************************************************************************
52eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * Android Buffer Queue
53eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi ****************************/
54eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi
55eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/* must be called with a lock on mp->mThis */
56eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Triviextern void android_Player_androidBufferQueue_registerCallback_l(CMediaPlayer *mp);
57eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi/* must be called with a lock on mp->mThis */
58eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Triviextern void android_Player_androidBufferQueue_enqueue_l(CMediaPlayer *mp,
59eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi        SLuint32 bufferId, SLuint32 length, SLAbufferQueueEvent event, void *pData);
60