summaryrefslogtreecommitdiff
path: root/drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2014-09-15 11:33:30 -0300
committerJuan Linietsky <reduzio@gmail.com>2014-09-15 11:33:30 -0300
commit8cab401d08f8e25aa9b2dc710204785858ff3dbb (patch)
tree1a4cec868f937fb24d340ee33fbeba2f1c6fa9f2 /drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h
parent1a2cb755e2d8b9d59178f36702f6dff7235b9088 (diff)
3D Physics Rework, Other Stuff
-=-=-=-=-=-=-=-=-=-=-=-=-=- 3D Physics: -Fixed "Bounce" parameter in 3D -Fixed bug affecting Area (sometims it would not detect properly) -Vehicle Body has seen heavy work -Added Query API for doing space queries in 3D. Needs some docs though. -Added JOINTS! Adapted Bullet Joints: and created easy gizmos for setting them up: -PinJoint -HingeJoint (with motor) -SliderJoint -ConeTwistJoint -Generic6DOFJoint -Added OBJECT PICKING! based on the new query API. Any physics object now (Area or Body) has the following signals and virtual functions: -input_event (mouse or multitouch input over the body) -mouse_enter (mouse entered the body area) -mouse_exit (mouse exited body area) For Area it needs to be activated manually, as it isn't by default (ray goes thru). Other: -Begun working on Windows 8 (RT) port. Compiles but does not work yet. -Added TheoraPlayer library for improved to-texture and portable video support. -Fixed a few bugs in the renderer, collada importer, collada exporter, etc.
Diffstat (limited to 'drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h')
-rw-r--r--drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h b/drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h
new file mode 100644
index 0000000000..03f9a3d964
--- /dev/null
+++ b/drivers/theoraplayer/src/FFmpeg/TheoraVideoClip_FFmpeg.h
@@ -0,0 +1,53 @@
+/************************************************************************************
+This source file is part of the Theora Video Playback Library
+For latest info, see http://libtheoraplayer.googlecode.com
+*************************************************************************************
+Copyright (c) 2008-2014 Kresimir Spes (kspes@cateia.com)
+This program is free software; you can redistribute it and/or modify it under
+the terms of the BSD license: http://opensource.org/licenses/BSD-3-Clause
+*************************************************************************************/
+#if defined(__FFMPEG) && !defined(_TheoraVideoClip_FFmpeg_h)
+#define _TheoraVideoClip_FFmpeg_h
+
+#include "TheoraAudioPacketQueue.h"
+#include "TheoraVideoClip.h"
+
+struct AVFormatContext;
+struct AVCodecContext;
+struct AVCodec;
+struct AVFrame;
+struct AVIOContext;
+
+class TheoraVideoClip_FFmpeg : public TheoraVideoClip, public TheoraAudioPacketQueue
+{
+protected:
+ bool mLoaded;
+
+ AVFormatContext* mFormatContext;
+ AVCodecContext* mCodecContext;
+ AVIOContext* mAvioContext;
+ AVCodec* mCodec;
+ AVFrame* mFrame;
+ unsigned char* mInputBuffer;
+ int mVideoStreamIndex;
+ int mFrameNumber;
+
+ void unload();
+ void doSeek();
+public:
+ TheoraVideoClip_FFmpeg(TheoraDataSource* data_source,
+ TheoraOutputMode output_mode,
+ int nPrecachedFrames,
+ bool usePower2Stride);
+ ~TheoraVideoClip_FFmpeg();
+
+ bool _readData();
+ bool decodeNextFrame();
+ void _restart();
+ void load(TheoraDataSource* source);
+ float decodeAudio();
+ void decodedAudioCheck();
+ std::string getDecoderName() { return "FFmpeg"; }
+};
+
+#endif