Commit Graph

650 Commits

Author SHA1 Message Date
31d2ee9bf7 style cleanup, brackets in else/if, some indentation. 2012-03-06 18:40:15 +00:00
1ae27144f6 Fix for OpenEXR half float save function resulting in dark images saved
Float buffers of ImBuf are always supposed to be linear space a,d ImBuf's
profile means how byte array was constructed from float buffer.
2012-03-05 18:54:57 +00:00
12d0489b33 fix for building openjpeg image support on OpenSUSE 12.1, also quiet compile warning. 2012-03-04 11:58:55 +00:00
f6ae27daef style cleanup - comment spelling + translate some dutch. 2012-03-04 04:35:12 +00:00
7bbf4b7831 style cleanup
- spelling - turns out we had tessellation spelt wrong all over.
- use \directive for doxy (not @directive)
- remove BLI_sparsemap.h - was from bmesh merge IIRC but entire file commented and not used.
2012-03-02 16:05:54 +00:00
bc767059cb Code Cleanup: update to mempool, use flag rather then bool args. 2012-03-01 22:59:18 +00:00
Lukas Toenne
171d6bf509 Fix for Multilayer EXR API. This was using implementation stubs directly in the header file, causing problems with scons in particular. 2012-03-01 11:19:41 +00:00
ce64128a84 error in recent header commit. 2012-02-29 15:42:34 +00:00
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
c058ba207f Compilation error fix for recent indicer refactor commit. 2012-02-29 13:17:11 +00:00
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
d2cab3e8b0 move bmesh wiki docs into bmesh header and update doxygen.
also have doxygen ignore *.py files and fix some warnings.
2012-02-27 20:27:19 +00:00
47c373c7a9 style cleanup (mostly whitespace) 2012-02-27 10:35:39 +00:00
3fc2fbc333 style cleanup, use { on newline after function definition.
spelling 'impliment' -> 'implement'
2012-02-25 16:49:59 +00:00
4662e40bfa Fix #30315: Temporary proxy files are not erased and old proxys are not updated if the proxy is built more then once (windows)
Two issues are fixed here:
- On windows rename() doesn't actually renames file if destination file is already exist.
  Solved by ulinking previously built proxy/timecode.
- IMB_TC_MAX_SLOT was set to incorrect value leading to record run timecode calculating
  several times.
2012-02-23 10:18:10 +00:00
c8b53d2aaf code style cleanup, no functional changes. 2012-02-23 02:23:42 +00:00
69ee17f0b6 Wring scaling and precision error in previous commit. 2012-02-18 16:42:19 +00:00
f059167c30 Proxies: FFmpeg proxy builder wasn't taking image quality into account at all
which made it using default quality settings which are really bad for camera
tracking (and perhaps for CSE too).

haven't found Jpeg quality setting for FFmpeg which will behave in the same way
as quality setting for image sequence, but seems that mapping image quality
from 1..100 UI range to 31..1 range of qmin/qmax gives expected result.
2012-02-18 16:23:34 +00:00
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
40e2942f25 Fix related to #30152, rainbow colours produced when loading hdr image to 3D viewport/ the Nyan cat bug.
Issue is caused by scaling for power of 2 dimensions and mipmapping that happens through GLU. It looks like the library cannot handle float colour values above 1.0 correctly. Since we are close to release I will just clamp the srgb result for now even though it will result in a small performance loss for 16 bit textures only. 

I tried a few things before that, glGenerateMipmaps + no scaling (supported for 2.0 GL hardware and up), or using our own scaling instead of glu among them which worked very nicely and gave a speedup too. However, since we are close to release and there may be issues with GPU mipmap generation, see:

http://www.gamedev.net/topic/495747-another-glgeneratemipmap-question/
(old discussion but better be sure than sorry)

I went for the most compatible solution. Maybe after release this can be tested if other devs agree.
2012-02-14 13:25:23 +00:00
f07f59c760 Cache limiter will now work properly with limits >= 4Gb 2012-01-31 11:11:56 +00:00
ae771e742b change filepath limit from 240 to 1024 2012-01-21 14:54:53 +00:00
1726853226 comment some dead assibnment and set dummy values for image profile conversion in case of invalid input. 2012-01-20 15:18:57 +00:00
a87c5eb52c use color conversions functions in more places.
also add rgba_float_to_uchar, rgba_uchar_to_float
2012-01-19 10:04:51 +00:00
9f2443293e replace fixed sizes with sizeof when passing string length since size wasn't always correct. 2012-01-12 13:16:30 +00:00
309f3f31e7 remove redundant trailing slashes 2012-01-12 06:11:08 +00:00
e10fd04db0 use BLI_strncpy and BLI_snprintf when the size of the string is known.
fix for sequencer unique naming which was missed with string length update.
2012-01-11 12:33:51 +00:00
545dc90a7f Fix regressions in the color management / dither patch. 2012-01-10 14:24:18 +00:00
4487103e61 Color:
* Accelerated sRGB <=> linear conversion using lookup table, this can speed up
  loading of images in the compositor and simple renders quite a bit.
* Dithering now uses the Floyd-Steinberg algorithm. Previously it would simply
  randomize each pixel slightly, adding noise, now that should be reduced.

Patch #29309 by David M.
2012-01-08 13:55:53 +00:00
68fd186586 use warnigns for all msvc configurations 2012-01-06 05:13:36 +00:00
5233aea8fb Fix mistake in recent refactoring, dither needs to be float not int. 2012-01-05 17:50:34 +00:00
4ec69b1071 Fix #29671: Issues with .mts video files
Video frame decoding used to leave packet reading cycle before frame
is fully decoded in cases frame is encoded by several packets.
2012-01-04 09:27:34 +00:00
d7d856a23d Color management: add "Color Unpremultiply" option for images and render settings.
For premultiplied alpha images, this makes any color space conversion for the image
or render output work on color without alpha multiplied in.

This is typically useful to avoid fringing when the image was or will be composited
over a light background. If the image will be composited over a black background on
the other hand, leaving this option off will give correct results.

In an ideal world, there should never be any color space conversion on images with
alpha, since it's undefined what to do then, but in practice it's useful to have
this option.

Patch by Troy Sobotka, with changes by me.
2011-12-30 14:17:11 +00:00
b9ff5840a6 Code refactoring: add unified image buffer functions for doing float => byte,
byte => float, float => float, byte => byte conversions with profile, dither
and predivide. Previously code for this was spread out too much.

There should be no functional changes, this is so the predivide/table/dither
patches can work correctly.
2011-12-28 13:29:33 +00:00
1dd72692cd Code refactoring: move MD5 out of imbuf into blenlib. 2011-12-21 13:48:51 +00:00
994f4bb3f7 Code cleanup: fix a few warnings (>= 0 and == -1 tests on unsigned types). 2011-12-17 01:13:02 +00:00
ad96dacbc5 style edit only - move parenthesis onto second line of function definition (in keeping with most of blenders code)
also split some long lines in own code.
2011-12-17 00:52:36 +00:00
3f81d010e3 Free run no gaps time code implementation
This commit adds new timecode type which counts frames in gapless mode (counting
actually decoded frames instead of using pts to find frame number) which might
resolve issues with files which have got broken or incorrect base time value stored
in the header.

This timecode allows to deal with movies from #29388: Abnormal frame length on MP4 files
2011-12-15 12:18:09 +00:00
753bfe730a fix building on openbsd, also quiet some warnings. 2011-12-04 15:45:53 +00:00
6736576f6d replace FILE_MAXDIR + FILE_MAXFILE with FILE_MAX 2011-11-26 04:07:38 +00:00
7a2725048d - saving as a jpeg image would set the image as not having an alpha channel even when saving a copy.
- setting the color channels on save as would ignore the channel - BW/RGB/RGBA setting.
  now its used when available but still need to hide BW for formats blender can only write as color.
2011-11-24 06:30:37 +00:00
30fd1ab523 replace ImBuf.depth with ImBuf.planes to match ImageFormatData.planes & to avoid confusion with ImageFormatData.depth 2011-11-21 20:47:19 +00:00
f8431e459f Fix #29295: Problem with Alpha Channel video in Sequencer and textures
Bug was caused by workaround for old versions of FFmpeg which aren't supported
anymore due to pts stuff.

Removing workarounds for alpha channels.
2011-11-20 16:26:37 +00:00
af66321f3b == Sequencer / FFMPEG ==
This fixed two issues:

* RAW DV-seeking has to be done using DTS. Sounds silly, but ffmpeg
  tracks internal state in RAW DV format decoder and runs mad, if
  we seek by byte. Don't know, why I haven't noticed that, when I
  added it.
  
* real fix(tm) for #29295
  problem was: we did AVFrame read ahead, and the pattern
  read_frame -> decode -> read_frame -> do color conversion of first frame
  works everywhere but RAW RGB-files which do some pointer shuffling
  within ffmpeg to save a memcpy...
  
  I removed read ahead completely, since it didn't work like originally
  intented. Might come back later, but the original purpose (making
  resyncing easier if we are completely lost in stream) it never
  fullfilled.
2011-11-20 16:08:56 +00:00
97808449e6 Fix #29321: Video does not display, gets frozen or flickers
Unfortunately, error was caused by own attempt to deal with some kind of broken
videos when was investigating crashes in sequencer. Issue discovered that time
was related on values stored in timecode index and using them as signed data type
later.

Trying to use unsigned value here leads to signed/unsigned check failures.

Prefer just to pre-process that kind of videos i've been trying to deal with
rather than making more global changes during BCON3.
2011-11-18 20:55:06 +00:00
3dcc9aef96 merge mempool changes from bmesh (adds mempool iterator). 2011-11-16 19:31:42 +00:00
8a0da0b59e Fix #29202: Crash - VSE Cross strip probably leads to this
Crash was caused by several conditions:
- Frame which failed to decode tried to be converted to RGB colorspace
  and some filters like deinterlacing used to be applied as well
  (it's avscale stuff sws_scale where crash happened).
- In some cases it happened reading of freed memory when calling
  sws_scale function. Looks like it happened because of freeing
  packet on which decoding of frame finished and reading next packet.

Solved this two issues by making YUV->RGB conversion as soon as
frame was decoded in ffmpeg_decode_video_frame (such postprocessing
used to happen in callee of this function ffmpeg_fetchibuf), so now
sws_scale would be called before freeing packet on which decoding of
frame finished and it wouldn't be called in cases when decoding of
frame failed.

If decoding of frame failed, it'll be black ibuf returned to the sequencer.
2011-11-15 07:00:01 +00:00
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
e0030d6c1c - Fixed typo in KLT description tooltip
- Fixed inconsistent data type used for pts number in ffmpeg_fetchibuf
  and stored in timecode structure. Not really issue for "correct" movie files,
  but probably can help for "broken" one
2011-11-08 10:17:50 +00:00
057bf2a02b misc doc edits
- remove recently added sphinx reference workaround.
- tested doxygen, correct some warnings, set tab width and added pymathutils group.
- added convenience target 'make doc_doxy'
2011-11-05 01:48:10 +00:00