Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–83 unchanged (83 lines)
84
85 format.setInteger(MediaFormat.KEY_WIDTH, size.getWidth());
86 format.setInteger(MediaFormat.KEY_HEIGHT, size.getHeight());
87
88 Surface surface = null;
89 boolean mediaCodecStarted = false;
90 try {
91 mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
92 surface = mediaCodec.createInputSurface();
93
94 capture.start(surface);
95
96 mediaCodec.start();
97 mediaCodecStarted = true;
98
99 // Set the MediaCodec instance to "interrupt" (by signaling an EOS) on reset
100 reset.setRunningMediaCodec(mediaCodec);
101
…lines 102–114 unchanged (13 lines)
115 if (!prepareRetry(size)) {
116 throw e;
117 }
118 alive = true;
119 } finally {
120 reset.setRunningMediaCodec(null);
121 if (mediaCodecStarted) {
122 try {
123 mediaCodec.stop();
124 } catch (IllegalStateException e) {
125 // ignore (just in case)
126 }
127 }
…lines 128–318 unchanged (191 lines)

After

…lines 1–83 unchanged (83 lines)
84
85 format.setInteger(MediaFormat.KEY_WIDTH, size.getWidth());
86 format.setInteger(MediaFormat.KEY_HEIGHT, size.getHeight());
87
88 Surface surface = null;
89 boolean mediaCodecStarted = false;
90 boolean captureStarted = false;
91 try {
92 mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
93 surface = mediaCodec.createInputSurface();
94
95 capture.start(surface);
96 captureStarted = true;
97
98 mediaCodec.start();
99 mediaCodecStarted = true;
100
101 // Set the MediaCodec instance to "interrupt" (by signaling an EOS) on reset
102 reset.setRunningMediaCodec(mediaCodec);
…lines 103–116 unchanged (14 lines)
117 if (!prepareRetry(size)) {
118 throw e;
119 }
120 alive = true;
121 } finally {
122 reset.setRunningMediaCodec(null);
123 if (captureStarted) {
124 capture.stop();
125 }
126 if (mediaCodecStarted) {
127 try {
128 mediaCodec.stop();
129 } catch (IllegalStateException e) {
130 // ignore (just in case)
131 }
…lines 132–323 unchanged (192 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "video"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "AndroidVersions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "AsyncProcessor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "Options"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "device"
. "."
identifier "ConfigurationException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "device"
. "."
identifier "Size"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "device"
. "."
identifier "Streamer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "Codec"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "CodecOption"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "CodecUtils"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "IO"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "Ln"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "LogUtils"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaCodec"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaCodecInfo"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaFormat"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Build"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Looper"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "SystemClock"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "view"
. "."
identifier "Surface"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "nio"
. "."
identifier "ByteBuffer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "concurrent"
. "."
identifier "atomic"
. "."
identifier "AtomicBoolean"
; ";"
class_declaration
modifiers
public "public"
class "class"
identifier "SurfaceEncoder"
super_interfaces
implements "implements"
type_list
type_identifier "AsyncProcessor"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "DEFAULT_I_FRAME_INTERVAL"
= "="
decimal_integer_literal "10"
; ";"
line_comment "// seconds"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "REPEAT_FRAME_DELAY_US"
= "="
decimal_integer_literal "100_000"
; ";"
line_comment "// repeat after 100ms"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "KEY_MAX_FPS_TO_ENCODER"
= "="
string_literal
" "\""
string_fragment "max-fps-to-encoder"
" "\""
; ";"
line_comment "// Keep the values in descending order"
field_declaration (+29 nodes collapsed)
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "MAX_CONSECUTIVE_ERRORS"
= "="
decimal_integer_literal "3"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "SurfaceCapture"
variable_declarator
identifier "capture"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "Streamer"
variable_declarator
identifier "streamer"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "encoderName"
; ";"
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
variable_declarator
identifier "codecOptions"
; ";"
field_declaration
modifiers
private "private"
final "final"
integral_type
int "int"
variable_declarator
identifier "videoBitRate"
; ";"
field_declaration
modifiers
private "private"
final "final"
floating_point_type
float "float"
variable_declarator
identifier "maxFps"
; ";"
field_declaration
modifiers
private "private"
final "final"
boolean_type "boolean"
variable_declarator
identifier "downsizeOnError"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "firstFrameSent"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "consecutiveErrors"
; ";"
field_declaration
modifiers
private "private"
type_identifier "Thread"
variable_declarator
identifier "thread"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "AtomicBoolean"
variable_declarator
identifier "stopped"
= "="
object_creation_expression
new "new"
type_identifier "AtomicBoolean"
argument_list
( "("
) ")"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "CaptureReset"
variable_declarator
identifier "reset"
= "="
object_creation_expression
new "new"
type_identifier "CaptureReset"
argument_list
( "("
) ")"
; ";"
constructor_declaration (+114 nodes collapsed)
method_declaration
modifiers
private "private"
void_type "void"
identifier "streamCapture"
formal_parameters
( "("
) ")"
throws
throws "throws"
type_identifier "IOException"
, ","
type_identifier "ConfigurationException"
block
{ "{"
local_variable_declaration
type_identifier "Codec"
variable_declarator
identifier "codec"
= "="
method_invocation
identifier "streamer"
. "."
identifier "getCodec"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "MediaCodec"
variable_declarator
identifier "mediaCodec"
= "="
method_invocation
identifier "createMediaCodec"
argument_list
( "("
identifier "codec"
, ","
identifier "encoderName"
) ")"
; ";"
local_variable_declaration (+24 nodes collapsed)
expression_statement
method_invocation
identifier "capture"
. "."
identifier "init"
argument_list
( "("
identifier "reset"
) ")"
; ";"
try_statement
try "try"
block
{ "{"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "alive"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "headerWritten"
= "="
false "false"
; ";"
do_statement
do "do"
block
{ "{"
expression_statement
method_invocation
identifier "reset"
. "."
identifier "consumeReset"
argument_list
( "("
) ")"
; ";"
line_comment "// If a capture reset was requested, it is implicitly fulfil"...
expression_statement
method_invocation
identifier "capture"
. "."
identifier "prepare"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "Size"
variable_declarator
identifier "size"
= "="
method_invocation
identifier "capture"
. "."
identifier "getSize"
argument_list
( "("
) ")"
; ";"
if_statement (+27 nodes collapsed)
expression_statement (+21 nodes collapsed)
expression_statement (+21 nodes collapsed)
local_variable_declaration
type_identifier "Surface"
variable_declarator
identifier "surface"
= "="
null_literal "null"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "mediaCodecStarted"
= "="
false "false"
; ";"
try_statement
try "try"
block
{ "{"
expression_statement
method_invocation
identifier "mediaCodec"
. "."
identifier "configure"
argument_list
( "("
identifier "format"
, ","
null_literal "null"
, ","
null_literal "null"
, ","
field_access
identifier "MediaCodec"
. "."
identifier "CONFIGURE_FLAG_ENCODE"
) ")"
; ";"
expression_statement
assignment_expression
identifier "surface"
= "="
method_invocation
identifier "mediaCodec"
. "."
identifier "createInputSurface"
argument_list
( "("
) ")"
; ";"
expression_statement
method_invocation
identifier "capture"
. "."
identifier "start"
argument_list
( "("
identifier "surface"
) ")"
; ";"
expression_statement
method_invocation
identifier "mediaCodec"
. "."
identifier "start"
argument_list
( "("
) ")"
; ";"
expression_statement
assignment_expression
identifier "mediaCodecStarted"
= "="
true "true"
; ";"
line_comment "// Set the MediaCodec instance to \"interrupt\" (by signaling "...
expression_statement
method_invocation
identifier "reset"
. "."
identifier "setRunningMediaCodec"
argument_list
( "("
identifier "mediaCodec"
) ")"
; ";"
if_statement (+86 nodes collapsed)
} "}"
catch_clause (+82 nodes collapsed)
finally_clause
finally "finally"
block
{ "{"
expression_statement
method_invocation
identifier "reset"
. "."
identifier "setRunningMediaCodec"
argument_list
( "("
null_literal "null"
) ")"
; ";"
if_statement (+35 nodes collapsed)
expression_statement
method_invocation
identifier "mediaCodec"
. "."
identifier "reset"
argument_list
( "("
) ")"
; ";"
if_statement (+21 nodes collapsed)
} "}"
} "}"
while "while"
parenthesized_expression
( "("
identifier "alive"
) ")"
; ";"
} "}"
finally_clause (+23 nodes collapsed)
} "}"
method_declaration (+163 nodes collapsed)
method_declaration (+79 nodes collapsed)
method_declaration (+225 nodes collapsed)
method_declaration (+429 nodes collapsed)
method_declaration (+324 nodes collapsed)
method_declaration (+158 nodes collapsed)
method_declaration (+45 nodes collapsed)
method_declaration (+38 nodes collapsed)
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "video"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "AndroidVersions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "AsyncProcessor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "Options"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "device"
. "."
identifier "ConfigurationException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "device"
. "."
identifier "Size"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "device"
. "."
identifier "Streamer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "Codec"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "CodecOption"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "CodecUtils"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "IO"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "Ln"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
. "."
identifier "util"
. "."
identifier "LogUtils"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaCodec"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaCodecInfo"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "media"
. "."
identifier "MediaFormat"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Build"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Looper"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "SystemClock"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "view"
. "."
identifier "Surface"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "IOException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "nio"
. "."
identifier "ByteBuffer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "concurrent"
. "."
identifier "atomic"
. "."
identifier "AtomicBoolean"
; ";"
class_declaration
modifiers
public "public"
class "class"
identifier "SurfaceEncoder"
super_interfaces
implements "implements"
type_list
type_identifier "AsyncProcessor"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "DEFAULT_I_FRAME_INTERVAL"
= "="
decimal_integer_literal "10"
; ";"
line_comment "// seconds"
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "REPEAT_FRAME_DELAY_US"
= "="
decimal_integer_literal "100_000"
; ";"
line_comment "// repeat after 100ms"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "KEY_MAX_FPS_TO_ENCODER"
= "="
string_literal
" "\""
string_fragment "max-fps-to-encoder"
" "\""
; ";"
line_comment "// Keep the values in descending order"
field_declaration (+29 nodes collapsed)
field_declaration
modifiers
private "private"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "MAX_CONSECUTIVE_ERRORS"
= "="
decimal_integer_literal "3"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "SurfaceCapture"
variable_declarator
identifier "capture"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "Streamer"
variable_declarator
identifier "streamer"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "encoderName"
; ";"
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "CodecOption"
> ">"
variable_declarator
identifier "codecOptions"
; ";"
field_declaration
modifiers
private "private"
final "final"
integral_type
int "int"
variable_declarator
identifier "videoBitRate"
; ";"
field_declaration
modifiers
private "private"
final "final"
floating_point_type
float "float"
variable_declarator
identifier "maxFps"
; ";"
field_declaration
modifiers
private "private"
final "final"
boolean_type "boolean"
variable_declarator
identifier "downsizeOnError"
; ";"
field_declaration
modifiers
private "private"
boolean_type "boolean"
variable_declarator
identifier "firstFrameSent"
; ";"
field_declaration
modifiers
private "private"
integral_type
int "int"
variable_declarator
identifier "consecutiveErrors"
; ";"
field_declaration
modifiers
private "private"
type_identifier "Thread"
variable_declarator
identifier "thread"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "AtomicBoolean"
variable_declarator
identifier "stopped"
= "="
object_creation_expression
new "new"
type_identifier "AtomicBoolean"
argument_list
( "("
) ")"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "CaptureReset"
variable_declarator
identifier "reset"
= "="
object_creation_expression
new "new"
type_identifier "CaptureReset"
argument_list
( "("
) ")"
; ";"
constructor_declaration (+114 nodes collapsed)
method_declaration
modifiers
private "private"
void_type "void"
identifier "streamCapture"
formal_parameters
( "("
) ")"
throws
throws "throws"
type_identifier "IOException"
, ","
type_identifier "ConfigurationException"
block
{ "{"
local_variable_declaration
type_identifier "Codec"
variable_declarator
identifier "codec"
= "="
method_invocation
identifier "streamer"
. "."
identifier "getCodec"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "MediaCodec"
variable_declarator
identifier "mediaCodec"
= "="
method_invocation
identifier "createMediaCodec"
argument_list
( "("
identifier "codec"
, ","
identifier "encoderName"
) ")"
; ";"
local_variable_declaration (+24 nodes collapsed)
expression_statement
method_invocation
identifier "capture"
. "."
identifier "init"
argument_list
( "("
identifier "reset"
) ")"
; ";"
try_statement
try "try"
block
{ "{"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "alive"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "headerWritten"
= "="
false "false"
; ";"
do_statement
do "do"
block
{ "{"
expression_statement
method_invocation
identifier "reset"
. "."
identifier "consumeReset"
argument_list
( "("
) ")"
; ";"
line_comment "// If a capture reset was requested, it is implicitly fulfil"...
expression_statement
method_invocation
identifier "capture"
. "."
identifier "prepare"
argument_list
( "("
) ")"
; ";"
local_variable_declaration
type_identifier "Size"
variable_declarator
identifier "size"
= "="
method_invocation
identifier "capture"
. "."
identifier "getSize"
argument_list
( "("
) ")"
; ";"
if_statement (+27 nodes collapsed)
expression_statement (+21 nodes collapsed)
expression_statement (+21 nodes collapsed)
local_variable_declaration
type_identifier "Surface"
variable_declarator
identifier "surface"
= "="
null_literal "null"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "mediaCodecStarted"
= "="
false "false"
; ";"
local_variable_declaration
boolean_type "boolean"
variable_declarator
identifier "captureStarted"
= "="
false "false"
; ";"
try_statement
try "try"
block
{ "{"
expression_statement
method_invocation
identifier "mediaCodec"
. "."
identifier "configure"
argument_list
( "("
identifier "format"
, ","
null_literal "null"
, ","
null_literal "null"
, ","
field_access
identifier "MediaCodec"
. "."
identifier "CONFIGURE_FLAG_ENCODE"
) ")"
; ";"
expression_statement
assignment_expression
identifier "surface"
= "="
method_invocation
identifier "mediaCodec"
. "."
identifier "createInputSurface"
argument_list
( "("
) ")"
; ";"
expression_statement
method_invocation
identifier "capture"
. "."
identifier "start"
argument_list
( "("
identifier "surface"
) ")"
; ";"
expression_statement
assignment_expression
identifier "captureStarted"
= "="
true "true"
; ";"
expression_statement
method_invocation
identifier "mediaCodec"
. "."
identifier "start"
argument_list
( "("
) ")"
; ";"
expression_statement
assignment_expression
identifier "mediaCodecStarted"
= "="
true "true"
; ";"
line_comment "// Set the MediaCodec instance to \"interrupt\" (by signaling "...
expression_statement
method_invocation
identifier "reset"
. "."
identifier "setRunningMediaCodec"
argument_list
( "("
identifier "mediaCodec"
) ")"
; ";"
if_statement (+86 nodes collapsed)
} "}"
catch_clause (+82 nodes collapsed)
finally_clause
finally "finally"
block
{ "{"
expression_statement
method_invocation
identifier "reset"
. "."
identifier "setRunningMediaCodec"
argument_list
( "("
null_literal "null"
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
identifier "captureStarted"
) ")"
block
{ "{"
expression_statement
method_invocation
identifier "capture"
. "."
identifier "stop"
argument_list
( "("
) ")"
; ";"
} "}"
if_statement (+35 nodes collapsed)
expression_statement
method_invocation
identifier "mediaCodec"
. "."
identifier "reset"
argument_list
( "("
) ")"
; ";"
if_statement (+21 nodes collapsed)
} "}"
} "}"
while "while"
parenthesized_expression
( "("
identifier "alive"
) ")"
; ";"
} "}"
finally_clause (+23 nodes collapsed)
} "}"
method_declaration (+163 nodes collapsed)
method_declaration (+79 nodes collapsed)
method_declaration (+225 nodes collapsed)
method_declaration (+429 nodes collapsed)
method_declaration (+324 nodes collapsed)
method_declaration (+158 nodes collapsed)
method_declaration (+45 nodes collapsed)
method_declaration (+38 nodes collapsed)
} "}"