summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/timedtext/TimedTextSource.h
diff options
context:
space:
mode:
authorInsun Kang <insun@google.com>2012-01-11 22:03:12 +0900
committerInsun Kang <insun@google.com>2012-01-31 14:44:32 +0900
commit6655174826330afe66ef766258181ae8c11f3f6c (patch)
tree5a2e4d563aede4d242cbe2b48e07e00ea6221cde /media/libstagefright/timedtext/TimedTextSource.h
parente59542680aa0e83cacbc471fbd3945b0509a849c (diff)
downloadframeworks_av-6655174826330afe66ef766258181ae8c11f3f6c.zip
frameworks_av-6655174826330afe66ef766258181ae8c11f3f6c.tar.gz
frameworks_av-6655174826330afe66ef766258181ae8c11f3f6c.tar.bz2
First step of refactoring 'timedtext' code.
Goal 1. Removed dependency of TimedTextPlayer on AwsomePlayer. 2. Generalized TimedTextParser to TimedTextSource and its subclasses. Summary 1. Introduced TimedTextDriver, TimedTextPlayer (new implementation), TimedTextSource (and its subclasses). 2. Removed TimedTextParser. Remaining TODOs 1. Revise VideoVidew, Gallery3D app, AwesomePlayer to check if 'pause' and 'resume' works well. 2. Consider revising MediaPlayer APIs such as setParameter() -> addTextSource(). Need more thoughts. Change-Id: Ie0c4f15b9690102de755cef6940f8c31ccf78e27
Diffstat (limited to 'media/libstagefright/timedtext/TimedTextSource.h')
-rw-r--r--media/libstagefright/timedtext/TimedTextSource.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/media/libstagefright/timedtext/TimedTextSource.h b/media/libstagefright/timedtext/TimedTextSource.h
new file mode 100644
index 0000000..06bae71
--- /dev/null
+++ b/media/libstagefright/timedtext/TimedTextSource.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef TIMED_TEXT_SOURCE_H_
+#define TIMED_TEXT_SOURCE_H_
+
+#include <media/stagefright/foundation/ABase.h> // for DISALLOW_XXX macro.
+#include <media/stagefright/MediaErrors.h>
+#include <media/stagefright/MediaSource.h> // for MediaSource::ReadOptions
+#include <utils/RefBase.h>
+
+namespace android {
+
+class DataSource;
+class Parcel;
+
+class TimedTextSource : public RefBase {
+ public:
+ enum FileType {
+ OUT_OF_BAND_FILE_SRT = 1,
+ OUT_OF_BAND_FILE_SMI = 2,
+ };
+ static sp<TimedTextSource> CreateTimedTextSource(
+ const sp<MediaSource>& source);
+ static sp<TimedTextSource> CreateTimedTextSource(
+ const sp<DataSource>& source, FileType filetype);
+ TimedTextSource() {}
+ virtual status_t start() = 0;
+ virtual status_t stop() = 0;
+ // Returns subtitle parcel and its start time.
+ virtual status_t read(
+ int64_t *timeUs,
+ Parcel *parcel,
+ const MediaSource::ReadOptions *options = NULL) = 0;
+ virtual status_t extractGlobalDescriptions(Parcel *parcel) {
+ return INVALID_OPERATION;
+ }
+
+ protected:
+ virtual ~TimedTextSource() { }
+
+ private:
+ DISALLOW_EVIL_CONSTRUCTORS(TimedTextSource);
+};
+
+} // namespace android
+
+#endif // TIMED_TEXT_SOURCE_H_