diff options
Diffstat (limited to 'media/libstagefright/wifi-display/source/TSPacketizer.cpp')
-rw-r--r-- | media/libstagefright/wifi-display/source/TSPacketizer.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/media/libstagefright/wifi-display/source/TSPacketizer.cpp b/media/libstagefright/wifi-display/source/TSPacketizer.cpp index e5abd57d..7e660724 100644 --- a/media/libstagefright/wifi-display/source/TSPacketizer.cpp +++ b/media/libstagefright/wifi-display/source/TSPacketizer.cpp @@ -47,6 +47,7 @@ struct TSPacketizer::Track : public RefBase { bool isVideo() const; bool isH264() const; + bool isAAC() const; bool lacksADTSHeader() const; sp<ABuffer> prependCSD(const sp<ABuffer> &accessUnit) const; @@ -139,6 +140,10 @@ bool TSPacketizer::Track::isH264() const { return !strcasecmp(mMIME.c_str(), MEDIA_MIMETYPE_VIDEO_AVC); } +bool TSPacketizer::Track::isAAC() const { + return !strcasecmp(mMIME.c_str(), MEDIA_MIMETYPE_AUDIO_AAC); +} + bool TSPacketizer::Track::lacksADTSHeader() const { return mAudioLacksATDSHeaders; } @@ -247,6 +252,10 @@ ssize_t TSPacketizer::addTrack(const sp<AMessage> &format) { streamType = 0x0f; streamIDStart = 0xc0; streamIDStop = 0xdf; + } else if (!strcasecmp(mime.c_str(), MEDIA_MIMETYPE_AUDIO_RAW)) { + streamType = 0x83; + streamIDStart = 0xbd; + streamIDStop = 0xbd; } else { return ERROR_UNSUPPORTED; } @@ -298,7 +307,7 @@ status_t TSPacketizer::packetize( && IsIDR(accessUnit)) { // prepend codec specific data, i.e. SPS and PPS. accessUnit = track->prependCSD(accessUnit); - } else if (track->isAudio() && track->lacksADTSHeader()) { + } else if (track->isAAC() && track->lacksADTSHeader()) { CHECK(!(flags & IS_ENCRYPTED)); accessUnit = track->prependADTSHeader(accessUnit); } |