Commit Graph

50964 Commits

Author SHA1 Message Date
Colin Günther
97f5a12f36 FFMPEG-Plugin: Simplify start time calculation of video frame.
- We let FFMPEG keep track of the correct relationship between presentation
  start time of the encoded video frame and the resulting decoded video frame.
  This simplyfies our code, meaning less lines of code to maintain :)

- Update documentation and pointing out some corner cases when calculating the
  correct presentation start time of a decoded video frame under certain
  circumstances.

- Fix doxygen: Use doxygen style instead of javadoc style.

- No functional change intended.

Signed-off-by: Colin Günther <coling@gmx.de>
2014-07-26 16:32:18 +02:00
Colin Günther
254a53409e FFMPEG-Plugin: Refactor out update of media_header.
- Main purpose is to make reading the function DecodeNextFrame() easier on the
  eyes, by moving out auxiliary code.
  Note: The media_header update code for the start_time is still left in
  DecodeNextFrame(). This will be addressed in a later commit specially
  targetted on handling start_time calculations for incomplete video frames.

- Also updated / added some documentation.

- No functional change intended.

Signed-off-by: Colin Günther <coling@gmx.de>
2014-07-26 16:32:13 +02:00
Colin Günther
db59a66704 FFMPEG-Plugin: Implement decoding of streamed video data.
- This commit makes the mpeg2_decoder_test successfully decode the test video
  into 84 consecutive PNG images, yeah :)

- If this commit broke playing video files for you please file a bug report.
  I've tested only with one video file (big_buck_bunny_720p_stereo.ogg) that
  everything still works.

- The implementation has some shortcomings though, that will be addressed with
  some later commits:
    1. Start time of media header is wrongly calculated. At the moment we are
       using the start time of the first encoded data chunk we read via
       GetNextChunk(). This works only for chunk that contain one and exactly
       one frame, but not for chunks that contain the end or middle of a frame.
    2. Fields of the media header aren't updated when there is a format change
       in the middle of the video stream (for example the pixel aspect ratio
       might change in the middle of a DVB video stream (e.g. switch from 4:3
       to 16:9)).

- Also fix a potential bug, where the CODEC_FLAG_TRUNCATED flag was always
  set, due to missing brackets.

Signed-off-by: Colin Günther <coling@gmx.de>
2014-07-26 16:32:09 +02:00
Colin Günther
70a9edbb11 FFMPEG plugin: Tell the FFMPEG library to handle incomplete data.
- It is just one flag that needs to be set, so that streaming video data can be
  handled by the FFMPEG library.

- For reference: This flag is based on FFMPEG's 0.10.2 video decode example
  (doc/example/decoding_encoding.c).

- The _DecodeNextVideoFrame() method needs to be adjusted (still to come), to
  take streamed data into account. So the flag on its own doesn't help, but it
  is a reasonable step in that direction.

Signed-off-by: Colin Günther <coling@gmx.de>
2014-07-26 16:32:05 +02:00
Colin Günther
0adda4f68f FFMPEG plugin: Refactor video decoding function.
- Factor out the deinterlacing and color converting part to make the code more
  readable. This makes it easier to understand which code belongs to the actual
  decoding process and which code to the post processing.

- There seems to be no performance impact involved (I just looked at the spikes
  of the process manager) in factoring out this part, but one can always inline
  the method if a closer performance assesment (e.g. by enabling the profiling
  the existing profiling code) suggests so.

- Document the _DecodeVideo() method a little bit. Maybe someone can document
  the info parameter, as I'm a little bit clueless here.

- No functional change intended.

Signed-off-by: Colin Günther <coling@gmx.de>
(cherry picked from commit c5fa095fa73d47e75a46cfc138a56028fcc01819)
2014-07-26 16:32:01 +02:00
François Revol
a07d97ee3b Add a bzr package 2014-07-26 16:17:00 +02:00
Oliver Tappe
8b420c2f0a Fix configure --help to not rely on gcc.
* Make sure that the invocation of 'configure --help', 'configure -h' or
  just 'configure' will show the usage text and exit.
2014-07-26 11:39:30 +02:00
Oliver Tappe
63701e7dd5 Add support for specifying the host compiler with CC.
* On some systems, the host compiler may not be called 'gcc', so allow
  overriding the default via the CC environment variable.
2014-07-26 11:22:17 +02:00
autonielx
cb22f490a3 Update translations from Pootle 2014-07-26 06:21:11 +02:00
François Revol
e95d0f00ce gopher: Set a default MIME type to force downloading 2014-07-26 01:45:40 +02:00
François Revol
cf2bf30633 gopher: Add TODOs 2014-07-26 01:45:16 +02:00
François Revol
0716bfd63c gopher: remove debug printfs 2014-07-26 01:44:54 +02:00
François Revol
6983b35de5 gopher: Add a stylesheet
Modified version from my attempt at adding gopher to NetSurf.
2014-07-26 01:44:31 +02:00
François Revol
ec0e815354 gopher: Handle audio and video types, add a default case 2014-07-26 01:44:09 +02:00
François Revol
0e48c9aecd gopher: Handle some more item types 2014-07-26 01:43:45 +02:00
François Revol
f74e08fca8 gopher: Handle info resources and add proper title
We now create a proper title from the error message, or
the TITLE resource if present.
2014-07-26 01:43:22 +02:00
François Revol
2e8b8fd046 gopher: Handle binary, directory and error types 2014-07-26 01:42:59 +02:00
François Revol
0c1a4ebf8b Preliminary support for Gopher
Currently parses information and text items and retrives files.
2014-07-26 01:42:36 +02:00
Oliver Tappe
1b4510eebf Put haiku repository onto image.
* Now that system updates seem to work properly, put the haiku
  repository config and cache file onto the image automatically.
* Adjust URL of haiku repository (it is currently redirected
  to some other URL at download.haiku-os.org, but that will be
  changed later).
2014-07-26 00:35:53 +02:00
Oliver Tappe
42c7371472 Let Package-Kit's FetchFileJob handle redirects.
* additionally, drop duplicate setting of CURLOPT_PROGRESSFUNCTION.
2014-07-26 00:20:13 +02:00
Adrien Destugues
a0209a665a Don't provide libtiff in haiku package.
The lib was moved to a separate package, and we should require it
instead.
2014-07-24 19:59:00 +02:00
John Scipione
d11a323120 TextView: Fix FBC size breakage, take 2
Double checked BeOS R5 & Haiku R1/A4 and BTextView should be 356
bytes, somewhere since then we've added 4 bytes. So, this commit
reduces the class size from 360 back to 356 by removing 1 reserved
int32 (instead of 2).

I believe the class size changed in hrev46798 as a result of adding
2 bools (1 byte each padded out to 4 bytes).

Sorry for the noise.
2014-07-24 13:55:09 -04:00
John Scipione
fb224a9f14 Revert "TextView: Fix FBC size breakage"
This reverts commit 8e268f7552.
2014-07-24 13:15:30 -04:00
John Scipione
dc4ae0e9c0 TextView: Fix regression for Home and End
... while Shift is held down in a selection.

Before this commit, if you had some text selected and you pressed
Home or End with a Shift held down the selection would not change.
This was annoying and most likely unintentional. Thank you Axel for
informing me of this problem.

After this commit if you have some text selected and you press Home
with a Shift key held down it will move the end of the selection to the
first character of the same line that the end of selection is on and if you
press End with a Shift key held down it will move the end of the selection
to the last character of the same line that the end of the selection is on.

I looked at how a bunch of different OS's and applications handled this
and found that there are a bunch of different behaviors we could use here,
and there doesn't appear to be any consensus as to what the "right" or
"wrong" way to do this is so please forgive me if this doesn't work exactly
as you expect it to.

Note that the implementation used here is very different from how BeOS
R5 worked. In BeOS R5 pressing Home or End with Shift held down
always extended the selection, it never subtracted from it.

In BeOS pressing Home with Shift held down extended the selection from
the left-most part of the selection to the first charcter of the same line.
Pressing End with Shift held down extended the selection from the
right-most part of the selection to the end of the same line.
2014-07-24 11:06:18 -04:00
John Scipione
1d1e61bb39 TextView: include re-arrange style fix
* Put #include TextView.h first as our style guide suggests.
* Put #include <new> in it's own C++ includes section
* also remove an extra newline
2014-07-24 11:06:12 -04:00
John Scipione
b55f61d65c TextView: update comments
Private Method docs are/should be in doxygen format. Remove \brief as doxygen
doesn't need this if you document along side the method.

Remove brief description comments from public methods, you'll need to look in the
Haiku Book for this now.

style squash
2014-07-24 11:03:56 -04:00
John Scipione
8e268f7552 TextView: Fix FBC size breakage
In hrev46796 I added two new private methods: _PreviousLineStart(),
and _NextLineEnd() which increased the size of the class breaking
binary compatability because I forgot to decrement the reserved array.

This commit decrements the reserved array restoring the class size
to the original size fixing the binary compat issue.

Thanks Axel for noticing.
2014-07-24 10:29:06 -04:00
John Scipione
fef862eb20 TextView.h rearrage virtual methods for FBC
The order is updated so the virtual methods appear in the same order
that they did in BeOS R5 with methods new to Haiku added to the bottom.

Perform() moves up, all other methods move below GetDragParameters(),
the last virtual method in BeOS R5's TextView.h.
2014-07-24 10:29:04 -04:00
Augustin Cavalier
8d31bd2e69 Upgrade Pe to 2.4.5.
Signed-off-by: Oliver Tappe <zooey@hirschkaefer.de>
2014-07-24 16:16:43 +02:00
Adrien Destugues
b0ab67351d use unpacked scanlines when rendering gradients.
* There is no point in trying to pack the scanlines in a gradient, as it
is very likely that each pixel will have a different color.
* Moreover, the packed scanline generator will assume all pixels in the
* scanline have the same alpha value (for faster blending), and it may
* not be the case.

Fixes #2946.
Thanks to stippi and jessicah who helped tracking and understanding the issue.
2014-07-24 12:38:53 +02:00
Adrien Destugues
a694f30d6c Add more alpha gradient test cases
* Add a vertical linear gradient. This bypasses AGG and uses a faster
code path, which works.
* Add gradients drawn in a ClipToPicture() context. This uses an
* unpacked scanline rasterizer, which works.

This hints to the problem being the use of a packed scanline rasterizer,
with agg gradients touching the alpha channel.
2014-07-24 12:01:50 +02:00
Adrien Destugues
5f22a181ec Simplify code using BString features.
* No functional changes
* Why do in 10 lines what can be done in 1?
2014-07-24 09:46:24 +02:00
Adrien Destugues
ca38bad855 Missing parenthesis. 2014-07-24 09:26:09 +02:00
Jessica Hamilton
18eae6381e Bump revisions of gcc_x86 & haikuwebkit for gcc2h.
This will pull in the requirement for a newer haiku
revision, as the fix to WebPositive lies in haiku,
not haikuwebkit.
2014-07-24 02:33:52 +00:00
François Revol
aec644bf85 tty: Don't ignore errors when setting DTR
Instead we and the return value of both calls.

So if any fails we return an error.
2014-07-23 21:36:07 +02:00
François Revol
0be89c15ee tty: Add bitmask ioctls TIOCMBIS and TIOCMBIC
Equivalent to TIOCMSET + bitmask + TIOCMGET but with a single call.

Gnokii uses that.
2014-07-23 21:36:07 +02:00
John Scipione
970910c21e Runtime loader: Fix unchecked return value
Tested by running Attraction! from haikuware.com

CID 1228648
2014-07-23 14:44:36 -04:00
François Revol
741f2b55f2 glib2: updated package (fixed glib-gettextize) 2014-07-23 19:37:14 +02:00
François Revol
4e554681b7 Add a gcc2 version of libffi 2014-07-23 19:37:13 +02:00
John Scipione
3188d3d0bf Tracker: Remove logically dead code
Replace with an ASSERT that srcWindow != NULL by the time we've gotten
this far.

CID 1228649 and CID 1228650
2014-07-23 13:20:08 -04:00
Adrien Destugues
d1a5f90981 More test cases for gradients with alpha channel
* Swapping the opaque and transparent ends leads to different results,
* Linear gradients are also affected.
2014-07-23 17:59:37 +02:00
Adrien Destugues
5f6a39cabe Add testcase from #2946. 2014-07-23 16:24:08 +02:00
François Revol
ee58da76ed Add asciidoc and tig package 2014-07-23 15:01:27 +02:00
François Revol
c8826605df Guard header for use by assembler code
Somehow it ends up being used by shell.S for the verdex bootstrap.
2014-07-23 13:27:23 +02:00
François Revol
8bfb76fe23 Add a package for lynx
It's mostly because I need it for irssi docs.
2014-07-23 13:25:14 +02:00
Adrien Destugues
8fa9134445 Draw radial gradients using the proper radius. 2014-07-23 10:17:41 +02:00
Adrien Destugues
1f3acfaa51 Add a test for radial gradients.
* This shows that the radius is ignored and all gradients are drwan with
a radius of 100.
2014-07-23 10:17:25 +02:00
Adrien Destugues
15db99249a Simple test harness for app_server tests
This was developped for the transformations test, but can be used for
other tests too. Extract the relevant classes to a separate file.
2014-07-23 10:14:35 +02:00
Adrien Destugues
c5ed108884 Fix the test_app_server build. 2014-07-23 10:13:58 +02:00
Adrien Destugues
c5f7461870 Add avrdude package (with dependencies)
I confirmed that Akshay's patch to UHCI gets avrdude working with the
usbasp programmer.
2014-07-23 09:21:40 +02:00