public final class android.media.MediaSync
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.media.MediaSync
super_class: java.lang.Object
{
public static final int MEDIASYNC_ERROR_AUDIOTRACK_FAIL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int MEDIASYNC_ERROR_SURFACE_FAIL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "MediaSync"
private static final int EVENT_CALLBACK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int EVENT_SET_CALLBACK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int CB_RETURN_AUDIO_BUFFER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private final java.lang.Object mCallbackLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.os.Handler mCallbackHandler;
descriptor: Landroid/os/Handler;
flags: (0x0002) ACC_PRIVATE
private android.media.MediaSync$Callback mCallback;
descriptor: Landroid/media/MediaSync$Callback;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mOnErrorListenerLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.os.Handler mOnErrorListenerHandler;
descriptor: Landroid/os/Handler;
flags: (0x0002) ACC_PRIVATE
private android.media.MediaSync$OnErrorListener mOnErrorListener;
descriptor: Landroid/media/MediaSync$OnErrorListener;
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread mAudioThread;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private android.os.Handler mAudioHandler;
descriptor: Landroid/os/Handler;
flags: (0x0002) ACC_PRIVATE
private android.os.Looper mAudioLooper;
descriptor: Landroid/os/Looper;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mAudioLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.media.AudioTrack mAudioTrack;
descriptor: Landroid/media/AudioTrack;
flags: (0x0002) ACC_PRIVATE
private java.util.List<android.media.MediaSync$AudioBuffer> mAudioBuffers;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Landroid/media/MediaSync$AudioBuffer;>;
private float mPlaybackRate;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private long mNativeContext;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "media_jni"
invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
1: invokestatic android.media.MediaSync.native_init:()V
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.MediaSync.mCallbackLock:Ljava/lang/Object;
2: aload 0
aconst_null
putfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
3: aload 0
aconst_null
putfield android.media.MediaSync.mCallback:Landroid/media/MediaSync$Callback;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.MediaSync.mOnErrorListenerLock:Ljava/lang/Object;
5: aload 0
aconst_null
putfield android.media.MediaSync.mOnErrorListenerHandler:Landroid/os/Handler;
6: aload 0
aconst_null
putfield android.media.MediaSync.mOnErrorListener:Landroid/media/MediaSync$OnErrorListener;
7: aload 0
aconst_null
putfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
8: aload 0
aconst_null
putfield android.media.MediaSync.mAudioHandler:Landroid/os/Handler;
9: aload 0
aconst_null
putfield android.media.MediaSync.mAudioLooper:Landroid/os/Looper;
10: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
11: aload 0
aconst_null
putfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
12: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield android.media.MediaSync.mAudioBuffers:Ljava/util/List;
13: aload 0
fconst_0
putfield android.media.MediaSync.mPlaybackRate:F
14: aload 0
invokevirtual android.media.MediaSync.native_setup:()V
15: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/media/MediaSync;
private final native void native_setup();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaSync.native_finalize:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/MediaSync;
private final native void native_finalize();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public final void release();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaSync.returnAudioBuffers:()V
1: aload 0
getfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
ifnull 4
2: aload 0
getfield android.media.MediaSync.mAudioLooper:Landroid/os/Looper;
ifnull 4
3: aload 0
getfield android.media.MediaSync.mAudioLooper:Landroid/os/Looper;
invokevirtual android.os.Looper.quit:()V
4: StackMap locals:
StackMap stack:
aload 0
aconst_null
aconst_null
invokevirtual android.media.MediaSync.setCallback:(Landroid/media/MediaSync$Callback;Landroid/os/Handler;)V
5: aload 0
invokevirtual android.media.MediaSync.native_release:()V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/MediaSync;
private final native void native_release();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public void setCallback(android.media.MediaSync$Callback, android.os.Handler);
descriptor: (Landroid/media/MediaSync$Callback;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.MediaSync.mCallbackLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 2
ifnull 4
2: aload 0
aload 2
putfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
3: goto 11
4: StackMap locals: java.lang.Object
StackMap stack:
invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
dup
astore 4
start local 4 5: ifnonnull 7
6: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
astore 4
7: StackMap locals: android.os.Looper
StackMap stack:
aload 4
ifnonnull 10
8: aload 0
aconst_null
putfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
new android.os.Handler
dup
aload 4
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
putfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
end local 4 11: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.media.MediaSync.mCallback:Landroid/media/MediaSync$Callback;
12: aload 3
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/media/MediaSync;
0 17 1 cb Landroid/media/MediaSync$Callback;
0 17 2 handler Landroid/os/Handler;
5 11 4 looper Landroid/os/Looper;
Exception table:
from to target type
1 13 14 any
14 15 14 any
MethodParameters:
Name Flags
cb
handler
public void setOnErrorListener(android.media.MediaSync$OnErrorListener, android.os.Handler);
descriptor: (Landroid/media/MediaSync$OnErrorListener;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.MediaSync.mOnErrorListenerLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 2
ifnull 4
2: aload 0
aload 2
putfield android.media.MediaSync.mOnErrorListenerHandler:Landroid/os/Handler;
3: goto 11
4: StackMap locals: java.lang.Object
StackMap stack:
invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
dup
astore 4
start local 4 5: ifnonnull 7
6: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
astore 4
7: StackMap locals: android.os.Looper
StackMap stack:
aload 4
ifnonnull 10
8: aload 0
aconst_null
putfield android.media.MediaSync.mOnErrorListenerHandler:Landroid/os/Handler;
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
new android.os.Handler
dup
aload 4
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
putfield android.media.MediaSync.mOnErrorListenerHandler:Landroid/os/Handler;
end local 4 11: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.media.MediaSync.mOnErrorListener:Landroid/media/MediaSync$OnErrorListener;
12: aload 3
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/media/MediaSync;
0 17 1 listener Landroid/media/MediaSync$OnErrorListener;
0 17 2 handler Landroid/os/Handler;
5 11 4 looper Landroid/os/Looper;
Exception table:
from to target type
1 13 14 any
14 15 14 any
MethodParameters:
Name Flags
listener
handler
public void setSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.media.MediaSync.native_setSurface:(Landroid/view/Surface;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/MediaSync;
0 2 1 surface Landroid/view/Surface;
MethodParameters:
Name Flags
surface
private final native void native_setSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
surface
public void setAudioTrack(android.media.AudioTrack);
descriptor: (Landroid/media/AudioTrack;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.media.MediaSync.native_setAudioTrack:(Landroid/media/AudioTrack;)V
1: aload 0
aload 1
putfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
2: aload 1
ifnull 4
aload 0
getfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
ifnonnull 4
3: aload 0
invokevirtual android.media.MediaSync.createAudioThread:()V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/MediaSync;
0 5 1 audioTrack Landroid/media/AudioTrack;
MethodParameters:
Name Flags
audioTrack
private final native void native_setAudioTrack(android.media.AudioTrack);
descriptor: (Landroid/media/AudioTrack;)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
audioTrack
public final native android.view.Surface createInputSurface();
descriptor: ()Landroid/view/Surface;
flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
public void setPlaybackParams(android.media.PlaybackParams);
descriptor: (Landroid/media/PlaybackParams;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
aload 0
aload 1
invokevirtual android.media.MediaSync.native_setPlaybackParams:(Landroid/media/PlaybackParams;)F
putfield android.media.MediaSync.mPlaybackRate:F
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.media.MediaSync android.media.PlaybackParams java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaSync.mPlaybackRate:F
f2d
dconst_0
dcmpl
ifeq 8
aload 0
getfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
ifnull 8
7: aload 0
lconst_0
invokevirtual android.media.MediaSync.postRenderAudio:(J)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaSync;
0 9 1 params Landroid/media/PlaybackParams;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
params
public native android.media.PlaybackParams getPlaybackParams();
descriptor: ()Landroid/media/PlaybackParams;
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
private native float native_setPlaybackParams(android.media.PlaybackParams);
descriptor: (Landroid/media/PlaybackParams;)F
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
params
public void setSyncParams(android.media.SyncParams);
descriptor: (Landroid/media/SyncParams;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
aload 0
aload 1
invokevirtual android.media.MediaSync.native_setSyncParams:(Landroid/media/SyncParams;)F
putfield android.media.MediaSync.mPlaybackRate:F
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.media.MediaSync android.media.SyncParams java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaSync.mPlaybackRate:F
f2d
dconst_0
dcmpl
ifeq 8
aload 0
getfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
ifnull 8
7: aload 0
lconst_0
invokevirtual android.media.MediaSync.postRenderAudio:(J)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaSync;
0 9 1 params Landroid/media/SyncParams;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
params
private native float native_setSyncParams(android.media.SyncParams);
descriptor: (Landroid/media/SyncParams;)F
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
params
public native android.media.SyncParams getSyncParams();
descriptor: ()Landroid/media/SyncParams;
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield android.media.MediaSync.mAudioBuffers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
2: aload 0
getfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
aconst_null
invokevirtual android.os.Handler.removeCallbacksAndMessages:(Ljava/lang/Object;)V
3: aload 1
monitorexit
4: goto 7
StackMap locals: android.media.MediaSync java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
ifnull 11
8: aload 0
getfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
invokevirtual android.media.AudioTrack.pause:()V
9: aload 0
getfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
invokevirtual android.media.AudioTrack.flush:()V
10: aload 0
getfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
invokevirtual android.media.AudioTrack.stop:()V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.media.MediaSync.native_flush:()V
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/MediaSync;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private final native void native_flush();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public android.media.MediaTimestamp getTimestamp();
descriptor: ()Landroid/media/MediaTimestamp;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new android.media.MediaTimestamp
dup
invokespecial android.media.MediaTimestamp.<init>:()V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual android.media.MediaSync.native_getTimestamp:(Landroid/media/MediaTimestamp;)Z
ifeq 4
2: aload 1
3: areturn
4: StackMap locals: android.media.MediaTimestamp
StackMap stack:
aconst_null
areturn
end local 1 5: StackMap locals: android.media.MediaSync
StackMap stack: java.lang.IllegalStateException
pop
6: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/MediaSync;
1 5 1 timestamp Landroid/media/MediaTimestamp;
Exception table:
from to target type
0 3 5 Class java.lang.IllegalStateException
private final native boolean native_getTimestamp(android.media.MediaTimestamp);
descriptor: (Landroid/media/MediaTimestamp;)Z
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
timestamp
public void queueAudio(java.nio.ByteBuffer, int, long);
descriptor: (Ljava/nio/ByteBuffer;IJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.media.MediaSync.mAudioTrack:Landroid/media/AudioTrack;
ifnull 1
aload 0
getfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
ifnonnull 4
1: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
2: ldc "AudioTrack is NOT set or audio thread is not created"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
dup
astore 5
monitorenter
5: aload 0
getfield android.media.MediaSync.mAudioBuffers:Ljava/util/List;
new android.media.MediaSync$AudioBuffer
dup
aload 1
iload 2
lload 3
invokespecial android.media.MediaSync$AudioBuffer.<init>:(Ljava/nio/ByteBuffer;IJ)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 5
monitorexit
7: goto 10
StackMap locals: android.media.MediaSync java.nio.ByteBuffer int long java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 5
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaSync.mPlaybackRate:F
f2d
dconst_0
dcmpl
ifeq 12
11: aload 0
lconst_0
invokevirtual android.media.MediaSync.postRenderAudio:(J)V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/MediaSync;
0 13 1 audioData Ljava/nio/ByteBuffer;
0 13 2 bufferId I
0 13 3 presentationTimeUs J
Exception table:
from to target type
5 7 8 any
8 9 8 any
MethodParameters:
Name Flags
audioData
bufferId
presentationTimeUs
private void postRenderAudio(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaSync.mAudioHandler:Landroid/os/Handler;
new android.media.MediaSync$1
dup
aload 0
invokespecial android.media.MediaSync$1.<init>:(Landroid/media/MediaSync;)V
1: lload 1
2: invokevirtual android.os.Handler.postDelayed:(Ljava/lang/Runnable;J)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/MediaSync;
0 4 1 delayMillis J
MethodParameters:
Name Flags
delayMillis
private final native void native_updateQueuedAudioData(int, long);
descriptor: (IJ)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
sizeInBytes
presentationTimeUs
private final native long native_getPlayTimeForPendingAudioFrames();
descriptor: ()J
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final void postReturnByteBuffer(android.media.MediaSync$AudioBuffer);
descriptor: (Landroid/media/MediaSync$AudioBuffer;)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaSync.mCallbackLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
ifnull 4
2: aload 0
astore 3
start local 3 3: aload 0
getfield android.media.MediaSync.mCallbackHandler:Landroid/os/Handler;
new android.media.MediaSync$2
dup
aload 0
aload 3
aload 1
invokespecial android.media.MediaSync$2.<init>:(Landroid/media/MediaSync;Landroid/media/MediaSync;Landroid/media/MediaSync$AudioBuffer;)V
invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
pop
end local 3 4: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaSync;
0 9 1 audioBuffer Landroid/media/MediaSync$AudioBuffer;
3 4 3 sync Landroid/media/MediaSync;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
audioBuffer final
private final void returnAudioBuffers();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield android.media.MediaSync.mAudioBuffers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: android.media.MediaSync java.lang.Object top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.media.MediaSync$AudioBuffer
astore 2
start local 2 3: aload 0
aload 2
invokevirtual android.media.MediaSync.postReturnByteBuffer:(Landroid/media/MediaSync$AudioBuffer;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield android.media.MediaSync.mAudioBuffers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
6: aload 1
monitorexit
7: goto 10
StackMap locals: android.media.MediaSync java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/MediaSync;
3 4 2 audioBuffer Landroid/media/MediaSync$AudioBuffer;
Exception table:
from to target type
1 7 8 any
8 9 8 any
private void createAudioThread();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
new android.media.MediaSync$3
dup
aload 0
invokespecial android.media.MediaSync$3.<init>:(Landroid/media/MediaSync;)V
putfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
1: aload 0
getfield android.media.MediaSync.mAudioThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
2: aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
getfield android.media.MediaSync.mAudioLock:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
4: goto 6
StackMap locals: android.media.MediaSync java.lang.Object
StackMap stack: java.lang.InterruptedException
5: pop
6: StackMap locals:
StackMap stack:
aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/MediaSync;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
3 7 8 any
8 9 8 any
private static final native void native_init();
descriptor: ()V
flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE
}
SourceFile: "MediaSync.java"
NestMembers:
android.media.MediaSync$1 android.media.MediaSync$2 android.media.MediaSync$3 android.media.MediaSync$AudioBuffer android.media.MediaSync$Callback android.media.MediaSync$OnErrorListener
InnerClasses:
android.media.MediaSync$1
android.media.MediaSync$2
android.media.MediaSync$3
private AudioBuffer = android.media.MediaSync$AudioBuffer of android.media.MediaSync
public abstract Callback = android.media.MediaSync$Callback of android.media.MediaSync
public abstract OnErrorListener = android.media.MediaSync$OnErrorListener of android.media.MediaSync