Commit Graph

70 Commits

Author SHA1 Message Date
Campbell Barton
e7f1033dcb style cleanup: for loop macros, also add a config file for uncrustify source formatter (able to get very close to our own style guide). 2012-04-15 07:24:14 +00:00
Sergey Sharybin
40c667e75e Clean-up logic of behavior of refresh/reload operators in sequencer
After discussion with Campbell we found much nicer solution which
keeps operation with data much more clear:

- Refresh Sequencer is totally harmless, do not touch actual data
  and just removes everything from cache
- Reload Strip will reload data and adjust it's length for all
  selected strips without affecting on length of strip itself
- Reload Strip and Adjust length will do the same but will also
  adjust length of strip itself.
2012-03-26 22:26:30 +00:00
Sergey Sharybin
adbe628a1b Fix crash of Refresh Sequencer when some Movie / MovieClip strips doesn't have animation opened 2012-03-26 15:57:00 +00:00
Peter Schlaile
d8623da305 == Sequencer ==
This adds movieclip input support to the sequencer, thereby making
undistorted and stabilized footage available without a seperate render step.

Also: removes some old cruft code from the sequencer:

* new_tstripdata wasn't used anymore
* StripElems were allocated for SCENE strips on full length, wasting memory
  Added a comment, that hopefully makes things a little bit clearer:
  StripElems are *only* usefull for MOVIE + IMAGE strips for all other strip
  types one can set this pointer to NULL. (If that should cause otherwise
  problems, then the code that doesn't check for NULL is to blame!)
2012-03-21 18:02:29 +00:00
Campbell Barton
89a963fb7f style cleanup: comment blocks 2012-03-09 18:28:30 +00:00
Campbell Barton
17786b3b3e building without python works again, cleanup bmesh include paths (cmake and scons). 2012-03-08 03:25:53 +00:00
Campbell Barton
541d239cdc fix for error in r44711, needed to update sequencer callback.
also quiet some warnings.
2012-03-07 19:19:56 +00:00
Campbell Barton
ea13ec1699 Spelling Cleanup 2012-03-01 12:20:18 +00:00
Campbell Barton
7cc206ddca Code Cleanup: remove non existing function declarations.
added some missing functions too - which are not used yep but should be there for api completeness.
* CDDM_set_mloop
* CDDM_set_mpoly
* BLI_mempool_count
2012-02-29 15:00:37 +00:00
Sergey Sharybin
d8bdd4497e Refactor of proxies build operators
Split proxy build operator into three parts:
- Prepare context (IMB_anim_index_rebuild_context) which prepares all
  needed data and stores it in an anonymous structure used by specific
  builder lately.
- Build proxies/timecodes into temporary files (IMB_anim_index_rebuild)
  This function will build all selected proxies/timecodes into a temporary
  files so old proxies will be still available during building.
- Finish building proxies (IMB_anim_index_rebuild_finish) which copies
  temporary files over old proxies filed and releases all resources used
  by a context.

Context creation and finishing building happens in a main thread so
it's easy and safe to close all opened handles of proxies files and
refresh cache after rebuilding is finished.

This should finally fix #30315: Temporary proxy files are not erased and old proxys are not updated if the proxy is built more then once (windows)
2012-02-29 12:08:26 +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
Sergey Sharybin
51bada696f Longer names support for all ID and other object names
This commit extends limit of ID and objects to 64 (it means 63 meaning
characters and 1 for zero-terminator). CustomData layers names are also
extended.
Changed DNA structures and all places where length constants were hardcoded.

All names which are "generating" from ID block should be limited by MAX_ID_NAME-2,
all non-id names now has got own define called MAX_NAME which should be used all
over for non-id names to make further name migration stuff easier.

All name fields in DNA now have comment with constant which corresponds to
hardcoded numeric value which should make it easier to further update this
limits or even switch to non-hardcoded values in DNA.

Special thanks to Campbell who helped figuring out some issues and helped a lot
in finding all cases where hardcoded valued were still used in code.

Both of forwards and backwards compatibility is stored with blender versions newer
than January 5, 2011. Older versions had issue with placing null-terminator to
DNA strings on file load which will lead to some unpredictable behavior or even
crashes.
2012-01-11 08:51:06 +00:00
Campbell Barton
f62ad8f69b remove header text:
"The Blender Foundation also sells licenses for use in proprietary software under the Blender Licens"

also remove NaN references from files that have been added since blender went opensource.
2011-11-29 10:54:47 +00:00
Campbell Barton
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
Campbell Barton
33accdb725 use (const char*) rather than (char*) where possible.
also removed some unused function definitons.
2011-11-05 11:04:28 +00:00
Campbell Barton
62f2218554 macro formatting & remve some unused code. 2011-11-05 05:44:52 +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
Campbell Barton
5f62f5c6fe move maxseq define into DNA. 2011-09-11 10:35:26 +00:00
Joerg Mueller
43ab8e8624 * Merge trunk up to r39790.
* Subversion bump (also for init_userdef_do_versions).
* Minor fix for compilation without ffmpeg.
2011-08-30 08:22:03 +00:00
Peter Schlaile
c07bd1439a == Sequencer ==
This patch adds:

* support for proxy building again (missing feature from Blender 2.49)
  additionally to the way, Blender 2.49 worked, you can select several
  strips at once and make Blender build proxies in the background (using
  the job system)
  Also a new thing: movie proxies are now build into AVI files, and
  the proxy system is moved into ImBuf-library, so that other parts
  of blender can also benefit from it.
  
* Timecode support: to fix seeking issues with files, that have
  a) varying frame rates
  b) very large GOP lengths
  c) are broken inbetween
  d) use different time code tracks
  
  the proxy builder can now also build timecode indices, which are
  used (optionally) for seeking.
  
  For the first time, it is possible, to do frame exact seeking on
  all file types.
  
* Support for different video-streams in one video file (can be
  selected in sequencer, other parts of blender can also use it,
  but UI has to be added accordingly)

* IMPORTANT: this patch *requires* ffmpeg 0.7 or newer, since
  older versions don't support the pkt_pts field, that is essential
  for building timecode indices.
  
  Windows and Mac libs are already updated, Linux-users have to build
  their own ffmpeg verions until distros keep up.
2011-08-28 14:46:03 +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
9077b8bffc 3D Audio GSoC:
Main: Complete rewrite of the sequencer related audio code to support 3D Audio objects later and especially adressing the animation system problems (see mailing list if interested).
Note: Animation is not working yet, so with this commit volume animation doesn't work anymore, that's the next step.

Minor things:
* Changed AUD_Reference behaviour a little to be more usage safe.
* Fixed bug in AUD_I3DHandle: Missing virtual destructor
* Fixed enmus in AUD_Space.h
* Fixed a warning in rna_scene.c
* Removed an unneeded call in rna_sound.c
2011-07-26 13:56:31 +00:00
M.G. Kishalmi
8246f94317 better error reporting for seq_swap() 2011-05-28 09:59:34 +00:00
Peter Schlaile
70b832589a [PATCH] == Sequencer ==
This patch adds adjustment layer tracks to the sequencer and does some cleaning
up of the code.

What's an adjustment layer?

Think of it as an effect track, which takes no explicit input, but alters
the output of everything down the layer stack.

So: you can add several stages of color correction with it.

And: you can even use it with metastrips to group several adjustments together.
2011-05-16 17:14:47 +00:00
Campbell Barton
e7ffd32a61 use camera render argument to avoid temp overwriting the scene camera.
also fix for mistake with rendering stars from previous commit.
2011-04-30 05:42:37 +00:00
Peter Schlaile
163dbded30 == Sequencer ==
Fixes Fix for [#25713] VSE shows and renders wrong straight alpha gradient even after convert to pr
(see revision: 34540, fix by Janne)

By not breaking the seqcache interface API.

Added comments to header file, so that it is easier to understand, how the
cache API is supposed to work.
2011-04-17 10:05:27 +00:00
Campbell Barton
6d3546069c fix [#26713] Video Sequencer: Audio mute after making meta strip copy/paste
was not recursively restoring sound strips on paste.

also found many duplicate functions were defining the transform mode as in int but getting as an enum, use enum for both now.
2011-04-01 08:51:12 +00:00
Campbell Barton
627c764e3c bug [#26329] Project Paint not working
we cant ensure that a requested buffer can be allocated so report opengl errors when failing to allocate the buffer (rather then printing to console).

this is common enough and generic error isn't too helpful to users.
2011-03-06 23:12:12 +00:00
Nathan Letwory
22638e22ea doxygen: blenkernel under core as module. 2011-02-18 13:05:18 +00:00
Campbell Barton
27e812d697 Clear some compiler warnings by commenting some functions, adding others to headers.
left in warnings where functions obviously need to get ported to 2.5x still.

Also, render stamp seq strip works again.
2011-02-17 22:34:41 +00:00
Campbell Barton
1ad15c37aa avoid possible errors, surround bit shifted defines with brackets. 2010-12-12 01:33:12 +00:00
Campbell Barton
263830f000 Enabled GCC -Wwrite-strings warning for CMake and replaced many 'char's for 'const char's,.
Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
2010-12-03 17:05:21 +00:00
Campbell Barton
cd97253502 - added GCC warning -Wstrict-prototypes
- fixed bug in paste material, exposed by stricter warnings.
- removed/renamed various shadowed vars.
- removed BGE lamp.colour, only allow lamp.color attribute.
2010-12-03 12:30:59 +00:00
Peter Schlaile
a0517e6338 == Sequencer ==
* documented and rewrote the render interface of the sequencer.
  (now, the geometry / render_type / etc. settings are stored within a
  seperate structure called SeqRenderData that is passed within the code.)

* that fixes
  * cache problems, since the caching system didn't keep track of
    proxy files vs. final renders.
  * is a necessary step, to bring back frame blending in speed effect
    (the SeqRenderData structure elements are already there)
  * will make motion blur render options available within the sequencer!

* this patch also fixes:
  * "easy retiming" using speed effects. (in Blender 2.49, you could 
    add a speed effect and resize the source track to retime it to that
    length)
  * adds labels for the Original dimensions for Image + Movie tracks
    (worked in 2.49, too)
2010-11-21 20:00:31 +00:00
Janne Karhu
27de85af37 Fix for [#24513] VSE curves displaced from effect when source is moved numerically 2010-11-04 17:02:32 +00:00
Peter Schlaile
f890b00851 Sequencer: fix for the fix of: #23318
also known as: broken multicam strip caused by other fix.

Calculated render_size where it belongs (within the glow effect) and 
restored old functionality.

also: renamed render_size to preview_render_size at all relevant places, 
where the naming wasn't used correctly.

Hopefully it's now a little bit more clear. 

render_size := render size from scene (just rescales width/height)
preview_render_size := preview render size from sequencer preview, 
  controls the resolution and the use of sequencer proxy sources
2010-11-01 18:55:12 +00:00
Janne Karhu
97d2ca8a33 Sequence editor code cleanup
* The logic in some parts of the sequencer code was rather cryptic, so I cleaned it up a bit.
* There should be no functional changes what so ever from these changes.
2010-10-30 21:55:17 +00:00
Campbell Barton
e5fbd93cec editors/space_* build without unused args warnings 2010-10-16 08:03:28 +00:00
Campbell Barton
e88b8dac7b [#22825] Copy Scenes with Audio Strip Crash. 2010-10-04 15:31:04 +00:00
Campbell Barton
ea3be03743 ED_view3d_draw_offscreen_imbuf_simple and ED_view3d_draw_offscreen_imbuf now accept the imbuf flag so they can get the float buffer from opengl directly. 2010-08-26 23:30:15 +00:00
Brecht Van Lommel
0738ae7688 2.5: more removal of G.main. 2010-08-13 14:23:44 +00:00
Peter Schlaile
98e26b1b08 == Sequencer ==
Some cleanup on effects:

- converted interface to float cfra
- made effects return their own ImBufs, which has the following 
  advantages:
  * code in sequencer.c is a lot more readable.
  * multicam saves one memcpy of an image
  * prepares things for GPU-rendering
2010-07-25 17:19:55 +00:00
Peter Schlaile
65fcb0edcf == Sequencer ==
This patch cleans up the sequencer core by replacing the caching system
(TStripElems) with a hash based system, which is:

a) a lot faster
b) a lot more readable
c) a lot more memory conserving

The new caching system is also a good building ground for

a) sub frame precision rendering (even on scene strips)
b) multi core rendering (threaded rendering is still disabled, but can 
   be extended now to arbitrary core numbers)

I tested the code on an extensive editing session today and had no 
crashes during 4 hours of editing. So I consider it very stable.
2010-07-23 16:57:11 +00:00
Peter Schlaile
c7ce37471d == Sequencer ==
Bugfix: free_imbuf_seq() was closing IMB anim handles on nearly every 
change of RNA variables. This can be *very* slow, if you twiddle with 
parameters during playback. Especially multicam editing...

Now: we close IMB anim handles only on refresh_all() and filepath 
changes.
2010-07-19 20:01:18 +00:00
Campbell Barton
6fcacf077d - duplicating a scene now duplicates all strips (not just selected ones)
- python change, dont import 'bpy' by default, initially I thaught this would make scripting easier but it ends up being annoying when you want to register a script or if you want to import it. (more trouble then its worth to save 1 line, also not very pythonic).
2010-07-08 14:30:43 +00:00
Campbell Barton
e8be069870 duplicating a sequence strip now duplicates its fcurves 2010-07-07 16:17:18 +00:00
Campbell Barton
2a95a246ed color balance can now be animated in the sequencer. 2010-07-06 16:44:05 +00:00
Campbell Barton
7b36b2ebbb - duplicating a scene now duplicates its sequence strips too.
- bugfix for copying a scene with FFMPEG properties set (wasnt copying the ID properties, could crash blender)
- relative path option for adding sequence strips and replaceing images.
2010-06-25 12:04:04 +00:00
Campbell Barton
4c81019823 Move some sequencer functions about, no functional changes.
- Remove SEQ_DESEL, better not have a flag which includes ~, use ~SEQ_ALLSEL instead.
- Rename recurs_dupli_seq -> seqbase_dupli_recursive
- Rename deep_dupli_seq -> seq_dupli_recursive
2010-06-24 10:04:18 +00:00
Campbell Barton
72d21c35ad sequencer swap data operator.
needed for durian so we can swap out preview AVI's for EXR sequences.
2010-06-21 17:37:50 +00:00