sr55 [Sat, 2 Nov 2013 12:36:12 +0000 (12:36 +0000)]
WinGui: Fixed an issue with the Queue toolbar where resizing the widow to a smaller side made the toolbar hide the buttons in the dropdown.
Added new icons for "Folder" and "Copy" based on the current style.
jstebbins [Mon, 28 Oct 2013 23:44:52 +0000 (23:44 +0000)]
libhb: fix BD audio detection problem
BDs can (and occasionally do) have different audio stream types in
different clips that compose a playlist. We try to pick the audios that
appear in the most clips, but this breaks down when there are only 2
clips to choose from. So in the case of only 2 clips, choose audio
from the longest clip.
jstebbins [Mon, 28 Oct 2013 22:13:12 +0000 (22:13 +0000)]
libhb: fix another case of spurious "missing start code" messages
I have a poorly mastered BD that does not pad the adaptation field
of the PCR PID properly. Since these packets are only used to extract
the PCR, we can drop them early before the code that would generate
these error messages.
jstebbins [Mon, 28 Oct 2013 17:48:15 +0000 (17:48 +0000)]
libhb: fix "missing start code" error message when encoding BD
CC subtitles which are embedded in the video stream have an id
of 0 assigned. We should ignore these when setting up the PID
filter list since they do not use an independent PID.
ritsuka [Fri, 25 Oct 2013 18:21:54 +0000 (18:21 +0000)]
MacGUI: Varius warnings fixes:
- NSUInteger and NSInteger instead of int (where the Cocoa 64bit api uses them).
- Cast to int when needed because NSInteger on 64bit is defined as long.
- NSURL instead of NSString when possible.
- Replaced some deprecated methods/functions.
- numberWithInteger instead of numberWithInt.
jstebbins [Wed, 23 Oct 2013 20:33:32 +0000 (20:33 +0000)]
libhb: Plug some leaks and clean up the buffer pool code a little.
Filters were leaking buffers when a job is cancelled.
decavcodec could leak when job cancelled.
decavcodec leaked audio extradata in BSInfo
encavcodec and encavcodecaudio leaked AVCodecContext
sync leaked subtitle_sanitizer_t data
jstebbins [Mon, 21 Oct 2013 21:00:22 +0000 (21:00 +0000)]
libhb: check AVIOContext.error for errors while muxing
libavformat doesn't always check this, so the return code from
av_interleaved_write_frame doesn't indicate an error when there
is a failure to write to disk.
jstebbins [Mon, 21 Oct 2013 20:57:38 +0000 (20:57 +0000)]
libhb: fix duration of initial audio frame when decoding with avcodec
For some codecs, the samplerate is not known until we decode some data.
So postpone calculation of frame duration till after we have decoded
some data.
The effect of this error is that the first 2 audio frames could have the
same start time. This causes the "non monotonically increasing dts"
error in libavformat mp4 muxer.
sr55 [Sun, 20 Oct 2013 20:17:44 +0000 (20:17 +0000)]
WinGui: Fix adding a new VobSub or PGS subtitle, default it to "Burned In" for MP4 files only. Also defaulted Foreign Audio Scan to Burned In for MP4's now.
randomengy [Sun, 13 Oct 2013 19:15:54 +0000 (19:15 +0000)]
Interop: Input/output paths are now encoded to UTF-8. Removed references to hb_list_s, using the list functions to create and modify them. Added support for specifying the scaling method, QSV preset and DXVA decoding.
konablend [Tue, 1 Oct 2013 01:38:19 +0000 (01:38 +0000)]
BuildSystem: fix Xcode when building w/ clang targeting 10.6
When using clang (the new project default compiler), disable
implicit objc-runtime linking for 10.6 only.
Before fix, the following error is produced:
Undefined symbols for architecture x86_64:
"_objc_retain", referenced from:
___ARCLite__load in libarclite_macosx.a(arclite.o)
(maybe you meant: _objc_retainedObject)
ld: symbol(s) not found for architecture x86_64
WinGui: All the hardware acceleration options are now available view a new tab on the Options screen. This includes the OpenCL scaling, QuickSync and DXVA decode support.
Unlike the maximum limit, which is HandBrake-specific, this is not our bug, and we can't fix it, short of dropping support for all old Haswell drivers.
Tested on MacOSX 10.8.5 w/ Xcode 5.0, 4.6.3 and 4.5.2, various builds,
including terminal Xcode, terminal no Xcode and Xcode IDE,
and permutations with/without mp4v2 and mkv.
- push defs for optional static libraries (OSL) to respective modules
- adjust make-driven linking to use OSL
- adjust Xcode-driven linking to use OSL via ld -filelist option
- add Xcode project group for all OSL
- set Xcode project to use clang compiler
- add osx 10.8 xcconfig files
- add "supplemental" xcconfig file where EXTERNAL_CONFIGURE may be used
to specify configure-time options
- patch mp4v2 to compile with clang
Intructions for custom configure-options within Xcode IDE:
1. edit macosx/xcconfig/supplemental.xcconfig
2. save file (unsure how long it takes IDE to see change but it does)
3. build clean
4. build
5. never commit supplemental.xcconfig to repository - it is meant to
exist but not effect the build on a clean checkout, and to be used
only as a developer transient developer customization file.
This makes libhb expect all strings passed to it to be in utf8 format.
The cli converts the converts from the current code page to utf8. libhb
converts back to the current code page when necessary for libraries that
expect it.
WinGui: Added a new tab in Options to host "Video" related settings including hardware acceleration. Only showing the QuickSync options. DXVA/OpenCl options are hidden for now.
Merging-in the OpenCL Scaling code from the OpenCL branch to trunk.
Patch originally by the Multicoreware Inc team, followed by improvements and fixes by Micheal Wootton from AMD Inc,
OpenCL:
This patch implements Bicubic Scaling in OpenCL.
Note that HandBrake currently uses Lanczos so the performance difference appears to be much more significant. We may offer an option of BiCubic in software later.
Bicubic scaling may appear a bit sharper than the equivalent Lanczos encode and may increase file size a bit. Quality may be better or worse depending on the scaling and content and personal preference towards sharpness.
When comparing performance with a custom HandBrake build that runs Software Bicubic to OpenCL Bicubic, performance increase is about 5~7% on average on a modern GPU.
Hardware Decode via DXVA:
We also have optional DXVA decoding which may come in useful for slower/lower end systems that have a capable GPU.
This is only available on input sources that use the libav decode path.
Most GPU hardware for decoding is designed for playback, so if you are running on a high end CPU, it will bottleneck the encode process.
Requires OpenCL 1.1 or later supporting GPU.
Front end changes and testing framework are not included in this patch. This will be resolved later.
Patch will be revised further before the UI is implemented.
libhb: fix scanning some dvds
e.g. star trek into darkness
This reverts part of a patch that was originally written for dvdread
access. So we need to watch for regressions.
The patch was originally written for dvdread access and my not actually be
a bug in dvdnav. So I have reverted it in dvdnav only. I also tried to
reproduce the original bug in dvdread, but was unsuccessful. So I'm
wondering if the original bug also got "fixed" by subsequent changes.
The original bug report is here:
https://forum.handbrake.fr/viewtopic.php?f=4&t=9758&start=0
The original fix is here:
https://trac.handbrake.fr/changeset/2256
Interop: Removed unused structs and constants and added warnings in libhb code to update the ones that are used. Broke out types for each struct into their own file. Switched all references to hb_handle_s to IntPtr and deleted that non-working struct.
Interop: Various fixes/improvements
* Exposed container list and changing compatible containers from an enum to an int to allow pulling the container list dynamically.
* Removed a few unused and out-of-date functions and structs.
* Updated a few structs to better track with the QSV changes.
* Added a method to create a pointer to a UTF-8 encoded string.
* Dither now is chosen automatically rather than turned off, which helps with FDK AAC.
* Fixed unicode custom chapter names.
WinGui: Fix the Automatic Auto selection when a preset is selected. Honour the preset using the primary track, then follow the rules of the automatic selection.
WinGui: Change the implementation of the Source Menu Image handling. Hopefully this might workaround a crash some people are seeing in the .NET BitmapDecoder object.
WinGui: Fix around logging when the TextWriter is closed and Removed an unneeded error handler in Interop library. (libavformat mp4 muxer does not have a large file size option)
WinGui: Fix an issue with cropping param not being send to the CLI in AutoMode. This is an issue where scan previewer count >10.
Fixed an Auto-Name issue for DVD drives.