diff options
| author | Gil Dobjanschi <virgild@google.com> | 2010-11-02 19:19:04 -0700 |
|---|---|---|
| committer | Gil Dobjanschi <virgild@google.com> | 2010-11-02 19:19:04 -0700 |
| commit | db963e9c64cc88bd912dc92ebace6a62b752c2a4 (patch) | |
| tree | 1a34e9651830dd8167399702277b09bd0135667a /media | |
| parent | 6b21cdeb5f0127862d82f24a4b6001f495e3c8cd (diff) | |
| download | frameworks_base-db963e9c64cc88bd912dc92ebace6a62b752c2a4.zip frameworks_base-db963e9c64cc88bd912dc92ebace6a62b752c2a4.tar.gz frameworks_base-db963e9c64cc88bd912dc92ebace6a62b752c2a4.tar.bz2 | |
Use SoftReference for WaveformData
Change-Id: I801a4eb4f55e0c6244f868bf8b474a2a79d81642
Diffstat (limited to 'media')
| -rwxr-xr-x | media/java/android/media/videoeditor/AudioTrack.java | 23 | ||||
| -rwxr-xr-x | media/java/android/media/videoeditor/MediaVideoItem.java | 23 |
2 files changed, 38 insertions, 8 deletions
diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java index 573208a..d02709e 100755 --- a/media/java/android/media/videoeditor/AudioTrack.java +++ b/media/java/android/media/videoeditor/AudioTrack.java @@ -17,6 +17,7 @@ package android.media.videoeditor;
import java.io.IOException;
+import java.lang.ref.SoftReference;
/**
* This class allows to handle an audio track. This audio file is mixed with the
@@ -49,7 +50,7 @@ public class AudioTrack { // The audio waveform filename
private String mAudioWaveformFilename;
// The audio waveform data
- private WaveformData mWaveformData;
+ private SoftReference<WaveformData> mWaveformData;
/**
* An object of this type cannot be instantiated by using the default
@@ -165,7 +166,8 @@ public class AudioTrack { mAudioWaveformFilename = audioWaveformFilename;
if (audioWaveformFilename != null) {
- mWaveformData = new WaveformData(audioWaveformFilename);
+ mWaveformData =
+ new SoftReference<WaveformData>(new WaveformData(audioWaveformFilename));
} else {
mWaveformData = null;
}
@@ -424,7 +426,7 @@ public class AudioTrack { throws IOException {
// TODO: Set mAudioWaveformFilename at the end once the extract is
// complete
- mWaveformData = new WaveformData(mAudioWaveformFilename);
+ mWaveformData = new SoftReference<WaveformData>(new WaveformData(mAudioWaveformFilename));
}
/**
@@ -448,7 +450,20 @@ public class AudioTrack { * @return The waveform data
*/
public WaveformData getWaveformData() {
- return mWaveformData;
+ if (mWaveformData == null) {
+ return null;
+ }
+
+ WaveformData waveformData = mWaveformData.get();
+ if (waveformData != null) {
+ return waveformData;
+ } else if (mAudioWaveformFilename != null) {
+ waveformData = new WaveformData(mAudioWaveformFilename);
+ mWaveformData = new SoftReference<WaveformData>(waveformData);
+ return waveformData;
+ } else {
+ return null;
+ }
}
/*
diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java index 1fa98e7..c1abf78 100755 --- a/media/java/android/media/videoeditor/MediaVideoItem.java +++ b/media/java/android/media/videoeditor/MediaVideoItem.java @@ -17,6 +17,7 @@ package android.media.videoeditor;
import java.io.IOException;
+import java.lang.ref.SoftReference;
import android.graphics.Bitmap;
import android.view.SurfaceHolder;
@@ -47,7 +48,7 @@ public class MediaVideoItem extends MediaItem { private boolean mMuted;
private String mAudioWaveformFilename;
// The audio waveform data
- private WaveformData mWaveformData;
+ private SoftReference<WaveformData> mWaveformData;
/**
* An object of this type cannot be instantiated with a default constructor
@@ -118,7 +119,8 @@ public class MediaVideoItem extends MediaItem { mMuted = muted;
mAudioWaveformFilename = audioWaveformFilename;
if (audioWaveformFilename != null) {
- mWaveformData = new WaveformData(audioWaveformFilename);
+ mWaveformData =
+ new SoftReference<WaveformData>(new WaveformData(audioWaveformFilename));
} else {
mWaveformData = null;
}
@@ -293,7 +295,7 @@ public class MediaVideoItem extends MediaItem { public void extractAudioWaveform(ExtractAudioWaveformProgressListener listener)
throws IOException {
// TODO: Set mAudioWaveformFilename at the end once the export is complete
- mWaveformData = new WaveformData(mAudioWaveformFilename);
+ mWaveformData = new SoftReference<WaveformData>(new WaveformData(mAudioWaveformFilename));
}
/**
@@ -315,7 +317,20 @@ public class MediaVideoItem extends MediaItem { * @return The waveform data
*/
public WaveformData getWaveformData() {
- return mWaveformData;
+ if (mWaveformData == null) {
+ return null;
+ }
+
+ WaveformData waveformData = mWaveformData.get();
+ if (waveformData != null) {
+ return waveformData;
+ } else if (mAudioWaveformFilename != null) {
+ waveformData = new WaveformData(mAudioWaveformFilename);
+ mWaveformData = new SoftReference<WaveformData>(waveformData);
+ return waveformData;
+ } else {
+ return null;
+ }
}
/**
|
