diff options
Diffstat (limited to 'media/java')
28 files changed, 67 insertions, 4 deletions
diff --git a/media/java/android/media/IAudioFocusDispatcher.aidl b/media/java/android/media/IAudioFocusDispatcher.aidl index 09575f7..09575f7 100755..100644 --- a/media/java/android/media/IAudioFocusDispatcher.aidl +++ b/media/java/android/media/IAudioFocusDispatcher.aidl diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 99db066..d5515eb 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -16,6 +16,8 @@ package android.media; +import android.media.MediaCodecInfo; +import android.media.MediaCodecList; import android.media.MediaCrypto; import android.media.MediaFormat; import android.view.Surface; @@ -498,6 +500,22 @@ final public class MediaCodec { */ public native final void setVideoScalingMode(int mode); + /** + * Get the component name. If the codec was created by createDecoderByType + * or createEncoderByType, what component is chosen is not known beforehand. + */ + public native final String getName(); + + /** + * Get the codec info. If the codec was created by createDecoderByType + * or createEncoderByType, what component is chosen is not known beforehand, + * and thus the caller does not have the MediaCodecInfo. + */ + public MediaCodecInfo getCodecInfo() { + return MediaCodecList.getCodecInfoAt( + MediaCodecList.findCodecByName(getName())); + } + private native final ByteBuffer[] getBuffers(boolean input); private static native final void native_init(); diff --git a/media/java/android/media/MediaCodecList.java b/media/java/android/media/MediaCodecList.java index 1749934..2a60113 100644 --- a/media/java/android/media/MediaCodecList.java +++ b/media/java/android/media/MediaCodecList.java @@ -46,6 +46,8 @@ final public class MediaCodecList { /* package private */ static native final MediaCodecInfo.CodecCapabilities getCodecCapabilities(int index, String type); + /* package private */ static native final int findCodecByName(String codec); + private static native final void native_init(); private MediaCodecList() {} diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index 88cf4ac..0117d73 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -283,7 +283,7 @@ public class MediaScanner "Terror", "Indie", "Britpop", - "Negerpunk", + null, "Polsk Punk", "Beat", "Christian Gangsta", @@ -700,7 +700,7 @@ public class MediaScanner try { short genreIndex = Short.parseShort(number.toString()); if (genreIndex >= 0) { - if (genreIndex < ID3_GENRES.length) { + if (genreIndex < ID3_GENRES.length && ID3_GENRES[genreIndex] != null) { return ID3_GENRES[genreIndex]; } else if (genreIndex == 0xFF) { return null; diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java index f190eb9..ebbfad9 100644 --- a/media/java/android/media/Ringtone.java +++ b/media/java/android/media/Ringtone.java @@ -18,6 +18,8 @@ package android.media; import android.content.ContentResolver; import android.content.Context; +import android.content.res.AssetFileDescriptor; +import android.content.res.Resources.NotFoundException; import android.database.Cursor; import android.net.Uri; import android.os.Binder; @@ -229,10 +231,14 @@ public class Ringtone { try { mRemotePlayer.play(mRemoteToken, canonicalUri, mStreamType); } catch (RemoteException e) { - Log.w(TAG, "Problem playing ringtone: " + e); + if (!playFallbackRingtone()) { + Log.w(TAG, "Problem playing ringtone: " + e); + } } } else { - Log.w(TAG, "Neither local nor remote playback available"); + if (!playFallbackRingtone()) { + Log.w(TAG, "Neither local nor remote playback available"); + } } } @@ -280,6 +286,43 @@ public class Ringtone { } } + private boolean playFallbackRingtone() { + if (mAudioManager.getStreamVolume(mStreamType) != 0) { + int ringtoneType = RingtoneManager.getDefaultType(mUri); + if (ringtoneType != -1 && + RingtoneManager.getActualDefaultRingtoneUri(mContext, ringtoneType) != null) { + // Default ringtone, try fallback ringtone. + try { + AssetFileDescriptor afd = mContext.getResources().openRawResourceFd( + com.android.internal.R.raw.fallbackring); + if (afd != null) { + mLocalPlayer = new MediaPlayer(); + if (afd.getDeclaredLength() < 0) { + mLocalPlayer.setDataSource(afd.getFileDescriptor()); + } else { + mLocalPlayer.setDataSource(afd.getFileDescriptor(), + afd.getStartOffset(), + afd.getDeclaredLength()); + } + mLocalPlayer.setAudioStreamType(mStreamType); + mLocalPlayer.prepare(); + mLocalPlayer.start(); + afd.close(); + return true; + } else { + Log.e(TAG, "Could not load fallback ringtone"); + } + } catch (IOException ioe) { + destroyLocalPlayer(); + Log.e(TAG, "Failed to open fallback ringtone"); + } catch (NotFoundException nfe) { + Log.e(TAG, "Fallback ringtone does not exist"); + } + } + } + return false; + } + void setTitle(String title) { mTitle = title; } diff --git a/media/java/android/media/audiofx/Visualizer.java b/media/java/android/media/audiofx/Visualizer.java index 9197ed8..9197ed8 100755..100644 --- a/media/java/android/media/audiofx/Visualizer.java +++ b/media/java/android/media/audiofx/Visualizer.java diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java index c5cc2ca..c5cc2ca 100755..100644 --- a/media/java/android/media/videoeditor/AudioTrack.java +++ b/media/java/android/media/videoeditor/AudioTrack.java diff --git a/media/java/android/media/videoeditor/Effect.java b/media/java/android/media/videoeditor/Effect.java index 2f7ae03..2f7ae03 100755..100644 --- a/media/java/android/media/videoeditor/Effect.java +++ b/media/java/android/media/videoeditor/Effect.java diff --git a/media/java/android/media/videoeditor/EffectColor.java b/media/java/android/media/videoeditor/EffectColor.java index 6c5ac2d..6c5ac2d 100755..100644 --- a/media/java/android/media/videoeditor/EffectColor.java +++ b/media/java/android/media/videoeditor/EffectColor.java diff --git a/media/java/android/media/videoeditor/EffectKenBurns.java b/media/java/android/media/videoeditor/EffectKenBurns.java index 64be6b8..64be6b8 100755..100644 --- a/media/java/android/media/videoeditor/EffectKenBurns.java +++ b/media/java/android/media/videoeditor/EffectKenBurns.java diff --git a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java index 7ba7de3..7ba7de3 100755..100644 --- a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java +++ b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java index 590b4ae..590b4ae 100755..100644 --- a/media/java/android/media/videoeditor/MediaImageItem.java +++ b/media/java/android/media/videoeditor/MediaImageItem.java diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java index 4e9ea75..4e9ea75 100755..100644 --- a/media/java/android/media/videoeditor/MediaItem.java +++ b/media/java/android/media/videoeditor/MediaItem.java diff --git a/media/java/android/media/videoeditor/MediaProperties.java b/media/java/android/media/videoeditor/MediaProperties.java index cf518a5..cf518a5 100755..100644 --- a/media/java/android/media/videoeditor/MediaProperties.java +++ b/media/java/android/media/videoeditor/MediaProperties.java diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java index bbcdf57..bbcdf57 100755..100644 --- a/media/java/android/media/videoeditor/MediaVideoItem.java +++ b/media/java/android/media/videoeditor/MediaVideoItem.java diff --git a/media/java/android/media/videoeditor/Overlay.java b/media/java/android/media/videoeditor/Overlay.java index a070eb4..a070eb4 100755..100644 --- a/media/java/android/media/videoeditor/Overlay.java +++ b/media/java/android/media/videoeditor/Overlay.java diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java index d159df2..d159df2 100755..100644 --- a/media/java/android/media/videoeditor/OverlayFrame.java +++ b/media/java/android/media/videoeditor/OverlayFrame.java diff --git a/media/java/android/media/videoeditor/Transition.java b/media/java/android/media/videoeditor/Transition.java index fa9d26d..fa9d26d 100755..100644 --- a/media/java/android/media/videoeditor/Transition.java +++ b/media/java/android/media/videoeditor/Transition.java diff --git a/media/java/android/media/videoeditor/TransitionAlpha.java b/media/java/android/media/videoeditor/TransitionAlpha.java index 22788d4..22788d4 100755..100644 --- a/media/java/android/media/videoeditor/TransitionAlpha.java +++ b/media/java/android/media/videoeditor/TransitionAlpha.java diff --git a/media/java/android/media/videoeditor/TransitionCrossfade.java b/media/java/android/media/videoeditor/TransitionCrossfade.java index 417c64e..417c64e 100755..100644 --- a/media/java/android/media/videoeditor/TransitionCrossfade.java +++ b/media/java/android/media/videoeditor/TransitionCrossfade.java diff --git a/media/java/android/media/videoeditor/TransitionFadeBlack.java b/media/java/android/media/videoeditor/TransitionFadeBlack.java index da07cf0..da07cf0 100755..100644 --- a/media/java/android/media/videoeditor/TransitionFadeBlack.java +++ b/media/java/android/media/videoeditor/TransitionFadeBlack.java diff --git a/media/java/android/media/videoeditor/TransitionSliding.java b/media/java/android/media/videoeditor/TransitionSliding.java index 57610ab..57610ab 100755..100644 --- a/media/java/android/media/videoeditor/TransitionSliding.java +++ b/media/java/android/media/videoeditor/TransitionSliding.java diff --git a/media/java/android/media/videoeditor/VideoEditor.java b/media/java/android/media/videoeditor/VideoEditor.java index 08d27d4..08d27d4 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditor.java +++ b/media/java/android/media/videoeditor/VideoEditor.java diff --git a/media/java/android/media/videoeditor/VideoEditorFactory.java b/media/java/android/media/videoeditor/VideoEditorFactory.java index 85c329f..85c329f 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditorFactory.java +++ b/media/java/android/media/videoeditor/VideoEditorFactory.java diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java index 2446c2f..2446c2f 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditorImpl.java +++ b/media/java/android/media/videoeditor/VideoEditorImpl.java diff --git a/media/java/android/media/videoeditor/VideoEditorProfile.java b/media/java/android/media/videoeditor/VideoEditorProfile.java index 202a2df..202a2df 100755..100644 --- a/media/java/android/media/videoeditor/VideoEditorProfile.java +++ b/media/java/android/media/videoeditor/VideoEditorProfile.java diff --git a/media/java/android/media/videoeditor/WaveformData.java b/media/java/android/media/videoeditor/WaveformData.java index 6c10e3c..6c10e3c 100755..100644 --- a/media/java/android/media/videoeditor/WaveformData.java +++ b/media/java/android/media/videoeditor/WaveformData.java diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java index 487585e..487585e 100755..100644 --- a/media/java/android/mtp/MtpDatabase.java +++ b/media/java/android/mtp/MtpDatabase.java |