- /**\r
- * @param media\r
- * @param mimeTypeRegexes\r
- * @param size\r
- * @param widthOrDuration\r
- * @param height\r
- * @return\r
- * \r
- * TODO move into a media utils class\r
- * TODO implement the quality filter \r
- */\r
- private SortedMap<String, MediaRepresentation> orderMediaRepresentations(Media media, String[] mimeTypeRegexes,\r
- Integer size, Integer widthOrDuration, Integer height) {\r
- SortedMap<String, MediaRepresentation> prefRepr = new TreeMap<String, MediaRepresentation>();\r
- for (String mimeTypeRegex : mimeTypeRegexes) {\r
- // getRepresentationByMimeType\r
- Pattern mimeTypePattern = Pattern.compile(mimeTypeRegex);\r
- int representationCnt = 0;\r
- for (MediaRepresentation representation : media.getRepresentations()) {\r
- int dwa = 0;\r
- if(representation.getMimeType() == null){\r
- prefRepr.put((dwa + representationCnt++) + "_NA", representation);\r
- } else {\r
- Matcher mather = mimeTypePattern.matcher(representation.getMimeType());\r
- if (mather.matches()) {\r
- \r
- /* TODO the quality filter part is being skipped \r
- * // look for representation with the best matching parts\r
- for (MediaRepresentationPart part : representation.getParts()) {\r
- if (part instanceof ImageFile) {\r
- ImageFile image = (ImageFile) part;\r
- int dw = image.getWidth() * image.getHeight() - height * widthOrDuration;\r
- if (dw < 0) {\r
- dw *= -1;\r
- }\r
- dwa += dw;\r
- }\r
- dwa = (representation.getParts().size() > 0 ? dwa / representation.getParts().size() : 0);\r
- }*/\r
- prefRepr.put((dwa + representationCnt++) + '_' + representation.getMimeType(), representation);\r
- \r
- // preferred mime type found => end loop\r
- break;\r
- }\r
- }\r
- }\r
- }\r
- return prefRepr;\r
- }\r
-\r
- \r