/[pkgs]/devel/openoffice.org/ooo-build.ooo68717.gstreamer.video.patch
ViewVC logotype

Contents of /devel/openoffice.org/ooo-build.ooo68717.gstreamer.video.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download) (as text)
Mon Nov 2 08:07:30 2009 UTC (3 weeks, 2 days ago) by dtardon
Branch: MAIN
CVS Tags: openoffice_org-3_2_0-4_2_fc13, openoffice_org-3_2_0-4_1_fc13, openoffice_org-3_2_0-5_1_fc13, openoffice_org-3_2_0-3_2_fc13, openoffice_org-3_2_0-5_2_fc13, openoffice_org-3_2_0-3_4_fc13, HEAD
Changes since 1.3: +2 -1 lines
File MIME type: text/x-patch
Resolves: rhbz#532330 openoffice impress doesn't recognise .ogv files as video
1 diff -rup avmedia-orig/prj/build.lst avmedia/prj/build.lst
2 --- avmedia-orig/prj/build.lst 2006-08-17 16:04:56.000000000 +0200
3 +++ avmedia/prj/build.lst 2006-08-17 16:05:01.000000000 +0200
4 @@ -8,4 +8,5 @@
5 av avmedia\source\java nmake - all av_java NULL
6 av avmedia\source\xine nmake - all av_xine NULL
7 av avmedia\source\quicktime nmake - all av_quicktime NULL
8 -av avmedia\util nmake - all av_util av_viewer av_framework av_win av_java av_quicktime av_xine NULL
9 +av avmedia\source\gstreamer nmake - all av_gstreamer NULL
10 +av avmedia\util nmake - all av_util av_viewer av_framework av_win av_java av_quicktime av_xine av_gstreamer NULL
11 diff -rup avmedia-orig/source/inc/mediamisc.hxx avmedia/source/inc/mediamisc.hxx
12 --- avmedia-orig/source/inc/mediamisc.hxx 2006-08-17 16:04:56.000000000 +0200
13 +++ avmedia/source/inc/mediamisc.hxx 2006-08-17 16:06:41.000000000 +0200
14 @@ -37,6 +37,9 @@
15
16 #define AVMEDIA_RESID( nId ) ResId( nId, * ::avmedia::GetResMgr() )
17
18 +#ifdef GSTREAMER
19 +#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_GStreamer"
20 +#else
21 #ifdef WNT
22 #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
23 #else
24 @@ -46,6 +49,7 @@
25 #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
26 #endif
27 #endif
28 +#endif
29
30 namespace avmedia
31 {
32 Index: mediawindow_impl.cxx
33 ===================================================================
34 RCS file: /cvs/graphics/avmedia/source/viewer/mediawindow_impl.cxx,v
35 retrieving revision 1.7
36 diff -u -u -r1.7 mediawindow_impl.cxx
37 --- avmedia/source/viewer/mediawindow_impl.cxx 19 Jun 2006 13:59:09 -0000 1.7
38 +++ avmedia/source/viewer/mediawindow_impl.cxx 24 Aug 2006 14:17:41 -0000
39 @@ -44,6 +44,11 @@
40 #include <osl/mutex.hxx>
41 #include <tools/time.hxx>
42 #include <vcl/svapp.hxx>
43 +#ifdef UNX
44 +#ifndef _SV_SYSDATA_HXX
45 +#include <vcl/sysdata.hxx>
46 +#endif
47 +#endif
48
49 #ifndef _COM_SUN_STAR_AWT_SYSTEMPOINTER_HDL_
50 #include <com/sun/star/awt/SystemPointer.hdl>
51 @@ -102,7 +107,11 @@
52 // --------------------
53
54 MediaChildWindow::MediaChildWindow( Window* pParent ) :
55 +#ifdef GSTREAMER
56 + SystemChildWindow( pParent, WB_CLIPCHILDREN )
57 +#else
58 JavaChildWindow( pParent, WB_CLIPCHILDREN )
59 +#endif
60 {
61 }
62
63 @@ -119,7 +128,11 @@
64 const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
65 rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
66
67 +#ifdef GSTREAMER
68 + SystemChildWindow::MouseMove( rMEvt );
69 +#else
70 JavaChildWindow::MouseMove( rMEvt );
71 +#endif
72 GetParent()->MouseMove( aTransformedEvent );
73 }
74
75 @@ -130,7 +143,11 @@
76 const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
77 rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
78
79 +#ifdef GSTREAMER
80 + SystemChildWindow::MouseButtonDown( rMEvt );
81 +#else
82 JavaChildWindow::MouseButtonDown( rMEvt );
83 +#endif
84 GetParent()->MouseButtonDown( aTransformedEvent );
85 }
86
87 @@ -140,8 +157,12 @@
88 {
89 const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
90 rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
91 -
92 +
93 +#ifdef GSTREAMER
94 + SystemChildWindow::MouseButtonUp( rMEvt );
95 +#else
96 JavaChildWindow::MouseButtonUp( rMEvt );
97 +#endif
98 GetParent()->MouseButtonUp( aTransformedEvent );
99 }
100
101 @@ -149,7 +170,11 @@
102
103 void MediaChildWindow::KeyInput( const KeyEvent& rKEvt )
104 {
105 +#ifdef GSTREAMER
106 + SystemChildWindow::KeyInput( rKEvt );
107 +#else
108 JavaChildWindow::KeyInput( rKEvt );
109 +#endif
110 GetParent()->KeyInput( rKEvt );
111 }
112
113 @@ -157,7 +182,11 @@
114
115 void MediaChildWindow::KeyUp( const KeyEvent& rKEvt )
116 {
117 +#ifdef GSTREAMER
118 + SystemChildWindow::KeyUp( rKEvt );
119 +#else
120 JavaChildWindow::KeyUp( rKEvt );
121 +#endif
122 GetParent()->KeyUp( rKEvt );
123 }
124
125 @@ -168,7 +197,11 @@
126 const CommandEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) ),
127 rCEvt.GetCommand(), rCEvt.IsMouseEvent(), rCEvt.GetData() );
128
129 +#ifdef GSTREAMER
130 + SystemChildWindow::Command( rCEvt );
131 +#else
132 JavaChildWindow::Command( rCEvt );
133 +#endif
134 GetParent()->Command( aTransformedEvent );
135 }
136
137 @@ -237,18 +270,31 @@
138 {
139 if( getPlayer().is() )
140 {
141 - uno::Sequence< uno::Any > aArgs( 2 );
142 + uno::Sequence< uno::Any > aArgs( 3 );
143 uno::Reference< media::XPlayerWindow > xPlayerWindow;
144 const Point aPoint;
145 const Size aSize( maChildWindow.GetSizePixel() );
146 +#ifndef GSTREAMER
147 const sal_IntPtr nWndHandle = static_cast< sal_IntPtr >( maChildWindow.getParentWindowHandleForJava() );
148 +#else
149 + const sal_IntPtr nWndHandle = 0;
150 +#endif
151
152 aArgs[ 0 ] = uno::makeAny( nWndHandle );
153 aArgs[ 1 ] = uno::makeAny( awt::Rectangle( aPoint.X(), aPoint.Y(), aSize.Width(), aSize.Height() ) );
154 +#ifdef GSTREAMER
155 + const SystemEnvData *pSystemData = maChildWindow.GetSystemData();
156 + OSL_TRACE( "MediaWindowImpl::onURLChanged xwindow id: %ld", pSystemData->aWindow );
157 + aArgs[ 2 ] = uno::makeAny( pSystemData->aWindow );
158 +#endif
159
160 try
161 {
162 - if( nWndHandle != 0 )
163 +#ifdef GSTREAMER
164 + if( pSystemData->aWindow != 0 )
165 +#else
166 + if( nWndHandle != 0 )
167 +#endif
168 xPlayerWindow = getPlayer()->createPlayerWindow( aArgs );
169 }
170 catch( uno::RuntimeException )
171 Index: mediawindow_impl.hxx
172 ===================================================================
173 RCS file: /cvs/graphics/avmedia/source/viewer/mediawindow_impl.hxx,v
174 retrieving revision 1.2
175 diff -u -u -r1.2 mediawindow_impl.hxx
176 --- avmedia/source/viewer/mediawindow_impl.hxx 7 Sep 2005 19:43:57 -0000 1.2
177 +++ avmedia/source/viewer/mediawindow_impl.hxx 24 Aug 2006 14:17:41 -0000
178 @@ -37,7 +37,11 @@
179 #define _AVMEDIA_MEDIAWINDOW_IMPL_HXX
180
181 #include <svtools/transfer.hxx>
182 +#ifdef GSTREAMER
183 +#include <vcl/syschild.hxx>
184 +#else
185 #include <vcl/javachild.hxx>
186 +#endif
187
188 #include "mediawindowbase_impl.hxx"
189 #include "mediacontrol.hxx"
190 @@ -69,7 +73,11 @@
191 // - MediaChildWindow -
192 // --------------------
193
194 +#ifdef GSTREAMER
195 + class MediaChildWindow : public SystemChildWindow
196 +#else
197 class MediaChildWindow : public JavaChildWindow
198 +#endif
199 {
200 public:
201
202 diff -rup avmedia-orig/source/viewer/mediawindow.cxx avmedia/source/viewer/mediawindow.cxx
203 --- avmedia-orig/source/viewer/mediawindow.cxx 2006-09-21 12:10:28.000000000 +0200
204 +++ avmedia/source/viewer/mediawindow.cxx 2006-09-21 12:15:19.000000000 +0200
205 @@ -383,8 +383,11 @@
206 "AU Audio", "au",
207 "AVI", "avi",
208 "CD Audio", "cda",
209 + "FLAC Audio", "flac",
210 "MIDI Audio", "mid;midi",
211 "MPEG Audio", "mp2;mp3;mpa",
212 + "OGG Audio/Video", "ogg",
213 + "OGG Video", "ogv",
214 "MPEG Video", "mpg;mpeg;mpv;mp4",
215 "Ogg bitstream", "ogg",
216 "Quicktime Video", "mov",
217 --- configure.in.orig 2006-08-17 10:43:11.000000000 +0200
218 +++ configure.in 2006-08-17 10:48:43.000000000 +0200
219 @@ -932,6 +932,7 @@
220 linux-gnu*)
221 test_gtk=yes
222 test_cairo=yes
223 + build_gstreamer=yes
224 test_kde=yes
225 test_kde4=yes
226 test_cups=yes
227 @@ -5973,6 +5974,26 @@
228 AC_SUBST(COMMONS_LOGGING_JAR)
229
230 dnl ===================================================================
231 +dnl Check whether the GStreamer libraries are available.
232 +dnl ===================================================================
233 +
234 +ENABLE_GSTREAMER=""
235 +
236 +if test "$build_gstreamer" = "yes"; then
237 +
238 + AC_MSG_CHECKING([whether to enable the GStreamer avmedia backend])
239 + if test "x$enable_gstreamer" != "xno" ; then
240 + ENABLE_GSTREAMER="TRUE"
241 + AC_MSG_RESULT([yes])
242 + PKG_CHECK_MODULES( GSTREAMER, gstreamer-0.10 gstreamer-plugins-base-0.10 )
243 + else
244 + AC_MSG_RESULT([no])
245 + fi
246 +fi
247 +
248 +AC_SUBST(ENABLE_GSTREAMER)
249 +
250 +dnl ===================================================================
251 dnl Check whether the Qt and KDE libraries are available.
252 dnl ===================================================================
253
254 --- set_soenv.in.orig 2006-08-17 10:43:11.000000000 +0200
255 +++ set_soenv.in 2006-08-17 11:05:37.000000000 +0200
256 @@ -1748,6 +1748,7 @@
257 ToFile( "SYSTEM_SERVLETAPI", "@SYSTEM_SERVLETAPI@", "e" );
258 ToFile( "SERVLETAPI_JAR", "@SERVLETAPI_JAR@", "e" );
259 ToFile( "ENABLE_DBUS", "@ENABLE_DBUS@", "e" );
260 +ToFile( "ENABLE_GSTREAMER", "@ENABLE_GSTREAMER@", "e" );
261 ToFile( "ENABLE_GCONF", "@ENABLE_GCONF@", "e" );
262 ToFile( "ENABLE_GNOMEVFS", "@ENABLE_GNOMEVFS@", "e" );
263 ToFile( "ENABLE_GIO", "@ENABLE_GIO@", "e" );
264 diff -rup scp2-orig/source/ooo/file_library_ooo.scp scp2/source/ooo/file_library_ooo.scp
265 --- scp2-orig/source/ooo/file_library_ooo.scp 2006-08-17 16:08:34.000000000 +0200
266 +++ scp2/source/ooo/file_library_ooo.scp 2006-08-17 16:11:26.000000000 +0200
267 @@ -1587,6 +1587,9 @@
268 // AVMedia
269 STD_UNO_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
270
271 +#ifdef GSTREAMER
272 +SPECIAL_UNO_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst )
273 +#else
274 #if defined UNX
275 #ifdef SOLAR_JAVA
276 UNO_JAR_FILE( gid_File_Jar_AVmedia, avmedia )
277 @@ -1596,6 +1599,7 @@
278 SPECIAL_UNO_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin )
279 #endif
280 #endif
281 +#endif
282
283 #ifndef WITHOUT_MOZILLA
284 File gid_File_Lib_XSec_Framework
285 diff -rup scp2-orig/source/ooo/module_hidden_ooo.scp scp2/source/ooo/module_hidden_ooo.scp
286 --- scp2-orig/source/ooo/module_hidden_ooo.scp 2006-08-17 16:08:34.000000000 +0200
287 +++ scp2/source/ooo/module_hidden_ooo.scp 2006-08-17 16:08:49.000000000 +0200
288 @@ -238,6 +238,7 @@ Module gid_Module_Root_Files_4
289 gid_File_Lib_Svx,
290 gid_File_Lib_AVMedia,
291 gid_File_Lib_AVMediaWin,
292 + gid_File_Lib_AVMediaGStreamer,
293 gid_File_Lib_BaseGfx,
294 gid_File_Lib_Sysdtrans,
295 gid_File_Lib_Sw,
296 diff -rup slideshow-orig/source/engine/viewmediashape.cxx slideshow/source/engine/viewmediashape.cxx
297 --- slideshow-orig/source/engine/shapes/viewmediashape.cxx 2006-08-17 16:15:39.000000000 +0200
298 +++ slideshow/source/engine/shapes/viewmediashape.cxx 2006-08-17 17:26:09.000000000 +0200
299 @@ -44,6 +44,7 @@
300 #include <vcl/window.hxx>
301 #include <vcl/javachild.hxx>
302 #include <vcl/salbtype.hxx>
303 +#include <vcl/sysdata.hxx>
304
305 #include <basegfx/tools/canvastools.hxx>
306 #include <basegfx/numeric/ftools.hxx>
307 @@ -148,7 +149,11 @@
308 mxPlayerWindow.clear();
309 }
310
311 +#ifdef GSTREAMER
312 + mpMediaWindow = ::std::auto_ptr< SystemChildWindow >();
313 +#else
314 mpMediaWindow = ::std::auto_ptr< JavaChildWindow >();
315 +#endif
316
317 // shutdown player
318 if( mxPlayer.is() )
319 @@ -282,8 +287,12 @@
320
321 aDeviceParams[ 0 ] >>= aImplName;
322
323 - if( aImplName.endsWithIgnoreAsciiCaseAsciiL(
324 - RTL_CONSTASCII_STRINGPARAM("VCL") ))
325 + if(
326 + aImplName.endsWithIgnoreAsciiCaseAsciiL(
327 + RTL_CONSTASCII_STRINGPARAM("VCL")) ||
328 + aImplName.endsWithIgnoreAsciiCaseAsciiL(
329 + RTL_CONSTASCII_STRINGPARAM("Cairo"))
330 + )
331 {
332 implInitializeVCLBasedPlayerWindow( rBounds, aDeviceParams );
333 }
334 @@ -389,6 +398,7 @@
335 bool ViewMediaShape::implInitializeVCLBasedPlayerWindow( const ::basegfx::B2DRectangle& rBounds,
336 const uno::Sequence< uno::Any >& rVCLDeviceParams)
337 {
338 + OSL_TRACE( "ViewMediaShape::implInitializeVCLBasedPlayerWindow" );
339 if( !mpMediaWindow.get() && !rBounds.isEmpty() )
340 {
341 try
342 @@ -410,28 +420,50 @@
343
344 if( !rRangePix.isEmpty() )
345 {
346 - uno::Sequence< uno::Any > aArgs( 2 );
347 + uno::Sequence< uno::Any > aArgs( 3 );
348 awt::Rectangle aAWTRect( rRangePix.getMinX(),
349 rRangePix.getMinY(),
350 rRangePix.getMaxX() - rRangePix.getMinX(),
351 rRangePix.getMaxY() - rRangePix.getMinY() );
352
353 +#ifdef GSTREAMER
354 + OSL_TRACE( "created sys child window for viewmediashape" );
355 + mpMediaWindow = ::std::auto_ptr< SystemChildWindow >( new SystemChildWindow( pWindow, WB_CLIPCHILDREN ) );
356 +#else
357 mpMediaWindow = ::std::auto_ptr< JavaChildWindow >( new JavaChildWindow( pWindow, WB_CLIPCHILDREN ) );
358 +#endif
359 mpMediaWindow->SetBackground( Color( COL_BLACK ) );
360 mpMediaWindow->SetPosSizePixel( Point( aAWTRect.X,
361 aAWTRect.Y ),
362 Size( aAWTRect.Width,
363 aAWTRect.Height ));
364 +
365 + mpMediaWindow->SetParentClipMode( PARENTCLIPMODE_NOCLIP );
366 + mpMediaWindow->EnableEraseBackground( FALSE );
367 + mpMediaWindow->EnablePaint( FALSE );
368 + mpMediaWindow->SetForwardKey( TRUE );
369 + mpMediaWindow->SetMouseTransparent( TRUE );
370 +
371 mpMediaWindow->Show();
372
373 if( mxPlayer.is() )
374 {
375 +#ifndef GSTREAMER
376 aArgs[ 0 ] = uno::makeAny(
377 sal::static_int_cast<sal_IntPtr>(
378 mpMediaWindow->getParentWindowHandleForJava()) );
379 +#else
380 + aArgs[ 0 ] = uno::makeAny ( (sal_IntPtr) 0 );
381 +#endif
382
383 aAWTRect.X = aAWTRect.Y = 0;
384 aArgs[ 1 ] = uno::makeAny( aAWTRect );
385 +
386 +#ifdef GSTREAMER
387 + const SystemEnvData *pSystemData = mpMediaWindow->GetSystemData();
388 + OSL_TRACE( "xwindow id: %ld", pSystemData->aWindow );
389 + aArgs[ 2 ] = uno::makeAny( pSystemData->aWindow );
390 +#endif
391
392 mxPlayerWindow.set( mxPlayer->createPlayerWindow( aArgs ) );
393
394 diff -rup slideshow/source/inc-orig/viewmediashape.hxx slideshow/source/inc/viewmediashape.hxx
395 --- slideshow/source/engine/shapes/viewmediashape.hxx 2006-08-18 13:45:47.000000000 +0200
396 +++ slideshow/source/engine/shapes/viewmediashape.hxx 2006-08-18 13:48:13.000000000 +0200
397 @@ -45,6 +45,7 @@
398 #include "viewlayer.hxx"
399
400 class JavaChildWindow;
401 +class SystemChildWindow;
402
403 namespace com { namespace sun { namespace star { namespace drawing {
404 class XShape;
405 @@ -149,7 +150,11 @@
406 const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rDXDeviceParams );
407
408 ViewLayerSharedPtr mpViewLayer;
409 - ::std::auto_ptr< JavaChildWindow > mpMediaWindow;
410 +#ifdef GSTREAMER
411 + ::std::auto_ptr< SystemChildWindow > mpMediaWindow;
412 +#else
413 + ::std::auto_ptr< JavaChildWindow > mpMediaWindow;
414 +#endif
415 mutable ::com::sun::star::awt::Point maWindowOffset;
416 mutable ::basegfx::B2DRectangle maBounds;
417
418 diff -rup solenv-orig/inc/settings.mk solenv/inc/settings.mk
419 --- solenv-orig/inc/settings.mk 2006-08-17 16:01:59.000000000 +0200
420 +++ solenv/inc/settings.mk 2006-08-17 16:02:36.000000000 +0200
421 @@ -1147,6 +1147,10 @@
422 LOCAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS)
423 LOCAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON
424
425 +.IF "$(ENABLE_GSTREAMER)" == "TRUE"
426 +CDEFS+=-DGSTREAMER
427 +.ENDIF
428 +
429 .IF "$(ENABLE_LAYOUT)" == "TRUE"
430 CDEFS+=-DENABLE_LAYOUT=1
431 .ELSE # ENABLE_LAYOUT != TRUE
432 diff -rup svtools-orig/inc/inettype.hxx svtools/inc/inettype.hxx
433 --- svtools-orig/inc/svtools/inettype.hxx 2006-09-21 11:40:23.000000000 +0200
434 +++ svtools/inc/svtools/inettype.hxx 2006-09-21 11:44:50.000000000 +0200
435 @@ -105,6 +105,7 @@
436 #define CONTENT_TYPE_STR_AUDIO_AIFF "audio/aiff"
437 #define CONTENT_TYPE_STR_AUDIO_BASIC "audio/basic"
438 #define CONTENT_TYPE_STR_AUDIO_MIDI "audio/midi"
439 +#define CONTENT_TYPE_STR_AUDIO_VORBIS "audio/vorbis"
440 #define CONTENT_TYPE_STR_AUDIO_WAV "audio/wav"
441 #define CONTENT_TYPE_STR_X_CNT_DOCUMENT ".chaos/document"
442 #define CONTENT_TYPE_STR_X_CNT_FSYSBOX ".chaos/fsys-box"
443 @@ -170,6 +171,7 @@
444 #define CONTENT_TYPE_STR_TEXT_URL "text/x-url"
445 #define CONTENT_TYPE_STR_TEXT_VCALENDAR "text/x-vCalendar"
446 #define CONTENT_TYPE_STR_TEXT_VCARD "text/x-vCard"
447 +#define CONTENT_TYPE_STR_VIDEO_THEORA "video/theora"
448 #define CONTENT_TYPE_STR_VIDEO_VDO "video/vdo"
449 #define CONTENT_TYPE_STR_VIDEO_MSVIDEO "video/x-msvideo"
450 #define CONTENT_TYPE_STR_X_STARMAIL "x-starmail"
451 @@ -243,6 +245,7 @@ enum INetContentType
452 CONTENT_TYPE_AUDIO_AIFF,
453 CONTENT_TYPE_AUDIO_BASIC,
454 CONTENT_TYPE_AUDIO_MIDI,
455 + CONTENT_TYPE_AUDIO_VORBIS,
456 CONTENT_TYPE_AUDIO_WAV,
457 CONTENT_TYPE_IMAGE_GIF,
458 CONTENT_TYPE_IMAGE_JPEG,
459 @@ -254,6 +257,7 @@ enum INetContentType
460 CONTENT_TYPE_TEXT_PLAIN,
461 CONTENT_TYPE_TEXT_URL,
462 CONTENT_TYPE_TEXT_VCARD,
463 + CONTENT_TYPE_VIDEO_THEORA,
464 CONTENT_TYPE_VIDEO_VDO,
465 CONTENT_TYPE_VIDEO_MSVIDEO,
466 CONTENT_TYPE_X_CNT_MESSAGE,
467 diff -rup svtools-orig/inc/svtools.hrc svtools/inc/svtools.hrc
468 --- svtools-orig/inc/svtools/svtools.hrc 2006-09-21 11:40:25.000000000 +0200
469 +++ svtools/inc/svtools/svtools.hrc 2006-09-21 12:00:00.000000000 +0200
470 @@ -151,110 +151,112 @@
471 #define STR_SVT_MIMETYPE_APP_ZIP (STR_SVT_MIMETYPE_START+10)
472 #define STR_SVT_MIMETYPE_AUDIO_AIFF (STR_SVT_MIMETYPE_START+11)
473 #define STR_SVT_MIMETYPE_AUDIO_BASIC (STR_SVT_MIMETYPE_START+12)
474 -#define STR_SVT_MIMETYPE_AUDIO_MIDI (STR_SVT_MIMETYPE_START+13)
475 -#define STR_SVT_MIMETYPE_AUDIO_WAV (STR_SVT_MIMETYPE_START+14)
476 -#define STR_SVT_MIMETYPE_IMAGE_GIF (STR_SVT_MIMETYPE_START+15)
477 -#define STR_SVT_MIMETYPE_IMAGE_JPEG (STR_SVT_MIMETYPE_START+16)
478 -#define STR_SVT_MIMETYPE_IMAGE_PCX (STR_SVT_MIMETYPE_START+17)
479 -#define STR_SVT_MIMETYPE_IMAGE_BMP (STR_SVT_MIMETYPE_START+18)
480 -#define STR_SVT_MIMETYPE_TEXT_HTML (STR_SVT_MIMETYPE_START+19)
481 -#define STR_SVT_MIMETYPE_TEXT_PLAIN (STR_SVT_MIMETYPE_START+20)
482 -#define STR_SVT_MIMETYPE_TEXT_URL (STR_SVT_MIMETYPE_START+21)
483 -#define STR_SVT_MIMETYPE_TEXT_VCARD (STR_SVT_MIMETYPE_START+22)
484 -#define STR_SVT_MIMETYPE_VIDEO_VDO (STR_SVT_MIMETYPE_START+23)
485 -#define STR_SVT_MIMETYPE_VIDEO_MSVIDEO (STR_SVT_MIMETYPE_START+24)
486 -#define STR_SVT_MIMETYPE_X_STARMAIL (STR_SVT_MIMETYPE_START+25)
487 -#define STR_SVT_MIMETYPE_X_VRML (STR_SVT_MIMETYPE_START+26)
488 -#define STR_SVT_MIMETYPE_APP_STARHELP (STR_SVT_MIMETYPE_START+27)
489 -#define STR_SVT_MIMETYPE_APP_STARIMPRESS (STR_SVT_MIMETYPE_START+28)
490 -#define STR_SVT_MIMETYPE_APP_SCHED_CMB (STR_SVT_MIMETYPE_START+29)
491 -#define STR_SVT_MIMETYPE_APP_SCHED_EVT (STR_SVT_MIMETYPE_START+30)
492 -#define STR_SVT_MIMETYPE_APP_SCHED_TASK (STR_SVT_MIMETYPE_START+31)
493 -#define STR_SVT_MIMETYPE_APP_SCHED_TVIEW (STR_SVT_MIMETYPE_START+32)
494 -
495 -#define STR_SVT_MIMETYPE_CNT_MSG (STR_SVT_MIMETYPE_START+33)
496 -#define STR_SVT_MIMETYPE_CNT_DOCUMENT (STR_SVT_MIMETYPE_START+34)
497 -#define STR_SVT_MIMETYPE_CNT_POP3BOX (STR_SVT_MIMETYPE_START+35)
498 -#define STR_SVT_MIMETYPE_CNT_IMAPBOX (STR_SVT_MIMETYPE_START+36)
499 -#define STR_SVT_MIMETYPE_CNT_IMAPFLD (STR_SVT_MIMETYPE_START+37)
500 -#define STR_SVT_MIMETYPE_CNT_VIMBOX (STR_SVT_MIMETYPE_START+38)
501 -#define STR_SVT_MIMETYPE_CNT_VIMINBOX (STR_SVT_MIMETYPE_START+39)
502 -#define STR_SVT_MIMETYPE_CNT_BBBOX (STR_SVT_MIMETYPE_START+40)
503 -#define STR_SVT_MIMETYPE_CNT_VIM_BB (STR_SVT_MIMETYPE_START+41)
504 -#define STR_SVT_MIMETYPE_CNT_NEWSBOX (STR_SVT_MIMETYPE_START+42)
505 -#define STR_SVT_MIMETYPE_CNT_NEWSGRP (STR_SVT_MIMETYPE_START+43)
506 -#define STR_SVT_MIMETYPE_CNT_OUTBOX (STR_SVT_MIMETYPE_START+44)
507 -#define STR_SVT_MIMETYPE_CNT_FTPBOX (STR_SVT_MIMETYPE_START+45)
508 -#define STR_SVT_MIMETYPE_CNT_FTPFLD (STR_SVT_MIMETYPE_START+46)
509 -#define STR_SVT_MIMETYPE_CNT_FTPFILE (STR_SVT_MIMETYPE_START+47)
510 -#define STR_SVT_MIMETYPE_CNT_FTPLINK (STR_SVT_MIMETYPE_START+48)
511 -#define STR_SVT_MIMETYPE_CNT_HTTPBOX (STR_SVT_MIMETYPE_START+49)
512 -#define STR_SVT_MIMETYPE_CNT_FSYSBOX (STR_SVT_MIMETYPE_START+50)
513 -#define STR_SVT_MIMETYPE_CNT_FSYSFLD (STR_SVT_MIMETYPE_START+51)
514 -#define STR_SVT_MIMETYPE_CNT_FSYSFILE (STR_SVT_MIMETYPE_START+52)
515 -#define STR_SVT_MIMETYPE_CNT_FSYSURLFILE (STR_SVT_MIMETYPE_START+53)
516 -#define STR_SVT_MIMETYPE_CNT_PUBLBOX (STR_SVT_MIMETYPE_START+54)
517 -#define STR_SVT_MIMETYPE_CNT_SRCHBOX (STR_SVT_MIMETYPE_START+55)
518 -#define STR_SVT_MIMETYPE_CNT_SUBSCRBOX (STR_SVT_MIMETYPE_START+56)
519 -#define STR_SVT_MIMETYPE_CNT_BOOKMARK (STR_SVT_MIMETYPE_START+57)
520 -#define STR_SVT_MIMETYPE_CNT_CDF (STR_SVT_MIMETYPE_START+58)
521 -#define STR_SVT_MIMETYPE_CNT_CDFSUB (STR_SVT_MIMETYPE_START+59)
522 -#define STR_SVT_MIMETYPE_CNT_CDFITEM (STR_SVT_MIMETYPE_START+60)
523 -#define STR_SVT_MIMETYPE_CNT_STARCHANNEL (STR_SVT_MIMETYPE_START+61)
524 -#define STR_SVT_MIMETYPE_CNT_TRASHBOX (STR_SVT_MIMETYPE_START+62)
525 -#define STR_SVT_MIMETYPE_CNT_TRASH (STR_SVT_MIMETYPE_START+63)
526 -#define STR_SVT_MIMETYPE_CNT_REMOV_VOL (STR_SVT_MIMETYPE_START+64)
527 -#define STR_SVT_MIMETYPE_CNT_FIX_VOL (STR_SVT_MIMETYPE_START+65)
528 -#define STR_SVT_MIMETYPE_CNT_REM_VOL (STR_SVT_MIMETYPE_START+66)
529 -#define STR_SVT_MIMETYPE_CNT_RAM_VOL (STR_SVT_MIMETYPE_START+67)
530 -#define STR_SVT_MIMETYPE_CNT_CDROM (STR_SVT_MIMETYPE_START+68)
531 -#define STR_SVT_MIMETYPE_CNT_DISK_35 (STR_SVT_MIMETYPE_START+69)
532 -#define STR_SVT_MIMETYPE_CNT_DISK_525 (STR_SVT_MIMETYPE_START+70)
533 -#define STR_SVT_MIMETYPE_CNT_TAPEDRIVE (STR_SVT_MIMETYPE_START+71)
534 -#define STR_SVT_MIMETYPE_APP_GAL (STR_SVT_MIMETYPE_START+72)
535 -#define STR_SVT_MIMETYPE_APP_GAL_THEME (STR_SVT_MIMETYPE_START+73)
536 -#define STR_SVT_MIMETYPE_CNT_SEPARATOR (STR_SVT_MIMETYPE_START+74)
537 -#define STR_SVT_MIMETYPE_APP_STARW_GLOB (STR_SVT_MIMETYPE_START+75)
538 -#define STR_SVT_MIMETYPE_APP_SDM (STR_SVT_MIMETYPE_START+76)
539 -#define STR_SVT_MIMETYPE_APP_SMD (STR_SVT_MIMETYPE_START+77)
540 -#define STR_SVT_MIMETYPE_APP_STARW_WEB (STR_SVT_MIMETYPE_START+78)
541 -#define STR_SVT_MIMETYPE_SCHEDULE (STR_SVT_MIMETYPE_START+79)
542 -#define STR_SVT_MIMETYPE_SCHEDULE_EVT (STR_SVT_MIMETYPE_START+80)
543 -#define STR_SVT_MIMETYPE_SCHEDULE_TASK (STR_SVT_MIMETYPE_START+81)
544 -#define STR_SVT_MIMETYPE_SCHEDULE_FEVT (STR_SVT_MIMETYPE_START+82)
545 -#define STR_SVT_MIMETYPE_SCHEDULE_FTASK (STR_SVT_MIMETYPE_START+83)
546 -#define STR_SVT_MIMETYPE_FRAMESET (STR_SVT_MIMETYPE_START+84)
547 -#define STR_SVT_MIMETYPE_MACRO (STR_SVT_MIMETYPE_START+85)
548 -#define STR_SVT_MIMETYPE_CNT_SFSYSFOLDER (STR_SVT_MIMETYPE_START+86)
549 -#define STR_SVT_MIMETYPE_CNT_SFSYSFILE (STR_SVT_MIMETYPE_START+87)
550 -#define STR_SVT_MIMETYPE_APP_TEMPLATE (STR_SVT_MIMETYPE_START+88)
551 -#define STR_SVT_MIMETYPE_IMAGE_GENERIC (STR_SVT_MIMETYPE_START+89)
552 -#define STR_SVT_MIMETYPE_APP_MSEXCEL (STR_SVT_MIMETYPE_START+90)
553 -#define STR_SVT_MIMETYPE_APP_MSEXCEL_TEMPL (STR_SVT_MIMETYPE_START+91)
554 -#define STR_SVT_MIMETYPE_APP_MSPPOINT (STR_SVT_MIMETYPE_START+92)
555 -#define STR_SVT_MIMETYPE_TEXT_VCALENDAR (STR_SVT_MIMETYPE_START+93)
556 -#define STR_SVT_MIMETYPE_TEXT_ICALENDAR (STR_SVT_MIMETYPE_START+94)
557 -#define STR_SVT_MIMETYPE_TEXT_XMLICALENDAR (STR_SVT_MIMETYPE_START+95)
558 -#define STR_SVT_MIMETYPE_TEXT_CDE_CALENDAR_APP (STR_SVT_MIMETYPE_START+96)
559 -#define STR_SVT_MIMETYPE_INET_MSG_RFC822 (STR_SVT_MIMETYPE_START+97)
560 -#define STR_SVT_MIMETYPE_INET_MULTI_ALTERNATIVE (STR_SVT_MIMETYPE_START+98)
561 -#define STR_SVT_MIMETYPE_INET_MULTI_DIGEST (STR_SVT_MIMETYPE_START+99)
562 -#define STR_SVT_MIMETYPE_INET_MULTI_PARALLEL (STR_SVT_MIMETYPE_START+100)
563 -#define STR_SVT_MIMETYPE_INET_MULTI_RELATED (STR_SVT_MIMETYPE_START+101)
564 -#define STR_SVT_MIMETYPE_INET_MULTI_MIXED (STR_SVT_MIMETYPE_START+102)
565 -#define STR_SVT_MIMETYPE_APP_IMPRESSPACKED (STR_SVT_MIMETYPE_START+103)
566 -#define STR_SVT_MIMETYPE_APP_JAR (STR_SVT_MIMETYPE_START+104)
567 -#define STR_SVT_MIMETYPE_IMAGE_PNG (STR_SVT_MIMETYPE_START+105)
568 -#define STR_SVT_MIMETYPE_IMAGE_TIFF (STR_SVT_MIMETYPE_START+106)
569 -
570 -#define STR_SVT_MIMETYPE_APP_SXCALC (STR_SVT_MIMETYPE_START+107)
571 -#define STR_SVT_MIMETYPE_APP_SXCHART (STR_SVT_MIMETYPE_START+108)
572 -#define STR_SVT_MIMETYPE_APP_SXDRAW (STR_SVT_MIMETYPE_START+109)
573 -#define STR_SVT_MIMETYPE_APP_SXMATH (STR_SVT_MIMETYPE_START+110)
574 -#define STR_SVT_MIMETYPE_APP_SXWRITER (STR_SVT_MIMETYPE_START+111)
575 -#define STR_SVT_MIMETYPE_APP_SXIMPRESS (STR_SVT_MIMETYPE_START+112)
576 -#define STR_SVT_MIMETYPE_APP_SXGLOBAL (STR_SVT_MIMETYPE_START+113)
577 -#define STR_SVT_MIMETYPE_APP_SXIPACKED (STR_SVT_MIMETYPE_START+114)
578 +#define STR_SVT_MIMETYPE_AUDIO_VORBIS (STR_SVT_MIMETYPE_START+13)
579 +#define STR_SVT_MIMETYPE_AUDIO_MIDI (STR_SVT_MIMETYPE_START+14)
580 +#define STR_SVT_MIMETYPE_AUDIO_WAV (STR_SVT_MIMETYPE_START+15)
581 +#define STR_SVT_MIMETYPE_IMAGE_GIF (STR_SVT_MIMETYPE_START+16)
582 +#define STR_SVT_MIMETYPE_IMAGE_JPEG (STR_SVT_MIMETYPE_START+17)
583 +#define STR_SVT_MIMETYPE_IMAGE_PCX (STR_SVT_MIMETYPE_START+18)
584 +#define STR_SVT_MIMETYPE_IMAGE_BMP (STR_SVT_MIMETYPE_START+19)
585 +#define STR_SVT_MIMETYPE_TEXT_HTML (STR_SVT_MIMETYPE_START+20)
586 +#define STR_SVT_MIMETYPE_TEXT_PLAIN (STR_SVT_MIMETYPE_START+21)
587 +#define STR_SVT_MIMETYPE_TEXT_URL (STR_SVT_MIMETYPE_START+22)
588 +#define STR_SVT_MIMETYPE_TEXT_VCARD (STR_SVT_MIMETYPE_START+23)
589 +#define STR_SVT_MIMETYPE_VIDEO_THEORA (STR_SVT_MIMETYPE_START+24)
590 +#define STR_SVT_MIMETYPE_VIDEO_VDO (STR_SVT_MIMETYPE_START+25)
591 +#define STR_SVT_MIMETYPE_VIDEO_MSVIDEO (STR_SVT_MIMETYPE_START+26)
592 +#define STR_SVT_MIMETYPE_X_STARMAIL (STR_SVT_MIMETYPE_START+27)
593 +#define STR_SVT_MIMETYPE_X_VRML (STR_SVT_MIMETYPE_START+28)
594 +#define STR_SVT_MIMETYPE_APP_STARHELP (STR_SVT_MIMETYPE_START+29)
595 +#define STR_SVT_MIMETYPE_APP_STARIMPRESS (STR_SVT_MIMETYPE_START+30)
596 +#define STR_SVT_MIMETYPE_APP_SCHED_CMB (STR_SVT_MIMETYPE_START+31)
597 +#define STR_SVT_MIMETYPE_APP_SCHED_EVT (STR_SVT_MIMETYPE_START+32)
598 +#define STR_SVT_MIMETYPE_APP_SCHED_TASK (STR_SVT_MIMETYPE_START+33)
599 +#define STR_SVT_MIMETYPE_APP_SCHED_TVIEW (STR_SVT_MIMETYPE_START+34)
600 +
601 +#define STR_SVT_MIMETYPE_CNT_MSG (STR_SVT_MIMETYPE_START+35)
602 +#define STR_SVT_MIMETYPE_CNT_DOCUMENT (STR_SVT_MIMETYPE_START+36)
603 +#define STR_SVT_MIMETYPE_CNT_POP3BOX (STR_SVT_MIMETYPE_START+37)
604 +#define STR_SVT_MIMETYPE_CNT_IMAPBOX (STR_SVT_MIMETYPE_START+38)
605 +#define STR_SVT_MIMETYPE_CNT_IMAPFLD (STR_SVT_MIMETYPE_START+39)
606 +#define STR_SVT_MIMETYPE_CNT_VIMBOX (STR_SVT_MIMETYPE_START+40)
607 +#define STR_SVT_MIMETYPE_CNT_VIMINBOX (STR_SVT_MIMETYPE_START+41)
608 +#define STR_SVT_MIMETYPE_CNT_BBBOX (STR_SVT_MIMETYPE_START+42)
609 +#define STR_SVT_MIMETYPE_CNT_VIM_BB (STR_SVT_MIMETYPE_START+43)
610 +#define STR_SVT_MIMETYPE_CNT_NEWSBOX (STR_SVT_MIMETYPE_START+44)
611 +#define STR_SVT_MIMETYPE_CNT_NEWSGRP (STR_SVT_MIMETYPE_START+45)
612 +#define STR_SVT_MIMETYPE_CNT_OUTBOX (STR_SVT_MIMETYPE_START+46)
613 +#define STR_SVT_MIMETYPE_CNT_FTPBOX (STR_SVT_MIMETYPE_START+47)
614 +#define STR_SVT_MIMETYPE_CNT_FTPFLD (STR_SVT_MIMETYPE_START+48)
615 +#define STR_SVT_MIMETYPE_CNT_FTPFILE (STR_SVT_MIMETYPE_START+49)
616 +#define STR_SVT_MIMETYPE_CNT_FTPLINK (STR_SVT_MIMETYPE_START+50)
617 +#define STR_SVT_MIMETYPE_CNT_HTTPBOX (STR_SVT_MIMETYPE_START+51)
618 +#define STR_SVT_MIMETYPE_CNT_FSYSBOX (STR_SVT_MIMETYPE_START+52)
619 +#define STR_SVT_MIMETYPE_CNT_FSYSFLD (STR_SVT_MIMETYPE_START+53)
620 +#define STR_SVT_MIMETYPE_CNT_FSYSFILE (STR_SVT_MIMETYPE_START+54)
621 +#define STR_SVT_MIMETYPE_CNT_FSYSURLFILE (STR_SVT_MIMETYPE_START+55)
622 +#define STR_SVT_MIMETYPE_CNT_PUBLBOX (STR_SVT_MIMETYPE_START+56)
623 +#define STR_SVT_MIMETYPE_CNT_SRCHBOX (STR_SVT_MIMETYPE_START+57)
624 +#define STR_SVT_MIMETYPE_CNT_SUBSCRBOX (STR_SVT_MIMETYPE_START+58)
625 +#define STR_SVT_MIMETYPE_CNT_BOOKMARK (STR_SVT_MIMETYPE_START+59)
626 +#define STR_SVT_MIMETYPE_CNT_CDF (STR_SVT_MIMETYPE_START+60)
627 +#define STR_SVT_MIMETYPE_CNT_CDFSUB (STR_SVT_MIMETYPE_START+61)
628 +#define STR_SVT_MIMETYPE_CNT_CDFITEM (STR_SVT_MIMETYPE_START+62)
629 +#define STR_SVT_MIMETYPE_CNT_STARCHANNEL (STR_SVT_MIMETYPE_START+63)
630 +#define STR_SVT_MIMETYPE_CNT_TRASHBOX (STR_SVT_MIMETYPE_START+64)
631 +#define STR_SVT_MIMETYPE_CNT_TRASH (STR_SVT_MIMETYPE_START+65)
632 +#define STR_SVT_MIMETYPE_CNT_REMOV_VOL (STR_SVT_MIMETYPE_START+66)
633 +#define STR_SVT_MIMETYPE_CNT_FIX_VOL (STR_SVT_MIMETYPE_START+67)
634 +#define STR_SVT_MIMETYPE_CNT_REM_VOL (STR_SVT_MIMETYPE_START+68)
635 +#define STR_SVT_MIMETYPE_CNT_RAM_VOL (STR_SVT_MIMETYPE_START+69)
636 +#define STR_SVT_MIMETYPE_CNT_CDROM (STR_SVT_MIMETYPE_START+70)
637 +#define STR_SVT_MIMETYPE_CNT_DISK_35 (STR_SVT_MIMETYPE_START+71)
638 +#define STR_SVT_MIMETYPE_CNT_DISK_525 (STR_SVT_MIMETYPE_START+72)
639 +#define STR_SVT_MIMETYPE_CNT_TAPEDRIVE (STR_SVT_MIMETYPE_START+73)
640 +#define STR_SVT_MIMETYPE_APP_GAL (STR_SVT_MIMETYPE_START+74)
641 +#define STR_SVT_MIMETYPE_APP_GAL_THEME (STR_SVT_MIMETYPE_START+75)
642 +#define STR_SVT_MIMETYPE_CNT_SEPARATOR (STR_SVT_MIMETYPE_START+76)
643 +#define STR_SVT_MIMETYPE_APP_STARW_GLOB (STR_SVT_MIMETYPE_START+77)
644 +#define STR_SVT_MIMETYPE_APP_SDM (STR_SVT_MIMETYPE_START+78)
645 +#define STR_SVT_MIMETYPE_APP_SMD (STR_SVT_MIMETYPE_START+79)
646 +#define STR_SVT_MIMETYPE_APP_STARW_WEB (STR_SVT_MIMETYPE_START+80)
647 +#define STR_SVT_MIMETYPE_SCHEDULE (STR_SVT_MIMETYPE_START+81)
648 +#define STR_SVT_MIMETYPE_SCHEDULE_EVT (STR_SVT_MIMETYPE_START+82)
649 +#define STR_SVT_MIMETYPE_SCHEDULE_TASK (STR_SVT_MIMETYPE_START+83)
650 +#define STR_SVT_MIMETYPE_SCHEDULE_FEVT (STR_SVT_MIMETYPE_START+84)
651 +#define STR_SVT_MIMETYPE_SCHEDULE_FTASK (STR_SVT_MIMETYPE_START+85)
652 +#define STR_SVT_MIMETYPE_FRAMESET (STR_SVT_MIMETYPE_START+86)
653 +#define STR_SVT_MIMETYPE_MACRO (STR_SVT_MIMETYPE_START+87)
654 +#define STR_SVT_MIMETYPE_CNT_SFSYSFOLDER (STR_SVT_MIMETYPE_START+88)
655 +#define STR_SVT_MIMETYPE_CNT_SFSYSFILE (STR_SVT_MIMETYPE_START+89)
656 +#define STR_SVT_MIMETYPE_APP_TEMPLATE (STR_SVT_MIMETYPE_START+90)
657 +#define STR_SVT_MIMETYPE_IMAGE_GENERIC (STR_SVT_MIMETYPE_START+91)
658 +#define STR_SVT_MIMETYPE_APP_MSEXCEL (STR_SVT_MIMETYPE_START+92)
659 +#define STR_SVT_MIMETYPE_APP_MSEXCEL_TEMPL (STR_SVT_MIMETYPE_START+93)
660 +#define STR_SVT_MIMETYPE_APP_MSPPOINT (STR_SVT_MIMETYPE_START+94)
661 +#define STR_SVT_MIMETYPE_TEXT_VCALENDAR (STR_SVT_MIMETYPE_START+95)
662 +#define STR_SVT_MIMETYPE_TEXT_ICALENDAR (STR_SVT_MIMETYPE_START+96)
663 +#define STR_SVT_MIMETYPE_TEXT_XMLICALENDAR (STR_SVT_MIMETYPE_START+97)
664 +#define STR_SVT_MIMETYPE_TEXT_CDE_CALENDAR_APP (STR_SVT_MIMETYPE_START+98)
665 +#define STR_SVT_MIMETYPE_INET_MSG_RFC822 (STR_SVT_MIMETYPE_START+99)
666 +#define STR_SVT_MIMETYPE_INET_MULTI_ALTERNATIVE (STR_SVT_MIMETYPE_START+100)
667 +#define STR_SVT_MIMETYPE_INET_MULTI_DIGEST (STR_SVT_MIMETYPE_START+101)
668 +#define STR_SVT_MIMETYPE_INET_MULTI_PARALLEL (STR_SVT_MIMETYPE_START+102)
669 +#define STR_SVT_MIMETYPE_INET_MULTI_RELATED (STR_SVT_MIMETYPE_START+103)
670 +#define STR_SVT_MIMETYPE_INET_MULTI_MIXED (STR_SVT_MIMETYPE_START+104)
671 +#define STR_SVT_MIMETYPE_APP_IMPRESSPACKED (STR_SVT_MIMETYPE_START+105)
672 +#define STR_SVT_MIMETYPE_APP_JAR (STR_SVT_MIMETYPE_START+106)
673 +#define STR_SVT_MIMETYPE_IMAGE_PNG (STR_SVT_MIMETYPE_START+107)
674 +#define STR_SVT_MIMETYPE_IMAGE_TIFF (STR_SVT_MIMETYPE_START+108)
675 +
676 +#define STR_SVT_MIMETYPE_APP_SXCALC (STR_SVT_MIMETYPE_START+109)
677 +#define STR_SVT_MIMETYPE_APP_SXCHART (STR_SVT_MIMETYPE_START+110)
678 +#define STR_SVT_MIMETYPE_APP_SXDRAW (STR_SVT_MIMETYPE_START+111)
679 +#define STR_SVT_MIMETYPE_APP_SXMATH (STR_SVT_MIMETYPE_START+112)
680 +#define STR_SVT_MIMETYPE_APP_SXWRITER (STR_SVT_MIMETYPE_START+113)
681 +#define STR_SVT_MIMETYPE_APP_SXIMPRESS (STR_SVT_MIMETYPE_START+114)
682 +#define STR_SVT_MIMETYPE_APP_SXGLOBAL (STR_SVT_MIMETYPE_START+115)
683 +#define STR_SVT_MIMETYPE_APP_SXIPACKED (STR_SVT_MIMETYPE_START+116)
684 #define STR_SVT_MIMETYPE_END (STR_SVT_MIMETYPE_APP_SXIPACKED)
685
686 #define STR_SVT_PRNDLG_START (STR_SVT_MIMETYPE_END+1)
687 diff -rup svtools-orig/source/misc1/inettype.cxx svtools/source/misc1/inettype.cxx
688 --- svtools-orig/source/misc1/inettype.cxx 2006-09-21 11:40:26.000000000 +0200
689 +++ svtools/source/misc1/inettype.cxx 2006-09-21 11:48:11.000000000 +0200
690 @@ -315,6 +315,7 @@ MediaTypeEntry const aStaticTypeNameMap[
691 { CONTENT_TYPE_STR_AUDIO_AIFF, CONTENT_TYPE_AUDIO_AIFF, "aif" },
692 { CONTENT_TYPE_STR_AUDIO_BASIC, CONTENT_TYPE_AUDIO_BASIC, "au" },
693 { CONTENT_TYPE_STR_AUDIO_MIDI, CONTENT_TYPE_AUDIO_MIDI, "mid" },
694 + { CONTENT_TYPE_STR_AUDIO_VORBIS, CONTENT_TYPE_AUDIO_VORBIS, "ogg" },
695 { CONTENT_TYPE_STR_AUDIO_WAV, CONTENT_TYPE_AUDIO_WAV, "wav" },
696 { CONTENT_TYPE_STR_IMAGE_GENERIC, CONTENT_TYPE_IMAGE_GENERIC, "tmp" },
697 { CONTENT_TYPE_STR_IMAGE_GIF, CONTENT_TYPE_IMAGE_GIF, "gif" },
698 @@ -345,6 +346,7 @@ MediaTypeEntry const aStaticTypeNameMap[
699 { CONTENT_TYPE_STR_TEXT_VCALENDAR, CONTENT_TYPE_TEXT_VCALENDAR,
700 "vcs" },
701 { CONTENT_TYPE_STR_TEXT_VCARD, CONTENT_TYPE_TEXT_VCARD, "vcf" },
702 + { CONTENT_TYPE_STR_VIDEO_THEORA, CONTENT_TYPE_VIDEO_THEORA, "ogg" },
703 { CONTENT_TYPE_STR_VIDEO_VDO, CONTENT_TYPE_VIDEO_VDO, "vdo" },
704 { CONTENT_TYPE_STR_VIDEO_MSVIDEO, CONTENT_TYPE_VIDEO_MSVIDEO, "avi" },
705 { CONTENT_TYPE_STR_X_STARMAIL, CONTENT_TYPE_X_STARMAIL, "smd" },
706 @@ -373,6 +375,7 @@ USHORT const aStaticResourceIDMap[CONTEN
707 STR_SVT_MIMETYPE_AUDIO_AIFF, // CONTENT_TYPE_AUDIO_AIFF
708 STR_SVT_MIMETYPE_AUDIO_BASIC, // CONTENT_TYPE_AUDIO_BASIC
709 STR_SVT_MIMETYPE_AUDIO_MIDI, // CONTENT_TYPE_AUDIO_MIDI
710 + STR_SVT_MIMETYPE_AUDIO_VORBIS, // CONTENT_TYPE_AUDIO_VORBIS
711 STR_SVT_MIMETYPE_AUDIO_WAV, // CONTENT_TYPE_AUDIO_WAV
712 STR_SVT_MIMETYPE_IMAGE_GIF, // CONTENT_TYPE_IMAGE_GIF
713 STR_SVT_MIMETYPE_IMAGE_JPEG, // CONTENT_TYPE_IMAGE_JPEG
714 @@ -384,6 +387,7 @@ USHORT const aStaticResourceIDMap[CONTEN
715 STR_SVT_MIMETYPE_TEXT_PLAIN, // CONTENT_TYPE_TEXT_PLAIN
716 STR_SVT_MIMETYPE_TEXT_URL, // CONTENT_TYPE_TEXT_URL
717 STR_SVT_MIMETYPE_TEXT_VCARD, // CONTENT_TYPE_TEXT_VCARD
718 + STR_SVT_MIMETYPE_VIDEO_THEORA, // CONTENT_TYPE_VIDEO_THEORA
719 STR_SVT_MIMETYPE_VIDEO_VDO, // CONTENT_TYPE_VIDEO_VDO
720 STR_SVT_MIMETYPE_VIDEO_MSVIDEO, // CONTENT_TYPE_VIDEO_MSVIDEO
721 STR_SVT_MIMETYPE_CNT_MSG, // CONTENT_TYPE_X_CNT_MESSAGE
722 @@ -519,6 +523,7 @@ MediaTypeEntry const aStaticExtensionMap
723 { "met", CONTENT_TYPE_IMAGE_GENERIC, "" },
724 { "mid", CONTENT_TYPE_AUDIO_MIDI, "" },
725 { "midi", CONTENT_TYPE_AUDIO_MIDI, "" },
726 + { "ogg", CONTENT_TYPE_AUDIO_VORBIS, "" },
727 { "pbm", CONTENT_TYPE_IMAGE_GENERIC, "" },
728 { "pcd", CONTENT_TYPE_IMAGE_GENERIC, "" },
729 { "pct", CONTENT_TYPE_IMAGE_GENERIC, "" },
730 diff -rup svtools-orig/source/misc1/mediatyp.src svtools/source/misc1/mediatyp.src
731 --- svtools-orig/source/misc1/mediatyp.src 2006-09-21 11:40:26.000000000 +0200
732 +++ svtools/source/misc1/mediatyp.src 2006-09-21 11:45:57.000000000 +0200
733 @@ -113,6 +113,87 @@
734 Text [ en-US ] = "Audio file" ;
735 };
736
737 +String STR_SVT_MIMETYPE_AUDIO_VORBIS
738 +{
739 + Text [ de ] = "Audio-Datei" ;
740 + Text [ en-US ] = "Audio file" ;
741 + Text [ af ] = "Oudiolêer" ;
742 + Text [ ar ] = "ملف صوتي" ;
743 + Text [ as-IN ] = "অডিঅ' ফাইল" ;
744 + Text [ be-BY ] = "Гукавы файл" ;
745 + Text [ bg ] = "Аудиофайл" ;
746 + Text [ br ] = "Restr klev" ;
747 + Text [ bs ] = "Audio datoteka" ;
748 + Text [ ca ] = "Fitxer d'àudio" ;
749 + Text [ cs ] = "Zvukový soubor" ;
750 + Text [ cy ] = "Ffeil sain" ;
751 + Text [ da ] = "Lydfil" ;
752 + Text [ el ] = "Αρχείο ήχου" ;
753 + Text [ en-GB ] = "Audio file" ;
754 + Text [ en-ZA ] = "Audio file" ;
755 + Text [ eo ] = "Audio file" ;
756 + Text [ es ] = "Archivo audio" ;
757 + Text [ et ] = "Audiofail" ;
758 + Text [ fa ] = "پرونده‌ی صوتی" ;
759 + Text [ fi ] = "Äänitiedosto" ;
760 + Text [ fr ] = "Fichier audio" ;
761 + Text [ ga ] = "Comhad fuaime" ;
762 + Text [ gu ] = "ઓડિયો ફાઈલ" ;
763 + Text [ gu-IN ] = "ઓડિયો ફાઈલ" ;
764 + Text [ he ] = "קובץ שמע" ;
765 + Text [ hi-IN ] = "Audio file" ;
766 + Text [ hr ] = "Zvučna datoteka" ;
767 + Text [ hu ] = "Hangfájl" ;
768 + Text [ it ] = "File audio" ;
769 + Text [ ja ] = "オーディオ ファイル" ;
770 + Text [ ka ] = "ხმოვანი ფაილი" ;
771 + Text [ km ] = "ឯកសារ​សម្លេង" ;
772 + Text [ ko ] = "오디오 파일" ;
773 + Text [ ku ] = "Pelgeha deng" ;
774 + Text [ lt ] = "Garso failas" ;
775 + Text [ mk ] = "Аудиодатотека" ;
776 + Text [ ml-IN ] = "ഓഡിയോ ഫയല്" ;
777 + Text [ mr-IN ] = "श्राव्य धारिका" ;
778 + Text [ nb ] = "Lydfil" ;
779 + Text [ ne ] = "अडियो फाइल" ;
780 + Text [ nl ] = "Audiobestand" ;
781 + Text [ nn ] = "Lydfil" ;
782 + Text [ nr ] = "Ifayili elilalelwako" ;
783 + Text [ ns ] = "Faele ya odiyo" ;
784 + Text [ or-IN ] = "ଅଡିଓ ଫାଇଲ" ;
785 + Text [ pa-IN ] = "ਆਡੀਓ ਫਾਇਲ" ;
786 + Text [ pl ] = "Plik dźwiękowy" ;
787 + Text [ pt ] = "Ficheiro áudio" ;
788 + Text [ pt-BR ] = "Arquivo de áudio" ;
789 + Text [ ru ] = "Аудио файл" ;
790 + Text [ rw ] = "Audio file" ;
791 + Text [ sh-YU ] = "Zvučna datoteka" ;
792 + Text [ sk ] = "Zvukový súbor" ;
793 + Text [ sl ] = "Zvočna datoteka" ;
794 + Text [ sr-CS ] = "Звучна датотека" ;
795 + Text [ ss ] = "I-Odiyofayela" ;
796 + Text [ st ] = "Audiyo faele" ;
797 + Text [ sv ] = "Audio-fil" ;
798 + Text [ sw-TZ ] = "Faili la kusikia" ;
799 + Text [ ta ] = "Audio file" ;
800 + Text [ ta-IN ] = "Audio file" ;
801 + Text [ te-IN ] = "శ్రవణ దస్త్రం" ;
802 + Text [ tg ] = "Аудио-дафтар" ;
803 + Text [ th ] = "Audio file" ;
804 + Text [ ti-ER ] = "ናይ ድምጺ ፋይል" ;
805 + Text [ tr ] = "Ses dosyası" ;
806 + Text [ ts ] = "Fayili ya Xitlanga-mpfumawulo" ;
807 + Text [ uk ] = "Audio file" ;
808 + Text [ ur-IN ] = "آڈیوفائل" ;
809 + Text [ ve ] = "Faela ya odio" ;
810 + Text [ vi ] = "Tập tin âm thanh" ;
811 + Text [ xh ] = "Ifayili Yokumanyelwayo" ;
812 + Text [ zh-CN ] = "声频文件" ;
813 + Text [ zh-TW ] = "聲頻檔案" ;
814 + Text [ zu ] = "Ifayela eliveza umsindo" ;
815 + Text [ x-comment ] = " ";
816 +};
817 +
818 String STR_SVT_MIMETYPE_AUDIO_WAV
819 {
820 Text [ en-US ] = "Audio file" ;
821 @@ -158,6 +239,87 @@
822 Text [ en-US ] = "vCard file" ;
823 };
824
825 +String STR_SVT_MIMETYPE_VIDEO_THEORA
826 +{
827 + Text [ de ] = "Video-Datei" ;
828 + Text [ en-US ] = "Video file" ;
829 + Text [ af ] = "Videolêer" ;
830 + Text [ ar ] = "ملف فيديو" ;
831 + Text [ as-IN ] = "ভিডিঅ' ফাইল" ;
832 + Text [ be-BY ] = "Файл відэа" ;
833 + Text [ bg ] = "Видеофайл" ;
834 + Text [ br ] = "Restr video" ;
835 + Text [ bs ] = "Video datoteka" ;
836 + Text [ ca ] = "Fitxer de vídeo" ;
837 + Text [ cs ] = "Video soubor" ;
838 + Text [ cy ] = "Ffeil fideo" ;
839 + Text [ da ] = "Video-fil" ;
840 + Text [ el ] = "Αρχείο Video" ;
841 + Text [ en-GB ] = "Video file" ;
842 + Text [ en-ZA ] = "Video file" ;
843 + Text [ eo ] = "Video file" ;
844 + Text [ es ] = "Archivo vídeo" ;
845 + Text [ et ] = "Videofail" ;
846 + Text [ fa ] = "پرونده‌ی ویدئویی" ;
847 + Text [ fi ] = "Videotiedosto" ;
848 + Text [ fr ] = "Fichier vidéo" ;
849 + Text [ ga ] = "Físchomhad" ;
850 + Text [ gu ] = "વીડિયો ફાઈલ" ;
851 + Text [ gu-IN ] = "વીડિયો ફાઈલ" ;
852 + Text [ he ] = "קובץ וידיאו" ;
853 + Text [ hi-IN ] = "Video file" ;
854 + Text [ hr ] = "Video datoteka" ;
855 + Text [ hu ] = "Videofájl" ;
856 + Text [ it ] = "File video" ;
857 + Text [ ja ] = "ビデオ ファイル" ;
858 + Text [ ka ] = "ვიდეო ფაილი" ;
859 + Text [ km ] = "ឯកសារ​វីដេអូ" ;
860 + Text [ ko ] = "비디오 파일" ;
861 + Text [ ku ] = "Pelgeha vîdeo" ;
862 + Text [ lt ] = "Vaizdo failas" ;
863 + Text [ mk ] = "Видеодатотека" ;
864 + Text [ ml-IN ] = "വീഡിയോ ഫയല്" ;
865 + Text [ mr-IN ] = "चित्रमुद्रक धारिका" ;
866 + Text [ nb ] = "Videofil" ;
867 + Text [ ne ] = "भिडियो फाइल" ;
868 + Text [ nl ] = "Videobestand" ;
869 + Text [ nn ] = "Videofil" ;
870 + Text [ nr ] = "Ifayili levidiyo" ;
871 + Text [ ns ] = "Faele ya bidio" ;
872 + Text [ or-IN ] = "ଭିଡିଓ ଫାଇଲ" ;
873 + Text [ pa-IN ] = "ਵੀਡਿਓ ਫਾਇਲ" ;
874 + Text [ pl ] = "Plik filmowy" ;
875 + Text [ pt ] = "Ficheiro de vídeo" ;
876 + Text [ pt-BR ] = "Arquivo de vídeo" ;
877 + Text [ ru ] = "Файл видео" ;
878 + Text [ rw ] = "Video file" ;
879 + Text [ sh-YU ] = "Video datoteka" ;
880 + Text [ sk ] = "Video súbor" ;
881 + Text [ sl ] = "Video-datoteka" ;
882 + Text [ sr-CS ] = "Видео датотека" ;
883 + Text [ ss ] = "Ividiyofayela" ;
884 + Text [ st ] = "Bideo faele" ;
885 + Text [ sv ] = "Video-fil" ;
886 + Text [ sw-TZ ] = "Faili la video" ;
887 + Text [ ta ] = "Video file" ;
888 + Text [ ta-IN ] = "Video file" ;
889 + Text [ te-IN ] = "దృశ్య దస్త్రము" ;
890 + Text [ tg ] = "Видео-дафтар" ;
891 + Text [ th ] = "Video file" ;
892 + Text [ ti-ER ] = "ናይ ቪድዮ ፋይል" ;
893 + Text [ tr ] = "Görüntü dosyası" ;
894 + Text [ ts ] = "Fayili ya Vhidiyo" ;
895 + Text [ uk ] = "Video file" ;
896 + Text [ ur-IN ] = "وڈیوفائل" ;
897 + Text [ ve ] = "Faela ya vidio" ;
898 + Text [ vi ] = "Tập tin ảnh động" ;
899 + Text [ xh ] = "Ifayili yevidiyo" ;
900 + Text [ zh-CN ] = "影视文件" ;
901 + Text [ zh-TW ] = "視頻檔案" ;
902 + Text [ zu ] = "Ifayela levidiyo" ;
903 + Text [ x-comment ] = " ";
904 +};
905 +
906 String STR_SVT_MIMETYPE_VIDEO_VDO
907 {
908 Text [ en-US ] = "Video file" ;
909 Index: vcl/inc/salobj.hxx
910 ===================================================================
911 RCS file: /cvs/gsl/vcl/inc/salobj.hxx,v
912 retrieving revision 1.5
913 diff -u -p -r1.5 salobj.hxx
914 --- vcl/inc/vcl/salobj.hxx 2 Nov 2005 13:28:47 -0000 1.5
915 +++ vcl/inc/vcl/salobj.hxx 5 Jan 2007 15:00:36 -0000
916 @@ -88,6 +88,8 @@
917 virtual void SetBackground() = 0;
918 virtual void SetBackground( SalColor nSalColor ) = 0;
919
920 + virtual void SetForwardKey( BOOL bEnable ) {}
921 +
922 virtual const SystemEnvData* GetSystemData() const = 0;
923
924 void SetCallback( void* pInst, SALOBJECTPROC pProc )
925 Index: vcl/inc/syschild.hxx
926 ===================================================================
927 RCS file: /cvs/gsl/vcl/inc/syschild.hxx,v
928 retrieving revision 1.5
929 diff -u -p -r1.5 syschild.hxx
930 --- vcl/inc/vcl/syschild.hxx 19 Jun 2006 19:10:32 -0000 1.5
931 +++ vcl/inc/vcl/syschild.hxx 5 Jan 2007 15:00:36 -0000
932 @@ -77,6 +77,7 @@ public:
933 // however, this might not always be required
934 void EnableEraseBackground( BOOL bEnable = TRUE );
935 BOOL IsEraseBackgroundEnabled();
936 + void SetForwardKey( BOOL bEnable );
937 };
938
939 #endif // _SV_SYSCHILD_HXX
940 Index: vcl/source/window/syschild.cxx
941 ===================================================================
942 RCS file: /cvs/gsl/vcl/source/window/syschild.cxx,v
943 retrieving revision 1.8
944 diff -u -p -r1.8 syschild.cxx
945 --- vcl/source/window/syschild.cxx 10 Jul 2006 16:36:07 -0000 1.8
946 +++ vcl/source/window/syschild.cxx 5 Jan 2007 15:00:49 -0000
947 @@ -207,3 +211,9 @@ BOOL SystemChildWindow::IsEraseBackgroun
948 else
949 return FALSE;
950 }
951 +
952 +void SystemChildWindow::SetForwardKey( BOOL bEnable )
953 +{
954 + if ( mpWindowImpl->mpSysObj )
955 + mpWindowImpl->mpSysObj->SetForwardKey( bEnable );
956 +}
957 Index: vcl/unx/gtk/window/gtkobject.cxx
958 ===================================================================
959 RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkobject.cxx,v
960 retrieving revision 1.8.90.1
961 diff -u -p -r1.8.90.1 gtkobject.cxx
962 --- vcl/unx/gtk/window/gtkobject.cxx 10 Aug 2006 14:54:05 -0000 1.8.90.1
963 +++ vcl/unx/gtk/window/gtkobject.cxx 5 Jan 2007 15:00:54 -0000
964 @@ -211,3 +242,11 @@ void GtkSalObject::signalDestroy( GtkObj
965 pThis->m_pSocket = NULL;
966 }
967 }
968 +
969 +void GtkSalObject::SetForwardKey( BOOL bEnable )
970 +{
971 + if( bEnable )
972 + gtk_widget_add_events( GTK_WIDGET( m_pSocket ), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE );
973 + else
974 + gtk_widget_set_events( GTK_WIDGET( m_pSocket ), ~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE) & gtk_widget_get_events( GTK_WIDGET( m_pSocket ) ) );
975 +}
976 Index: vcl/unx/inc/plugins/gtk/gtkobject.hxx
977 ===================================================================
978 RCS file: /cvs/gsl/vcl/unx/inc/plugins/gtk/gtkobject.hxx,v
979 retrieving revision 1.4
980 diff -u -p -r1.4 gtkobject.hxx
981 --- vcl/unx/inc/plugins/gtk/gtkobject.hxx 9 Sep 2005 12:52:22 -0000 1.4
982 +++ vcl/unx/inc/plugins/gtk/gtkobject.hxx 5 Jan 2007 15:00:54 -0000
983 @@ -78,6 +78,8 @@
984 virtual void SetBackground();
985 virtual void SetBackground( SalColor nSalColor );
986
987 + virtual void SetForwardKey( BOOL bEnable );
988 +
989 virtual const SystemEnvData* GetSystemData() const;
990
991 };
992 --- /dev/null 2006-09-07 16:53:33.000000000 +0200
993 +++ avmedia/source/gstreamer/ChangeLog 2006-09-22 14:46:33.000000000 +0200
994 @@ -0,0 +1,112 @@
995 +2006-09-22 Radek Doulik <rodo@novell.com>
996 +
997 + * gstplayer.cxx (processSyncMessage): remember GstXOverlay
998 + (processMessage): explicit expose when we reach paused state -
999 + this mean that now once stream is loaded/video inserted, the 1st
1000 + frame is rendered
1001 + (setMediaTime): if not playing set PAUSED state again, seems like
1002 + seek is changing state to PLAYING. this fixes problem when stop
1003 + seeked to begin and started playing again
1004 +
1005 +2006-09-21 Radek Doulik <rodo@novell.com>
1006 +
1007 + * gstplayer.cxx (processSyncMessage): when error occurs, set the
1008 + condition so that OOo does'n waste time waiting for us to finish
1009 + reaching PAUSED state
1010 +
1011 +2006-09-19 Radek Doulik <rodo@novell.com>
1012 +
1013 + * gstplayer.cxx (processSyncMessage): set condition even if we
1014 + weren't able to get video size - might be audio only stream
1015 + (getPreferredPlayerWindowSize): init size to 0, 0 - in case we
1016 + don't have video size, it will fallback to system media window
1017 + content (some icon)
1018 +
1019 +2006-08-31 Radek Doulik <rodo@novell.com>
1020 +
1021 + * gstplayer.cxx (processSyncMessage): when we get to paused state,
1022 + get stream-info from playbin and look for video size. set
1023 + condition when done
1024 + (Player): added width, height, size condition
1025 + (preparePlaybin): new helper method, extracted from create
1026 + method. use fake video sink in the beggining so that we don't get
1027 + xwindow-id message too early
1028 + (getPreferredPlayerWindowSize): wait for size condition to be sure
1029 + we know video size (if possible). reset video sink to default one
1030 + (NULL) and set state to READY and immediatelly to PAUSE so that
1031 + the default sink is relinked
1032 +
1033 +2006-08-16 Radek Doulik <rodo@novell.com>
1034 +
1035 + * gstplayer.cxx (create): set state to PAUSED so that we can query
1036 + duration ASAP
1037 + (processMessage): watch for state changed and query duration when
1038 + going to PAUSED state
1039 +
1040 +2006-08-15 Radek Doulik <rodo@novell.com>
1041 +
1042 + * makefile.mk: require gstreamer-plugins-base-0.10 and link with
1043 + gst interfaces library
1044 +
1045 + * gstwindow.cxx: make it build
1046 +
1047 + * gstplayer.cxx: removed WINNT ifdefs (relict from time when I
1048 + thought Cedric develops on win architecture)
1049 + (gst_pipeline_bus_callback): added sync handler for setting
1050 + xwindow id to to video sink
1051 + (processSyncMessage): new metrhod, process message from sync
1052 + handler
1053 + (create): set playbin state to READY so that playback start is
1054 + faster
1055 + (createPlayerWindow): implemented, we pass xwindow id in 3rd
1056 + argument
1057 +
1058 +2006-08-04 Radek Doulik <rodo@novell.com>
1059 +
1060 + * gstplayer.cxx (create): add bus watch, watch for EOS in
1061 + processMessage method (called from watch callback)
1062 +
1063 +2006-08-02 Radek Doulik <rodo@novell.com>
1064 +
1065 + * gstplayer.cxx: test for mpPlaybin != NULL before using it,
1066 + initialize it in constructor to NULL and also reset it to NULL
1067 + after unrefing
1068 + (getDuration): check for sucessful query and the right format
1069 + (getMediaTime): ditto,
1070 + (setMediaTime): implemented
1071 +
1072 +2006-08-01 Radek Doulik <rodo@novell.com>
1073 +
1074 + * gstwindow.hxx: removed mpWndClass for now, so that the rest
1075 + compiles
1076 +
1077 + * gstuno.cxx (component_getFactory): s/DirectX/GStreamer so that
1078 + component is loaded
1079 +
1080 + * gstplayer.cxx (Player::Player): do not create gerror object, it
1081 + is noit needed, free the error object only if created during
1082 + initialization of gstremer
1083 + (Player::create, start, stop): use g_main_loop only on windows
1084 + (create): fixed ascURL declaration, added rtl namespace prefix
1085 + (setMute): set mbMuted
1086 + (setVolumeDB): convert avmedia volume to gstreamer volume, added
1087 + missing NULL to the end of g_object_set call
1088 + (getVolumeDB): convert gstreamer volume back to avmedia volume
1089 +
1090 + * gstplayer.hxx: keep g_main_loop only on win platform. make
1091 + mnUnmutedVolume double, moved mbInitialized to the end to quiet
1092 + compiler warning
1093 +
1094 + * gstcommon.hxx: removed wrong #include <rtl/ustring>
1095 +
1096 + * renamed source files, prefixed the names with gst so that obj
1097 + file names do not clash with xine object files
1098 +
1099 + * makefile.mk: changed PRJNAME and TARGET to reflect
1100 + gstreamer. enabled build on unix as well. removed win library
1101 + references. removed source files which are not yet ported from
1102 + SLOFILES list.
1103 +
1104 +2006-08-31 Radek Doulik <rodo@novell.com>
1105 +
1106 + * imported initial sources from Cedric Bosdonnat
1107 \ No newline at end of file
1108 --- /dev/null 2006-08-13 17:52:05.000000000 +0200
1109 +++ avmedia/source/gstreamer/exports.dxp 2006-08-22 11:38:56.000000000 +0200
1110 @@ -0,0 +1,4 @@
1111 +component_getImplementationEnvironment
1112 +component_writeInfo
1113 +component_getFactory
1114 +
1115 --- /dev/null 2006-08-13 17:52:05.000000000 +0200
1116 +++ avmedia/source/gstreamer/gstcommon.hxx 2006-08-22 11:38:56.000000000 +0200
1117 @@ -0,0 +1,83 @@
1118 +/*************************************************************************
1119 + *
1120 + * OpenOffice.org - a multi-platform office productivity suite
1121 + *
1122 + * $RCSfile$
1123 + *
1124 + * $Revision: 7654 $
1125 + *
1126 + * last change: $Author: rodo $ $Date: 2006-09-19 09:24:25 +0100 (Tue, 19 Sep 2006) $
1127 + *
1128 + * The Contents of this file are made available subject to
1129 + * the terms of GNU Lesser General Public License Version 2.1.
1130 + *
1131 + *
1132 + * GNU Lesser General Public License Version 2.1
1133 + * =============================================
1134 + * Copyright 2005 by Sun Microsystems, Inc.
1135 + * 901 San Antonio Road, Palo Alto, CA 94303, USA
1136 + *
1137 + * This library is free software; you can redistribute it and/or
1138 + * modify it under the terms of the GNU Lesser General Public
1139 + * License version 2.1, as published by the Free Software Foundation.
1140 + *
1141 + * This library is distributed in the hope that it will be useful,
1142 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1143 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1144 + * Lesser General Public License for more details.
1145 + *
1146 + * You should have received a copy of the GNU Lesser General Public
1147 + * License along with this library; if not, write to the Free Software
1148 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1149 + * MA 02111-1307 USA
1150 + *
1151 + ************************************************************************/
1152 +
1153 +#ifndef _GSTCOMMON_HXX
1154 +#define _GSTCOMMON_HXX
1155 +
1156 +#include <gst/gst.h>
1157 +
1158 +#ifndef _OSL_MUTEX_HXX_
1159 +#include <osl/mutex.hxx>
1160 +#endif
1161 +#ifndef _DEBUG_HXX
1162 +#include <tools/debug.hxx>
1163 +#endif
1164 +#ifndef _STREAM_HXX
1165 +#include <tools/stream.hxx>
1166 +#endif
1167 +#ifndef _STRING_HXX
1168 +#include <tools/string.hxx>
1169 +#endif
1170 +#ifndef _URLOBJ_HXX
1171 +#include <tools/urlobj.hxx>
1172 +#endif
1173 +#ifndef _CPPUHELPER_IMPLBASE1_HXX_
1174 +#include <cppuhelper/implbase1.hxx>
1175 +#endif
1176 +#ifndef _CPPUHELPER_IMPLBASE2_HXX_
1177 +#include <cppuhelper/implbase2.hxx>
1178 +#endif
1179 +#ifndef _CPPUHELPER_WEAK_HXX_
1180 +#include <cppuhelper/weak.hxx>
1181 +#endif
1182 +#ifndef _CPPUHELPER_FACTORY_HXX_
1183 +#include <cppuhelper/factory.hxx>
1184 +#endif
1185 +
1186 +#include <com/sun/star/uno/Reference.h>
1187 +#include <com/sun/star/uno/RuntimeException.hpp>
1188 +#include <com/sun/star/lang/XMultiServiceFactory.hpp>
1189 +#include <com/sun/star/lang/XComponent.hpp>
1190 +#include <com/sun/star/registry/XRegistryKey.hpp>
1191 +#include <com/sun/star/lang/XComponent.hpp>
1192 +#include <com/sun/star/lang/XServiceInfo.hpp>
1193 +#include <com/sun/star/awt/Rectangle.hpp>
1194 +#include <com/sun/star/awt/KeyModifier.hpp>
1195 +#include <com/sun/star/awt/MouseButton.hpp>
1196 +#include <com/sun/star/media/XManager.hpp>
1197 +
1198 +#define WM_GRAPHNOTIFY (WM_USER + 567)
1199 +
1200 +#endif // _GSTCOMMOM_HXX
1201 --- /dev/null 2006-08-13 17:52:05.000000000 +0200
1202 +++ avmedia/source/gstreamer/gstframegrabber.cxx 2006-08-22 11:38:56.000000000 +0200
1203 @@ -0,0 +1,244 @@
1204 +/*************************************************************************
1205 + *
1206 + * OpenOffice.org - a multi-platform office productivity suite
1207 + *
1208 + * $RCSfile$
1209 + *
1210 + * $Revision: 7654 $
1211 + *
1212 + * last change: $Author: rodo $ $Date: 2006-09-19 09:24:25 +0100 (Tue, 19 Sep 2006) $
1213 + *
1214 + * The Contents of this file are made available subject to
1215 + * the terms of GNU Lesser General Public License Version 2.1.
1216 + *
1217 + *
1218 + * GNU Lesser General Public License Version 2.1
1219 + * =============================================
1220 + * Copyright 2005 by Sun Microsystems, Inc.
1221 + * 901 San Antonio Road, Palo Alto, CA 94303, USA
1222 + *
1223 + * This library is free software; you can redistribute it and/or
1224 + * modify it under the terms of the GNU Lesser General Public
1225 + * License version 2.1, as published by the Free Software Foundation.
1226 + *
1227 + * This library is distributed in the hope that it will be useful,
1228 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1229 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1230 + * Lesser General Public License for more details.
1231 + *
1232 + * You should have received a copy of the GNU Lesser General Public
1233 + * License along with this library; if not, write to the Free Software
1234 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1235 + * MA 02111-1307 USA
1236 + *
1237 + ************************************************************************/
1238 +
1239 +#include <tools/prewin.h>
1240 +#include <windows.h>
1241 +#include <objbase.h>
1242 +#include <strmif.h>
1243 +#include <Amvideo.h>
1244 +#include <Qedit.h>
1245 +#include <uuids.h>
1246 +#include <tools/postwin.h>
1247 +
1248 +#include "framegrabber.hxx"
1249 +#include "player.hxx"
1250 +
1251 +#include <tools/stream.hxx>
1252 +#include <vcl/graph.hxx>
1253 +#include <unotools/localfilehelper.hxx>
1254 +
1255 +#define AVMEDIA_GST_FRAMEGRABBER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.FrameGrabber_GStreamer"
1256 +#define AVMEDIA_GST_FRAMEGRABBER_SERVICENAME "com.sun.star.media.FrameGrabber_GStreamer"
1257 +
1258 +using namespace ::com::sun::star;
1259 +
1260 +namespace avmedia { namespace gstreamer {
1261 +
1262 +// ----------------
1263 +// - FrameGrabber -
1264 +// ----------------
1265 +
1266 +FrameGrabber::FrameGrabber( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
1267 + mxMgr( rxMgr )
1268 +{
1269 + ::CoInitialize( NULL );
1270 +}
1271 +
1272 +// ------------------------------------------------------------------------------
1273 +
1274 +FrameGrabber::~FrameGrabber()
1275 +{
1276 + ::CoUninitialize();
1277 +}
1278 +
1279 +// ------------------------------------------------------------------------------
1280 +
1281 +IMediaDet* FrameGrabber::implCreateMediaDet( const ::rtl::OUString& rURL ) const
1282 +{
1283 + IMediaDet* pDet = NULL;
1284 +
1285 + if( SUCCEEDED( CoCreateInstance( CLSID_MediaDet, NULL, CLSCTX_INPROC_SERVER, IID_IMediaDet, (void**) &pDet ) ) )
1286 + {
1287 + String aLocalStr;
1288 +
1289 + if( ::utl::LocalFileHelper::ConvertURLToPhysicalName( rURL, aLocalStr ) && aLocalStr.Len() )
1290 + {
1291 + if( !SUCCEEDED( pDet->put_Filename( ::SysAllocString( aLocalStr.GetBuffer() ) ) ) )
1292 + {
1293 + pDet->Release();
1294 + pDet = NULL;
1295 + }
1296 + }
1297 + }
1298 +
1299 + return pDet;
1300 +}
1301 +
1302 +// ------------------------------------------------------------------------------
1303 +
1304 +bool FrameGrabber::create( const ::rtl::OUString& rURL )
1305 +{
1306 + // just check if a MediaDet interface can be created with the given URL
1307 + IMediaDet* pDet = implCreateMediaDet( rURL );
1308 +
1309 + if( pDet )
1310 + {
1311 + maURL = rURL;
1312 + pDet->Release();
1313 + pDet = NULL;
1314 + }
1315 + else
1316 + maURL = ::rtl::OUString();
1317 +
1318 + return( maURL.getLength() > 0 );
1319 +}
1320 +
1321 +// ------------------------------------------------------------------------------
1322 +
1323 +uno::Reference< graphic::XGraphic > SAL_CALL FrameGrabber::grabFrame( double fMediaTime )
1324 + throw (uno::RuntimeException)
1325 +{
1326 + uno::Reference< graphic::XGraphic > xRet;
1327 + IMediaDet* pDet = implCreateMediaDet( maURL );
1328 +
1329 + if( pDet )
1330 + {
1331 + double fLength;
1332 + long nStreamCount;
1333 + bool bFound = false;
1334 +
1335 + if( SUCCEEDED( pDet->get_OutputStreams( &nStreamCount ) ) )
1336 + {
1337 + for( long n = 0; ( n < nStreamCount ) && !bFound; ++n )
1338 + {
1339 + GUID aMajorType;
1340 +
1341 + if( SUCCEEDED( pDet->put_CurrentStream( n ) ) &&
1342 + SUCCEEDED( pDet->get_StreamType( &aMajorType ) ) &&
1343 + ( aMajorType == MEDIATYPE_Video ) )
1344 + {
1345 + bFound = true;
1346 + }
1347 + }
1348 + }
1349 +
1350 + if( bFound &&
1351 + ( S_OK == pDet->get_StreamLength( &fLength ) ) &&
1352 + ( fLength > 0.0 ) && ( fMediaTime >= 0.0 ) && ( fMediaTime <= fLength ) )
1353 + {
1354 + AM_MEDIA_TYPE aMediaType;
1355 + long nWidth = 0, nHeight = 0, nSize = 0;
1356 +
1357 + if( SUCCEEDED( pDet->get_StreamMediaType( &aMediaType ) ) )
1358 + {
1359 + if( ( aMediaType.formattype == FORMAT_VideoInfo ) &&
1360 + ( aMediaType.cbFormat >= sizeof( VIDEOINFOHEADER ) ) )
1361 + {
1362 + VIDEOINFOHEADER* pVih = reinterpret_cast< VIDEOINFOHEADER* >( aMediaType.pbFormat );
1363 +
1364 + nWidth = pVih->bmiHeader.biWidth;
1365 + nHeight = pVih->bmiHeader.biHeight;
1366 +
1367 + if( nHeight < 0 )
1368 + nHeight *= -1;
1369 + }
1370 +
1371 + if( aMediaType.cbFormat != 0 )
1372 + {
1373 + ::CoTaskMemFree( (PVOID) aMediaType.pbFormat );
1374 + aMediaType.cbFormat = 0;
1375 + aMediaType.pbFormat = NULL;
1376 + }
1377 +
1378 + if( aMediaType.pUnk != NULL )
1379 + {
1380 + aMediaType.pUnk->Release();
1381 + aMediaType.pUnk = NULL;
1382 + }
1383 + }
1384 +
1385 + if( ( nWidth > 0 ) && ( nHeight > 0 ) &&
1386 + SUCCEEDED( pDet->GetBitmapBits( 0, &nSize, NULL, nWidth, nHeight ) ) &&
1387 + ( nSize > 0 ) )
1388 + {
1389 + char* pBuffer = new char[ nSize ];
1390 +
1391 + try
1392 + {
1393 + if( SUCCEEDED( pDet->GetBitmapBits( fMediaTime, NULL, pBuffer, nWidth, nHeight ) ) )
1394 + {
1395 + SvMemoryStream aMemStm( pBuffer, nSize, STREAM_READ | STREAM_WRITE );
1396 + Bitmap aBmp;
1397 +
1398 + if( aBmp.Read( aMemStm, false ) && !aBmp.IsEmpty() )
1399 + {
1400 + const Graphic aGraphic( aBmp );
1401 + xRet = aGraphic.GetXGraphic();
1402 + }
1403 + }
1404 + }
1405 + catch( ... )
1406 + {
1407 + }
1408 +
1409 + delete [] pBuffer;
1410 + }
1411 + }
1412 +
1413 + pDet->Release();
1414 + }
1415 +
1416 + return xRet;
1417 +}
1418 +
1419 +// ------------------------------------------------------------------------------
1420 +
1421 +::rtl::OUString SAL_CALL FrameGrabber::getImplementationName( )
1422 + throw (uno::RuntimeException)
1423 +{
1424 + return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GST_FRAMEGRABBER_IMPLEMENTATIONNAME ) );
1425 +}
1426 +
1427 +// ------------------------------------------------------------------------------
1428 +
1429 +sal_Bool SAL_CALL FrameGrabber::supportsService( const ::rtl::OUString& ServiceName )
1430 + throw (uno::RuntimeException)
1431 +{
1432 + return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( AVMEDIA_GST_FRAMEGRABBER_SERVICENAME ) );
1433 +}
1434 +
1435 +// ------------------------------------------------------------------------------
1436 +
1437 +uno::Sequence< ::rtl::OUString > SAL_CALL FrameGrabber::getSupportedServiceNames( )
1438 + throw (uno::RuntimeException)
1439 +{
1440 + uno::Sequence< ::rtl::OUString > aRet(1);
1441 + aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( AVMEDIA_GST_FRAMEGRABBER_SERVICENAME ) );
1442 +
1443 + return aRet;
1444 +}
1445 +
1446 +} // namespace gstreamer
1447 +} // namespace avmedia
1448 --- /dev/null 2006-08-13 17:52:05.000000000 +0200
1449 +++ avmedia/source/gstreamer/gstframegrabber.hxx 2006-08-22 11:38:56.000000000 +0200
1450 @@ -0,0 +1,78 @@
1451 +/*************************************************************************
1452 + *
1453 + * OpenOffice.org - a multi-platform office productivity suite
1454 + *
1455 + * $RCSfile$
1456 + *
1457 + * $Revision: 7654 $
1458 + *
1459 + * last change: $Author: rodo $ $Date: 2006-09-19 09:24:25 +0100 (Tue, 19 Sep 2006) $
1460 + *
1461 + * The Contents of this file are made available subject to
1462 + * the terms of GNU Lesser General Public License Version 2.1.
1463 + *
1464 + *
1465 + * GNU Lesser General Public License Version 2.1
1466 + * =============================================
1467 + * Copyright 2005 by Sun Microsystems, Inc.
1468 + * 901 San Antonio Road, Palo Alto, CA 94303, USA
1469 + *
1470 + * This library is free software; you can redistribute it and/or
1471 + * modify it under the terms of the GNU Lesser General Public
1472 + * License version 2.1, as published by the Free Software Foundation.
1473 + *
1474 + * This library is distributed in the hope that it will be useful,
1475 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1476 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1477 + * Lesser General Public License for more details.
1478 + *
1479 + * You should have received a copy of the GNU Lesser General Public
1480 + * License along with this library; if not, write to the Free Software
1481 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1482 + * MA 02111-1307 USA
1483 + *
1484 + ************************************************************************/
1485 +
1486 +#ifndef _FRAMEGRABBER_HXX
1487 +#define _FRAMEGRABBER_HXX
1488 +
1489 +#include "gstcommon.hxx"
1490 +
1491 +#ifndef _COM_SUN_STAR_MEDIA_XFRAMEGRABBER_HDL_
1492 +#include "com/sun/star/media/XFrameGrabber.hdl"
1493 +#endif
1494 +
1495 +namespace avmedia { namespace gstreamer {
1496 +
1497 +// ----------------
1498 +// - FrameGrabber -
1499 +// ----------------
1500 +
1501 +class FrameGrabber : public ::cppu::WeakImplHelper2 < ::com::sun::star::media::XFrameGrabber,
1502 + ::com::sun::star::lang::XServiceInfo >
1503 +{
1504 +public:
1505 +
1506 + FrameGrabber( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxMgr );
1507 + ~FrameGrabber();
1508 +
1509 + bool create( const ::rtl::OUString& rURL );
1510 +
1511 + // XFrameGrabber
1512 + virtual ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > SAL_CALL grabFrame( double fMediaTime ) throw (::com::sun::star::uno::RuntimeException);
1513 +
1514 + // XServiceInfo
1515 + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
1516 + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
1517 + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
1518 +
1519 +private:
1520 +
1521 + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMgr;
1522 + ::rtl::OUString maURL;
1523 +};
1524 +
1525 +} // namespace gstreamer
1526 +} // namespace avmedia
1527 +
1528 +#endif // _FRAMEGRABBER_HXX
1529 --- /dev/null 2006-09-07 16:53:33.000000000 +0200
1530 +++ avmedia/source/gstreamer/gstmanager.cxx 2006-09-22 14:57:17.000000000 +0200
1531 @@ -0,0 +1,114 @@
1532 +/*************************************************************************
1533 + *
1534 + * OpenOffice.org - a multi-platform office productivity suite
1535 + *
1536 + * $RCSfile$
1537 + *
1538 + * $Revision: 7691 $
1539 + *
1540 + * last change: $Author: rodo $ $Date: 2006-09-22 14:01:46 +0100 (Fri, 22 Sep 2006) $
1541 + *
1542 + * The Contents of this file are made available subject to
1543 + * the terms of GNU Lesser General Public License Version 2.1.
1544 + *
1545 + *
1546 + * GNU Lesser General Public License Version 2.1
1547 + * =============================================
1548 + * Copyright 2005 by Sun Microsystems, Inc.
1549 + * 901 San Antonio Road, Palo Alto, CA 94303, USA
1550 + *
1551 + * This library is free software; you can redistribute it and/or
1552 + * modify it under the terms of the GNU Lesser General Public
1553 + * License version 2.1, as published by the Free Software Foundation.
1554 + *
1555 + * This library is distributed in the hope that it will be useful,
1556 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1557 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1558 + * Lesser General Public License for more details.
1559 + *
1560 + * You should have received a copy of the GNU Lesser General Public
1561 + * License along with this library; if not, write to the Free Software
1562 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1563 + * MA 02111-1307 USA
1564 + *
1565 + ************************************************************************/
1566 +
1567 +#include "gstmanager.hxx"
1568 +#include "gstplayer.hxx"
1569 +
1570 +#include <tools/urlobj.hxx>
1571 +
1572 +#define AVMEDIA_GST_MANAGER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Manager_GStreamer"
1573 +#define AVMEDIA_GST_MANAGER_SERVICENAME "com.sun.star.media.Manager"
1574 +
1575 +#if DEBUG
1576 +#define DBG OSL_TRACE
1577 +#else
1578 +#define DBG(...)
1579 +#endif
1580 +
1581 +using namespace ::com::sun::star;
1582 +
1583 +namespace avmedia { namespace gstreamer {
1584 +// ----------------
1585 +// - Manager -
1586 +// ----------------
1587 +
1588 +Manager::Manager( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
1589 + mxMgr( rxMgr )
1590 +{
1591 + DBG( "avmediagst: Manager::Manager" );
1592 +}
1593 +
1594 +// ------------------------------------------------------------------------------
1595 +
1596 +Manager::~Manager()
1597 +{
1598 +}
1599 +
1600 +// ------------------------------------------------------------------------------
1601 +
1602 +uno::Reference< media::XPlayer > SAL_CALL Manager::createPlayer( const ::rtl::OUString& rURL )
1603 + throw (uno::RuntimeException)
1604 +{
1605 + Player* pPlayer( new Player( mxMgr ) );
1606 + uno::Reference< media::XPlayer > xRet( pPlayer );
1607 + const INetURLObject aURL( rURL );
1608 +
1609 + DBG( "avmediagst: Manager::createPlayer" );
1610 +
1611 + if( !pPlayer->create( aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) ) )
1612 + xRet = uno::Reference< media::XPlayer >();
1613 +
1614 + return xRet;
1615 +}
1616 +
1617 +// ------------------------------------------------------------------------------
1618 +
1619 +::rtl::OUString SAL_CALL Manager::getImplementationName( )
1620 + throw (uno::RuntimeException)
1621 +{
1622 + return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GST_MANAGER_IMPLEMENTATIONNAME ) );
1623 +}
1624 +
1625 +// ------------------------------------------------------------------------------
1626 +
1627 +sal_Bool SAL_CALL Manager::supportsService( const ::rtl::OUString& ServiceName )
1628 + throw (uno::RuntimeException)
1629 +{
1630 + return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( AVMEDIA_GST_MANAGER_SERVICENAME ) );
1631 +}
1632 +
1633 +// ------------------------------------------------------------------------------
1634 +
1635 +uno::Sequence< ::rtl::OUString > SAL_CALL Manager::getSupportedServiceNames( )
1636 + throw (uno::RuntimeException)
1637 +{
1638 + uno::Sequence< ::rtl::OUString > aRet(1);
1639 + aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( AVMEDIA_GST_MANAGER_SERVICENAME ) );
1640 +
1641 + return aRet;
1642 +}
1643 +
1644 +} // namespace gstreamer
1645 +} // namespace avmedia
1646 --- /dev/null 2006-08-13 17:52:05.000000000 +0200
1647 +++ avmedia/source/gstreamer/gstmanager.hxx 2006-08-22 11:38:56.000000000 +0200
1648 @@ -0,0 +1,74 @@
1649 +/*************************************************************************
1650 + *
1651 + * OpenOffice.org - a multi-platform office productivity suite
1652 + *
1653 + * $RCSfile$
1654 + *
1655 + * $Revision: 7654 $
1656 + *
1657 + * last change: $Author: rodo $ $Date: 2006-09-19 09:24:25 +0100 (Tue, 19 Sep 2006) $
1658 + *
1659 + * The Contents of this file are made available subject to
1660 + * the terms of GNU Lesser General Public License Version 2.1.
1661 + *
1662 + *
1663 + * GNU Lesser General Public License Version 2.1
1664 + * =============================================
1665 + * Copyright 2005 by Sun Microsystems, Inc.
1666 + * 901 San Antonio Road, Palo Alto, CA 94303, USA
1667 + *
1668 + * This library is free software; you can redistribute it and/or
1669 + * modify it under the terms of the GNU Lesser General Public
1670 + * License version 2.1, as published by the Free Software Foundation.
1671 + *
1672 + * This library is distributed in the hope that it will be useful,
1673 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1674 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1675 + * Lesser General Public License for more details.
1676 + *
1677 + * You should have received a copy of the GNU Lesser General Public
1678 + * License along with this library; if not, write to the Free Software
1679 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1680 + * MA 02111-1307 USA
1681 + *
1682 + ************************************************************************/
1683 +
1684 +#ifndef _MANAGER_HXX
1685 +#define _MANAGER_HXX
1686 +
1687 +#include "gstcommon.hxx"
1688 +
1689 +#ifndef _COM_SUN_STAR_MEDIA_XMANAGER_HDL_
1690 +#include "com/sun/star/media/XManager.hdl"
1691 +#endif
1692 +
1693 +// -----------
1694 +// - Manager -
1695 +// -----------
1696 +
1697 +namespace avmedia { namespace gstreamer {
1698 +
1699 +class Manager : public ::cppu::WeakImplHelper2 < ::com::sun::star::media::XManager,
1700 + ::com::sun::star::lang::XServiceInfo >
1701 +{
1702 +public:
1703 +
1704 + Manager( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxMgr );
1705 + ~Manager();
1706 +
1707 + // XManager
1708 + virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > SAL_CALL createPlayer( const ::rtl::OUString& aURL ) throw (::com::sun::star::uno::RuntimeException);
1709 +
1710 + // XServiceInfo
1711 + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
1712 + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
1713 + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
1714 +private:
1715 +
1716 + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMgr;
1717 +};
1718 +
1719 +} // namespace gstreamer
1720 +} // namespace avmedia
1721 +
1722 +#endif // _MANAGER_HXX
1723 --- /dev/null 2006-09-07 16:53:33.000000000 +0200
1724 +++ avmedia/source/gstreamer/gstplayer.cxx 2006-09-22 14:56:04.000000000 +0200
1725 @@ -0,0 +1,628 @@
1726 +/*************************************************************************
1727 + *
1728 + * OpenOffice.org - a multi-platform office productivity suite
1729 + *
1730 + * $RCSfile$
1731 + *
1732 + * $Revision: 7691 $
1733 + *
1734 + * last change: $Author: rodo $ $Date: 2006-09-22 14:01:46 +0100 (Fri, 22 Sep 2006) $
1735 + *
1736 + * The Contents of this file are made available subject to
1737 + * the terms of GNU Lesser General Public License Version 2.1.
1738 + *
1739 + *
1740 + * GNU Lesser General Public License Version 2.1
1741 + * =============================================
1742 + * Copyright 2005 by Sun Microsystems, Inc.
1743 + * 901 San Antonio Road, Palo Alto, CA 94303, USA
1744 + *
1745 + * This library is free software; you can redistribute it and/or
1746 + * modify it under the terms of the GNU Lesser General Public
1747 + * License version 2.1, as published by the Free Software Foundation.
1748 + *
1749 + * This library is distributed in the hope that it will be useful,
1750 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1751 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1752 + * Lesser General Public License for more details.
1753 + *
1754 + * You should have received a copy of the GNU Lesser General Public
1755 + * License along with this library; if not, write to the Free Software
1756 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1757 + * MA 02111-1307 USA
1758 + *
1759 + ************************************************************************/
1760 +
1761 +#include <math.h>
1762 +
1763 +#ifndef __RTL_USTRING_
1764 +#include <rtl/string.hxx>
1765 +#endif
1766 +
1767 +#include "gstplayer.hxx"
1768 +#include "gstframegrabber.hxx"
1769 +#include "gstwindow.hxx"
1770 +
1771 +#include <gst/interfaces/xoverlay.h>
1772 +
1773 +#define AVMEDIA_GST_PLAYER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Player_GStreamer"
1774 +#define AVMEDIA_GST_PLAYER_SERVICENAME "com.sun.star.media.Player_GStreamer"
1775 +
1776 +#if DEBUG
1777 +#define DBG OSL_TRACE
1778 +#else
1779 +#define DBG(...)
1780 +#endif
1781 +
1782 +using namespace ::com::sun::star;
1783 +
1784 +namespace avmedia { namespace gstreamer {
1785 +
1786 +// ----------------
1787 +// - Player -
1788 +// ----------------
1789 +
1790 +Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
1791 + mxMgr( rxMgr ),
1792 + mpPlaybin( NULL ),
1793 + mbFakeVideo (sal_False ),
1794 + mnUnmutedVolume( 0 ),
1795 + mbMuted( false ),
1796 + mbLooping( false ),
1797 + mbInitialized( false ),
1798 + mnWindowID( 0 ),
1799 + mpXOverlay( NULL ),
1800 + mnDuration( 0 ),
1801 + mnWidth( 0 ),
1802 + mnHeight( 0 ),
1803 + maSizeCondition( osl_createCondition() )
1804 +{
1805 + // Initialize GStreamer library
1806 + int argc = 1;
1807 + char *arguments[] = { "openoffice.org" };
1808 + char** argv = arguments;
1809 + GError* pError = NULL;
1810 +
1811 + mbInitialized = gst_init_check( &argc, &argv, &pError );
1812 +
1813 + if (pError != NULL)
1814 + // TODO: thow an exception?
1815 + g_error_free (pError);
1816 +}
1817 +
1818 +// ------------------------------------------------------------------------------
1819 +
1820 +Player::~Player()
1821 +{
1822 + // Release the elements and pipeline
1823 + if( mbInitialized )
1824 + {
1825 + if( mpPlaybin )
1826 + {
1827 + gst_element_set_state( mpPlaybin, GST_STATE_NULL );
1828 + gst_object_unref( GST_OBJECT( mpPlaybin ) );
1829 +
1830 + mpPlaybin = NULL;
1831 + }
1832 +
1833 + if( mpXOverlay ) {
1834 + g_object_unref( G_OBJECT ( mpXOverlay ) );
1835 + mpXOverlay = NULL;
1836 + }
1837 + }
1838 +}
1839 +
1840 +// ------------------------------------------------------------------------------
1841 +
1842 +static gboolean gst_pipeline_bus_callback( GstBus *, GstMessage *message, gpointer data )
1843 +{
1844 + Player* pPlayer = (Player *) data;
1845 +
1846 + pPlayer->processMessage( message );
1847 +
1848 + return TRUE;
1849 +}
1850 +
1851 +static GstBusSyncReply gst_pipeline_bus_sync_handler( GstBus *, GstMessage * message, gpointer data )
1852 +{
1853 + Player* pPlayer = (Player *) data;
1854 +
1855 + return pPlayer->processSyncMessage( message );
1856 +}
1857 +
1858 +void Player::processMessage( GstMessage *message )
1859 +{
1860 + //DBG ( "gst message received: src name: %s structure type: %s",
1861 + // gst_object_get_name (message->src),
1862 + // message->structure ? gst_structure_get_name (message->structure) : "<none>");
1863 +
1864 + switch( GST_MESSAGE_TYPE( message ) ) {
1865 + case GST_MESSAGE_EOS:
1866 + //DBG( "EOS, reset state to NULL" );
1867 + gst_element_set_state( mpPlaybin, GST_STATE_READY );
1868 + break;
1869 + case GST_MESSAGE_STATE_CHANGED:
1870 + if( message->src == GST_OBJECT( mpPlaybin ) ) {
1871 + GstState newstate, pendingstate;
1872 +
1873 + gst_message_parse_state_changed (message, NULL, &newstate, &pendingstate);
1874 +
1875 + if( newstate == GST_STATE_PAUSED &&
1876 + pendingstate == GST_STATE_VOID_PENDING &&
1877 + mpXOverlay )
1878 + gst_x_overlay_expose( mpXOverlay );
1879 + }
1880 + default:
1881 + break;
1882 + }
1883 +}
1884 +
1885 +GstBusSyncReply Player::processSyncMessage( GstMessage *message )
1886 +{
1887 + DBG( "%p processSyncMessage", this );
1888 + //DBG ( "gst message received: src name: %s structure type: %s",
1889 + // gst_object_get_name (message->src),
1890 + // message->structure ? gst_structure_get_name (message->structure) : "<none>");
1891 +
1892 + if (message->structure) {
1893 + if( !strcmp( gst_structure_get_name( message->structure ), "prepare-xwindow-id" ) && mnWindowID != 0 ) {
1894 + if( mpXOverlay )
1895 + g_object_unref( G_OBJECT ( mpXOverlay ) );
1896 + mpXOverlay = GST_X_OVERLAY( GST_MESSAGE_SRC( message ) );
1897 + g_object_ref( G_OBJECT ( mpXOverlay ) );
1898 + gst_x_overlay_set_xwindow_id( mpXOverlay, mnWindowID );
1899 + return GST_BUS_DROP;
1900 + }
1901 + }
1902 +
1903 + if( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_STATE_CHANGED ) {
1904 + if( message->src == GST_OBJECT( mpPlaybin ) ) {
1905 + GstState newstate, pendingstate;
1906 +
1907 + gst_message_parse_state_changed (message, NULL, &newstate, &pendingstate);
1908 +
1909 + DBG( "%p state change received, new state %d", this, newstate );
1910 + if( newstate == GST_STATE_PAUSED &&
1911 + pendingstate == GST_STATE_VOID_PENDING ) {
1912 +
1913 + DBG( "%p change to paused received", this );
1914 +
1915 + if( mnDuration == 0) {
1916 + GstFormat format = GST_FORMAT_TIME;
1917 + gint64 gst_duration = 0L;
1918 +
1919 + if( gst_element_query_duration( mpPlaybin, &format, &gst_duration) && format == GST_FORMAT_TIME && gst_duration > 0L )
1920 + mnDuration = gst_duration;
1921 + }
1922 +
1923 + if( mnWidth == 0 ) {
1924 + GList *pStreamInfo = NULL;
1925 +
1926 + g_object_get( G_OBJECT( mpPlaybin ), "stream-info", &pStreamInfo, NULL );
1927 +
1928 + for ( ; pStreamInfo != NULL; pStreamInfo = pStreamInfo->next) {
1929 + GObject *pInfo = G_OBJECT( pStreamInfo->data );
1930 +
1931 + if( !pInfo )
1932 + continue;
1933 +
1934 + int nType;
1935 + g_object_get( pInfo, "type", &nType, NULL );
1936 + GEnumValue *pValue = g_enum_get_value( G_PARAM_SPEC_ENUM( g_object_class_find_property( G_OBJECT_GET_CLASS( pInfo ), "type" ) )->enum_class,
1937 + nType );
1938 +
1939 + if( !g_strcasecmp( pValue->value_nick, "video" ) ) {
1940 + GstStructure *pStructure;
1941 + GstPad *pPad;
1942 +
1943 + g_object_get( pInfo, "object", &pPad, NULL );
1944 + pStructure = gst_caps_get_structure( GST_PAD_CAPS( pPad ), 0 );
1945 + if( pStructure ) {
1946 + gst_structure_get_int( pStructure, "width", &mnWidth );
1947 + gst_structure_get_int( pStructure, "height", &mnHeight );
1948 + DBG( "queried size: %d x %d", mnWidth, mnHeight );
1949 + }
1950 + }
1951 + }
1952 +
1953 + sal_Bool aSuccess = osl_setCondition( maSizeCondition );
1954 + DBG( "%p set condition result: %d", this, aSuccess );
1955 + }
1956 + }
1957 + }