@ -53,12 +53,12 @@ public class ScreenEncoder implements Device.RotationListener {
public void streamScreen ( Device device , OutputStream outputStream ) throws IOException {
public void streamScreen ( Device device , OutputStream outputStream ) throws IOException {
MediaFormat format = createFormat ( bitRate , frameRate , iFrameInterval ) ;
MediaFormat format = createFormat ( bitRate , frameRate , iFrameInterval ) ;
MediaCodec codec = createCodec ( ) ;
IBinder display = createDisplay ( ) ;
device . setRotationListener ( this ) ;
device . setRotationListener ( this ) ;
boolean alive ;
boolean alive ;
try {
try {
do {
do {
MediaCodec codec = createCodec ( ) ;
IBinder display = createDisplay ( ) ;
Rect deviceRect = device . getScreenInfo ( ) . getDeviceSize ( ) . toRect ( ) ;
Rect deviceRect = device . getScreenInfo ( ) . getDeviceSize ( ) . toRect ( ) ;
Rect videoRect = device . getScreenInfo ( ) . getVideoSize ( ) . toRect ( ) ;
Rect videoRect = device . getScreenInfo ( ) . getVideoSize ( ) . toRect ( ) ;
setSize ( format , videoRect . width ( ) , videoRect . height ( ) ) ;
setSize ( format , videoRect . width ( ) , videoRect . height ( ) ) ;
@ -70,13 +70,13 @@ public class ScreenEncoder implements Device.RotationListener {
alive = encode ( codec , outputStream ) ;
alive = encode ( codec , outputStream ) ;
} finally {
} finally {
codec . stop ( ) ;
codec . stop ( ) ;
destroyDisplay ( display ) ;
codec . release ( ) ;
surface . release ( ) ;
surface . release ( ) ;
}
}
} while ( alive ) ;
} while ( alive ) ;
} finally {
} finally {
device . setRotationListener ( null ) ;
device . setRotationListener ( null ) ;
destroyDisplay ( display ) ;
codec . release ( ) ;
}
}
}
}