summaryrefslogtreecommitdiffstats
path: root/macosx/HBPreviewController.m
Commit message (Collapse)AuthorAgeFilesLines
* MacGUI: Release the cached images when the preview window is closed.ritsuka2013-12-031-1/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5912 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: Refactor HBPreviewController. Rename the actual class to ↵ritsuka2013-11-041-1096/+726
| | | | | | HBPreviewController, and move the image and video creation code to a separate HBPreviewGenerator class. Update the preview duration list as Rodeo suggested. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5874 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: refactor PictureController. kill a bit of dead code (~500 lines), ↵ritsuka2013-11-021-6/+14
| | | | | | switch some ivars to properties, hide the private methods and rework the deinterlace logic. Plus UI alignment. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5869 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Read events from the mouse scroll wheel in HBPreviewController.m to ↵ritsuka2013-08-041-0/+17
| | | | | | change the preview image. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5690 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
* MacGUI: Fix a crash that happens when the Preview window backingScaleFactor ↵ritsuka2013-03-191-1/+2
| | | | | | changes but the title is not set. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5344 b64f7644-9d1e-0410-96f1-a4d463321fa5
* hb_system_sleep: refactoring.Rodeo2013-03-181-3/+3
| | | | | | | | | | | | Also: - release power assertions before freeing them - actually free the power assertions in hb_close() (previously unused) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5340 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: improve hb_system_sleep support.Rodeo2013-03-181-4/+9
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5338 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Live Preview extend the live preview maximum duration to 240 seconds ↵dynaflash2013-02-191-0/+8
| | | | | | | | ( 4 min.) from the previous 120 seconds ( 2 minutes). - Uses 15 second incremements as previous. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5258 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: add a missing else statement. Don't pass key event down the response ↵ritsuka2013-02-041-3/+4
| | | | | | chain after we handled it it. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5237 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: make the control box in preview window 10 px larger to avoid ↵ritsuka2013-02-011-2/+17
| | | | | | splitting text on two lines, and expand the keyboard control to the still images. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5232 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: Reworked a bit of HBPreviewController, the main differences are:ritsuka2013-02-011-625/+373
| | | | | | | | | | | | | - CALayer instead of NSImageView, we don't need to center the layer manually, plus a lot of free animations. - Reworked the scale to screen code, now it resize the window to the max size and then resize the picture layer, a bit simpler then before but the previous code had a weird issue were the window increased in size each time the slider changed until the control box was outside the window. - Fixed an issue where the preview window would be unusable if it was closed while it was encoding a preview. - Added a fEncodeState int to keep track of the encoding status like in HBController. - Removed some unused code and variables. - The preview images are no longer 4px smaller than the said size. - Added some nice image to the player controller. - keyboard controls for the movie player. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5230 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: Fix build on 10.6sdk.ritsuka2013-01-311-0/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5228 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: make the preview window HiDPI aware, so that the preview images will ↵ritsuka2013-01-301-16/+44
| | | | | | be shown with the same pixel count on Retina and non Retina screens (instead of 2x on Retina). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5226 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix some crashes in the macuijstebbins2012-12-121-1/+1
| | | | | | | | | I missed setting some pointers to NULL after free and missed place where the ui was setting job->file directly instead of using hb_job_set_file(). Also, a NULL chapter name caused a crash. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5097 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Remove vestigial activity log debug messages.dynaflash2012-11-271-2/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5085 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve management of titles and jobsjstebbins2012-11-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* MacGUI: use hb_reset_job.Rodeo2012-03-311-0/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4564 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: fix commit 4546 so it works on os x which is the filter pipeline ↵dynaflash2012-03-281-2/+0
| | | | | | | | rework from j45. - libhb fix by Rodeo git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4547 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Rework filter pipelinejstebbins2012-03-271-0/+2
| | | | | | | | | | | | | | | | | | | | 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
* MacGui: Live Preview ...dynaflash2011-08-241-8/+23
| | | | | | | | | - Use the first subs track that has been specified to display in the live preview. -- Tested against TX3G (3GPP) subs in mp4 and vobsubs in mkv. - Also change Live Preview durations to less granular yet longer durations to: (seconds) 15, 30, 45, 60 90, 105 and 120. - Subs patch by Rodeo. Thanks! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4193 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Fix crash when launching then cancelling new source and quitting ↵dynaflash2011-08-181-5/+11
| | | | | | would cause a crash due to there being no preview when calling windowWillClose in HBPreview.m git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4185 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Fix a crash in live preview where upon closing the preview window ↵dynaflash2011-08-171-9/+6
| | | | | | during a live preview encode it was not being properly stopped so upon reopening and clicking on "Still Previews" there was a crashy. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4184 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Remove unused variables to suppress warnings at compile timedynaflash2011-05-191-3/+0
| | | | | | | - As per https://reviews.handbrake.fr/r/87/ - Patch by blindjimmy ... thanks! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3984 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add parameter parsing and b-frame support to ffmpeg mpeg-4 encoderjstebbins2011-03-111-3/+3
| | | | | | | | | | | | | 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
* MacGui: Remove logging line used for debugging previous commit.dynaflash2010-08-061-3/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3473 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Store live previews in a sub directory in "~/Library/Application ↵dynaflash2010-08-061-10/+15
| | | | | | | | | | Support/HandBrake/Previews" named by pidnum. - Allows multi-instances to encode live previews without overwriting the live preview for any other instance (since previously we assumed single instance so there was just one live preview file for each container. - Clean up of the previews directory when a single instance is laucnhed to make sure we do not build up a pile of old previews. - Removed old code for live previews which handled the deprecated avi and ogm containers. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3472 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Disable preview hud controls during new source scans.dynaflash2010-08-051-0/+22
| | | | | | | - Fixes a crash where trying to get a preview image when a new source is being loaded will cause a crash - Mirrors enableUI in the main window. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3471 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Do not call pictureSliderChanged in windowWillClose in ↵dynaflash2010-08-051-1/+0
| | | | | | | | HBPreviewController.m as it causes a crash when quitting the macgui without a source loaded up. - Thanks Sean_McG for spotting the bug! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3470 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Add separate method for cancelling a Live Preview encode.dynaflash2010-08-041-5/+32
| | | | | | - Also replace deprecated removeFileAtPath:handler: with removeItemAtPath:error: in HBPreviewController git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3469 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Set the hud control panels origin based on the size of the actual ↵dynaflash2010-06-021-7/+9
| | | | | | | | | preview window anchored at the bottom instead of setting it at the middle of the window. - Should not block the actual preview as much. - Move the origin setting code from -SetTitle into -displayPreview so that it is recalculated any time a new preview is generated, which includes changing encode size. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3349 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Live Preview HUD Overlay playback controller initial implementationdynaflash2010-05-181-25/+326
| | | | | | | | | | | | | | | | | | | - Fixes current issue where a live preview with the display res larger than storage res would not show the built in QTKit control bar. - Replaces the stock QTKit movie controller. - Adds playback time code information to HUD display. - Allows frame by frame scrubbing via keyboard arrow keys. -- Methods exist for frame by frame step through but buttons are not on the HUD overlay yet. Known Bugs: - If movie is playing, first click on the scrubber bar can cause the movie to jump to beginning or end unless scrubber is held and dragged. - Probably some others I haven't seen yet. To Do (not that it ever will get done): - Replace the current crappy stock buttons with some decent ones. - Display accurate frame number hopefully though QTKit offers little documentation to get that exact info. - Add a volume slider and remember the volume setting in the prefs. - Add a subtitle control widget hopefully so that users can see what the subtitles would look like. Other small changes include adding some tooltips to the hud overlay controller widgets to hopefully make it a bit more intuitive. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3300 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Add call to hb_global_close() upon application termination as per ↵dynaflash2010-03-261-0/+2
| | | | | | | | changes in rev 3170 - Also added a missing call to hb_close for the live preview encoding instance git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3171 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: More Preview Window changes.dynaflash2010-03-051-83/+162
| | | | | | | | | | | - Refactor more code and reduce calls to setViewSize even more. - Correctly show the gray storage size - display size area in both windowed and scale to screen. - Restore 85% max windowed size which was changed in 3124 (unless in scale to screen mode). - Correct Live Preview movie size when in scale to screen. - Depending on window resizing and screen constraints repositioning of window after resize is a bit wonky. - Known issue with live preview, when the movie is the full size of the window, the controller bar does not show during live preview playback, however the movies plays fine. Needs to rescale to allow for the 15 px increase in height for controller bar or better yet, implement hud movie controls. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3151 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: In preview only set the origin of the hud control panel for the ↵dynaflash2010-02-201-5/+6
| | | | | | | | preview window when setting the title, after that the origin will animate much smoother along with the window. - Avoids the nasty resetting of the hud controller when the preview window resizes. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3128 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Preview replace a method that was hastily removed in 3125 when ↵dynaflash2010-02-191-1/+52
| | | | | | removing Full Screen. Fixes broken window scaling. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3126 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Removie Full Screen preview mode as its largely redundant when we ↵dynaflash2010-02-191-192/+15
| | | | | | have 100 percent full screen scaling in windowed mode. Removes a lot of code that is really not needed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3125 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Preview ... Allow the preview to use 100% of the the avaialable ↵dynaflash2010-02-191-13/+3
| | | | | | | | screen if it needs it. - Removes the 85% hard cap. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3124 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Preview, use screens visibleFrame instead of frame to get better ↵dynaflash2010-02-181-11/+21
| | | | | | | | scale to screen effect and clear the dock, etc. - Some other code additions to troubleshoot initial window scaling where there shouldn't be any. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3122 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Preview fixes and changesdynaflash2010-02-181-40/+45
| | | | | | | | - Better scaling for windowed mode - Re postion hud control panel so top is at 50% window y axis - Other small enhancements git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3121 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGui: Preview Window resizing bug fixes. Patch from BradleyS.dynaflash2010-02-111-31/+33
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3112 b64f7644-9d1e-0410-96f1-a4d463321fa5
* MacGUI: Renamed HBPreviewController.mm to HBPreviewController.m to enable ↵ritsuka2009-08-291-0/+1325
the new clang static analyzer goodness, there was no reason for this file to use Objective-C++ git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2788 b64f7644-9d1e-0410-96f1-a4d463321fa5