Commit Graph

118 Commits

Author SHA1 Message Date
4bd7fa9e2e This is patch [#17773] seq plugin crash -> use not converted to float with ibuf1 & ibuf2
Submitted by Rob Hausauer (paprmh) 

See the link for details:
https://projects.blender.org/tracker/index.php?func=detail&aid=17773&group_id=9&atid=127

Kent
2008-10-09 04:11:33 +00:00
1adc2dce52 Correct half of rev16483, which does typecasts which are not nice on Win64 plattform 2008-09-12 12:33:55 +00:00
Ken Hughes
3e5549213c Add some typecasts for intptr_t and uintptr_t value to fix gcc warnings. 2008-09-12 05:27:02 +00:00
cb89decfdc Merge of first part of changes from the apricot branch, especially
the features that are needed to run the game. Compile tested with
scons, make, but not cmake, that seems to have an issue not related
to these changes. The changes include:

* GLSL support in the viewport and game engine, enable in the game
  menu in textured draw mode.
* Synced and merged part of the duplicated blender and gameengine/
  gameplayer drawing code.
* Further refactoring of game engine drawing code, especially mesh
  storage changed a lot.
* Optimizations in game engine armatures to avoid recomputations.
* A python function to get the framerate estimate in game.

* An option take object color into account in materials.
* An option to restrict shadow casters to a lamp's layers.
* Increase from 10 to 18 texture slots for materials, lamps, word.
  An extra texture slot shows up once the last slot is used.

* Memory limit for undo, not enabled by default yet because it
  needs the .B.blend to be changed.
* Multiple undo for image painting.

* An offset for dupligroups, so not all objects in a group have to
  be at the origin.
2008-09-04 20:51:28 +00:00
9f803439c7 == Sequencer ==
Fixes: [#17347] Scaling problems when "Use Translate" is enabled for image strip
2008-07-26 06:43:36 +00:00
17dc66c1d1 [#17288] Sequencer API: added a method, a geter/setter, the blend modes dict and corrected a malfunction on audio strips blend mode
from Luca Bonavita (mindrones) 

- adds the method "rebuildProxy()" useful to rebuild all the strips at once:   the user can do

- adds a BlendModes dictionary under the Blender.Scene.Sequence module: the  user can see the blending option with

- adds the getter/setter "blendMode"

- adds a function seq_can_blend in sequence.c as requested by Peter, useful for these purposes but also to solve a bug
after

- the bug is you can apply blend modes to an audio strip that doesn't make sense: changed the test and now you cannot
assign blend mode other than Replace to audio strips

Omitted DNA cleanup part since its only whitespace and Id prefer to have a useful "svn blame" output.
2008-07-07 04:17:03 +00:00
abda1a9ec1 == FFMPEG ==
Added serious interlacing to movies opened using ffmpeg.
(Other video decoders to be done)

Rational: deinterlacing, if done seriously _has_ to be done
in YUV-space. Since internal interface first converts data
to RGB we are pretty much lost (and fall back to IMB_filtery
in that case).
2008-06-22 20:39:41 +00:00
20b4bf4aba == Sequencer ==
Fixes
[#12106] Memory leak in sequencer (>10MB/frame)

in parts: inner contents of meta strips are freed up after calculation
making more room for the cache.

Actually have to think of a mechanism, that remembers, which output
frames are asked for and caches only those.
2008-05-25 16:07:32 +00:00
38ffd41bf0 == Sequencer ==
This fixes:
[#11745] Blender crashes when changing Scenes on Sequencer`s Strips

containing:

- last_seq was set to null by scene-render
- button handling wasn't very robust (didn't check for null)
- REDRAWBUTSSCENE was missing
2008-05-20 21:30:16 +00:00
591a478670 == Sequencer ==
This fixes:
[11750] "Translate" stops working when offset > image size
2008-05-19 06:14:57 +00:00
9b2dcab02d == Sequencer ==
This fixes: [#11642] VSE: crash with Speed Control and play head

Special sequence update (holding down left mouse button on a strip)
could lead to a crash when using the speed control effect, since
we didn't check properly for valid cfras (and therefore if
TStripElem is null... )
2008-05-16 21:04:06 +00:00
7a58893bf2 fix for [#10581] 2.46 RC3 Sequence editor on OSX renders PNG files as black/empty
use BLI_join_dirfile which makes sure the slashes are there.
2008-05-08 20:10:50 +00:00
Ken Hughes
17db1906c8 Fix potential buffer overflow (found by Cyril Brulebois). 2008-05-05 00:42:18 +00:00
175a0c34f7 == Sequencer ==
Fixed order of operation in 3-way color corrector according to

http://rebelsguide.com/forum/viewtopic.php?t=810

Thanks to mindrones for pointing this out.
2008-05-04 15:39:27 +00:00
110f927c63 Changed frame numbering to only alter hashes if they are in the filename (not the directory name) to fix bug [#10566] File Open Dialog replaces '#' with '0' in directory names.
removed frame numbering from BLI_convertstringcode into its own function (BLI_convertstringframe), many uses of BLI_convertstringcode were passing dummy frames values anyway.
in cases where adding the current frame number to a filename is needed run BLI_convertstringframe(...) after BLI_convertstringcode(...)

There are some cases Im not sure BLI_convertstringframe is needed, these have been commented as todo, but at least have the same functionality they used to.
2008-05-04 09:41:15 +00:00
Chris Want
5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
f057a38e98 Changed BLI_convertstringcode to replace any number of hashes with the frame number.
somefile_##.png -> somefile_01.png
somefile_########-image.png -> somefile_00000001-image.png

Before, A hash at the end of the string would be replaced by a number with 4 characters. This is still default if no #'s are in the string, so nothing has changed.

To use this function from the python api use scene.render.getFrameFilename()
2008-04-11 15:47:21 +00:00
fa5d0309b2 setting the blend value for a sequencer strip would crash when the strip had both char and float buffers. 2008-04-08 15:07:40 +00:00
cc4858cde0 == Sequencer ==
Added IPO-support to color strip.
2008-03-30 14:23:15 +00:00
8d2a0a566f == Sequencer ==
A lot of fixes for anim_startofs / anim_endofs:
* crashed when striplen was 0 and startstill / endstill still in use
* made it work for Audio (HD and RAM)
* made it work for Image Sequences
* added a new cutting tool, that uses anim_startofs / endofs instead of
  startofs / endofs. This is now the default and called "hard cut"
* moved old cutting method to "Shift-K" and renamed it "soft cut"
2008-03-24 17:35:01 +00:00
0f8fee26cf == Sequencer ==
Additional fixes to metastrip handling. The code is now even shorter :)
2008-03-23 18:32:20 +00:00
c52695bafe == Sequencer / ImBuf ==
Fixed a long standing bug in IMB_dupImBuf: refcounter should be better 0
within the duplicated ImBuf...

Finally removed this strange STRIPELEM_META mumbo jumbo.

On a way to asset management: made METAs behave like true input strips:
* proxying should work
* input filter options should work (including transform and color balance :)
* IPOs now work in replace mode
2008-03-23 17:56:44 +00:00
4165ae42cc == Sequencer ==
Fixed a bug with ibuf caching on startstill / endstill.

The new blend modes happened to force start and endstill to be rendered
over and over again. This could get very annoying especially on scene
strips.

We therefore now cache the original start or endstill ibuf seperately
and copy on demand.
2008-03-02 14:54:45 +00:00
Ken Hughes
91d44a9124 Allow sequencer to use scene strips with no camera, if those scenes also use
the sequencer.  This time, actually apply patch to the file before submmiting.
2008-02-21 01:35:20 +00:00
Ken Hughes
cf2e89c285 Allow sequencer to use scene strips with no camera, if those scenes also use the sequencer. 2008-02-21 01:19:42 +00:00
1648060132 Bugfix [#8196] sequencer crash when adding scene without camera
added checks for a camera
Also added an error ob bake if there are no active objects.
2008-02-17 20:44:07 +00:00
a37d9470a7 == Sequencer ==
Since mul changed into master gain slider, slightly raised limit, so that
color balance doesn't get too dark.

Fixed crash in float->float color balance.
2008-02-09 23:11:05 +00:00
264778b74b == Sequencer ==
Fixes [8222] Sequencer crash

Scene didn't work without a proxy anymore... :)
2008-02-06 22:36:34 +00:00
1dea2f1f72 inverted the uv header mesh-sync-selection button, added face/vert selection popdown when sync selection is enabled. 2008-02-04 22:01:23 +00:00
Nathan Letwory
1425e0da6d * define snprintf as _snprintf on windows. 2008-02-04 06:35:16 +00:00
54c1535606 == Sequencer ==
Silently destroyed a null check in free_sequence in last commit,
getting old... :)
2008-02-03 19:10:19 +00:00
7e7f5628c3 == Sequencer ==
This adds low resolution proxy support to the blender sequencer, so
that even HD editing should be possible on slower machines.

The proxies are stored as directories of JPEG-files and are only
activated, if you use preview-resolution rendering.

For your final render, just switch back to full resolution and
the original files are used again.

It enables even proxying of whole effect pipelines and scene-strips
(but you have to your own custom directory for file storage then, 
since blender has no filename, which could be taken as a sensible
default directory reference)
2008-02-03 18:58:46 +00:00
Ken Hughes
ae2619407b Remove in-line variable declaration in color_balance_byte_float(), not ISO
C90 compliant.  Also fix warning about pointer parameter mismatch.
2008-02-03 01:28:23 +00:00
3a6a3d0389 == Sequencer ==
New feature: color balance aka 3-way-color-correction aka lift/gamma/gain 
on input (folded into byte -> float conversion, so _very_ fast in that case).
Interface is inspired from Rebel CC (but not as complete yet, you can't
choose white and black points right now).

Bugfix: clamp color seperated wave form display correctly.
2008-02-02 23:28:50 +00:00
19e37e4a35 == Sequencer / Imbuf ==
Added a faster linear interpolation scaler to IMB_scaleImBuf.
Only handles common cases when we either

enlarge both, width and height or
shrink  both, width and height

but that is pretty fast:
* does only blit once instead of two passes like the old code
  (fewer cache misses)
* uses fixed point integer arithmetic for byte buffers
* doesn't branch in tight loops
  Should be comparable in speed to the ImBuf ..._fast functions at least 
  for byte-buffers.

For the rather seldom situations that e.g. width is enlarged and height 
is shrunken, the old code is still in use.

-------
Also small fix in sequencer: free float buffers on read now.
2008-01-30 15:41:02 +00:00
fd9db17021 == Sequencer ==
This fixes several crashes with the new tstripdata_start/endstill.
dupli_seq was cleaned up as well as add_scene_strip (moved to a 
seperate function)

New features: 
* opacity can be used in replace blend mode
* the scene within in a scene track can be changed now within the panel

Also:
* [#7842] Note: setCodec in FormatTab disappeared...
  should be fixed by this. (Not a big change, so I just commit and see :)
  http://peter.schlaile.de/blender/sequencer/codec_buttons.diff
2008-01-29 12:26:42 +00:00
87eaa637c5 == Sequencer ==
Fixed two issues with the sequencer:
* using blend modes with startstill / endstill in combination with IPOs
  failed, since there was no room to store the composited result. 
  (It was stored into the same TStripElem thereby effectively disabling the
  effect of the IPO)
  If you have no idea, what this is all about:
  A common case was: use a single PNG as a title, extrude and try to fade 
  in / out using IPOs. 
* startstill / endstill are always displayed, so that one can change them
  also on movie-strips and scene-strips.
2008-01-28 21:24:08 +00:00
223b4132a0 == Sequencer ==
Fixed crash with metastrips where ibufs where null...
2008-01-20 08:59:06 +00:00
8d6fe8e2ca == Sequencer ==
forgot to swap input on "Over drop".
2008-01-02 22:45:38 +00:00
4aef3b6440 == Sequencer ==
Fixed:

* crash with gamma tabs and blend modes
* crash on rect -> rect_float blend mode input
* alpha over and under have now input swapped
2008-01-02 22:39:46 +00:00
f081a56ebc == Sequencer ==
Bugfix: fixes crash if lowest strip was in blend mode "ALPHA OVER" (combined
with other blends above)
2008-01-02 21:36:51 +00:00
fb3ed9e0a5 == Sequencer ==
Added some additional NULL-checks. (se->ibuf can be null, shame on me :)
2008-01-01 18:38:41 +00:00
3ef896a945 == Sequencer ==
Attention! Rather large sequencer rewrite:

* Implemented layer blending using implicit effects. (works like layers 
  in "The Gimp" or Photoshop.)
* Fixed Space-Bar start-stop in preview windows.
  You can start playback using spacebar within a preview-window and it _works_!
* Fixed Flip Y (didn't work for float)
* Fixed premul (didn't work for float)
* Added IPOs to _all_ tracks. In blend-mode REPLACE it drives the 
  "mul"-parameter in all other blend modes it drives the effect.
* you can meta single tracks.
* moved "mute track" from "M" to "Shift-M"
* added "Shift-L" for "lock track"
* changed inner workings for Metas. Now all ImBufs have to use the
  reference counting mechanism. (Only interesting for coders :)

!!! Really important change, that affects current files!

Since you can mute tracks and now there is real layer blending capabilities
in place, I changed the silly behaviour that chose the output track.

Old behaviour: if we have an effect track visible, use the uppermost effect
track. If there is _no_ effect track visible, use the lowest input track.

New behaviour: always use the uppermost track. With blend modes active: 
work our way down starting from the uppermost track to the first 
"replace"-mode track. This is the way the gimp, photoshop, basically _all_
other applications work...

So if this change ruins your day: please try to fix your files using
"mute". If this doesn't work out, I can still restore the old behaviour,
but I really hope, that this is _not_ necessary!

Rational: most people won't get affected by this change, since you can't
really do anything usefull with the (old) sequencer without at least one 
effect track and then you are on the safe side...
2008-01-01 11:44:42 +00:00
6d13d44734 == Sequencer ==
Moved status info bar into panels. It was always shown on the wrong place...
Added anim-startofs and anim-endofs, so that one can specify the range of 
_input_ that should be used. 

There is a subtle difference to start-ofs and end-ofs,
which will show, when you use "Reverse Frames" or "Speed Control". Both
effects operate on the input-range and _not_ on the display range! Now
you can control both in a comfortable way. Only thing missing: a button
to copy start-ofs and end-ofs to anim-startofs and anim-endofs.
(Andy: that was the feature you missed, when storyboarding with the sequencer
and the speed control effect :)

Also: added File-Name and Dir-Name to redirect input as needed.
2007-12-26 19:30:49 +00:00
6e812d5901 == Sequencer ==
* Make Lock flag work for metastrips
* Fixes: flags are cleared on exit of metastrips
* Fixes (hopefully): red picture on big endian
2007-12-25 20:31:07 +00:00
a3a88f9591 == Sequencer (includes a little bit of Peach :) ==
Reworked image / movie loading, to add the following features:

- Mute strip
- Lock strip (peach request :)
- Crop / Translate _before_ image rescaling
- N-keys editing of start, startofs, endofs, startstill, endstill

Added (currently disabled) data structures for

- proxy support
- strip blend modes (currently only "REPLACE" works, which always did :)

Planed:

- automatic FPS rescaling
- command keys to lock/mute a bunch of selected strips 
  (which would complete the peach request to lock tracks)

Caveats: now the N-keys dialog is four-tabbed. I think, we should move those
tabs into the panels dialog in the future...
2007-12-25 15:31:36 +00:00
146b0aec14 == Sequencer ==
Fixed IPO calculation for threaded prefetch rendering. (do_seq_ipo used
global CFRA tststs...)
2007-12-23 21:27:12 +00:00
4018dfd28f == Sequencer ==
Added malloc mutex handling. (Sorry, had to patch threads.c a bit,
since otherwise scene tracks will completely screw things up...)
2007-11-25 16:35:33 +00:00
dc6ac56d31 General cleanup in sequencer:
- Seperated StripData into
  StripData
  TStripData
  where StripData holds only image-filenames and TStripData holds
  the working information needed for ImBuf caching.
  => Large drop in memory usage, if you used a lot of movie and meta strips.
  => Fixed bugs in "duplicate" on the way (imbufs where copied around without
     taking reference counting seriously...)
  => Code is much cleaner now
- Added defines for TStripData->ok
  Finally figured out, what the magic values ment and named them properly :)
- Got rid of Sequence->curelem.
  Reason: very bad idea(tm) for multi threading with more than one render
  thread. Still not there, but this was a real show stopper on the way.
2007-11-18 17:39:30 +00:00
1ca2823b54 made sequence handle calculation into a function, (lines were being copied around) 2007-10-17 23:24:09 +00:00