12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /******************************************************************************
- |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- |* PARTICULAR PURPOSE.
- |*
- |* Copyright 1995-2005 Nero AG and its licensors. All Rights Reserved.
- |*-----------------------------------------------------------------------------
- |* NeroSDK / NeroVisionAPI
- |*
- |* PROGRAM: MediaAnalyzer.idl
- |*
- |* PURPOSE: Interface definition of the NeroVision API
- ******************************************************************************/
- [
- local, uuid(B8A9267B-F8EB-4aef-ACFA-BF18F43A32FD),
- helpstring("Attributes and methods for audio & video of a single media")
- ]
- interface IMediaInfo : IUnknown
- {
- typedef [helpstring("MediaInfo file type")]
- enum
- {
- Invalid = 0,
- Other,
- MPEG1,
- MPEG2,
- DV_DV,
- DV_AVI1,
- DV_AVI2
- } FileType;
- [propget, helpstring("Media file type")]
- HRESULT FileType([out, retval] FileType* ft);
- [propget, helpstring("Duration in seconds")]
- HRESULT Duration([out, retval] double* sec);
- [propget, helpstring("Whether the media has at least one audio stream")]
- HRESULT HasAudio([out, retval] boolean* has);
- [propget, helpstring("Whether the media has a video stream")]
- HRESULT HasVideo([out, retval] boolean* has);
- [propget, helpstring("Media width")]
- HRESULT Width([out, retval] int* w);
- [propget, helpstring("Media height")]
- HRESULT Height([out, retval] int* h);
- [propget, helpstring("Media aspect (x/y)")]
- HRESULT AspectXByY([out, retval] double* aspect);
- [propget, helpstring("Frame time in seconds")]
- HRESULT FrameRate([out, retval] double* rate);
- [helpstring("Retrieves the first (non-empty) thumbnail of the media. The returned DIB handle must be freed by the caller.")]
- HRESULT GetThumbnail([in] boolean ensureNotEmpty, [out, retval] HANDLE_PTR* hDib);
- [helpstring("Retrieves a frame of the media at a given position. The returned DIB handle must be freed by the caller.")]
- HRESULT GetImage([in] double posSec, [out, retval] HANDLE_PTR* hDib);
- };
- [
- local, uuid(7B64280B-4277-43dd-B753-92A1315046B0),
- helpstring("Attributes and methods for a physical file, which may contain several segments.")
- ]
- interface IFileInfo : IUnknown
- {
- [propget, helpstring("The associated file's path and name")]
- HRESULT FilePath([out, retval] BSTR* filepath);
- [propget, helpstring("Gets the number of segments in the file")]
- HRESULT NumSegments([out, retval] int* numSeg);
- [helpstring("Gets the MediaInfo for one segment of the file")]
- HRESULT GetSegmentMediaInfo([in] int segIndex, [out, retval] IMediaInfo** pMediaInfo);
- };
- [
- local, uuid(9CC2383F-485F-4593-983D-4686DA5CA265),
- helpstring("Interface for analyzing one or more media files")
- ]
- interface IMediaAnalyzer : IUnknown
- {
- [helpstring("Add a file to be analyzed. The resulting IFileInfo is filled after calling AnalyzeFiles().")]
- HRESULT AddFile([in] BSTR filepath, [out, retval] IFileInfo** fileInfo);
- [helpstring("Analyzes all files previously added by AddFile().")]
- HRESULT AnalyzeFiles([in] IProgressCallback* pCallback, [out, retval] boolean* pbSuccess);
- [propget, helpstring("Gets the error object of the last called function")]
- HRESULT LastError([out, retval] IError** pError);
- };
- [
- uuid(AEF4E74F-7767-4fed-B4A8-2F9A0A713D26),
- helpstring("Media analyzer object"),
- ]
- coclass MediaAnalyzer
- {
- [default] interface IMediaAnalyzer;
- };
|