summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-08-01 13:46:53 -0700
committerChong Zhang <chz@google.com>2014-09-03 22:31:15 -0700
commitb86e68f834b7040518b99d1d0245d5f2e5cb9c86 (patch)
tree5a908948804024513f7c3ed3d1d8bf07c653bd82 /media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h
parent9007305003e689362749a264af2eafea80eb12a0 (diff)
downloadframeworks_av-b86e68f834b7040518b99d1d0245d5f2e5cb9c86.zip
frameworks_av-b86e68f834b7040518b99d1d0245d5f2e5cb9c86.tar.gz
frameworks_av-b86e68f834b7040518b99d1d0245d5f2e5cb9c86.tar.bz2
Split CEA-608 Closed caption into 4 tracks CC1~CC4
Bug: 16463078 Change-Id: Ib3073090934232016e535fbb8fa56cdf9d7ab6eb
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h
index 67bddb8..cc1bdff 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h
@@ -126,18 +126,20 @@ struct NuPlayer::CCDecoder : public RefBase {
bool isSelected() const;
void decode(const sp<ABuffer> &accessUnit);
void display(int64_t timeUs);
+ void flush();
private:
- struct CCData;
-
sp<AMessage> mNotify;
KeyedVector<int64_t, sp<ABuffer> > mCCMap;
- size_t mTrackCount;
+ size_t mCurrentChannel;
int32_t mSelectedTrack;
+ int32_t mTrackIndices[4];
+ Vector<size_t> mFoundChannels;
- bool isNullPad(CCData *cc) const;
- void dumpBytePair(const sp<ABuffer> &ccBuf) const;
+ bool isTrackValid(size_t index) const;
+ int32_t getTrackIndex(size_t channel) const;
bool extractFromSEI(const sp<ABuffer> &accessUnit);
+ sp<ABuffer> filterCCBuf(const sp<ABuffer> &ccBuf, size_t index);
DISALLOW_EVIL_CONSTRUCTORS(CCDecoder);
};