summaryrefslogtreecommitdiffstats
path: root/libhb/work.c
Commit message (Collapse)AuthorAgeFilesLines
* fix potential runaway buffer usagejstebbins2009-12-151-2/+16
| | | | | | | | | | pthread_cond_timedwait can wake early. under certain system load conditions, this happens often. I was going ahead and adding buffers whenever it woke, regardless of whether the condition had actually been met. so the fifo depth would increase until memory ran out. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3030 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Disables chapter markers when there is only one chapter. Most interfaces ↵jbrjake2009-12-091-0/+6
| | | | | | already do this, but now they have no choice. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3019 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix buffer leak during indepth scan jstebbins2009-12-081-0/+12
| | | | | | | and fix a couple potential leaks if the timing is just right in work loops git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3016 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Reduce the amount of buffering used and eliminate hb_snooze in the encoding ↵jstebbins2009-12-051-206/+227
| | | | | | | | | | | | | | | | | | | | | | pipeline For HD sources on an 8 core system with hyperthreading, we were using 1.5GB of ram. Add to that the 600MB x264 uses for rc-lookahead, pushes it north of 2GB. To reduce our memory usage, the fifo depths have been reduced are are no longer a multiple of cpu count. Use of hb_snooze has been eliminated in the encoding pipeline so that performance doesn't fall as a result of the reduced fifo depths. In sync, each audio and video were given separate threads so that each can wait on it's respective input fifo without blocking the others. In muxcommon, each stream being muxed was given a separate thread so that each can wait on it's respective fifo. This allows the removal of hb_snooze in the sync and muxer work loops. In both sync and muxer, there is common data that is shared by all threads, so special init routines allocate this shared data and initialize the threads. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3007 b64f7644-9d1e-0410-96f1-a4d463321fa5
* batch file scanning and scan canceljstebbins2009-11-251-1/+1
| | | | | | | | | | When a directory is specified as the source, first we attempt to open as a dvd, then if that fails, we attempt to open each file in the directory as a stream source. Since opening a large directory of files can take a really long time, you can also now cancel a scan. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2980 b64f7644-9d1e-0410-96f1-a4d463321fa5
* remove crf flag and all uses of itjstebbins2009-10-191-1/+1
| | | | | | | x264 encodes will only use crf now. qp mode is gone. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2891 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix interjob recalculation of frameratejstebbins2009-07-221-1/+2
| | | | | | | there was loss of precision due to integer division. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2721 b64f7644-9d1e-0410-96f1-a4d463321fa5
* CLI: SubRip Subtitle importeddyg2009-06-231-0/+9
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2602 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Moved --native-langauge processing from libhb to the CLI. Added --native-dub ↵eddyg2009-06-211-32/+23
| | | | | | option to allow the user to request dubbing instead of subtitles when the audio does not match the users native language. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2594 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix typo that causes 2 pass encodes to segfault at beginning of pass 2jstebbins2009-06-201-1/+1
| | | | | | | | - this only appears after running at least one previous encode job so it got missed in simple one-off testing git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2588 b64f7644-9d1e-0410-96f1-a4d463321fa5
* dvdnav: oops. initialize d->chapter to 0 instead of first chapterjstebbins2009-06-131-29/+22
| | | | | | | otherwise, we don't get the initial chapter marker event git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2528 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix forced foreign language scan issuesjstebbins2009-06-131-1/+1
| | | | | | | | | | | | | | | - subtitles were not being added to list of subs to scan because the wrong config was being checked for the forced flag. needed to use job->select_subtitle_config instead of subtitle->config - scr code in reader was preventing the majority of subtitle packets from reaching decvobsub. made decvobsub more robust by adding ability to re-sync in the event of lost packets. made scr recovery initialize itself even in the event that it sees audio or subtitles before seeing video. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2526 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: interjob vrate info did not get updated when there is an indepth scanjstebbins2009-06-111-1/+1
| | | | | | | due to job sequence_id mismatch. masking interjob sequence_id properly fixes. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2522 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds a keep_display_aspect toggle to the job->anamorphic struct in order to ↵jbrjake2009-06-061-0/+12
| | | | | | fix a bug and implements it in the CLI. Also adds some more anamorphic settings to the job config display. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2492 b64f7644-9d1e-0410-96f1-a4d463321fa5
* CLI: Implements custom anamorphic. No more -p or -P. Choices are ↵jbrjake2009-06-051-1/+1
| | | | | | | | | | --strict-anamorphic, --loose-anamorphic, and the new --custom-anamorphic. The last of which also handles --pixel-aspect, --display-width, --itu-par, --modulus, and --keep-display-aspect options. Loose will also obey the pixel aspect and ITU PAR options. Libhb: Fixed a small bug with custom anamorphic working off the source's display aspect even when dealing with a custom display aspect, and made the job config display aware that custom anamorphic exists. Scripts: Updated manicure to write the new anamorphic option names. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2487 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds an interjob structure to preserve some encode data across jobs within ↵jbrjake2009-06-041-0/+24
| | | | | | an instance of libhb. This allows correcting the estimated bitrate/filesize of 2-pass encodes of variable framerate content, as the actual frame count is known after the first pass. Thanks for putting the idea into code, Shaya. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2482 b64f7644-9d1e-0410-96f1-a4d463321fa5
* softsubtitles:jstebbins2009-06-021-34/+63
| | | | | | | | | | | | | | | | | | - when doing an indepth scan, do not scan CC tracks - separate subtitle configureation attributes into separate hb_subtitle_config_t. Add an instance of this to hb_job_t for setting the attributes of the subtitle found through an indepth scan - Add a default_track flag to hb_subtitle_config_t that tells the muxer that the track should be flaged as the default. muxmkv uses this. - When an indepth scan is complete, check to see if the autoselected subtitle matchces (by id) one of the manually selected subtitles. If a match is found, the autoselected subtitle with all the attributes the user assigned to it replaces the manually selected subtitle. - LinGui: Add "Default" column to subtitle tab. This is a radio that lets the user choose which subtitle should be displayed by default. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2468 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Excises xvid from libhb because it's not worthy. Having two different MPEG-4 ↵jbrjake2009-05-261-7/+0
| | | | | | | | | Part 2 encoders is superfluous and when choosing between ffmpeg and xvid, xvid is the clear loser since we need to keep ffmpeg around for other functions and xvid constantly requires attention to ensure it compiles. MacGui: Removes some stray references to the codec and unlinks it from the Xcode project. CLI: Removes references to the codec and removes it as a dependency. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2448 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - Add CoreAudio AAC as one of the encoder on Mac OS X.ritsuka2009-05-231-2/+4
| | | | | | | - Remove hb_init() and hb_init_express() macro. Rename hb_init_real() to hb_init() - Add two more bitrate combination for audio codecs in common.h git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2441 b64f7644-9d1e-0410-96f1-a4d463321fa5
* mkv soft subtitle supportjstebbins2009-05-191-3/+5
| | | | | | | | | | | | | - new libmkv 0.6.4 with subtitle track support - muxmkv supports vobsub and closed caption subtitles - added subtitle format, source, and dest initialization to dvdnav - moved subtitle_force flag into hb_subtitle_t struct as it needs to be settable per subtitle - gtk ui added subtitle tab which allows selection of multiple subtitles - reorgainize subtitle sync code to prevent dropping of subtitles when multiple subtitles are enabled git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2428 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Change CC608 decoder to be its own threadeddyg2009-05-071-4/+15
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2396 b64f7644-9d1e-0410-96f1-a4d463321fa5
* VOBSUB encoder skeleton for use with mkv VOBSUB pass-througheddyg2009-05-061-3/+19
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2389 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Clean up subtitles at end of encode if not consumed and free fifo.eddyg2009-05-051-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2387 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Rewrite pass-through timestamps in sync, put on subtitle->fifo_out for ↵eddyg2009-05-051-0/+1
| | | | | | muxing. Also put the mp4 subtitle display inline with muxing - easy for ritsuka to put into a subtitle track ;) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2384 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Soft Subs Part 2: Auto-detect CC during scan, add CC to subtitle list in ↵eddyg2009-05-041-2/+5
| | | | | | title, if selected then CC's are extracted, MP4 Muxer will dump the subs to the log at the end of encoding. TODO: Translate PTS for buf->start to HB format, add MP4 subtitle track and subs during muxing. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2375 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Stage 1 Soft Subtitle Support - Allow multiple subtitle tracks to be ↵eddyg2009-05-041-2/+2
| | | | | | selected, and mark them for Render or Pass Through. No functional difference from the UIs, however in theory they could render multiple tracks - would be a dogs breakfast on screen though, and is untested. Have tested all normal operations from the UIs, including scanning. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2373 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - Move frame rate code from sync to the end of render so it can account for ↵van2009-05-021-14/+16
| | | | | | | | | | | | frame timing changes made by filters. - Fix a bug that would make CFR alternate between massive drops and massive dups on some titles. - If we're not doing CFR add a factor-of-two fudge factor to init_delay to account f or the awful clock resolution of some mkvs and mp4s. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2368 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: disable DTS passthru option for MP4 file outputjstebbins2009-04-181-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2340 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Enable DTS passthru for matroska containerjstebbins2009-04-181-2/+4
| | | | | | | | since we have no way to create silent dts frames for insertion to maintain sync, frames from other streams may be dropped when there is a sync problem on the DTS stream git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2339 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't truncate RF/QP values down to integers when displaying job config. ↵jbrjake2009-02-231-1/+1
| | | | | | Still needs to be restructured for encoders other than x264, but I wanted to get this minor change in now so I don't forget and because it won't break any patches to work.c. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2175 b64f7644-9d1e-0410-96f1-a4d463321fa5
* AC3 dynamic range compression changes. 0 now means a null DRC function. 1 ↵jbrjake2009-02-051-1/+1
| | | | | | | | remains the same (default DRC) and >1 still boosts soft sounds. For the moment, presets and interfaces still assume a default of 1, but the notion is to move to having 0 as the default, in the hope it will be louder/clearer. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2119 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Organizes anamorphic parameters in a struct, requiring some minor search and ↵jbrjake2009-01-261-29/+20
| | | | | | replace changes in the interfaces. Folds the logic for strict anamorphic mode into hb_set_anamorphic_size() and also stakes out a new, more customizable mode 3. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2097 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't allow multiple decodes of the same ffmpeg audio stream. Because ffmpeg ↵van2008-11-291-4/+22
| | | | | | | | | 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.) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1969 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Minor tweaks the job config display for the COLR atom: only show when not ↵jbrjake2008-11-011-9/+3
| | | | | | using a default value, display with the name "color matrix" instead of "color space" to avoid confusion with conversions to YUV420 planar color space, and appear with the other container settings instead of video settings. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1889 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Added support for extracting the audio and subtitle types and adding those ↵eddyg2008-10-231-1/+1
| | | | | | to the audio and subtitle names, e.g. Director's Commentary. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1863 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Adds a configuration option for whether the COLR atom and h.264 VUI header ↵jbrjake2008-10-191-0/+9
| | | | | | should signal Bt.601 or Bt.7709 color, instead of just setting it based on whether the source is standard or high definition (which is preserved as default, and made more sensitive to letterboxed HD content). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1851 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Minor tweak to how audio track names are displayed.jbrjake2008-10-181-2/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1844 b64f7644-9d1e-0410-96f1-a4d463321fa5
* CLI: Add support for naming audio tracks to the HandBrakeCLI, thanks to ↵eddyg2008-10-101-1/+2
| | | | | | LePetomane for the patch. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1825 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't display a mixdown in the job settings for passthrough audio tracks.jbrjake2008-09-291-4/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1783 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Now that the interfaces don't set job->vfr to 1 unless detelecine is ↵jbrjake2008-09-261-28/+8
| | | | | | | | enabled, libhb doesn't have to make sure the filter is on. Also adds a sanity check to make sure frames aren't dropped in the AVI container, for those masochstic enough to use the format. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1774 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Spit out the average encoding speed in the verbose log at the end of a job.jbrjake2008-09-191-0/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1727 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't obey maxWidth and maxHeight settings when using strict anamorphic.jbrjake2008-08-061-18/+17
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1612 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Splits the display of job settings off from the actual work of beginning of ↵jbrjake2008-08-011-73/+227
| | | | | | | | 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). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1599 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix two problems that would cause HB to hang in the muxer whenever the input ↵van2008-07-301-30/+10
| | | | | | | | | | 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. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1597 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix subtitle scan to work with new stream eof logic.van2008-07-261-5/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1584 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - in encx264, if an video frame is larger than init_delay split it into ↵van2008-07-261-4/+7
| | | | | | | | | | | | 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). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1581 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Enable subtitle-scan to work when using Xvid as the encoder. Also checks ↵eddyg2008-07-011-10/+21
| | | | | | return values from the work Init functions to enable Work threads to abort the encode should they not initialise properly. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1547 b64f7644-9d1e-0410-96f1-a4d463321fa5
* No need to check the mixdown settings if pass-through is requested.saintdev2008-06-171-119/+122
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1519 b64f7644-9d1e-0410-96f1-a4d463321fa5
* - support blu-ray, avchd & dvb x264van2008-05-311-184/+167
| | | | | | | - support video files handled by ffmpeg (avi, mkv, mp4, etc.) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1480 b64f7644-9d1e-0410-96f1-a4d463321fa5
* When encoding anamorphic with lavc, ensure PAR values are 8-bit. Thanks, j45!jbrjake2008-05-291-1/+15
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1470 b64f7644-9d1e-0410-96f1-a4d463321fa5