StreamConfigurationMap.IsOutputSupportedFor Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
IsOutputSupportedFor(Surface) |
Determine whether or not the |
IsOutputSupportedFor(Class) |
Determine whether or not output streams can be configured with a particular class as a consumer. |
IsOutputSupportedFor(Int32) |
Determine whether or not output surfaces with a particular user-defined format can be passed
|
IsOutputSupportedFor(Surface)
Determine whether or not the surface
in its current state is suitable to be included
in a CameraDevice#createCaptureSession capture session
as an output.
[Android.Runtime.Register("isOutputSupportedFor", "(Landroid/view/Surface;)Z", "")]
public bool IsOutputSupportedFor (Android.Views.Surface? surface);
[<Android.Runtime.Register("isOutputSupportedFor", "(Landroid/view/Surface;)Z", "")>]
member this.IsOutputSupportedFor : Android.Views.Surface -> bool
Parameters
- surface
- Surface
a non-null
Surface
object reference
Returns
true
if this is supported, false
otherwise
- Attributes
Exceptions
if surface
was null
if the Surface endpoint is no longer valid
Remarks
Determine whether or not the surface
in its current state is suitable to be included in a CameraDevice#createCaptureSession capture session
as an output.
Not all surfaces are usable with the CameraDevice
, and not all configurations of that surface
are compatible. Some classes that provide the surface
are compatible with the CameraDevice
in general (see #isOutputSupportedFor(Class)
, but it is the caller's responsibility to put the surface
into a state that will be compatible with the CameraDevice
.
Reasons for a surface
being specifically incompatible might be: <ul> <li>Using a format that's not listed by #getOutputFormats
<li>Using a format/size combination that's not listed by #getOutputSizes
<li>The surface
itself is not in a state where it can service a new producer.
</li> </ul>
Surfaces from flexible sources will return true even if the exact size of the Surface does not match a camera-supported size, as long as the format (or class) is supported and the camera device supports a size that is equal to or less than 1080p in that format. If such as Surface is used to create a capture session, it will have its size rounded to the nearest supported size, below or equal to 1080p. Flexible sources include SurfaceView, SurfaceTexture, and ImageReader.
This is not an exhaustive list; see the particular class's documentation for further possible reasons of incompatibility.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Applies to
IsOutputSupportedFor(Class)
Determine whether or not output streams can be configured with a particular class as a consumer.
[Android.Runtime.Register("isOutputSupportedFor", "(Ljava/lang/Class;)Z", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public static bool IsOutputSupportedFor (Java.Lang.Class? klass);
[<Android.Runtime.Register("isOutputSupportedFor", "(Ljava/lang/Class;)Z", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
static member IsOutputSupportedFor : Java.Lang.Class -> bool
Parameters
- klass
- Class
a non-null
Class
object reference
Returns
true
if this class is supported as an output, false
otherwise
- Attributes
Remarks
Determine whether or not output streams can be configured with a particular class as a consumer.
The following list is generally usable for outputs: <ul> <li>android.media.ImageReader
- Recommended for image processing or streaming to external resources (such as a file or network) <li>android.media.MediaRecorder
- Recommended for recording video (simple to use) <li>android.media.MediaCodec
- Recommended for recording video (more complicated to use, with more flexibility) <li>android.renderscript.Allocation
- Recommended for image processing with android.renderscript RenderScript
<li>android.view.SurfaceHolder
- Recommended for low-power camera preview with android.view.SurfaceView
<li>android.graphics.SurfaceTexture
- Recommended for OpenGL-accelerated preview processing or compositing with android.view.TextureView
</ul>
Generally speaking this means that creating a Surface
from that class may provide a producer endpoint that is suitable to be used with CameraDevice#createCaptureSession
.
Since not all of the above classes support output of all format and size combinations, the particular combination should be queried with #isOutputSupportedFor(Surface)
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Applies to
IsOutputSupportedFor(Int32)
Determine whether or not output surfaces with a particular user-defined format can be passed
CameraDevice#createCaptureSession createCaptureSession
.
[Android.Runtime.Register("isOutputSupportedFor", "(I)Z", "")]
public bool IsOutputSupportedFor (int format);
[<Android.Runtime.Register("isOutputSupportedFor", "(I)Z", "")>]
member this.IsOutputSupportedFor : int -> bool
Parameters
- format
- Int32
an image format from either ImageFormat
or PixelFormat
Returns
true
iff using a surface
with this format
will be
supported with CameraDevice#createCaptureSession
- Attributes
Exceptions
if the image format was not a defined named constant from either ImageFormat or PixelFormat
Remarks
Determine whether or not output surfaces with a particular user-defined format can be passed CameraDevice#createCaptureSession createCaptureSession
.
This method determines that the output format
is supported by the camera device; each output surface
target may or may not itself support that format
. Refer to the class which provides the surface for additional documentation.
Formats for which this returns true
are guaranteed to exist in the result returned by #getOutputSizes
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.