Mercurial > mplayer.hg
changeset 29532:99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
This could probably be even moved to video_out, though the names should
be improved.
author | reimar |
---|---|
date | Fri, 28 Aug 2009 13:25:30 +0000 |
parents | 6bd4c0c77eab |
children | 9c8f8e375823 |
files | libvo/osx_common.c libvo/osx_common.h libvo/vo_quartz.c |
diffstat | 3 files changed, 34 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/osx_common.c Fri Aug 28 12:54:33 2009 +0000 +++ b/libvo/osx_common.c Fri Aug 28 13:25:30 2009 +0000 @@ -43,3 +43,31 @@ return mpkey; return charcode; } + +static int our_aspect_change; +static float old_movie_aspect; + +/** + * Sends MPlayer a command to change aspect to the requested value. + * @param new_aspect desired new aspect, < 0 means restore original. + */ +void change_movie_aspect(float new_aspect) +{ + char cmd_str[64]; + if (new_aspect < 0) + new_aspect = old_movie_aspect; + our_aspect_change = 1; + snprintf(cmd_str, 64, "switch_ratio %f", old_movie_aspect); + mp_input_queue_cmd(mp_input_parse_cmd(cmd_str)); +} + +/** + * Call in config to save the original movie aspect. + * This will ignore config calls caused by change_movie_aspect. + */ +void config_movie_aspect(float config_aspect) +{ + if (!our_aspect_change) + old_movie_aspect = config_aspect; + our_aspect_change = 0; +}
--- a/libvo/osx_common.h Fri Aug 28 12:54:33 2009 +0000 +++ b/libvo/osx_common.h Fri Aug 28 13:25:30 2009 +0000 @@ -1,1 +1,3 @@ int convert_key(unsigned key, unsigned charcode); +void change_movie_aspect(float new_aspect); +void config_movie_aspect(float config_aspect);
--- a/libvo/vo_quartz.c Fri Aug 28 12:54:33 2009 +0000 +++ b/libvo/vo_quartz.c Fri Aug 28 13:25:30 2009 +0000 @@ -87,8 +87,6 @@ static int get_image_done = 0; static int vo_quartz_fs; // we are in fullscreen -static int our_aspect_change; -static float old_movie_aspect; static int winLevel = 1; int levelList[] = @@ -420,19 +418,15 @@ break; case kAspectOrgCmd: - our_aspect_change = 1; - sprintf(cmd_str, "switch_ratio %f", old_movie_aspect); - mp_input_queue_cmd(mp_input_parse_cmd(cmd_str)); + change_movie_aspect(-1); break; case kAspectFullCmd: - our_aspect_change = 1; - mp_input_queue_cmd(mp_input_parse_cmd("switch_ratio 1.6667")); + change_movie_aspect(4.0 / 3.0); break; case kAspectWideCmd: - our_aspect_change = 1; - mp_input_queue_cmd(mp_input_parse_cmd("switch_ratio 1.7778")); + change_movie_aspect(16.0 / 9.0); break; case kPanScanCmd: @@ -615,9 +609,7 @@ OSErr qterr; CGRect tmpBounds; - if (!our_aspect_change) - old_movie_aspect = (float)d_width / d_height; - our_aspect_change = 0; + config_movie_aspect((float)d_width / d_height); // misc mplayer setup///////////////////////////////////////////////////// SetRect(&imgRect, 0, 0, width, height);