private static _3<Integer, Integer, Codec> selectSuitableTrack(String input, Format format, TrackType targetType) throws IOException { _2<Integer, Demuxer> demuxerPid; if (format == Format.MPEG_TS) { demuxerPid = JCodecUtil.createM2TSDemuxer(new File(input), targetType); } else { demuxerPid = _2(0, JCodecUtil.createDemuxer(format, new File(input))); } if (demuxerPid == null || demuxerPid.v1 == null) return null; int trackNo = 0; List<? extends DemuxerTrack> tracks = targetType == TrackType.VIDEO ? demuxerPid.v1.getVideoTracks() : demuxerPid.v1.getAudioTracks(); for (DemuxerTrack demuxerTrack : tracks) { Codec codec = detectVideoDecoder(demuxerTrack); if (supportedDecoders.contains(codec)) { return _3(demuxerPid.v0, trackNo, codec); } trackNo++; } return null; }