Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus 97da0e7cfb * Updated indentation style
* Fixed copyright

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 14:25:36 +00:00
Stephan Aßmus 56f7fdc402 * Updated indentation style
* Fixed copyright


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 14:19:30 +00:00
Stephan Aßmus a744468925 Rewritten. Note that the implementation for this class seems to be completely
missing. IIRC, I did write an app way back that used this class...

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 14:04:37 +00:00
Stephan Aßmus a449ca33dc * Updated indentation style
* Fixed copyright

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 13:44:50 +00:00
Stephan Aßmus 42a5968afd Cannot change the ordering of the additional virtual methods, or BC is
broken.
+alphabranch (if previous commit is also applied)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 13:33:54 +00:00
Stephan Aßmus 3ceab7ef3f Fixed problem with the AddPathCommand. When ownership of the added paths is
not transfered to the commmand, it needs to add references. If not more of
such problems are lurking, it could already fix ticket #4104. Note that you
can build Icon-O-Matic with referencable tracing turned on (generic/support/
Referenceable.cpp). The backtrace in #4104 would specifically hint at a
problem with assigning paths to shape and then unassigning them. Assigning
them didn't add the references that unassigning the paths removed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 13:16:40 +00:00
Stephan Aßmus 6eb37bdef7 * Copyright fixed
* Indentation updated.
* Better grouping of methods.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 12:22:10 +00:00
Stephan Aßmus 13e50c47a2 * Indentation cleanup.
* 80 chars limit
* Copyright fixed.
* Better grouping of methods.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 12:08:09 +00:00
Stephan Aßmus 0a5897b71f * Updated indentation style
* Better grouping of methods
* Fixed copyright
+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 11:47:51 +00:00
Stephan Aßmus 7e43502299 * Updated indentation.
* Better grouping.
+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 11:27:06 +00:00
Stephan Aßmus f81fb0e5f6 80 chars/line
+ alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 11:19:20 +00:00
Stephan Aßmus b87283e761 * Updated indentation and licence.
* Added experimental API warning.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 11:16:49 +00:00
Stephan Aßmus 2d6e435398 * Updated indentation style
* Added warning about this being experimental API.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 11:10:23 +00:00
Stephan Aßmus 97e88fa432 Indentation cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 10:58:22 +00:00
Stephan Aßmus aaa6b1228a Updated indentation style.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 10:45:36 +00:00
Stephan Aßmus 87ba0eaa2b Fixed for 80 char limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 10:32:41 +00:00
Stephan Aßmus a3840a518d One more little cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 10:31:03 +00:00
Stephan Aßmus c5c20344eb * Cleaned up the header
* Reordered methods to group them logically
* Use nothrow version of new when instantiating BCheckBox from archive.

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 10:30:27 +00:00
Stephan Aßmus d89b690d3b * Finished rewriting the header.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-25 14:13:59 +00:00
Stephan Aßmus b2c9ef19dd Replaced duplicated DriveSetup icon with zuMi's DiskUsage icon. According to
a Trac comment, Ryan prefers it. Another argument pro zuMi's version is that
it is a bit more neutral, since DiskUsage can be invoked on folders, not just
entire disks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-08 08:53:33 +00:00
Stephan Aßmus 5de5d05605 Fixed error in FFmpeg code that defined a function which is only enabled in
GPL mode. Later in the code, the function would only be used in GPL compile mode,
but this fixes the linking in non-GPL mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 21:55:15 +00:00
Stephan Aßmus e17680d332 Another update to the credits:
* Moved a couple people up from Contributors to Maintainers, since they gained
  commit acces.
* Shock! Matt Madia and Humdinger were missing!
* Added Koki back to Website team (after consulting him first).
* Added some more well deserved special thanks!

As always, please bring anyone I missed to my attention, I don't leave anyone
out intentionally!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 20:27:22 +00:00
Stephan Aßmus 38d967a3ea Include GPL code in the FFmpeg plugin during compilation, if the Haiku build
system has been configured to include GPL add-ons. This cannot be switched on
the fly without rebuilding all of the FFmpeg plugin, since the change in the
Jamfile defines will not automatically trigger a rebuild. So if you change your
configuration with regards to --include-gpl-addons, you have to touch config.h
(this commit touches it anyway).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 17:19:32 +00:00
Stephan Aßmus c06d7b2c40 Updated the Clockwerk package to a version that has persistent options in the
render settings window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 17:14:33 +00:00
Stephan Aßmus 630f5e2579 Disabled the rest of the GPL code as per the FFmpeg 0.5 README.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 15:21:37 +00:00
Stephan Aßmus 6d15d13087 * Disabled GPL H.264 ASM code
* Enabled WAV muxer.
* Updated configure line in config.h to be closer to what it could have been
  to produce the current config.h, but a lot of encoders and muxers are enabled
  manually at the moment, so this line wouldn't produce the config.h as is.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 14:54:17 +00:00
Stephan Aßmus 23190db721 Sorry, reverted r32185, as it was complete bogus and didn't even compile (got
confused about what I already compiled here). The sample format was already
specified.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 13:54:18 +00:00
Stephan Aßmus e48452878e * In the AVCodecDecoder, use the audio format of the original input format,
but specify it to 16bits/sample if it's still a wildcard. Make sure to
  allocate the scrub buffer with the correct sample size (was hardcoded to 2
  bytes per sample).
* In the AVFormatReader, specify the sample format for B_MEDIA_ENCODED_AUDIO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-07 13:18:26 +00:00
Stephan Aßmus 4ef213ddc4 Initialize the default fonts to NULL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 14:47:32 +00:00
Stephan Aßmus b9b5bf07db Fixed bugs when freeing the AVCodecEncoder.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 10:40:06 +00:00
Stephan Aßmus eb4b63e744 Fixed last minute change that I apparently didn't compile. Sorry.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 10:22:52 +00:00
Stephan Aßmus 6780c24d36 Encoder:
* Fleshed out the Encoder API to support parameter setters/getters and returning
  a BView for configuration. (Not yet sure if this is a good idea.)

BMediaTrack:
* Implemented all but one of the unimplemented methods in BMediaTrack. It should
  be working as far as that class is concerned, unless I missed some of the
  vision. ReplaceFrames() remains a stub, added a comment on why it probably
  stays that way.
* Release the Encoder reference in the destructor.

FFmpeg plugin:
* Refactoring to delay opening the AVCodec until encoding the first chunk,
  so that we can still adjust parameters.
* Support adjusting parameters via [Set|Get]EncodeParameters(). Currently,
  only quality is supported, added TODOs about supporting the bit_rate setup
  versus the automatically calculated bit_rate.
* Extended EncoderDescription by a bit_rate scale. The Encoder calculates the
  raw bitrate needed by the current media format, and then divides that
  number by the specific codec's bit_rate_scale, while taking into account the
  desired quality. This seems to work very well already (tested with MPEG4),
  although a lot more parameters could be specified for libavcodec, depending
  on the desired quality.
* Enabled the ogg muxer in libavformat, although it is currently still disabled
  in MuxerTable.cpp, because it rejects unknown codecs. Added TODO to this
  effect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 10:21:36 +00:00
Stephan Aßmus 048d05a613 Small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 10:11:06 +00:00
Stephan Aßmus 99304ab063 Do not use fWriter functions, when it has not been instantiated properly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 10:07:43 +00:00
Stephan Aßmus e61adaa1d4 Rene missed to remove this part when re-enabling the GCC4 package.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 08:14:23 +00:00
Stephan Aßmus 9be5fa8055 * Added small description to all OptionalPackages at the top.
* Replaced Pe GCC4 package with one that works again after the BToolTip
  addition.
* Disabled Firefox and Vision GCC4 packages for the time being, so that one
  at least gets a working hybrid installation.
* Added Clockwerk GCC2 and GCC4 packages. I also added it to the alpha
  release build profile, so that people testing the pre-alpha images have
  more easy access to it. I am not sure if it should stay there, since it may
  not be polished enough. Feedback welcome! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-04 16:25:24 +00:00
Stephan Aßmus def0e1edf6 Don't leak the MediaWriter instance.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-04 07:58:32 +00:00
Stephan Aßmus 037d052235 I have no idea how that ended up there... set the decoded audio format correctly
again. Should fix playback of any file where the ffmpeg plugin was responsible
for sound. (The symptoms were a crash into the debugger because of an unspecified
audio format...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-04 07:21:22 +00:00
Stephan Aßmus b785870101 Free the AVFifoBuffer data in the destructor...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 22:59:23 +00:00
Stephan Aßmus 6e567425c6 Now supports encoded audio. Added Dolby Digital (AC-3) encoding to test this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 22:53:52 +00:00
Stephan Aßmus 0c72a8aed4 * AVWriter::StreamCookie::~StreamCookie() incorrectly freed packet data that it
didn't own.
* We are supposed to open the AVCodecContext in the writer, even though we never
  use it. According to libav-users mailing list, this is necessary, since that
  will allocate and initialize some structures that are later needed in
  av_write_header(). How this is supposed to work for encoders that libavcodec
  does not support, or which we don't know how to map, I do not yet know. For
  now it doesn't matter and resolves the problem that audio tracks report the
  wrong stream duration.
* Some more improvements with regards to what information we need to fill out
  and which we don't.
* Use more sensible defaults for the stream bitrate, so that we get better
  quality video by default. This and other parameters can be calculated when
  we implement setting the quality.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 21:32:03 +00:00
Stephan Aßmus 1c992a5285 Fixed GCC4 build and added handling of allocation failures in
some places.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 10:33:52 +00:00
Stephan Aßmus 082caf3919 Added MediaConverter to the build. It still needs a nice new icon though...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 09:56:17 +00:00
Stephan Aßmus 3ca4a7b1be Implemented audio track encoding. There is something wrong with the PTS
generation for the packets and how I set the time_base in the AVStream and
AVStream->codec structures. This results in the audio streams of the written
files to report a much too long duration.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 09:35:30 +00:00
Stephan Aßmus 1e3ef6135f Quiet down some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:59:34 +00:00
Stephan Aßmus 0ed248f69d This should transfer the display aspect ratio correctly...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:54:48 +00:00
Stephan Aßmus ae8e567a34 * Auto white-space cleanup.
* Do not override pixel aspect unnecessarily.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:33:38 +00:00
Stephan Aßmus 60b6f36881 Fix compilation and small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:33:01 +00:00
Stephan Aßmus 54897d5c06 * Also pass the media_codec_info to the Writer::AllocateCookie(), since that
info is not part of the media_format otherwise.
* Finished enough in the AVFormatWriter and AVCodecEncoder that we can now
  actually create AVIs and MPGs and encode MPEG1, MPEG2 and MPEG4 video.
  But no audio as of yet. Also, there is no bit-rate/quality setup, so it seems
  libavformat is using the least possible bit-rate/quality.
* Enable some more muxers and encoders in the FFmpeg libs.
* Uses pixel format conversion from libswsscale, need to read the documentation
  again, but I think it makes the plugin GPL.
* Fixed includes in libswscale/swscale.h, this is now an unmodified FFmpeg 0.5
  header again (AFAICT).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:16:12 +00:00
Stephan Aßmus 7a97958b0b This should fix the GCC 4 build. The avformat code expects a non-const buffer
for the write() hook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 22:12:03 +00:00
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
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
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
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
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
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
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
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
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
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
Stephan Aßmus 6ac391b3ea Stubbed out Writer and WriterPlugin implementation. So far, Clockwerk shows
"AVI (Audio Video Interleave)" in the available output formats popup... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 00:17:53 +00:00
Stephan Aßmus 60c85abee5 Resolved TODO, make it clear who maintains the allocation of the
media_file_format array (it remains with the plugin itself, as with
DecoderPlugins).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 00:11:02 +00:00
Stephan Aßmus 7c06546a8e Implement the backend of get_next_file_format(). The AddOnManager maintains
a list for known media_file_formats. The internal IDs map to plugins.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31950 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 22:49:23 +00:00
Stephan Aßmus 891446f596 More cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31949 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 22:35:29 +00:00
Stephan Aßmus 81b2cc3fad * Style cleanup, no functional change.
* Added copyrights according to svn log.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 22:26:44 +00:00
Stephan Aßmus c74bdf0919 In theory, I added management of WriterPlugins and EncoderPlugins. When looking
at media_file_format.id, I wonder if this could work without having to get an
entry_ref from the server for a WriterPlugin, added TODOs to this effect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 19:14:04 +00:00
Stephan Aßmus c30ef79def Small cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 19:11:50 +00:00
Stephan Aßmus 92d809b687 Added interface to WriterPlugin to get all supported media_format_families.
Don't yet know if that's the way it's supposed to work...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 19:11:32 +00:00
Stephan Aßmus e4b11fdb81 Header indentation updated, changed "* " style.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 17:58:46 +00:00
Stephan Aßmus 57bb0b9fcd * Added DataExchange message constants and server communication structs for
retrieving WriterPlugins and EncoderPlugins from the media_addon_server.
* Enabled respective code in PluginManager (and fixed the copy&paste bugs),
  the server side is still missing, though...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 16:35:37 +00:00
Stephan Aßmus f3d79634e6 Beginnings of Encoder[Plugin] and Writer[Plugin] base classes and add-on
management.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 16:25:30 +00:00
Stephan Aßmus 3575ad0034 Small style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 16:24:00 +00:00
Stephan Aßmus 9d72a129c6 * Cleanup
* Added copyright.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 16:01:28 +00:00
Stephan Aßmus ddcf2f7a64 Removed unused headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 15:54:56 +00:00
Stephan Aßmus b1e235937a * Style cleanup.
* Added copyright.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 15:54:12 +00:00
Stephan Aßmus d7737cc84f Changed the somewhat bold BLocker usage to a more straight forward semaphore
based mechanism to pause and eventually cancel the WorkerThread. This also works
now when the CopyEngine is still collecting file informartion (ticket #4153).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 15:04:02 +00:00
Stephan Aßmus c4d98f827b Wow... pure luck this worked as well as it did...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 10:38:13 +00:00
Stephan Aßmus a794819144 * Draw the background for the column headers.
* Added PreferredHeaderWidth() to HeaderRenderer, so that it could add
  additional spacing required by the look. Not yet used.
* Added mouse hooks to HeaderView and very humble beginnings of view state
  support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 01:10:14 +00:00
Stephan Aßmus b237fdf90a Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 00:20:38 +00:00
Stephan Aßmus 55feb44e82 BScreen uses ~0 to denote the current workspace *index*. This should fix
ticket #4144. Untested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 21:24:02 +00:00
Stephan Aßmus 390b0f9486 Added TODO about why the implementation of StoreConfiguratoin() is broken
if it were ever called for an inactive workspace, as our BScreen API in theory
allows you to do (not the BeOS API).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 21:22:54 +00:00
Stephan Aßmus 5c7514c317 Patch by idefix: Make the source items behave exactly like the target items
with regards to the label & style cleanup. Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31854 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 17:35:51 +00:00
Stephan Aßmus c4bd44f3a9 The custom separator view is no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 15:49:22 +00:00
Stephan Aßmus 20f7be247e Actually, make B_PLAIN_BORDER look the default for simple separator lines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 15:48:51 +00:00
Stephan Aßmus 82ad5f999d Doh... added the BSeparatorView to libbe.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 15:06:03 +00:00
Stephan Aßmus 79f2db07a8 Implemented a BSeparatorView. It can be a horizontal or vertical line/border,
or also a label, optionally with a BView for the label. Some aspects of it have
not been exposed to throughrough testing, yet (archiving, label view),
the BAlignment support is also not well tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 14:15:55 +00:00
Stephan Aßmus 9b4593e3a0 * Fixed some problems of the dynamic layout, basically, the upper part of the
window will now stay fixed when you expand the optional packages and collapse
  them again.
* Updated the text about having prepared a partition, since we can now indeed
  create and delete partitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 13:37:42 +00:00
Stephan Aßmus 97fd0558de * Fixed bug introduced with recent commits that didn't keep the relative
offset of the mouse when resizing/moving windows when other constraints
  restricted the resizing or moving.
* Applied patch by Stephen Deken with changes by myself:
  - Windows now snap to the screen edges.
  - There is a snapping time window of 1.5 secs during which the window still
    snaps to the screen edge after it first snapped. Then there is a pause
    during which there is no snapping.
Thanks a lot, Stephen, and sorry it took so long, nice patch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 10:59:21 +00:00