44import android .os .AsyncTask ;
55
66import java .io .File ;
7- import java .lang .reflect .Array ;
87import java .util .Map ;
98
109public class FFprobe implements FFbinaryInterface {
@@ -52,8 +51,9 @@ public boolean isSupported() {
5251 @ Override
5352 public FFtask execute (Map <String , String > environvenmentVars , String [] cmd , FFcommandExecuteResponseHandler ffcommandExecuteResponseHandler ) {
5453 if (cmd .length != 0 ) {
55- String [] ffprobeBinary = new String []{FileUtils .getFFprobe (context .provide ()).getAbsolutePath ()};
56- String [] command = concatenate (ffprobeBinary , cmd );
54+ final String [] command = new String [cmd .length + 1 ];
55+ command [0 ] = FileUtils .getFFprobe (context .provide ()).getAbsolutePath ();
56+ System .arraycopy (cmd , 0 , command , 1 , cmd .length );
5757 FFcommandExecuteAsyncTask task = new FFcommandExecuteAsyncTask (command , environvenmentVars , timeout , ffcommandExecuteResponseHandler );
5858 task .executeOnExecutor (AsyncTask .THREAD_POOL_EXECUTOR );
5959 return task ;
@@ -62,18 +62,6 @@ public FFtask execute(Map<String, String> environvenmentVars, String[] cmd, FFco
6262 }
6363 }
6464
65- private static <T > T [] concatenate (T [] a , T [] b ) {
66- int aLen = a .length ;
67- int bLen = b .length ;
68-
69- @ SuppressWarnings ("unchecked" )
70- T [] c = (T []) Array .newInstance (a .getClass ().getComponentType (), aLen + bLen );
71- System .arraycopy (a , 0 , c , 0 , aLen );
72- System .arraycopy (b , 0 , c , aLen , bLen );
73-
74- return c ;
75- }
76-
7765 @ Override
7866 public FFtask execute (String [] cmd , FFcommandExecuteResponseHandler ffcommandExecuteResponseHandler ) {
7967 return execute (null , cmd , ffcommandExecuteResponseHandler );
0 commit comments