diff options
author | Chong Zhang <chz@google.com> | 2014-06-11 14:49:23 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-06-13 10:18:09 -0700 |
commit | a7fa1d9530b6870f2c7850e3025d7db963661803 (patch) | |
tree | 384a6c52d5b13b09860eab611c264384e5444592 /media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h | |
parent | 404fced9bfa8fa423ee210a271ca051ffd1bec13 (diff) | |
download | frameworks_av-a7fa1d9530b6870f2c7850e3025d7db963661803.zip frameworks_av-a7fa1d9530b6870f2c7850e3025d7db963661803.tar.gz frameworks_av-a7fa1d9530b6870f2c7850e3025d7db963661803.tar.bz2 |
support for CEA-608 closed caption
Bug: 15470448
Change-Id: Ic6a527f5c35a8ee0a08a5b043336e4d193216083
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h index 2892584..1a4f4ab 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h @@ -101,6 +101,36 @@ private: DISALLOW_EVIL_CONSTRUCTORS(Decoder); }; +struct NuPlayer::CCDecoder : public RefBase { + enum { + kWhatClosedCaptionData, + kWhatTrackAdded, + }; + + CCDecoder(const sp<AMessage> ¬ify); + + size_t getTrackCount() const; + sp<AMessage> getTrackInfo(size_t index) const; + status_t selectTrack(size_t index, bool select); + bool isSelected() const; + void decode(const sp<ABuffer> &accessUnit); + void display(int64_t timeUs); + +private: + struct CCData; + + sp<AMessage> mNotify; + KeyedVector<int64_t, sp<ABuffer> > mCCMap; + size_t mTrackCount; + int32_t mSelectedTrack; + + bool isNullPad(CCData *cc) const; + void dumpBytePair(const sp<ABuffer> &ccBuf) const; + bool extractFromSEI(const sp<ABuffer> &accessUnit); + + DISALLOW_EVIL_CONSTRUCTORS(CCDecoder); +}; + } // namespace android #endif // NUPLAYER_DECODER_H_ |