Commit Graph

30530 Commits

Author SHA1 Message Date
Stephan Aßmus
4384acf6c1 * Tweaked the Writer API. Basically, we need an Init() method that takes the
media_file_format as input, so that the Writer knows what kind of file is
  needed.
* Also, since information about the stream format is going to be needed at the
  Writer level as well, the AllocateCookie() method gets the stream
  media_format.
* Fleshed out some aspects of AVFormatWriter, many TODOs are left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32025 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 15:29:08 +00:00
Stephan Aßmus
f9acacb7d1 Enabled a couple encoders and muxers, included files in build which we need
for that...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 15:25:57 +00:00
Axel Dörfler
8f30149c06 * Work-in-progress commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 15:16:11 +00:00
Axel Dörfler
249efd04b3 * Fixed basic layout issues, and therefore bug #4138. This panel needs a serious
usability redesign, though, so I didn't bother letting it use the layout
  engine for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 14:30:15 +00:00
Axel Dörfler
61b6f38cfc * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 14:11:12 +00:00
Axel Dörfler
3bde1f121a * If the VESA accelerant has EDID information, it will now also pass it to
create_display_modes().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 14:07:19 +00:00
Axel Dörfler
7badc72cf1 * Missing EDID video modes are now added from the base mode list, resolving
a TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 14:05:27 +00:00
Stephan Aßmus
2e9d65abf5 Implemented static Write and Seek hooks to be passed to libavformat...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 13:49:11 +00:00
Axel Dörfler
55c3b5f1d5 * If the copyright says to include the full list, we better do, even if our
license is basically the same thing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 13:15:06 +00:00
Stephan Aßmus
313fedacc1 * Let the Encoders use the media_codec_info.sub_id field for their own purposes.
* Implemented some of AVCodecEncoder. Maybe video encoding already works, but
  we don't know until the AVFormatWriter is more than just stubs... but I doubt
  it. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 13:06:34 +00:00
Stephan Aßmus
3ae83fe3c7 * Automatic whitespace cleanup.
* media_decode_info member was never used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 13:04:14 +00:00
Axel Dörfler
c6906c2832 * In FFM mode, when a window was closed, or the workspace was changed, the
window under the mouse was given focus. This makes using FFM with the keyboard
  alone very inconvenient to use, which is why now the window that previously
  had focus will regain it instead; as soon as you actually move the mouse, the
  focus is changed as usual.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 11:58:59 +00:00
Stephan Aßmus
fa770e4c84 * Writer::WriteChunk() takes media_encode_info* instead of flags.
* Improved Encoder API towards what we need for the get_next_encoder() variants
  and the BMediaTrack API.
* Implemented the rest of MediaWriter. Still undecided what to make of
  AddTrackInfo(). BMediaEncoder has that as well, which hints that this is
  something the Encoder needs to support. But it could also be that this is
  only possible to support in Writer.
* Wired a lot of previously unimplemented methods in BMediaFile and BMediaTrack
  needed for write support. If I have not overlooked anything, only the
  parameter stuff is still unimplemented now.

This is all untested, since the FFMpeg Encoder and Writer are still only stubs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 10:46:58 +00:00
Axel Dörfler
23046a3935 * No longer maintain the Window::fMinimize member for hidden windows; this seems
to be what happens in BeOS, at least, and fixes bug #4127.
* Hopefully diver will also find any negative consequences of this change :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 10:43:47 +00:00
Fredrik Modeen
1d4673660f This fixes when I try to makebootable after building Haiku from Zeta.
I don't get "Error: Specifying directories not supported on this platform!" now.
Also includes some added \n.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 10:13:37 +00:00
Axel Dörfler
74b19566ee Turned off mouse wheel support in BTabView to switch the tabs. I think that
functionality like this is mostly annoying with little use to be honest, but
other opinions are welcome, of course :-)

It reminds me too much about the insane workspace switching via the mouse
wheel in Ubuntu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 01:24:21 +00:00
Ingo Weinhold
7f1bf82c6e We need full update on resize.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 01:21:49 +00:00
Stephan Aßmus
cc1730f4d6 Do not reject an encoder based on the media_format_family if either the encoders
or the given media_file_format family's is B_ANY_FORMAT_FAMILY.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 01:02:48 +00:00
Stephan Aßmus
6033e52a83 Implemented support for get_next_encoder() variations from MediaFormats.h.
The AddOnManager in the media_server registers one encoder entry per
successful EncoderPlugin::RegisterNextEncoder(). This gives us a first idea
what media_format_family and input/output media_type is supported. The
mechanism may have to be extended, or the Encoder needs an API to specialize
a format further. In that case, the get_next_encoder() version that takes
optional _acceptedInput/OutputFormat needs to instantiate the plugin and
needs to ask the Encoder. But AFAIK, no app uses it like that anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 00:46:36 +00:00
Axel Dörfler
061d2ed1a2 * Creating a symlink now fails with B_NOT_SUPPORTED instead of
B_READ_ONLY_DEVICE if it has a write hook.
* This fixes bug #4141.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 00:40:52 +00:00
Rene Gollent
33e0d2e413 Also remove no longer needed variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 23:26:36 +00:00
Rene Gollent
5171d87a62 Removed stray debug printf.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 23:26:09 +00:00
Axel Dörfler
c32499b4f7 * Since the file_map reports its chunk with a file system specific alignment, we
cannot assume that the file is that long - we need to check for the actual
  file size specifically, and then clear the extraneous bytes based on that one.
* This fixes seeing old file left-overs in the space beyond the file size in
  mmapped file. Thanks to Oliver who provided me with a nice test program to
  reproduce this problem (this should also fix gcc's fix_includes app (although
  I wonder what it does if a file actually ends on a page boundary).
* Also fixed a bug in precaching that would cause the last page of the cache
  to be discarded, causing it to be re-read later on.
* Moved partial page clearing into its own function
  read_pages_and_clear_partial(), even though it's currently only used once.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 23:12:12 +00:00
Stephan Aßmus
377e95304a * This header couldn't actually be used from C code, since C doesn't support
overloading functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 22:10:11 +00:00
Ingo Weinhold
ce50cdc3ed When recovering a tracing buffer from a previous session we do now check the
tracing buffer entry list at least. Eventually we should check the entries
themselves, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 22:00:16 +00:00
Stephan Aßmus
ac13d1a272 * Style cleanup
* Check allocations and report error in case any fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 21:28:00 +00:00
Stephan Aßmus
d8181502ef Style cleanup, switched "* " style.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 21:02:56 +00:00
Stephan Aßmus
435924897f Hack to automatically deinterlace video, this needs to be improved later on,
but is better than before in any case. The deinterlacing is nothing fancy,
basically, it just drops the first field... the implementation to use this
is also not as efficient as it could be, it currently allocates a temporary
frame always...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 20:49:04 +00:00
Stephan Aßmus
eeb4be0c7f Hack for interlaced video. We cannot know if video is interlaced from the
current libavformat API. FFmpeg is a little inconsistent in this regard. For
interlaced video, it will report a frame rate which is the field rate, but
still decode both fields into a single frame. For the time being, we reduce
the frame rate from 50.0 to 25.0 and handle interlaced video transparently
for the clients. This needs to be fixed later on...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 20:47:05 +00:00
Stephan Aßmus
0876f8d08e Stubbed out implementation of an Encoder and EncoderPlugin. This will probably
need to work differently, such that supported media_formats come into play,
I will know soon when I implement some of the stuff from MediaFormats.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 20:42:26 +00:00
Stephan Aßmus
7cd2513b82 Changed the way Encoders are published by EncoderPlugins. Encoder retrieval
in PluginManager is reenabled. We use the media_codec_info.id to reference
a specific plugin, while the sub_id will be used to reference individual
Encoders that the plugin supports. No idea if that's how it was intented, but
some comments hint in this direction. I failed to mention this before, but
comments are of course very welcome on any of these commits, as always.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 20:05:11 +00:00
Clemens Zeidler
0814569216 Aside from I locked the wrong (base) class. The problem was more that the driver interface was deleted to early.
Using a Referenceable seems to fix it now.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31992 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 20:01:53 +00:00
Ingo Weinhold
3fccf0679f C++ified the code. Introduced new trace entry flags, which will eventually be
used to mark entries after recovering a tracing log from a previous session.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 19:50:50 +00:00
Clemens Zeidler
8b24b02f06 Center the ExtendedInfoWindow on the screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 18:28:29 +00:00
Stephan Aßmus
a072a79b65 Removed left-over.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:59:03 +00:00
Stephan Aßmus
a07b059b16 Implemented first version of MediaWriter, which is the bridge between
BMediaFile/BMediaTrack and Writer plugins.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:56:01 +00:00
Stephan Aßmus
c98ea33596 Let's call it WriteChunk() instead of WriteNextChunk() and make the signature
consistent everywhere (according to BMediaTracker::WriteChunk()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:54:03 +00:00
Clemens Zeidler
09596a6bbc Remove some debug output and disable debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:52:34 +00:00
Stephan Aßmus
efd1469d4f Encoders will most likely be found by media_codec_info, not by media_format,
changed method signature accordingly and disabled the code for now, since
the media_server communication has not been adapted yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:52:14 +00:00
Stephan Aßmus
37b6b027ef Small cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:49:42 +00:00
Stephan Aßmus
b8316d9f93 Cleanup and preparations for BPrivate::media::MediaWriter, which will soon
exist.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:47:54 +00:00
Clemens Zeidler
b2cdb463b3 The monitor watcher list was not locked when broadcast a message.
Probably it caused #4151



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 17:45:48 +00:00
Oliver Tappe
c08c945ff3 Two more changes to BListView:
* fixed handling of B_HOME and B_END in extend mode for multiselection, such that
  now all the items inbetween the anchor and the final target are selected, too
* made sure that the anchor always gets adjusted in _Select(), as otherwise
  navigation via cursor keys could get "locked".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 16:50:08 +00:00
Stefano Ceccherini
c2c39a98a2 Moved functions declarations to InterfacePrivate.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31979 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 16:46:19 +00:00
Stephan Aßmus
ee9408a18d Re-wrote MediaFormats.h header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31978 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 16:34:06 +00:00
Jonas Sundström
b96533c256 Set event list to single-select.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31977 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 15:50:57 +00:00
Jonas Sundström
56938474d1 Set partition list view to single-select.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31976 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 15:43:25 +00:00
Oliver Tappe
81bbdfe999 Fixed two problems in BListView:
* fixed recent regression with respect to navigating via cursor keys
* unified (and thus partly corrected) computation of whether or not we're in
  extend mode in KeyDown(), fixing the handling of unmodified B_HOME and B_END
  in multiselection mode


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 15:26:23 +00:00
Michael Lotz
0fa107fd5d Don't spam for expected error returns. We do repeat key handling through
timeouts, so B_TIMED_OUT is expected at this point.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 15:18:45 +00:00
Ingo Weinhold
57a25014b0 Statically initialize sTracingMetaData to sDummyTracingMetaData. This causes
tracing use before real initialization to be ignored gracefully again. Fixes
#4158.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 15:12:21 +00:00