165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn/* 265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Copyright (C) 2011 The Android Open Source Project 365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * 465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Licensed under the Apache License, Version 2.0 (the "License"); 565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * you may not use this file except in compliance with the License. 665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * You may obtain a copy of the License at 765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * 865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * http://www.apache.org/licenses/LICENSE-2.0 965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * 1065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Unless required by applicable law or agreed to in writing, software 1165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * distributed under the License is distributed on an "AS IS" BASIS, 1265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * See the License for the specific language governing permissions and 1465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * limitations under the License. 1565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn */ 1665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 1765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 1865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennpackage android.filterfw.core; 1965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennimport android.filterfw.core.FrameFormat; 2165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennimport android.filterfw.core.KeyValueMap; 2265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennimport java.util.Arrays; 2465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn/** 2665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * @hide 2765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn */ 2865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennpublic class MutableFrameFormat extends FrameFormat { 2965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 3065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public MutableFrameFormat() { 3165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn super(); 3265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 3365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 3465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public MutableFrameFormat(int baseType, int target) { 3565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn super(baseType, target); 3665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 3765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 3865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setBaseType(int baseType) { 3965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mBaseType = baseType; 4065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mBytesPerSample = bytesPerSampleOf(baseType); 4165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 4265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 4365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setTarget(int target) { 4465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mTarget = target; 4565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 4665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 4765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setBytesPerSample(int bytesPerSample) { 4865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mBytesPerSample = bytesPerSample; 4965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mSize = SIZE_UNKNOWN; 5065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 5165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 5265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setDimensions(int[] dimensions) { 5365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mDimensions = (dimensions == null) ? null : Arrays.copyOf(dimensions, dimensions.length); 5465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mSize = SIZE_UNKNOWN; 5565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 5665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 5765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setDimensions(int size) { 5865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn int[] dimensions = new int[1]; 5965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn dimensions[0] = size; 6065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mDimensions = dimensions; 6165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mSize = SIZE_UNKNOWN; 6265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 6365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 6465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setDimensions(int width, int height) { 6565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn int[] dimensions = new int[2]; 6665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn dimensions[0] = width; 6765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn dimensions[1] = height; 6865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mDimensions = dimensions; 6965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mSize = SIZE_UNKNOWN; 7065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 7165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 7265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setDimensions(int width, int height, int depth) { 7365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn int[] dimensions = new int[3]; 7465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn dimensions[0] = width; 7565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn dimensions[1] = height; 7665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn dimensions[2] = depth; 7765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mDimensions = dimensions; 7865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mSize = SIZE_UNKNOWN; 7965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 8065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 8165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setDimensionCount(int count) { 8265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mDimensions = new int[count]; 8365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 8465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 8565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setObjectClass(Class objectClass) { 8665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mObjectClass = objectClass; 8765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 8865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 8965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn public void setMetaValue(String key, Object value) { 9065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn if (mMetaData == null) { 9165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mMetaData = new KeyValueMap(); 9265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 9365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn mMetaData.put(key, value); 9465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn } 9565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 9665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn} 97