Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-08-29Fix T49181: Movie clip animation lost when invoking action which reloads the ↵Sergey Sharybin
clip Was a bug since the very beginning of movie clip animation support which was done on Feb 2012.
2016-08-16Rework 2D stabilizatorIchthyostega
See this page for motivation and description of concepts: https://github.com/Ichthyostega/blender/wiki See this video for UI explanation and demonstration of usage http://vimeo.com/blenderHack/stabilizerdemo This proposal attempts to improve usability of Blender's image stabilization feature for real-world footage esp. with moving and panning camera. It builds upon the feature tracking to get a measurement of 2D image movement. - Use a weighted average of movement contributions (instead of a median). - Allow for rotation compensation and zoom (image scale) compensation. - Allow to pick a different set of tracks for translation and for rotation/zoom. - Treat translation / rotation / zoom contributions systematically in a similar way. - Improve handling of partial tracking data with gaps and varying start / end points. - Have a user definable anchor frame and interpolate / extrapolate data to avoid jumping back to "neutral" position when no tracking data is available. - Support for travelling and panning shots by including an //intended// position/rotation/zoom ("target position"). The idea is for these parameters to be //animated// by the user, in order to supply an smooth, intended camera movement. This way, we can keep the image content roughly in frame even when moving completely away from the initial view. A known shortcoming is that the pivot point for rotation compensation is set to the translation compensated image center. This can produce spurious rotation on travelling shots, which needs to be compensated manually (by animating the target rotation parameter). There are several possible ways to address that problem, yet all of them are considered beyond the scope of this improvement proposal for now. Own modifications: - Restrict line length, it's really handy for split-view editing - In motion tracking we prefer fully human-readable comments, meaning we don't use doxygen with it's weird markup and comments are supposed to start with capital and end with a full stop, - Add explicit comparison of pointer to NULL. Reviewers: sergey Subscribers: kusi, kdawg, forest-house, mardy, Samoth, plasmasolutions, willolis, sebastian_k, hype, enetheru, sunboy, jta, leon_cheung Maniphest Tasks: T49036 Differential Revision: https://developer.blender.org/D583
2016-07-30Add copy/make_local to movieclip datablock.Bastien Montagne
As title says... Copying tracking data from movieclip was not the simplest thing... Reviewers: sergey Differential Revision: https://developer.blender.org/D2126
2016-06-25Cleanup: Get rid of remaining 'BKE_<id>_unlink()' functions, no more used ↵Bastien Montagne
anyway.
2016-06-22ID-Remap - Step one: core work (cleanup and rework of generic ID datablock ↵Bastien Montagne
handling). This commit changes a lot of how IDs are handled internally, especially the unlinking/freeing processes. So far, this was very fuzy, to summarize cleanly deleting or replacing a datablock was pretty much impossible, except for a few special cases. Also, unlinking was handled by each datatype, in a rather messy and prone-to-errors way (quite a few ID usages were missed or wrongly handled that way). One of the main goal of id-remap branch was to cleanup this, and fatorize ID links handling by using library_query utils to allow generic handling of those, which is now the case (now, generic ID links handling is only "knwon" from readfile.c and library_query.c). This commit also adds backends to allow live replacement and deletion of datablocks in Blender (so-called 'remapping' process, where we replace all usages of a given ID pointer by a new one, or NULL one in case of unlinking). This will allow nice new features, like ability to easily reload or relocate libraries, real immediate deletion of datablocks in blender, replacement of one datablock by another, etc. Some of those are for next commits. A word of warning: this commit is highly risky, because it affects potentially a lot in Blender core. Though it was tested rather deeply, being totally impossible to check all possible ID usage cases, it's likely there are some remaining issues and bugs in new code... Please report them! ;) Review task: D2027 (https://developer.blender.org/D2027). Reviewed by campbellbarton, thanks a bunch.
2016-06-08Cleanup: typosCampbell Barton
2016-03-15Fix T47577: Movie clip uses too much memory with still image sequencesSergey Sharybin
2016-03-15movieclip: Cleanup around cacheSergey Sharybin
Should be no functional changes.
2015-11-09Cleanup: avoid incrementing/decrementing id->us outside of BKE_library.Bastien Montagne
We have callbacks for that, they also do some checks and help ensure things are done correctly. Only place where this is assumed not true is blenloader (since here we may affect refcount of library IDs as well...).
2015-10-08Cleanup: typosCampbell Barton
2015-10-06Cleanup: use BLI_path_basenameCampbell Barton
2015-10-06RNA: Add check_existing arg to other load() funcsCampbell Barton
Note: movieclip was doing this already by default, now split into 2 functions, matching image behavior.
2015-07-13 Imbuf types refactor.Antony Riakiotakis
ImBuf types were getting stored as bitflags in a 32bit integer which had already run out of space. Solved the problem by separating file type to an ftype enum, and file specific options to foptions. Reviewed by Campbell, thanks a lot!
2015-06-12Support metadata display in clip editorAntony Riakiotakis
2015-05-08Cleanup: use r_* prefix for return argsCampbell Barton
2015-04-04Cleanup: use BKE_animdata_* prefixCampbell Barton
2015-02-11cleanup: style/indentationCampbell Barton
2015-01-26Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).Bastien Montagne
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)' and 'strcmp(foo, bar) == 0' in several places...
2015-01-01cleanup: redundant casts & const cast correctnessCampbell Barton
2014-12-15Fix for clip proxies builder reloading original footage framesSergey Sharybin
This isn't needed if the source is the image sequence.
2014-11-29Cleanup: unused headersCampbell Barton
2014-10-31Fix T42277: Apply track's mask on displaying preview not workingSergey Sharybin
2014-09-25GHash: use bool for comparison (simplify compare)Campbell Barton
2014-05-01Code cleanup: remove defines no longer needed on windowsCampbell Barton
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-22BLI_open: check returned value for `-1` instead of `< 0`Campbell Barton
2014-04-17Support multiple distortion models, including a new division modelSergey Sharybin
This commit makes it so CameraIntrinsics is no longer hardcoded to use the traditional polynomial radial distortion model. Currently the distortion code has generic logic which is shared between different distortion models, but had no other models until now. This moves everything specific to the polynomial radial distortion to a subclass PolynomialDistortionCameraIntrinsics(), and adds a new division distortion model suitable for cameras such as the GoPro which have much stronger distortion due to their fisheye lens. This also cleans up the internal API of CameraIntrinsics to make it easier to understand and reduces old C-style code. New distortion model is available in the Lens panel of MCE. - Polynomial is the old well-known model - Division is the new one which s intended to deal better with huge distortion. Coefficients of this model works independent from each other and for division model one probably want to have positive values to have a barrel distortion.
2014-04-10Speedup track preview widget for byte imagesSergey Sharybin
This gives a huge speedup gain for cases when you've got rather huge markers on a byte images. Done by skipping IMB_float_from_rect()/IMB_rect_from_float() for such cases. We can sample the buffers without color space conversion.
2014-04-03Code cleanup: styleCampbell Barton
2014-04-02Fix T39545: "Track selected markers", does not stop at end of videoSergey Sharybin
Issue was cauzed by some weird clamping of current frame. Not sure why it was here at the first point -- it's from the day0 of movie clip datablock.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-31Code cleanup: use bool/true/false in movieclip.cSergey Sharybin
2014-03-06Fixes for proxies color spaceSergey Sharybin
Basically proxy colorspace didn't work well enough. It is still a bit weird and mainly: - Proxies for image sequences are built in the image color space. - Proxies for movies are built in the movie color space. This could be unified but would need some work in proxy build to make it not just pipe frames from one FFmpeg context to another but also apply OCIO on it.
2014-02-04Fix T38440: Segmentation fault in Movie Clip EditorAlex Babahin
Issue was caused by NULL-pointer de-reference when post-processing the frame without putting the frame to movie cache. Differential Revision: https://developer.blender.org/D276
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-02-03Fixed a possible access to null pointer reference.Sergey Sharybin
Patch by tamerlan311 (Alex Babahin) Reviewers: sergey Reviewed By: sergey Differential Revision: https://developer.blender.org/D282
2014-01-15Python/Depsgraph: bpy.data.*.is_updated now detects add/remove of any datablock.Tom Edwards
Previously this only worked for some datablocks relevant to rendering, now it can be used to detect if any type of datablock was added or removed (but not yet to detect if it was modified, we need many more depsgraph tags for that). Most of the changes are some function parameter changes, the important parts are the DAG_id_type_tag calls. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D195
2013-12-12Code cleanup: indent preprocessor directives inside #ifdefSergey Sharybin
2013-10-03set mempool debug in the game-engine-player too. also remove redundant ↵Campbell Barton
mempool includes.
2013-08-04more consistent use of checks of BLI_open(), check 'fd < 0' rather then -1. ↵Campbell Barton
packedfile incorrectly treated 0 as an error value. best not be vague/sloppy with this.
2013-08-04add missing NULL checks from BKE_constraint_get_typeinfo(), so constraints ↵Campbell Barton
from the future dont crash. also remove some redundant NULL checks.
2013-07-24fix [#36262] Paste strip with video or sound content from another file ↵Campbell Barton
crashes Blender existing code was very stupid. - all ID pointers for clipboard strips are handled uniformly. - clipboard stores a duplicate ID pointer which are restored on paste. - restoring pointers... -- use ID's that are still in the database (copy&paste within the same file). -- fallback to name lookup. -- fallback to loading them from the original filepath (movie-clip and sound only). also fix bug pasting where initialing the sound wasn't done if there was no frame-offset.
2013-07-13fix bad uses of sizeof() with memory allocation.Campbell Barton
2013-05-09Changes to footage information panelSergey Sharybin
- Display additional information about channels and buffer type (float/byte). - Don't show frame number beyong sequence length. - Also fixed issues with footage length calculation, so it's pronbably will be needed to reload some of existing footages.
2013-04-08Camera stabilization fixes and improvementsSergey Sharybin
- Nearest interpolation was always used when there's no rotation for stabilization. Was a failure of optimization heuristic. - Made 2d stabilization frame acquiring threaded. This function is only used for display and sequencer which will only benefit of threads here. - Fixed bug introduced in r48749 which lead to re-making stable frame on every redraw.
2013-04-04Changes to cache invalidation policy for movie clipsSergey Sharybin
- When changing clip in clip editor, remove all frames from it's cache to free memory for new clip. - When changing proxy render settings, free cache as well.
2013-04-04Clip editor prefetch changesSergey Sharybin
Made it an operator instead of automatic prefetching. Filling the whole memory with frames is not always desired behavior. Now prefetching is available via P-key, or from Clip panel in toolbox or from Clip menu. Also enabled prefetching for non-proxied movies.
2013-03-25Better handing of frames below actual sequence rangeSergey Sharybin
When trying to load file below actual sequence range (like trying to load file for scene frame 10 when clip's start frame is 20) first frame from file sequence is used. Before this change first file used to be loaded for every scene frame below start frame, which polluted memory with unwanted data. Now first frame would be loaded only once in this case.
2013-03-20Prefetching for movie clipsSergey Sharybin
This commit basically implements frames prefetching for movie clip datablock. Number of frames to be prefetched is controlled in User Preferences, System tab, Prefetch Frames option. Currently prefetching is destructive-less for movie cache, meaning mo frames will be removed from the cache when while prefetching. This is because it's half of simplier to implement, but it also makes sense from tracking point of view -- we could want to playback in both directions and removing frames from behind time cursor is not always a good idea. Anyway, smarter prefetching strategy could be developed later. Some implementation notes: - Added MEM_CacheLimiter_get_memory_in_use function to get memory usage of specified memory limiter. - Fixed prototype of MEM_CacheLimiter_get_maximum which was simply wrong (used wrong data type for output). - Added some utility functions to movie clip and movie cache for direct cache interaction and obtaining cache statistics. - Prefetching is implemented using general jobs system. which is invoking from clip draw function. - Prefetcing will stop as soon other job or playback starts. This is done from performance point of view. Jobs will likely require lots of CPU power and better to provide whole CPU to it. Playback is a bit more complicated case. For jpeg sequence playback prefetching while paying back is nice. But trying to prefetch heavy exr images and doing color space conversion slows down both playback and prefetching. TODO: - Think of better policy of dealing with already cached frames (like when cached frames from other clips prevents frames from current clip to be prefetched) - Currently a bit funky redraw notification happens from prefetch job. Perhaps own ND_ is better to have here. - Hiding clip while prefetch is active in theory shall stop prefetching job. - Having multiple clips opened on file load will prefetch frames for only one of them.
2013-03-18Merge of the PyNodes branch (aka "custom nodes") into trunk.Lukas Toenne
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements. === Dynamic node type registration === Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes. Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2]. === Node group improvements === Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3]. The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there. [1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes [2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender [3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/