blob: e2796d2f3080875f6935c356dab388348a420ef1 [file] [log] [blame]
Andreas Hubere46b7be2009-07-14 16:56:47 -07001/*
2**
3** Copyright 2009, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18#ifndef ANDROID_STAGEFRIGHTPLAYER_H
19#define ANDROID_STAGEFRIGHTPLAYER_H
20
21#include <media/MediaPlayerInterface.h>
22
23namespace android {
24
Andreas Huber27366fc2009-11-20 09:32:46 -080025struct AwesomePlayer;
Andreas Hubere46b7be2009-07-14 16:56:47 -070026
27class StagefrightPlayer : public MediaPlayerInterface {
28public:
29 StagefrightPlayer();
30 virtual ~StagefrightPlayer();
31
32 virtual status_t initCheck();
Andreas Huber25643002010-01-28 11:19:57 -080033
34 virtual status_t setDataSource(
35 const char *url, const KeyedVector<String8, String8> *headers);
36
Andreas Hubere46b7be2009-07-14 16:56:47 -070037 virtual status_t setDataSource(int fd, int64_t offset, int64_t length);
Andreas Huber52b52cd2010-11-23 11:41:34 -080038
39 virtual status_t setDataSource(const sp<IStreamSource> &source);
40
Andreas Hubere3c01832010-08-16 08:49:37 -070041 virtual status_t setVideoSurface(const sp<Surface> &surface);
Glenn Kastencc562a32011-02-08 17:26:17 -080042 virtual status_t setVideoSurfaceTexture(
43 const sp<ISurfaceTexture> &surfaceTexture);
Andreas Hubere46b7be2009-07-14 16:56:47 -070044 virtual status_t prepare();
45 virtual status_t prepareAsync();
46 virtual status_t start();
47 virtual status_t stop();
48 virtual status_t pause();
49 virtual bool isPlaying();
50 virtual status_t seekTo(int msec);
51 virtual status_t getCurrentPosition(int *msec);
52 virtual status_t getDuration(int *msec);
53 virtual status_t reset();
54 virtual status_t setLooping(int loop);
55 virtual player_type playerType();
56 virtual status_t invoke(const Parcel &request, Parcel *reply);
57 virtual void setAudioSink(const sp<AudioSink> &audioSink);
58
Andreas Huber62f7ffe2010-05-06 10:18:05 -070059 virtual status_t getMetadata(
60 const media::Metadata::Filter& ids, Parcel *records);
61
Andreas Hubere46b7be2009-07-14 16:56:47 -070062private:
Andreas Huber27366fc2009-11-20 09:32:46 -080063 AwesomePlayer *mPlayer;
Andreas Hubere46b7be2009-07-14 16:56:47 -070064
65 StagefrightPlayer(const StagefrightPlayer &);
66 StagefrightPlayer &operator=(const StagefrightPlayer &);
67};
68
69} // namespace android
70
71#endif // ANDROID_STAGEFRIGHTPLAYER_H