summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-08-10 12:44:04 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-10 12:44:04 -0700
commit751fa786aa9599c694219085601f9f5ebe96a516 (patch)
tree6b8ea38fa25a0cce13ae5d00ded028be74307cc6 /media
parentfcfc61da927e98d18cdcb53da8fa0a8a32ee1422 (diff)
parent31a593b901eeb924ae5214962c628397dd0197f2 (diff)
downloadframeworks_av-751fa786aa9599c694219085601f9f5ebe96a516.zip
frameworks_av-751fa786aa9599c694219085601f9f5ebe96a516.tar.gz
frameworks_av-751fa786aa9599c694219085601f9f5ebe96a516.tar.bz2
am 31a593b9: am 2001d2ac: Merge "MPEG2TSWriter: Write proper continuity counters for PAT and PMT"
* commit '31a593b901eeb924ae5214962c628397dd0197f2': MPEG2TSWriter: Write proper continuity counters for PAT and PMT
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/MPEG2TSWriter.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/media/libstagefright/MPEG2TSWriter.cpp b/media/libstagefright/MPEG2TSWriter.cpp
index f702376..62c8aab 100644
--- a/media/libstagefright/MPEG2TSWriter.cpp
+++ b/media/libstagefright/MPEG2TSWriter.cpp
@@ -471,7 +471,9 @@ MPEG2TSWriter::MPEG2TSWriter(int fd)
mStarted(false),
mNumSourcesDone(0),
mNumTSPacketsWritten(0),
- mNumTSPacketsBeforeMeta(0) {
+ mNumTSPacketsBeforeMeta(0),
+ mPATContinuityCounter(0),
+ mPMTContinuityCounter(0) {
init();
}
@@ -482,7 +484,9 @@ MPEG2TSWriter::MPEG2TSWriter(const char *filename)
mStarted(false),
mNumSourcesDone(0),
mNumTSPacketsWritten(0),
- mNumTSPacketsBeforeMeta(0) {
+ mNumTSPacketsBeforeMeta(0),
+ mPATContinuityCounter(0),
+ mPMTContinuityCounter(0) {
init();
}
@@ -495,7 +499,9 @@ MPEG2TSWriter::MPEG2TSWriter(
mStarted(false),
mNumSourcesDone(0),
mNumTSPacketsWritten(0),
- mNumTSPacketsBeforeMeta(0) {
+ mNumTSPacketsBeforeMeta(0),
+ mPATContinuityCounter(0),
+ mPMTContinuityCounter(0) {
init();
}
@@ -732,8 +738,10 @@ void MPEG2TSWriter::writeProgramAssociationTable() {
memset(buffer->data(), 0, buffer->size());
memcpy(buffer->data(), kData, sizeof(kData));
- static const unsigned kContinuityCounter = 5;
- buffer->data()[3] |= kContinuityCounter;
+ if (++mPATContinuityCounter == 16) {
+ mPATContinuityCounter = 0;
+ }
+ buffer->data()[3] |= mPATContinuityCounter;
CHECK_EQ(internalWrite(buffer->data(), buffer->size()), buffer->size());
}
@@ -784,8 +792,10 @@ void MPEG2TSWriter::writeProgramMap() {
memset(buffer->data(), 0, buffer->size());
memcpy(buffer->data(), kData, sizeof(kData));
- static const unsigned kContinuityCounter = 5;
- buffer->data()[3] |= kContinuityCounter;
+ if (++mPMTContinuityCounter == 16) {
+ mPMTContinuityCounter = 0;
+ }
+ buffer->data()[3] |= mPMTContinuityCounter;
size_t section_length = 5 * mSources.size() + 4 + 9;
buffer->data()[6] |= section_length >> 8;