Source Activity

Syndicate content
Updated: 25 min 33 sec ago

libroot: remove ATOMIC_FUNCS_ARE_SYSCALLS

Mon, 2014-08-25 21:07
libroot: remove ATOMIC_FUNCS_ARE_SYSCALLS

GCC knows whether these functions need to be implemented using syscalls
(or more clever solutions like in Linux) and calls libgcc in such case.

Signed-off-by: Paweł Dziepak 
Categories: Development

build: remove B_USE_BUILTIN_ATOMIC_FUNCTIONS

Mon, 2014-08-25 21:06
build: remove B_USE_BUILTIN_ATOMIC_FUNCTIONS

No reason not to use GCC atomic support on non-x86 archs.

Signed-off-by: Paweł Dziepak 
Categories: Development

kernel, libroot: use C++11 atomics in atomic_*()

Mon, 2014-08-25 21:06
kernel, libroot: use C++11 atomics in atomic_*()

The less assembler in our sources the better. These functions wouldn't
be used very much since SupportDef.h inlines them, but the symbols should
be available.

Signed-off-by: Paweł Dziepak 
Categories: Development

os/arch: implement all atomic_*() using std::atomic<>

Mon, 2014-08-25 21:06
os/arch: implement all atomic_*() using std::atomic<>

Time to get rid of some asm code. Surprisingly, it appears that
on x86[_64] the emitted code for atomic_test_and_get() isn't as efficient
as it could be, even with -O2, but cmpxchg is so expensive that this slight
difference shouldn't matter much.

Signed-off-by: Paweł Dziepak 
Categories: Development

os/support: implement atomic_*() using GCC builtin helpers

Mon, 2014-08-25 21:05
os/support: implement atomic_*() using GCC builtin helpers

If GCC knows what these functions are actually doing the resulting
code can be optimized better what is especially noticeable in case of
invocations of atomic_{or,and}() that ignore the result. Obviously,
everything is inlined what also improves performance.

Signed-off-by: Paweł Dziepak 
Categories: Development

add-ons/kernel: add casts when calling atomic_*()

Mon, 2014-08-25 21:02
add-ons/kernel: add casts when calling atomic_*()

Soon GCC is going to be a bit stricter about the type of pointer passed
to atomic_*() functions.

Signed-off-by: Paweł Dziepak 
Categories: Development

Fix #11155 - missing WebPositive in x86_gcc2 repository.

Mon, 2014-08-25 18:49
Fix #11155 - missing WebPositive in x86_gcc2 repository.

* Instead of just checking the primary architecture, we need to check
  all architectures whether the webpositive build feature is enabled.
Categories: Development

WebPTranslator: use the outsourced package.

Mon, 2014-08-25 18:26
WebPTranslator: use the outsourced package.
Categories: Development

Add libwebp as a mandatory package.

Mon, 2014-08-25 18:24
Add libwebp as a mandatory package.
Categories: Development

BuildFeatures: add Giflib, Libwebp, Jasper features.

Mon, 2014-08-25 18:24
BuildFeatures: add Giflib, Libwebp, Jasper features.
Categories: Development

Add jasper packages.

Mon, 2014-08-25 16:48
Add jasper packages.
Categories: Development

Add/Update libwebp packages.

Mon, 2014-08-25 16:41
Add/Update libwebp packages.
Categories: Development

Add giflib packages for x86 and x86_64

Mon, 2014-08-25 16:41
Add giflib packages for x86 and x86_64
Categories: Development

FFMPEG Plugin: Small refactoring in audio path.

Mon, 2014-08-25 12:33
FFMPEG Plugin: Small refactoring in audio path.

- Lazy initializing the fDecodedData variable fits best in
  _ResetRawDecodedAudio() as fRawDecodedAudio is all about managing properties
  of fDecodedData. So fDecodedData having some memory allocated is seen as a
  property here.

- Updated documentation accordingly

- No functional change intended.
Categories: Development

FFMPEG Plugin: Fix performance regression on video path.

Mon, 2014-08-25 12:33
FFMPEG Plugin: Fix performance regression on video path.

- For best performance the color conversion function expects a memory location
  aligned to 32 bytes. Without that alignment the color conversion function
  falls back to a slower conversion path. This fix was measured via
  DO_PROFILING and tested with various 1080p video files.
Categories: Development

FFMPEG Plugin: Fix correct decoding of first video frame.

Mon, 2014-08-25 12:33
FFMPEG Plugin: Fix correct decoding of first video frame.

- The first decoded video frame was always zero bytes large, due to passing the
  wrong linesize to the color conversion function. The field containing the
  right linesize (fHeader.u.raw_video.bytes_per_row) simply wasn't initialized
  yet. Fix it by updating fHeader first before applying deinterlacing and color
  converting to the decoded video frame.
  Tested with mpeg2_decoder_test where the first picture now isn't empty
  (black) anymore.
Categories: Development

FFMPEG Plugin: Implement audio input buffer padding.

Mon, 2014-08-25 12:33
FFMPEG Plugin: Implement audio input buffer padding.

- Padding is required by FFMPEG for correct operation of all audio decoders.
  FFMPEG performs some speed optimizations under the hood that may lead to
  reading over the end of the chunk buffer wouldn't there have been padding
  applied.

- Resolve TODOs by unifying fVideoChunkBuffer and fChunkBuffer back into
  fChunkBuffer because audio path is responsible for freeing fChunkBuffer now.
  Resolved TODOs apply to the replacing fVideoChunkBuffer variable by
  fChunkBuffer, rename some methods by removing the "Video" part, collapse two
  methods into one (_LoadNextChunkIfNeededAndAssignStartTime()).
  No functional change intended.

- Enhance "logging stream to file" functionality to write to distinct logging
  files for audio and video. Before this commit one could only log video
  streams. But with unifying the _LoadNextChunkIfNeededAndAssignStartTime()
  audio streams gained the logging functionality for free. But now audio and
  video streams would be written in the same log file when watching a media
  file containing both audio and video. This is prevented by the distinct
  logging mentioned above.

- Update documentation accordingly.
Categories: Development

FFMPEG Plugin: Refactor out copying of audio format properties.

Mon, 2014-08-25 12:33
FFMPEG Plugin: Refactor out copying of audio format properties.

- Main reasons for this refactoring of negotiation steps are to increase
  readability and to be on par with the video path.

- Rearrange some negotiation steps in video path to be on par with audio path.

- Add documentation for the new method and update existing documentation
  accordingly.

- No functional change intended.
Categories: Development