diff options
Diffstat (limited to 'libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java')
-rw-r--r-- | libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java b/libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java index e56e307b1..3abdbaf54 100644 --- a/libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java +++ b/libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java @@ -19,9 +19,12 @@ import android.media.MediaExtractor; import android.media.MediaFormat; import android.media.MediaMetadataRetriever; import android.media.MediaMuxer; +import android.os.Build; import android.util.Log; +import net.ypresto.androidtranscoder.BuildConfig; import net.ypresto.androidtranscoder.format.MediaFormatStrategy; +import net.ypresto.androidtranscoder.utils.ISO6709LocationParser; import net.ypresto.androidtranscoder.utils.MediaExtractorUtils; import java.io.FileDescriptor; @@ -137,9 +140,17 @@ public class MediaTranscoderEngine { // skip } - // TODO: parse ISO 6709 - // String locationString = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_LOCATION); - // mMuxer.setLocation(Integer.getInteger(rotationString, 0)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + String locationString = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_LOCATION); + if (locationString != null) { + float[] location = new ISO6709LocationParser().parse(locationString); + if (location != null) { + mMuxer.setLocation(location[0], location[1]); + } else { + Log.d(TAG, "Failed to parse the location metadata: " + locationString); + } + } + } try { mDurationUs = Long.parseLong(mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)) * 1000; |