13b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang /* 23b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * Copyright (C) 2011 The Android Open Source Project 33b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * 43b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * Licensed under the Apache License, Version 2.0 (the "License"); 53b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * you may not use this file except in compliance with the License. 63b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * You may obtain a copy of the License at 73b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * 83b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * http://www.apache.org/licenses/LICENSE-2.0 93b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * 103b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * Unless required by applicable law or agreed to in writing, software 113b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * distributed under the License is distributed on an "AS IS" BASIS, 123b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * See the License for the specific language governing permissions and 143b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang * limitations under the License. 153b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang */ 163b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 173b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang#ifndef TEXT_DESCRIPTIONS_H_ 183b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 193b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang#define TEXT_DESCRIPTIONS_H_ 203b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 213b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang#include <binder/Parcel.h> 223b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang#include <media/stagefright/foundation/ABase.h> 233b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 243b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wangnamespace android { 253b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 263b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wangclass TextDescriptions { 273b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wangpublic: 283b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang enum { 293b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang IN_BAND_TEXT_3GPP = 0x01, 303b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang OUT_OF_BAND_TEXT_SRT = 0x02, 313b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 323b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang GLOBAL_DESCRIPTIONS = 0x100, 333b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang LOCAL_DESCRIPTIONS = 0x200, 343b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang }; 353b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 363b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang static status_t getParcelOfDescriptions( 373b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang const uint8_t *data, ssize_t size, 383b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang uint32_t flags, int timeMs, Parcel *parcel); 393b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wangprivate: 403b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang TextDescriptions(); 413b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 423b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang enum { 433b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang // These keys must be in sync with the keys in TimedText.java 443b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_DISPLAY_FLAGS = 1, // int 453b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STYLE_FLAGS = 2, // int 463b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_BACKGROUND_COLOR_RGBA = 3, // int 473b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_HIGHLIGHT_COLOR_RGBA = 4, // int 483b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_SCROLL_DELAY = 5, // int 493b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_WRAP_TEXT = 6, // int 503b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_START_TIME = 7, // int 513b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_BLINKING_TEXT_LIST = 8, // List<CharPos> 523b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_FONT_LIST = 9, // List<Font> 533b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_HIGHLIGHT_LIST = 10, // List<CharPos> 543b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_HYPER_TEXT_LIST = 11, // List<HyperText> 553b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_KARAOKE_LIST = 12, // List<Karaoke> 563b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_STYLE_LIST = 13, // List<Style> 573b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_TEXT_POS = 14, // TextPos 583b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_JUSTIFICATION = 15, // Justification 593b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_STRUCT_TEXT = 16, // Text 603b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 613b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_GLOBAL_SETTING = 101, 623b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_LOCAL_SETTING = 102, 633b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_START_CHAR = 103, 643b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_END_CHAR = 104, 653b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_FONT_ID = 105, 663b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_FONT_SIZE = 106, 673b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang KEY_TEXT_COLOR_RGBA = 107, 683b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang }; 693b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 703b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang static status_t extractSRTLocalDescriptions( 713b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang const uint8_t *data, ssize_t size, 723b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang int timeMs, Parcel *parcel); 733b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang static status_t extract3GPPGlobalDescriptions( 743b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang const uint8_t *data, ssize_t size, 753b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang Parcel *parcel, int depth); 763b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang static status_t extract3GPPLocalDescriptions( 773b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang const uint8_t *data, ssize_t size, 783b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang int timeMs, Parcel *parcel, int depth); 793b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 803b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang DISALLOW_EVIL_CONSTRUCTORS(TextDescriptions); 813b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang}; 823b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang 833b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang} // namespace android 843b573f7bf1c5736d500e39013b8d32478a1429e6Gloria Wang#endif // TEXT_DESCRIPTIONS_H_ 85