1eb7664d6SHerbert Dürr /**************************************************************
2eb7664d6SHerbert Dürr  *
3eb7664d6SHerbert Dürr  * Licensed to the Apache Software Foundation (ASF) under one
4eb7664d6SHerbert Dürr  * or more contributor license agreements.  See the NOTICE file
5eb7664d6SHerbert Dürr  * distributed with this work for additional information
6eb7664d6SHerbert Dürr  * regarding copyright ownership.  The ASF licenses this file
7eb7664d6SHerbert Dürr  * to you under the Apache License, Version 2.0 (the
8eb7664d6SHerbert Dürr  * "License"); you may not use this file except in compliance
9eb7664d6SHerbert Dürr  * with the License.  You may obtain a copy of the License at
10eb7664d6SHerbert Dürr  *
11eb7664d6SHerbert Dürr  *   http://www.apache.org/licenses/LICENSE-2.0
12eb7664d6SHerbert Dürr  *
13eb7664d6SHerbert Dürr  * Unless required by applicable law or agreed to in writing,
14eb7664d6SHerbert Dürr  * software distributed under the License is distributed on an
15eb7664d6SHerbert Dürr  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16eb7664d6SHerbert Dürr  * KIND, either express or implied.  See the License for the
17eb7664d6SHerbert Dürr  * specific language governing permissions and limitations
18eb7664d6SHerbert Dürr  * under the License.
19eb7664d6SHerbert Dürr  *
20eb7664d6SHerbert Dürr  *************************************************************/
21eb7664d6SHerbert Dürr 
22eb7664d6SHerbert Dürr 
23e8649ecdSHerbert Dürr #ifndef MACAVF_FRAMEGRABBER_HXX
24e8649ecdSHerbert Dürr #define MACAVF_FRAMEGRABBER_HXX
25eb7664d6SHerbert Dürr 
26e8649ecdSHerbert Dürr #include "macavf_common.hxx"
27eb7664d6SHerbert Dürr 
28eb7664d6SHerbert Dürr #include "com/sun/star/media/XFrameGrabber.hdl"
29eb7664d6SHerbert Dürr 
30eb7664d6SHerbert Dürr namespace avmedia { namespace macavf {
31eb7664d6SHerbert Dürr 
32eb7664d6SHerbert Dürr // ----------------
33eb7664d6SHerbert Dürr // - FrameGrabber -
34eb7664d6SHerbert Dürr // ----------------
35eb7664d6SHerbert Dürr 
36eb7664d6SHerbert Dürr class FrameGrabber : public ::cppu::WeakImplHelper2 < ::com::sun::star::media::XFrameGrabber,
37eb7664d6SHerbert Dürr                                                       ::com::sun::star::lang::XServiceInfo >
38eb7664d6SHerbert Dürr {
39eb7664d6SHerbert Dürr public:
40eb7664d6SHerbert Dürr 
41eb7664d6SHerbert Dürr     explicit FrameGrabber( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
42eb7664d6SHerbert Dürr     virtual  ~FrameGrabber();
43eb7664d6SHerbert Dürr 
44eb7664d6SHerbert Dürr     bool    create( const ::rtl::OUString& rURL );
45*32322404SHerbert Dürr     bool    create( AVAsset* pMovie );
46eb7664d6SHerbert Dürr 
47eb7664d6SHerbert Dürr     // XFrameGrabber
48eb7664d6SHerbert Dürr     virtual ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > SAL_CALL grabFrame( double fMediaTime ) throw (::com::sun::star::uno::RuntimeException);
49eb7664d6SHerbert Dürr 
50eb7664d6SHerbert Dürr     // XServiceInfo
51eb7664d6SHerbert Dürr     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
52eb7664d6SHerbert Dürr     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
53eb7664d6SHerbert Dürr     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
54eb7664d6SHerbert Dürr 
55eb7664d6SHerbert Dürr private:
56eb7664d6SHerbert Dürr 
57eb7664d6SHerbert Dürr     ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >    mxMgr;
58eb7664d6SHerbert Dürr 
59eb7664d6SHerbert Dürr     AVAssetImageGenerator* mpImageGen;
60eb7664d6SHerbert Dürr };
61eb7664d6SHerbert Dürr 
62eb7664d6SHerbert Dürr } // namespace macavf
63eb7664d6SHerbert Dürr } // namespace avmedia
64eb7664d6SHerbert Dürr 
65e8649ecdSHerbert Dürr #endif // MACAVF_FRAMEGRABBER_HXX
66eb7664d6SHerbert Dürr 
67