diff options
author | Chong Zhang <chz@google.com> | 2015-02-05 17:25:32 -0800 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2015-02-05 17:29:17 -0800 |
commit | 99cef1ef1cf1232966fabf3793ce7964c01474d7 (patch) | |
tree | 397790b7c584c7c4ee5688d8743f910fdbe982d8 /media/libstagefright/httplive | |
parent | 9578a90c214e430334b8696999f921290c35d067 (diff) | |
download | frameworks_av-99cef1ef1cf1232966fabf3793ce7964c01474d7.zip frameworks_av-99cef1ef1cf1232966fabf3793ce7964c01474d7.tar.gz frameworks_av-99cef1ef1cf1232966fabf3793ce7964c01474d7.tar.bz2 |
allow HLS streams with CLOSED-CAPTIONS tag to play
bug: 19284568
Change-Id: I2ccf1c5952c13d1332b6a91f967af0bd3ee67451
Diffstat (limited to 'media/libstagefright/httplive')
-rw-r--r-- | media/libstagefright/httplive/M3UParser.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/media/libstagefright/httplive/M3UParser.cpp b/media/libstagefright/httplive/M3UParser.cpp index eb62c7a..997b694 100644 --- a/media/libstagefright/httplive/M3UParser.cpp +++ b/media/libstagefright/httplive/M3UParser.cpp @@ -35,6 +35,7 @@ struct M3UParser::MediaGroup : public RefBase { TYPE_AUDIO, TYPE_VIDEO, TYPE_SUBS, + TYPE_CC, }; enum FlagBits { @@ -991,6 +992,8 @@ status_t M3UParser::parseMedia(const AString &line) { groupType = MediaGroup::TYPE_AUDIO; } else if (!strcasecmp("video", val.c_str())) { groupType = MediaGroup::TYPE_VIDEO; + } else if (!strcasecmp("closed-captions", val.c_str())){ + groupType = MediaGroup::TYPE_CC; } else { ALOGE("Invalid media group type '%s'", val.c_str()); return ERROR_MALFORMED; @@ -1103,6 +1106,13 @@ status_t M3UParser::parseMedia(const AString &line) { return ERROR_MALFORMED; } + if (groupType == MediaGroup::TYPE_CC) { + // TODO: ignore this for now. + // CC track will be detected by CCDecoder. But we still need to + // pass the CC track flags (lang, auto) to the app in the future. + return OK; + } + uint32_t flags = 0; if (haveGroupAutoselect && groupAutoselect) { flags |= MediaGroup::FLAG_AUTOSELECT; |