Parent Directory
|
Revision Log
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 | + } |