The caller may specify any width & height now, rather than having to initialize the x264_param_t's fields directly.
Since it's reasonable to expect GUIs to only provide valid levels (if it doesn't, there's a bug that needs fixing), it's OK to abort when the requested level is not valid.
Remove mingw+libmkv dependency on libiberty.
Remove mingw+test dependency on libiberty.
Add build system support for propagating compiler DEFINES to contrib configure.
A patch for mpeg2 SetWindowLong() and GWL_USERDATA do not exist in recent versions of mingw-w64. Since we don't output to the display anyway, I've just disabled the code so things build.
WinGui: Implement hb_get_audio_bitrate_limits() in the Windows UI to provide only valid bitrate options. Also disabled the bitrate selection control for flac.
WinGui: Add support for new Mixdowns (6.1, 7.1, 7.1 (5F/2R/LFE), Mono left only, Mono Right only). Please note this will break any presets that currently have 6ch (aka 5.1 or 6 Channels Discrete) Presets must be re-created.
Add autotools { autoconf, automake, libtool } as contribs.
Primarily necessary for OSX platform after Xcode 4.2.x, but also useful for
any platform which is missing or has obsolete versions.
1. add configure option: --enable-local-autotools
2. --enable-local-autotools is automatically TRUE when any of { autoconf, automake, libtool } are not found in path.
3. --enable-local-autotools causes contribs of { m4, autoconf, automake, lib tool } to be built
4. add m4 to contrib (prerequisite for autoconf)
5. add autoconf to contrib (prerequisite for automaker and many contribs)
6. add automake to contrib (prerequisite for many contribs)
7. add libtool to contrib (prerequisite for many contribs)
8. All contribs (except the autotools themselves) automatically mark autotools as a prerequisite.
9. $(AUTOTOOL_MODULES) is available if other non-contrib modules need to mark as prerequisite.
10. PATH is automatically prefixed with contrib/bin for all modules, all targets.
New supported samplerates: 8, 11.025, 12, 16 kHz.
Now 8, 11.025, 12, 16, 22.05, 24, 42, 44.1, 48 Khz are supported.
Unsupported samplerates are sanitized to the closest samplerate for all encoders.
Samplerates < 32 kHz are now forbidden for AC3 encoding (sanitized to 32 kHz). Most AC3 decoders don't support such samplerates.
New upmixing: 3.0 (Front Left, Right & Center) can now be upmixed to 5.1 to preserve the center channel.
New mixdowns:
6.1 (Front Left, Right & Center, Surround Left, Right & Center, LFE)
7.1 (Front Left, Right & Center, Surround Left & Right, Rear Left & Right, LFE)
-> available to Vorbis & FLAC encoders for compatible input channel layouts
7.1 (Front Left, Right & Center, Front Left & Right of Center, Surround Left & Right, LFE)
-> available to AAC encoders (ca_aac, ca_haac, faac) for compatible input channel layouts
Mono (Left Only): Stereo to Mono by discarding the Right channel
Mono (Right Only): Stereo to Mono by discarding the Left channel
-> available to all encoders for non-Dolby Stereo input
The "6-channel discrete" mixdown becomes "5.1 Channels".
New bitrates: 960 - 1536 Kbps.
This lets users work around poor audio quality in crappy encoders by throwing more bits at them.
Bitrate limits have been re-worked and re-tested for all encoders.
dynaflash [Mon, 27 Aug 2012 18:36:17 +0000 (18:36 +0000)]
MacGui: Add support for a secondary audio language track.
- Patch courtesy of Dennis Frommknecht ... thank you!
- Adds a second language preference in Preferences > Audio
-- If the corresponding language is not available in the source, the group for this language is not added. If neither default nor alternate language is found, the first audio track would be added (as it is already). The alternate language can also be left empty in which case no second group is added.
-- The implementation ensures that the same track is not added twice (if default and alternate language are identical). It is also flexible enough to support an arbitrary number of languages. They just have to be added to array "preferredLanguages" at the beginning of method "addTracksFromPreset" (HBAudioController.m).
The original patch and explanation can be found at https://reviews.handbrake.fr/r/262/
Rodeo [Sun, 26 Aug 2012 14:35:54 +0000 (14:35 +0000)]
Use a more direct workaround for the DTS-ES XCh decoding issue.
The workaround committed in revision 4896 works for now, but if/when we add 6.1 encoding, we'll want to decode that discrete center surround channel. We could special-case it, but the issue would still be present under 64-bit Windows.
Instead, disable the buggy assembly optimizations until they are fixed.
sr55 [Mon, 20 Aug 2012 19:20:51 +0000 (19:20 +0000)]
Handbrake Toolbar Icons by Nik Pawlak (holla@nikpawlak.com, @nikpawlak, http://nikpawlak.com)
For use only with Handbrake software and directly related non commercial projects.
sr55 [Sun, 19 Aug 2012 16:43:13 +0000 (16:43 +0000)]
WinGui: Prototype of process isolation support (to be used for libhb when this is fixed up). Uses WCF for process communication.
Initially for the scan service only, encode service proxy coming soon.
No changes required for the UI application. Two new implementations of IScan and IEncode will act as a proxy between the UI and the Server Service Layer.
Rodeo [Wed, 15 Aug 2012 15:25:06 +0000 (15:25 +0000)]
declpcm: modify hdr2layout.
AV_CH_LAYOUT_STEREO w/7 or 8 channels is invalid anyway, and will get sanitized in hb_ff_layout_xlat(). Doing it in declpcm directly avoids an unnecessary call to that function, with identical results.
Rodeo [Wed, 15 Aug 2012 15:15:35 +0000 (15:15 +0000)]
Check the return code of hb_audio_resample_update(). This allows us to log an error when it fails, so we know which decoder actually called the function.
Rodeo [Sat, 11 Aug 2012 09:24:54 +0000 (09:24 +0000)]
Fix a bug where we were attempting to downmix Dolby Surround (AV_CH_LAYOUT_STEREO_DOWNMIX) to AV_CH_LAYOUT_STEREO via libavresample (which is not implemented).
Rodeo [Fri, 10 Aug 2012 17:01:46 +0000 (17:01 +0000)]
Restore the old hack that disables DTS-ES extension processing. We support 6.1 now, but libavcodec's assembly optimizations are buggy under Win64, causing audio distortion when canceling the matrixed Cs channel out of Ls and Rs.
This can be removed when the bugs are fixed.
Note: unlike before, we still present the stream as 6.0/6.1 to users; it simplfies the code and doesn't make much difference since we always downmix to at least 5.1 anyway.
jstebbins [Thu, 2 Aug 2012 22:17:38 +0000 (22:17 +0000)]
build system: enforce an order to applying contrib patches
New patch for a52dec has a dependency on another patch and must be
applied after it. Patches appeared to be getting applied in whatever
order the filesystem presented the files in.
jstebbins [Wed, 1 Aug 2012 23:05:00 +0000 (23:05 +0000)]
libhb: Allow control of audio mix normalization
Since switching to libavresample for audio mixing, our output
volume levels have been reduced because libavresample
does mix level normalization by default. This change
applies a patch to libav to allow us to disable this behavior
and adds a new field to hb_audio_config_t to allow the
hb frontends to control this feature.
Fixes an issue in assembly code that could result in very poor performance when encoding with x264 & AC3 Passthru.
Thanks to our John Stebbins for finding the cause of the bug, and to x264 & Libav developers for fixing it.
Miscellaneous other fixes and improvements, including multichannel Apple Lossless audio decoding support.
Also, clean up our Libav configure options (group things together, disable all hardware accelerations with one switch instead of individually, and disable building the unused avfilter library).
Having the audio->config.out.mixdown start at 0 caused it to be treated as usigned (under OS X at least), causing the sanitizing code in work.c to fail:
line 820, (audio->config.out.mixdown <= 0) would evaluate as false, and so the best mixdown was being set instead of the default one.
WinGui: Array of fixes and changes
- Change Font rendering to "Display" mode to see if folks prefer it. If not it can be reverted back.
- Fixes to Queue Edit for the Audio/Subs panel. These should now populate correctly.
- Thrown the Drive detector onto a background thread as it seems the windows drive management service can get "stuck" and block the app from starting while it waits.
Enable threaded decoding for ProRes video sources.
The bug which was worked around by disabling threading has now been fixed in Libav, and I didn't find any issue when testing additional ProRes sources.
More fine grained progress statistics during subtitle scan
Make reader compute subtitle scan progress based on timestamps seen and
duration instead of chapter marks.
LinGui: remove obsolete ubuntu lucid rule
Lucid was removed a while ago, but I missed the rule that pushes the
now non-existent source package to the PPA build server.
Use libav for dts audio decoding instead of libdca
libdca has no advantage over libav for dts audio decoding. It doesn't do
drc and it's downmix capabilities are actually inferior to libav. So this
completely removes libdca from libhb
decpgssub: simplify code (merge several if/else blocks).
Also, discard empty subtitles until we've seen the first non-empty sub, as they are not needed. This can happen when encoding from the middle of a source, for example.
WinGui: Improve the code behind the taskbar source menu. Note, The Disc insert detection still isn't in place, so it will only show the initial available drives, it won't detect disc changes yet.
This moves some logic outside of the decoders/encoders and into a single place.
Encoders that do their own remapping (faac, vorbis) can still generate a remap table with hb_audio_remap_build_table(), without having to use hb_audio_remap().
bump libav to libav-v0.8-2197-g1a068bf
Resolves several deprecated api's
Eliminates several libav patches
Eliminates our builtin downmix in favour of avresample
Eliminate HB_INPUT_CH_LAYOUT_* and replace with AV_CH_LAYOUT_*
Resolves 6.x and 7.0 input channel layout issues HB had
Adds downmix support to declpcm. We never had it!