diff options
author | James Dong <jdong@google.com> | 2012-02-02 15:07:52 -0800 |
---|---|---|
committer | James Dong <jdong@google.com> | 2012-02-02 15:13:56 -0800 |
commit | 8bcc65c753085fe3328592cceda0cf0e8f8b0a45 (patch) | |
tree | f7f9cff24dbf50e02f135b65bc1041e534c39d9c /include | |
parent | 2af955b7437ac5345d75a5e528ebbb749667af7e (diff) | |
download | frameworks_av-8bcc65c753085fe3328592cceda0cf0e8f8b0a45.zip frameworks_av-8bcc65c753085fe3328592cceda0cf0e8f8b0a45.tar.gz frameworks_av-8bcc65c753085fe3328592cceda0cf0e8f8b0a45.tar.bz2 |
Don't call virtual functions in destructors for the writer classes
Have not found any concrete bugs related to these calls yet, but we should avoid
calling virtual functions in destructors, regardless.
Change-Id: I2d47b79d3fb2d29f418619bee83aa147d232a5d4
Diffstat (limited to 'include')
-rw-r--r-- | include/media/stagefright/AACWriter.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/AMRWriter.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/MPEG2TSWriter.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/MPEG4Writer.h | 3 |
4 files changed, 8 insertions, 4 deletions
diff --git a/include/media/stagefright/AACWriter.h b/include/media/stagefright/AACWriter.h index fa3ab8a..49397ee 100644 --- a/include/media/stagefright/AACWriter.h +++ b/include/media/stagefright/AACWriter.h @@ -34,7 +34,7 @@ struct AACWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); virtual status_t start(MetaData *params = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); protected: @@ -66,6 +66,7 @@ private: bool exceedsFileSizeLimit(); bool exceedsFileDurationLimit(); status_t writeAdtsHeader(uint32_t frameLength); + status_t reset(); DISALLOW_EVIL_CONSTRUCTORS(AACWriter); }; diff --git a/include/media/stagefright/AMRWriter.h b/include/media/stagefright/AMRWriter.h index 62d57b4..392f968 100644 --- a/include/media/stagefright/AMRWriter.h +++ b/include/media/stagefright/AMRWriter.h @@ -37,7 +37,7 @@ struct AMRWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); virtual status_t start(MetaData *params = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); protected: @@ -60,6 +60,7 @@ private: status_t threadFunc(); bool exceedsFileSizeLimit(); bool exceedsFileDurationLimit(); + status_t reset(); AMRWriter(const AMRWriter &); AMRWriter &operator=(const AMRWriter &); diff --git a/include/media/stagefright/MPEG2TSWriter.h b/include/media/stagefright/MPEG2TSWriter.h index e4c1c49..a7c9ecf 100644 --- a/include/media/stagefright/MPEG2TSWriter.h +++ b/include/media/stagefright/MPEG2TSWriter.h @@ -37,7 +37,7 @@ struct MPEG2TSWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); virtual bool reachedEOS(); virtual status_t dump(int fd, const Vector<String16>& args); @@ -78,6 +78,7 @@ private: void writeAccessUnit(int32_t sourceIndex, const sp<ABuffer> &buffer); ssize_t internalWrite(const void *data, size_t size); + status_t reset(); DISALLOW_EVIL_CONSTRUCTORS(MPEG2TSWriter); }; diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h index 77166ed..0409b30 100644 --- a/include/media/stagefright/MPEG4Writer.h +++ b/include/media/stagefright/MPEG4Writer.h @@ -37,7 +37,7 @@ public: virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); virtual bool reachedEOS(); virtual status_t dump(int fd, const Vector<String16>& args); @@ -184,6 +184,7 @@ private: void writeLongitude(int degreex10000); void sendSessionSummary(); void release(); + status_t reset(); MPEG4Writer(const MPEG4Writer &); MPEG4Writer &operator=(const MPEG4Writer &); |