van [Mon, 18 Aug 2008 01:54:15 +0000 (01:54 +0000)]
- patch a reference picture leak in ffmpeg/libavcodec/mpegvideo.c that caused aborts on h264 transport stream encodes.
- patch the log level of some h264 decoder error messages so we don't fill our log with messages about stuff that's a very likely & not terribly significant.
- don't let hb.c set the ffmpeg av_log level to AV_LOG_DEBUG -- it fills the HB activity log with junk.
- add a count of the decoder errors to decavcodec's final report.
- when we don't have any chapter text (i.e., during a typical cli encode) just print the chapter number rather than empty quote marks.
sr55 [Sat, 16 Aug 2008 19:42:44 +0000 (19:42 +0000)]
WinGui:
- One elusive cross-thread bug in the Activity window fix (hopefully) + some tweaks to the log display
- Nicer Exception Handling Message box errors for frmReadDVD.
- frmMain Minimize to taskbar no tooltip text exception fixed.
jstebbins [Fri, 15 Aug 2008 23:06:39 +0000 (23:06 +0000)]
LinGui: fix a couple problems with the preset translation tool
change my presets file to use the settings generated by the translation tool
also tidy up a display problem with x264 options
eddyg [Wed, 13 Aug 2008 20:48:52 +0000 (20:48 +0000)]
Threaded yadif deinterlacer. Will split the YUV frames up into horizontal segments based on the number of CPUs available. All these segments will be processed seperately in parallel in their own thread.
eddyg [Tue, 12 Aug 2008 01:55:30 +0000 (01:55 +0000)]
Don't crash HB when the video decoder (MPEG2 or ffmpeg) doesn't understand the format of the input and so therefore doesn't populate vid_info. Just skip that preview instead.
sr55 [Sat, 9 Aug 2008 18:59:33 +0000 (18:59 +0000)]
WinGui:
- Added Memory and screen bounds to the activity log.
- Removed some x264 code from frmMain. The x264 widgets are now populated from the designer file.
- Removed some duplicate code from x264Panel.cs
- Added the macgui's animate function to x264Panel.cs
- Setup the Audio panel to default the sample rate to audio on audio track change.
jstebbins [Fri, 8 Aug 2008 17:53:44 +0000 (17:53 +0000)]
LinGui: address scott's complaint that the way i handle audio presets
is confusing. Eliminated the extra audio settings tab. consolidated
everything in the Audio/Subtitles tab. up to 8 audios can be stored in a
preset now. limit was 2 before, even though up to 8 audios could be
added manually for an encode.
sr55 [Fri, 8 Aug 2008 17:08:14 +0000 (17:08 +0000)]
WinGui:
- Bug Fixes in QueryParser.cs and PresetLoader
- Fixes a bug where an incorrect cropping option get's chosen when a preset is loaded.
- No longer loads Source or destination from the preset.
van [Fri, 8 Aug 2008 06:19:54 +0000 (06:19 +0000)]
- change aspect from a scaled int to a double so we can handle the wider
range of aspect ratios we get from ffmpeg files.
- add container_aspect to title struct (always zero except for DVDs
when it's the aspect from the VTSI). To handle broken French DVDs,
make HB complain & use the container aspect if it's different from
the aspect computed from the video PAR.
- fix ScanFunc's job template init so that it doesn't think the only
legal aspect ratios are 16:9 & 4:3.
- hb_reduce wouldn't reduce any fraction where both terms were equal and
prime (e.g., 2/2, 3/3, 5/5, etc. would not become 1/1). Recoded it using
Euclid's Algorithm so it always works and is faster.
jstebbins [Thu, 7 Aug 2008 18:48:04 +0000 (18:48 +0000)]
LinGui: fix problem with install target of make
not all directories were being created. needed for installing in alternate
destination where all the system dirs may not exist
jstebbins [Thu, 7 Aug 2008 17:43:55 +0000 (17:43 +0000)]
LinGui: change how x264 options are handled
- there is now one preset key that contains the option string
- options displayed in widgets and entry box stay reflect each other
- enlarged the entry box so all options can be seen
ritsuka [Thu, 7 Aug 2008 17:26:25 +0000 (17:26 +0000)]
MacGui: Some small enhancements and clean ups in HBQueueController
- Removed white spaces and hard tabs.
- Changed all the enumerators to use the new fast enumerators available in objective-c 2.
- Changed intValue to integerValue.
sr55 [Mon, 4 Aug 2008 17:36:06 +0000 (17:36 +0000)]
WinGui:
- Activity log - Added CPU description, temp dir, install dir and data dir to the WinGUI log header.
- Renamed rssReader to appcast reader
- Added option for stable builds to check unstable appcast.
- Unstable builds check both appcasts so will always show the latest release
- Added some containers to frmMain.
- Fixed (I think) an issue with a regex which prases the CLI version information. It may not detect public release build information up correctly.
dynaflash [Mon, 4 Aug 2008 15:30:46 +0000 (15:30 +0000)]
MacGui: Remove legacy preferences since they are now controlled via the presets.
- Remove the Chapter Markers preference
- Remove the Set Deinterlace to on upon scan preference
-- Note: this means that for custom presets that do not use picture filters, Deinterlace will not be used upon scan since there is no preference to use it anymore, otherwise the default preset will control it.
- Remove the Use Picture Par upon scan
-- Note: this means that for custom presets that do not use picture settings, Anamorphic will not be used upon scan since there is no preference to use it anymore, otherwise the default preset will control it.
- Also correct the label for custom Decomb string to read Decomb instead of Deblock "duh" .
sr55 [Fri, 1 Aug 2008 18:15:19 +0000 (18:15 +0000)]
WinGui:
- Changed the layout of the Options window.
- Added a "Stop" button to stop encodes.
- Moved Encode status label onto a status bar at the bottom of the window. Now includes scanning status.
- Added and Removed some png images
jbrjake [Fri, 1 Aug 2008 17:12:37 +0000 (17:12 +0000)]
Splits the display of job settings off from the actual work of beginning of a job, and reorganizes/elaborates the display's layout.
Adds new title variables to provide more description of sources: video_codec_name, video_bitrate (currently only used by DVD sources), and container_name and data_rate (currently only used by ffmpeg input sources).
van [Wed, 30 Jul 2008 22:27:33 +0000 (22:27 +0000)]
Fix two problems that would cause HB to hang in the muxer whenever the input content's video finished before audio:
- sync has to keep processing until all its input fifos report eof otherwise it won't send an eof on all its output fifos.
- do_job has to wait for muxer to finish. Waiting for anything earlier in the pipeline (we were waiting for the video encoder) can cause other parts of the pipeline to get terminated early which will result in lost data & no eofs.
MacGui: - Fixed loose anamorphic preview (still not perfect)
- Replaced float with CGFloat for future cocoa 64bit compatibility
- Fixed switching between automatic and custom cropping (the preview sometimes wasn't updated)
- Fixed a crash when the job width and height were larger than the title's one.
MacGui: - Implement automatic extension switching for mp4/m4v.
- Disable http mp4 checkbox when an ac3 track is present.
- Disable autonaming if there is only one title in the source.
van [Sat, 26 Jul 2008 01:20:56 +0000 (01:20 +0000)]
Use PTS, not DTS, in encx264 output frames so we don't have to special-case its output in every muxer. Confine code that deals with Apple's mistakes in handling video with b-frames to muxmp4.
van [Sat, 26 Jul 2008 01:04:00 +0000 (01:04 +0000)]
- in encx264, if an video frame is larger than init_delay split it into pieces so we don't get jerky output caused by out-of-order frames.
- add an explicit EOF for all streams, not just video.
- don't generate extra audio silence at the end of an encode (don't need it with explicit eof).
- get rid of 80ms initial delay in AAC encode & flush final four frames buffered in encoder.
- put mp4 'chap' atom on first track (usually video) rather than first audio track since we can now do video without audio (atom just needs to go on an enabled media track & video is always enabled).
van [Wed, 16 Jul 2008 06:36:22 +0000 (06:36 +0000)]
Get rid of excessive video & audio drops on some content by implementing the last 20% of the MPEG Standard Target Decoder timing model (per-stream timing state).
Should fix the problem reported in http://forum.handbrake.fr/viewtopic.php?f=12&t=6601&sid=81048cf54c40b6cdb945236afb4f99da&p=37563#p37563
Bump x264 to r912-9c5e557 which among other things fixes a mem leak when x264 is used as a library.
- Remove never used contrib/patch-libquicktime.patch from back on rev 422
Much improved decomb filter. Totally different algorithm, with a temporal element, a block window, and a simple weighting decision for which deinterlacer to use. See code comments.
The code isn't well optimized yet, and would probably benefit from -O3 (as opposed to the -Os optimization level currently used in macosx builds).
WinGui:
- Activity log window code changed significantly. Now, instead of refeshing the whole log every 5 seconds, it only adds the new lines of log output.
- Fixed bugs where the autoUpdate thread could keep running after the windows had been closed, causing exceptions to occur.
- Removed some debug code from frmMain
MacGui: Remove scanned source framrate display from "Same as source" in the fps popup.
- Some feel this is misleading and shouldn't be there since same as source now uses true source frame durations.
- made the fps and encoder popups narrower to fit.
Update x264 to rev r901-58d7d06
- Fixes a bad pixelation issue under certain circumstances in I frames with vbv
- Assorted optimizations including manual loop unrolling
- Also finally removed our deprecated macintel patch
WinGui:
- Version information now pulled from the CLI (any problems with this breaking on Vista let me know plz!)
- GUI startup optimized to counter the effect of the slightly sluggish version check from CLI (above)
- Added "Format" box just like the macgui. Move the Video Codec dropdown to the correct position on the video tab.
- Few other changes to mimic the macgui.
- Changed Functions.CLI to Functions.Encode
- Cleaned up and added icons to the source menu.
Change HandBrake from using the libsamplerate linear interpolator for resampling audio to using the SINC medium quality interpolator. Testing has shown a significant improvement in audio using this interpolator when upsampling the audio, most significant for 22Khz up to 48Khz, the audio is a lot brighter.
van [Fri, 4 Jul 2008 19:09:51 +0000 (19:09 +0000)]
Cropping fix for matted content that has a border top & bottom (rather than just on the top). Fixes problem from forum post http://forum.handbrake.fr/viewtopic.php?p=37064&sid=1a6b16b9a89cf7c26d9ff4f0c3b1823a#p37064
WinGui:
- Drive detection lists DVD title in Source Menu (Optional Feature)
- Updated the help menu to match the macgui.
- Added "cancel" button to frmReadDVD so if the CLI get's stuck, user can cancel the scan without restarting the GUI
WinGui:
- Better implementation of the presets bar. Code moved into it's own class.
- Can now Remove Single or delete all built in presets.
- User presets are no longer taged with "--"
- CLI window no longer appears when grabbing the information for presets.dat from HandBrakeCLI.exe
LinGui: add hidden preset option to allow direct QP/CRF entry for ffmpeg and
x264. just add "directqp=enable" to a custom preset. custom preset file
is ~/.config/ghb/custom_presets
Enable subtitle-scan to work when using Xvid as the encoder. Also checks return values from the work Init functions to enable Work threads to abort the encode should they not initialise properly.
sr55 [Mon, 30 Jun 2008 14:24:47 +0000 (14:24 +0000)]
WinGui:
- Queue system moved into it's own class.
- Queue now uses a listview display instead of a simple list. It now displays some information about each encode instead of the CLI String.
- Misc other Fixes.
van [Mon, 30 Jun 2008 05:01:01 +0000 (05:01 +0000)]
- fix an error in the SCR calculation that would cause an extra frame to be dropped at an SCR discontinuity.
- fix a rounding error in the encx264 init_delay computation that would underestimate the delay for progressive content and cause spurious "init_delay too small" messages.
- clean up the sync.c "video time didn't advance" logic and try to make the error mgs more useful for debugging frame duration problems.
van [Mon, 30 Jun 2008 04:32:49 +0000 (04:32 +0000)]
If we always require a buffer to be available on every fifo we'll eventually deadlock since video and audio run at different rates. Instead take the earliest available buffer (so we don't starve any of the fifos) but don't lock up if fifos are occasionally empty.
sr55 [Fri, 27 Jun 2008 14:42:17 +0000 (14:42 +0000)]
WinGui:
- Added: Resolution calculation for non anamorphic encodes in the GUI.
- Added: Ability to minimize to the system tray. Includes popup notifications of encoding status.
- Added: Duration calculation based on Title and selected chapters.
- Added: Some more code comments and summaries
- Change: Activity window now only refreshes if there is an active HandBrakeCLI.exe running.
- Change: Browse button/ File mode checkbox for Source Selection Removed. Replaced with a Source Dropdown button in the main toolbar. (works a bit like the magui but still uses the 2 different dialog boxes)
- Change: Removed "Recommended Crop" label and simply let the dropdown set the cropping values. Added DVD resolution Label.
- Fixed: Preset loader now selects longest title and set's chapters to Auto. Before it would load in the last setting used which is bad.
- Fixed bug in the presetLoader() function with the 2nd audio channel track selection.
Final Note: Quite a bit of code has been moved around in this checkin to clear things up a bit.
saintdev [Thu, 26 Jun 2008 01:19:47 +0000 (01:19 +0000)]
Fix a crash when using mp4 and no audio tracks.
Because there were no audio structs on list_audio, audio->config was attempting
to dereference a NULL pointer.