summaryrefslogtreecommitdiffstats
path: root/gtk/src/hb-backend.h
Commit message (Collapse)AuthorAgeFilesLines
* libhb: make muxer, sync, and reader behave like other work objectsJohn Stebbins2015-11-091-1/+1
| | | | | | | | | | | | | simplify job initialization sequence, clean up code, and document dependencies in the sequence better. Make hb_add set job->sequence_id. It is no longer necessary for the frontend to do this. If the frontend needs the sequence_id, it is returned by hb_add(). Clean up use of interjob. do_job() now uses sequence_id to detect when a new sequence of related jobs is running and automatically clears interjob.
* LinGui: fix filter display in queue listJohn Stebbins2015-10-051-0/+1
| | | | | Under some circumstances, incorrect filter preset values might have been shown.
* LinGui: use libhb to validate filter settingsJohn Stebbins2015-10-051-1/+0
|
* LinGui: generalize initialization of Combo boxesJohn Stebbins2015-10-011-3/+3
|
* libhb: Allow log level changes and update checks *after* hb_init()jstebbins2015-06-121-0/+1
| | | | | | | | | | | - In the CLI, this allows calling hb_init() before parsing args, which permits us to see any libhb log messages that are generated during option parsing. These messages were hidden before. - In the GUIs, this allows dynamic changes to log level. Previously an application restart was required. I have only updated the LinGui to take advantage of this. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7295 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: use libhb to initialize job...jstebbins2015-05-271-3/+1
| | | | | | | ...and set some job settings as values change in the UI. This eliminates a large chunk of job setup code. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7230 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: use libhb to init audio and subtitle listsjstebbins2015-05-201-0/+4
| | | | | | | This eliminates a lot of essentially duplicate code in LinGui for initializing these lists. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7213 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: more audio refactoringjstebbins2015-05-181-4/+3
| | | | | | | Since the audio list is now in the proper format for json job, simply copy the audio list when creating the job. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7209 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: audio pane refactoringjstebbins2015-05-151-1/+0
| | | | | | | | | | | - Use dict keys that align with job in audio list. - Fix quality for encoders with inverted quality scale like lame. - Fix disabling of audio passthru options that do not apply to the current input audio track. - Fix enable/disable of quality widgets - Fix random failure to change audio encoders in audio settings popup git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7190 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: more refactoringjstebbins2015-04-031-2/+1
| | | | | | | mostly moving "settings" stuff to "values" git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7047 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: automatically scan title when processing json jobsjstebbins2015-03-071-2/+5
| | | | | | | | | | | | | | | Simplifies the WinGui. This also changes how jobs are processed. Creating the sub-jobs for multiple passes is delayed until after scanning and immediately before running the job. Working status has also changed. Sub-job passes are identified in status with an ID that allows the frontend to definitively identify what pass is in progress. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6976 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: change settings dict from glib to janssonjstebbins2015-03-061-31/+32
| | | | | | | | This will allow for preferences, presets, and queue files to be written as json instead of plists (currently still plists). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6968 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix parent window of dialogsjstebbins2015-01-111-4/+4
| | | | | | | libgtk has started complaining about floating dialogs git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6734 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: cleanupjstebbins2014-06-241-0/+4
| | | | | | | | use hb_set_anamorphic_size2 instead of hb_set_anamorphic_size simplify preview generation code. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6220 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: simplify subtitle track refrencingjstebbins2014-02-241-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6079 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb audio bitrate is referenced by linguijstebbins2014-02-231-0/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6073 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb samplerate is referenced from linguijstebbins2014-02-231-0/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6072 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb video framerate is referenced from linguijstebbins2014-02-231-0/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6071 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb audio mixdowns are referenced from linguijstebbins2014-02-231-0/+5
| | | | | | Cleans up interface and fixes faulure to use fallbacks properly git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6070 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb video encoders are reference from linbuijstebbins2014-02-231-0/+5
| | | | | | Cleans up interface and fixes failure to use fallbacks properly git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6069 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb audio encoders are referenced from linguijstebbins2014-02-231-1/+5
| | | | | | Cleans up the interface and fixes failure to use fallbacks properly git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6068 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb containers are refrenced from linguijstebbins2014-02-231-0/+3
| | | | | | Cleans up the interface and fixes failure to use fallbacks properly. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6067 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb titles are referenced from linguijstebbins2014-02-231-16/+15
| | | | | | | Provides a less cryptic interface to identifying and looking up hb titles. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6064 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: add dialog to select multiple titles to add to queuejstebbins2014-02-221-0/+1
| | | | | | | | Replaces "Add All to Queue". Dialog provides checkboxes to select titles to add to the queue and file chooser/file entry to change destination file names. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6056 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix range update issues and plug memory leaksjstebbins2014-02-211-6/+7
| | | | | | | | Updating the range of GtkScale and GtkSpinButtons causes the current value to update inappropriately under some conditions. So update the range and value concurrently. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6051 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix several issues with loading presetsjstebbins2014-02-201-0/+1
| | | | | | pull on a string and the whole sweater comes apart git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6048 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework title listjstebbins2014-02-191-6/+9
| | | | | | | | | | | | | | Title list is now linked to a settings list. There is one settings dict per title. The settings list is populated when scan completes. As you change titles, the settings for that title populate the UI. Changes made are saved in the settings and restored if you go to another title and then return. This is preparation for improvements to "Add All to Queue" feature. Settings for each title can be customized before adding to the queue. All titles don't have to use the same preset or settings. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6046 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: Audio and subtitle UI rework.jstebbins2014-02-181-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds new tabs for audio and subtitle defaults (presets). "Audio" and "Subtitle" tabs renamed to "Audio List" and "Subtitle List" New Preset Keys: AudioLanguageList - array of strings List of languages that will be used to generate the output audio tracks for a job. Values: preset - UI display iso639_2 codes - native_name if not NULL, else eng_name SubtitleLanguageList - array of strings List of languages that will be used to generate the output subtitle tracks for a job. Values: preset - UI display iso639_2 codes - native_name if not NULL, else eng_name AudioTrackSelectionBehavior - string Defines how source tracks will be selected when generating the audio list for a job. Values: preset - UI display none - None first - First Matching Selected Languages all - All Matching Selected Languages SubtitleTrackSelectionBehavior - string Defines how source tracks will be selected when generating the subtitle list for a job. Values: preset - UI display none - None first - First Matching Selected Languages all - All Matching Selected Languages SubtitleAddCC - boolean Add Closed Caption track to subtitle list if available SubtitleAddForeignAudioSearch - boolean Add Foreign audio search pass to job if a default subtitle language is set (i.e. SubtitleLanguageList is not empty and first entry is not "Any") and default audio track language matches subtitle preferred language. SubtitleAddForeignAudioSubtitle - boolean Add preferred language subtitle track if the default subtitle language is set (i.e. SubtitleLanguageList is not empty and first entry is not "Any") and default audio track language does not match the preferred subtitle language. Removed Preset Keys: AudioTrack SubtitleList - I think only the LinGui had this key. Note that the remaining keys in the pre-existing AudioList are reused and map to the "Audio Encoder Settings" on the "Audio Defaults" tab. They used to map to the entries in the list on the old "Audio" tab. The old "Audio" tab is now the "Audio List" tab. Nothing in the "Audio List" tab map to preset values in the new design. The contents of this tab is strictly for use in the encode job. Ditto for "Subtitle Defaults" and "Subtitle List". git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6040 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: add chapter start time to chapter tab displayjstebbins2013-11-271-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5906 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: mark more strings as translation candidatesjstebbins2013-08-011-1/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5678 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't expose rate, mixdown, dither and encoder arrays to the UIs.Rodeo2013-05-301-2/+2
| | | | | | | | | | | | | | | | | | | | - instead, make these lists available through enumerators: --> hb_*_get_next(<type> *last); - this should give us more flexibility to populate the lists at runtime, using the implementation(s) of our choice, whether they use arrays or not, without requiring UI modifications - use consistent naming for getters --> hb_get_best_foo() becomes hb_foo_get_best(), and so on - hb_*_get_from_name() and hb_*_ sanitize_name() sanitize the requested value to a supported one if it's unavailable - adds an additional, passthru-specific fallback mechanism - adds a list of video containers git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5526 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve scan progress granularityjstebbins2013-03-011-0/+2
| | | | | | | | We were only updating progress after completely processing each title. Now progress is updated as we generate previews as well. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5276 b64f7644-9d1e-0410-96f1-a4d463321fa5
* lingui: convert tabs to spacesjstebbins2012-12-271-35/+35
| | | | | | | Makes lingui source conform to hb standard for indentation. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5112 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve management of titles and jobsjstebbins2012-11-121-24/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* LinGui: fix a bunch of compiler warningsjstebbins2012-05-261-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4701 b64f7644-9d1e-0410-96f1-a4d463321fa5
* PGS (bluray) subtitle support \o/jstebbins2012-04-261-1/+0
| | | | | | | | | | | | 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
* LinGui: experimental support for batch queuingjstebbins2011-10-161-7/+10
| | | | | | | | | This allows all titles in the title popup to be added to the queue in one go. It uses the current *preset* for the settings. I.e. settings changes in the UI are ignored. This deficiency will be rectified at a future time. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4294 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add flac + quality + compression level supportjstebbins2011-10-121-3/+2
| | | | | | | | | Adds flac audio to cli, lingui, and macgui Adds quality and compression level options to cli Adds quality option to lingui Quality option works for vorbis and lame git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4281 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: Show video codec name in summary tabjstebbins2011-09-011-0/+1
| | | | | | | | | | I found myself wanting to know what the source video codec was when I discovered that several of my VC-1 trancodes were crap. So this adds the video codec name to the summary information I display on the summary tab. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4197 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add more audio passthru optionsjstebbins2011-08-011-2/+1
| | | | | | | | | | | | | | | | | adds aac and mp3 passthru for mp4 and mkv containers adds dts and dtshd for mp4 container (mkv already had it) Note: The only player known (to me) to support dts(hd) in mp4 is ff/avplay In LinGui there is a new option to limit which passthru codecs will be used by the "Auto Passthru" audio codec options. The CLI already has this ability with "--audio_copy-mask" which is use in conjunction with the "copy" audio codec option. Also corrects some A/V sync issues when video frames are dropped due to a gap detected in the audio. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4149 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix a problem with mixdown optionsjstebbins2011-06-121-1/+1
| | | | | | | | incorrect mixdown options were disabled when the "Choose for me" encoder option was selected. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4043 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add parameter parsing and b-frame support to ffmpeg mpeg-4 encoderjstebbins2011-03-111-1/+1
| | | | | | | | | | | | | The cli will now accept ':' separated parameters using the '-x' option for ffmpeg mpeg-4. The linux gui has an entry box on the advanced tab to add options. The option keys and values are the same as what the ffmpeg command line allows. Calculation of DTS timestamps was added to encavcodec.c in order to allow out of order b-frames. The algorithm is similar to what x264 uses. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3839 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: remove target file size optionjstebbins2011-02-261-1/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3808 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix some audio list display problemsjstebbins2010-10-091-12/+4
| | | | | | | and try to clean up the code a bit. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3589 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add audio defaults and limits calculation to libhbjstebbins2010-10-081-4/+0
| | | | | | | | | | | | | | | hb_get_audio_bitrate_limits() Get the bitrate limits for a (codec,samplerate,mixdown) triplet hb_get_best_audio_bitrate() Given an input bitrate, sanitize it. Check low and high limits and make sure it is in the set of allowed bitrates. hb_get_default_audio_bitrate() Get the default bitrate for a given (codec,samplerate,mixdown) triplet git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3578 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: centralize min/max audio bitrate limit calculation to one placejstebbins2010-10-061-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3575 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix a display problem in the audio listjstebbins2010-10-051-0/+2
| | | | | | | And tweak default bitrate choices. likely to change :P git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3573 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add ac3 encodingjstebbins2010-10-041-2/+3
| | | | | | | Uses ffmpeg's ac3 encoder. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3570 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix some text alignment issues on the picture summary tabjstebbins2010-09-301-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3559 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add Bluray supportjstebbins2010-09-081-1/+1
| | | | | | | | | | | | | | | | | | Unencrypted BD directory trees only. Doesn't support iso images. Also, no PGS subtitle support yet. Chapters and angles are supported. Adds a new contrib libbluray. Adds new option to hb_scan() for duration of short titles to filter. This applies to BD and DVD multi-title scans only. Does not apply to any single title scans. Fixes memory leak during scan. hb_buffer_close() was not freeing all buffers in a chain of buffers passed to it. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3510 b64f7644-9d1e-0410-96f1-a4d463321fa5