dynaflash [Thu, 26 May 2011 16:17:13 +0000 (16:17 +0000)]
MacGui: Add -selectedPreset helper method
- Patch once again by blindjimmy.. thanks!
- This change consolidates all the calls in Controller.m of [fPresetsOutlineView itemAtRow:[fPresetsOutlineView selectedRow]] to get the currently selected preset to use a new -selectedPreset accessor method. This is both easier to read and is better decomposition.
- as per https://reviews.handbrake.fr/r/85/
dynaflash [Thu, 26 May 2011 15:48:37 +0000 (15:48 +0000)]
MacGui: Clean up internal architecture of HB Audio and HBAudioController
- patch by blindjimmy ... as always .... thank you!
- as per https://reviews.handbrake.fr/r/81/
dynaflash [Thu, 26 May 2011 04:27:08 +0000 (04:27 +0000)]
MacGui: Audio Gain Control initial implementation
- Adds a Circular Slider to implement gain from a range of -5 to +15 which is sane by any reasonable measure.
- Note: the circular slider with this range puts the default of 0.0 at the three o'clock position on the slider which is kind of wonky. Any ideas to make it more intuitive are welcome.
-The accompanying text field readout is left editable so values beyond the sliders range can be specified manually.
- Gain is disabled for any passthru options obviously.
- Though it has been in cli and lingui for some time, as a note my tests show that anything above +15 can get distorted quite easily. Of course that is open to opinion depending on source, I have yet to see a complaint about the volume of encoded audio being too high but we leave up to -5 there just for the corner cases.
- Any existing presets not specifying gain will use a gain of 0.0 which means of course its unmodified.
- Also as a sidenote takes care of blindjimmy's patch https://reviews.handbrake.fr/r/99/ as far as /macosx/HBQueueController.m
sr55 [Mon, 23 May 2011 18:37:36 +0000 (18:37 +0000)]
WinGui: Made a change to the Query Generator to use the Scanned Source Path rather than the folder selected for batch and single file scans. Falls back to old behaviour of users selected path if said path is not available.
sr55 [Sun, 22 May 2011 19:06:27 +0000 (19:06 +0000)]
WinGui: Add a new option "Add All" to the Audio track which adds any remaining tracks to the audio list, with default audio settings. Also changed the ObservableCollection back to a BindingList as the Track dropdown behaves better with this.
sr55 [Sun, 22 May 2011 10:51:43 +0000 (10:51 +0000)]
WinGui: Fix an unusual issue with the DataBinding on the AudioTrack dropdown control. Seems to no longer get the ListChanged events when the model object is marked as serializable.
sr55 [Sat, 21 May 2011 19:05:24 +0000 (19:05 +0000)]
WinGui:
- Added some debug handling into the presets service which will hopefully make it easier to track down the reason why presets sometimes do not load correctly when updating to a newer nightly build.
dynaflash [Thu, 19 May 2011 19:21:43 +0000 (19:21 +0000)]
Macgui: libhb, MacGUI: reflect the fact that DRC only applies to non-passthru AC3 sources
- As per https://reviews.handbrake.fr/r/74/
-Patch by Rodeo, Thanks.
sr55 [Sat, 14 May 2011 14:46:16 +0000 (14:46 +0000)]
WinGui:
- Removed the Question Alert box when adding an item to the queue where the destination folder does not exist. The folder is automatically created before encode anyway, so no point in asking the user pre-Encode.cs
- Better error handling in the encode service.
sr55 [Sun, 8 May 2011 11:00:16 +0000 (11:00 +0000)]
WinGui:
- Add Elapsed Encode Time the main window.
- Add Elapsed Queue Time to the queue window. (Note, Pausing the queue resets this currently)
- Fixed an issue with disabled controls on the audio panel after removing the last track which was passthru.
WinGui:
- Fix to the Audio Panel Track Display which was intermittently not showing a track.
- Fixed a number of bugs in the plist parser which was prevent imports.
- Fixed a number of Issues with the Preset Import/Export.
WinGui:
- Fix an issue where the user could overwrite a built-in preset.
- Fix some more audio issues in relation to incorrect bitrate and sample rate being selected.
MacGui: Save picture settings by default when creating a new preset.
- Use Custom (defaulted to current picture size).
- Use currently selected Filters.
- Note this is by default. All choices are still the same
- As per https://reviews.handbrake.fr/r/82/
fix screaching at the beginning of some ac3 to X transcodes
a52dec isn't completely thread safe. It has a collection of
static data that gets initialized when a52_init is called.
This static data gets initialized to the same thing every time,
but if one instance of the decoder is using the data when
it gets reinitialized, bad(tm) things happen.
libhb: don't use deprecated elements of the FFmpeg/Libav API
HandBrake uses many attributes of the FFmpeg API that are were deprecated
when we did the last bump. Many of them no longer exist in current
FFmpeg/Libav git, or are going to be removed soon.
Replaces them with non-deprecated attributes that already exist in the
build we currently use.
Thanks to Rodeo for the patch.
Fix a crash that can happen due to corrupt mpeg2 data
The mpe2dec can return nonsense values for width and height that
make sws_getContext fail. So check the context return value and
just drop the buffer if it fails.
Fix a problem with overlapping vobsubs
Since we now allow subtitles that overlap in time, it is no longer
appropriate to arbitrarily set the duration to 3 seconds when vobsubs
don't have an explicit stop time. This causes them to overlap on the display.
So now, we set the stop time for such vobsubs to -1. Then in sync adjust the
stop time to the start of the next vobsub when it is seen.
Make order of audio tracks found in PS streams more predictable
Since PS streams don't have a directory of streams, we find them by
scanning the PES headers for stream types. We were adding them in the
order found which is pretty random. This sorts audios by substream id.
Fix a problem when encoding the same source audio track twice from BD sources
The pid and substream were being added to the TS stream list twice which
caused 2 copies of each packet to be returned to reader. This caused sync
to drop every second packet with "time went backwards" log message.
MacGui: Simplify HBDVDDetector bsdName creation
- Instead of lazily populating bsdName identically in two places, why not just have its accessor do it.
- As per patch provided by blindjimmy https://reviews.handbrake.fr/r/78/
fix stall due due to propagation of incorrect audio timestamp
Was passing AV_NOPTS_VALUE that is generated by libav. Needed to
translate to -1 which is what we use to designate invalid timestamps.
Change scale factor for timestamp offset in vobsub commands
Testing shows that this should be 1024 instead of 900.
Thanks to Rodeo for validation and patch.
WinGui:
- Multiple bug fixes to the Audio Panel. (Disable DRC for non AC3 sources, DPL2 getting swaped out for stereo when you click between tracks, Exception thrown due to the source track not getting pushed into the Audio model before it's used.)
Add support for TrueHD and DTS-HD from BD sources
TrueHD and DTS-HD now show up in the audio list along side their
AC-3 and DTS counterparts.
Note that currently the DTS-HD decoder we are using (ffmpeg) discards
the HD portion of the stream and onle decodes the DTS core portion. So
there is no advantage yet to using the DTS-HD stream. In the future
I would like to add DTS-HD passthru support and hopefully ffmpeg will
improve their DTS-HD decoder.
WinGui:
- Save Filter settings in presets by default. Seems to be common mistake.
- Set the AcceptButton property on a few windows so they react properly to keyboard commands.
WinGui:
- Switching Audio Selection dropdown to be databound. Added The scanned source track to the Audio Track model.
- Added new Move to Top / Bottom options on the right click.
- Further UI tweaks and fixes.
Fix int overflow that can happen when computing PAR
If the source has large non-reduced PAR values, our computed value
was overflowing an int. Compute it in an int64_t then reduce it.
Also, keep num and den below 65535. Larger values just aren't really
significant and will cause more overflow issues.
MacGui: implement Frame Rate Mode as per the Lingui.
- Removes the current Peak Framerate checkbox and replaces it with appropriate Radio Buttons depending on if Same as Source or a specific framerate is chosen in the Frame Rate popup widget.
- Gets the macgui up to speed with https://trac.handbrake.fr/changeset/3770
WinGui:
- Added "Advanced" audio options floating popup window.
* This exposes a new Audio Gain Control (-20 to +20 dB)
- Added support for (--gain=x,y,z) to the preset Loader.
WinGui:
- Add "Send to" option. This will pass the encoded output file name of each completed job on the queue to a 3rd party application with optional arguments passed.
Change HB.version from "svnXXXX" to "XXXXsvn"
This fixes an issue with packaging for Ubuntu 11.04. The packaging tool
now requires that version numbers start with a digit. They used to just
issue a warning.
Each clip of a BD are allowed to have different audios if the clip
does not have a seamless connection to the previous clip. Most titles
are a series of seamless clips that all have the exact same audio. But
I found some that have a final non-seamless clip that has completely
different audios and broke the old algorithm.
New algorithm, look at each clip and count the number of other clips have
the same audio. Use the clip that has the most matches.
Fix a deadlock that can happen with p-to-p encoding
With p-to-p, the audio sync thread waits for the video sync thread to
reach the designated start point. There is a possibility that the video
decoder will drop so many frames that the audio sync fifo fills before
any frames reach the video sync thread. When this happens, drop some
audio to unplug the pipeline.
Also, to make this less likely to happen, start sending data to the video
decoder 2 seconds before the actual desired start point. This will allow
the decoder to find an initial i-frame before the audio stalls since the
audio sync thread drops any audio that is before the designated start point.
A side effect of this is our start time now more accurate since the decoder
is only dropping frames before the start point instead of after.
WinGui:
- Fix a culture issue with user settings (x264)
- Made the Preset loader more strict with what settings it can and can't load with regards to video settings.
These boundaries are always discontinuities. But sometimes we were
not detecting them as such and would drop frames. So set a flag
in the buffer when libbluray tells us a new clip is starting and
use that to trigger computation of a new scr offset.
WinGui: AudioPanel refactored.
- Switch the Audio panel to use DataBinding to a BindingList collection leading to much cleaner code.
- Added gain support (--gain=3,4) to the services library. (UI has not been done yet)
Use bibiliographic form of ISO-639-2 lang codes in muxmkv
The Mkvtoolnix developer claims that MKV only allows the bibliographic form
of ISO-639-2 lang codes: https://www.bunkus.org/bugzilla/show_bug.cgi?id=598
http://matroska.org/technical/specs/index.html#languages seems to confirm this.
Change internal audio representation range
...from float [-32768...32767] to float [-1.0...1.0]
Using the range [-1.0..1.0] requires fewer translations of the range for our
various encoders and decoders. This also gets rid of a hacky
translation from float to int to float in decavcodec audio decoding.
Fix dts downmix when the output encoder is lame
libdca downmix is broken if you ask for dolby and DCA_ADJUST_LEVEL.
Since we fixed the clipping problem that DCA_ADJUST_LEVEL is used for
with changeset 3294, we can just disable this.