WinGui:
- Added theora support.
- Renamed the video encoders to match the mac gui.
- Made 64bit/OptimizeMP4/ipodatom invisible when non .mp4/m4v formats are in use
Avoid a divide by 0 in encfaac.c caused by the mixdown not being specified
for AAC tracks (due toi a bug in HandBrake.app). Ensure that a mixdown
is always specified if not doing passthrough.
van [Tue, 15 Apr 2008 19:14:03 +0000 (19:14 +0000)]
Move clock recovery code from reader to demuxmpeg so it sees all frames & not just the ones we happen to be encoding. This change gives a more accurate clock and allows us to once again ignore audio during pass 1 of a 2 pass encode.
MacGui: Fix AC3 Passthru bitrate setting in audio tab when using a legacy preset from the old audio system.
- Now properly sets the source track input bitrate as the output bitrate in the NSPopUpButton so it displays correctly in the audio tab as well as the queue and allows you to make new presets from an older one.
van [Sun, 13 Apr 2008 23:31:37 +0000 (23:31 +0000)]
Fixes for different number of frames between pass 1 & 2, missing frames at end, and an deadlock with pcm audio.
- since the SCR clock recovery is done in reader.c we can't currently skip audio frames during pass 1 or we miss clock changes signaled by those frames & end up dropping more video frames in pass 1 than pass 2.
- since many modules buffer frames we can't tell if we're done just by looking for empty fifos. Send an empty buffer to mark end-of-stream all the way along the processing pipeline & use it to flush internally buffered data.
- in a processing pipeline you're done when the end of the pipe says your done. add a thread status variable so we can tell when individual threads are finished then make do_job wait until the encoder thread is done so that we're sure all the frames have been processed and sent to the muxer.
- since the muxer alternates between reading video & audio packets we have to have enough buffer in the audio pipeline to handle a video-frame's worth of audio packets (33ms). Since pcm packets are <1ms we need >60 slots in the audio fifos or we'll deadlock.
Bumps x264 to the latest snapshot tarball, which version.sh translates from hashed gobbledygook to 818 d4b7d2b.
Removes the VAQ patch since it's been committed since we last refreshed the lib.
WinGui:
- Fixed issue where Audio encoder would be changed if chapter markers was enabled/disabled.
This was an issue with the function that populates the audio encoder drop downs based on the file extension
WinGui:
- Bug fixes with the audio panel in relation to not loading the apple tv preset correctly.
- Small UI font size issue fixed with sample rate dropdowns.
WinGui:
- (Scratch last checkin. Audio panel now has a sensible implementation.) Audio Tracks 3 now invisible until audio track 2 has a selected track and Track 4 is also invisible until track 3 has a selected track.
WinGui:
- Expands the audio tab to 4 audio tracks. This will require through testing. Users should avoid track combinations such as 1 & 4, 1 & 3, and 2 & 4. Instead, 1 & 2 & 3 or 1 & 2 or 2 & 3 & 4 should be used.
MacGui: Do not call customSettingsUsed until we have an intelligent way to determine selected audio variables compared to presets so that presets stay selected.
MacGui: Implement per audio track drc
- Uses a small circular slider for each track
- Stops on ticks for .25 granularity
- Presets regress from global drc to apply it to all tracks if used in past custom preset.
MacGui: Fix errant encode done growl alert and send to MetaX function when finishing the first pass of a two pass encode.
- We now only send the alerts after an encode finishes as opposed to when a job *within* an encode finishes.
MacGui: Enhance Growl notifications and send to metaX so that each encode is handled as it comes off of the queue.
- Previously only the last encode of a queue gave the finished growl notification and was sent to metaX. Now if specified by the user they happen as the encodes progress through the queue.
MacGui: Fix the DTS source audio mixdown for an attempted AC3 passthru audio track
- Since AC3 Passthru will not work with a DTS audio source track, we us mp3 dpl2 for avi and aac dpl2 for mkv and mp4.
- Revert HandBrake.plist to pre 1385 as it was errantly checked in with that commit.
MacGui: Implement per track audio settings.
- Expands the number of audio tracks the macgui can encode to 4.
- Everything except drc is now set on a per track basis
- Be Gone self limiting "Codecs" PopUp !
- Can now use any audio codecs that the container will support in the same encode
- The previous "AAC + AC3" bizarre hybrid is now deprecated and you simply set them up per track
- Implement full audio list readout in the queue, tracks are now show one per line in a list like fashion
- Queue is no longer hard coded for just two tracks.
- Preset code updated to regress to handle previous presets that utilized the codecs popup to determine audio scheme to use
- Preset code now handles everything except language selection.
- The Format, Video Encoder and Audio codes are all now stored in the appropriate NSPopUp tags for very easy retrieval.
- Crazy format, codecs struct is now gone as we get that from the tags.
- AC3 Passthru properly shows the input bitrate and 48 khz samplerate in the appropriate popups
- Added Theora video encoder to OGM container
- Added libtheora to the libhb dylib
- NOTE: The check against trying to use AC3 Passthru on a DTS track is broken on the encoder popup.
van [Sun, 6 Apr 2008 22:28:22 +0000 (22:28 +0000)]
- Fix sync problems associated with sample rate conversion - the truncation error of the sample rate ratio would build up over time until the audio substantially lagged the video.
- Don't feed audio through the sample rate converter if we don't have to - it's faster not to & it can introduce a delay that perturbs a/v sync.
van [Fri, 4 Apr 2008 16:49:33 +0000 (16:49 +0000)]
Minor chapter cleanups.
- put chapter number in buf rather than a 'new chapter' flag.
- use that chapter number to index chapter text in muxers so a dropped chapter doesn't make all subsequent chapter labeling wrong.
- get rid of most of the chapter logging & just output one line giving the chapter text, number, frame & time.
- fix a bug in sync that could cause chapter marks to be lost.
- New Audio Panel (Query Parser, Query Generator, Preset Loader Functions all updated)
This includes minor changes to the UI (e.g in the 'Output Settings' box)
- UI Improvments for Windows Vista and XP where non Classic theme is used.
- Activity Window can now view the log whilst an encode is going. (Doesn't live update... yet TODO!)
- Changed Radio File/Folder option for Source Browse to a single checkbox. Folder view by default.
Check "File mode" for file selection dialog.
- Misc other UI changes
- Update checker won't display an error message during statup if one occurs whilst checking the update.
The message was hidden behind the splash screen. This is now not a problem.
van [Thu, 3 Apr 2008 04:40:30 +0000 (04:40 +0000)]
- hardware players don't tolerate video or audio frames that overlap in time & some dvd mastering techniques take advantage of this. Get rid of fudge factors so we drop all such frames otherwise they screw up our a/v sync.
- fix video timing 'off by one': since we look one frame ahead time has to actually advance on the next video frame. time that stays the same guarantees a one frame overlap which really messes up mp4 durations.
CLI: Update fix AppleTV preset audio.
Accidently hard-coded it to first audio track. Also, you had to specify both audio tracks.
Now it only needs one specified and will use that for both.
Also, update the --preset-list
van [Wed, 2 Apr 2008 17:55:48 +0000 (17:55 +0000)]
scan and pcm audio fixes.
- lpcm audio fixed to handle 24 bit & interpret header correctly.
- get aspect ratio from libmpeg2 rather than doing it ourselves.
- announce when aspect ratio changes during preview scan.
- if aspect ratio isn't either 4:3 or 16:9 complain & map to either 4:3 or 16:9 (whichever is closest).
- start stream previews from file position 0 rather than 1/11 in case there's only on mpeg sequence header in the file.
- don't give up on a file just because we can't get a preview due to a missing sequence header - only give up if we can't get any previews.
- get audio bitstream characteristics during preview in a uniform way (we were treating PCM & MPEG audio specially which resulted in not getting their sample rate which caused a divide by zero in sync).
MacGui: Fix audio issue where both tracks would use the first source audio track regardless of what source track was chosen. Bug introduced in rev 1367
CLI: "Fun with string theory." Updates needed for new audio layout.
--audios takes a comma seperated list (or range) of the requested output tracks.
The other audio settings take either one argument, in which case it applies across
all tracks, or a comma seperated list that applies to each track.
New internal audio handling.
Each audio track contains it's own settings for codec, bitrate, samplerate, etc.
This allows for very complex combinations of audio tracks if desired.
jbrjake [Sun, 23 Mar 2008 20:18:08 +0000 (20:18 +0000)]
CLI:
- If title->detected_interlacing is true, mention it in the non-verbose scan output
- Fixes a minor VFR bug that got the filter chain order wrong if other filters than detelecine were applied.
jbrjake [Sun, 23 Mar 2008 19:53:39 +0000 (19:53 +0000)]
= Adds an hb_detect_comb() function that indicates whether or not a frame shows interlacing artifacts.
- Utilitizes that function in scan.c to analyze the preview frames
- Sets a new title->detected_interlacing variable to true if half or more previews show combing, and warns the user in the log.
jbrjake [Sat, 22 Mar 2008 14:33:09 +0000 (14:33 +0000)]
Makes snapshots the default build method for both make and jam. To build a regular release with jam, use "./configure --release". To build a regular release with make, use "make all".
jbrjake [Sat, 22 Mar 2008 00:16:22 +0000 (00:16 +0000)]
"If one would give me six lines written by the hand of the most honest man, I would find something in them to have him hanged."
- Banishes libdvdcss, removing DVD decryption from HandBrake's binaries.
- For decrypttion, the MacGui and Mac CLI now will load at runtime VLC's dynamic library of dvdcss if the media player's available on the user's system.
- Linux users can build with a statically linked lib of dvdcss by using ./configure --libdvdcss, which will download it from a remote third party (videolan.org).
jbrjake [Thu, 20 Mar 2008 16:27:20 +0000 (16:27 +0000)]
Reverts r1254, so ffmpeg-in-avi again reports as DivX 5. Giving it the "correct" codes was a problem for lame Windows media players and didn't help the CrackBerry user who requested it. Moral of the story? Greet user requests with skepticism.
van [Thu, 20 Mar 2008 05:28:36 +0000 (05:28 +0000)]
Fix two of my stupid bugs that prevented using the queue with transport streams:
- keep a cache of the pid/substream id mappings from each scan rather than assuming an encode will immediately follow a scan (there will be lots of scans followed by lots of encodes when the queue is used).
- rewrite a few things to get rid of static variables. hb_ts_stream_decode is called by both scan & reader and they're in different threads. All the working storage & state has to either be in the stream struct or on the stack so it's private to the calling thread or it gets corrupted when doing a scan in the middle of an encode.
sr55 [Wed, 19 Mar 2008 22:06:07 +0000 (22:06 +0000)]
WinGui:
- Fixed a bug in the startup init sequence. H264 window needed to be generated before the presets were init'd.
- Setup the tab markers for the h264 tab
sr55 [Wed, 19 Mar 2008 21:29:22 +0000 (21:29 +0000)]
WinGui:
- The x264 tab has been replaced by a completely new panel with widgets for many of the available x264 options. It operates in a similar way to the macgui's panel. (It however will not disable widgets based on selections on other widgets yet(like the macgui does) this will come later when the bugs have been worked out.
jbrjake [Wed, 19 Mar 2008 18:34:36 +0000 (18:34 +0000)]
- Method for generating snapshot builds marked with the svn revision by using ./configure --snapshot; ./jam
- Targets for generating snapshot Mac universal binaries by using make snapshot and packaging Mac snapshot releases
- Sets the current date for HB_BUILD in jam
- Sets the Mac .plist version and build based on the jam/make config
- Bumps the version number to 0.9.3
dynaflash [Mon, 17 Mar 2008 15:09:39 +0000 (15:09 +0000)]
MacGui: Write version info the the activity log and activity window
- writes the Handbrake version number and build number to the activity window and log text file upon startup (this no longer occured out of libhb once we updated the update system to Sparkle)
- Add writing the version info upon clearing of either the log file or the window, this way we have version info from users even if they have cleared the top of the logs.
sr55 [Sun, 16 Mar 2008 16:50:29 +0000 (16:50 +0000)]
WinGui:
- When selecting a destination, The audio encoder selection dropdown now repopulates with only compatible encoders (based on file container)
- Misc other changes
van [Sun, 16 Mar 2008 06:13:33 +0000 (06:13 +0000)]
Should have removed this as part of the r1341 checkin - we now add silence based only on gaps in the timestamp sequence. The heuristic of looking at what fifos are full or empty can misbehave based on random variation in the thread scheduling.
van [Sat, 15 Mar 2008 08:02:08 +0000 (08:02 +0000)]
- Add mpeg2 "Standard Target Decoder" clock recovery to the low level mpeg stream reader so we don't have to guess about the clock in sync.
- Since sync now has a fairly reliable clock, make it just trim excess audio or video and fill holes so that we maintain cross media sync.
- Redo the TS-to-PS transmuxing code to work on smaller units so that we can reliably convert the TS clock (PCR) to a PS clock (SCR).
van [Sat, 15 Mar 2008 07:54:22 +0000 (07:54 +0000)]
minor bug fix: AC3 passthru audio frames with no pts were getting a bogus start and stop time which caused bad things to happen later on in sync.c. Move up the code that generates a pts for non-passthru frames so that it applies to both.
sr55 [Fri, 14 Mar 2008 19:47:17 +0000 (19:47 +0000)]
WinGui:
- Users can now have their own presets appear in the presets bar. They can both add and remove their own presets.
- Anamorphic option is now a dropdown menu like the macgui.
- Video tab re-arrange to be consistant with the macgui.
- Video Framerate dropdown: Changed Automatic to Same as soure (same as the macgui)
sr55 [Fri, 14 Mar 2008 15:52:04 +0000 (15:52 +0000)]
WinGui:
- Added warning about UNC file paths
- Removed the generate presets.dat function on start-up. (It wasn't really needed)
- Changed a few tooltips
- Switched back to .Net version 2
jbrjake [Wed, 12 Mar 2008 17:31:39 +0000 (17:31 +0000)]
MacGui: When selecting one x264 option disables another (like turning off CABAC disables trellis), remove the disabled option from the string and fade the widget out of view with an animation proxy.
dynaflash [Fri, 7 Mar 2008 20:05:46 +0000 (20:05 +0000)]
MacGui: Clean up some formatting and errant comments left over from some of the snippets I robbed out of HBQueueController on the drag and drop preset commit. :)
dynaflash [Fri, 7 Mar 2008 19:43:17 +0000 (19:43 +0000)]
MacGui: Initial implementation of drag and drop in the presets drawer.
- Allows drag and drop arrangement of custom user presets
- Does not allow reordering of built in presets.
- Sorting of presets now done only by type ie. built in and custom user.
- Provides functionality for future nested presets and drag and drop arranging.
- Subclasses the presets outline view for better control over drag and drop behavior
jbrjake [Fri, 7 Mar 2008 15:28:52 +0000 (15:28 +0000)]
Applies Dark_Shikari's Variable Adaptive Quantization patch v0.48 to libhb's copy of libx264. This major change to x264 drastically reduces blockiness on flat parts of the picture as well as blurring. It is on by default; to disable it, add "aq-strength=0" to your x264 options string. For now, it's only applied to jam builds. Make will come later.
sr55 [Fri, 7 Mar 2008 00:07:31 +0000 (00:07 +0000)]
WinGui:
- Fixed small localization issue in the query parser in regard to -q option.
- Changed update checker so if it fails on the startup update scan, it'll fail silently instead of displaying an error message behind the startup screen.
dynaflash [Thu, 6 Mar 2008 15:04:31 +0000 (15:04 +0000)]
MacGui: Presets - change the cursor highlighted color of the preset name to black, so when changing the name, you can see the letters. The old white made it almost impossible.... duh!
dynaflash [Thu, 6 Mar 2008 14:56:32 +0000 (14:56 +0000)]
MacGui: Fix issue where renaming a preset does not reflect the new name immediately in the preset drawer
- call [fPresetsOutlineView reloadData];
- use "-sortPresets" method instead of sorting it in its own method
dynaflash [Thu, 6 Mar 2008 13:57:37 +0000 (13:57 +0000)]
MacGui: move the presets sorting into a new method "-sortPresets" so it can be done independently of adding a preset in preparation for drag and drop preset arranging capability.
dynaflash [Thu, 6 Mar 2008 13:53:15 +0000 (13:53 +0000)]
MacGui: Increase the preset drawer max width and content view width by 60 px. This still leaves us 1024 width compatible and allows more room for longer preset names, vertical scroller as well as the disclosure triangles for nested presets.
dynaflash [Wed, 5 Mar 2008 14:29:45 +0000 (14:29 +0000)]
MacGui: Fix issue where prepareJob was not sensing MKV in the Format popup correctly.
- Takes care of the no mkv chapter issues reported here: http://forum.handbrake.fr/viewtopic.php?f=12&t=5120
- Thanks for the diagnostic testing and bringing it to our attention simoncoul !