Loading cmds/stagefright/record.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ int main(int argc, char **argv) { enc_meta->setInt32("width", width); enc_meta->setInt32("height", height); enc_meta->setInt32("sample-rate", kFramerate); enc_meta->setInt32("bit-rate", kVideoBitRate); enc_meta->setInt32("bitrate", kVideoBitRate); // enc_meta->setInt32("stride", width); // enc_meta->setInt32("slice-height", height); enc_meta->setInt32("i-frame-interval", kIFramesIntervalSec); Loading include/media/stagefright/MetaData.h +1 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ enum { kKeyPcmEncoding = 'PCMe', // int32_t (audio encoding enum) kKeyFrameRate = 'frmR', // int32_t (video frame rate fps) kKeyBitRate = 'brte', // int32_t (bps) kKeyMaxBitRate = 'mxBr', // int32_t (bps) kKeyESDS = 'esds', // raw data kKeyAACProfile = 'aacp', // int32_t kKeyAVCC = 'avcc', // raw data Loading media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -1770,7 +1770,7 @@ status_t NuPlayer::Renderer::onOpenAudioSink( mime.c_str(), audioFormat); int avgBitRate = -1; format->findInt32("bit-rate", &avgBitRate); format->findInt32("bitrate", &avgBitRate); int32_t aacProfile = -1; if (audioFormat == AUDIO_FORMAT_AAC Loading media/libstagefright/ESDS.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ #define LOG_TAG "ESDS" #include <utils/Log.h> #include <media/stagefright/Utils.h> #include "include/ESDS.h" #include <string.h> Loading Loading @@ -194,12 +196,25 @@ status_t ESDS::parseESDescriptor(size_t offset, size_t size) { return err; } status_t ESDS::getBitRate(uint32_t *brateMax, uint32_t *brateAvg) const { if (mInitCheck != OK) { return mInitCheck; } *brateMax = mBitRateMax; *brateAvg = mBitRateAvg; return OK; }; status_t ESDS::parseDecoderConfigDescriptor(size_t offset, size_t size) { if (size < 13) { return ERROR_MALFORMED; } mObjectTypeIndication = mData[offset]; mBitRateMax = U32_AT(mData + offset + 5); mBitRateAvg = U32_AT(mData + offset + 9); offset += 13; size -= 13; Loading media/libstagefright/MPEG4Extractor.cpp +25 −0 Original line number Diff line number Diff line Loading @@ -1738,6 +1738,31 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { break; } case FOURCC('b', 't', 'r', 't'): { *offset += chunk_size; uint8_t buffer[12]; if (chunk_data_size != sizeof(buffer)) { return ERROR_MALFORMED; } if (mDataSource->readAt( data_offset, buffer, chunk_data_size) < chunk_data_size) { return ERROR_IO; } uint32_t maxBitrate = U32_AT(&buffer[4]); uint32_t avgBitrate = U32_AT(&buffer[8]); if (maxBitrate > 0 && maxBitrate < INT32_MAX) { mLastTrack->meta->setInt32(kKeyMaxBitRate, (int32_t)maxBitrate); } if (avgBitrate > 0 && avgBitrate < INT32_MAX) { mLastTrack->meta->setInt32(kKeyBitRate, (int32_t)avgBitrate); } break; } case FOURCC('a', 'v', 'c', 'C'): { *offset += chunk_size; Loading Loading
cmds/stagefright/record.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ int main(int argc, char **argv) { enc_meta->setInt32("width", width); enc_meta->setInt32("height", height); enc_meta->setInt32("sample-rate", kFramerate); enc_meta->setInt32("bit-rate", kVideoBitRate); enc_meta->setInt32("bitrate", kVideoBitRate); // enc_meta->setInt32("stride", width); // enc_meta->setInt32("slice-height", height); enc_meta->setInt32("i-frame-interval", kIFramesIntervalSec); Loading
include/media/stagefright/MetaData.h +1 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ enum { kKeyPcmEncoding = 'PCMe', // int32_t (audio encoding enum) kKeyFrameRate = 'frmR', // int32_t (video frame rate fps) kKeyBitRate = 'brte', // int32_t (bps) kKeyMaxBitRate = 'mxBr', // int32_t (bps) kKeyESDS = 'esds', // raw data kKeyAACProfile = 'aacp', // int32_t kKeyAVCC = 'avcc', // raw data Loading
media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -1770,7 +1770,7 @@ status_t NuPlayer::Renderer::onOpenAudioSink( mime.c_str(), audioFormat); int avgBitRate = -1; format->findInt32("bit-rate", &avgBitRate); format->findInt32("bitrate", &avgBitRate); int32_t aacProfile = -1; if (audioFormat == AUDIO_FORMAT_AAC Loading
media/libstagefright/ESDS.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ #define LOG_TAG "ESDS" #include <utils/Log.h> #include <media/stagefright/Utils.h> #include "include/ESDS.h" #include <string.h> Loading Loading @@ -194,12 +196,25 @@ status_t ESDS::parseESDescriptor(size_t offset, size_t size) { return err; } status_t ESDS::getBitRate(uint32_t *brateMax, uint32_t *brateAvg) const { if (mInitCheck != OK) { return mInitCheck; } *brateMax = mBitRateMax; *brateAvg = mBitRateAvg; return OK; }; status_t ESDS::parseDecoderConfigDescriptor(size_t offset, size_t size) { if (size < 13) { return ERROR_MALFORMED; } mObjectTypeIndication = mData[offset]; mBitRateMax = U32_AT(mData + offset + 5); mBitRateAvg = U32_AT(mData + offset + 9); offset += 13; size -= 13; Loading
media/libstagefright/MPEG4Extractor.cpp +25 −0 Original line number Diff line number Diff line Loading @@ -1738,6 +1738,31 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { break; } case FOURCC('b', 't', 'r', 't'): { *offset += chunk_size; uint8_t buffer[12]; if (chunk_data_size != sizeof(buffer)) { return ERROR_MALFORMED; } if (mDataSource->readAt( data_offset, buffer, chunk_data_size) < chunk_data_size) { return ERROR_IO; } uint32_t maxBitrate = U32_AT(&buffer[4]); uint32_t avgBitrate = U32_AT(&buffer[8]); if (maxBitrate > 0 && maxBitrate < INT32_MAX) { mLastTrack->meta->setInt32(kKeyMaxBitRate, (int32_t)maxBitrate); } if (avgBitrate > 0 && avgBitrate < INT32_MAX) { mLastTrack->meta->setInt32(kKeyBitRate, (int32_t)avgBitrate); } break; } case FOURCC('a', 'v', 'c', 'C'): { *offset += chunk_size; Loading