Commit Graph

62 Commits

Author SHA1 Message Date
Robert Osfield
4c6cc601c2 Build fix 2011-06-17 08:41:56 +00:00
Robert Osfield
c547172c24 Fixed warning 2011-06-17 06:22:01 +00:00
Robert Osfield
5625c0cd8b Added m4v as a handled movie file extension 2011-03-23 14:01:58 +00:00
Robert Osfield
310a28dbee From Martin von Gagern, build fix for latest ffmpeg changes 2011-02-10 12:23:18 +00:00
Robert Osfield
244e751146 From David Fries, "The ffmpeg lockmanager was introduced in ffmpeg 52 30 1, but
later backported to 52 20 1, so add that to the version check
in ReaderWriterFFmpeg.cpp."
2010-12-12 09:40:16 +00:00
Robert Osfield
0f22d7bc3f From Ulrich Hertlein, "attached is a tiny cleanup for ReaderWriterFFmpeg that provides more accurate descriptions
for some extensions and also adds 'm2ts' for MPEG-2 transport streams.
"
2010-11-05 17:07:17 +00:00
Robert Osfield
4ced7dffc4 From Wang Rui, "additional FFmpegParameters class in the ffmpeg plugin for setting parameters before opening the video file, which benefits from getPluginStringData() as shown in the ReaderWriter implementation.
Now we can use ffmpeg to render webcam video (using the vfwcap device) under Windows:

osgmovie 0 -e ffmpeg -O "format=vfwcap frame_rate=25"

The number 0 just indicates a default device number in ffmpeg.

I think this can work under Linux, too, and should be a bit better than comparing the filename with a '/dev/' string. Just type:

./osgmovie /dev/yourcam -e ffmpeg -O "format=video4linux2 frame_rate=30 size=320x240""
2010-11-03 10:37:32 +00:00
Robert Osfield
60942d8e72 Added version check for av_lockmgr_register support. 2010-09-09 09:05:33 +00:00
Robert Osfield
4d1df397e2 From Guillaume Taze, "Here are some bugs fix :
- missing copy attribute _referenceFrame in ClipNode in copy constructor
- checked iterators against the end in osgText
- close codec context in ffmpeg plugin to avoid memory leak

"
2010-08-16 15:02:04 +00:00
Robert Osfield
74a9ccb49d From David Fries, merge from a series of related submission emails:
"enable thread locking in libavcodec

This is required for a multithreaded application using ffmpeg from
another thread."

"Prevent the audio from videos from hanging on exit if they are paused.
The video decoder already has similar logic."

"Add a way to retrieve the creation time for MPEG-4 files."

"fmpeg, improve wait for close logic

Both audio and video destructors have been succesfully using the logic,
if(isRunning())
{
  m_exit = true;
  join();
}
since it was introduced,

but the close routines are using,
m_exit = true;
if(isRunning() && waitForThreadToExit)
{
  while(isRunning()) { OpenThreads::Thread::YieldCurrentThread(); }
}
which not only is it doing an unnecessary busy wait, but it doesn't
guaranteed that the other thread has terminated, just that it has
progressed far enough that OpenThreads has set the thread status as
not running.  Like the destructor set the m_exit after checking
isRunning() to avoid the race condition of not getting to join()
because the thread was running, but isRunning() returns false.

Now that FFmpeg*close is fixed, call it from the destructor as well
to have that code in only one location."
2010-08-09 17:02:31 +00:00
Robert Osfield
0816d4f9cd From Magnus Kessler, "FFmpeg headers need __STDC_CONSTANT_MACROS defined before stdint.h is loaded.
The file FFmpegHeaders.hpp sets this definition. However, if stdint.h is
already included through other files, it won't take any effect.

Include FFmpeg headers as early as possible in order to avoid stdint.h being
included on other paths.
"
2010-06-23 14:38:49 +00:00
Robert Osfield
ecaa239288 Converted osg::notify to OSG_INFO etc. 2010-05-28 16:39:08 +00:00
Robert Osfield
4bc287cedb Added extra ffmpeg version check 2010-03-08 10:20:14 +00:00
Robert Osfield
f497cd3c24 Fixed warnings 2010-03-05 15:04:36 +00:00
Robert Osfield
6f3966038f From Serge Lages, "Here is a patch to allow setting an audio volume with the AudioSink interface, I've also modified the ffmpeg plugin code to implement the ImageStream's setVolume method with its AudioSink." 2010-01-18 12:43:02 +00:00
Robert Osfield
5d9bf9f4d5 Added virtual pause() method into osg::AudioSink to support pausing of a movie thread and it's associated audio.
Updated osgmovie plugin to use the pause support.
2010-01-07 14:35:17 +00:00
Robert Osfield
9d82266032 From Julen Garcia, "So here is the code with a proper audio sync (at least in my computer)" 2009-12-15 11:27:28 +00:00
Robert Osfield
8080f46444 From Julen Garcia,"I've been lately working also with the ffmpeg plugin and I implemented pause(), seek() and getReferenceTime(). I think that I have solved the internal clock issues (maybe not in the most elegant way :?" 2009-12-02 18:58:45 +00:00
Robert Osfield
3ef770a9ff From Rafa Gaitan, "Current ffmpeg plugin didn't support pause and seek, I have added this
functionality and I also modified osgmovie example to support "seek"."

Note from Robert Osfield, changes osgmovie to use '>' for the seek as '+' was already used in a separate submission that had been merged.
2009-11-20 14:31:11 +00:00
Robert Osfield
fe8822e496 Added check against a minimual video size of 10x10 to prevent problems with swscale reporting errors and crashing on small video dimensionsline, and those below, will be ignored--
M    ffmpeg/FFmpegImageStream.cpp
2009-08-20 14:59:00 +00:00
Robert Osfield
6e6a7c960e Added Dragger::s/getActivationModKeyMask(..) and Dragger::s/getActivationKeyEvent(...) methods to make it possible to have draggers that only respond when you press a specified modified key or standard key.
Changed the optional dragger in osgvolume to require the shift key to be pressed for the dragger to become active.
2009-07-03 19:16:53 +00:00
Robert Osfield
85456b1ac1 Fixed warning 2009-06-26 08:16:03 +00:00
Robert Osfield
d167142a59 Fixed warnings and refactored FindFFmpeg.cmake and ffmpeg plugin CMakeLists.txt scripts to better handle different instation combinations 2009-06-25 16:02:23 +00:00
Robert Osfield
c5c71f519c From Serge Lages, "Here is a little fix for the FFmpeg plugin. Previously the path computed by osgDB::findDataFile was not used, preventing loading files from directories inside the data path list." 2009-06-25 13:10:31 +00:00
Robert Osfield
085f2c19dd Fixed warning 2009-06-23 11:33:59 +00:00
Robert Osfield
719b6cf1bf Added explict search for stdint.h 2009-06-23 10:53:55 +00:00
Robert Osfield
0ab285a3ef From Jean-Sebastien Guay, changed the timing control for when no audio layer is supplied. 2009-05-08 07:46:46 +00:00
Robert Osfield
b496d220c6 Warning fixes 2009-04-23 13:42:24 +00:00
Robert Osfield
4938d5687e Quitened down warnings generated by ffmpeg headers by remove -pedantic from CMAKE_CXX_FLAGS 2009-04-22 18:22:22 +00:00
Robert Osfield
147486f57a Removed #ifdef WIN32 around #include <errno.h> to fix build under Mandrake build. 2009-04-20 19:05:59 +00:00
Robert Osfield
562f84668f From Jean Sebastien Guay, added error reporting handling of wider range of video formats. 2009-04-11 06:16:37 +00:00
Robert Osfield
ee4e2afa76 From Philip Lowman, clean up of CMake files 2009-04-09 09:23:45 +00:00
Robert Osfield
beb711a2ec Reduced the default live video feed size to accomodate reading from the Minoru stereo wecam. 2009-04-08 13:03:34 +00:00
Robert Osfield
20ad246896 Added new virtual reseveElements, setElement, getElment and addElement methods to DrawElements
to make is easier to write code that can work on DrawElementUByte, UShort or UInt.

Changed the osgTerrain::GeometryTechnique so that it automatically chooses 
the use of DrawElementUShort or DrawElementsUInt accordining to the size of the tile.
2009-03-25 11:17:21 +00:00
Robert Osfield
36b3907d79 Added support for adding .ffmpeg to filenames to force selection of ffmpeg plugin 2009-03-24 23:25:30 +00:00
Robert Osfield
3c4fc747ff From Ulrich Hertlein, "I got the following type error from gcc 4.0.1 on OS X 10.5.6:
/Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp: In member function \u2018int osgFFmpeg::FFmpegDecoderVideo::convert(AVPicture*, int, AVPicture*, int, int, int)\u2019:
/Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:245: error: invalid conversion from \u2018int\u2019 to \u2018PixelFormat\u2019
/Users/uli/Projects/osg/OpenSceneGraph/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp:245: error:   initializing argument 3 of \u2018SwsContext* sws_getContext(int, int, PixelFormat, int, int, PixelFormat, int, SwsFilter*, SwsFilter*, double*)\u2019

It expects 'src_pix_fmt' and 'dst_pix_fmt' to be of type 'PixelFormat' rather than int. The attached cast fixes this (for me).

I've also added Matroska video to the list of supported extensions"
2009-03-24 11:08:40 +00:00
Robert Osfield
9727321afe From Wang Rui, "Attached is a very small fix for the ffmpeg plugin, to build it without compiling errors on MSVC. The ffmpeg win32 pre-built tarball is downloaded at http://ffmpeg.arrozcru.org/builds/. Tested on Windows XP SP3 and Visual Studio 9, but don't know if it still workable for Unix and Mac users. :)
Please look at the .diff files for details. I have already enjoyed the latest Chinese *big* movie "Red Cliff" with the fixed ffmpeg plugin and osgmovie. :D"
2009-03-23 16:45:10 +00:00
Robert Osfield
51964a2b79 From David Callu, clean up of FindFFmpeg include paths 2009-03-23 15:48:19 +00:00
Robert Osfield
e9d4f99409 From Adrian Egli, build fix for Win32 FFmpeg 2009-03-14 15:40:41 +00:00
Robert Osfield
7994ed1eb7 changed debug info to output to INFO instaed of NOTICE. 2009-03-11 17:39:08 +00:00
Robert Osfield
b6bffdd02f From Tanguy Fautre,
Clean up of the FFmpeg plugin's class API/AudioStream API. 
Implementation of isImageTransparent().
Implementation of Image:g/setPixelAspectRatio()
2009-03-11 15:12:46 +00:00
Robert Osfield
9ddb8f65b6 Added copyright + fixed typo 2009-03-10 13:46:55 +00:00
Robert Osfield
73c2615d17 Fixed thread exit problems 2009-03-08 16:48:48 +00:00
Robert Osfield
fa14e7d5f2 Added quick proof of concept for live video streaming under linux 2009-03-05 10:57:54 +00:00
Robert Osfield
6fd4cd4933 Removed boost reference and cleaned up debug output 2009-03-04 16:03:28 +00:00
Robert Osfield
ab82553f97 Introduced double buffering of video stream to avoid tearing of image.
Removed swapBufers call and image y inversion.
2009-03-04 14:49:39 +00:00
Robert Osfield
ac8ee3792c Fixes to non swscale code path 2009-03-04 11:59:15 +00:00
Robert Osfield
d0dabd2665 Fixed img_convert usage 2009-03-04 11:46:34 +00:00
Robert Osfield
fb54fd0a69 Added support for using libswscale 2009-03-04 11:05:55 +00:00
Robert Osfield
ac49ca81ca Improved the clean up ordering 2009-03-03 20:49:46 +00:00