diff options
author | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-18 22:17:38 +0000 |
---|---|---|
committer | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-18 22:17:38 +0000 |
commit | be5a116b8a3465308174ccc4ab63351413d6dfe7 (patch) | |
tree | 2ba1202e427db0fda4d70037a5afda93e7f576fe /media/player | |
parent | 3090eeb5afd49e828739b492eb400d8fcf734784 (diff) | |
download | chromium_src-be5a116b8a3465308174ccc4ab63351413d6dfe7.zip chromium_src-be5a116b8a3465308174ccc4ab63351413d6dfe7.tar.gz chromium_src-be5a116b8a3465308174ccc4ab63351413d6dfe7.tar.bz2 |
YUV with clipping.
All functions do 2 pixels at a time.
90 and 270 rotations implemented.
YV16 refactored. YV12 code accepts a YuvType that allows the same code to support YV16 as well.
Special case for half size removed.
Special case for doubling added. 3.62 ms versus 8.62 for general purpose code.
Review URL: http://codereview.chromium.org/113407
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16334 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/player')
-rw-r--r-- | media/player/mainfrm.h | 28 | ||||
-rwxr-xr-x | media/player/player_wtl.rc | 987 | ||||
-rw-r--r-- | media/player/resource.h | 130 | ||||
-rw-r--r-- | media/player/view.h | 141 |
4 files changed, 680 insertions, 606 deletions
diff --git a/media/player/mainfrm.h b/media/player/mainfrm.h index 7874a01..d3dd669 100644 --- a/media/player/mainfrm.h +++ b/media/player/mainfrm.h @@ -71,16 +71,19 @@ class CMainFrame : public CFrameWindowImpl<CMainFrame>, UIEnable(ID_EDIT_COPY, bEnable); UIEnable(ID_EDIT_PASTE, ::IsClipboardFormatAvailable(CF_BITMAP)); UIEnable(ID_EDIT_CLEAR, bEnable); + UIEnable(ID_VIEW_QUARTERSIZE, true); UIEnable(ID_VIEW_HALFSIZE, true); UIEnable(ID_VIEW_NORMALSIZE, true); UIEnable(ID_VIEW_DOUBLESIZE, true); + UIEnable(ID_VIEW_TRIPLESIZE, true); + UIEnable(ID_VIEW_QUADRUPLESIZE, true); UIEnable(ID_VIEW_FITTOSCREEN, false); // Not currently implemented. UIEnable(ID_VIEW_FULLSCREEN, false); // Not currently implemented. UIEnable(ID_VIEW_PROPERTIES, bEnable); UIEnable(ID_VIEW_ROTATE0, true); - UIEnable(ID_VIEW_ROTATE90, false); + UIEnable(ID_VIEW_ROTATE90, true); UIEnable(ID_VIEW_ROTATE180, true); - UIEnable(ID_VIEW_ROTATE270, false); + UIEnable(ID_VIEW_ROTATE270, true); UIEnable(ID_VIEW_MIRROR_HORIZONTAL, true); UIEnable(ID_VIEW_MIRROR_VERTICAL, true); UIEnable(ID_PLAY_PLAY_PAUSE, bMovieOpen); // if no movie open. @@ -209,7 +212,8 @@ class CMainFrame : public CFrameWindowImpl<CMainFrame>, COMMAND_ID_HANDLER_EX(ID_EDIT_COPY, OnEditCopy) COMMAND_ID_HANDLER_EX(ID_EDIT_PASTE, OnEditPaste) COMMAND_ID_HANDLER_EX(ID_EDIT_CLEAR, OnEditClear) - COMMAND_RANGE_HANDLER_EX(ID_VIEW_HALFSIZE, ID_VIEW_FULLSCREEN, OnViewSize) + COMMAND_RANGE_HANDLER_EX(ID_VIEW_QUARTERSIZE, ID_VIEW_FULLSCREEN, + OnViewSize) COMMAND_ID_HANDLER_EX(ID_VIEW_TOOLBAR, OnViewToolBar) COMMAND_ID_HANDLER_EX(ID_VIEW_STATUS_BAR, OnViewStatusBar) COMMAND_RANGE_HANDLER_EX(ID_VIEW_ROTATE0, ID_VIEW_MIRROR_VERTICAL, @@ -236,9 +240,12 @@ class CMainFrame : public CFrameWindowImpl<CMainFrame>, UPDATE_ELEMENT(ID_EDIT_COPY, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) UPDATE_ELEMENT(ID_EDIT_PASTE, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) UPDATE_ELEMENT(ID_EDIT_CLEAR, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) + UPDATE_ELEMENT(ID_VIEW_QUARTERSIZE, UPDUI_MENUPOPUP) UPDATE_ELEMENT(ID_VIEW_HALFSIZE, UPDUI_MENUPOPUP) UPDATE_ELEMENT(ID_VIEW_NORMALSIZE, UPDUI_MENUPOPUP) UPDATE_ELEMENT(ID_VIEW_DOUBLESIZE, UPDUI_MENUPOPUP) + UPDATE_ELEMENT(ID_VIEW_TRIPLESIZE, UPDUI_MENUPOPUP) + UPDATE_ELEMENT(ID_VIEW_QUADRUPLESIZE, UPDUI_MENUPOPUP) UPDATE_ELEMENT(ID_VIEW_FITTOSCREEN, UPDUI_MENUPOPUP) UPDATE_ELEMENT(ID_VIEW_FULLSCREEN, UPDUI_MENUPOPUP) UPDATE_ELEMENT(ID_VIEW_TOOLBAR, UPDUI_MENUPOPUP) @@ -265,11 +272,14 @@ class CMainFrame : public CFrameWindowImpl<CMainFrame>, void UpdateSizeUICheck() { int view_size = m_view.GetViewSize(); - UISetCheck(ID_VIEW_HALFSIZE, (view_size == 0)); - UISetCheck(ID_VIEW_NORMALSIZE, (view_size == 1)); - UISetCheck(ID_VIEW_DOUBLESIZE, (view_size == 2)); - UISetCheck(ID_VIEW_FITTOSCREEN, (view_size == 3)); - UISetCheck(ID_VIEW_FULLSCREEN, (view_size == 4)); + UISetCheck(ID_VIEW_QUARTERSIZE, (view_size == 0)); + UISetCheck(ID_VIEW_HALFSIZE, (view_size == 1)); + UISetCheck(ID_VIEW_NORMALSIZE, (view_size == 2)); + UISetCheck(ID_VIEW_DOUBLESIZE, (view_size == 3)); + UISetCheck(ID_VIEW_TRIPLESIZE, (view_size == 4)); + UISetCheck(ID_VIEW_QUADRUPLESIZE, (view_size == 5)); + UISetCheck(ID_VIEW_FITTOSCREEN, (view_size == 6)); + UISetCheck(ID_VIEW_FULLSCREEN, (view_size == 7)); } void UpdateSpeedUICheck() { @@ -558,7 +568,7 @@ class CMainFrame : public CFrameWindowImpl<CMainFrame>, } void OnViewSize(UINT /*uNotifyCode*/, int nID, CWindow /*wnd*/) { - m_view.SetViewSize(nID - ID_VIEW_HALFSIZE); + m_view.SetViewSize(nID - ID_VIEW_QUARTERSIZE); UpdateSizeUICheck(); UpdateLayout(); } diff --git a/media/player/player_wtl.rc b/media/player/player_wtl.rc index 35999c9..1301679 100755 --- a/media/player/player_wtl.rc +++ b/media/player/player_wtl.rc @@ -1,478 +1,509 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "../chrome/third_party/wtl/include/atlres.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "../chrome/third_party/wtl/include/atlres.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Toolbar -// - -IDR_MAINFRAME4 TOOLBAR 16, 15 -BEGIN - BUTTON ID_PLAY_PLAY_PAUSE - SEPARATOR - BUTTON ID_FILE_OPEN - BUTTON ID_RECENT_BTN - SEPARATOR - BUTTON ID_FILE_PRINT - BUTTON ID_FILE_PRINT_PREVIEW - BUTTON ID_FILE_PAGE_SETUP - SEPARATOR - BUTTON ID_EDIT_COPY - BUTTON ID_EDIT_PASTE - BUTTON ID_EDIT_CLEAR - SEPARATOR - BUTTON ID_VIEW_PROPERTIES - BUTTON ID_APP_ABOUT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDR_MAINFRAME4 BITMAP "Toolbar.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_MAINFRAME MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN - MENUITEM SEPARATOR - MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT - MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW - MENUITEM "Pa&ge Setup...", ID_FILE_PAGE_SETUP - MENUITEM SEPARATOR - POPUP "Recent &Files" - BEGIN - MENUITEM "(empty)", ID_FILE_MRU_FILE1 - END - MENUITEM "&Last...\tLast+L", ID_FILE_LAST - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY - MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE - MENUITEM "Cl&ear\tCTRL+F4", ID_EDIT_CLEAR - END - POPUP "&View" - BEGIN - MENUITEM "&Half Size\tCtrl+0", ID_VIEW_HALFSIZE - MENUITEM "&Normal Size\tCtrl+1", ID_VIEW_NORMALSIZE - MENUITEM "&Double Size\tCtrl+2", ID_VIEW_DOUBLESIZE - MENUITEM "Fit to Screen\tCtrl+3", ID_VIEW_FITTOSCREEN - MENUITEM "&Full Screen\tCtrl+F", ID_VIEW_FULLSCREEN - MENUITEM SEPARATOR - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - MENUITEM SEPARATOR - MENUITEM "N&o Rotation", ID_VIEW_ROTATE0 - MENUITEM "Rotate &90", ID_VIEW_ROTATE90 - MENUITEM "Rotate &180", ID_VIEW_ROTATE180 - MENUITEM "Rotate &270", ID_VIEW_ROTATE270 - MENUITEM "&Mirror Horizontally", ID_VIEW_MIRROR_HORIZONTAL - MENUITEM "Mirror &Vertically", ID_VIEW_MIRROR_VERTICAL - MENUITEM SEPARATOR - MENUITEM "&Properties", ID_VIEW_PROPERTIES - END - POPUP "&Play" - BEGIN - MENUITEM "&Play/Pause\tSpace", ID_PLAY_PLAY_PAUSE - MENUITEM SEPARATOR - MENUITEM "&Half Speed\tAlt+0", ID_PLAY_HALFSPEED - MENUITEM "&Normal Speed\tAlt+1", ID_PLAY_NORMALSPEED - MENUITEM "&Double Speed\tAlt+2", ID_PLAY_DOUBLESPEED - END - POPUP "&Options" - BEGIN - MENUITEM "&OpenMP", ID_OPTIONS_OPENMP - MENUITEM "&MMX", ID_OPTIONS_MMX - MENUITEM "SWScaler", ID_OPTIONS_SWSCALER - MENUITEM "Draw", ID_OPTIONS_DRAW - MENUITEM "Audio", ID_OPTIONS_AUDIO - MENUITEM "Dump YUV File", ID_OPTIONS_DUMPYUVFILE - END - POPUP "&Help" - BEGIN - MENUITEM "&About Media Player...", ID_APP_ABOUT - END -END - -IDR_CONTEXTMENU MENU -BEGIN - POPUP "" - BEGIN - MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY - MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE - MENUITEM "Cl&ear", ID_EDIT_CLEAR - MENUITEM SEPARATOR - MENUITEM "&Properties", ID_VIEW_PROPERTIES - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDR_MAINFRAME3 ICON "player_wtl.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOGEX 0, 0, 185, 126 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",IDOK,121,97,50,14 - CTEXT "Media Player v2.0\n\nApril 14, 2009\n\nCopyright (c) 2009 The Chromium Authors.\nAll rights reserved.",IDC_STATIC,7,43,171,49 - ICON IDR_MAINFRAME3,IDC_STATIC,80,17,21,20 - GROUPBOX "",IDC_STATIC,7,7,171,112 -END - -IDD_PROP_PAGE1 DIALOGEX 0, 0, 212, 114 -STYLE DS_SETFONT | WS_CHILD | WS_CAPTION -CAPTION "Movie" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - LTEXT "Location:",IDC_STATIC,5,20,30,8 - LTEXT "Size:",IDC_STATIC,5,41,16,8 - LTEXT "Created:",IDC_STATIC,5,60,28,8 - LTEXT "Attributes:",IDC_STATIC,5,81,32,8 - LTEXT "Static",IDC_FILESIZE,40,41,170,8 - LTEXT "Static",IDC_FILEDATE,40,60,170,8 - LTEXT "Static",IDC_FILEATTRIB,40,81,170,8 - LTEXT "Static",IDC_FILELOCATION,40,20,170,8,SS_NOTIFY -END - -IDD_PROP_PAGE2 DIALOGEX 0, 0, 212, 114 -STYLE DS_SETFONT | WS_CHILD | WS_CAPTION -CAPTION "Frame" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - LTEXT "Type:",IDC_STATIC,15,10,80,8 - LTEXT "Static",IDC_TYPE,100,10,105,8 - LTEXT "Width:",IDC_STATIC,15,25,80,8 - LTEXT "Static",IDC_WIDTH,100,25,105,8 - LTEXT "Height:",IDC_STATIC,15,40,80,8 - LTEXT "Static",IDC_HEIGHT,100,40,105,8 - LTEXT "Horizontal Resolution:",IDC_STATIC,15,55,80,8 - LTEXT "Static",IDC_HORRES,100,55,105,8 - LTEXT "Vertical Resolution:",IDC_STATIC,15,70,80,8 - LTEXT "Static",IDC_VERTRES,100,70,105,8 - LTEXT "Bit Depth:",IDC_STATIC,15,85,80,8 - LTEXT "Static",IDC_BITDEPTH,100,85,105,8 - LTEXT "Compression:",IDC_STATIC,15,100,80,8 - LTEXT "Static",IDC_COMPRESSION,100,100,105,8 -END - -IDD_PROP_PAGE3 DIALOGEX 0, 0, 212, 114 -STYLE DS_SETFONT | WS_CHILD | WS_CAPTION -CAPTION "Screen" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - LTEXT "Width:",IDC_STATIC,15,25,80,8 - LTEXT "Static",IDC_WIDTH,100,25,105,8 - LTEXT "Height:",IDC_STATIC,15,40,80,8 - LTEXT "Static",IDC_HEIGHT,100,40,105,8 - LTEXT "Horizontal DPI:",IDC_STATIC,15,55,80,8 - LTEXT "Static",IDC_HORRES,100,55,105,8 - LTEXT "Vertical DPI:",IDC_STATIC,15,70,80,8 - LTEXT "Static",IDC_VERTRES,100,70,105,8 - LTEXT "Bit Depth:",IDC_STATIC,15,85,80,8 - LTEXT "Static",IDC_BITDEPTH,100,85,105,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 178 - TOPMARGIN, 7 - BOTTOMMARGIN, 119 - END - - IDD_PROP_PAGE1, DIALOG - BEGIN - LEFTMARGIN, 5 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 107 - END - - IDD_PROP_PAGE2, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 107 - END - - IDD_PROP_PAGE3, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 107 - END -END -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDR_MAINFRAME2 ACCELERATORS -BEGIN - VK_F4, ID_EDIT_CLEAR, VIRTKEY, CONTROL, NOINVERT - "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT - "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT - "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT - "L", ID_FILE_LAST, VIRTKEY, CONTROL, NOINVERT - "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT - "0", ID_PLAY_HALFSPEED, VIRTKEY, ALT, NOINVERT - "1", ID_PLAY_NORMALSPEED, VIRTKEY, ALT, NOINVERT - "2", ID_PLAY_DOUBLESPEED, VIRTKEY, ALT, NOINVERT - " ", ID_PLAY_PLAY_PAUSE, ASCII, NOINVERT - "0", ID_VIEW_HALFSIZE, VIRTKEY, CONTROL, NOINVERT - "1", ID_VIEW_NORMALSIZE, VIRTKEY, CONTROL, NOINVERT - "2", ID_VIEW_DOUBLESIZE, VIRTKEY, CONTROL, NOINVERT - "3", ID_VIEW_FITTOSCREEN, VIRTKEY, CONTROL, NOINVERT - "F", ID_VIEW_FULLSCREEN, VIRTKEY, CONTROL, NOINVERT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "Written by Frank Barchard" - VALUE "FileDescription", "media_player" - VALUE "FileVersion", "1, 0, 0, 1" - VALUE "InternalName", "media_player_wtl" - VALUE "LegalCopyright", "Copyright 2009" - VALUE "OriginalFilename", "media_player_wtl.exe" - VALUE "ProductName", "media_player" - VALUE "ProductVersion", "1, 0, 0, 1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDR_MAINFRAME "Media Player" -END - -STRINGTABLE -BEGIN - ID_FILE_NEW "Create a new document\nNew" - ID_FILE_OPEN "Open a movie\nOpen" - ID_FILE_CLOSE "Close movie\nClose" - ID_FILE_SAVE "Save the movie\nSave" - ID_FILE_SAVE_AS "Save the movie with a new name\nSave As" - ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" - ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" - ID_FILE_PRINT "Print the movie\nPrint" - ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" -END - -STRINGTABLE -BEGIN - ID_VIEW_FULLSCREEN "Full screen mode." - ID_PLAY_HALFSPEED "Play movie at half normal speed." - ID_PLAY_NORMALSPEED "Play movie at normal speed." - ID_PLAY_DOUBLESPEED "Play movie at twice the normal speed." - ID_FILE_LAST "Replay last movie\nOpen" - ID_VIEW_ROTATE0 "Turn off rotation." - ID_VIEW_ROTATE90 "Rotate movie by 90 degrees clockwise." - ID_VIEW_ROTATE180 "Rotate movie by 180 degrees." - ID_VIEW_ROTATE270 "Rotate movie by 270 degrees clockwise." - ID_VIEW_MIRROR_HORIZONTAL "Mirror movie horizontally." - ID_VIEW_MIRROR_VERTICAL "Mirror movie vertically." -END - -STRINGTABLE -BEGIN - ID_APP_ABOUT "Display program information, version number and copyright\nAbout" - ID_APP_EXIT "Quit the application; prompts to save documents\nExit" -END - -STRINGTABLE -BEGIN - ID_NEXT_PANE "Switch to the next window pane\nNext Pane" - ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" -END - -STRINGTABLE -BEGIN - ID_WINDOW_NEW "Open another window for the movie\nNew Window" - ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" - ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" - ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" - ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" - ID_WINDOW_SPLIT "Split the active window into panes\nSplit" -END - -STRINGTABLE -BEGIN - ID_EDIT_CLEAR "Removes the movie\nClear" - ID_EDIT_CLEAR_ALL "Erase everything\nErase All" - ID_EDIT_COPY "Copy the movie and put it on the Clipboard\nCopy" - ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" - ID_EDIT_FIND "Find the specified text\nFind" - ID_EDIT_PASTE "Insert movie from the Clipboard\nPaste" - ID_EDIT_REPEAT "Repeat the last action\nRepeat" - ID_EDIT_REPLACE "Replace specific text with different text\nReplace" - ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" - ID_EDIT_UNDO "Undo the last action\nUndo" - ID_EDIT_REDO "Redo the previously undone action\nRedo" -END - -STRINGTABLE -BEGIN - ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" - ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" -END - -STRINGTABLE -BEGIN - ATL_IDS_SCSIZE "Change the window size" - ATL_IDS_SCMOVE "Change the window position" - ATL_IDS_SCMINIMIZE "Reduce the window to an icon" - ATL_IDS_SCMAXIMIZE "Enlarge the window to full size" - ATL_IDS_SCNEXTWINDOW "Switch to the next document window" - ATL_IDS_SCPREVWINDOW "Switch to the previous document window" - ATL_IDS_SCCLOSE "Close the active window and prompts to save the documents" -END - -STRINGTABLE -BEGIN - ATL_IDS_SCRESTORE "Restore the window to normal size" - ATL_IDS_SCTASKLIST "Activate Task List" - ATL_IDS_MDICHILD "Activate this window" -END - -STRINGTABLE -BEGIN - ATL_IDS_IDLEMESSAGE "Ready" -END - -STRINGTABLE -BEGIN - ATL_IDS_MRU_FILE "Open this document" -END - -STRINGTABLE -BEGIN - ID_RECENT_BTN "\nRecent Files" - ID_VIEW_PROPERTIES "Displays movie properties\nProperties" - ID_PLAY_PLAY_PAUSE "Start or pause movie playback" -END - -STRINGTABLE -BEGIN - ID_OPTIONS_MMX "Enable CPU extensions including MMX and SSE" - ID_OPTIONS_OPENMP "Enable OpenMP for YUV" - ID_OPTIONS_SWSCALER "Use SWScaler YUV conversion" - ID_OPTIONS_DRAW "Enable/Disable Draws" - ID_OPTIONS_AUDIO "Enable/Disable Audio" - ID_OPTIONS_DUMPYUVFILE "Dump YUV frames to a file" - ID_VIEW_HALFSIZE "View movie at half normal size." - ID_VIEW_NORMALSIZE "View movie at normal size." - ID_VIEW_DOUBLESIZE "View movie at twice the normal size." - ID_VIEW_FITTOSCREEN "Maximize window to desktop." -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// +// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "../chrome/third_party/wtl/include/atlres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "../chrome/third_party/wtl/include/atlres.h\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Toolbar
+//
+
+IDR_MAINFRAME4 TOOLBAR 16, 15
+BEGIN
+ BUTTON ID_PLAY_PLAY_PAUSE
+ SEPARATOR
+ BUTTON ID_FILE_OPEN
+ BUTTON ID_RECENT_BTN
+ SEPARATOR
+ BUTTON ID_FILE_PRINT
+ BUTTON ID_FILE_PRINT_PREVIEW
+ BUTTON ID_FILE_PAGE_SETUP
+ SEPARATOR
+ BUTTON ID_EDIT_COPY
+ BUTTON ID_EDIT_PASTE
+ BUTTON ID_EDIT_CLEAR
+ SEPARATOR
+ BUTTON ID_VIEW_PROPERTIES
+ BUTTON ID_APP_ABOUT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDR_MAINFRAME4 BITMAP "Toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAINFRAME MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN
+ MENUITEM SEPARATOR
+ MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT
+ MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW
+ MENUITEM "Pa&ge Setup...", ID_FILE_PAGE_SETUP
+ MENUITEM SEPARATOR
+ POPUP "Recent &Files"
+ BEGIN
+ MENUITEM "(empty)", ID_FILE_MRU_FILE1
+ END
+ MENUITEM "&Last...\tLast+L", ID_FILE_LAST
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_APP_EXIT
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
+ MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
+ MENUITEM "Cl&ear\tCTRL+F4", ID_EDIT_CLEAR
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Quarter Size\tCtrl+9", ID_VIEW_QUARTERSIZE
+ MENUITEM "&Half Size\tCtrl+0", ID_VIEW_HALFSIZE
+ MENUITEM "&Normal Size\tCtrl+1", ID_VIEW_NORMALSIZE
+ MENUITEM "&Double Size\tCtrl+2", ID_VIEW_DOUBLESIZE
+ MENUITEM "Triple Size\tCtrl+3", ID_VIEW_TRIPLESIZE
+ MENUITEM "Quadruple Size\tCtrl+4", ID_VIEW_QUADRUPLESIZE
+ MENUITEM "Fit to Screen", ID_VIEW_FITTOSCREEN
+ MENUITEM "&Full Screen\tCtrl+F", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ MENUITEM "&Toolbar", ID_VIEW_TOOLBAR
+ MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR
+ MENUITEM SEPARATOR
+ MENUITEM "N&o Rotation", ID_VIEW_ROTATE0
+ MENUITEM "Rotate &90", ID_VIEW_ROTATE90
+ MENUITEM "Rotate &180", ID_VIEW_ROTATE180
+ MENUITEM "Rotate &270", ID_VIEW_ROTATE270
+ MENUITEM "&Mirror Horizontally", ID_VIEW_MIRROR_HORIZONTAL
+ MENUITEM "Mirror &Vertically", ID_VIEW_MIRROR_VERTICAL
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_VIEW_PROPERTIES
+ END
+ POPUP "&Play"
+ BEGIN
+ MENUITEM "&Play/Pause\tSpace", ID_PLAY_PLAY_PAUSE
+ MENUITEM SEPARATOR
+ MENUITEM "&Half Speed\tAlt+0", ID_PLAY_HALFSPEED
+ MENUITEM "&Normal Speed\tAlt+1", ID_PLAY_NORMALSPEED
+ MENUITEM "&Double Speed\tAlt+2", ID_PLAY_DOUBLESPEED
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&OpenMP", ID_OPTIONS_OPENMP
+ MENUITEM "&MMX", ID_OPTIONS_MMX
+ MENUITEM "SWScaler", ID_OPTIONS_SWSCALER
+ MENUITEM "Draw", ID_OPTIONS_DRAW
+ MENUITEM "Audio", ID_OPTIONS_AUDIO
+ MENUITEM "Dump YUV File", ID_OPTIONS_DUMPYUVFILE
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About Media Player...", ID_APP_ABOUT
+ END
+END
+
+IDR_CONTEXTMENU MENU
+BEGIN
+ POPUP ""
+ BEGIN
+ MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
+ MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
+ MENUITEM "Cl&ear", ID_EDIT_CLEAR
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_VIEW_PROPERTIES
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDR_MAINFRAME3 ICON "player_wtl.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOGEX 0, 0, 185, 126
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,121,97,50,14
+ CTEXT "Media Player v2.0\n\nApril 14, 2009\n\nCopyright (c) 2009 The Chromium Authors.\nAll rights reserved.",IDC_STATIC,7,43,171,49
+ ICON IDR_MAINFRAME3,IDC_STATIC,80,17,21,20
+ GROUPBOX "",IDC_STATIC,7,7,171,112
+END
+
+IDD_PROP_PAGE1 DIALOGEX 0, 0, 212, 114
+STYLE DS_SETFONT | WS_CHILD | WS_CAPTION
+CAPTION "Movie"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+ LTEXT "Location:",IDC_STATIC,5,20,30,8
+ LTEXT "Size:",IDC_STATIC,5,41,16,8
+ LTEXT "Created:",IDC_STATIC,5,60,28,8
+ LTEXT "Attributes:",IDC_STATIC,5,81,32,8
+ LTEXT "Static",IDC_FILESIZE,40,41,170,8
+ LTEXT "Static",IDC_FILEDATE,40,60,170,8
+ LTEXT "Static",IDC_FILEATTRIB,40,81,170,8
+ LTEXT "Static",IDC_FILELOCATION,40,20,170,8,SS_NOTIFY
+END
+
+IDD_PROP_PAGE2 DIALOGEX 0, 0, 212, 114
+STYLE DS_SETFONT | WS_CHILD | WS_CAPTION
+CAPTION "Frame"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+ LTEXT "Type:",IDC_STATIC,15,10,80,8
+ LTEXT "Static",IDC_TYPE,100,10,105,8
+ LTEXT "Width:",IDC_STATIC,15,25,80,8
+ LTEXT "Static",IDC_WIDTH,100,25,105,8
+ LTEXT "Height:",IDC_STATIC,15,40,80,8
+ LTEXT "Static",IDC_HEIGHT,100,40,105,8
+ LTEXT "Horizontal Resolution:",IDC_STATIC,15,55,80,8
+ LTEXT "Static",IDC_HORRES,100,55,105,8
+ LTEXT "Vertical Resolution:",IDC_STATIC,15,70,80,8
+ LTEXT "Static",IDC_VERTRES,100,70,105,8
+ LTEXT "Bit Depth:",IDC_STATIC,15,85,80,8
+ LTEXT "Static",IDC_BITDEPTH,100,85,105,8
+ LTEXT "Compression:",IDC_STATIC,15,100,80,8
+ LTEXT "Static",IDC_COMPRESSION,100,100,105,8
+END
+
+IDD_PROP_PAGE3 DIALOGEX 0, 0, 212, 114
+STYLE DS_SETFONT | WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
+BEGIN
+ LTEXT "Width:",IDC_STATIC,15,25,80,8
+ LTEXT "Static",IDC_WIDTH,100,25,105,8
+ LTEXT "Height:",IDC_STATIC,15,40,80,8
+ LTEXT "Static",IDC_HEIGHT,100,40,105,8
+ LTEXT "Horizontal DPI:",IDC_STATIC,15,55,80,8
+ LTEXT "Static",IDC_HORRES,100,55,105,8
+ LTEXT "Vertical DPI:",IDC_STATIC,15,70,80,8
+ LTEXT "Static",IDC_VERTRES,100,70,105,8
+ LTEXT "Bit Depth:",IDC_STATIC,15,85,80,8
+ LTEXT "Static",IDC_BITDEPTH,100,85,105,8
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_ABOUTBOX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 178
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 119
+ END
+
+ IDD_PROP_PAGE1, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 205
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 107
+ END
+
+ IDD_PROP_PAGE2, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 205
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 107
+ END
+
+ IDD_PROP_PAGE3, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 205
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 107
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDR_MAINFRAME2 ACCELERATORS
+BEGIN
+ VK_F4, ID_EDIT_CLEAR, VIRTKEY, CONTROL, NOINVERT
+ "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
+ VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
+ "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT
+ VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT
+ "L", ID_FILE_LAST, VIRTKEY, CONTROL, NOINVERT
+ "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT
+ "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT
+ "2", ID_PLAY_DOUBLESPEED, VIRTKEY, ALT, NOINVERT
+ "0", ID_PLAY_HALFSPEED, VIRTKEY, ALT, NOINVERT
+ "1", ID_PLAY_NORMALSPEED, VIRTKEY, ALT, NOINVERT
+ " ", ID_PLAY_PLAY_PAUSE, ASCII, NOINVERT
+ "2", ID_VIEW_DOUBLESIZE, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_VIEW_FULLSCREEN, VIRTKEY, CONTROL, NOINVERT
+ "0", ID_VIEW_HALFSIZE, VIRTKEY, CONTROL, NOINVERT
+ "1", ID_VIEW_NORMALSIZE, VIRTKEY, CONTROL, NOINVERT
+ "9", ID_VIEW_QUARTERSIZE, VIRTKEY, CONTROL, NOINVERT
+ "3", ID_VIEW_TRIPLESIZE, VIRTKEY, CONTROL, NOINVERT
+ "4", ID_VIEW_QUADRUPLESIZE, VIRTKEY, CONTROL, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "Written by Frank Barchard"
+ VALUE "FileDescription", "media_player"
+ VALUE "FileVersion", "1, 0, 0, 1"
+ VALUE "InternalName", "media_player_wtl"
+ VALUE "LegalCopyright", "Copyright 2009"
+ VALUE "OriginalFilename", "media_player_wtl.exe"
+ VALUE "ProductName", "media_player"
+ VALUE "ProductVersion", "1, 0, 0, 1"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+ IDR_MAINFRAME "Media Player"
+END
+
+STRINGTABLE
+BEGIN
+ ID_FILE_NEW "Create a new document\nNew"
+ ID_FILE_OPEN "Open a movie\nOpen"
+ ID_FILE_CLOSE "Close movie\nClose"
+ ID_FILE_SAVE "Save the movie\nSave"
+ ID_FILE_SAVE_AS "Save the movie with a new name\nSave As"
+ ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup"
+ ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup"
+ ID_FILE_PRINT "Print the movie\nPrint"
+ ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview"
+END
+
+STRINGTABLE
+BEGIN
+ ID_VIEW_FULLSCREEN "Full screen mode."
+ ID_PLAY_HALFSPEED "Play movie at half normal speed."
+ ID_PLAY_NORMALSPEED "Play movie at normal speed."
+ ID_PLAY_DOUBLESPEED "Play movie at twice the normal speed."
+ ID_FILE_LAST "Replay last movie\nOpen"
+ ID_VIEW_ROTATE0 "Turn off rotation."
+ ID_VIEW_ROTATE90 "Rotate movie by 90 degrees clockwise."
+ ID_VIEW_ROTATE180 "Rotate movie by 180 degrees."
+ ID_VIEW_ROTATE270 "Rotate movie by 270 degrees clockwise."
+ ID_VIEW_MIRROR_HORIZONTAL "Mirror movie horizontally."
+ ID_VIEW_MIRROR_VERTICAL "Mirror movie vertically."
+ ID_VIEW_QUARTERSIZE "View movie at quarter normal size."
+END
+
+STRINGTABLE
+BEGIN
+ ID_APP_ABOUT "Display program information, version number and copyright\nAbout"
+ ID_APP_EXIT "Quit the application; prompts to save documents\nExit"
+END
+
+STRINGTABLE
+BEGIN
+ ID_NEXT_PANE "Switch to the next window pane\nNext Pane"
+ ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane"
+END
+
+STRINGTABLE
+BEGIN
+ ID_WINDOW_NEW "Open another window for the movie\nNew Window"
+ ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons"
+ ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows"
+ ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows"
+ ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows"
+ ID_WINDOW_SPLIT "Split the active window into panes\nSplit"
+END
+
+STRINGTABLE
+BEGIN
+ ID_EDIT_CLEAR "Removes the movie\nClear"
+ ID_EDIT_CLEAR_ALL "Erase everything\nErase All"
+ ID_EDIT_COPY "Copy the movie and put it on the Clipboard\nCopy"
+ ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut"
+ ID_EDIT_FIND "Find the specified text\nFind"
+ ID_EDIT_PASTE "Insert movie from the Clipboard\nPaste"
+ ID_EDIT_REPEAT "Repeat the last action\nRepeat"
+ ID_EDIT_REPLACE "Replace specific text with different text\nReplace"
+ ID_EDIT_SELECT_ALL "Select the entire document\nSelect All"
+ ID_EDIT_UNDO "Undo the last action\nUndo"
+ ID_EDIT_REDO "Redo the previously undone action\nRedo"
+END
+
+STRINGTABLE
+BEGIN
+ ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar"
+ ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar"
+END
+
+STRINGTABLE
+BEGIN
+ ATL_IDS_SCSIZE "Change the window size"
+ ATL_IDS_SCMOVE "Change the window position"
+ ATL_IDS_SCMINIMIZE "Reduce the window to an icon"
+ ATL_IDS_SCMAXIMIZE "Enlarge the window to full size"
+ ATL_IDS_SCNEXTWINDOW "Switch to the next document window"
+ ATL_IDS_SCPREVWINDOW "Switch to the previous document window"
+ ATL_IDS_SCCLOSE "Close the active window and prompts to save the documents"
+END
+
+STRINGTABLE
+BEGIN
+ ATL_IDS_SCRESTORE "Restore the window to normal size"
+ ATL_IDS_SCTASKLIST "Activate Task List"
+ ATL_IDS_MDICHILD "Activate this window"
+END
+
+STRINGTABLE
+BEGIN
+ ATL_IDS_IDLEMESSAGE "Ready"
+END
+
+STRINGTABLE
+BEGIN
+ ATL_IDS_MRU_FILE "Open this document"
+END
+
+STRINGTABLE
+BEGIN
+ ID_RECENT_BTN "\nRecent Files"
+ ID_VIEW_PROPERTIES "Displays movie properties\nProperties"
+ ID_PLAY_PLAY_PAUSE "Start or pause movie playback"
+END
+
+STRINGTABLE
+BEGIN
+ ID_OPTIONS_MMX "Enable CPU extensions including MMX and SSE"
+ ID_OPTIONS_OPENMP "Enable OpenMP for YUV"
+ ID_OPTIONS_SWSCALER "Use SWScaler YUV conversion"
+ ID_OPTIONS_DRAW "Enable/Disable Draws"
+ ID_OPTIONS_AUDIO "Enable/Disable Audio"
+ ID_OPTIONS_DUMPYUVFILE "Dump YUV frames to a file"
+ ID_VIEW_HALFSIZE "View movie at half normal size."
+ ID_VIEW_NORMALSIZE "View movie at normal size."
+ ID_VIEW_DOUBLESIZE "View movie at twice the normal size."
+ ID_VIEW_FITTOSCREEN "Maximize window to desktop."
+END
+
+STRINGTABLE
+BEGIN
+ ID_VIEW_TRIPLESIZE "View movie at triple the normal size."
+ ID_VIEW_QUADRUPLESIZE "View movie at quadruple the normal size."
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/media/player/resource.h b/media/player/resource.h index c1a9457..c0f6186 100644 --- a/media/player/resource.h +++ b/media/player/resource.h @@ -1,64 +1,66 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by player_wtl.rc -// -#define IDD_ABOUTBOX 100 -#define IDR_MAINFRAME 128 -#define IDR_MAINFRAME2 128 -#define IDR_MAINFRAME3 128 -#define IDR_MAINFRAME4 128 -#define IDR_CONTEXTMENU 201 -#define IDD_PROP_PAGE1 202 -#define IDD_PROP_PAGE2 203 -#define IDD_PROP_PAGE3 204 -#define IDC_TYPE 1001 -#define IDC_WIDTH 1002 -#define IDC_HEIGHT 1003 -#define IDC_HORRES 1004 -#define IDC_VERTRES 1005 -#define IDC_BITDEPTH 1006 -#define IDC_COMPRESSION 1008 -#define IDC_FILELOCATION 1009 -#define IDC_FILESIZE 1010 -#define IDC_FILEDATE 1011 -#define IDC_FILEATTRIB 1012 -#define ID_RECENT_BTN 32777 -#define ID_VIEW_PROPERTIES 32778 -#define ID_VIEW_MEDIADETAILS 32780 -#define ID_PLAY_PLAY 32781 -#define ID_PLAY_PLAY_PAUSE 32782 -#define ID_OPTIONS_MMX 32789 -#define ID_OPTIONS_OPENMP 32790 -#define ID_OPTIONS_SWSCALER 32791 -#define ID_OPTIONS_DRAW 32792 -#define ID_OPTIONS_AUDIO 32793 -#define ID_OPTIONS_DUMPYUVFILE 32794 -#define ID_Menu 32795 -#define ID_VIEW_HALFSIZE 32796 -#define ID_VIEW_NORMALSIZE 32797 -#define ID_VIEW_DOUBLESIZE 32798 -#define ID_VIEW_FITTOSCREEN 32799 -#define ID_VIEW_FULLSCREEN 32800 -#define ID_PLAY_HALFSPEED 32801 -#define ID_PLAY_NORMALSPEED 32802 -#define ID_PLAY_DOUBLESPEED 32803 -#define ID_FILE_LAST 32804 -#define ID_Menu32806 32806 -#define ID_VIEW_ROTATE0 32807 -#define ID_VIEW_ROTATE90 32808 -#define ID_VIEW_ROTATE180 32809 -#define ID_VIEW_ROTATE270 32810 -#define ID_VIEW_MIRROR_HORIZONTAL 32811 -#define ID_VIEW_MIRROR_VERTICAL 32812 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 203 -#define _APS_NEXT_COMMAND_VALUE 32813 -#define _APS_NEXT_CONTROL_VALUE 1013 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif - +//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by player_wtl.rc
+//
+#define IDD_ABOUTBOX 100
+#define IDR_MAINFRAME 128
+#define IDR_MAINFRAME2 128
+#define IDR_MAINFRAME3 128
+#define IDR_MAINFRAME4 128
+#define IDR_CONTEXTMENU 201
+#define IDD_PROP_PAGE1 202
+#define IDD_PROP_PAGE2 203
+#define IDD_PROP_PAGE3 204
+#define IDC_TYPE 1001
+#define IDC_WIDTH 1002
+#define IDC_HEIGHT 1003
+#define IDC_HORRES 1004
+#define IDC_VERTRES 1005
+#define IDC_BITDEPTH 1006
+#define IDC_COMPRESSION 1008
+#define IDC_FILELOCATION 1009
+#define IDC_FILESIZE 1010
+#define IDC_FILEDATE 1011
+#define IDC_FILEATTRIB 1012
+#define ID_RECENT_BTN 32777
+#define ID_VIEW_PROPERTIES 32778
+#define ID_VIEW_MEDIADETAILS 32780
+#define ID_PLAY_PLAY 32781
+#define ID_PLAY_PLAY_PAUSE 32782
+#define ID_OPTIONS_MMX 32789
+#define ID_OPTIONS_OPENMP 32790
+#define ID_OPTIONS_SWSCALER 32791
+#define ID_OPTIONS_DRAW 32792
+#define ID_OPTIONS_AUDIO 32793
+#define ID_OPTIONS_DUMPYUVFILE 32794
+#define ID_Menu 32795
+#define ID_VIEW_QUARTERSIZE 32815
+#define ID_VIEW_HALFSIZE 32816
+#define ID_VIEW_NORMALSIZE 32817
+#define ID_VIEW_DOUBLESIZE 32818
+#define ID_VIEW_TRIPLESIZE 32819
+#define ID_VIEW_QUADRUPLESIZE 32820
+#define ID_VIEW_FITTOSCREEN 32821
+#define ID_VIEW_FULLSCREEN 32822
+#define ID_PLAY_HALFSPEED 32801
+#define ID_PLAY_NORMALSPEED 32802
+#define ID_PLAY_DOUBLESPEED 32803
+#define ID_FILE_LAST 32804
+#define ID_Menu32806 32806
+#define ID_VIEW_ROTATE0 32807
+#define ID_VIEW_ROTATE90 32808
+#define ID_VIEW_ROTATE180 32809
+#define ID_VIEW_ROTATE270 32810
+#define ID_VIEW_MIRROR_HORIZONTAL 32811
+#define ID_VIEW_MIRROR_VERTICAL 32812
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 203
+#define _APS_NEXT_COMMAND_VALUE 32823
+#define _APS_NEXT_CONTROL_VALUE 1013
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/media/player/view.h b/media/player/view.h index f515c16..9e99587 100644 --- a/media/player/view.h +++ b/media/player/view.h @@ -9,7 +9,7 @@ #define MEDIA_PLAYER_VIEW_H_ // Enable timing code by turning on TESTING macro. -// #define TESTING 1 +// #define TESTING 1 #ifdef TESTING #define _CRT_SECURE_NO_WARNINGS @@ -19,6 +19,10 @@ #include <string.h> #endif +// Enable swscaler. +// TODO(fbarchard): Include header and change bilinear to point sampling. +// #define TEST_SWSCALER 1 + #include <atlscrl.h> #include "base/basictypes.h" @@ -26,7 +30,6 @@ #include "media/base/factory.h" #include "media/base/filters.h" #include "media/base/yuv_convert.h" -#include "media/base/yuv_scale.h" #include "media/player/movie.h" #include "media/player/wtl_renderer.h" @@ -53,7 +56,7 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { WtlVideoWindow() { size_.cx = 0; size_.cy = 0; - view_size_ = 1; + view_size_ = 2; // Normal size. view_rotate_ = media::ROTATE_0; renderer_ = new WtlVideoRenderer(this); last_frame_ = NULL; @@ -161,22 +164,41 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { int scaled_height = clipped_height; switch (view_size_) { case 0: + scaled_width = clipped_width / 4; + scaled_height = clipped_height / 4; + break; + + case 1: scaled_width = clipped_width / 2; scaled_height = clipped_height / 2; break; - case 1: - default: // Assume 1:1 for stray view sizes + case 2: + default: // Assume 1:1 for stray view sizes. scaled_width = clipped_width; scaled_height = clipped_height; break; - case 2: + case 3: // Double. scaled_width = clipped_width; scaled_height = clipped_height; clipped_width = scaled_width / 2; clipped_height = scaled_height / 2; break; + + case 4: // Triple. + scaled_width = clipped_width; + scaled_height = clipped_height; + clipped_width = scaled_width / 3; + clipped_height = scaled_height / 3; + break; + + case 5: // Quadruple. + scaled_width = clipped_width; + scaled_height = clipped_height; + clipped_width = scaled_width / 4; + clipped_height = scaled_height / 4; + break; } // Append each frame to end of file. @@ -186,12 +208,12 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { } #ifdef TESTING - SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); - double yuvtimestart = GetTime(); // Start timer. + double yuv_time_start = GetTime(); // Start timer. #endif bool enable_draw = media::Movie::get()->GetDrawEnable(); if (enable_draw) { +#ifdef TEST_SWSCALER bool enable_swscaler = media::Movie::get()->GetSwscalerEnable(); if (enable_swscaler) { uint8* data_out[3]; @@ -203,21 +225,19 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { stride_out[1] = 0; stride_out[2] = 0; - /* if (!sws_context_) { DCHECK(frame_in.format == VideoSurface::YV12); - int outtype = bm.bmBitsPixel == 32 ? PIX_FMT_RGB32 : PIX_FMT_RGB24; sws_context_ = sws_getContext(frame_in.width, frame_in.height, PIX_FMT_YUV420P, width_, height_, - outtype, SWS_FAST_BILINEAR, + PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL); DCHECK(sws_context_); } - sws_scale(sws_context_, frame_in.data, frame_in.strides, 0, - height_, data_out, stride_out); - */ + sws_scale(sws_context_, frame_in.data, frame_in.strides, 0, + height_, data_out, stride_out); } else { +#endif DCHECK(bm.bmBitsPixel == 32); DrawYUV(frame_in, movie_dib_bits, @@ -226,19 +246,25 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { clipped_height, scaled_width, scaled_height); +#ifdef TEST_SWSCALER } +#endif } #ifdef TESTING - double yuvtimeend = GetTime(); // Start timer. - SSetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); - static int yuvtimecount = 0; - static double yuvtimesum = 0; - yuvtimesum += yuvtimeend - yuvtimestart; - ++yuvtimecount; + double yuv_time_end = GetTime(); + static int yuv_time_count = 0; + static double yuv_time_sum = 0.; + if (!yuv_time_count) + yuv_time_sum = 0.; + yuv_time_sum += (yuv_time_end - yuv_time_start); + ++yuv_time_count; char outputbuf[512]; - snprintf(outputbuf, sizeof(outputbuf), "yuv %.2fms avg %.2fms\n", - yuvtimeend - yuvtimestart, yuvtimesum / yuvtimecount); + _snprintf_s(outputbuf, sizeof(outputbuf), "test %f", yuv_time_end); + _snprintf_s(outputbuf, sizeof(outputbuf), + "yuv %5.2f ms avg %5.2f ms\n", + yuv_time_end - yuv_time_start, + yuv_time_sum / yuv_time_count); OutputDebugStringA(outputbuf); #endif } @@ -273,14 +299,14 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { double paint_time_end = GetTime(); static int paint_count = 0; static double paint_time_sum = 0; - paint_time_sum += paint_time_end-paint_time_start; + paint_time_sum += paint_time_end - paint_time_start; ++paint_count; char outputbuf[512]; - snprintf(outputbuf, sizeof(outputbuf), - "paint time %5.2fms blit %5.2fms avg %5.2fms\n", - paint_time_start-paint_time_previous, - paint_time_end-paint_time_start, - paint_time_sum/paint_count); + _snprintf_s(outputbuf, sizeof(outputbuf), + "paint time %5.2f ms blit %5.2f ms avg %5.2f ms\n", + paint_time_start - paint_time_previous, + paint_time_end - paint_time_start, + paint_time_sum / paint_count); OutputDebugStringA(outputbuf); paint_time_previous = paint_time_start; @@ -356,7 +382,8 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { private: HBITMAP hbmp_; // For Images - int view_size_; // View Size. 0=0.5, 1=normal, 2=2x, 3=fit, 4=full + // View Size: 0=1/4, 1=0.5, 2=normal, 3=2x, 4=3x, 5=4x, 3=fit, 4=full. + int view_size_; // View Rotate 0-5 for ID_VIEW_ROTATE0 to ID_VIEW_MIRROR_VERTICAL media::Rotate view_rotate_; @@ -370,30 +397,34 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { int clipped_height, int scaled_width, int scaled_height) { - if (frame_in.format == media::VideoSurface::YV16) { - // Temporary cast, til we use uint8 for VideoFrame. - media::ScaleYV16ToRGB32(frame_in.data[0], - frame_in.data[1], - frame_in.data[2], - movie_dib_bits, - clipped_width, clipped_height, - scaled_width, scaled_height, - frame_in.strides[0], - frame_in.strides[1], - dibrowbytes, - view_rotate_); + media::YUVType yuv_type = (frame_in.format == media::VideoSurface::YV12) ? + media::YV12 : media::YV16; + + // Simple convert is not necessary for performance, but allows + // easier alternative implementations. + if ((view_rotate_ == media::ROTATE_0) && // Not scaled or rotated + (view_size_ == 2)) { + media::ConvertYUVToRGB32(frame_in.data[0], + frame_in.data[1], + frame_in.data[2], + movie_dib_bits, + scaled_width, scaled_height, + frame_in.strides[0], + frame_in.strides[1], + dibrowbytes, + yuv_type); } else { - // Temporary cast, til we use uint8 for VideoFrame. - media::ScaleYV12ToRGB32(frame_in.data[0], - frame_in.data[1], - frame_in.data[2], - movie_dib_bits, - clipped_width, clipped_height, - scaled_width, scaled_height, - frame_in.strides[0], - frame_in.strides[1], - dibrowbytes, - view_rotate_); + media::ScaleYUVToRGB32(frame_in.data[0], + frame_in.data[1], + frame_in.data[2], + movie_dib_bits, + clipped_width, clipped_height, + scaled_width, scaled_height, + frame_in.strides[0], + frame_in.strides[1], + dibrowbytes, + yuv_type, + view_rotate_); } } @@ -417,9 +448,9 @@ class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { #if TESTING static int frame_dump_count = 0; char outputbuf[512]; - snprintf(outputbuf, sizeof(outputbuf), "yuvdump %4d %dx%d stride %d\n", - frame_dump_count, frame_in.width, frame_in.height, - frame_in.strides[0]); + _snprintf_s(outputbuf, sizeof(outputbuf), "yuvdump %4d %dx%d stride %d\n", + frame_dump_count, frame_in.width, frame_in.height, + frame_in.strides[0]); OutputDebugStringA(outputbuf); ++frame_dump_count; #endif |