summaryrefslogtreecommitdiffstats
path: root/gtk/src/presets.c
Commit message (Collapse)AuthorAgeFilesLines
* LinGui: remove legacy preset key UsesMaxPictureSettingsjstebbins2014-02-271-3/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6087 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix another preset loading problemjstebbins2014-02-261-134/+141
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6086 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix some preset loading issuesjstebbins2014-02-251-14/+51
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6081 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: use hb_video_encoder_get_presets()jstebbins2014-02-231-3/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6075 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: rework how hb titles are referenced from linguijstebbins2014-02-231-1/+1
| | | | | | | 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: fix range update issues and plug memory leaksjstebbins2014-02-211-8/+17
| | | | | | | | 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-582/+375
| | | | | | 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-411/+291
| | | | | | | | | | | | | | 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-225/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: fix deprecation of GtkAction and GtkUIManagerjstebbins2014-01-151-3/+3
| | | | | | | Farely large change since these were the old way of creating menus :-\ git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5974 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix deprecated GTK_STOCK_*jstebbins2014-01-141-4/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5968 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix preset import/exportjstebbins2013-06-061-188/+189
| | | | | | | Use the new translation mechanisms supplied by libhb git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5569 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Don't expose rate, mixdown, dither and encoder arrays to the UIs.Rodeo2013-05-301-24/+102
| | | | | | | | | | | | | | | | | | | | - 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
* LinGui: silence some compiler warningsjstebbins2013-01-051-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5150 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: build preset import/export tables from hb_encoder_t tablesjstebbins2013-01-031-36/+53
| | | | | | | | | This makes tracking additions to libhb encoders completely transparent to the LinGui. Changes or deletions still require special handling to ensure backwards compatibility. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5140 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: Update copyright datesjstebbins2012-12-301-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5117 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: preset import/export robustnessjstebbins2012-12-281-0/+10
| | | | | | | | | Upon import, if x264Preset is missing, force x264UseAdvancedOptions enabled. Upon export, if x264UseAdvancedOptions is true, do not output x264Preset, x264Tune, x264Level, x264Profile, or x264OptionExtra. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5114 b64f7644-9d1e-0410-96f1-a4d463321fa5
* lingui: convert tabs to spacesjstebbins2012-12-271-3755/+3755
| | | | | | | Makes lingui source conform to hb standard for indentation. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5112 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: add x264 preset/tune/profile/level supportjstebbins2012-12-271-1/+136
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5110 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve management of titles and jobsjstebbins2012-11-121-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Audio improvements.Rodeo2012-09-031-11/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* LinGui: Fix preset import of new frameratesjstebbins2012-07-171-0/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4859 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix a bunch of compiler warningsjstebbins2012-05-261-4/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4701 b64f7644-9d1e-0410-96f1-a4d463321fa5
* don't do combing check twice per frame when bobbingjstebbins2012-05-011-0/+2
| | | | | | | and fix saving bob setting in LinGui presets git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4626 b64f7644-9d1e-0410-96f1-a4d463321fa5
* merge assorted fixes provided by Rogerio Britojstebbins2012-05-011-1/+5
| | | | | | | | Pretty much all resource cleanup issues on error condition handling. Thanks Rogerio! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4620 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix problem saving flac audio in presetjstebbins2011-10-281-2/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4325 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: add "Fast" decomb optionjstebbins2011-10-221-0/+1
| | | | | | | Adds a fast decomb option that uses the decomb settings that were the defaults before the introduction of decomb3. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4309 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: experimental support for batch queuingjstebbins2011-10-161-10/+4
| | | | | | | | | 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
* libhb: Auto Passthru and audio/video encoder lists.Rodeo2011-09-191-1/+9
| | | | | | | | | | | | | | This adds Auto Passthru as another encoder in libhb. Used in LinGUI and CLI. MacGUI features a partial impplmentation (with hardcoded values), which is disabled for now. Also, audio and video encoders are now stored in "lists", like we previously did for mixdowns. New mixdown "None" (HB_AMIXDOWN_NONE) added to hb_audio_mixdowns (was previously declared in MacGUI/LinGUI). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4237 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix problem with preset updatesjstebbins2011-08-241-8/+12
| | | | | | | | When presets update due to new hb version, custom presets were being stepped on badly. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4192 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: make values for preset key AudioEncoderFallback compatible with mac uijstebbins2011-08-221-1/+13
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4191 b64f7644-9d1e-0410-96f1-a4d463321fa5
* lingui: fix issues with preset valuesjstebbins2011-08-191-1/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4187 b64f7644-9d1e-0410-96f1-a4d463321fa5
* add more audio passthru optionsjstebbins2011-08-011-3/+5
| | | | | | | | | | | | | | | | | 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
* MacGUI: Consolidate passthrough mixdowns.dynaflash2011-07-191-0/+1
| | | | | | | | | | - There's no need for one passthrough mixdown per passthrough codec. - When using passthru, mixdown is set to "None". - Patch by Rodeo ... Thanks! - Fix a bug where we would sometimes attempt to modify a non-mutable NSDictionary, causing a crash. - Fix by blindjimmy ... Thanks! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4121 b64f7644-9d1e-0410-96f1-a4d463321fa5
* lingui: add backwards compatible "AC3" translation for audio encoder valuejstebbins2011-07-161-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4108 b64f7644-9d1e-0410-96f1-a4d463321fa5
* lingui: add some preset translations that I missedjstebbins2011-07-161-0/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4106 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add DTS-HD passthru \o/jstebbins2011-06-141-0/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4055 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix backward compatibility issuejstebbins2011-03-221-1/+1
| | | | | | | Versions of gdk on Ubuntu 9.10 and 10.04 do not have GDK_KEY_* macros git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3871 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove legacy % to RF mapping.jstebbins2011-03-211-36/+0
| | | | | | | | | | Although the % option has been gone for a while in the cli and gui's, there were some mappings happening in libhb and for preset imports. This removes the last vestages of % quality mapping. Thanks to Rodeo for the patch. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3857 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: remove target file size optionjstebbins2011-02-261-18/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3808 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: add CFR option for "Same as source" framerate.jstebbins2011-01-281-4/+107
| | | | | | | | | Since there seem to be a lot of players that do not properly support VFR, add a CFR option that can be used with "Same as source". The framerate to use comes from the title and the cfr flag is set in the job. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3770 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: update copyright datesjstebbins2011-01-031-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3731 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add ac3 encodingjstebbins2010-10-041-1/+2
| | | | | | | Uses ffmpeg's ac3 encoder. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3570 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: improvements to maxWidth/maxHeight preset guijstebbins2010-06-291-6/+38
| | | | | | | | | | Add checkbox for each of max width/height entries in the presets save dialog. When not checked, the value is not stored to the preset. If neither is checked, UsesPictureSettings=2 is assumed. If either is checked, UsesPictureSettings=1 is assumed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3420 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: Add max width/height widgets to preset save dialogjstebbins2010-06-281-18/+3
| | | | | | | | | | | | | | These are only visible when autosize is disabled, meaning the user has chosen to set specific video dimensions. These values are used when a preset or title is loaded to set the default storage dimensions. This allows setting arbitrary PictureWidth/PictureHeight in the preset which was not previously possible. The values were previously limited to what the currently loaded source would allow you to enter into the picture settings width/height fields. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3417 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix some issues with loading custom anamorphic settings from preset.jstebbins2010-06-261-0/+4
| | | | | | | | | | | as the settings were incrementally loaded, each changing widget triggered updates that could conflict with the preset values being loaded. fix an issue with hight getting stuck at certain values. Incorrect rounding caused a recalculation that put height back to it's previous value. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3412 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: initialize picture width/height, even when there is no valid titlejstebbins2010-06-241-0/+10
| | | | | | | the ui widgets were just being set to 0 till a title was loaded. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3404 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: Add jbrjake's new iPad presetjstebbins2010-06-201-3/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3397 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: fix a mingw build issuejstebbins2010-04-141-3/+12
| | | | | | | The new multi-instance file locking needs to be ifdef'd for mingw git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3221 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui: allow multiple instances of the gui to runjstebbins2010-04-091-3/+143
| | | | | | | | | | | | Each instance has a queue named "queue.<pid>". On startup, the gui opens and locks with lockf a file "ghb.pid.<pid>". Then it searches for any other ghb.pid.<pid> files that exist that are not locked. If it finds one, then some instance of ghb exited and may have left behind a queue. Try to reload it. If there are no items in the queue, continue looking for unlocked ghb.pid.<pid> files. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3212 b64f7644-9d1e-0410-96f1-a4d463321fa5