Commit Graph

51 Commits

Author SHA1 Message Date
Sergey Sharybin
0b03785eb5 Make Blender compilable with FFmpeg-3.0
While it's not something we'll be using for the official release,
it's nice to support new libraries at least on "it compiles" level,
so it's not that many frustrated developers around.

Nexyon, please have a look into Audaspace changes :)
2016-02-16 12:34:15 +01:00
Jörg Müller
3cd36f85b0 Fix T46815: Changing playback setting makes blender crash
Copied the fix from upstream audaspace.
2015-12-02 10:23:07 +01:00
Campbell Barton
eaaeae4699 Cleanup: spelling 2014-10-23 10:38:38 +02:00
Sergey Sharybin
5ac1b38b4b Support planar sample formats in audio mixdown
Now libav-10 should work for output of ac3 container.
2014-02-28 15:16:30 +06:00
Sergey Sharybin
e82b5f61fe Attempt to fix mixdown when building without sndfile
This case was handled specially in writeffmpeg.c and seems it makes
audio export happy in all cases now.

TODO: libav-10 doesn't work with AC3 codec yet because this bloody
library ONLY supports FLTP format and FFmpeg ONLY supports FLT.

This is not fun guy, it really isn't! Where's your conscience??

CC: nexyon
2014-02-28 14:51:03 +06:00
Sergey Sharybin
32d5cc247f Fix T38768: New "audio" button in 2.70 release does not 'mixdown' audio
Issue was caused by the way how audio output works from audaspace.
Now made it much closer to what's happening in ffmpeg.c and writeffmpeg.c.

Also fixed issues with incompatible combinations of codecs and formats
in mixdown settings.
2014-02-28 12:26:16 +06:00
Anton Khirnov
2b858b45c2 audaspace: use new libavcodec audio encoding API where available 2014-01-28 14:25:40 +06:00
Anton Khirnov
8c3b27ce27 Change libavcodec CODEC_ID_* to AV_CODEC_ID_*
CODEC_ID_* have been replaced with AV_CODEC_ID_* in new libavcodec
versions.

Update the code to use those new identifiers.

Added a compatibility code to ffmpeg_compat.h
2014-01-28 14:00:31 +06:00
Campbell Barton
a2a99bbc17 edit to r58425, BLI_math is available here, better not copy,paste from linearrgb_to_srgb.
also remove redundant check in AUD_FFMPEGReader::seek.
2013-07-20 00:35:41 +00:00
Sergey Sharybin
349b71fd02 Bring back support of FFmpeg >= 0.7
After planar codecs support minimal FFmpeg was
bumped to 0.10 which was not so much nice because
it was only released only later last year.

Didn't find a way to make compatibility code local
in ffmpeg_compat, so there're some ifdefs in
audaspace and writeffmpeg.

Not entirely happy, but having a bit of ifdefs in
code better than lots of real PITA for platform
maintainers.
2013-04-19 17:23:08 +00:00
Joerg Mueller
97ce56dc76 Bugfix for [#34845] FFmpeg: .wav file playback crashes Blender since r55693 2013-04-02 15:48:09 +00:00
Joerg Mueller
271a7a5554 Audaspace: adding support for ffmpeg planar formats, breaks support for older ffmpeg versions. 2013-04-01 09:46:35 +00:00
Sergey Sharybin
d7e427beff Fix/workaround for newer FFmpeg 1.1.3 and MP3 decoder
FFmpeg is now using S16P sampler for MP3 which is not actually
supported by audaspace, so request for S16 sampler instead.
2013-02-28 18:28:08 +00:00
Sergey Sharybin
aab01c86cf Patch #33837: ffmpeg1.1 and libav9.1 compatibility update
Patch makes it possible to compile blender with recent ffmpeg
and libav libraries, mainly by getting rid of deprecated API.

Original patch by Campbell Barton with own modifications to
support compilation with older ffmpeg versions.

This patch could break compatibility of FFV1 videos playing
back in older players, mainly because of alpha support changes.
Preserving compatibility with such players became a headache
and think it's high time to get rid of workarounds here.
2013-01-12 12:51:10 +00:00
Joerg Mueller
5a8d5f77af Audaspace:
Replacing AUD_Reference with boost::shared_ptr.
2012-11-05 14:24:35 +00:00
Sergey Sharybin
0d64e050ea Reduce amount of deprecated symbols used from FFmpeg
This switches some areas of Blender which are related on FFmpeg stuff
from deprecated symbols to currently supported one.

Pretty straightforward changes based on documentation of FFmpeg's
API which symbols should be now used.

This should make Blender compatible with recent FFmpeg 0.11.

Should be no functional changes.
2012-06-18 10:29:11 +00:00
Campbell Barton
2b7ca2304a unify include guard defines, __$FILENAME__
without the underscores these clogged up the namespace for autocompleation which was annoying.
2012-02-17 18:59:41 +00:00
Campbell Barton
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
Campbell Barton
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Joerg Mueller
02d2472baa 3D Audio GSoC:
Code documentation.

Also:
* Fix: rlint for MSVC.
* Minor other small fixes/changes.
2011-08-16 13:00:55 +00:00
Joerg Mueller
a672ab5e73 3D Audio GSoC:
Improved waveform drawing in the sequencer.

* Drawing the waveform of a sequencer strip is now independent from whether the sound is cached or not.
* Improved drawing of the waveform in the sequencer (especially speed!).
* Making it possible to vertically zoom more in the sequencer to better see the waveform for lipsync.
* Fixed a bug which crashed blender on loading a sound file via ffmpeg.
2011-08-09 14:10:32 +00:00
Joerg Mueller
2d884fc035 3D Audio GSoC:
* Pepper depends on ffmpeg 0.7.1 or higher now, windows and mac build systems set to ffmpeg-0.8
* Fixed orientation retrieval in OpenAL device code.
* Added stopAll() method to AUD_IDevice (also for Python) and call it on BGE exit
* Changed BGE to use audaspace via native C++ instead over the C API.
* Made AUD_SequencerFactory and AUD_SequencerEntry thread safe.
* Changed sound caching into a flag which fixes problems on file loading, especially with undo.
* Removed unused parameter from sound_mute_scene_sound
* Fixed bug: changing FPS didn't update the sequencer sound positions.
* Fixed bug: Properties of sequencer strips weren't set correctly.
* Minor warning fixes.
2011-08-07 11:54:58 +00:00
Joerg Mueller
c334bf69a7 3D Audio GSoC:
Mixdown functionality.

* Mixdown possible via libsndfile and ffmpeg!
* Fixed some ffmpeg deprecation warnings
* Mixdown UI only shows working Container, Codec and Format combinations!
* Minor bugs and warnings fixed
2011-08-06 17:57:20 +00:00
Joerg Mueller
044887b5a4 3D Audio GSoC:
- Created Handle classes
- Changed Reference counting completely
- Fixing some streaming bugs
- Completely disabled OpenAL Buffered Factories (they were unused anyway)
2011-06-21 20:21:43 +00:00
Joerg Mueller
cc71dcc218 3D Audio GSoC:
Streaming improved.
2011-06-21 20:14:53 +00:00
Joerg Mueller
f8212f4e03 3D Audio GSoC:
Removing unneeded const from Factory::createReader.
2011-06-14 21:22:22 +00:00
Joerg Mueller
d8974a60f6 3D Audio GSoC:
Changed Readers to top-down architecture instead of bottom-up.
2011-06-14 12:13:19 +00:00
Joerg Mueller
d1c542ce05 3D Audio GSoC:
Memory management improvements.
2011-06-03 23:28:57 +00:00
Peter Schlaile
42121590f4 == FFMPEG ==
Added central compatibility header file, which enables blender to compile
against very old ffmpeg versions as well as very new versions using the
*NEW* API. (Old API functions are simulated using macros and inline functions)

Added a whole lot of additional checks, tested against 6 different versions
down the timeline, hopefully, now finally all is well.
2011-05-27 23:33:40 +00:00
Peter Schlaile
4b9a63c6d3 == FFMPEG ==
* removed a lot of old cruft code for ancient ffmpeg versions
* made it compile again against latest ffmpeg / libav GIT
  (also shouldn't break distro ffmpegs, since those API changes
  have been introduced over a year ago. If it nevertheless breaks,
  please send me an email)
2011-05-26 21:57:02 +00:00
Joerg Mueller
5f08bfd46c Fix for [#26990] Loading file w packed audio crashes
FFMPEG was reallocating buffers it didn't own and wasn't allowed to. This workaround should work now flawlessly.

Also fixing a bug regarding unpacking sounds, the UI stated unpacking to //audio/filename while it was unpacking to //sounds/filename
2011-04-18 14:24:36 +00:00
Joerg Mueller
e37dc17991 Fix for [#26652] "Audio Muted" in Time Line Editor is not working
-> The feature was completely missing o_O
Also fixed an ffmpeg seeking bug.
2011-04-10 22:40:37 +00:00
Nathan Letwory
45ed5f53f6 doxgyen: audaspace tagged. 2011-02-25 10:21:56 +00:00
Joerg Mueller
020c03bc05 Relicensing audaspace under GPL 2 or later. 2011-02-18 23:47:37 +00:00
Campbell Barton
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
Peter Schlaile
1b18ea5823 == FFMPEG ==
This fixes a rather subtle seeking issue with ffmpeg and Sony 
XDCAM-footage.

Problem is: MPEG2 streams within an MP4 container can contain a start 
time - at several places. There is a starttime within the video 
and audio streams and one within the container.

FFMpeg commandline tool only uses the container starttime and we used 
the stream starttime. 

The world would be a better place, if those two timestamps always match 
up, since in XDCAM-footage those two starttimes differ in 4 
frames - and the container has the right one.

We now always use the container start time as ffmpeg commandline tool 
does (in the hope, that there is a good explaination for this and this 
is the right thing(tm) to do).

I tested this also with HDV footage, which seems to work with the new 
code, too.

Additional fix: disabled seek_by_bytes again, since it will only work 
correctly, if ffmpeg guessed the HDV bitrate right (which it doesn't). 
If you have seeking issues with HDV and have an older version of ffmpeg 
installed, please upgrade, newer versions have some fixes in them.
2010-11-01 18:13:10 +00:00
Peter Schlaile
7122b534fa == Audaspace / FFMPEG ==
Audaspace audio seek code wasn't taking start_time into account.
(Most common symptom: HDV MPEG2TS files always start audio playback at the 
beginning regardless of seek position.)
2010-10-16 15:01:01 +00:00
Joerg Mueller
db38a7f2cc Audaspace: Fix for ppl with outdated ffmpeg. 2010-08-16 18:13:26 +00:00
Joerg Mueller
ce44d63ae1 Audaspace:
* Added an error string for audaspace exceptions.
* Fixed PyAPI exceptions.
* Minor bugfixes.
* Added a name parameter to the Jack device, so that one can define an own name via Python.
2010-08-03 08:07:21 +00:00
Joerg Mueller
7296600434 Audaspace: HUGE Refactor.
Some points of the refactor not sorted by importance:

* Fixed immutability of readers and factories (there are exceptions...)
* Fixed copy constructors and = operators
* Removed messaging system
* Removed reader types
* Added const where possible
* Using initalisers when possible
* Avoided use of pointers when possible
* Removed AUD_NEW and AUD_DELETE macros
* Removed useless NULL pointer checks
* Fixed exception catching
* Fixed some yet unknown bugs
* Lots of other stuff
2010-07-28 09:36:03 +00:00
Sergey Sharybin
d33cef6974 Fix for compilation with newer ffmpeg library
Error was cased by undefined UINT64_C in stdint.h for c++
programs. As I understand from ffmpeg mailing list the simpliest
solution is to define __STDC_CONSTANT_MACROS before including
ffmpeg libraries. There already was some amout of such definitions in
the code and I've tested this with newer and older ffmpeg
libraries -- this should work and should be safe, but maybe
there is better way of fixing this problem.
2010-05-16 19:41:49 +00:00
Brecht Van Lommel
9a85013692 Merge various small changes from render branch:
* Division by zero fix for TNT SVD code.
* Sound fix, in case ffmpeg decode fails, don't use the samples.
* Fix for incorrect bounds of transformed objects in new raytracing code.
* Gave memory arena's a name used for allocations for easier memory
  usage debugging.
* Dupligroup no_draw option was using layers but not restrict view/render
  setting. (not a bugfix exactly but would do display list context switching
  while drawing for no reason).
* Fix objects instanced on hair particles not giving consistent results
  when the object is transformed.
* New math functions: madd_v4_v4fl, len_squared_v3v3, interp_v4_v4v4v4,
  mul_v4_m4v4, SH and form factor functions, box_minmax_bounds_m4.
* mul_m4_m4m4 and mul_m3_m3m3 now accept the same pointers for multiple
  arguments.
* endjob callback for WM jobs system.
* Geometry node uv/color layer now has search list/autocomplete.
* Various small buildsystem tweaks, not strictly needed yet in trunk.
2010-04-15 10:28:32 +00:00
Joerg Mueller
174eccf078 Huge new year audio commit!
* Refactored the whole audaspace library to use float as sample format over all readers.
* Added new Readers like the linear resampler, envelope, lowpass, highpass and butterworth.
* Note: The butterworth filter isn't working correctly, some bug in there... Maybe also true for the envelope.
* Added a sound to f-curve operator that behaves mostly like the soundtracker script of technoestupido.
2010-01-01 05:09:30 +00:00
Nathan Letwory
3d64d65ad9 * clean out some warnings (unrefenced vars mainly) 2009-09-06 14:32:02 +00:00
Joerg Mueller
4ba6dbce76 Replaced G.sce by Main.name in sound.c.
I hoped for it to resolve the bug of loading sounds with relative paths didn't work, but Main.name isn't set before the sounds are loaded, so the bug resists!
Someone who is into file loading should please fix this!
2009-08-25 15:30:04 +00:00
Diego Borghetti
9202aaa2dc Update Makefiles for audaspace.
This add support for: sdl, ffmpeg, openal, jack and sndfile.
We have new options:
	WITH_OPENAL, default false
	WITH_JACK, default false
	WITH_SNDFILE, default false

and with this:
	NAN_OPENAL, default /usr

	NAN_JACK, default /usr
	NAN_JACKCFLAGS, default -I$(NAN_JACK)/include/jack
	NAN_JACKLIBS, default $(NAN_JACK)/lib/libjack.a

	NAN_SNDFILE, default /usr
	NAN_SNDFILECFLAGS, default -I$(NAN_SNDFILE)/include
	NAN_SNDFILELIBS, default $(NAN_SNDFILE)/lib/libsndfile.

Also add two new option on source/Makefile for jack and sndfile libs,
but only for linux, so let me know for other OS.
2009-08-21 22:56:26 +00:00
Joerg Mueller
f248b25152 Audio file loading backend libsndfile! 2009-08-21 19:39:28 +00:00
Guillermo S. Romero
fcce333a08 Add jack subdir makefile and standarize audaspace sub-lib names.
Jack support not enabled for now.
2009-08-16 22:48:30 +00:00
Joerg Mueller
1ee26d45b5 Added jack audio support, building with cmake only currently, feel free to add scons and maybe cmake. 2009-08-16 14:53:11 +00:00
Guillermo S. Romero
1b34950160 SVN maintenance. 2009-08-09 23:23:19 +00:00