@@ -63,9 +63,9 @@ public boolean consumeRotationChange() {
6363 }
6464
6565 public void streamScreen () throws IOException , ConfigurationException {
66- String videoMimeType = streamer .getCodec (). getMimeType ();
67- MediaCodec mediaCodec = createMediaCodec (videoMimeType , encoderName );
68- MediaFormat format = createFormat (videoMimeType , bitRate , maxFps , codecOptions );
66+ Codec codec = streamer .getCodec ();
67+ MediaCodec mediaCodec = createMediaCodec (codec , encoderName );
68+ MediaFormat format = createFormat (codec . getMimeType () , bitRate , maxFps , codecOptions );
6969 IBinder display = createDisplay ();
7070 device .setRotationListener (this );
7171
@@ -210,28 +210,28 @@ private static MediaCodecInfo[] listEncoders(String videoMimeType) {
210210 return result .toArray (new MediaCodecInfo [result .size ()]);
211211 }
212212
213- private static MediaCodec createMediaCodec (String videoMimeType , String encoderName ) throws IOException , ConfigurationException {
213+ private static MediaCodec createMediaCodec (Codec codec , String encoderName ) throws IOException , ConfigurationException {
214214 if (encoderName != null ) {
215215 Ln .d ("Creating encoder by name: '" + encoderName + "'" );
216216 try {
217217 return MediaCodec .createByCodecName (encoderName );
218218 } catch (IllegalArgumentException e ) {
219- Ln .e (buildUnknownEncoderMessage (videoMimeType , encoderName ));
219+ Ln .e (buildUnknownEncoderMessage (codec , encoderName ));
220220 throw new ConfigurationException ("Unknown encoder: " + encoderName );
221221 }
222222 }
223- MediaCodec mediaCodec = MediaCodec .createEncoderByType (videoMimeType );
223+ MediaCodec mediaCodec = MediaCodec .createEncoderByType (codec . getMimeType () );
224224 Ln .d ("Using encoder: '" + mediaCodec .getName () + "'" );
225225 return mediaCodec ;
226226 }
227227
228- private static String buildUnknownEncoderMessage (String videoMimeType , String encoderName ) {
229- StringBuilder msg = new StringBuilder ("Encoder '" ).append (encoderName ).append ("' not found" );
230- MediaCodecInfo [] encoders = listEncoders (videoMimeType );
228+ private static String buildUnknownEncoderMessage (Codec codec , String encoderName ) {
229+ StringBuilder msg = new StringBuilder ("Encoder '" ).append (encoderName ).append ("' for " ). append ( codec . getName ()). append ( " not found" );
230+ MediaCodecInfo [] encoders = listEncoders (codec . getMimeType () );
231231 if (encoders != null && encoders .length > 0 ) {
232232 msg .append ("\n Try to use one of the available encoders:" );
233233 for (MediaCodecInfo encoder : encoders ) {
234- msg .append ("\n scrcpy --encoder='" ).append (encoder .getName ()).append ("'" );
234+ msg .append ("\n scrcpy --codec=" ). append ( codec . getName ()). append ( " -- encoder='" ).append (encoder .getName ()).append ("'" );
235235 }
236236 }
237237 return msg .toString ();
0 commit comments