123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- /******************************************************************************
- |* 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: ContentProvider.idl
- |*
- |* PURPOSE: Interface definition of the NeroVision API
- ******************************************************************************/
- typedef [helpstring("The type of virtual content.")]
- enum
- {
- AudioStream = 0,
- VideoStream
- } ContentType;
- [
- local, uuid(0C91A72C-DCFB-4e45-800F-071D385B980B),
- helpstring("Base interface for feeding virtual content into the NeroVision API")
- ]
- interface IContentProvider : IUnknown
- {
- [propget, helpstring("Gets the type of content provided")]
- HRESULT ProvidedContentType([out, retval] ContentType* pCT);
- };
- [
- local, uuid(94174BB6-F818-47ee-9C92-61B548E88C19),
- helpstring("Interface for creating a content provider for a given content-id")
- ]
- interface IContentResolver : IUnknown
- {
- HRESULT ResolveContent([in] BSTR id, [out, retval] IContentProvider** ppCP);
- };
- typedef [helpstring("The supported audio formats for virtual content")]
- enum
- {
- AudioFormat_PCM = 0
- } AudioFormat;
- typedef [helpstring("The supported video formats for virtual content")]
- enum
- {
- VideoFormat_YV12 = 0,
- VideoFormat_RGB32,
- VideoFormat_RGB24
- } VideoFormat;
- typedef [helpstring("The frame structure of the video content")]
- enum
- {
- FrameStructure_Progressive = 0,
- FrameStructure_InterlacedTopFirst,
- FrameStructure_InterlacedBottomFirst
- } FrameStructure;
- typedef [helpstring("Description of virtual video content")]
- struct
- {
- VideoFormat viFormat;
- FrameStructure viStructure;
- int viWidth;
- int viHeight;
- hyper viTimePerFrame;
- int viAspectX;
- int viAspectY;
- } VideoInfo;
- typedef [helpstring("Description of virtual audio content")]
- struct
- {
- AudioFormat aiFormat;
- int aiSamplesPerSec;
- short aiBitsPerSample;
- short aiNumChannels;
- } AudioInfo;
- [
- local, uuid(7C904E33-9175-4c73-A142-8C4DA7BBEEB8),
- helpstring("Description of virtual video content")
- ]
- interface IAVStreamSample: IUnknown
- {
- HRESULT GetTime([out] hyper* start, [out] hyper* stop);
- HRESULT GetData([out] DWORD* size, [out] void const** dataPtr);
- };
- [
- local, uuid(FAC437C8-DACF-415e-B485-B9BEEDB0465C),
- helpstring("Interface of an audio or video stream")
- ]
- interface IAVStream : IUnknown
- {
- HRESULT SetPosition([in] const hyper* pos);
- HRESULT GetSample([out, retval] IAVStreamSample** sample);
- };
- [
- local, uuid(E926B553-F943-4d69-934F-F66412451D18),
- helpstring("Base interface for feeding audio or video content into the NeroVision API")
- ]
- interface IAVStreamProvider : IContentProvider
- {
- HRESULT GetStream([out, retval] IAVStream** stream);
- HRESULT GetDuration([out, retval] hyper* dur);
- };
- [
- local, uuid(002BA3CC-9C42-4f8c-B1B4-90CAB2AB903F),
- helpstring("Interface for feeding audio content into the NeroVision API")
- ]
- interface IAudioStreamProvider : IAVStreamProvider
- {
- HRESULT GetInfo([out] AudioInfo* info);
- };
- [
- local, uuid(A4C139CF-6062-4df4-AD16-882EAAD1CCB9),
- helpstring("Interface for feeding video content into the NeroVision API")
- ]
- interface IVideoStreamProvider : IAVStreamProvider
- {
- HRESULT GetInfo([out] VideoInfo* info);
- };
|