summaryrefslogtreecommitdiffstats
path: root/libhb
Commit message (Collapse)AuthorAgeFilesLines
* 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
* added HB_STATE_MUXING to hb_state_s and corresponding structure.johnallen2007-01-072-0/+13
| | | | | | | | | | this state indicates the transition from the end of HB_STATE_WORKING to the beginning of HB_STATE_WORKDONE. This state can take as long a 10 minutes on a long conversion. The associated working structure contains a progress float. Once we determine how to get a proper progress from the call to av_write_trailer in libavformat, we can update this progress. HB, IHB, and HBTest are now using using HB_STATE_MUXING to provided feedback to the user. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@96 b64f7644-9d1e-0410-96f1-a4d463321fa5
* RapidSVN commited changes to files I did not want commited. This commit ↵johnallen2007-01-064-27/+1
| | | | | | revert those files back to rev 92. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@94 b64f7644-9d1e-0410-96f1-a4d463321fa5
* added Doxyfile, config file for doxygenjohnallen2007-01-064-1/+27
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@93 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added CRF x264 rate control method to HBTest.jbrjake2007-01-042-5/+18
| | | | | | | | | | Constant quantizer is maintained as the default so nothing changes: HBTest -i input -o output -e x264 -q 0.60 Switch to constant rate factor by throwing a -Q on the end: HBTest -i input -o output -e x264 -q 0.60 -Q git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@89 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Changes to make HandBrake build on Windows using the Cygwin environment:handbrake2007-01-031-56/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | root configure file: I added this to the "case $SYSTEM in" switch statement: CYGWIN_NT*) DEFINES="$DEFINES SYS_CYGWIN USE_PTHREAD" LINKLIBS="$LINKLIBS -lpthread" ;; Also, for each existing OS type that is using -lpthread, I added USE_PTHREAD to their DEFINES. Then libhb/ports.c was changed to use pthread code based on the value of USE_PTHREAD, instead of checking each different OS value that used pthreading, so it's a bit easier to read and maintain. root Jamfile: Jam doesn't seem to understand CYGWIN, so $(OS) is defined as UNKNOWN. Check for this, and if this it true then set $(OS) to CYGWIN. Since CSS doesn't work (yet) on CYGWIN/Windows, I also changed Jamfile to not include libdvdcss.a in the library list for CYGWIN. contrib/Jamfile: For CYGWIN, don't build libdvdcss, and don't specify it's path for libdvdread. There are also a few changes to use new patchfiles for Cygwin for a few of the libraries. x264: Change configure script so that it doesn't include -mno-cygwin flags for CYGWIN platform. Created patchfile patch-x264-cygwin.patch for this, which is used by Jamfile. The -mno-cygwin flags cause the library not to link correctly with HBTest.exe. The -mno-cygwin flag is used to create an object file or library that doesn't depend on cygwin1.dll if you're using MinGW, but I'm not (yet). libxvidcore: Change configure script so that it doesn't include -mno-cygwin flags for CYGWIN platform. Change configure script so that it uses libxvidcore.a as the lib name instead of xvidcore.a for CYGWIN. Created patchfile patch-xvidcore-cygwin.patch that contains the 2 above changes and is used by Jamfile. Renamed patch-xvidcore.patch to patch-xvidcore-macosx.patch and updated Jamfile as appropriate -- an attempt to keep the patches being applied only when needed for a particular platform. ffmpeg: libavcodec/mpegaudiodec.c uses llrint(), which apparently isn't availble with Cygwin, so I changed the file to use lrint() which is available. llrint() returns a long long, lrint() returns a long. In the places where llrint() was being called, the return value of llrint() was being assigned to an element in an array of unsigned ints, so llrint() (long long) shouldn't be needed, and lrint() (long) should be fine. Created patchfile patch-ffmpeg-cygwin.patch that contains this change, and is used by Jamfile. libhb/ports.c: Commented out a number of things that were broken with the current SYS_CYGWIN code. The most notable change was to not use Windows threading for CYGWIN, and instead use pthreading. All the places where the OS type was being checked to determine whether or not to use pthreading were changed so that the USE_PTHREAD define is checked instead. There seems to be some problem with the Windows threading code in ports.c, because if I enable it then x264 encodes will either crash or lock-up HBTest.exe. Perhaps this is related to mixing threading models, since x264 is compiled with pthread support, and so maybe mixing pthread with Windows threading in the same process is a bad thing. test/test.c: Need to #include sys/time.h, time.h, unistd.h to compile. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@84 b64f7644-9d1e-0410-96f1-a4d463321fa5
* HandBrake 0.7.1a2handbrake2006-12-161-13/+3
| | | | | | | | Updated x264 base source to svn 604 Improved CQP and ABR handling git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@71 b64f7644-9d1e-0410-96f1-a4d463321fa5
* HandBrake 0.7.1a1rhester2006-09-308-74/+105
| | | | | | | | | | | | | | | | Made H.264 baseline levels more generic Added iPod 640x480 support to libhb, HBTest and MacOS X GUI Added proper iPod 640x480 muxing Modified rate control for more accurate ending video bitrates Updated ffmpeg and x264 base sources to more current levels Removed inlined ff_get_fourcc (now in ffmpeg) Updated patches for xvidcore, libdvdread, x264, and ffmpeg Relocated contrib files to local web server and updated version files to new site Renamed contrib files and patches to consistent naming standard Updated contrib Jamfile to support new patches and naming standard git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@70 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Allow 32kHz audio output, updated build instructions.titer2006-05-031-3/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@69 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fixed scanning of DVD folderstiter2006-04-211-3/+11
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@67 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use the DVD name for the output filetiter2006-04-202-0/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@65 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Show the name of the DVD instead of /dev/rdiskXtiter2006-04-192-0/+25
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@64 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Implemented audio and subtitle selectiontiter2006-04-172-0/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@62 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merge from avformat branchtiter2006-04-1710-146/+173
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@60 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds presets for iPod/H.264 and iPod/MPEG-4 + small UI fixestiter2006-03-212-0/+65
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@47 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Simple threading change (~4% faster). Breaks pause/resume for nowtiter2006-03-182-140/+49
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@40 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added hb_init_express - makes the binary smaller. Still need to striptiter2006-03-167-57/+92
| | | | | | | the unused avi and ogm muxers. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@36 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Structural changes, in order to eventually be able to compile HBtiter2006-03-1617-907/+882
| | | | | | | without certain encoders git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@34 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Preparing 0.7.1titer2006-02-241-0/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@31 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Softer resampling when audio dates are messed up (fix for LPCM issues).titer2006-02-232-37/+15
| | | | | | | Disabled verbose in the OS X UI git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@30 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Quick fix for Madagascar: increased tolerance level for PTS discontinuitiestiter2006-02-231-6/+8
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@29 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix for missing subtitlestiter2006-02-225-24/+71
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@28 b64f7644-9d1e-0410-96f1-a4d463321fa5