1eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang /* 2eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * Copyright (C) 2011 The Android Open Source Project 3eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * 4eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * you may not use this file except in compliance with the License. 6eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * You may obtain a copy of the License at 7eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * 8eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * http://www.apache.org/licenses/LICENSE-2.0 9eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * 10eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * Unless required by applicable law or agreed to in writing, software 11eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * distributed under the License is distributed on an "AS IS" BASIS, 12eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * See the License for the specific language governing permissions and 14eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang * limitations under the License. 15eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang */ 16eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 17eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang#ifndef TEXT_DESCRIPTIONS_H_ 18eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 19eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang#define TEXT_DESCRIPTIONS_H_ 20eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 21eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang#include <binder/Parcel.h> 22eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang#include <media/stagefright/foundation/ABase.h> 23eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 24eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wangnamespace android { 25eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 26eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wangclass TextDescriptions { 27eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wangpublic: 28eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang enum { 29eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang IN_BAND_TEXT_3GPP = 0x01, 30eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang OUT_OF_BAND_TEXT_SRT = 0x02, 31eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 32eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang GLOBAL_DESCRIPTIONS = 0x100, 33eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang LOCAL_DESCRIPTIONS = 0x200, 34eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang }; 35eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 36eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang static status_t getParcelOfDescriptions( 37eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang const uint8_t *data, ssize_t size, 38eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang uint32_t flags, int timeMs, Parcel *parcel); 39eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wangprivate: 40eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang TextDescriptions(); 41eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 42eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang enum { 43eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang // These keys must be in sync with the keys in TimedText.java 44eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_DISPLAY_FLAGS = 1, // int 45eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STYLE_FLAGS = 2, // int 46eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_BACKGROUND_COLOR_RGBA = 3, // int 47eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_HIGHLIGHT_COLOR_RGBA = 4, // int 48eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_SCROLL_DELAY = 5, // int 49eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_WRAP_TEXT = 6, // int 50eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_START_TIME = 7, // int 51eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_BLINKING_TEXT_LIST = 8, // List<CharPos> 52eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_FONT_LIST = 9, // List<Font> 53eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_HIGHLIGHT_LIST = 10, // List<CharPos> 54eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_HYPER_TEXT_LIST = 11, // List<HyperText> 55eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_KARAOKE_LIST = 12, // List<Karaoke> 56eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_STYLE_LIST = 13, // List<Style> 57eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_TEXT_POS = 14, // TextPos 58eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_JUSTIFICATION = 15, // Justification 59eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_STRUCT_TEXT = 16, // Text 60eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 61eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_GLOBAL_SETTING = 101, 62eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_LOCAL_SETTING = 102, 63eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_START_CHAR = 103, 64eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_END_CHAR = 104, 65eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_FONT_ID = 105, 66eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_FONT_SIZE = 106, 67eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang KEY_TEXT_COLOR_RGBA = 107, 68eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang }; 69eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 70eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang static status_t extractSRTLocalDescriptions( 71eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang const uint8_t *data, ssize_t size, 72eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang int timeMs, Parcel *parcel); 73eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang static status_t extract3GPPGlobalDescriptions( 74eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang const uint8_t *data, ssize_t size, 75eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang Parcel *parcel, int depth); 76eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang static status_t extract3GPPLocalDescriptions( 77eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang const uint8_t *data, ssize_t size, 78eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang int timeMs, Parcel *parcel, int depth); 79eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 80eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang DISALLOW_EVIL_CONSTRUCTORS(TextDescriptions); 81eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang}; 82eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang 83eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang} // namespace android 84eaa5d8f9c0117bdaa20fd0a57921156bb0c06345Gloria Wang#endif // TEXT_DESCRIPTIONS_H_ 85