summaryrefslogtreecommitdiffstats
path: root/libhb/work.c
Commit message (Collapse)AuthorAgeFilesLines
* OpenCL: Merging Trunk to OpenCL Branch.sr552013-09-061-16/+176
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5770 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging Trunk into OpenCLsr552013-06-011-148/+92
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5541 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging Trunk to OpenCLsr552013-05-261-5/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5518 b64f7644-9d1e-0410-96f1-a4d463321fa5
* OpenCL: Correct case of log message.sr552013-05-191-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5484 b64f7644-9d1e-0410-96f1-a4d463321fa5
* OpenCL: work: fix logging of job->use_opencl; it was done before setting it ↵Rodeo2013-05-191-8/+14
| | | | | | instead of after. git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5482 b64f7644-9d1e-0410-96f1-a4d463321fa5
* improve code stylehandbrake2013-05-021-3/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5436 b64f7644-9d1e-0410-96f1-a4d463321fa5
* OpenCL: Merging Trunk to OpenCL branch in preparation to merge back to core ↵sr552013-04-281-9/+12
| | | | | | after the upcoming release ships. git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5418 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merge Trunk into OpenCL again.sr552013-03-271-15/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5365 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging Trunk to OpenCL branchsr552013-03-091-38/+23
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5319 b64f7644-9d1e-0410-96f1-a4d463321fa5
* tidy up log output, useless codehandbrake2013-02-251-10/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5268 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging Trunk into OpenCL Branch.sr552013-02-241-7/+39
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5264 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Replace some code with platform independenthandbrake2013-02-081-7/+1
| | | | | | | Remove some useless code git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5243 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging trunk to cl branch.sr552013-02-021-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5234 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add a new compile option: --enable-hwdhandbrake2013-01-311-11/+11
| | | | | | | | | | | | change the GUI uvd checkbox's name to hardware decoder modify the issue compile on linux modify the issue on Intel platform with Intel integrate graphic add a new opencl scale algorithm, PSNR goes up (added files: scale.h, scale.c, scale_kernel.h, scale_kernel.c) merge the cropscaleaccl.c to cropscale.c merge the decavcodecaccl.c to decavcodec.c git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5227 b64f7644-9d1e-0410-96f1-a4d463321fa5
* modified some display information errorshandbrake2013-01-151-2/+2
| | | | | | | modified GUI OpenCL/UVD checkbox enable errors modified compile without enable-opencl work errors git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5171 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging Trunk into the OpenCL branch. This includes an updated version of ↵sr552013-01-061-7/+8
| | | | | | libav. 0.9 beta 3 git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5155 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add hardware decoder support for H264(vob/m2ts), mpeg2(vob/m2ts), ↵handbrake2012-12-181-1/+29
| | | | | | | | | VC1(WMV3/m2ts) decoding modify the GUI for adding some user options about enable/disable OpenCL or GPU add some test case for tesing our modifications. git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/opencl@5100 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve management of titles and jobsjstebbins2012-11-121-56/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleans up several several unavoidable memory leaks caused by old api. Clearly separates titles from jobs. Titles are set during scan and never modified now. Since titles are immutable, this lead to API some changes. For example, We were setting chapter names in the title from the front ends. Now these get set in the job. These new APIs allow us to start moving away from our use of title->job. Eventually, I would like to eliminate title->job completely, but the mac ui is too tightly tied to using this field to allow removing it at this time. So there is temporarily a convenience function used only by the mac ui that allows it to continue using title->job and also use the new APIs. New APIs: typedef struct hb_title_set_s hb_title_set_t; struct hb_title_set_s { hb_list_t * list_title; int feature; // Detected DVD feature title }; hb_title_set_t * hb_get_title_set( hb_handle_t * ); This is just something I added to clean up how "feature title" info is passed. hb_job_t * hb_job_init( hb_title_t * title ); Initializes a new job with default settings from the title. hb_job_t * hb_job_init_by_index( hb_handle_t *h, int title_index ); Same as hb_job_init(). For use by win Interop lib. void hb_job_reset( hb_job_t * job ); Convenience function for the MacUi. Clears audio, subtitle, and filter lists. The macui still uses title->job because it is so intricately tied to it. So I created this convenience function that it can call after adding a job. void hb_job_close( hb_job_t ** job ); Releases the job an all resources it contains. void hb_job_set_advanced_opts( hb_job_t *job, const char *advanced_opts ); Makes a copy of "advanced_opts" and stores in job. Freed by hb_job_close(). void hb_job_set_file( hb_job_t *job, const char *file ); Makes a copy of "file" and stores in job. Freed by hb_job_close(). void hb_chapter_set_title(hb_chapter_t *chapter, const char *title); Makes a copy of "title" and stores in chapter. Freed by hb_chapter_close(). Recommended usage (cli and lingui are updated to do this): job = hb_job_init( title ); // set job settings ... hb_add(h, job); hb_job_close( &job ); I have also added new APIs for managing metadata. These are used to add metadata to a job. void hb_metadata_set_name( hb_metadata_t *metadata, const char *name ); void hb_metadata_set_artist( hb_metadata_t *metadata, const char *artist ); void hb_metadata_set_composer( hb_metadata_t *metadata, const char *composer ); void hb_metadata_set_release_date( hb_metadata_t *metadata, const char *release_date ); void hb_metadata_set_comment( hb_metadata_t *metadata, const char *comment ); void hb_metadata_set_genre( hb_metadata_t *metadata, const char *genre ); void hb_metadata_set_album( hb_metadata_t *metadata, const char *album ); void hb_metadata_set_coverart( hb_metadata_t *metadata, const uint8_t *coverart, int size ); Example: job = hb_job_init( &job ); // set job settings ... hb_metadata_set_artist( job->metadata, "Danny Elfman" ); hb_add(h, job); hb_job_close( &job ); Some APIs have changed in order to avoid using title incorrectly and use the new hb_title_set_t. -void hb_autopassthru_apply_settings( hb_job_t * job, hb_title_t * title ); +void hb_autopassthru_apply_settings( hb_job_t * job ); -void hb_get_preview( hb_handle_t *, hb_title_t *, int, uint8_t * ); +void hb_get_preview( hb_handle_t *, hb_job_t *, int, uint8_t * ); hb_thread_t * hb_scan_init( hb_handle_t *, volatile int * die, const char * path, int title_index, - hb_list_t * list_title, int preview_count, + hb_title_set_t * title_set, int preview_count, int store_previews, uint64_t min_duration ); These APIs have been removed. Win Interop will need some changes. I think what I've provided will be suffecient, but let me know if it's not. -void hb_get_preview_by_index( hb_handle_t *, int, int, uint8_t * ); -void hb_set_anamorphic_size_by_index( hb_handle_t *, int, - int *output_width, int *output_height, - int *output_par_width, int *output_par_height ); git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5058 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix initialization of hb_job_t.pfr_vrate(_base).Rodeo2012-10-271-0/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5037 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix a collection of small memory leaksjstebbins2012-09-131-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4963 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Audio improvements.Rodeo2012-09-031-37/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New supported samplerates: 8, 11.025, 12, 16 kHz. Now 8, 11.025, 12, 16, 22.05, 24, 42, 44.1, 48 Khz are supported. Unsupported samplerates are sanitized to the closest samplerate for all encoders. Samplerates < 32 kHz are now forbidden for AC3 encoding (sanitized to 32 kHz). Most AC3 decoders don't support such samplerates. New upmixing: 3.0 (Front Left, Right & Center) can now be upmixed to 5.1 to preserve the center channel. New mixdowns: 6.1 (Front Left, Right & Center, Surround Left, Right & Center, LFE) 7.1 (Front Left, Right & Center, Surround Left & Right, Rear Left & Right, LFE) -> available to Vorbis & FLAC encoders for compatible input channel layouts 7.1 (Front Left, Right & Center, Front Left & Right of Center, Surround Left & Right, LFE) -> available to AAC encoders (ca_aac, ca_haac, faac) for compatible input channel layouts Mono (Left Only): Stereo to Mono by discarding the Right channel Mono (Right Only): Stereo to Mono by discarding the Left channel -> available to all encoders for non-Dolby Stereo input The "6-channel discrete" mixdown becomes "5.1 Channels". New bitrates: 960 - 1536 Kbps. This lets users work around poor audio quality in crappy encoders by throwing more bits at them. Bitrate limits have been re-worked and re-tested for all encoders. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4930 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Encode log: indicate if audio->config.out.normalize_mix_level is enabled.Rodeo2012-08-021-0/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4887 b64f7644-9d1e-0410-96f1-a4d463321fa5
* work: simplify & optimize.Rodeo2012-07-291-47/+38
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4882 b64f7644-9d1e-0410-96f1-a4d463321fa5
* work: indentation and miscellaneous cosmetics.Rodeo2012-07-291-181/+182
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4881 b64f7644-9d1e-0410-96f1-a4d463321fa5
* work: don't sanitize output bitrate etc. for passthrough audio.Rodeo2012-07-291-11/+15
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4880 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use HB_INVALID_AMIXDOWN and HB_AMIXDOWN_NONE where applicable.Rodeo2012-07-291-4/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4879 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Only log the input bitrate if it's valid; some decoders (e.g. TrueHD) set it ↵Rodeo2012-07-231-1/+7
| | | | | | | | | | | | to a dummy value of 1, resulting in: [05:15:24] * audio track 1 [05:15:24] + decoder: English (truehd) (5.1 ch) (track 1, id 0x1) [05:15:24] + bitrate: 0 kbps, samplerate: 48000 Hz git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4870 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use libav for dts audio decoding instead of libdca jstebbins2012-07-151-6/+1
| | | | | | | | | libdca has no advantage over libav for dts audio decoding. It doesn't do drc and it's downmix capabilities are actually inferior to libav. So this completely removes libdca from libhb git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4844 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove encca_haac_available(). It's no longer needed since we dropped ↵Rodeo2012-06-201-35/+26
| | | | | | support for OS X 10.5. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4759 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix Foreign Audio Search bug introduced in revision 4677.Rodeo2012-06-171-1/+11
| | | | | | | | interjob->select_subtitle was never freed, causing it to be added to all following queued encodes. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4748 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated file copyright / GPL headerssr552012-06-151-3/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4737 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix more compiler warningsjstebbins2012-05-261-2/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4702 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Foreign Audio Search: improve duplicate subtitle detection.Rodeo2012-05-141-6/+8
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4679 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix a couple Foreign Audio Search issues causes by the changes introduced in ↵Rodeo2012-05-141-9/+3
| | | | | | | | | | | | revision 4622: - hang if forced-only were not set - Foreign Audio Search would select a subtitle track containing forced subtitles even if forced-only were not set git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4678 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: include subtitles in all passes. When doing 2-pass, we want to send ↵Rodeo2012-05-141-24/+13
| | | | | | | | | | the same input to the video encoder in both passes, which requires including subtitles in case one has to be burned-in. Update Foreign Audio Search to work with the new behavior. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4677 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Sorry, missed one.Rodeo2012-05-121-2/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4663 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Further cleanup.Rodeo2012-05-121-10/+10
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4662 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Cleanup: merge two consecutive if( job->indepth_scan ) blocks.Rodeo2012-05-121-18/+8
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4661 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix another filter initialization problemjstebbins2012-05-071-1/+3
| | | | | | | if a filter fails to initialize, the next filter in the list got skipped git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4650 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Fix problem with positions of burned-in subsjstebbins2012-05-051-55/+1
| | | | | | | | | | | | | | | | | When cropping and/or scaling, the position of burned-in SSA subs was broken. Also, when scaling, the position of all other burned-in subs was broken. Part of this fix is to revert a bit of filter initialization changes that were made in this commit https://trac.handbrake.fr/changeset/4605 The other part of the fix is to add cropping parameters to the initialization of the subtitle rendering filter. This filter needs the *original* title dimensions and the crop values in order to compute the positions properly. The changes that I am reverting gave it the scaled job dimensions and the crop values. This was wrong in so many ways it's embarassing :p git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4642 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix problem with filter initializationjstebbins2012-05-021-0/+1
| | | | | | | Under certain circumstances, a filter could get skipped during initialization git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4628 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Minor simplification.Rodeo2012-05-011-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4623 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Simplify Foreign Audio Search code:Rodeo2012-05-011-55/+75
| | | | | | | | | | | | | | | | | | | | - move all subtitle hit counting to the decoders instead of reader ---> allows us to count actual subtitles rather than just packets - always count subtitles, even when not doing a scan (may be useful in the future) Miscellaneous improvements: - always insert select_subtitle at the head of the output subtitle list, to make it less likely to be dropped - when multiple subtitle tracks have forced hits, pick the track with the fewest forced hits ---> Foreign Audio Search should now work with Star Wars on Blu-ray - logging improvements (more readable, and log job->select_subtitle configuration - Forced Only vs. All, Render vs. Passthrough) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4622 b64f7644-9d1e-0410-96f1-a4d463321fa5
* PGS (bluray) subtitle support \o/jstebbins2012-04-261-110/+196
| | | | | | | | | | | | Thanks to patches supplied by David Mitchell and Rob McMullen we finally have PGS support. I added a fix for libav pgs timestamp processing and detection of forced subtitles to their work, then made foreign audio search work with PGS subs. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4605 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix crash when subtitle render filter fails to initializejstebbins2012-04-151-3/+4
| | | | | | | | | | | This can happen for non-fatal reasons when doing foreign audio search. This makes all filter init failures non-fatal. We may want to introduce fatal errors at some point. I need to inspect all the filters and see if there are any errors that really must be fatal. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4600 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Revision 4546 lost a call to hb_set_anamorphic_size, which in turn called ↵Rodeo2012-04-101-7/+12
| | | | | | | | | | hb_reduce on PAR values. Restore the call to hb_reduce, as the MacGui's custom anamorphic code doesn't reduce fractions on its own. Also, call hb_reduce after each modification to the PAR in libavcodec compatibility code. This should reduce the loss of precision somewhat, by avoiding another division when the divided PAR width & height can be reduced to values <= 255. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4583 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Activity Log: fix some typos and make indentation a bit more consistent.Rodeo2012-03-311-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4565 b64f7644-9d1e-0410-96f1-a4d463321fa5
* encx264: use x264_param_apply_fastfirstpass.Rodeo2012-03-281-0/+8
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4551 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Rework filter pipelinejstebbins2012-03-271-114/+253
| | | | | | | | | | | | | | | | | | | | This patch enhances the filter objects. The 2 key improvements are: 1. A filter can change the image dimensions as frames pass through it. 2. A filter can output more than one frame. In addition, I have: Moved cropping & scalling into a filter object Added 90 degree rotation to the rotate filter Moved subtitle burn-in rendering to a filter object. Moved VFR/CFR handling into a framerate shaping filter object. Removed render.c since all it's responsibilities got moved to filters. Improves VOBSUB and SSA subtitle handling. Allows subtitle animations. SSA karaoke support. My apologies in advance if anything breaks ;) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4546 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add hb_apply_h264_level(). Sets and ensures compliance with the specified ↵Rodeo2012-03-241-4/+9
| | | | | | | | | | H.264 level. Does not modify framerate and resolution but prints warnings when they are incompatible with the requested level. Exposed to CLI users only via the --h264-level option. GUI support may come later, once we decide how to handle x264 presets/tunes/profiles. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4534 b64f7644-9d1e-0410-96f1-a4d463321fa5