VideoEditorStressTest.java revision d5ade1364b2c9bd452400fbee52273a3826ec105
1f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru/* 2f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * Copyright (C) 2011 The Android Open Source Project 3f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 4f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * Licensed under the Apache License, Version 2.0 (the "License"); 5f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * you may not use this file except in compliance with the License. 6f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * You may obtain a copy of the License at 7f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 8f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * http://www.apache.org/licenses/LICENSE-2.0 9f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 10f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * Unless required by applicable law or agreed to in writing, software 11f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * distributed under the License is distributed on an "AS IS" BASIS, 12f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * See the License for the specific language governing permissions and 14f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * limitations under the License. 15f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 16f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 17f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattagurupackage com.android.mediaframeworktest.stress; 18f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 19f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport java.io.BufferedWriter; 20f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport java.io.File; 21f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport java.io.FileOutputStream; 22f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport java.io.FileWriter; 23f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport java.io.Writer; 24f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport java.util.List; 25f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 26f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.graphics.Bitmap; 27f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.graphics.Rect; 28f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.AudioTrack; 29f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.EffectColor; 30f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.EffectKenBurns; 31f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.MediaImageItem; 32f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.MediaItem; 33f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.MediaProperties; 34f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.MediaVideoItem; 35f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.OverlayFrame; 36f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.Transition; 37f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.TransitionCrossfade; 38f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.TransitionAlpha; 39f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.TransitionFadeBlack; 40f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.TransitionSliding; 41f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.VideoEditor; 42f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.os.Environment; 43f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.test.ActivityInstrumentationTestCase; 44f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.VideoEditor.MediaProcessingProgressListener; 45f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.os.Environment; 46f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.os.SystemClock; 47f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.test.ActivityInstrumentationTestCase; 48f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.VideoEditor.ExportProgressListener; 49f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.VideoEditorFactory; 50f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.media.videoeditor.ExtractAudioWaveformProgressListener; 51f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 52f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.os.Debug; 53f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.util.Log; 542d06aee09507252ba6703ecd2c4f9f356048e6adshailendraimport com.android.mediaframeworktest.MediaFrameworkPerfTestRunner; 55f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport com.android.mediaframeworktest.MediaFrameworkTest; 56f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport android.test.suitebuilder.annotation.LargeTest; 57f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguruimport com.android.mediaframeworktest.VideoEditorHelper; 582d06aee09507252ba6703ecd2c4f9f356048e6adshailendraimport com.android.mediaframeworktest.MediaTestUtil; 59f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 60f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru/** 61f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * Junit / Instrumentation - performance measurement for media player and 62f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * recorder 63f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 64f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattagurupublic class VideoEditorStressTest 65f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru extends ActivityInstrumentationTestCase<MediaFrameworkTest> { 66f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 672d06aee09507252ba6703ecd2c4f9f356048e6adshailendra private final String TAG = "VideoEditorStressTest"; 68f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 69f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private final String PROJECT_LOCATION = VideoEditorHelper.PROJECT_LOCATION_COMMON; 70f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 71f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private final String INPUT_FILE_PATH = VideoEditorHelper.INPUT_FILE_PATH_COMMON; 72f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 73f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private final String VIDEOEDITOR_OUTPUT = PROJECT_LOCATION + 74f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "VideoEditorStressMemOutput.txt"; 75f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 76f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private long BeginJavaMemory; 77f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private long AfterJavaMemory; 78f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 79f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private long BeginNativeMemory; 80f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private long AfterNativeMemory; 81f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 82f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public VideoEditorStressTest() { 83f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru super("com.android.mediaframeworktest", MediaFrameworkTest.class); 84f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new File(VIDEOEDITOR_OUTPUT).delete(); 85f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 86f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 87f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private final String PROJECT_CLASS_NAME = 88f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "android.media.videoeditor.VideoEditorImpl"; 89f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private VideoEditor mVideoEditor; 902d06aee09507252ba6703ecd2c4f9f356048e6adshailendra private MediaTestUtil mMediaTestUtil; 91f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private VideoEditorHelper mVideoEditorHelper; 92f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 93f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @Override 94f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru protected void setUp() throws Exception { 95f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // setup for each test case. 96f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru super.setUp(); 972d06aee09507252ba6703ecd2c4f9f356048e6adshailendra getActivity(); 982d06aee09507252ba6703ecd2c4f9f356048e6adshailendra mMediaTestUtil = new MediaTestUtil( 992d06aee09507252ba6703ecd2c4f9f356048e6adshailendra "/sdcard/VideoEditorMediaServerMemoryLog.txt", 1002d06aee09507252ba6703ecd2c4f9f356048e6adshailendra this.getName(), "mediaserver"); 101f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper = new VideoEditorHelper(); 102f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Create a random String which will be used as project path, where all 103f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // project related files will be stored. 104f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String projectPath = 105f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createRandomFile(PROJECT_LOCATION); 106f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor = mVideoEditorHelper.createVideoEditor(projectPath); 107f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 108f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 109f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @Override 110f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru protected void tearDown() throws Exception { 1112d06aee09507252ba6703ecd2c4f9f356048e6adshailendra final String[] loggingInfo = new String[1]; 1122d06aee09507252ba6703ecd2c4f9f356048e6adshailendra mMediaTestUtil.getMemorySummary(); 1132d06aee09507252ba6703ecd2c4f9f356048e6adshailendra loggingInfo[0] = "\n" +this.getName(); 1142d06aee09507252ba6703ecd2c4f9f356048e6adshailendra writeTimingInfo(loggingInfo); 1152d06aee09507252ba6703ecd2c4f9f356048e6adshailendra loggingInfo[0] = " diff : " + (AfterNativeMemory - BeginNativeMemory); 1162d06aee09507252ba6703ecd2c4f9f356048e6adshailendra writeTimingInfo(loggingInfo); 117f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.destroyVideoEditor(mVideoEditor); 118f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Clean the directory created as project path 119f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.deleteProject(new File(mVideoEditor.getPath())); 120f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru System.gc(); 121f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru super.tearDown(); 122f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 123f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 124f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private void writeTimingInfo(String[] information) 125f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru throws Exception { 126f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru File outFile = new File(VIDEOEDITOR_OUTPUT); 127f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru Writer output = new BufferedWriter(new FileWriter(outFile, true)); 128f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i = 0; i < information.length; i++) { 129f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru output.write(information[i]); 130f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 131f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru output.close(); 132f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 133f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 134f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private void writeTestCaseHeader(String testCaseName) 135f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru throws Exception { 136f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru File outFile = new File(VIDEOEDITOR_OUTPUT); 137f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru Writer output = new BufferedWriter(new FileWriter(outFile, true)); 138f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru output.write("\n\n" + testCaseName + "\n"); 139f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru output.close(); 140f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 141f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 142f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private void getBeginMemory() throws Exception { 143f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru System.gc(); 144f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru Thread.sleep(2500); 145f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru BeginNativeMemory = Debug.getNativeHeapAllocatedSize(); 1462d06aee09507252ba6703ecd2c4f9f356048e6adshailendra mMediaTestUtil.getStartMemoryLog(); 147f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 148f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru private void getAfterMemory_updateLog(String[] loggingInfo, boolean when, 149f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int iteration) 150f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru throws Exception { 151f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru System.gc(); 152f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru Thread.sleep(2500); 153f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru AfterNativeMemory = Debug.getNativeHeapAllocatedSize(); 154f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(when == false){ 155f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru loggingInfo[0] = "\n Before Remove: iteration No.= " + iteration + 156f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "\t " + (AfterNativeMemory - BeginNativeMemory); 157f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } else { 158f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru loggingInfo[0] = "\n After Remove: iteration No.= " + iteration + 159f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "\t " + (AfterNativeMemory - BeginNativeMemory); 160f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 161f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTimingInfo(loggingInfo); 1622d06aee09507252ba6703ecd2c4f9f356048e6adshailendra mMediaTestUtil.getMemoryLog(); 163f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 164f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 165f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 166f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test MediaItem(Video Item) adding functionality 167f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 168f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 169f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 170f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 171f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAddRemoveVideoItem() throws Exception { 172f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 173f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 174f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName1 = INPUT_FILE_PATH + 175f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_176x144_15fps_144kbps_AMRNB_8kHz_12.2kbps_m_1_17.3gp"; 176f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName2 = INPUT_FILE_PATH + 177f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_720x480_30fps_280kbps_AACLC_48kHz_96kbps_s_0_21.mp4"; 178f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName3 = INPUT_FILE_PATH + 179f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H263_profile0_176x144_15fps_128kbps_1_35.3gp"; 180f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName4 = INPUT_FILE_PATH + 181f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_1200kbps_AACLC_48khz_64kbps_m_1_17.3gp"; 182f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 183f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAddRemoveVideoItem"); 184f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 185f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 186f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 187f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 188f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 189f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1" + i, videoItemFileName1, renderingMode); 190f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 5000); 191f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 192f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 193f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 194f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem2 = new MediaVideoItem(mVideoEditor, 195f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2" + i, videoItemFileName2, renderingMode); 196f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setExtractBoundaries(0, 10000); 197f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 198f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 199f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 200f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem3 = new MediaVideoItem(mVideoEditor, 201f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3" + i, videoItemFileName3, renderingMode); 202f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(30000, 45000); 203f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem3); 204f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 205f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 206f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem4 = new MediaVideoItem(mVideoEditor, 207f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m4" + i, videoItemFileName4, renderingMode); 208f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem4.setExtractBoundaries(10000, 30000); 209f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem4); 210f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 211f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 212f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 213f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 214f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 215f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 216f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 217f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 218f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 219f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 220f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1" + i); 221f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 222f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 223f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2" + i); 224f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 225f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 226f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m3" + i); 227f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 228f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 229f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m4" + i); 230f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 231f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 232f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 233f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 234f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 235f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 236f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 237f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 238f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 239f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test MediaItem(Image Item) adding functionality 240f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 241f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 242f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 243f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 244f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAddRemoveImageItem() throws Exception { 245f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 246f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName1 = INPUT_FILE_PATH + 247f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_1600x1200.jpg"; 248f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName2 = INPUT_FILE_PATH + 249f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480.jpg"; 250f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName3 = INPUT_FILE_PATH + 251f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_320x240.jpg"; 252f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName4 = INPUT_FILE_PATH + 253f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_176x144.jpg"; 254f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 255f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 256f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAddRemoveImageItem"); 257f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 258f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 259f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 260f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem1 = new MediaImageItem(mVideoEditor, 261f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1"+ i, ImageItemFileName1, 5000, renderingMode); 262f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 263f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 264f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 265f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 266f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2"+ i, ImageItemFileName2, 10000, renderingMode); 267f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 268f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 269f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 270f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem3 = new MediaImageItem(mVideoEditor, 271f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3"+ i, ImageItemFileName3, 15000, renderingMode); 272f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem3); 273f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 274f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 275f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem4 = new MediaImageItem(mVideoEditor, 276f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m4"+ i, ImageItemFileName4, 20000, renderingMode); 277f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem4); 278f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 279f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 280f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 281f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 282f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 283f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 284f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 285f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 286f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 287f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 288f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1"+i); 289f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 290f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 291f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2"+i); 292f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 293f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 294f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m3"+i); 295f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 296f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 297f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m4"+i); 298f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 299f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 300f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 301f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 302f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 303f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 304f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 305f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 306f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 307f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test transition 308f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 309f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 310f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 311f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 312f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAddRemoveTransition() throws Exception { 313f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 314f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 315f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_800x480_15fps_512kbps_1_17.mp4"; 316f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName2 = INPUT_FILE_PATH + 317f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_1600x1200.jpg"; 318f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName3 = INPUT_FILE_PATH + 319f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_512kbps_AACLC_48khz_132kbps_s_0_26.mp4"; 320f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String maskFilename = INPUT_FILE_PATH + 321f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "TransitionSpiral_QVGA.jpg"; 322f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 323f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 324f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAddRemoveTransition"); 325f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 326f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 327f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 328f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 329f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1"+i, VideoItemFileName1, renderingMode); 330f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 331f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 332f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionCrossfade tranCrossfade = 333f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new TransitionCrossfade("transCF" + i, null, 334f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1, 5000, Transition.BEHAVIOR_MIDDLE_FAST); 335f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(tranCrossfade); 336f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 337f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 338f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 339f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1"+i, VideoItemFileName1, renderingMode); 340f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 341f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 342f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 343f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 344f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2" +i, ImageItemFileName2, 10000, renderingMode); 345f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 346f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 347f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionAlpha transitionAlpha = 348f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createTAlpha("transAlpha" + i, mediaItem1, 349f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2, 5000, Transition.BEHAVIOR_SPEED_UP, 350f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru maskFilename, 10, false); 351f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru transitionAlpha.setDuration(4000); 352f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(transitionAlpha); 353f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 354f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 355f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 356f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2" + i, ImageItemFileName2, 10000, renderingMode); 357f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 358f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 359f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem3 = new MediaVideoItem(mVideoEditor, 360f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3" + i, VideoItemFileName3, renderingMode); 361f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem3); 362f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 363f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(0, 10000); 364f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionAlpha transitionAlpha = 365f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createTAlpha("transAlpha" + i, mediaItem2, 366f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3, 5000, Transition.BEHAVIOR_SPEED_UP, 367f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru maskFilename, 10, false); 368f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru transitionAlpha.setDuration(4000); 369f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(transitionAlpha); 370f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 371f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(0, 6000); 372f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 373f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionSliding transition2And3 = 374f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createTSliding("transSlide" +i, mediaItem2, 375f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3, 3000, Transition.BEHAVIOR_MIDDLE_FAST, 376f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru TransitionSliding.DIRECTION_LEFT_OUT_RIGHT_IN); 377f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(transition2And3); 378f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 379f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 380f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem3 = new MediaVideoItem(mVideoEditor, 381f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3" + i, VideoItemFileName3, renderingMode); 382f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem3); 383f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(0, 5000); 384f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 385f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionFadeBlack transition3 = 386f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createTFadeBlack("transFB" +i, mediaItem3, 387f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru null, 2500, Transition.BEHAVIOR_SPEED_UP); 388f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru transition3.setDuration(500); 389f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(transition3); 390f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 391f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 392f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 393f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 394f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 395f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 396f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 397f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 398f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 399f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 400f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeTransition("transCF" + i); 401f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1" + i); 402f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 403f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 404f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeTransition("transAlpha" + i); 405f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1" + i); 406f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2" + i); 407f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 408f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 409f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeTransition("transSlide" +i); 410f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2" + i); 411f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m3" + i); 412f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 413f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 414f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m3" + i); 415f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 416f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 417f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 418f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 419f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 420f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 421f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 422f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 423f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 424f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test overlay 425f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 426f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 427f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 428f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 429f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAddRemoveOverlay() throws Exception { 430f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 431f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 432f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_512kbps_AACLC_48khz_132kbps_s_0_26.mp4"; 433f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName2 = INPUT_FILE_PATH + 434f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480.jpg"; 435f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String OverlayFile3 = INPUT_FILE_PATH + 436f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480_Overlay1.png"; 437f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String OverlayFile4 = INPUT_FILE_PATH + 438f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480_Overlay2.png"; 439f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 440f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 441f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 442f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", VideoItemFileName1, renderingMode); 443f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 444f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 445f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 446f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2", ImageItemFileName2, 10000, renderingMode); 447f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 448f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAddRemoveOverlay"); 449f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 450f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 451f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 3 == 0) { 452f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 453f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap mBitmap = mVideoEditorHelper.getBitmap( 454f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru OverlayFile3, 640, 480); 455f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final OverlayFrame overlayFrame = 456f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createOverlay(mediaItem1, "overlay" + i, 457f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mBitmap, 1000, 5000); 458f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.addOverlay(overlayFrame); 459f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeOverlay("overlay"+i); 460f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 461f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 3 == 1) { 462f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap mBitmap = mVideoEditorHelper.getBitmap( 463f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru OverlayFile4, 640, 480); 464f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final OverlayFrame overlayFrame = 465f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createOverlay(mediaItem2, "overlay" + i, 466f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mBitmap, 1000, 5000); 467f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.addOverlay(overlayFrame); 468f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.removeOverlay("overlay"+i); 469f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 470f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 3 == 2) { 471f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 472f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap mBitmap = mVideoEditorHelper.getBitmap( 473f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru OverlayFile4, 640, 480); 474f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final OverlayFrame overlayFrame = 475f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createOverlay(mediaItem1, "overlay" + i, 476f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mBitmap, 0, mediaItem1.getDuration()); 477f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.addOverlay(overlayFrame); 478f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeOverlay("overlay"+i); 479f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 480f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 481f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 482f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 483f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 484f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 485f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 486f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 487f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 488f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test Effects 489f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 490f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 491f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 492f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 493f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAddRemoveEffects() throws Exception { 494f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 495f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 496f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_1200kbps_AACLC_48khz_64kbps_m_1_17.3gp"; 497f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName2 = INPUT_FILE_PATH + 498f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_1600x1200.jpg"; 499f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 500f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 501f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", VideoItemFileName1, renderingMode); 502f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 503f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 504f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2", ImageItemFileName2, 10000, renderingMode); 505f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 506f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 507f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAddRemoveEffects"); 508f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 509f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 510f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 0) { 511f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(10000, 30000); 512f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor1 = 513f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem1, "effect1"+i, 514f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 10000, (mediaItem1.getTimelineDuration()-1000), 515f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru EffectColor.TYPE_COLOR, EffectColor.GREEN); 516f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.addEffect(effectColor1); 517f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 518f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 1) { 519f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setDuration(20000); 520f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor1 = 521f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem2, "effect1"+i, 522f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 0, 4000, EffectColor.TYPE_GRADIENT, EffectColor.GRAY); 523f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.addEffect(effectColor1); 524f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 525f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 2) { 526f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(10000, 30000); 527f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor1 = 528f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem1, "effect1"+i, 529f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem1.getTimelineDuration() - 4000), 4000, 530f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru EffectColor.TYPE_SEPIA, 0); 531f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.addEffect(effectColor1); 532f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 533f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 3) { 534f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setDuration(20000); 535f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor1 = 536f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem2, "effect1"+i, 537f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 10000, 4000, EffectColor.TYPE_NEGATIVE, 0); 538f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.addEffect(effectColor1); 539f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 540f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 4) { 541f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setDuration(20000); 542f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Rect startRect = new Rect((mediaItem2.getHeight() / 3), 543f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem2.getWidth() / 3), (mediaItem2.getHeight() / 2), 544f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem2.getWidth() / 2)); 545f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Rect endRect = new Rect(0, 0, mediaItem2.getWidth(), 546f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.getHeight()); 547f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectKenBurns kbEffectOnMediaItem = new EffectKenBurns( 548f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2, "KBOnM2" + i, startRect, endRect, 500, 549f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem2.getDuration() - 500)); 550f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.addEffect(kbEffectOnMediaItem); 551f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 552f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 553f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 554f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 555f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 556f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 557f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 558f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 559f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 560f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 0) { 561f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeEffect("effect1"+i); 562f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 563f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 1) { 564f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeEffect("effect1"+i); 565f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 566f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 2) { 567f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeEffect("effect1"+i); 568f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 569f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 3) { 570f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeEffect("effect1"+i); 571f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 572f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 5 == 4) { 573f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.removeEffect("KBOnM2"+i); 574f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 575f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 576f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 577f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 578f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 579f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 580f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 581f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 582f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 583f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * This method will test thumbnail list extraction in a loop = 200 for Video 584f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * Item 585f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 586f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 587f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 588f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 589f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressThumbnailVideoItem() throws Exception { 590f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName = INPUT_FILE_PATH 591f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru + "H264_BP_640x480_15fps_1200Kbps_AACLC_48KHz_64kps_m_0_27.3gp"; 592f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 593f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 594f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 595f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaVideoItem = new MediaVideoItem(mVideoEditor, 596f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", videoItemFileName, renderingMode); 597f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressThumbnailVideoItem"); 598f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 599f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 600f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 601f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = 602f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getThumbnailList(mediaVideoItem.getWidth()*3, 6030c6a5182ed7b7d6bf25785f41b3a45bf2f48c989Basavapatna Dattaguru mediaVideoItem.getHeight()/2, i, 5000, 2); 604f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 605f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 606f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 607f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 608f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 609f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 610f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = 611f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getThumbnailList(mediaVideoItem.getWidth()/2, 612f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getHeight() * 3, i, 5000, 2); 613f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 614f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 615f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 616f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 617f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 618f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 619f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = 620f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getThumbnailList(mediaVideoItem.getWidth()*2, 621f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getHeight() / 3, i, 5000, 2); 622f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 623f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 624f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 625f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 626f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 627f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 628f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = 629f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getThumbnailList(mediaVideoItem.getWidth(), 630f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaVideoItem.getHeight(), i, 5000, 2); 631f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 632f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 633f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 634f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 635f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 636f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 637f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 638f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 639f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 640f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 641f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 642f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 643f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 644f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test media properties 645f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 646f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 647f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 648f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 649f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressMediaProperties() throws Exception { 650f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 651f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 652f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_1080x720_30fps_800kbps_1_17.mp4"; 653f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName2 = INPUT_FILE_PATH + 654f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480.jpg"; 655f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String AudioItemFileName3 = INPUT_FILE_PATH + 656f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AACLC_44.1kHz_256kbps_s_1_17.mp4"; 657f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 658f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 659f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int videoAspectRatio = MediaProperties.ASPECT_RATIO_3_2; 660f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int videoFileType = MediaProperties.FILE_MP4; 6613ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury final int videoCodecType = MediaProperties.VCODEC_H264; 662f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int videoDuration = 77366; 6633ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury final int videoProfile = MediaProperties.H264Profile.H264ProfileBaseline; 6643ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury final int videoLevel = MediaProperties.H264Level.H264Level13; 665f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int videoHeight = MediaProperties.HEIGHT_720; 666f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int videoWidth = 1080; 667f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 668f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int imageAspectRatio = MediaProperties.ASPECT_RATIO_4_3; 669f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int imageFileType = MediaProperties.FILE_JPEG; 670f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int imageWidth = 640; 671f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int imageHeight = MediaProperties.HEIGHT_480; 672f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 673f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int audioDuration = 77554; 674f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int audioCodecType = MediaProperties.ACODEC_AAC_LC; 675f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int audioSamplingFrequency = 44100; 676f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int audioChannel = 2; 677f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressMediaProperties"); 678f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 679f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 680f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 3 == 0) { 681f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 682f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1" + i, VideoItemFileName1, renderingMode); 683f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 684f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 20000); 685f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Aspect Ratio Mismatch", 686f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoAspectRatio, mediaItem1.getAspectRatio()); 687f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("File Type Mismatch", 688f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoFileType, mediaItem1.getFileType()); 689f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("VideoCodec Mismatch", 690f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoCodecType, mediaItem1.getVideoType()); 691f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("duration Mismatch", 692f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoDuration, mediaItem1.getDuration()); 693f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Video Profile ", 694f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoProfile, mediaItem1.getVideoProfile()); 6953ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury assertEquals("Video Level ", 6963ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury videoLevel, mediaItem1.getVideoLevel()); 697f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Video height ", 698f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoHeight, mediaItem1.getHeight()); 699f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Video width ", 700f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru videoWidth, mediaItem1.getWidth()); 701f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1" + i); 702f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 703f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 3 == 1) { 704f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 705f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2" + i, ImageItemFileName2, 10000, renderingMode); 706f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 707f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Aspect Ratio Mismatch", 708f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru imageAspectRatio, mediaItem2.getAspectRatio()); 709f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("File Type Mismatch", 710f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru imageFileType, mediaItem2.getFileType()); 711f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Image height", 712f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru imageHeight, mediaItem2.getHeight()); 713f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Image width", 714f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru imageWidth, mediaItem2.getWidth()); 715f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2" + i); 716f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 717f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 3 == 2) { 718f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack mediaItem3 = new AudioTrack(mVideoEditor, 719f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3" + i, AudioItemFileName3); 720f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addAudioTrack(mediaItem3); 721f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("AudioType Mismatch", audioCodecType, 722f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.getAudioType()); 723f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Audio Sampling", audioSamplingFrequency, 724f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.getAudioSamplingFrequency()); 725f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Audio Channels", 726f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru audioChannel, mediaItem3.getAudioChannels()); 727f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("duration Mismatch", audioDuration, 728f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.getDuration()); 729f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeAudioTrack("m3" + i); 730f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 731f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 732f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 733f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 734f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 735f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 736f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 737f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 738f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 739f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test insert and move of mediaitems 740f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 741f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 742f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 743f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 744f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressInsertMovieItems() throws Exception { 745f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 746f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 747f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_1080x720_30fps_800kbps_1_17.mp4"; 748f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName2 = INPUT_FILE_PATH + 749f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_800x480_15fps_512kbps_1_17.mp4"; 750f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName3 = INPUT_FILE_PATH + 751f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_1200kbps_AACLC_48khz_64kbps_m_1_17.3gp"; 752f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 753f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 754d5ade1364b2c9bd452400fbee52273a3826ec105James Dong writeTestCaseHeader("testStressInsertMovieItems"); 755f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 756f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 757f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", VideoItemFileName1, renderingMode); 758f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 759f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 760f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 761f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem2 = new MediaVideoItem(mVideoEditor, 762f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2", VideoItemFileName2, renderingMode); 763f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 764f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setExtractBoundaries(0, 15000); 765f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 766f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 767f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 768f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem3 = new MediaVideoItem(mVideoEditor, 769f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3" + i, VideoItemFileName3, renderingMode); 770f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(0, 15000); 771f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.insertMediaItem(mediaItem3, "m1"); 772f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.moveMediaItem("m2", "m3" + i); 773f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 774f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 775f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 776f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 777f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 778f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 779f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 780f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 781f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m3" + i); 782f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 783f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 784f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 785f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 7862d06aee09507252ba6703ecd2c4f9f356048e6adshailendra mVideoEditor.removeMediaItem("m2"); 7872d06aee09507252ba6703ecd2c4f9f356048e6adshailendra mVideoEditor.removeMediaItem("m1"); 788f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 789f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 790f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 791f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 792f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test : load and save 793f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 794f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 795f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 796f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 797f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressLoadAndSave() throws Exception { 798f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 799f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 800f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_1080x720_30fps_800kbps_1_17.mp4"; 801f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName2 = INPUT_FILE_PATH + 802f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_800x480_15fps_512kbps_1_17.mp4"; 803f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName3 = INPUT_FILE_PATH + 804f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_1200kbps_AACLC_48khz_64kbps_m_1_17.3gp"; 805f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName4 = INPUT_FILE_PATH + 806f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480.jpg"; 807f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName5 = INPUT_FILE_PATH + 808f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_176x144.jpg"; 809f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String OverlayFile6 = INPUT_FILE_PATH + 810f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480_Overlay1.png"; 811f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 812f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 813f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] projectPath = new String[10]; 814f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressLoadAndSave"); 815f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 816f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for( i=0; i < 10; i++){ 817f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 818f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru projectPath[i] = 819f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createRandomFile(PROJECT_LOCATION); 820f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final VideoEditor mVideoEditor1 = 821f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createVideoEditor(projectPath[i]); 822f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 823f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor1, 824f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", VideoItemFileName1, renderingMode); 825f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.addMediaItem(mediaItem1); 826f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 827f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 828f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem2 = new MediaVideoItem(mVideoEditor1, 829f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2", VideoItemFileName2, renderingMode); 830f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.addMediaItem(mediaItem2); 831f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setExtractBoundaries(mediaItem2.getDuration()/4, 832f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.getDuration()/2); 833f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 834f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem3 = new MediaVideoItem(mVideoEditor1, 835f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3", VideoItemFileName3, renderingMode); 836f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.addMediaItem(mediaItem3); 837f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(mediaItem3.getDuration()/2, 838f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.getDuration()); 839f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 840f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem4 = new MediaImageItem(mVideoEditor1, 841f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m4", ImageItemFileName4, 5000, renderingMode); 842f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.addMediaItem(mediaItem4); 843f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 844f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem5 = new MediaImageItem(mVideoEditor1, 845f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m5", ImageItemFileName5, 5000, renderingMode); 846f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.addMediaItem(mediaItem5); 847f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 848f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor1 = 849f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem3, "effect1", 850f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 10000, 2000, EffectColor.TYPE_COLOR, EffectColor.GREEN); 851f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.addEffect(effectColor1); 852f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 853f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap mBitmap = mVideoEditorHelper.getBitmap(OverlayFile6, 854f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 640, 480); 855f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final OverlayFrame overlayFrame = 856f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createOverlay(mediaItem4, "overlay", 857f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mBitmap, 4000, 1000); 858f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem4.addOverlay(overlayFrame); 859f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 860f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionCrossfade tranCrossfade = 861f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new TransitionCrossfade("transCF", mediaItem1, 862f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2, 5000, Transition.BEHAVIOR_MIDDLE_FAST); 863f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.addTransition(tranCrossfade); 864f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 865f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor2 = 866f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem4, "effect2", 0, 867f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem4.getDuration(), EffectColor.TYPE_COLOR, 868f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru EffectColor.PINK); 869f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem4.addEffect(effectColor2); 870f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 871f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.generatePreview(new MediaProcessingProgressListener() { 872f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(Object item, int action, int progress) { 873f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 874f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 875f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 876f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.save(); 877f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1.release(); 878f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 879f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 880f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 881f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 882f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 883f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 884f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for( i=0; i<10; i++){ 885f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final VideoEditor mVideoEditor1b = 886f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru VideoEditorFactory.load(projectPath[i], true); 887f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru List<MediaItem> mediaList = mVideoEditor1b.getAllMediaItems(); 888f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru assertEquals("Media Item List Size", 5, mediaList.size()); 889f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 890f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaList.get(3).removeEffect("effect1"); 891f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaList.get(3).removeEffect("effect2"); 892f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaList.get(2).removeOverlay("overlay"); 893f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.removeTransition("transCF"); 894f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.removeMediaItem("m5"); 895f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.removeMediaItem("m4"); 896f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.removeMediaItem("m3"); 897f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.removeMediaItem("m2"); 898f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.removeMediaItem("m1"); 899f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor1b.release(); 900f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 901f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 902f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 903f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 904f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 905f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 906f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test : Multiple Export 907f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 908f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 909f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 910f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 911f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressMultipleExport() throws Exception { 912f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 913f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 914f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_1080x720_30fps_800kbps_1_17.mp4"; 915f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName2 = INPUT_FILE_PATH + 916f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_800x480_15fps_512kbps_1_17.mp4"; 917f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 918f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String outFilename = mVideoEditorHelper.createRandomFile( 919f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.getPath() + "/") + ".3gp"; 920f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 921f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressMultipleExport"); 922f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 923f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 924f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", VideoItemFileName1, renderingMode); 925f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 926f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 927f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 928f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem2 = new MediaVideoItem(mVideoEditor, 929f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2", VideoItemFileName2, renderingMode); 930f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 931f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setExtractBoundaries(0, 15000); 932f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 933f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 934f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(i%4 ==0){ 9353ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury final int aspectRatio = MediaProperties.ASPECT_RATIO_11_9; 936f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.setAspectRatio(aspectRatio); 9373ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury mVideoEditor.export(outFilename, MediaProperties.HEIGHT_288, 938f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaProperties.BITRATE_256K,MediaProperties.ACODEC_AAC_LC, 939f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaProperties.VCODEC_H263, 940f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new ExportProgressListener() { 941f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(VideoEditor ve, String outFileName, 942f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int progress) { 943f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 944f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 945f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 946f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(i%4 ==1){ 947f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int aspectRatio = MediaProperties.ASPECT_RATIO_5_3; 948f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.setAspectRatio(aspectRatio); 949f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.export(outFilename, MediaProperties.HEIGHT_144, 950f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaProperties.BITRATE_384K,MediaProperties.ACODEC_AAC_LC, 951f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaProperties.VCODEC_MPEG4, 952f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new ExportProgressListener() { 953f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(VideoEditor ve, String outFileName, 954f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int progress) { 955f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 956f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 957f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 958f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(i%4 ==2){ 959f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int aspectRatio = MediaProperties.ASPECT_RATIO_11_9; 960f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.setAspectRatio(aspectRatio); 961f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.export(outFilename, MediaProperties.HEIGHT_144, 962f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaProperties.BITRATE_512K,MediaProperties.ACODEC_AAC_LC, 9633ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury MediaProperties.VCODEC_H264, 964f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new ExportProgressListener() { 965f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(VideoEditor ve, String outFileName, 966f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int progress) { 967f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 968f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 969f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 970f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(i%4 ==3){ 971f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int aspectRatio = MediaProperties.ASPECT_RATIO_3_2; 972f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.setAspectRatio(aspectRatio); 973f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.export(outFilename, MediaProperties.HEIGHT_480, 974f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaProperties.BITRATE_800K,MediaProperties.ACODEC_AAC_LC, 9753ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury MediaProperties.VCODEC_H264, 976f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new ExportProgressListener() { 977f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(VideoEditor ve, String outFileName, 978f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int progress) { 979f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 980f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 981f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 982f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 983f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 984f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 985f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 986f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 987f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 988f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 989f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2"); 990f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1"); 991f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 992f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 993f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 994f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 995f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 996f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To stress test Media Item,Overlays,Transitions and Ken Burn 997f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 998f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 999f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 1000f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 1001f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressOverlayTransKenBurn() throws Exception { 1002f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 1003f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String VideoItemFileName1 = INPUT_FILE_PATH + 1004f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_640x480_30fps_256kbps_1_17.mp4"; 1005f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String ImageItemFileName2 = INPUT_FILE_PATH + 1006f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480.jpg"; 1007f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String OverlayFile3 = INPUT_FILE_PATH + 1008f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_640x480_Overlay1.png"; 1009f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String audioFilename4 = INPUT_FILE_PATH + 1010f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AACLC_44.1kHz_256kbps_s_1_17.mp4"; 1011f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 1012f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 1013f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressOverlayTransKenBurn"); 1014f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 1015f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 10; i++) { 1016f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 1017f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1" + i, VideoItemFileName1, renderingMode); 1018f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 1019f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 1020f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1021f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem2 = new MediaImageItem(mVideoEditor, 1022f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2" + i, ImageItemFileName2, 10000, renderingMode); 1023f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 1024f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1025f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectColor effectColor1 = 1026f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createEffectItem(mediaItem1, "effect1"+i, 1027f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem1.getDuration() - 4000), 4000, 1028f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru EffectColor.TYPE_SEPIA, 0); 1029f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.addEffect(effectColor1); 1030f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1031f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionCrossfade tranCrossfade = 1032f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new TransitionCrossfade("transCF" + i, mediaItem1, 1033f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2, 4000, Transition.BEHAVIOR_MIDDLE_FAST); 1034f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(tranCrossfade); 1035f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1036f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap mBitmap = mVideoEditorHelper.getBitmap(OverlayFile3, 1037f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 640, 480); 1038f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final OverlayFrame overlayFrame = 1039f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditorHelper.createOverlay(mediaItem1, "overlay" + i, 1040f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mBitmap, 1000, 5000); 1041f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.addOverlay(overlayFrame); 1042f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1043f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Rect startRect = new Rect((mediaItem2.getHeight() / 3), 1044f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem2.getWidth() / 3), (mediaItem2.getHeight() / 2), 1045f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem2.getWidth() / 2)); 1046f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Rect endRect = new Rect(0, 0, mediaItem2.getWidth(), 1047f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.getHeight()); 1048f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1049f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final EffectKenBurns kbEffectOnMediaItem = new EffectKenBurns( 1050f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2, "KBOnM2" + i, startRect, endRect, 500, 1051f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru (mediaItem2.getDuration()-500)); 1052f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.addEffect(kbEffectOnMediaItem); 1053f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1054f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(i == 5) { 1055f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack audioTrack1 = new AudioTrack(mVideoEditor, 1056f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "Audio Track1", audioFilename4); 1057f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addAudioTrack(audioTrack1); 1058f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1059f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1060f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1061f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1062f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1063f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 1064f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 10; i++) { 1065f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaImageItem m2 = (MediaImageItem)mVideoEditor.getMediaItem("m2"+i); 1066f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru MediaVideoItem m1 = (MediaVideoItem)mVideoEditor.getMediaItem("m1"+i); 1067f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru m2.removeEffect("KBOnM2" + i); 1068f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru m1.removeOverlay("overlay" + i); 1069f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeTransition("transCF" + i); 1070f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru m1.removeEffect("effect1" + i); 1071f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2" + i); 1072f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1" + i); 1073f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if(i == 5) { 1074f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeAudioTrack("Audio Track1"); 1075f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1076f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 1077f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1078f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 1079f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1080f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1081f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 1082f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To test the performance : With an audio track with Video 1083f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 1084f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 1085f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 1086f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 1087f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAudioTrackVideo() throws Exception { 1088f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName1 = INPUT_FILE_PATH + 1089f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "H264_BP_1080x720_30fps_800kbps_1_17.mp4"; 1090f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String audioFilename1 = INPUT_FILE_PATH + 1091f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AACLC_44.1kHz_256kbps_s_1_17.mp4"; 1092f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String audioFilename2 = INPUT_FILE_PATH + 1093f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AMRNB_8KHz_12.2Kbps_m_1_17.3gp"; 1094f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 1095f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int audioVolume = 50; 1096f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 1097f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 1; 1098f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAudioTrackVideo"); 1099f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 1100f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaVideoItem = new MediaVideoItem(mVideoEditor, 1101f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "mediaItem1", videoItemFileName1, renderingMode); 1102f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaVideoItem); 1103f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1104f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack audioTrack1 = new AudioTrack(mVideoEditor, 1105f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "Audio Track1", audioFilename1); 1106f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru audioTrack1.disableDucking(); 1107f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru audioTrack1.setVolume(audioVolume); 1108f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addAudioTrack(audioTrack1); 1109f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1110f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.generatePreview(new MediaProcessingProgressListener() { 1111f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(Object item, int action, int progress) { 1112f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1113f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 1114f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1115f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeAudioTrack("Audio Track1"); 1116f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1117f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack audioTrack2 = new AudioTrack(mVideoEditor, 1118f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "Audio Track2", audioFilename2); 1119f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru audioTrack2.enableLoop(); 1120f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1121f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.generatePreview(new MediaProcessingProgressListener() { 1122f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void onProgress(Object item, int action, int progress) { 1123f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1124f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru }); 1125f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1126f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1127f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 1128f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("mediaItem1"); 1129f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1130f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 1131f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1132f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1133f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 1134f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To Test Stress : Story Board creation with out preview or export 1135f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 1136f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 1137f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 1138f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 1139f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressStoryBoard() throws Exception { 1140f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName1 = INPUT_FILE_PATH + 1141f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_720x480_30fps_280kbps_AACLC_48kHz_161kbps_s_0_26.mp4"; 1142f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName2 = INPUT_FILE_PATH + 1143f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_854x480_15fps_256kbps_AACLC_16khz_48kbps_s_0_26.mp4"; 1144f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String videoItemFileName3= INPUT_FILE_PATH + 1145f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "MPEG4_SP_640x480_15fps_512kbps_AACLC_48khz_132kbps_s_0_26.mp4"; 1146f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String imageItemFileName4 = INPUT_FILE_PATH + 1147f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_1600x1200.jpg"; 1148f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String imageItemFileName5 = INPUT_FILE_PATH + 1149f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "IMG_176x144.jpg"; 1150f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String audioFilename6 = INPUT_FILE_PATH + 1151f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AMRNB_8KHz_12.2Kbps_m_1_17.3gp"; 1152f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String audioFilename7 = INPUT_FILE_PATH + 1153f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AACLC_44.1kHz_256kbps_s_1_17.mp4"; 1154f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1155f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 1156f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int audioVolume = 50; 1157f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 1158f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 1; 1159f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1160f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressStoryBoard"); 1161f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 1162f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem1 = new MediaVideoItem(mVideoEditor, 1163f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", videoItemFileName1, renderingMode); 1164f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.setExtractBoundaries(0, 10000); 1165f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem1); 1166f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1167f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem2 = new MediaVideoItem(mVideoEditor, 1168f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m2", videoItemFileName2, renderingMode); 1169f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.setExtractBoundaries(mediaItem2.getDuration()/4, 1170f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem2.getDuration()/2); 1171f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem2); 1172f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1173f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaVideoItem mediaItem3 = new MediaVideoItem(mVideoEditor, 1174f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m3", videoItemFileName3, renderingMode); 1175f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.setExtractBoundaries(mediaItem3.getDuration()/2, 1176f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem3.getDuration()); 1177f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem3); 1178f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1179f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem4 = new MediaImageItem(mVideoEditor, 1180f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m4", imageItemFileName4, 5000, renderingMode); 1181f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem4); 1182f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1183f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaItem5 = new MediaImageItem(mVideoEditor, 1184f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m5", imageItemFileName5, 5000, renderingMode); 1185f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addMediaItem(mediaItem5); 1186f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1187f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionCrossfade tranCrossfade = 1188f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new TransitionCrossfade("transCF", mediaItem2, mediaItem3, 2500, 1189f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru Transition.BEHAVIOR_MIDDLE_FAST); 1190f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(tranCrossfade); 1191f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1192f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final TransitionCrossfade tranCrossfade1 = 1193f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru new TransitionCrossfade("transCF1", mediaItem3, mediaItem4, 2500, 1194f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru Transition.BEHAVIOR_MIDDLE_FAST); 1195f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addTransition(tranCrossfade1); 1196f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1197f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack audioTrack1 = new AudioTrack(mVideoEditor, 1198f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "Audio Track1", audioFilename6); 1199f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addAudioTrack(audioTrack1); 1200f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1201f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeAudioTrack("Audio Track1"); 1202f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack audioTrack2 = new AudioTrack(mVideoEditor, 1203f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "Audio Track2", audioFilename7); 1204f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addAudioTrack(audioTrack2); 1205f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru audioTrack2.enableLoop(); 1206f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1207f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1208f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** Remove items and check for memory leak if any */ 1209f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 1210f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeAudioTrack("Audio Track2"); 1211f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeTransition("transCF"); 1212f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeTransition("transCF1"); 1213f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m5"); 1214f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m4"); 1215f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m3"); 1216f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m2"); 1217f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeMediaItem("m1"); 1218f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1219f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, true, i); 1220f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1221f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1222f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 1223f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * To test the performance : With an audio track Only 1224f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 1225f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 1226f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 1227f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 1228f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressAudioTrackOnly() throws Exception { 1229f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1230f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 1231f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String AudioItemFileName1 = INPUT_FILE_PATH + 1232f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "AACLC_44.1kHz_256kbps_s_1_17.mp4"; 1233f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 1234f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 1235f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressAudioTrackOnly"); 1236f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 1237f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 1238f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final AudioTrack mediaItem1 = new AudioTrack(mVideoEditor, 1239f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1" + i, AudioItemFileName1); 1240f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.addAudioTrack(mediaItem1); 1241f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaItem1.enableLoop(); 1242f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mVideoEditor.removeAudioTrack("m1" + i); 1243f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 1244f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1245f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1246f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1247f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1248f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1249f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru 1250f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru /** 1251f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * This method will test thumbnail list extraction in a loop = 200 for Image 1252f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * Item 1253f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * 1254f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru * @throws Exception 1255f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru */ 1256f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru @LargeTest 1257f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru public void testStressThumbnailImageItem() throws Exception { 1258f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String imageItemFileName = INPUT_FILE_PATH + "IMG_640x480.jpg"; 1259f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final int renderingMode = MediaItem.RENDERING_MODE_BLACK_BORDER; 1260f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final String[] loggingInfo = new String[1]; 1261f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru int i = 0; 1262f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final MediaImageItem mediaImageItem = new MediaImageItem(mVideoEditor, 1263f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru "m1", imageItemFileName, 5000, renderingMode); 1264f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru writeTestCaseHeader("testStressThumbnailImageItem"); 1265f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getBeginMemory(); 1266f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for ( i = 0; i < 50; i++) { 1267f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 0) { 1268f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = mediaImageItem.getThumbnailList( 1269f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getWidth() / 2 , 1270f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getHeight() / 2, i, 5000, 2); 1271f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 1272f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 1273f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 1274f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1275f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1276f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 1) { 1277f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = mediaImageItem.getThumbnailList( 1278f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getWidth() / 2, 1279f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getHeight() * 3, i, 5000, 2); 1280f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 1281f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 1282f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 1283f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1284f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1285f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 2) { 1286f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = mediaImageItem.getThumbnailList( 1287f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getWidth() * 2, 1288f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getHeight() / 3, i, 5000, 2); 1289f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 1290f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 1291f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 1292f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1293f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1294f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 4 == 3) { 1295f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru final Bitmap[] thumbNails = mediaImageItem.getThumbnailList( 1296f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getWidth(), 1297f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru mediaImageItem.getHeight(), i, 5000, 2); 1298f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru // Recycle this Bitmap array 1299f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru for (int i1 = 0; i1 < thumbNails.length; i1++) { 1300f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru thumbNails[i1].recycle(); 1301f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1302f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1303f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru if (i % 10 == 0) { 1304f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1305f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1306f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1307f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru getAfterMemory_updateLog(loggingInfo, false, i); 1308f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru } 1309f1f9ff28c3acae5cb4eb309f28e7872aff35eff6Basavapatna Dattaguru} 1310