Don't call virtual function in destructor of SurfaceMediaSource

Change-Id: I3cbc2b1222335b61c814b5cdcfaefa495148b0ec
This commit is contained in:
James Dong
2012-02-04 06:19:50 -08:00
parent cea2c396c5
commit f5a9f439b6
2 changed files with 6 additions and 4 deletions

View File

@@ -58,7 +58,7 @@ public:
// For the MediaSource interface for use by StageFrightRecorder:
virtual status_t start(MetaData *params = NULL);
virtual status_t stop();
virtual status_t stop() { return reset(); }
virtual status_t read(
MediaBuffer **buffer, const ReadOptions *options = NULL);
virtual sp<MetaData> getFormat();
@@ -359,6 +359,8 @@ private:
Condition mFrameAvailableCondition;
Condition mFrameCompleteCondition;
status_t reset();
// Avoid copying and equating and default constructor
DISALLOW_IMPLICIT_CONSTRUCTORS(SurfaceMediaSource);
};

View File

@@ -60,7 +60,7 @@ SurfaceMediaSource::SurfaceMediaSource(uint32_t bufW, uint32_t bufH) :
SurfaceMediaSource::~SurfaceMediaSource() {
ALOGV("SurfaceMediaSource::~SurfaceMediaSource");
if (!mStopped) {
stop();
reset();
}
}
@@ -716,9 +716,9 @@ status_t SurfaceMediaSource::start(MetaData *params)
}
status_t SurfaceMediaSource::stop()
status_t SurfaceMediaSource::reset()
{
ALOGV("Stop");
ALOGV("Reset");
Mutex::Autolock lock(mMutex);
// TODO: Add waiting on mFrameCompletedCondition here?