From dcc2a73e7aab5dc91f0fcc6cf13e4cda7ec8edc5 Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 9 Dec 2018 20:58:40 +0800 Subject: [PATCH] Refine kernel aac --- trunk/src/kernel/srs_kernel_aac.cpp | 16 ++++++---------- trunk/src/kernel/srs_kernel_aac.hpp | 7 +++---- trunk/src/kernel/srs_kernel_mp4.cpp | 12 ++++++++++++ trunk/src/kernel/srs_kernel_mp4.hpp | 3 +++ 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/trunk/src/kernel/srs_kernel_aac.cpp b/trunk/src/kernel/srs_kernel_aac.cpp index c63765c5b..f4dd684d7 100644 --- a/trunk/src/kernel/srs_kernel_aac.cpp +++ b/trunk/src/kernel/srs_kernel_aac.cpp @@ -37,13 +37,13 @@ using namespace std; #include #include #include -#include +#include #include #include SrsAacTransmuxer::SrsAacTransmuxer() { - _fs = NULL; + writer = NULL; got_sequence_header = false; aac_object = SrsAacObjectTypeReserved; } @@ -52,17 +52,13 @@ SrsAacTransmuxer::~SrsAacTransmuxer() { } -srs_error_t SrsAacTransmuxer::initialize(SrsFileWriter* fs) +srs_error_t SrsAacTransmuxer::initialize(ISrsStreamWriter* fs) { srs_error_t err = srs_success; srs_assert(fs); - if (!fs->is_open()) { - return srs_error_new(ERROR_KERNEL_AAC_STREAM_CLOSED, "stream is not open"); - } - - _fs = fs; + writer = fs; return err; } @@ -192,12 +188,12 @@ srs_error_t SrsAacTransmuxer::write_audio(int64_t timestamp, char* data, int siz } // write 7bytes fixed header. - if ((err = _fs->write(aac_fixed_header, 7, NULL)) != srs_success) { + if ((err = writer->write(aac_fixed_header, 7, NULL)) != srs_success) { return srs_error_wrap(err, "write aac header"); } // write aac frame body. - if ((err = _fs->write(data + stream->pos(), aac_raw_length, NULL)) != srs_success) { + if ((err = writer->write(data + stream->pos(), aac_raw_length, NULL)) != srs_success) { return srs_error_wrap(err, "write aac frame"); } diff --git a/trunk/src/kernel/srs_kernel_aac.hpp b/trunk/src/kernel/srs_kernel_aac.hpp index cee34e72e..74f978aab 100644 --- a/trunk/src/kernel/srs_kernel_aac.hpp +++ b/trunk/src/kernel/srs_kernel_aac.hpp @@ -33,8 +33,7 @@ #include class SrsBuffer; -class SrsFileWriter; -class SrsFileReader; +class ISrsStreamWriter; /** * Transmux the RTMP packets to AAC stream. @@ -42,7 +41,7 @@ class SrsFileReader; class SrsAacTransmuxer { private: - SrsFileWriter* _fs; + ISrsStreamWriter* writer; private: SrsAacObjectType aac_object; int8_t aac_sample_rate; @@ -57,7 +56,7 @@ public: * @remark user can initialize multiple times to encode multiple aac files. * @remark, user must free the fs, aac encoder never close/free it. */ - virtual srs_error_t initialize(SrsFileWriter* fs); + virtual srs_error_t initialize(ISrsStreamWriter* fs); public: /** * write audio/video packet. diff --git a/trunk/src/kernel/srs_kernel_mp4.cpp b/trunk/src/kernel/srs_kernel_mp4.cpp index bb38e8030..80f929846 100644 --- a/trunk/src/kernel/srs_kernel_mp4.cpp +++ b/trunk/src/kernel/srs_kernel_mp4.cpp @@ -2069,6 +2069,10 @@ SrsMp4ElstEntry::SrsMp4ElstEntry() : segment_duration(0), media_time(0), media_r media_rate_fraction = 0; } +SrsMp4ElstEntry::~SrsMp4ElstEntry() +{ +} + stringstream& SrsMp4ElstEntry::dumps(stringstream& ss, SrsMp4DumpContext dc) { return dumps_detail(ss, dc); @@ -3874,6 +3878,10 @@ SrsMp4SttsEntry::SrsMp4SttsEntry() sample_delta = 0; } +SrsMp4SttsEntry::~SrsMp4SttsEntry() +{ +} + stringstream& SrsMp4SttsEntry::dumps_detail(stringstream& ss, SrsMp4DumpContext dc) { ss << "count=" << sample_count << ", delta=" << sample_delta; @@ -3987,6 +3995,10 @@ SrsMp4CttsEntry::SrsMp4CttsEntry() sample_offset = 0; } +SrsMp4CttsEntry::~SrsMp4CttsEntry() +{ +} + stringstream& SrsMp4CttsEntry::dumps_detail(stringstream& ss, SrsMp4DumpContext dc) { ss << "count=" << sample_count << ", offset=" << sample_offset; diff --git a/trunk/src/kernel/srs_kernel_mp4.hpp b/trunk/src/kernel/srs_kernel_mp4.hpp index 73faab568..d5adaacfb 100644 --- a/trunk/src/kernel/srs_kernel_mp4.hpp +++ b/trunk/src/kernel/srs_kernel_mp4.hpp @@ -946,6 +946,7 @@ public: int16_t media_rate_fraction; public: SrsMp4ElstEntry(); + virtual ~SrsMp4ElstEntry(); public: virtual std::stringstream& dumps(std::stringstream& ss, SrsMp4DumpContext dc); virtual std::stringstream& dumps_detail(std::stringstream& ss, SrsMp4DumpContext dc); @@ -1635,6 +1636,7 @@ struct SrsMp4SttsEntry uint32_t sample_delta; // Constructor SrsMp4SttsEntry(); + virtual ~SrsMp4SttsEntry(); public: virtual std::stringstream& dumps_detail(std::stringstream& ss, SrsMp4DumpContext dc); }; @@ -1687,6 +1689,7 @@ struct SrsMp4CttsEntry int64_t sample_offset; // Constructor SrsMp4CttsEntry(); + virtual ~SrsMp4CttsEntry(); public: virtual std::stringstream& dumps_detail(std::stringstream& ss, SrsMp4DumpContext dc); };