sr55 [Sun, 9 May 2010 16:56:56 +0000 (16:56 +0000)]
WinGui:
- Fixed Exception on restoring window from system tray
- Fixed Exception when trying to edit an item on the queue without first selecting an icon
- Replaced old folder icon on the source menu with the newer windows equiv
dynaflash [Thu, 6 May 2010 18:30:32 +0000 (18:30 +0000)]
MacGui: Chapter Title import/export functionality
- Saves the chapter list to a .csv file which is compatible with the cli and wingui.
- Note: comma's in the chapter name are escaped with a "\" to maintain cli compatibility then if necessary stripped upon re import into macgui.
- Original patch by borgclone and added to by realityking. Thanks!
- Feature development referenced here http://forum.handbrake.fr/viewtopic.php?f=4&t=4146&start=0
WinGui:
- Strip any illegal characters from the autoname path
- Display build number in program window title. Also added a hack to force this to display the correct number.
- Imported some settings for Stylecop for resharper 5
LinGui: drop dependency on hal, use udev instead
this means support for older linux versions is being dropped.
ubuntu 9.10 and above and fedora 12 and above are known to work.
MacGui: reset hb_filter_decomb after use, so switching between default decomb and a custom decomb string does cause a garbage string. Thanks j45 for the patch!
bump ffmpeg to rev 22950
offset ffmpeg seeks by value of initial timestamp since it can be non-zero
catch pix fmt that is unsupported by swscale, log it, skip the track
use new ffmpeg avg_frame_rate for more accurate framerate estimate
fix qdm2 audio decoding
it seems ffmpeg wants to be passed the same buffer repeatedly
while decoding this audio type. we were exiting if ffmpeg said it
consumed 0 bytes. Now we continue to feed the same buffer when
this happens. I added a loop limit to protect against an hypothetical
ffmpeg bug that would never consume anything. I wonder if any other
codecs behave this way *scratches head in bewilderment*
fix decoding of qtrle codec and possibly others
we rely on ffmpeg calling context->get_buffer, which we override to
point to our get_frame_buf(), to stuff our pts values into frames it
is decoding. but some decoders call context->reget_buffer
instead. So I added an override for this callback as well.
make sure HB_STATE_WORKING always gets set for a job
very short video, or video that has no valid frames, can cause UpdateState
in sync.c to never be called. This is the only way the sequence_id would
ever be set, so when the ui sees HB_STATE_WORKDONE, it could not look up
the job in it's queue based on the sequence_id causing it to never be
marked as complete.
add test to ensure that ffmpeg's reported audio layout agrees with channel count
a crash report from a user leads me to believe ffmpeg is giving us
a channel layout that has a different number of channels than the
channel count it tells us.
fix LATM aac processing
somewhere in the series of patch changes, setting the sample_fmt got
lost. we were being told SAMPLE_FMT_NONE by ffmpeg for latm
fix fps logging when there is no audio track.
where there's no audio, the muxer closes earlier than when there is audio
due to reference counting. upon close, the muxer sets the muxing
state which overwrites the current state that includes the avg fps.
so log the avg fps before closing mux.
LinGui: fix possible live preview failure with gtk 2.18
according to the doc's you must call gdk_window_ensure_native() before
getting the X11 XID for the window. this is the only way to guarantee
that the window is native and has an XID.
fix a problem with point-to-point (and live preview) when there are subtitles
end of stream markers were not being put in the fifo for subtitles when
the end point was reached, causing a hang.
add dvd main feature title detection
scans the dvd menus and presses buttons to see where they might lead.
when a button press leads to a title, i check to see if it is the
longest seen thus far and save it's index.
this only applies when dvdnav is enabled. when dvdread is in use,
the longest title of all the titles is flagged as the "main feature"
add packaging rules for building debian source packages
and fix a build issue with a52dec when the path has a '~' in it
this is a step towards using the launchpad build farm for ubuntu snapshots
WinGui:
- Refactor the code to work out the slider value from the video quality. This fixes a bug when loading presets with ffmpeg and makes the code far easier to understand.
LinGui: allow multiple instances of the gui to run
Each instance has a queue named "queue.<pid>". On startup, the gui
opens and locks with lockf a file "ghb.pid.<pid>". Then it searches
for any other ghb.pid.<pid> files that exist that are not locked. If
it finds one, then some instance of ghb exited and may have left behind
a queue. Try to reload it. If there are no items in the queue, continue
looking for unlocked ghb.pid.<pid> files.
MacGui: Enable mp3 audio tracks in mp4.
- NOTE: Currently not supported by any native apple software including QuickTime even with Perian enabled (obviously applies to iPhone/iPod iPad afaik or really anything).
- Is supported by VLC and MPlayer on Mac.
MacGui: Fix issue when selecting a preset with multiple audio tracks (ie. AppleTV preset) any track after the first track used the first source track which would cause track mismatches. Now if the first track is set to use source track 3 for instance, the seond track will use source track 3 as well.
- Fixes issue where the AppleTv Preset would use a different source track for its AC3 track than the first aac track on some multiple track sources.
- Addresses the bug explained here http://forum.handbrake.fr/viewtopic.php?f=12&t=15854
this allows remapping any channel order to any other channel order
with the appropriate map definitions. channel maps currently supplied
are smpte (used by ffmpeg), qt (our standard channel order), and ac3 (as
delivered by a52dec).
remapping can also be applied to the downmixer with the function
hb_downmix_set_chan_map(hb_chan_map_t * map_in, hb_chan_map_t * map_out).
this allows downmixing and channel reordering in a single step. there
is no additional cost to reordering since the matrix multiply used to
do the downmix simultaneously reorders.
fix silence insertion problem in audio sync and pipeline stall problem
the current audio buffer was being dropped when silence was inserted, causing
the time to fall even further behind and provoke more silence insertion
in some cases.
with pont-to-point, it is possible for one stream to complete before the
other(s). when the work_loop exits for that stream, the fifo is no longer
serviced and may fill. This can back up and cause a stall in reader
causing the streams that are not yet complete to stall. The Solution is
to continue servicing the fifo after work for a stream is complete. This was
complicated by the fact that the video sync work object was being used as the
indicator that all work was finished. When it exited everything was told
to stop. So now, the muxer work object (last in the chain) is the
indicator when work is done.
fix audio detection problem during scan of ffmpeg audio sources
audio frames can be larger than their container packet sizes, but during
scan, we only feed one container packet to the decoder, then reset
the decoder and try the next packet. so the audio is never detected.
as buffers are tested, they are added to a cache. the entire cache is
passed to the decoder to scan for info. the cache is limited to 4KB.
WinGui:
- Add a new build target called "Install". If you have NSIS installed and it's in your path, you can now use the "Install" target to automatically build the HandBrake Installer for the Windows GUI.
HandBrakeCLI.exe, libgcc_s_sjlj-1.dll, "doc" folder, and handbrakepineapple.ico must all be copied into the "bin/install" folder for this to work.