dynaflash [Mon, 15 Dec 2008 15:11:49 +0000 (15:11 +0000)]
MacGui: Picture window now uses a subclass of HBController to access the main controller.
- fixed issue where preview movie keeps playing even if the picture window is closed
- Removed deprecated -ClosePanel method since we now use the windows native close button.
sr55 [Mon, 15 Dec 2008 12:58:04 +0000 (12:58 +0000)]
WinGui:
- MainWindow now uses the Queue for encoding. Essentially works the same as the MacGUI. You start an encode in either window, and the other shows the encoding status. This prevents users from starting 2 encodes at once (1 Queue, 1 Main Window)
van [Sat, 13 Dec 2008 07:43:42 +0000 (07:43 +0000)]
- have to account for a non-zero start time when we're seeking in ffmpeg files.
- try harder to get keyframes from ffmpeg files: if we've just done a seek, search the next 50 frames for a keyframe.
- detect WMV3 keyframes since ffmpeg doesn't.
van [Sat, 13 Dec 2008 06:59:50 +0000 (06:59 +0000)]
- try to determine the sample rate, channels, etc., of audio streams rather than hardwiring 48KHz & 2 channels.
- have to discard audio that starts before video time zero otherwise we desync the audio & video.
van [Sat, 13 Dec 2008 06:55:01 +0000 (06:55 +0000)]
Consolidate all the ffmpeg-related includes into libhb/hbffmpeg.h then prototype hb_avcodec_{init,open,close} so that we don't get gcc warnings from a dozen modules.
jstebbins [Fri, 12 Dec 2008 18:54:36 +0000 (18:54 +0000)]
fix a threading issue with avcodec_open/close
these functions can not be called from 2 threads simultaneosly.
made a wrapper function that holds a lock while making the call
dynaflash [Fri, 12 Dec 2008 17:31:16 +0000 (17:31 +0000)]
MacGui: Add to queue fix so that it not only checks that a file does not already exist at the destination path, but also check through the existing queue items and warn of an overwrite.
dynaflash [Fri, 12 Dec 2008 15:53:15 +0000 (15:53 +0000)]
MacGui: Add "Picture Settings" toolbar item to main window toolbar
- Currently uses the same icon as the picture item in the preferences toolbar
- Performs same function as the "Picture Settings ..." button in the video tab which is to say it opens the picture settings window
- Removed the "Picture Settings ..." button in the video tab
dynaflash [Fri, 12 Dec 2008 02:40:21 +0000 (02:40 +0000)]
MacGui: Add a preference so we can specify what we do at launch, choices are:
- Do Nothing
- Open Source
- Open Source (Title Specific)
- Pref defaults to Open Source
dynaflash [Thu, 11 Dec 2008 15:59:55 +0000 (15:59 +0000)]
MacGui: Fix destination path so that last one used in the destination choice window is saved and reused upon the next opening instead of the last destination path encoded.
- Addressed here http://forum.handbrake.fr/viewtopic.php?f=12&t=8281
van [Thu, 11 Dec 2008 01:06:43 +0000 (01:06 +0000)]
Don't reject MPEG PS files just because they're missing a SYS header (clips won't have one). The standard says we just need a PACK header followed by some other legal start code.
sr55 [Sun, 7 Dec 2008 23:24:27 +0000 (23:24 +0000)]
WinGui:
- Fixes an issue where if there are no presets, that is, the user removed them all, then the GUI would throw a null pointer exception after scanning a source.
dynaflash [Fri, 5 Dec 2008 18:20:05 +0000 (18:20 +0000)]
MacGui: Live Preview fixes
- Fix proper sizing when max source size and loose anamorphic is selected in presets
- Fix vertical alignment issue when the move height is >= the still preview height.
van [Fri, 5 Dec 2008 05:09:05 +0000 (05:09 +0000)]
More code to deal with the flakey streams from NZ TV. They like to change the PCR without sending a new PCR and we get big timestamp changes but no new reference clock. So now we look at the PTS and if its change is outside a tolerance window we use the new PTS as a PCR & declare a clock discontinuity.
sr55 [Thu, 4 Dec 2008 20:57:31 +0000 (20:57 +0000)]
libhb:
The malloc() function in cygwin doesn't return 16-byte aligned memory which causes it to randomly crash. Replaced with memalign() for the cygwin platform only.
dynaflash [Thu, 4 Dec 2008 18:58:03 +0000 (18:58 +0000)]
MacGui: correct month output in the names of the individual encode logs
- Duh! In struct tm, tm_mon is the month number from 0 to 11, so we needed to be using tm_mon + 1
dynaflash [Thu, 4 Dec 2008 16:25:42 +0000 (16:25 +0000)]
MacGui: Remove legacy preset code
- Be aware this makes an 0.9.2 or earlier presets completely deprecated 0.9.3 presets are fine (including any made with the five preceding snapshots).
- Removed almost 300 lines of code
van [Thu, 4 Dec 2008 09:24:33 +0000 (09:24 +0000)]
- validate frame sync the way the standard suggests (via checking the frame crc) rather than looking at multiple frames. This should reduce the probability of mis-identifying random junk as AC-3 to less than 1 in 2^32.
- check the crc on every frame so we don't let corrupted data into the decoder.
- interpret the PTS as per the standard (it's the time of the first frame that starts in the packet, not the time of the first byte of the packet). Incorrect interpretation was resulting in an average 15ms timing error (worse case 31ms).
- do all the PTS calculations in doubles so we don't get round-off error that will desync the audio & video with 44.1KHz audio sources (these can't appear on DVDs but do show up in avi/mkv/... files).
- don't rely on the container to give us large enough frame fragments to validate the sync (some containers split audio frames into really small pieces). Instead use the 8K of unused space in the esconfig of the audio object as an accumulation buffer.
van [Thu, 4 Dec 2008 08:22:37 +0000 (08:22 +0000)]
- Elementary streams that scan couldn't type as audio streams have to be completely ignored - some of these don't follow the normal PES packet encoding so feeding them downstream to the demuxer will cause strange timing and other problems.
- make log message correctly reflect our uncertainty about audio stream type so people don't complain about missing AC-3 audio when it isn't really there.
- add missing av_free_packet in VC-1 keyframe search.
eddyg [Tue, 2 Dec 2008 01:07:02 +0000 (01:07 +0000)]
Add metadata support to libhb, add importing of MP4 metadata, add export of MP4 metadata, add importing of MP4 chapters, add seek to chapter for input files, add new libmp4v2, remove old MP4 chapter muxing - now in libmp4v2.
dynaflash [Sun, 30 Nov 2008 05:02:38 +0000 (05:02 +0000)]
MacGui: Remove custome decomb option from preferences and Picture Settings
- Remove the text field to enter a custom decomb string in the Preferences > Picture window
- Change the NSPopup for decomb to a checkbox in Picture Settings.
dynaflash [Sun, 30 Nov 2008 04:09:33 +0000 (04:09 +0000)]
MacGui: Implement variable number of preview frames
- Set in Preferences -> Advanced and defaulted to 10
- Allows for up to 20 previews per title for now.
jbrjake [Sun, 30 Nov 2008 04:00:11 +0000 (04:00 +0000)]
Adds two new parameters to hb_scan, to control the number of preview frames generated during scan, and whether or not they're written to disk for later display. This will break any interfaces that use hb_scan until the new params are specified...sorry. Also adds a new job->seek_points setting (set this to the same as the number of previews) to be used with job->start_at_preview when doing live preview encodes, so the seek function has a frame of reference.
Wires up the CLI with a --previews option (long option only) to control the new scan parameters, and defaults the CLI to not writing previews to disk.
van [Sat, 29 Nov 2008 20:06:26 +0000 (20:06 +0000)]
Don't allow multiple decodes of the same ffmpeg audio stream. Because ffmpeg mixes stream reader state with decoder state we only have one decoder instance for the streamso multiple decode requests will garble the audio and/or cause an abort.
(Since the Universal preset specifies AC-3 passthru, using it on non-ac3 audio caused a second decode of the first audio track to be requested which triggered this bug and resulted in lots of aborts for wmv & avi conversions.)
sr55 [Sat, 29 Nov 2008 14:44:26 +0000 (14:44 +0000)]
WinGui:
- Small display issue fixed. If audio tracks have no sub format. (e.g Director's Commentary), "()" would be displayed. Thanks Canvas (http://forum.handbrake.fr/viewforum.php?f=12)
sr55 [Thu, 27 Nov 2008 14:39:02 +0000 (14:39 +0000)]
WinGui:
- Removed RAM limitation code on startup.
- Gets rid of the SystemInfo Class. It's no longer required. Since the ram limitation code has been remove, only the activity window needs access to the information, so, the code has been moved to frmActivityWindow.cs
- Removed some redundant code from frmMain.cs. Cleaned the startup code block up a bit.
- Re-structured frmMain.cs. Moved the code around into more logical regions.
sr55 [Wed, 26 Nov 2008 19:32:53 +0000 (19:32 +0000)]
WinGui:
- The Queue Recovery, inport/export features now use an XML based file system rather than text file.
- Queue now uses class based Queue Items for storing data rather than an arraylist.
- Fixes an issue where the source and/or destination would not show up in the list of queue items.
- Queue progress meter will now update correctly if a user adds more items to the queue after starting the queue.
van [Tue, 25 Nov 2008 07:55:51 +0000 (07:55 +0000)]
- add John A. Stebbins' changes to handle TrueHD and DTS-HD multiplexed streams.
- give transport streams their own demuxer rather than constructing fake PS packets to use the DVD demuxer.
- start re-doing the transport stream code so it does fewer memory to memory copies.
dynaflash [Mon, 24 Nov 2008 10:01:06 +0000 (10:01 +0000)]
MacGui: Live Preview Initial Implementation
- Uses a separate instance of libhb called fPreviewLibhb to do the preview encode. Bypasses the queueing system so you can encode a live preview on one source while encoding another.
- All facets of the encode are replicated (including but not limited to audio tracks, subtitles and picture filters) *except* 2 pass. For speed's sake we only do one pass which should be more than sufficient for a 6 to 60 second preview.
- Live Preview clips are stored in "~/Library/Application Support/HandBrake/Previews/" and remain until a new preview is called for of the same format in which case the old version of "mymovie.mkv" would be replaced with a current version called "mymovie.mkv".
- Uses QTMovieView and QTMovieKit to show 5 - 60 seconds in 5 second increments (determined by a user set NSPopUpButton) of a live preview from the starting point of any of the existing 10 still previews.
- Preview window is now non-modal so can be kept open to see the effect of changing presets, etc.
- Next and Previous buttons replaced with a 10 position slider
- Live Preview is shown same as users QuickTime implementation would show it. ie. without Perian installed, mkv's will not play back, etc.
- Uses QT's stock controller bar with volume, scrubber and single frame advance buttons.
- Known Issues: Movie alignment against the still preview considering the additional height of the movie controller bar. Particularly using loose anamorphic. I am sure there are others.
jstebbins [Mon, 24 Nov 2008 00:18:17 +0000 (00:18 +0000)]
LinGui: live preview.
this adds new prerequisites to the build. now needs:
gthread-2.0, gstreamer-0.10, gstreamer-interfaces-0.10,
gstreamer-video-0.10, gstreamer-pbutils-0.10
sr55 [Sun, 23 Nov 2008 21:54:21 +0000 (21:54 +0000)]
WinGui:
- Seriously? Again? yes, well, 2 big bugs right after release. Release build update with these fixes.
- Presets don't set m4v correctly.
- Presets reset Title and chapters to auto. (this is bad)
jbrjake [Fri, 21 Nov 2008 20:54:03 +0000 (20:54 +0000)]
Makefile fixes. Official stable releases are now built with the "make official" target, while the default remains a snapshot. This stuff really needs to be revised after 0.9.3.
dynaflash [Thu, 20 Nov 2008 20:52:03 +0000 (20:52 +0000)]
MacGui: Fix issue with queue where cancelling a two pass job during the first pass would leave the second pass in libhh which caused the next job to start by processing the remaining pass from the cancelled job.
- addresses bug reported here http://forum.handbrake.fr/viewtopic.php?f=12&t=7420
jbrjake [Thu, 20 Nov 2008 17:08:09 +0000 (17:08 +0000)]
MacGui and CLI: Finalizes built-in presets for 0.9.3
- Adds a Legacy folder nested inside the Apple folder, which holds 0.9.2's AppleTV preset, the old iPod High-Rez preset (iPod Legacy), and the old iPhone preset.
- The standard iPhone preset has ben changed to CRF, loses the iPod 5.5G atom since its prescence was misleading (the preset doesn't employ VBV controls), and gains 2 mixed reference frames.
- The new AppleTV preset has been slightly nerfed down to subme 7 from subme 9.
- The iPod Classic and Nano preset (formerly known as iPod Low-Rez) has been retitled to simply iPod as it is compatible with the older 5G models.