Skip to content

Commit 77cda10

Browse files
James DongAndroid (Google) Code Review
authored andcommitted
Merge "Defines MediaPlayer APIs to support multiple audio/video/timedtext tracks."
2 parents d5bceea + 41f3f71 commit 77cda10

File tree

17 files changed

+576
-193
lines changed

17 files changed

+576
-193
lines changed

include/media/mediaplayer.h

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ enum media_info_type {
120120
MEDIA_INFO_NOT_SEEKABLE = 801,
121121
// New media metadata is available.
122122
MEDIA_INFO_METADATA_UPDATE = 802,
123+
124+
//9xx
125+
MEDIA_INFO_TIMED_TEXT_ERROR = 900,
123126
};
124127

125128

@@ -140,9 +143,6 @@ enum media_player_states {
140143
// The same enum space is used for both set and get, in case there are future keys that
141144
// can be both set and get. But as of now, all parameters are either set only or get only.
142145
enum media_parameter_keys {
143-
KEY_PARAMETER_TIMED_TEXT_TRACK_INDEX = 1000, // set only
144-
KEY_PARAMETER_TIMED_TEXT_ADD_OUT_OF_BAND_SOURCE = 1001, // set only
145-
146146
// Streaming/buffering parameters
147147
KEY_PARAMETER_CACHE_STAT_COLLECT_FREQ_MS = 1100, // set only
148148

@@ -155,6 +155,23 @@ enum media_parameter_keys {
155155
KEY_PARAMETER_PLAYBACK_RATE_PERMILLE = 1300, // set only
156156
};
157157

158+
// Keep INVOKE_ID_* in sync with MediaPlayer.java.
159+
enum media_player_invoke_ids {
160+
INVOKE_ID_GET_TRACK_INFO = 1,
161+
INVOKE_ID_ADD_EXTERNAL_SOURCE = 2,
162+
INVOKE_ID_ADD_EXTERNAL_SOURCE_FD = 3,
163+
INVOKE_ID_SELECT_TRACK = 4,
164+
INVOKE_ID_UNSELECT_TRACK = 5,
165+
};
166+
167+
// Keep MEDIA_TRACK_TYPE_* in sync with MediaPlayer.java.
168+
enum media_track_type {
169+
MEDIA_TRACK_TYPE_UNKNOWN = 0,
170+
MEDIA_TRACK_TYPE_VIDEO = 1,
171+
MEDIA_TRACK_TYPE_AUDIO = 2,
172+
MEDIA_TRACK_TYPE_TIMEDTEXT = 3,
173+
};
174+
158175
// ----------------------------------------------------------------------------
159176
// ref-counted object for callbacks
160177
class MediaPlayerListener: virtual public RefBase

include/media/stagefright/MediaDefs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ extern const char *MEDIA_MIMETYPE_CONTAINER_MPEG2PS;
5454
extern const char *MEDIA_MIMETYPE_CONTAINER_WVM;
5555

5656
extern const char *MEDIA_MIMETYPE_TEXT_3GPP;
57+
extern const char *MEDIA_MIMETYPE_TEXT_SUBRIP;
5758

5859
} // namespace android
5960

include/media/stagefright/timedtext/TimedTextDriver.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,26 @@ class TimedTextDriver {
3737

3838
~TimedTextDriver();
3939

40-
// TODO: pause-resume pair seems equivalent to stop-start pair.
41-
// Check if it is replaceable with stop-start.
4240
status_t start();
43-
status_t stop();
4441
status_t pause();
45-
status_t resume();
42+
status_t selectTrack(int32_t index);
43+
status_t unselectTrack(int32_t index);
4644

4745
status_t seekToAsync(int64_t timeUs);
4846

4947
status_t addInBandTextSource(const sp<MediaSource>& source);
50-
status_t addOutOfBandTextSource(const Parcel &request);
48+
status_t addOutOfBandTextSource(const char *uri, const char *mimeType);
49+
// Caller owns the file desriptor and caller is responsible for closing it.
50+
status_t addOutOfBandTextSource(
51+
int fd, off64_t offset, size_t length, const char *mimeType);
5152

52-
status_t setTimedTextTrackIndex(int32_t index);
53+
void getTrackInfo(Parcel *parcel);
5354

5455
private:
5556
Mutex mLock;
5657

5758
enum State {
5859
UNINITIALIZED,
59-
STOPPED,
6060
PLAYING,
6161
PAUSED,
6262
};
@@ -67,11 +67,11 @@ class TimedTextDriver {
6767

6868
// Variables to be guarded by mLock.
6969
State mState;
70-
Vector<sp<TimedTextSource> > mTextInBandVector;
71-
Vector<sp<TimedTextSource> > mTextOutOfBandVector;
70+
int32_t mCurrentTrackIndex;
71+
Vector<sp<TimedTextSource> > mTextSourceVector;
7272
// -- End of variables to be guarded by mLock
7373

74-
status_t setTimedTextTrackIndex_l(int32_t index);
74+
status_t selectTrack_l(int32_t index);
7575

7676
DISALLOW_EVIL_CONSTRUCTORS(TimedTextDriver);
7777
};

0 commit comments

Comments
 (0)