Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db963e9c authored by Gil Dobjanschi's avatar Gil Dobjanschi
Browse files

Use SoftReference for WaveformData

Change-Id: I801a4eb4f55e0c6244f868bf8b474a2a79d81642
parent 6b21cdeb
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -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;
        }
    }

    /*
+19 −4
Original line number Diff line number Diff line
@@ -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;
        }
    }

    /**