2 * Copyright (C) 2008 Google (Lei Zhang)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 /* import "dxtrans.idl"; */
22 import
"amstream.idl";
27 uuid(0579154A
-2B53
-4994-B0D0
-E773148EFF85
),
29 pointer_default(unique)
31 interface ISampleGrabberCB
: IUnknown
35 IMediaSample
* pSample
46 uuid(6B652FFF
-11FE
-4fce
-92AD
-0266B5D7C78F
),
48 pointer_default(unique)
50 interface ISampleGrabber
: IUnknown
57 const AM_MEDIA_TYPE
* pType
60 HRESULT GetConnectedMediaType
(
64 HRESULT SetBufferSamples
(
68 HRESULT GetCurrentBuffer
(
69 [in,out] LONG * pBufferSize
,
73 HRESULT GetCurrentSample
(
74 [out] IMediaSample
** ppSample
78 ISampleGrabberCB
* pCallback
,
79 LONG WhichMethodToCallback
85 uuid(65bd0710
-24d2
-4FF7
-9324-ed2e5d3abafa
),
86 pointer_default(unique)
88 interface IMediaDet
: IUnknown
98 HRESULT get_OutputStreams
(
102 HRESULT get_CurrentStream
(
106 HRESULT put_CurrentStream
(
110 HRESULT get_StreamType
(
114 HRESULT get_StreamTypeB
(
118 HRESULT get_StreamLength
(
122 HRESULT get_Filename
(
126 HRESULT put_Filename
(
130 HRESULT GetBitmapBits
(
138 HRESULT WriteBitmapBits
(
145 HRESULT get_StreamMediaType
(
146 [out] AM_MEDIA_TYPE
* pVal
149 HRESULT GetSampleGrabber
(
150 [out] ISampleGrabber
** ppVal
153 HRESULT get_FrameRate
(
157 HRESULT EnterBitmapGrabMode
(
163 uuid(65BD0711
-24D2
-4ff7
-9324-ED2E5D3ABAFA
),
167 [default] interface IMediaDet
;
172 uuid(288581E0
-66CE
-11d2
-918F
-00C0DF10D434
),
174 pointer_default(unique)
176 interface IMediaLocator
: IUnknown
178 HRESULT FindMediaFile
(
185 HRESULT AddFoundLocation
(
206 uuid(AE9472BD
-B0C3
-11D2
-8D24
-00A0C9441E20
),
207 pointer_default(unique)
209 interface IPropertySetter
: IUnknown
223 [out] IPropertySetter
** setter
,
224 [in] REFERENCE_TIME start
,
225 [in] REFERENCE_TIME stop
229 [in] DEXTER_PARAM param
,
230 [in] DEXTER_VALUE
* value
235 [out] DEXTER_PARAM
** param
,
236 [out] DEXTER_VALUE
** value
241 [in] DEXTER_PARAM
* param
,
242 [in] DEXTER_VALUE
* value
245 HRESULT ClearProps
();
252 HRESULT LoadFromBlob
(
258 [in] IUnknown
* target
,
259 [in] REFERENCE_TIME now
265 uuid(E43E73A2
-0EFA
-11d3
-9601-00A0C9441E20
),
267 pointer_default(unique)
269 interface IAMErrorLog
: IUnknown
282 uuid(963566DA
-BE21
-4eaf
-88E9
-35704F8F52A1
),
284 pointer_default(unique)
286 interface IAMSetErrorLog
: IUnknown
288 [propget] HRESULT ErrorLog
(
289 [out, retval] IAMErrorLog
** log
292 [propput] HRESULT ErrorLog
(
293 [in] IAMErrorLog
* log
297 interface IAMTimeline
;
298 interface IAMTimelineGroup
;
299 interface IAMTimelineObj
;
300 interface IAMTimelineSrc
;
304 TIMELINE_MAJOR_TYPE_COMPOSITE
= 1,
305 TIMELINE_MAJOR_TYPE_TRACK
= 2,
306 TIMELINE_MAJOR_TYPE_SOURCE
= 4,
307 TIMELINE_MAJOR_TYPE_TRANSITION
= 8,
308 TIMELINE_MAJOR_TYPE_EFFECT
= 16,
309 TIMELINE_MAJOR_TYPE_GROUP
= 128
310 } TIMELINE_MAJOR_TYPE
;
314 uuid(78530B74
-61F9
-11D2
-8CAD
-00A024580902
),
316 pointer_default(unique)
318 interface IAMTimeline
: IUnknown
320 HRESULT CreateEmptyNode
(
321 [out] IAMTimelineObj
** obj
,
322 TIMELINE_MAJOR_TYPE type
326 IAMTimelineObj
* group
329 HRESULT RemGroupFromList
(
330 IAMTimelineObj
* group
334 [out] IAMTimelineObj
** group
,
338 HRESULT GetGroupCount
(
342 HRESULT ClearAllGroups
();
344 HRESULT GetInsertMode
(
348 HRESULT SetInsertMode
(
352 HRESULT EnableTransitions
(
356 HRESULT TransitionsEnabled
(
360 HRESULT EnableEffects
(
364 HRESULT EffectsEnabled
(
368 HRESULT SetInterestRange
(
369 REFERENCE_TIME start
,
374 REFERENCE_TIME
* duration
377 HRESULT GetDuration2
(
381 HRESULT SetDefaultFPS
(
385 HRESULT GetDefaultFPS
(
393 HRESULT GetDirtyRange
(
394 REFERENCE_TIME
* start
,
395 REFERENCE_TIME
* stop
398 HRESULT GetCountOfType
(
401 long * value_with_comps
,
402 TIMELINE_MAJOR_TYPE type
405 HRESULT ValidateSourceNames
(
407 IMediaLocator
* override
,
408 LONG_PTR notify_event
411 HRESULT SetDefaultTransition
(
415 HRESULT GetDefaultTransition
(
419 HRESULT SetDefaultEffect
(
423 HRESULT GetDefaultEffect
(
427 HRESULT SetDefaultTransitionB
(
431 HRESULT GetDefaultTransitionB
(
432 [out,retval] BSTR * guidb
435 HRESULT SetDefaultEffectB
(
439 HRESULT GetDefaultEffectB
(
440 [out,retval] BSTR * guidb
445 uuid(78530B75
-61F9
-11D2
-8CAD
-00A024580902
)
449 [default] interface IAMTimeline
;
450 interface IPersistStream
;
451 interface IAMSetErrorLog
;
456 uuid(9EED4F00
-B8A6
-11d2
-8023-00C0DF10D434
),
458 pointer_default(unique)
460 interface IAMTimelineGroup
: IUnknown
463 IAMTimeline
* timeline
467 [out] IAMTimeline
** timeline
474 HRESULT GetMediaType
(
475 [out] AM_MEDIA_TYPE
*
478 HRESULT SetMediaType
(
482 HRESULT SetOutputFPS
(
486 HRESULT GetOutputFPS
(
490 HRESULT SetGroupName
(
494 HRESULT GetGroupName
(
495 [out,retval] BSTR * name
498 HRESULT SetPreviewMode
(
502 HRESULT GetPreviewMode
(
506 HRESULT SetMediaTypeForVB
(
510 HRESULT GetOutputBuffering
(
514 HRESULT SetOutputBuffering
(
518 HRESULT SetSmartRecompressFormat
(
522 HRESULT GetSmartRecompressFormat
(
526 HRESULT IsSmartRecompressFormatSet
(
530 HRESULT IsRecompressFormatDirty
(
534 HRESULT ClearRecompressFormatDirty
();
536 HRESULT SetRecompFormatFromSource
(
537 IAMTimelineSrc
* source
544 uuid(78530B77
-61F9
-11D2
-8CAD
-00A024580902
),
546 pointer_default(unique)
548 interface IAMTimelineObj
: IUnknown
550 HRESULT GetStartStop
(
551 REFERENCE_TIME
* start
,
552 REFERENCE_TIME
* stop
555 HRESULT GetStartStop2
(
556 REFTIME
* start
, REFTIME
* stop
560 REFERENCE_TIME
* start
, REFERENCE_TIME
* stop
564 REFTIME
* start
, REFTIME
* stop
567 HRESULT SetStartStop
(
568 REFERENCE_TIME start
,
572 HRESULT SetStartStop2
(
577 HRESULT GetPropertySetter
(
578 [out,retval] IPropertySetter
** setter
581 HRESULT SetPropertySetter
(
582 IPropertySetter
* setter
585 HRESULT GetSubObject
(
586 [out,retval] IUnknown
** obj
589 HRESULT SetSubObject
(
593 HRESULT SetSubObjectGUID
(
597 HRESULT SetSubObjectGUIDB
(
601 HRESULT GetSubObjectGUID
(
605 HRESULT GetSubObjectGUIDB
(
606 [out,retval] BSTR * guidb
609 HRESULT GetSubObjectLoaded
(
613 HRESULT GetTimelineType
(
614 TIMELINE_MAJOR_TYPE
* type
617 HRESULT SetTimelineType
(
618 TIMELINE_MAJOR_TYPE type
634 [out,retval] BSTR * name
667 HRESULT GetDirtyRange
(
668 REFERENCE_TIME
* start
,
669 REFERENCE_TIME
* stop
672 HRESULT GetDirtyRange2
(
677 HRESULT SetDirtyRange
(
678 REFERENCE_TIME start
,
682 HRESULT SetDirtyRange2
(
687 HRESULT ClearDirty
();
693 HRESULT GetTimelineNoRef
(
694 IAMTimeline
** timeline
697 HRESULT GetGroupIBelongTo
(
698 [out] IAMTimelineGroup
** group
701 HRESULT GetEmbedDepth
(
708 uuid(78530B79
-61F9
-11D2
-8CAD
-00A024580902
),
710 pointer_default(unique)
712 interface IAMTimelineSrc
: IUnknown
714 HRESULT GetMediaTimes
(
715 REFERENCE_TIME
* start
,
716 REFERENCE_TIME
* stop
719 HRESULT GetMediaTimes2
(
724 HRESULT ModifyStopTime
(
728 HRESULT ModifyStopTime2
(
732 HRESULT FixMediaTimes
(
733 REFERENCE_TIME
* start
,
734 REFERENCE_TIME
* stop
737 HRESULT FixMediaTimes2
(
742 HRESULT SetMediaTimes
(
743 REFERENCE_TIME Start
,
747 HRESULT SetMediaTimes2
(
752 HRESULT SetMediaLength
(
753 REFERENCE_TIME length
756 HRESULT SetMediaLength2
(
760 HRESULT GetMediaLength
(
761 REFERENCE_TIME
* length
764 HRESULT GetMediaLength2
(
768 HRESULT GetMediaName
(
769 [out,retval] BSTR * name
772 HRESULT SetMediaName
(
776 HRESULT SpliceWithNext
(
777 IAMTimelineObj
* next
780 HRESULT GetStreamNumber
(
784 HRESULT SetStreamNumber
(
788 HRESULT IsNormalRate
(
792 HRESULT GetDefaultFPS
(
796 HRESULT SetDefaultFPS
(
800 HRESULT GetStretchMode
(
804 HRESULT SetStretchMode
(
811 E_NOTINTREE
= 0x80040400,
812 E_RENDER_ENGINE_IS_BROKEN
= 0x80040401,
813 E_MUST_INIT_RENDERER
= 0x80040402,
814 E_NOTDETERMINED
= 0x80040403,
815 E_NO_TIMELINE
= 0x80040404,
816 S_WARN_OUTPUTRESET
= 40404