public static MediaRepresentation findBestMatchingRepresentation(Media media, Class<? extends MediaRepresentationPart> representationPartType, Integer size, Integer height, Integer widthOrDuration, String[] mimeTypes){\r
// find best matching representations of each media\r
SortedMap<Integer, MediaRepresentation> prefRepresentations\r
- = filterAndOrderMediaRepresentations(media.getRepresentations(), null, mimeTypes, size, widthOrDuration, height);\r
- try {\r
- // take first one and remove all other representations\r
- MediaRepresentation prefOne = prefRepresentations.get(prefRepresentations.firstKey());\r
+ = filterAndOrderMediaRepresentations(media.getRepresentations(), null, mimeTypes, size, widthOrDuration, height);\r
+ try {\r
+ // take first one and remove all other representations\r
+ MediaRepresentation prefOne = prefRepresentations.get(prefRepresentations.firstKey());\r
\r
- return prefOne;\r
+ return prefOne;\r
\r
- } catch (NoSuchElementException nse) {\r
- /* IGNORE */\r
+ } catch (NoSuchElementException nse) {\r
+ /* IGNORE */\r
+ }\r
+ return null;\r
+ }\r
+\r
+ /**\r
+ * Creates one single {@link MediaRepresentationPart} for the given {@link Media}\r
+ * if it does not already exists. Otherwise the first part found is returned.<br>\r
+ * @param media the media for which the representation part should be created\r
+ * @return the first or newly created representation part\r
+ */\r
+ public static MediaRepresentationPart initFirstMediaRepresentationPart(Media media) {\r
+ MediaRepresentationPart mediaRepresentationPart;\r
+ Set<MediaRepresentation> representations = media.getRepresentations();\r
+ if(representations!=null && representations.size()>0){\r
+ MediaRepresentation mediaRepresentation = representations.iterator().next();\r
+ List<MediaRepresentationPart> parts = mediaRepresentation.getParts();\r
+ if(parts!=null && parts.size()>0){\r
+ mediaRepresentationPart = parts.iterator().next();\r
+ }\r
+ else{\r
+ mediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);\r
+ mediaRepresentation.addRepresentationPart(mediaRepresentationPart);\r
}\r
- return null;\r
}\r
+ else{\r
+ mediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);\r
+\r
+ MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();\r
+ mediaRepresentation.addRepresentationPart(mediaRepresentationPart);\r
+ media.addRepresentation(mediaRepresentation);\r
+ }\r
+ return mediaRepresentationPart;\r
+ }\r
+\r
\r
/**\r
* Filters the given List of Media by the supplied filter parameters <code>representationPartType</code>,\r