van [Tue, 21 Apr 2009 05:09:33 +0000 (05:09 +0000)]
- Get rid of deadlock that would halt processing some mkv files.
- Interleave media streams to reduce player buffer requirements and initial latency.
- Add support for intermittent media streams like subtitles or closed captions (we don't have any of these yet but may one day).
The major changes to libmp4v2 include the new Tags API for iTunes metadata management
and new API to set track chunk duration limits. Additionally, the patches for libmp4v2
are no longer required and libmp4v2 should build significantly faster as it now
enabled precompiled headers on various platforms.
Tags API effects common.h, decmetdata.c and muxmp4.c and replaces the operations in
a near 1:1 mapping for functionality except all access happens in between alloc/fetch
and store/free pattern.
libhb no longer checks the bits of cover-art in order to determine image type. That
functionality is now delegated to libmp4v2; and libhb identify_art_type() has been
removed accordingly.
Chunk duration support has been added which makes use of new API from libmp4v2:
And muxmp4 adds new internal function MP4TuneTrackDurationPerChunk() which is
invoked after all video/audio track creation which tunes chunk duration to the
equivalent of 4-frames in track timescale; as per van's suggestion.
BuildSystem: fix darwin/xcode to avoid double-configure/build after svn up
- build system automagically rebuilds certain files from libhb upwards after
an svn up to maintain accurate repository information in binaries; if building
with xcode the process was inadvertantly repeated on subsequent 'make'.
- enhanced make/xcodemake to record the user's environment when shunted through
xcode. this should help in diagnosing build issues from Xcode.app in the future.
Enable DTS passthru for matroska container
since we have no way to create silent dts frames for insertion to
maintain sync, frames from other streams may be dropped when there is
a sync problem on the DTS stream
LinGui:
- add volume label to dvd source shortcuts in the file menu
- move loose crop option from preferences to picture settings
- add label to show cropped dimensions to picture settings
- added libtool patch for xvidcore to fix build error --> configure: error: cannot run /bin/bash ./config.sub
- bug was reported on Unbuntu 8.10 and is heterogeneous in nature, exposed by libtool circa 2.2 -> 2.2.4
This patch adds mingw32 cross-compilation support to HandBrake trunk to
produce native win32 binaries. The main benefits are the binary does not have
any Cygwin runtime requirements and various host platforms can be leveraged
to build HandBrake.
Cross-compilation toolchains are complex to setup and recommended for experts
only; but once setup it can build at speeds similar to native builds,
on Darwin or Linux.
BUILD INSTRUCTIONS:
Add mingw32 toolchain to beginning of your path and take the toolchain
prefix from gcc (eg: i386-mingw32-gcc) and pass to configure:
DOWNLOADS:
Contrib downloads need to be seeded with:
- pthreads-w32-2-8-0-release.tar.gz (new)
- xvidcore-20090311.tar.gz
SUMMARY:
Specifically, all GUI trees are not impacted.
configure
- added --cross=PREFIX
- reworked search for gcc and cross-compile related tools to use prefix
contrib/
- sub-patches added as needed for mingw
contrib/xvidcore/
- bumped from 1.1.3 -> 1.2.1+ (daily 20090311)
- reconstituted P01-cygwin.patch
- created new P00-darwin.patch needed for macho64 asm flag on x86_64 arch
van [Sun, 12 Apr 2009 06:59:40 +0000 (06:59 +0000)]
Don't crash during scan when a DVD contains an invalid PTT or PGC index. (Bug & fix from user macrule in forum post http://forum.handbrake.fr/viewtopic.php?f=4&t=10291&sid=8b5a573526397f7c26c44e2a50c6dc63#p54152)
MacGui: Put AVI, OGM and Xvid out of our misery
- Note: renders custom presets using these obsolete (not an issue for built in presets as none have ever used them for good reason).
LinGui: create custom widget that manages multiple overlay layers
composites the layers using per-pixel and global alpha values
the preview hud now uses this.
van [Sun, 5 Apr 2009 03:55:12 +0000 (03:55 +0000)]
Fix botched r2256 as suggested by forum user greed in post http://forum.handbrake.fr/viewtopic.php?f=4&t=9758&sid=b6deb84bf0f30e9dfa504e19d4c2d5c3&p=53722#p53722
LinGui: preview and picture window changes
- split picture settings into it's own window
- create overlay for preview window (like the mac ui, but not a pretty)
- save window positions and preview display status between sessions
LinGui: fix some build dependency issues
- make configure depend on configure.ac, Makefile.am and src/Makefile.am
- add new icons to resource dependencies
WinGui:
- Fix for Destination Browse button exception is destination is empty. (http://forum.handbrake.fr/viewtopic.php?f=12&t=10140)
- Added warning if user is about to add 2 or more items to the queue with the same destination path.
BuildSystem: minor change adding --force to launched builds
- helps with people who for some reason need to re-start the build without manually cleaning build/ dir.
jbrjake [Tue, 31 Mar 2009 17:19:37 +0000 (17:19 +0000)]
Adds a job->frame_to_stop variable similar to the existing pts_to_stop parameter, for ending an encode after a certain number of decoded frames.
CLI: Replaces --stop-at-pts and --stop-at-duration with a general --stop-at option. The argument is in the form unit:amount. So --stop-at duration:10 for a 10 second encode, --stop-at pts:300300 to end when that timestamp is reached, or --stop-at frame:1000 to stop after reading 1000 frames.
jbrjake [Tue, 31 Mar 2009 16:46:59 +0000 (16:46 +0000)]
Flush frames from the delay queue in render. This should add an extra couple of frames to the end of output when using same as source fps or vfr detelecine. Thanks, eddyg!
jstebbins [Fri, 27 Mar 2009 18:55:28 +0000 (18:55 +0000)]
LinGui:
- rewrite tool that creates a quoted string from a file in python
resulting string is suitable for use as a C char*
- create_resources, remove redundant code from cut/past error
jstebbins [Fri, 27 Mar 2009 15:58:11 +0000 (15:58 +0000)]
LinGui:
- add some error handling to resource parser
- modify how icons are deserialized in ghb since the python resource
parser can't easily serialize the old way
jstebbins [Fri, 27 Mar 2009 02:18:53 +0000 (02:18 +0000)]
LinGui: rewrite my resource parser in python.
It's not quite ready for use because it requires python 2.6 and none
of the distributions have 2.6 yet. I'm getting a head start.
This is the first of a few tools that I'm rewriting in python
because compiling them at build time causes problems in a cross
compiling environment.
jstebbins [Sat, 21 Mar 2009 18:48:41 +0000 (18:48 +0000)]
LinGui: fix crash at start of a 2 pass encode
if you started an encode, then scanned another source, the second pass
would crash. I was inadvertently deleting the 1st pass log file.
konablend [Fri, 20 Mar 2009 16:37:07 +0000 (16:37 +0000)]
Cygwin: removed faad2 patch no longer required as per faad2 bump.
- added -N flag to contrib usage of patch to ignore patches which appear already applied.
jbrjake [Thu, 19 Mar 2009 17:30:56 +0000 (17:30 +0000)]
Ports tritical's EEDI2 deinterlacing interpolator from AviSynth and implements it in the decomb filter as an optional, non-default substitute for yadif's internal, lower quality spatial predictions.
EEDI2 interpolation is enabled by setting mode (the first decomb parameter) to 5. Decomb now accepts -1 as a spatial metric (the second parameter), to bypass combing detection and force deinterlacing of all frames in the specified mode. Additional parameters have been appended to the end of the settings list for decomb, to specify various settings used by EEDI2. The default values for those should work well.
dynaflash [Mon, 16 Mar 2009 14:55:44 +0000 (14:55 +0000)]
MacGui: When launching a second instance of HB, warn of existing instance and do not alter the existing queue.
- Note: this does not mean multi-instance encoding off of one queue file works. For now its just better than messing up the first instances queue. Also useful for ui developing on one instance sans encoding while actually encoding with another instance.
sr55 [Sun, 15 Mar 2009 14:12:48 +0000 (14:12 +0000)]
WinGui:
- Enable tabstops on the add preset window.
- Confirm closing of program if Queue is running (ExDeus)
- Minor fixes/cleanup from Exdeus (Destination Browse Button, Tools > Show Queue, MessageBox in frmQueue)
- Code cleanup in a few other files.
dynaflash [Fri, 13 Mar 2009 19:56:59 +0000 (19:56 +0000)]
MacGui: setUsesThreadedAnimation to false for the progress indicators in the main window for 32 bit as well as 64 bit. also for fMovieCreationProgressIndicator in th preview window.
- For live preview this fixes an issue where the qtmovieview controller was not in focus.
dynaflash [Thu, 12 Mar 2009 21:48:16 +0000 (21:48 +0000)]
Macgui: set "setUsesThreadedAnimation" to false for the two main window progress indicators for 64 bit builds.
- Fix by jbrjake.
- Fixes an issue where clicking on the advanced tab renders the progress indicators inanimate and the rest of the ui sluggish.
- jbrjake found a note in the 10.5 dev notes regarding this possiblility. It was also noted that unless specified, setUsesThreadedAnimation defaults to true.
- Also there is a mention in the documentation that "... creating a thread just for the progress indicator can actually slow down your application." for NSProgressIndicator though no mention of 64 bit builds specifically.
konablend [Wed, 11 Mar 2009 05:18:47 +0000 (05:18 +0000)]
BuildSystem: darwin + Xcode dependencies and enhancements
This changeset focuses on a disconnect between Xcode targets HandBrakeCLI and HandBrake.app when
changest to external dependencies are made. The use case is to touch any .c file in libhb
which then builds .o and re-creates libhb.a; next the Xcode targets should at least re-link.
This did not happen because link-flags are used to add libhb.a and contrib libraries in Xcode;
which effectively hides them from Xcode.
The solution removes libhb.a from link-flags mechanism and places libhb.a as a framework library
known to Xcode; and the expected re-linking occurs. contrib libraries will continue to use link-flags
but since libhb.a has coarse-grained dependencies on contrib modules this will also cause Xcode
targets to re-link.
Further enhancements made to Xcode project:
- Xcode now scans any .c files for .h file dependencies; will help with Xcode sources;
the effect against libhb.a is moot; libhb.a will be rebuilt by external system anyways.
- libbz2 and libz are now treated as framework libraries; it's more correct than listing
all libraries as link-flags.
- moved FRAMEWORK_SEARCH_PATHS to project-level for consistency in future targets.
- moved LIBRARY_SEARCH_PATHS to project-level for conistency.
- enabled GCC_WARN_TYPECHECK_CALLS_TO_PRINTF at project-level.
[this changeset should not be a factor for other platforms; no side effects are expected]
van [Wed, 11 Mar 2009 05:11:02 +0000 (05:11 +0000)]
Detect bogus cell start and last addresses while scanning each title so we don't crash later in dvdread. Fix from user "greed" in forum thread http://forum.handbrake.fr/viewtopic.php?f=4&t=9758&start=0
konablend [Tue, 10 Mar 2009 22:43:11 +0000 (22:43 +0000)]
Cygwin: ffmpeg build tweaks
- bug: issues with universal input (including aac in mp4, wmv etc)
- fix: add -fno-common to GCC
- correctness: add --enable-memalign-hack as per ffmpeg docs
- these issues were possibly a regression introduced with the new build system
- a positive side effect to the build system is the availability of new makevar
'<MODULE>.GCC.args.extra' which is a free-form way to add extra cflags to GCC functions.
[this changeset does not effect any other platforms]
konablend [Tue, 10 Mar 2009 07:05:42 +0000 (07:05 +0000)]
BuildSystem: initial _skeleton_ asm support for libhb.
- asm disposition is DISABLED.
- it can only be enabled via a hidden configure option (--enable-asm) but will only be useful once asm code is checked-in.
- this is checked-in early to not lose some internal configure enhancements made during asm build support impl.
konablend [Tue, 10 Mar 2009 01:50:47 +0000 (01:50 +0000)]
BuildSystem: doc cleanup
- drop /wiki as this cannot be displayed without trac 'include' components or plugins.
- drop pre-generated txt files from /trunk as wiki pages will be posted manually.
- drop auto-posting of generated wiki from doc/module.* .