summaryrefslogtreecommitdiffstats
path: root/libhb
Commit message (Collapse)AuthorAgeFilesLines
* Switch buf->key to buf->frametype which is a bitmask telling us what type of ↵saintdev2007-06-1711-24/+34
| | | | | | | | | frame we are dealing with. This doesn't change any functionality, but I need to be able to distinguish between x264 IDR and I frames for the upcoming matroska muxer. This also has the side effect of making the code a little easier to read and maintain. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@623 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Finally recommitting clee's patch from r518 to allow 64-bit mp4 files that ↵jbrjake2007-06-132-11/+26
| | | | | | | | can hold more than 4 gigs... controlled by a boolean called job->largeFileSize and enabled from the cli with -4 or --large-file. Note that this breaks compatibility with stuff like the iPod, AppleTV, PS3 (I think), etc...so it is off by default. Also converted a few stray hard tabs into soft tabs. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@618 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Disables extra audio tracks so they don't all play over the main audio track ↵jbrjake2007-06-121-6/+21
| | | | | | in QuickTime. They can be re-enabled from the Properties menu in QT Pro or with Dumpster. Shouldn't have any affect on people who use sane video players. Props to eddyg for reporting the issue, identifying the atom in question, and castigating me for my lazy and unkempt coding ways. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@606 b64f7644-9d1e-0410-96f1-a4d463321fa5
* A big batch of patches from eddyg.jbrjake2007-06-064-22/+211
| | | | | | | | | | | | | Adds following options to the CLI: --subtitle-scan for auto-selecting subtitles for foreign language segments in native language audio tracks --native-language for auto-selecting subtitles for foreign language audio without knowing the track number --longest for auto-selecting the longest title like in the MacGui --turbo for improving speed on the first pass of a two pass encode with x264 (based on superdump's turbo x264 options in mencoder). Thanks, eddyg! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@600 b64f7644-9d1e-0410-96f1-a4d463321fa5
* git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@590 ↵awk2007-05-192-7/+33
| | | | b64f7644-9d1e-0410-96f1-a4d463321fa5
* Removes thread limitation for iPod encoding. With x264's new-ish sliceless ↵jbrjake2007-05-091-1/+0
| | | | | | threading method, there is no longer any need, if there ever was, of keeping the video to 1 slice. This should significantly speed up iPod encodes and shut up the people claiming HB can't use more than 70% of a processor. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@577 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated the input channel layouts to store the source LFE information as ↵maurj2007-05-065-50/+51
| | | | | | | | | well as the non-LFE layout. This is so muxavi.c can output the correct channel count for AC3 passthru for all AC3 sources. Updated Controller.mm, scan.c and work.c to use these revised layouts. Added a new property to the work object, to remember the source audio codec for audio work objects. This enables encfaac to detect an 6-channel AC3 source to apply the QuickTime 6-channel audio mapping (as opposed to a DTS source, which doesn't need it). Fixed the Dolby Pro Logic I/II downmix mappings in libdca and updated the libdca patch. Uploaded a new set of pre-built darwin contribs (0014) with this patch applied. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@570 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated do_job() in work.c to remove any non-AC3 audio tracks from the job ↵maurj2007-05-041-0/+14
| | | | | | before performing AC3 passthru. This prevents Bad Things from happening when a DTS, MPEG2 or LPCM audio track is selected and AC3 passthru to AVI is selected. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@569 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Enabled DTS channel mixdowns by moving to a more generic input channel ↵maurj2007-05-043-306/+194
| | | | | | layout set of constants. Updated Controller.mm to use these generic input layout constants when deciding which mixdowns to offer. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@565 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Tells x264 to use threads=cpus*1.5 instead of threads=cpus. This is because ↵jbrjake2007-05-021-1/+1
| | | | | | x264 implemented sliceless threading since we last updated the revision we use. The codec now works best with more threads than processors, as odd as that seems at first blush. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@564 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added support for DTS audio. DTS audio streams (of 5.1 audio and below) ↵maurj2007-05-0211-136/+617
| | | | | | | | | will be detected and decoded. This requires a new library - libdca (and patch) - which is included (in patched form) in a new version of the pre-built UB Darwin contribs (0012). These have been uploaded to download.m0k.org/handbrake/contrib/ . I haven't yet added any code to Controller.mm to recognise the DTS streams as supporting mono / 6ch DPL1 / DPL2 downmixes. Note: running Jam on the new library required me to update some tools on Mac OS X - possibly libtool, autoconf, automake. Not sure which made the difference, but these were the ones I updated. it won't jam successfully without this. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@559 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Various fixes:saintdev2007-04-262-5/+53
| | | | | | | | | - Include parsecsv.c in the Jamfile so we can compile the CLI with Jam - Quiet some compiler warnings in parsecsv.{c,h} - Check some return values in muxmp4.c and encfaac.c and die gracefully if there is a problem. - Correctly set the number of audio channels in the stsd atom. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@552 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix Previous Bad commit for Cyanders Chapter Markersdynaflash2007-04-259-38/+263
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@548 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Cyanders Named Chapter Markersdynaflash2007-04-251-0/+4
| | | | | | - Thanks Cyander git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@547 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add 384 kbps to Audio Bitrates selection for use with 6 channel discretedynaflash2007-04-181-1/+1
| | | | | | - We still need to filter out which bitrates are available depending on mixdown. Right now, you can select 320 in gui for a stereo track even though libhb limits it to 160, so its misleading. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@530 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Removed all references to the old job->surround variable, as it is no longer ↵maurj2007-04-181-6/+0
| | | | | | used. Also, removed the "Extract 5.1 Dolby Digital to 6-Channel AAC" preference option from the Mac OS GUI prefs window and controller, as it is no longer needed. It may be worth adding in a new "Default mixdown" preference in its place for a future version of Handbrake? git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@523 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Cleaning up the code a bit.clee2007-04-171-207/+212
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@521 b64f7644-9d1e-0410-96f1-a4d463321fa5
* 64-bit data atoms break some consumer devices. We need to figure out a ↵clee2007-04-171-1/+1
| | | | | | smarter way of doing this. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@520 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix a major memory leak introduced in Nyx's bframe patch.saintdev2007-04-171-7/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@519 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Successfully create MP4 files bigger than 4GBclee2007-04-161-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@518 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Prevents a bus error at the end of muxing when b-frames are enabled.jbrjake2007-04-161-0/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@517 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Much better B-frame muxing frame-reordering. This will preserve the sps/pps ↵jbrjake2007-04-169-107/+213
| | | | | | | | info, properly offset the first frame, and flush any remaining frames at the end of the encode. Patch by: Nyx git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@513 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Cleaning up some compiler warnings.clee2007-04-155-5/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@508 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Presets now utilize Audio Mixdowns Thanks maurj!dynaflash2007-04-122-0/+28
| | | | | | | | | | | - Added second audio track support in presets - Mixdowns regress gracefully depending on current dvd source - Source Track 2 sets to "None" if one is specified that doesn't exist in current dvd. Note: in initial testing, second track using 6 channel kills encode performance and yields a track with no sound. Needs to be tested and verified. Main track works flawlessly in initial testing. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@499 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated the Mac GUI to use the new audio mixdowns. This means that the Mac ↵maurj2007-04-123-6/+13
| | | | | | | | | | | | | GUI now supports Dolby PRo Logic 2 mixdowns! The Audio tab now has two mixdown NSPopUpButtons, which are set to display all of the possible mixdowns for the current input audio codec / output audio codec / input audio channel configuration. A mixdown of HB_AMIXDOWN_DOLBYPLII is used by default (or the next best mixdown if this isn't possible). Ideally this will become a prefs option to specify your choice of default audio mixdown. For AC3 passthru, a single mixdown of "AC3 Passthru" is displayed. I've had to update the Xcode project file, to make the Handbrake target look for headers in the "../contrib/include" folder too. This is so that it can find the a52 headers which are now used by Controller.mm. I've added an ac3flags property to hb_audio_s, to enable us to access the source ac3 flags outside of libhb. This is set in scan.c for each source audio. I've updated hb_mixdown_s and the hb_audio_mixdowns[] to include the CLI "short name" version of the mixdowns too, ready for the Mac GUI "default mixdown" prefs saving / loading. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@497 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added libhb and CLI support for Dolby Pro Logic II 5.0 matrix encoding. ↵maurj2007-04-1110-132/+300
| | | | | | | | *NOT YET ADDED TO THE GUI*. Handbrake now uses a more general "audio mixdown" concept. For each audio track to be converted you specify a mixdown. These are defined in common.h. This checkin only allows you to specify one mixdown for all tracks in the CLI, although everything is in place internally to specify a different mixdown per track. In the CLI, the "-6 --surround" option has been repurposed as a "-6 --mixdown" option, with a string parameter of mono/stereo/dpl1/dpl2/6ch. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@494 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Ooops. Restores xvid-in-mp4 functionality, which I broke with b-frame ↵jbrjake2007-04-041-3/+3
| | | | | | muxing. (Thanks for the bug report, superdump, and thanks for pointing out where the problem was, saintdev.) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@476 b64f7644-9d1e-0410-96f1-a4d463321fa5
* maurj reported a double-free crash that I am unable to reproduce. This ↵saintdev2007-04-041-1/+0
| | | | | | removes an extra free that appears to be the problem. Better to leak a little memory than have some users crash. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@474 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix a bus error if b-pyramid is given as an x264 option without specifying a ↵jbrjake2007-04-031-6/+13
| | | | | | value. (Thanks for alerting me to the bug, saintdev) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@473 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Amended work.c to remember the number of source A52 channels and lfe ↵maurj2007-04-021-0/+5
| | | | | | channels, so that deca52.c can correctly detect a 5.1 source which needs mixing down to Dolby Digital. Previously it was just mixing 5.1 down to stereo. This has been broken since rev 438, when the multi-soundtrack bug was fixed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@472 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Oops, got a little to unalloc-happy. Fixes a crash.saintdev2007-04-021-1/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@471 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix several MB of memory leaks in lame, and vorbis.saintdev2007-04-014-0/+25
| | | | | | 6ch Vorbis doesn't seem quite ready for prime time. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@470 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix about 156,199 bytes of leaked memory.saintdev2007-03-3111-8/+59
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@469 b64f7644-9d1e-0410-96f1-a4d463321fa5
* H.264 B-frame muxing for MP4, including B-pyramids. The latter are QuickTime ↵jbrjake2007-03-303-8/+82
| | | | | | | | incompatible. "Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves." -- Alan Kay git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@464 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Amended the code comments about 6-channel and 1-channel audio extraction to ↵maurj2007-03-272-10/+9
| | | | | | reflect that it's no longer just for AAC, following saintdev's addition of 6-ch and 1-ch for OGM. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@458 b64f7644-9d1e-0410-96f1-a4d463321fa5
* -6 channel surround for Vorbis/OGM. The channel mapping seems right for VLC, ↵saintdev2007-03-274-12/+43
| | | | | | | | but may be messed up for other players. -Other small fixes. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@456 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Keep the language id for each audio track when using MP4.saintdev2007-03-264-179/+217
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@454 b64f7644-9d1e-0410-96f1-a4d463321fa5
* saintdev's fix to correctly allocate bitrate for non-stereo audiodynaflash2007-03-241-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@447 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove all libquicktime thingsprigaux2007-03-241-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@443 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added chapter markers in a chapter text track in mp4 files.maurj2007-03-232-2/+48
| | | | | | | | | This option is turned off by default. It can be turned on in the CLI by specifying a "-m" or "--markers" option. it is not yet enabled as an option in the Mac GUI. These chapter tracks are only detected by QuickTime if the file extension is .m4v. If the extension is .mp4, the chapter text track is ignored. To this end, I have made test.c detect .m4v as a file extension for mp4 too. This change has required a substantial change to the mp4v2 library patch. Until the precompiled contrib binaries are updated by Prigaux, try doing "./configure" and then "./jam" (which will build the native contribs, but fail to build UB versions of the apps), and then try "make internal" to compile a native version of the apps. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@440 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Applied and committed saintdev's patch to fix multi-track audio. Only in ↵maurj2007-03-217-62/+82
| | | | | | | | the CLI for now - the GUI will need updating to reinstate the second audio dropdown. If the -6 option is specified in the CLI (and faac is specified), then *any* 5.1 tracks specified will be exported as 6-channel AAC. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@438 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Reverts an hb_snooze call's length from 200 to 50, like titer intended it. ↵jbrjake2007-03-181-1/+1
| | | | | | Should be slightly faster (maybe 1 fps), hopefully might fix some other random problems. It's located in the part of muxcommon.c that waits til the audio and video buffers are full before muxing packets. If the buffers aren't full, it snoozes. So I think it gets run 1 or more times for every frame. The snooze value got altered back in revision 98. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@437 b64f7644-9d1e-0410-96f1-a4d463321fa5
* saintdev's 64-bit deadlock fixdynaflash2007-03-185-10/+8
| | | | | | | -should fix some issues when HB is used on a 64 bit system. -thanks saintdev! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@436 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Thinine's custom file size and x264 fix.dynaflash2007-03-131-1/+1
| | | | | | | | | Thanks Thinine! - Fix output file variable in controller.mm and common.h so that custom file sizes work properly with x264. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@431 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merge the 5.1 branch into the trunk.prigaux2007-03-0635-0/+10116
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@422 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merge the 0.8.0_mpeg4ip branch into the trunkprigaux2007-02-1133-9513/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@285 b64f7644-9d1e-0410-96f1-a4d463321fa5
* added call to av_log_set_level in hb_init_real based on value of verbose param.johnallen2007-01-141-0/+1
| | | | | | | makes ffmpeg debbuging level the same as ours. will be useful while finding the memory leak issue. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@106 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Revert changes to threading sleep intervals. johnallen2007-01-093-17/+8
| | | | | | | Some users have issues with this. It is less risky to not include this for release 0.7.2 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@100 b64f7644-9d1e-0410-96f1-a4d463321fa5
* added worker thread sleep throttling.johnallen2007-01-087-12/+41
| | | | | | | | | | each of the work object threads now self adjust their sleep interval based on the "fullness" of their fifo. 80% is the choose threshold. Work objects with a fifo fullness of greater than 80% increase their sleep interval. This allows other work object with less than 80% fullness more CPU usage. Also adjusted thread_func, reader, and muxer sleep intervals to more reasonable values. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@98 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Documentation begins. johnallen2007-01-073-3/+149
| | | | | | | Added method documentation for hb.c as well as a few methods in sync.c and work.c More to come. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@97 b64f7644-9d1e-0410-96f1-a4d463321fa5