summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/videoeditor/VideoEditorTestImpl.java207
1 files changed, 106 insertions, 101 deletions
diff --git a/media/java/android/media/videoeditor/VideoEditorTestImpl.java b/media/java/android/media/videoeditor/VideoEditorTestImpl.java
index 157dd62..ca896c3 100644
--- a/media/java/android/media/videoeditor/VideoEditorTestImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorTestImpl.java
@@ -748,121 +748,126 @@ public class VideoEditorTestImpl implements VideoEditor {
*/
private void load() throws FileNotFoundException, XmlPullParserException, IOException {
final File file = new File(mProjectPath, PROJECT_FILENAME);
- // Load the metadata
- final XmlPullParser parser = Xml.newPullParser();
final FileInputStream fis = new FileInputStream(file);
- parser.setInput(fis, "UTF-8");
- int eventType = parser.getEventType();
- String name;
- MediaItem currentMediaItem = null;
- Overlay currentOverlay = null;
- while (eventType != XmlPullParser.END_DOCUMENT) {
- switch (eventType) {
- case XmlPullParser.START_TAG: {
- name = parser.getName();
- if (TAG_PROJECT.equals(name)) {
- mAspectRatio = Integer.parseInt(parser.getAttributeValue("",
- ATTR_ASPECT_RATIO));
- } else if (TAG_MEDIA_ITEM.equals(name)) {
- final String mediaItemId = parser.getAttributeValue("", ATTR_ID);
- final String type = parser.getAttributeValue("", ATTR_TYPE);
- final String filename = parser.getAttributeValue("", ATTR_FILENAME);
- final int renderingMode = Integer.parseInt(parser.getAttributeValue("",
- ATTR_RENDERING_MODE));
-
- if (MediaImageItem.class.getSimpleName().equals(type)) {
- final long durationMs = Long.parseLong(parser.getAttributeValue("",
- ATTR_DURATION));
- currentMediaItem = new MediaImageItem(this, mediaItemId, filename,
- durationMs, renderingMode);
- } else if (MediaVideoItem.class.getSimpleName().equals(type)) {
- final long beginMs = Long.parseLong(parser.getAttributeValue("",
- ATTR_BEGIN_TIME));
- final long endMs = Long.parseLong(parser.getAttributeValue("",
- ATTR_END_TIME));
- final int volume = Integer.parseInt(parser.getAttributeValue("",
- ATTR_VOLUME));
- final boolean muted = Boolean.parseBoolean(parser.getAttributeValue("",
- ATTR_MUTED));
- final String audioWaveformFilename = parser.getAttributeValue("",
- ATTR_AUDIO_WAVEFORM_FILENAME);
- currentMediaItem = new MediaVideoItem(this, mediaItemId, filename,
- renderingMode, beginMs, endMs, volume, muted,
- audioWaveformFilename);
-
- final long beginTimeMs = Long.parseLong(parser.getAttributeValue("",
- ATTR_BEGIN_TIME));
- final long endTimeMs = Long.parseLong(parser.getAttributeValue("",
- ATTR_END_TIME));
- ((MediaVideoItem)currentMediaItem).setExtractBoundaries(beginTimeMs,
- endTimeMs);
-
- final int volumePercent = Integer.parseInt(parser.getAttributeValue("",
- ATTR_VOLUME));
- ((MediaVideoItem)currentMediaItem).setVolume(volumePercent);
- } else {
- Log.e(TAG, "Unknown media item type: " + type);
- currentMediaItem = null;
- }
- if (currentMediaItem != null) {
- mMediaItems.add(currentMediaItem);
- }
- } else if (TAG_TRANSITION.equals(name)) {
- final Transition transition = parseTransition(parser);
- if (transition != null) {
- mTransitions.add(transition);
- }
- } else if (TAG_OVERLAY.equals(name)) {
- if (currentMediaItem != null) {
- currentOverlay = parseOverlay(parser, currentMediaItem);
+ try {
+ // Load the metadata
+ final XmlPullParser parser = Xml.newPullParser();
+ parser.setInput(fis, "UTF-8");
+ int eventType = parser.getEventType();
+ String name;
+ MediaItem currentMediaItem = null;
+ Overlay currentOverlay = null;
+ while (eventType != XmlPullParser.END_DOCUMENT) {
+ switch (eventType) {
+ case XmlPullParser.START_TAG: {
+ name = parser.getName();
+ if (TAG_PROJECT.equals(name)) {
+ mAspectRatio = Integer.parseInt(parser.getAttributeValue("",
+ ATTR_ASPECT_RATIO));
+ } else if (TAG_MEDIA_ITEM.equals(name)) {
+ final String mediaItemId = parser.getAttributeValue("", ATTR_ID);
+ final String type = parser.getAttributeValue("", ATTR_TYPE);
+ final String filename = parser.getAttributeValue("", ATTR_FILENAME);
+ final int renderingMode = Integer.parseInt(
+ parser.getAttributeValue("", ATTR_RENDERING_MODE));
+
+ if (MediaImageItem.class.getSimpleName().equals(type)) {
+ final long durationMs = Long.parseLong(
+ parser.getAttributeValue("", ATTR_DURATION));
+ currentMediaItem = new MediaImageItem(this, mediaItemId, filename,
+ durationMs, renderingMode);
+ } else if (MediaVideoItem.class.getSimpleName().equals(type)) {
+ final long beginMs = Long.parseLong(
+ parser.getAttributeValue("", ATTR_BEGIN_TIME));
+ final long endMs = Long.parseLong(
+ parser.getAttributeValue("", ATTR_END_TIME));
+ final int volume = Integer.parseInt(
+ parser.getAttributeValue("", ATTR_VOLUME));
+ final boolean muted = Boolean.parseBoolean(
+ parser.getAttributeValue("", ATTR_MUTED));
+ final String audioWaveformFilename =
+ parser.getAttributeValue("", ATTR_AUDIO_WAVEFORM_FILENAME);
+ currentMediaItem = new MediaVideoItem(this, mediaItemId, filename,
+ renderingMode, beginMs, endMs, volume, muted,
+ audioWaveformFilename);
+
+ final long beginTimeMs = Long.parseLong(
+ parser.getAttributeValue("", ATTR_BEGIN_TIME));
+ final long endTimeMs = Long.parseLong(
+ parser.getAttributeValue("", ATTR_END_TIME));
+ ((MediaVideoItem)currentMediaItem).setExtractBoundaries(
+ beginTimeMs, endTimeMs);
+
+ final int volumePercent = Integer.parseInt(
+ parser.getAttributeValue("", ATTR_VOLUME));
+ ((MediaVideoItem)currentMediaItem).setVolume(volumePercent);
+ } else {
+ Log.e(TAG, "Unknown media item type: " + type);
+ currentMediaItem = null;
+ }
+
+ if (currentMediaItem != null) {
+ mMediaItems.add(currentMediaItem);
+ }
+ } else if (TAG_TRANSITION.equals(name)) {
+ final Transition transition = parseTransition(parser);
+ if (transition != null) {
+ mTransitions.add(transition);
+ }
+ } else if (TAG_OVERLAY.equals(name)) {
+ if (currentMediaItem != null) {
+ currentOverlay = parseOverlay(parser, currentMediaItem);
+ if (currentOverlay != null) {
+ currentMediaItem.addOverlay(currentOverlay);
+ }
+ }
+ } else if (TAG_OVERLAY_USER_ATTRIBUTES.equals(name)) {
if (currentOverlay != null) {
- currentMediaItem.addOverlay(currentOverlay);
+ final int attributesCount = parser.getAttributeCount();
+ for (int i = 0; i < attributesCount; i++) {
+ currentOverlay.setUserAttribute(parser.getAttributeName(i),
+ parser.getAttributeValue(i));
+ }
}
- }
- } else if (TAG_OVERLAY_USER_ATTRIBUTES.equals(name)) {
- if (currentOverlay != null) {
- final int attributesCount = parser.getAttributeCount();
- for (int i = 0; i < attributesCount; i++) {
- currentOverlay.setUserAttribute(parser.getAttributeName(i),
- parser.getAttributeValue(i));
+ } else if (TAG_EFFECT.equals(name)) {
+ if (currentMediaItem != null) {
+ final Effect effect = parseEffect(parser, currentMediaItem);
+ if (effect != null) {
+ currentMediaItem.addEffect(effect);
+ }
}
- }
- } else if (TAG_EFFECT.equals(name)) {
- if (currentMediaItem != null) {
- final Effect effect = parseEffect(parser, currentMediaItem);
- if (effect != null) {
- currentMediaItem.addEffect(effect);
+ } else if (TAG_AUDIO_TRACK.equals(name)) {
+ final AudioTrack audioTrack = parseAudioTrack(parser);
+ if (audioTrack != null) {
+ addAudioTrack(audioTrack);
}
}
- } else if (TAG_AUDIO_TRACK.equals(name)) {
- final AudioTrack audioTrack = parseAudioTrack(parser);
- if (audioTrack != null) {
- addAudioTrack(audioTrack);
- }
+ break;
}
- break;
- }
- case XmlPullParser.END_TAG: {
- name = parser.getName();
- if (TAG_MEDIA_ITEM.equals(name)) {
- currentMediaItem = null;
- } else if (TAG_OVERLAY.equals(name)) {
- currentOverlay = null;
+ case XmlPullParser.END_TAG: {
+ name = parser.getName();
+ if (TAG_MEDIA_ITEM.equals(name)) {
+ currentMediaItem = null;
+ } else if (TAG_OVERLAY.equals(name)) {
+ currentOverlay = null;
+ }
+ break;
}
- break;
- }
- default: {
- break;
+ default: {
+ break;
+ }
}
+ eventType = parser.next();
+ }
+ computeTimelineDuration();
+ } finally {
+ if (fis != null) {
+ fis.close();
}
- eventType = parser.next();
}
-
- fis.close();
- computeTimelineDuration();
}
/**