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
84 uuid(c1f400a0
-3f08
-11d3
-9f0b
-006008039e37
)
88 [default] interface ISampleGrabber
;
93 uuid(65bd0710
-24d2
-4FF7
-9324-ed2e5d3abafa
),
94 pointer_default(unique)
96 interface IMediaDet
: IUnknown
106 HRESULT get_OutputStreams
(
110 HRESULT get_CurrentStream
(
114 HRESULT put_CurrentStream
(
118 HRESULT get_StreamType
(
122 HRESULT get_StreamTypeB
(
126 HRESULT get_StreamLength
(
130 HRESULT get_Filename
(
134 HRESULT put_Filename
(
138 HRESULT GetBitmapBits
(
146 HRESULT WriteBitmapBits
(
153 HRESULT get_StreamMediaType
(
154 [out] AM_MEDIA_TYPE
* pVal
157 HRESULT GetSampleGrabber
(
158 [out] ISampleGrabber
** ppVal
161 HRESULT get_FrameRate
(
165 HRESULT EnterBitmapGrabMode
(
171 uuid(65BD0711
-24D2
-4ff7
-9324-ED2E5D3ABAFA
),
175 [default] interface IMediaDet
;
180 uuid(288581E0
-66CE
-11d2
-918F
-00C0DF10D434
),
182 pointer_default(unique)
184 interface IMediaLocator
: IUnknown
186 HRESULT FindMediaFile
(
193 HRESULT AddFoundLocation
(
214 uuid(AE9472BD
-B0C3
-11D2
-8D24
-00A0C9441E20
),
215 pointer_default(unique)
217 interface IPropertySetter
: IUnknown
231 [out] IPropertySetter
** setter
,
232 [in] REFERENCE_TIME start
,
233 [in] REFERENCE_TIME stop
237 [in] DEXTER_PARAM param
,
238 [in] DEXTER_VALUE
* value
243 [out] DEXTER_PARAM
** param
,
244 [out] DEXTER_VALUE
** value
249 [in] DEXTER_PARAM
* param
,
250 [in] DEXTER_VALUE
* value
253 HRESULT ClearProps
();
260 HRESULT LoadFromBlob
(
266 [in] IUnknown
* target
,
267 [in] REFERENCE_TIME now
273 uuid(E43E73A2
-0EFA
-11d3
-9601-00A0C9441E20
),
275 pointer_default(unique)
277 interface IAMErrorLog
: IUnknown
290 uuid(963566DA
-BE21
-4eaf
-88E9
-35704F8F52A1
),
292 pointer_default(unique)
294 interface IAMSetErrorLog
: IUnknown
296 [propget] HRESULT ErrorLog
(
297 [out, retval] IAMErrorLog
** log
300 [propput] HRESULT ErrorLog
(
301 [in] IAMErrorLog
* log
305 interface IAMTimeline
;
306 interface IAMTimelineGroup
;
307 interface IAMTimelineObj
;
308 interface IAMTimelineSrc
;
312 TIMELINE_MAJOR_TYPE_COMPOSITE
= 1,
313 TIMELINE_MAJOR_TYPE_TRACK
= 2,
314 TIMELINE_MAJOR_TYPE_SOURCE
= 4,
315 TIMELINE_MAJOR_TYPE_TRANSITION
= 8,
316 TIMELINE_MAJOR_TYPE_EFFECT
= 16,
317 TIMELINE_MAJOR_TYPE_GROUP
= 128
318 } TIMELINE_MAJOR_TYPE
;
322 uuid(78530B74
-61F9
-11D2
-8CAD
-00A024580902
),
324 pointer_default(unique)
326 interface IAMTimeline
: IUnknown
328 HRESULT CreateEmptyNode
(
329 [out] IAMTimelineObj
** obj
,
330 TIMELINE_MAJOR_TYPE type
334 IAMTimelineObj
* group
337 HRESULT RemGroupFromList
(
338 IAMTimelineObj
* group
342 [out] IAMTimelineObj
** group
,
346 HRESULT GetGroupCount
(
350 HRESULT ClearAllGroups
();
352 HRESULT GetInsertMode
(
356 HRESULT SetInsertMode
(
360 HRESULT EnableTransitions
(
364 HRESULT TransitionsEnabled
(
368 HRESULT EnableEffects
(
372 HRESULT EffectsEnabled
(
376 HRESULT SetInterestRange
(
377 REFERENCE_TIME start
,
382 REFERENCE_TIME
* duration
385 HRESULT GetDuration2
(
389 HRESULT SetDefaultFPS
(
393 HRESULT GetDefaultFPS
(
401 HRESULT GetDirtyRange
(
402 REFERENCE_TIME
* start
,
403 REFERENCE_TIME
* stop
406 HRESULT GetCountOfType
(
409 long * value_with_comps
,
410 TIMELINE_MAJOR_TYPE type
413 HRESULT ValidateSourceNames
(
415 IMediaLocator
* override
,
416 LONG_PTR notify_event
419 HRESULT SetDefaultTransition
(
423 HRESULT GetDefaultTransition
(
427 HRESULT SetDefaultEffect
(
431 HRESULT GetDefaultEffect
(
435 HRESULT SetDefaultTransitionB
(
439 HRESULT GetDefaultTransitionB
(
440 [out,retval] BSTR * guidb
443 HRESULT SetDefaultEffectB
(
447 HRESULT GetDefaultEffectB
(
448 [out,retval] BSTR * guidb
453 uuid(78530B75
-61F9
-11D2
-8CAD
-00A024580902
)
457 [default] interface IAMTimeline
;
458 interface IPersistStream
;
459 interface IAMSetErrorLog
;
464 uuid(9EED4F00
-B8A6
-11d2
-8023-00C0DF10D434
),
466 pointer_default(unique)
468 interface IAMTimelineGroup
: IUnknown
471 IAMTimeline
* timeline
475 [out] IAMTimeline
** timeline
482 HRESULT GetMediaType
(
483 [out] AM_MEDIA_TYPE
*
486 HRESULT SetMediaType
(
490 HRESULT SetOutputFPS
(
494 HRESULT GetOutputFPS
(
498 HRESULT SetGroupName
(
502 HRESULT GetGroupName
(
503 [out,retval] BSTR * name
506 HRESULT SetPreviewMode
(
510 HRESULT GetPreviewMode
(
514 HRESULT SetMediaTypeForVB
(
518 HRESULT GetOutputBuffering
(
522 HRESULT SetOutputBuffering
(
526 HRESULT SetSmartRecompressFormat
(
530 HRESULT GetSmartRecompressFormat
(
534 HRESULT IsSmartRecompressFormatSet
(
538 HRESULT IsRecompressFormatDirty
(
542 HRESULT ClearRecompressFormatDirty
();
544 HRESULT SetRecompFormatFromSource
(
545 IAMTimelineSrc
* source
552 uuid(78530B77
-61F9
-11D2
-8CAD
-00A024580902
),
554 pointer_default(unique)
556 interface IAMTimelineObj
: IUnknown
558 HRESULT GetStartStop
(
559 REFERENCE_TIME
* start
,
560 REFERENCE_TIME
* stop
563 HRESULT GetStartStop2
(
564 REFTIME
* start
, REFTIME
* stop
568 REFERENCE_TIME
* start
, REFERENCE_TIME
* stop
572 REFTIME
* start
, REFTIME
* stop
575 HRESULT SetStartStop
(
576 REFERENCE_TIME start
,
580 HRESULT SetStartStop2
(
585 HRESULT GetPropertySetter
(
586 [out,retval] IPropertySetter
** setter
589 HRESULT SetPropertySetter
(
590 IPropertySetter
* setter
593 HRESULT GetSubObject
(
594 [out,retval] IUnknown
** obj
597 HRESULT SetSubObject
(
601 HRESULT SetSubObjectGUID
(
605 HRESULT SetSubObjectGUIDB
(
609 HRESULT GetSubObjectGUID
(
613 HRESULT GetSubObjectGUIDB
(
614 [out,retval] BSTR * guidb
617 HRESULT GetSubObjectLoaded
(
621 HRESULT GetTimelineType
(
622 TIMELINE_MAJOR_TYPE
* type
625 HRESULT SetTimelineType
(
626 TIMELINE_MAJOR_TYPE type
642 [out,retval] BSTR * name
675 HRESULT GetDirtyRange
(
676 REFERENCE_TIME
* start
,
677 REFERENCE_TIME
* stop
680 HRESULT GetDirtyRange2
(
685 HRESULT SetDirtyRange
(
686 REFERENCE_TIME start
,
690 HRESULT SetDirtyRange2
(
695 HRESULT ClearDirty
();
701 HRESULT GetTimelineNoRef
(
702 IAMTimeline
** timeline
705 HRESULT GetGroupIBelongTo
(
706 [out] IAMTimelineGroup
** group
709 HRESULT GetEmbedDepth
(
716 uuid(78530B79
-61F9
-11D2
-8CAD
-00A024580902
),
718 pointer_default(unique)
720 interface IAMTimelineSrc
: IUnknown
722 HRESULT GetMediaTimes
(
723 REFERENCE_TIME
* start
,
724 REFERENCE_TIME
* stop
727 HRESULT GetMediaTimes2
(
732 HRESULT ModifyStopTime
(
736 HRESULT ModifyStopTime2
(
740 HRESULT FixMediaTimes
(
741 REFERENCE_TIME
* start
,
742 REFERENCE_TIME
* stop
745 HRESULT FixMediaTimes2
(
750 HRESULT SetMediaTimes
(
751 REFERENCE_TIME Start
,
755 HRESULT SetMediaTimes2
(
760 HRESULT SetMediaLength
(
761 REFERENCE_TIME length
764 HRESULT SetMediaLength2
(
768 HRESULT GetMediaLength
(
769 REFERENCE_TIME
* length
772 HRESULT GetMediaLength2
(
776 HRESULT GetMediaName
(
777 [out,retval] BSTR * name
780 HRESULT SetMediaName
(
784 HRESULT SpliceWithNext
(
785 IAMTimelineObj
* next
788 HRESULT GetStreamNumber
(
792 HRESULT SetStreamNumber
(
796 HRESULT IsNormalRate
(
800 HRESULT GetDefaultFPS
(
804 HRESULT SetDefaultFPS
(
808 HRESULT GetStretchMode
(
812 HRESULT SetStretchMode
(
819 E_NOTINTREE
= 0x80040400,
820 E_RENDER_ENGINE_IS_BROKEN
= 0x80040401,
821 E_MUST_INIT_RENDERER
= 0x80040402,
822 E_NOTDETERMINED
= 0x80040403,
823 E_NO_TIMELINE
= 0x80040404,
824 S_WARN_OUTPUTRESET
= 40404