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.
dynaflash [Wed, 19 Nov 2008 16:42:31 +0000 (16:42 +0000)]
Update x264 to r1028
- couple of bufixes since the previous r1024
http://git.videolan.org/gitweb.cgi?p=x264.git;a=commit;h=83baa7fdd2edf3e2f9522fc8b79e0826bcf190fc
van [Wed, 19 Nov 2008 04:13:11 +0000 (04:13 +0000)]
- get rid of an unnecessary seek that was messing up either mkv or vc1 decoding.
- switch av_seek_frame to zero back to time-based rather than byte-based since time-based screws up mkv & mp4 while time-based works for everything but vc1.
- since ffmpeg doesn't correctly indicate key frames in vc1 look for them ourselves so that vc1 previews & cropping will work.
van [Sun, 16 Nov 2008 03:50:13 +0000 (03:50 +0000)]
- search for IDR frames in blu-ray (m2ts) inputs so we get useful previews
- don't require a key frame after we seeking to the beginning of the file (this was probably causing the leading PPS & SPS of some blu-ray h.264 content to get dropped which resulted in a few seconds of missing video).
sr55 [Sat, 15 Nov 2008 22:42:22 +0000 (22:42 +0000)]
WinGui:
- Fix a problem with loading presets. Height would be automatically generated if only a width was selected and a source had been scanned. The MaxWidth and Height causes a small libhb conflict, therefor, do not automatically generate a height when maxHeight or maxWidth is used.
jbrjake [Thu, 13 Nov 2008 16:47:38 +0000 (16:47 +0000)]
CLI: Rearranges and reorganizes the built-in help (-h) , fixes some spelling and technical errors in the descriptions, and removes the hard tabs from that section of test.c.
sr55 [Wed, 12 Nov 2008 15:57:39 +0000 (15:57 +0000)]
WinGui:
- Adds the CLI query to the top of every log file generated after an encode finishes. Note: CLI query will only display in the activity window after the CLI has exited. This can be sorted later.
jstebbins [Tue, 11 Nov 2008 17:20:03 +0000 (17:20 +0000)]
fix pmt processing
there were 2 problems
1. when the program list in the pat contains a network PID, the pmt parsing
code doesn't properly skip this entry. this causes attempts to interpret
a pat as a pmt since the pid entry in the table is left initialized to 0.
2. pmt parsing always waits till the start of the second pmt section before
parsing the first. if for some reason there were only one pmt in the
stream, it would never parse the pmt. I've changed it to parse the pmt
as soon as all the necessary bytes are collected.
jstebbins [Tue, 11 Nov 2008 16:05:16 +0000 (16:05 +0000)]
libhb support for live preview
set job->start_at_preview to the preview frame you want to start at
set job->pts_to_stop to the number of 90khz ticks duration
van [Sun, 9 Nov 2008 01:49:59 +0000 (01:49 +0000)]
Hack to make VC1 work: If we get a ts or m2ts with VC1 video, don't say we have a valid stream. This will cause HB to try to open it with ffmpeg which often can read VC1 TS streams.
van [Sun, 9 Nov 2008 01:45:52 +0000 (01:45 +0000)]
If 'auto' audio output rate is selected and that results in an invalid rate for AAC, select the next higher valid rate. This should make wmv's & avi's with weird audio rates more likely to work with the default HB settings.