diff --git a/.gitignore b/.gitignore index 38c8b7ef1af..9e396e9b454 100644 --- a/.gitignore +++ b/.gitignore @@ -16,10 +16,10 @@ /build.user.bat /contrib/[Aa][Ss]tyle.exe /contrib/cov-int -/contrib/MPC-HC.lzma +/contrib/cov_upload.log +/contrib/MPC-HC.tar.xz /contrib/MPC-HC.tar /contrib/MPC-HC.tgz -/contrib/warn-about-64-bit-msbuild.txt /distrib/*.exe /include/version_rev.h /signinfo.txt @@ -28,5 +28,6 @@ /src/mpc-hc/mpcresources/tx.exe /src/mpc-hc/res/mpc-hc.exe.manifest /src/MPCTestAPI/bin +/src/thirdparty/DoctorDump/obj /src/thirdparty/LAVFilters/obj ipch diff --git a/Readme.md b/Readme.md index fd2534390ba..8389f418d8d 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,7 @@ # Media Player Classic - Home Cinema -[![GitHub version](https://badge.fury.io/gh/mpc-hc%2Fmpc-hc.svg)](http://badge.fury.io/gh/mpc-hc%2Fmpc-hc) -[![Coverity Scan Build Status](https://scan.coverity.com/projects/259/badge.svg)](https://scan.coverity.com/projects/259) +[![GitHub Tag](https://img.shields.io/github/tag/mpc-hc/mpc-hc.svg?label=version)](https://github.com/mpc-hc/mpc-hc) +[![Coverity Scan Build Status](https://img.shields.io/coverity/scan/259.svg)](https://scan.coverity.com/projects/259) Media Player Classic - Home Cinema (MPC-HC) is a free and open source (OSS) video @@ -12,26 +12,26 @@ We are in dire need of new developers of any kind. If you can code a little, or logos for the player and images for the file associations, or you can create/maintain the main website, please join our IRC channel and talk to us. Any help is always appreciated. -Find some easy ticket on our trac page, fix the problem, send a [pull request](https://github.com/mpc-hc/mpc-hc/pulls), -or post the patch on [trac](https://trac.mpc-hc.org) or come on IRC and we'll review it for you. +Find some easy ticket on our Trac, fix the problem, send a [pull request](https://github.com/mpc-hc/mpc-hc/pulls), +or post the patch on [Trac](https://trac.mpc-hc.org/) or come on IRC and we'll review it for you. See [CONTRIBUTING.md](/CONTRIBUTING.md) for more info. *We care about keeping an open project open and free for contributions wherever they may come from.* ## Main Features: -* Option to remove [tearing](http://en.wikipedia.org/wiki/Screen_tearing) +* Option to remove [tearing](https://en.wikipedia.org/wiki/Screen_tearing) * Support for Windows Vista/7/8, including a 64-bit build -* Support for [EVR/EVR CP](http://en.wikipedia.org/wiki/Media_Foundation#Enhanced_Video_Renderer) (Enhanced Video Renderer) -* Supports most types of [subtitles](http://en.wikipedia.org/wiki/Subtitle_%28captioning%29#Subtitle_formats) - including [BluRay](http://en.wikipedia.org/wiki/Blu-ray_Disc) .sup files +* Support for [EVR/EVR CP](https://en.wikipedia.org/wiki/Media_Foundation#Enhanced_Video_Renderer) (Enhanced Video Renderer) +* Supports most types of [subtitles](https://en.wikipedia.org/wiki/Subtitle_%28captioning%29#Subtitle_formats) + including [BluRay](https://en.wikipedia.org/wiki/Blu-ray_Disc) .sup files * Playback and recording of television programs, if a supported - [TV tuner card](http://en.wikipedia.org/wiki/TV_tuner_card) is installed -* [OSD info (On Screen Display)](http://en.wikipedia.org/wiki/On-screen_display) + [TV tuner card](https://en.wikipedia.org/wiki/TV_tuner_card) is installed +* [OSD info (On Screen Display)](https://en.wikipedia.org/wiki/On-screen_display) * Multi-Monitor support -* Various [pixel shaders](http://en.wikipedia.org/wiki/Shader#Pixel_shaders) -* [Color management](http://en.wikipedia.org/wiki/Color_management) -* 37 translations available +* Various [pixel shaders](https://en.wikipedia.org/wiki/Shader#Pixel_shaders) +* [Color management](https://en.wikipedia.org/wiki/Color_management) +* 38 translations available ## System Requirements: @@ -40,12 +40,12 @@ See [CONTRIBUTING.md](/CONTRIBUTING.md) for more info. ## Links: -* [Website](http://mpc-hc.org) +* [Website](https://mpc-hc.org/) * [Source code](https://github.com/mpc-hc) -* [Support Trac](https://trac.mpc-hc.org) -* IRC Channel: [#mpc-hc](http://webchat.freenode.net/?randomnick=1&channels=mpc-hc&prompt=1&uio=d4) - / [#mpc-hc-dev](http://webchat.freenode.net/?randomnick=1&channels=mpc-hc-dev&prompt=1&uio=d4) at [Freenode](http://freenode.net/) -* [Donations](http://mpc-hc.org/donate/) +* [Support Trac](https://trac.mpc-hc.org/) +* IRC Channel: [#mpc-hc](https://webchat.freenode.net/?randomnick=1&channels=mpc-hc&prompt=1&uio=d4) + / [#mpc-hc-dev](https://webchat.freenode.net/?randomnick=1&channels=mpc-hc-dev&prompt=1&uio=d4) at [Freenode](https://freenode.net/) +* [Donations](https://mpc-hc.org/donate/) For the people involved in the development, see @@ -64,21 +64,21 @@ MPC-HC makes use of the following third-party code: | Project | License | Website | | ----------------- | ------------------------- | ----------------- | | CSizingControlBar | - | http://www.datamekanix.com/sizecbar/ | -| LAV Filters | GPLv2+ | http://code.google.com/p/lavfilters/ | +| LAV Filters | GPLv2+ | https://code.google.com/p/lavfilters/ | | libdivide | zlib License | http://libdivide.com/ | | Little CMS | MIT License | http://www.littlecms.com/ | | Logitech SDK | - | - | -| MediaInfoLib | Simplified BSD License | http://mediaarea.net/MediaInfo | +| MediaInfoLib | Simplified BSD License | https://mediaarea.net/MediaInfo | | Mhook | MIT License | https://github.com/martona/mhook | | MultiMon | CPOL | http://www.codeproject.com/Articles/3690/ | -| QuickTime SDK | - | http://developer.apple.com/quicktime/ | +| QuickTime SDK | - | https://developer.apple.com/quicktime/ | | RARFileSource | GPLv2+ | http://www.v12pwr.com/RARFileSource/ | | RealMedia SDK | - | - | -| ResizableLib | Artistic License | http://sourceforge.net/projects/resizablelib/ | +| ResizableLib | Artistic License | https://sourceforge.net/projects/resizablelib/ | | Silk Icons | CC Attribution 2.5 | http://www.famfamfam.com/lab/icons/silk/ | | SoundTouch | LGPLv2.1 | http://www.surina.net/soundtouch/ | | TreePropSheet | - | http://www.codeproject.com/Articles/3709/ | | UnRAR | freeware | http://www.rarlab.com/rar_add.htm | | VirtualDub | GPLv2+ | http://www.virtualdub.org/ | -| ZenLib | zlib License | http://sourceforge.net/projects/zenlib/ | +| ZenLib | zlib License | https://sourceforge.net/projects/zenlib/ | | zlib | zlib License | http://zlib.net/ | diff --git a/build.bat b/build.bat index 125aa6e3d96..21cea0e84d1 100755 --- a/build.bat +++ b/build.bat @@ -18,20 +18,6 @@ REM along with this program. If not, see . SETLOCAL -CD /D %~dp0 - -REM pre-build checks -IF EXIST "build.user.bat" ( - CALL "build.user.bat" -) ELSE ( - IF DEFINED MINGW32 (SET MPCHC_MINGW32=%MINGW32%) ELSE (GOTO MissingVar) - IF DEFINED MINGW64 (SET MPCHC_MINGW64=%MINGW64%) ELSE (GOTO MissingVar) - IF DEFINED MSYS (SET MPCHC_MSYS=%MSYS%) ELSE (GOTO MissingVar) -) - -IF NOT EXIST "%MPCHC_MINGW32%" GOTO MissingVar -IF NOT EXIST "%MPCHC_MINGW64%" GOTO MissingVar -IF NOT EXIST "%MPCHC_MSYS%" GOTO MissingVar SET ARG=/%* SET ARG=%ARG:/=% @@ -48,9 +34,7 @@ IF /I "%ARG%" == "?" GOTO ShowHelp FOR %%G IN (%ARG%) DO ( IF /I "%%G" == "help" GOTO ShowHelp - IF /I "%%G" == "GetVersion" ENDLOCAL & SET "FORCE_VER_UPDATE=True" & CALL :SubGetVersion & EXIT /B - IF /I "%%G" == "CopyDXDll" ENDLOCAL & CALL :SubCopyDXDll x86 & CALL :SubCopyDXDll x64 & EXIT /B - IF /I "%%G" == "CopyDX" ENDLOCAL & CALL :SubCopyDXDll x86 & CALL :SubCopyDXDll x64 & EXIT /B + IF /I "%%G" == "GetVersion" ENDLOCAL & SET "FORCE_VER_UPDATE=True" & CALL "%~dp0common.bat" :SubGetVersion & EXIT /B IF /I "%%G" == "Build" SET "BUILDTYPE=Build" & SET /A ARGB+=1 IF /I "%%G" == "Clean" SET "BUILDTYPE=Clean" & SET /A ARGB+=1 & SET "NO_INST=True" & SET /A "NO_ZIP=True" & SET "NO_LAV=True" IF /I "%%G" == "Rebuild" SET "BUILDTYPE=Rebuild" & SET /A ARGB+=1 & SET "NO_LAV=True" @@ -82,6 +66,14 @@ FOR %%G IN (%ARG%) DO ( IF /I "%%G" == "Analyze" SET "ANALYZE=True" & SET /A VALID+=1 ) +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" + +SET "COMMON=%FILE_DIR%\common.bat" + +CALL "%COMMON%" :SubPreBuild +IF %ERRORLEVEL% NEQ 0 GOTO MissingVar + FOR %%G IN (%*) DO SET /A INPUT+=1 SET /A VALID+=%ARGB%+%ARGPL%+%ARGC%+%ARGBC%+%ARGCOMP% IF %VALID% NEQ %INPUT% GOTO UnsupportedSwitch @@ -103,7 +95,7 @@ IF NOT DEFINED VS120COMNTOOLS GOTO MissingVar SET "TOOLSET=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat" SET "BIN_DIR=bin" -IF EXIST "%~dp0signinfo.txt" ( +IF EXIST "%FILE_DIR%signinfo.txt" ( IF /I "%INSTALLER%" == "True" SET "SIGN=True" IF /I "%ZIP%" == "True" SET "SIGN=True" ) @@ -185,8 +177,8 @@ EXIT /B IF %ERRORLEVEL% NEQ 0 EXIT /B TITLE Compiling MPC-HC %COMPILER% [FINISHED] SET END_TIME=%TIME% -CALL :SubGetDuration -CALL :SubMsg "INFO" "Compilation started on %START_DATE%-%START_TIME% and completed on %DATE%-%END_TIME% [%DURATION%]" +CALL "%COMMON%" :SubGetDuration +CALL "%COMMON%" :SubMsg "INFO" "Compilation started on %START_DATE%-%START_TIME% and completed on %DATE%-%END_TIME% [%DURATION%]" ENDLOCAL EXIT /B @@ -203,10 +195,10 @@ MSBuild.exe mpc-hc.sln %MSBUILD_SWITCHES%^ /flp1:LogFile=%LOG_DIR%\filters_errors_%BUILDCFG%_%1.log;errorsonly;Verbosity=diagnostic^ /flp2:LogFile=%LOG_DIR%\filters_warnings_%BUILDCFG%_%1.log;warningsonly;Verbosity=diagnostic IF %ERRORLEVEL% NEQ 0 ( - CALL :SubMsg "ERROR" "mpc-hc.sln %BUILDCFG% Filter %1 - Compilation failed!" + CALL "%COMMON%" :SubMsg "ERROR" "mpc-hc.sln %BUILDCFG% Filter %1 - Compilation failed!" EXIT /B ) ELSE ( - CALL :SubMsg "INFO" "mpc-hc.sln %BUILDCFG% Filter %1 compiled successfully" + CALL "%COMMON%" :SubMsg "INFO" "mpc-hc.sln %BUILDCFG% Filter %1 compiled successfully" ) IF /I "%SIGN%" == "True" CALL :SubSign Filters *.ax IF /I "%SIGN%" == "True" CALL :SubSign Filters VSFilter.dll @@ -222,10 +214,10 @@ MSBuild.exe mpc-hc.sln %MSBUILD_SWITCHES%^ /flp1:LogFile="%LOG_DIR%\mpc-hc_errors_%BUILDCFG%_%1.log";errorsonly;Verbosity=diagnostic^ /flp2:LogFile="%LOG_DIR%\mpc-hc_warnings_%BUILDCFG%_%1.log";warningsonly;Verbosity=diagnostic IF %ERRORLEVEL% NEQ 0 ( - CALL :SubMsg "ERROR" "mpc-hc.sln %BUILDCFG% %1 - Compilation failed!" + CALL "%COMMON%" :SubMsg "ERROR" "mpc-hc.sln %BUILDCFG% %1 - Compilation failed!" EXIT /B ) ELSE ( - CALL :SubMsg "INFO" "mpc-hc.sln %BUILDCFG% %1 compiled successfully" + CALL "%COMMON%" :SubMsg "INFO" "mpc-hc.sln %BUILDCFG% %1 compiled successfully" ) IF /I "%SIGN%" == "True" CALL :SubSign MPC-HC mpc-hc*.exe IF /I "%SIGN%" == "True" CALL :SubSign MPC-HC *.dll %LAVFILTERSDIR% @@ -238,14 +230,14 @@ EXIT /B IF %ERRORLEVEL% NEQ 0 EXIT /B IF /I "%BUILDCFG%" == "Debug" ( - CALL :SubMsg "WARNING" "/debug was used, resources will not be built" + CALL "%COMMON%" :SubMsg "WARNING" "/debug was used, resources will not be built" EXIT /B ) CALL :SubMPCIconLib %1 IF DEFINED MPCHC_LITE ( - CALL :SubMsg "WARNING" "/lite was used, translations will not be built" + CALL "%COMMON%" :SubMsg "WARNING" "/lite was used, translations will not be built" EXIT /B ) @@ -260,10 +252,10 @@ TITLE Compiling mpciconlib %COMPILER% - Release^|%1... MSBuild.exe mpciconlib.sln %MSBUILD_SWITCHES%^ /target:%BUILDTYPE% /property:Configuration=Release;Platform=%1 IF %ERRORLEVEL% NEQ 0 ( - CALL :SubMsg "ERROR" "mpciconlib.sln %1 - Compilation failed!" + CALL "%COMMON%" :SubMsg "ERROR" "mpciconlib.sln %1 - Compilation failed!" EXIT /B ) ELSE ( - CALL :SubMsg "INFO" "mpciconlib.sln %1 compiled successfully" + CALL "%COMMON%" :SubMsg "INFO" "mpciconlib.sln %1 compiled successfully" ) IF /I "%SIGN%" == "True" CALL :SubSign MPC-HC mpciconlib.dll @@ -282,16 +274,16 @@ IF %ERRORLEVEL% NEQ 0 EXIT /B FOR %%G IN ( "Arabic" "Armenian" "Basque" "Belarusian" "Bengali" "Catalan" "Chinese Simplified" - "Chinese Traditional" "Croatian" "Czech" "Dutch" "English (British)" "Finnish" - "French" "Galician" "German" "Greek" "Hebrew" "Hungarian" "Italian" "Japanese" - "Korean" "Malay" "Polish" "Portuguese (Brazil)" "Romanian" "Russian" "Serbian" - "Slovak" "Slovenian" "Spanish" "Swedish" "Tatar" "Thai" "Turkish" "Ukrainian" - "Vietnamese" + "Chinese Traditional" "Croatian" "Czech" "Danish" "Dutch" "English (British)" + "Finnish" "French" "Galician" "German" "Greek" "Hebrew" "Hungarian" "Italian" + "Japanese" "Korean" "Malay" "Polish" "Portuguese (Brazil)" "Romanian" "Russian" + "Serbian" "Slovak" "Slovenian" "Spanish" "Swedish" "Tatar" "Thai" "Turkish" + "Ukrainian" "Vietnamese" ) DO ( TITLE Compiling mpcresources %COMPILER% - %%~G^|%1... MSBuild.exe mpcresources.sln %MSBUILD_SWITCHES%^ /target:%BUILDTYPE% /property:Configuration="Release %%~G";Platform=%1 - IF %ERRORLEVEL% NEQ 0 CALL :SubMsg "ERROR" "Compilation failed!" & EXIT /B + IF %ERRORLEVEL% NEQ 0 CALL "%COMMON%" :SubMsg "ERROR" "Compilation failed!" & EXIT /B ) IF /I "%SIGN%" == "True" CALL :SubSign MPC-HC mpcresources.??.dll Lang IF /I "%SIGN%" == "True" CALL :SubSign MPC-HC mpcresources.??_??.dll Lang @@ -306,10 +298,10 @@ TITLE Compiling MPCTestAPI %COMPILER% - %BUILDCFG%^|%1... MSBuild.exe MPCTestAPI.sln %MSBUILD_SWITCHES%^ /target:%BUILDTYPE% /property:Configuration=%BUILDCFG%;Platform=%1 IF %ERRORLEVEL% NEQ 0 ( - CALL :SubMsg "ERROR" "MPCTestAPI.sln %1 - Compilation failed!" + CALL "%COMMON%" :SubMsg "ERROR" "MPCTestAPI.sln %1 - Compilation failed!" EXIT /B ) ELSE ( - CALL :SubMsg "INFO" "MPCTestAPI.sln %1 compiled successfully" + CALL "%COMMON%" :SubMsg "INFO" "MPCTestAPI.sln %1 compiled successfully" ) POPD EXIT /B @@ -325,9 +317,9 @@ IF /I "%PPLATFORM%" == "Win32" PUSHD "%BIN_DIR%\%~1_x86\%3" IF /I "%PPLATFORM%" == "x64" PUSHD "%BIN_DIR%\%~1_x64\%3" FOR /F "delims=" %%A IN ('DIR "%2" /b') DO ( - CALL "%~dp0contrib\sign.bat" "%%A" || (CALL :SubMsg "ERROR" "Problem signing %%A" & GOTO Break) + CALL "%FILE_DIR%contrib\sign.bat" "%%A" || (CALL "%COMMON%" :SubMsg "ERROR" "Problem signing %%A" & GOTO Break) ) -CALL :SubMsg "INFO" "%2 signed successfully." +CALL "%COMMON%" :SubMsg "INFO" "%2 signed successfully." :Break POPD @@ -338,9 +330,9 @@ EXIT /B IF /I "%BUILDCFG%" == "Debug" EXIT /B PUSHD "%BIN_DIR%" EXPAND "%DXSDK_DIR%\Redist\Jun2010_D3DCompiler_43_%~1.cab" -F:D3DCompiler_43.dll "mpc-hc_%~1%~2" -IF %ERRORLEVEL% NEQ 0 CALL :SubMsg "ERROR" "Problem when extracting %DXSDK_DIR%\Redist\Jun2010_D3DCompiler_43_%~1.cab" & EXIT /B +IF %ERRORLEVEL% NEQ 0 CALL "%COMMON%" :SubMsg "ERROR" "Problem when extracting %DXSDK_DIR%\Redist\Jun2010_D3DCompiler_43_%~1.cab" & EXIT /B EXPAND "%DXSDK_DIR%\Redist\Jun2010_d3dx9_43_%~1.cab" -F:d3dx9_43.dll "mpc-hc_%~1%~2" -IF %ERRORLEVEL% NEQ 0 CALL :SubMsg "ERROR" "Problem when extracting Jun2010_d3dx9_43_%~1.cab" & EXIT /B +IF %ERRORLEVEL% NEQ 0 CALL "%COMMON%" :SubMsg "ERROR" "Problem when extracting Jun2010_d3dx9_43_%~1.cab" & EXIT /B POPD EXIT /B @@ -361,18 +353,18 @@ IF DEFINED MPCHC_LITE ( CALL :SubCopyDXDll %MPCHC_COPY_DX_DLL_ARGS% -CALL :SubDetectInnoSetup +CALL "%COMMON%" :SubDetectInnoSetup IF NOT DEFINED InnoSetupPath ( - CALL :SubMsg "WARNING" "Inno Setup wasn't found, the %1 installer wasn't built" + CALL "%COMMON%" :SubMsg "WARNING" "Inno Setup wasn't found, the %1 installer wasn't built" EXIT /B ) TITLE Compiling %1 %COMPILER% installer... -"%InnoSetupPath%" /SMySignTool="cmd /c "%~dp0contrib\sign.bat" $f" /Q /O"%BIN_DIR%"^ +"%InnoSetupPath%" /SMySignTool="cmd /c "%FILE_DIR%contrib\sign.bat" $f" /Q /O"%BIN_DIR%"^ "distrib\mpc-hc_setup.iss" %MPCHC_INNO_DEF% -IF %ERRORLEVEL% NEQ 0 CALL :SubMsg "ERROR" "Compilation failed!" & EXIT /B -CALL :SubMsg "INFO" "%1 installer successfully built" +IF %ERRORLEVEL% NEQ 0 CALL "%COMMON%" :SubMsg "ERROR" "Compilation failed!" & EXIT /B +CALL "%COMMON%" :SubMsg "INFO" "%1 installer successfully built" EXIT /B @@ -380,11 +372,11 @@ EXIT /B :SubCreatePackages IF %ERRORLEVEL% NEQ 0 EXIT /B -CALL :SubDetectSevenzipPath -CALL :SubGetVersion +CALL "%COMMON%" :SubDetectSevenzipPath +CALL "%COMMON%" :SubGetVersion IF NOT DEFINED SEVENZIP ( - CALL :SubMsg "WARNING" "7-Zip wasn't found, the %1 %2 package wasn't built" + CALL "%COMMON%" :SubMsg "WARNING" "7-Zip wasn't found, the %1 %2 package wasn't built" EXIT /B ) @@ -427,8 +419,8 @@ IF /I "%NAME%" == "MPC-HC" ( TITLE Creating archive %PCKG_NAME%.pdb.7z... START "7z" /B /WAIT "%SEVENZIP%" a -t7z "%PCKG_NAME%.pdb.7z" %PDB_FILES% -m0=LZMA2^ -mmt=%NUMBER_OF_PROCESSORS% -mx9 -ms=on - IF %ERRORLEVEL% NEQ 0 CALL :SubMsg "ERROR" "Unable to create %PCKG_NAME%.pdb.7z!" & EXIT /B - CALL :SubMsg "INFO" "%PCKG_NAME%.pdb.7z successfully created" + IF %ERRORLEVEL% NEQ 0 CALL "%COMMON%" :SubMsg "ERROR" "Unable to create %PCKG_NAME%.pdb.7z!" & EXIT /B + CALL "%COMMON%" :SubMsg "INFO" "%PCKG_NAME%.pdb.7z successfully created" IF EXIST "%PCKG_NAME%.pdb.7z" MOVE /Y "%PCKG_NAME%.pdb.7z" ".." >NUL POPD ) @@ -460,6 +452,12 @@ IF /I "%NAME%" == "MPC-HC" ( COPY /Y /V "%VS_OUT_DIR%\d3dx9_43.dll" "%PCKG_NAME%\d3dx9_43.dll" >NUL IF NOT EXIST "%PCKG_NAME%\Shaders" MD "%PCKG_NAME%\Shaders" COPY /Y /V "..\src\mpc-hc\res\shaders\external\*.hlsl" "%PCKG_NAME%\Shaders" >NUL + IF /I "%BUILDCFG%" NEQ "Debug" IF /I "%BUILDCFG%" NEQ "Debug Lite" IF EXIST "%VS_OUT_DIR%\CrashReporter" ( + IF NOT EXIST "%PCKG_NAME%\CrashReporter" MD "%PCKG_NAME%\CrashReporter" + COPY /Y /V "%VS_OUT_DIR%\CrashReporter\crashrpt.dll" "%PCKG_NAME%\CrashReporter" + COPY /Y /V "%VS_OUT_DIR%\CrashReporter\dbghelp.dll" "%PCKG_NAME%\CrashReporter" + COPY /Y /V "%VS_OUT_DIR%\CrashReporter\sendrpt.exe" "%PCKG_NAME%\CrashReporter" + ) ) ELSE ( COPY /Y /V "%VS_OUT_DIR%\*.ax" "%PCKG_NAME%\*.ax" >NUL COPY /Y /V "%VS_OUT_DIR%\VSFilter.dll" "%PCKG_NAME%\VSFilter.dll" >NUL @@ -473,8 +471,8 @@ COPY /Y /V "..\docs\Readme.txt" "%PCKG_NAME%" >NUL TITLE Creating archive %PCKG_NAME%.7z... START "7z" /B /WAIT "%SEVENZIP%" a -t7z "%PCKG_NAME%.7z" "%PCKG_NAME%" -m0=LZMA2^ -mmt=%NUMBER_OF_PROCESSORS% -mx9 -ms=on -IF %ERRORLEVEL% NEQ 0 CALL :SubMsg "ERROR" "Unable to create %PCKG_NAME%.7z!" & EXIT /B -CALL :SubMsg "INFO" "%PCKG_NAME%.7z successfully created" +IF %ERRORLEVEL% NEQ 0 CALL "%COMMON%" :SubMsg "ERROR" "Unable to create %PCKG_NAME%.7z!" & EXIT /B +CALL "%COMMON%" :SubMsg "INFO" "%PCKG_NAME%.7z successfully created" IF EXIST "%PCKG_NAME%" RD /Q /S "%PCKG_NAME%" @@ -482,56 +480,6 @@ POPD EXIT /B -:SubGetVersion -PUSHD %~dp0 -REM Get the version -IF NOT EXIST "include\version_rev.h" SET "FORCE_VER_UPDATE=True" -IF /I "%FORCE_VER_UPDATE%" == "True" CALL "update_version.bat" && SET "FORCE_VER_UPDATE=False" - -FOR /F "tokens=2,3" %%A IN ('FINDSTR /R /C:"define MPC_VERSION_[M,P]" "include\version.h"') DO ( - SET "%%A=%%B" -) - -FOR /F "tokens=2,3" %%A IN ('FINDSTR /R /C:"define MPC" "include\version_rev.h"') DO ( - SET "%%A=%%B" -) - -IF "%MPC_VERSION_REV%" NEQ "0" (SET "MPCHC_NIGHTLY=1") ELSE (SET "MPCHC_NIGHTLY=0") - -SET "MPCHC_HASH=%MPCHC_HASH:~4,-2%" -IF DEFINED MPCHC_BRANCH ( - SET "MPCHC_BRANCH=%MPCHC_BRANCH:~4,-2%" -) - -IF "%MPCHC_NIGHTLY%" NEQ "0" ( - SET "MPCHC_VER=%MPC_VERSION_MAJOR%.%MPC_VERSION_MINOR%.%MPC_VERSION_PATCH%.%MPC_VERSION_REV%" -) ELSE ( - SET "MPCHC_VER=%MPC_VERSION_MAJOR%.%MPC_VERSION_MINOR%.%MPC_VERSION_PATCH%" -) -POPD -EXIT /B - - -:SubDetectInnoSetup -FOR /F "tokens=5*" %%A IN ( - 'REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Inno Setup 5_is1" /v "Inno Setup: App Path" 2^>NUL ^| FIND "REG_SZ" ^|^| - REG QUERY "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Inno Setup 5_is1" /v "Inno Setup: App Path" 2^>NUL ^| FIND "REG_SZ"') DO SET "InnoSetupPath=%%B\ISCC.exe" -EXIT /B - - -:SubDetectSevenzipPath -FOR %%G IN (7z.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") -IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) - -FOR %%G IN (7za.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") -IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) - -FOR /F "tokens=2*" %%A IN ( - 'REG QUERY "HKLM\SOFTWARE\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ" ^|^| - REG QUERY "HKLM\SOFTWARE\Wow6432Node\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ"') DO SET "SEVENZIP=%%B\7z.exe" -EXIT /B - - :ShowHelp TITLE %~nx0 Help ECHO. @@ -565,7 +513,7 @@ TITLE Compiling MPC-HC %COMPILER% [ERROR] ECHO Not all build dependencies were found. ECHO. ECHO See "docs\Compilation.txt" for more information. -CALL :SubMsg "ERROR" "Compilation failed!" & EXIT /B +CALL "%COMMON%" :SubMsg "ERROR" "Compilation failed!" & EXIT /B :UnsupportedSwitch @@ -575,68 +523,4 @@ ECHO. ECHO "%~nx0 %*" ECHO. ECHO Run "%~nx0 help" for details about the commandline switches. -CALL :SubMsg "ERROR" "Compilation failed!" & EXIT /B - - -:SubMsg -ECHO. & ECHO ------------------------------ -IF /I "%~1" == "ERROR" ( - CALL :SubColorText "0C" "[%~1]" "%~2" -) ELSE IF /I "%~1" == "INFO" ( - CALL :SubColorText "0A" "[%~1]" "%~2" -) ELSE IF /I "%~1" == "WARNING" ( - CALL :SubColorText "0E" "[%~1]" "%~2" -) -ECHO ------------------------------ & ECHO. -IF /I "%~1" == "ERROR" ( - IF NOT DEFINED SILENT ( - ECHO Press any key to exit... - PAUSE >NUL - ) - ENDLOCAL - EXIT /B 1 -) ELSE ( - EXIT /B -) - - -:SubColorText -IF DEFINED NOCOLORS ECHO %~2 %~3 & EXIT /B -FOR /F "tokens=1,2 delims=#" %%G IN ( - '"PROMPT #$H#$E# & ECHO ON & FOR %%H IN (1) DO REM"') DO ( - SET "DEL=%%G") - "%~2" -FINDSTR /v /a:%1 /R ".18" "%~2" NUL -DEL "%~2" > NUL 2>&1 -REM The space in the following ECHO is intentional -ECHO %~3 -EXIT /B - - -:SubGetDuration -SET START_TIME=%START_TIME: =% -SET END_TIME=%END_TIME: =% - -FOR /F "tokens=1-4 delims=:.," %%G IN ("%START_TIME%") DO ( - SET /A "STARTTIME=(100%%G %% 100) * 360000 + (100%%H %% 100) * 6000 + (100%%I %% 100) * 100 + (100%%J %% 100)" -) - -FOR /F "tokens=1-4 delims=:.," %%G IN ("%END_TIME%") DO ( - SET /A "ENDTIME=(100%%G %% 100) * 360000 + (100%%H %% 100) * 6000 + (100%%I %% 100) * 100 + (100%%J %% 100)" -) - -SET /A DURATION=%ENDTIME%-%STARTTIME% -IF %ENDTIME% LSS %STARTTIME% SET /A "DURATION+=24 * 360000" - -SET /A DURATIONH=%DURATION% / 360000 -SET /A DURATIONM=(%DURATION% - %DURATIONH%*360000) / 6000 -SET /A DURATIONS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000) / 100 -SET /A DURATIONHS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000 - %DURATIONS%*100)*10 - -IF %DURATIONH% EQU 0 (SET DURATIONH=) ELSE (SET DURATIONH=%DURATIONH%h ) -IF %DURATIONM% EQU 0 (SET DURATIONM=) ELSE (SET DURATIONM=%DURATIONM%m ) -IF %DURATIONS% EQU 0 (SET DURATIONS=) ELSE (SET DURATIONS=%DURATIONS%s ) -IF %DURATIONHS% EQU 0 (SET DURATIONHS=) ELSE (SET DURATIONHS=%DURATIONHS%ms) - -SET "DURATION=%DURATIONH%%DURATIONM%%DURATIONS%%DURATIONHS%" -EXIT /B +CALL "%COMMON%" :SubMsg "ERROR" "Compilation failed!" & EXIT /B diff --git a/common.bat b/common.bat new file mode 100644 index 00000000000..cc3a5c75fa8 --- /dev/null +++ b/common.bat @@ -0,0 +1,168 @@ +@ECHO OFF +REM (C) 2015 see Authors.txt +REM +REM This file is part of MPC-HC. +REM +REM MPC-HC is free software; you can redistribute it and/or modify +REM it under the terms of the GNU General Public License as published by +REM the Free Software Foundation; either version 3 of the License, or +REM (at your option) any later version. +REM +REM MPC-HC is distributed in the hope that it will be useful, +REM but WITHOUT ANY WARRANTY; without even the implied warranty of +REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +REM GNU General Public License for more details. +REM +REM You should have received a copy of the GNU General Public License +REM along with this program. If not, see . + + +IF "%1" == "" CALL :SubMsg "ERROR" "%~nx0, No argument was provided." & EXIT /B +PUSHD %~dp0 +CALL %* +POPD +EXIT /B + +:SubPreBuild +IF EXIST "build.user.bat" CALL "build.user.bat" + +IF NOT DEFINED MPCHC_MINGW32 IF DEFINED MINGW32 (SET "MPCHC_MINGW32=%MINGW32%") ELSE (EXIT /B 1) +IF NOT DEFINED MPCHC_MINGW64 IF DEFINED MINGW64 (SET "MPCHC_MINGW64=%MINGW64%") ELSE (EXIT /B 1) +IF NOT DEFINED MPCHC_MSYS IF DEFINED MSYS (SET "MPCHC_MSYS=%MSYS%") ELSE (EXIT /B 1) + +IF NOT EXIST "%MPCHC_MINGW32%" EXIT /B 1 +IF NOT EXIST "%MPCHC_MINGW64%" EXIT /B 1 +IF NOT EXIST "%MPCHC_MSYS%" EXIT /B 1 +EXIT /B + +:SubSetPath +CALL :SubPreBuild +IF %ERRORLEVEL% NEQ 0 EXIT /B 1 +SET "PATH=%MPCHC_MSYS%\usr\bin;%MPCHC_MSYS%\bin;%MPCHC_MINGW32%\bin;%PATH%" +EXIT /B + +:SubDoesExist +FOR %%G IN (%~1) DO (SET FOUND=%%~$PATH:G) +IF NOT DEFINED FOUND EXIT /B 1 +EXIT /B + +:SubGetVersion +REM Get the version +IF NOT EXIST "include\version_rev.h" SET "FORCE_VER_UPDATE=True" +IF /I "%FORCE_VER_UPDATE%" == "True" CALL "update_version.bat" && SET "FORCE_VER_UPDATE=False" + +FOR /F "tokens=2,3" %%A IN ('FINDSTR /R /C:"define MPC_VERSION_[M,P]" "include\version.h"') DO ( + SET "%%A=%%B" +) + +FOR /F "tokens=2,3" %%A IN ('FINDSTR /R /C:"define MPC" "include\version_rev.h"') DO ( + SET "%%A=%%B" +) + +IF "%MPC_VERSION_REV%" NEQ "0" (SET "MPCHC_NIGHTLY=1") ELSE (SET "MPCHC_NIGHTLY=0") + +SET "MPCHC_HASH=%MPCHC_HASH:~4,-2%" +IF DEFINED MPCHC_BRANCH ( + SET "MPCHC_BRANCH=%MPCHC_BRANCH:~4,-2%" +) + +IF "%MPCHC_NIGHTLY%" NEQ "0" ( + SET "MPCHC_VER=%MPC_VERSION_MAJOR%.%MPC_VERSION_MINOR%.%MPC_VERSION_PATCH%.%MPC_VERSION_REV%" +) ELSE ( + SET "MPCHC_VER=%MPC_VERSION_MAJOR%.%MPC_VERSION_MINOR%.%MPC_VERSION_PATCH%" +) +EXIT /B + +:SubDetectCurl +IF EXIST curl.exe (SET "CURL=curl.exe" & EXIT /B) +IF EXIST "%CURL_PATH%\curl.exe" (SET "CURL=%CURL_PATH%\curl.exe" & EXIT /B) +IF EXIST "%CURL_PATH%\bin\curl.exe" (SET "CURL=%CURL_PATH%\bin\curl.exe" & EXIT /B) +FOR %%G IN (curl.exe) DO (SET "CURL_PATH=%%~$PATH:G") +IF EXIST "%CURL_PATH%" (SET "CURL=%CURL_PATH%" & EXIT /B) +EXIT /B + +:SubDetectTar +IF EXIST tar.exe (SET "TAR=tar.exe" & EXIT /B) +IF EXIST "%TAR_PATH%\tar.exe" (SET "TAR=%TAR_PATH%\tar.exe" & EXIT /B) +FOR %%G IN (tar.exe) DO (SET "TAR_PATH=%%~$PATH:G") +IF EXIST "%TAR_PATH%" (SET "TAR=%TAR_PATH%" & EXIT /B) +EXIT /B + +:SubDetectInnoSetup +FOR /F "tokens=5*" %%A IN ( + 'REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Inno Setup 5_is1" /v "Inno Setup: App Path" 2^>NUL ^| FIND "REG_SZ" ^|^| + REG QUERY "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Inno Setup 5_is1" /v "Inno Setup: App Path" 2^>NUL ^| FIND "REG_SZ"') DO SET "InnoSetupPath=%%B\ISCC.exe" +EXIT /B + +:SubDetectSevenzipPath +FOR %%G IN (7z.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") +IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) + +FOR %%G IN (7za.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") +IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) + +FOR /F "tokens=2*" %%A IN ( + 'REG QUERY "HKLM\SOFTWARE\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ" ^|^| + REG QUERY "HKLM\SOFTWARE\Wow6432Node\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ"') DO SET "SEVENZIP=%%B\7z.exe" +EXIT /B + +:SubMsg +ECHO. & ECHO ------------------------------ +IF /I "%~1" == "ERROR" ( + CALL :SubColorText "0C" "[%~1]" "%~2" +) ELSE IF /I "%~1" == "INFO" ( + CALL :SubColorText "0A" "[%~1]" "%~2" +) ELSE IF /I "%~1" == "WARNING" ( + CALL :SubColorText "0E" "[%~1]" "%~2" +) +ECHO ------------------------------ & ECHO. +IF /I "%~1" == "ERROR" ( + IF NOT DEFINED SILENT ( + ECHO Press any key to exit... + PAUSE >NUL + ) + ENDLOCAL + EXIT /B 1 +) ELSE ( + EXIT /B +) + +:SubColorText +IF DEFINED NOCOLORS ECHO %~2 %~3 & EXIT /B +FOR /F "tokens=1,2 delims=#" %%G IN ( + '"PROMPT #$H#$E# & ECHO ON & FOR %%H IN (1) DO REM"') DO ( + SET "DEL=%%G") + "%~2" +FINDSTR /v /a:%1 /R ".18" "%~2" NUL +DEL "%~2" > NUL 2>&1 +REM The space in the following ECHO is intentional +ECHO %~3 +EXIT /B + +:SubGetDuration +SET START_TIME=%START_TIME: =% +SET END_TIME=%END_TIME: =% + +FOR /F "tokens=1-4 delims=:.," %%G IN ("%START_TIME%") DO ( + SET /A "STARTTIME=(100%%G %% 100) * 360000 + (100%%H %% 100) * 6000 + (100%%I %% 100) * 100 + (100%%J %% 100)" +) + +FOR /F "tokens=1-4 delims=:.," %%G IN ("%END_TIME%") DO ( + SET /A "ENDTIME=(100%%G %% 100) * 360000 + (100%%H %% 100) * 6000 + (100%%I %% 100) * 100 + (100%%J %% 100)" +) + +SET /A DURATION=%ENDTIME%-%STARTTIME% +IF %ENDTIME% LSS %STARTTIME% SET /A "DURATION+=24 * 360000" + +SET /A DURATIONH=%DURATION% / 360000 +SET /A DURATIONM=(%DURATION% - %DURATIONH%*360000) / 6000 +SET /A DURATIONS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000) / 100 +SET /A DURATIONHS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000 - %DURATIONS%*100)*10 + +IF %DURATIONH% EQU 0 (SET DURATIONH=) ELSE (SET DURATIONH=%DURATIONH%h ) +IF %DURATIONM% EQU 0 (SET DURATIONM=) ELSE (SET DURATIONM=%DURATIONM%m ) +IF %DURATIONS% EQU 0 (SET DURATIONS=) ELSE (SET DURATIONS=%DURATIONS%s ) +IF %DURATIONHS% EQU 0 (SET DURATIONHS=) ELSE (SET DURATIONHS=%DURATIONHS%ms) + +SET "DURATION=%DURATIONH%%DURATIONM%%DURATIONS%%DURATIONHS%" +EXIT /B diff --git a/contrib/astyle.ini b/contrib/astyle.ini index 95e19ae95ca..5d95a5cf983 100644 --- a/contrib/astyle.ini +++ b/contrib/astyle.ini @@ -35,17 +35,17 @@ # directories --exclude=bin +--exclude=cov-int --exclude=thirdparty # common files --exclude=resource.h # include dir ---exclude=atl --exclude=avisynth --exclude=dx --exclude=lglcd ---exclude=qt --exclude=realmedia --exclude=vd2 --exclude=winddk ---exclude=inttypes.h --exclude=libdivide.h --exclude=MediaInfoDLL.h ---exclude=mvrInterfaces.h --exclude=SubRenderIntf.h --exclude=unrar.h ---exclude=Utf8.h --exclude=version_rev.h +--exclude=avisynth --exclude=dx --exclude=lglcd --exclude=qt +--exclude=realmedia --exclude=vd2 --exclude=winddk --exclude=libdivide.h +--exclude=MediaInfoDLL.h --exclude=mvrInterfaces.h --exclude=SubRenderIntf.h +--exclude=unrar.h --exclude=Utf8.h --exclude=version_rev.h # src/DeCSS --exclude=CSSauth.cpp --exclude=CSSauth.h --exclude=CSSscramble.cpp --exclude=CSSscramble.h @@ -55,7 +55,7 @@ --exclude=deinterlace.cpp --exclude=vd_asm.cpp --exclude=vd_asm.h --exclude=vd.cpp --exclude=vd.h # src/mpc-hc ---exclude=LineNumberEdit.cpp --exclude=LineNumberEdit.h --exclude=Struct.h +--exclude=Struct.h # src/MPCTestAPI --exclude=HScrollListBox.cpp --exclude=HScrollListBox.h diff --git a/contrib/coverity.bat b/contrib/coverity.bat index 9d274189b37..3dcd21c61a4 100755 --- a/contrib/coverity.bat +++ b/contrib/coverity.bat @@ -18,31 +18,22 @@ REM along with this program. If not, see . SETLOCAL +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" -PUSHD %~dp0 +SET "COMMON=%FILE_DIR%..\common.bat" IF EXIST "..\build.user.bat" CALL "..\build.user.bat" -IF NOT DEFINED COV_PATH SET "COV_PATH=H:\progs\thirdparty\cov-analysis-win64" -IF DEFINED COV_PATH IF NOT EXIST "%COV_PATH%" ( - ECHO. - ECHO ERROR: Coverity not found in "%COV_PATH%" - GOTO End -) - - -CALL "%VS120COMNTOOLS%\vsvars32.bat" -IF %ERRORLEVEL% NEQ 0 ( - ECHO vsvars32.bat call failed. - GOTO End -) +IF NOT EXIST "%COV_PATH%" (CALL "%COMMON%" :SubMsg "ERROR" "Coverity not found in '%COV_PATH%'" & EXIT /B) :Cleanup IF EXIST "cov-int" RD /q /s "cov-int" -IF EXIST "MPC-HC.lzma" DEL "MPC-HC.lzma" -IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" -IF EXIST "MPC-HC.tgz" DEL "MPC-HC.tgz" +IF EXIST "MPC-HC.tar.xz" DEL "MPC-HC.tar.xz" +IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" +IF EXIST "MPC-HC.tgz" DEL "MPC-HC.tgz" +IF EXIST "cov_upload.log" DEL "cov_upload.log" :Main @@ -54,58 +45,58 @@ CALL "..\build.bat" clean Api Both Release silent "%COV_PATH%\bin\cov-build.exe" --dir cov-int "..\build.bat" Build Filters Both Release silent "%COV_PATH%\bin\cov-build.exe" --dir cov-int "..\build.bat" Build IconLib Both Release silent "%COV_PATH%\bin\cov-build.exe" --dir cov-int "..\build.bat" Build Api Both Release silent +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "ERROR" "Build failed." & EXIT /B) :tar -tar --version 1>&2 2>NUL || (ECHO. & ECHO ERROR: tar not found & GOTO SevenZip) -tar caf "MPC-HC.lzma" "cov-int" +CALL "%COMMON%" :SubDetectTar +IF NOT EXIST "%TAR%" (CALL "%COMMON%" :SubMsg "WARNING" "tar not found. Trying 7-zip..." & GOTO SevenZip) + +SET "FILE_NAME=MPC-HC.tar.xz" +SET "XZ_OPT=-9e" +REM You can add -T{N} where {N} stands for count of threads to use. 0 will use all available threads. +REM Pay attention to memory usage, -9eT4 uses over 5GB of RAM, but -9eT1 uses 700MB in my test. +REM Lowering compression preset will also decrease memory usage significantly. + +%TAR% cJf %FILE_NAME% cov-int +IF %ERRORLEVEL% NEQ 0 ( + REM Fallback for 32-bit version of xz. + CALL "%COMMON%" :SubMsg "WARNING" "Fallback for 32-bit xz. Trying again with 'XZ_OPT=-7e'..." + SET "XZ_OPT=-7e" + %TAR% cJf %FILE_NAME% cov-int +) + +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "WARNING" "tar failed. Trying 7-zip..." & GOTO SevenZip) GOTO Upload :SevenZip -CALL :SubDetectSevenzipPath - -rem Coverity is totally bogus with lzma... -rem And since I cannot replicate the arguments with 7-Zip, just use tar/gzip. -IF EXIST "%SEVENZIP%" ( - "%SEVENZIP%" a -ttar "MPC-HC.tar" "cov-int" - "%SEVENZIP%" a -tgzip "MPC-HC.tgz" "MPC-HC.tar" - IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" - GOTO Upload -) +CALL "%COMMON%" :SubDetectSevenzipPath +IF NOT EXIST "%SEVENZIP%" (CALL "%COMMON%" :SubMsg "ERROR" "7-zip not found." & EXIT /B) + +SET "FILE_NAME=MPC-HC.tgz" +REM 7-Zip doesn't support tarball compliant LZMA2 archives, just use tar/gzip. +"%SEVENZIP%" a -ttar "MPC-HC.tar" "cov-int" +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "ERROR" "7-zip failed." & EXIT /B) +"%SEVENZIP%" a -tgzip "%FILE_NAME%" "MPC-HC.tar" +IF %ERRORLEVEL% NEQ 0 (CALL "%COMMON%" :SubMsg "ERROR" "7-zip failed." & EXIT /B) +IF EXIST "MPC-HC.tar" DEL "MPC-HC.tar" +GOTO Upload :Upload CALL "..\build.bat" GetVersion -CALL :SubDetectCurl -%CURL% --form project=MPC-HC --form token=%COV_TOKEN% --form email=%COV_EMAIL% --form file=@MPC-HC.lzma --form version=%MPCHC_HASH% http://scan5.coverity.com/cgi-bin/upload.py +CALL "%COMMON%" :SubDetectCurl +IF NOT EXIST "%CURL%" (CALL "%COMMON%" :SubMsg "WARNING" "curl not found. Upload aborted." & GOTO End) +IF NOT DEFINED COV_TOKEN (CALL "%COMMON%" :SubMsg "WARNING" "COV_TOKEN not defined. Upload aborted." & GOTO End) +IF NOT DEFINED COV_EMAIL (CALL "%COMMON%" :SubMsg "WARNING" "COV_EMAIL not defined. Upload aborted." & GOTO End) +%CURL% --form token=%COV_TOKEN% --form email=%COV_EMAIL% --form file=@%FILE_NAME% --form version=%MPCHC_HASH% https://scan.coverity.com/builds?project=MPC-HC -o cov_upload.log GOTO End -:SubDetectSevenzipPath -FOR %%G IN (7z.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") -IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) - -FOR %%G IN (7za.exe) DO (SET "SEVENZIP_PATH=%%~$PATH:G") -IF EXIST "%SEVENZIP_PATH%" (SET "SEVENZIP=%SEVENZIP_PATH%" & EXIT /B) - -FOR /F "tokens=2*" %%A IN ( - 'REG QUERY "HKLM\SOFTWARE\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ" ^|^| - REG QUERY "HKLM\SOFTWARE\Wow6432Node\7-Zip" /v "Path" 2^>NUL ^| FIND "REG_SZ"') DO SET "SEVENZIP=%%B\7z.exe" -EXIT /B - - -:SubDetectCurl -IF EXIST curl.exe (SET "CURL=curl.exe" & EXIT /B) -IF EXIST "%CURL_PATH%\curl.exe" (SET "CURL=%CURL_PATH%\curl.exe" & EXIT /B) -FOR %%G IN (curl.exe) DO (SET "CURL_PATH=%%~$PATH:G") -IF EXIST "%CURL_PATH%" (SET "CURL=%CURL_PATH%" & EXIT /B) -EXIT /B - - :End POPD -ECHO. & ECHO Press any key to close this window... +CALL "%COMMON%" :SubMsg "INFO" "Done. Press any key to exit..." PAUSE >NUL ENDLOCAL EXIT /B diff --git a/contrib/run_astyle.bat b/contrib/run_astyle.bat index 7e75e8b8362..e90f69bfb8a 100755 --- a/contrib/run_astyle.bat +++ b/contrib/run_astyle.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2012-2014 see Authors.txt +REM (C) 2012-2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -18,8 +18,8 @@ REM along with this program. If not, see . SETLOCAL - -PUSHD %~dp0 +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" SET "AStyleVerReq=2.05.1" astyle --version 2>NUL || (ECHO. & ECHO ERROR: AStyle not found & GOTO End) @@ -27,7 +27,7 @@ CALL :SubCheckVer || GOTO End :Start -TITLE Running astyle using %~dp0astyle.ini +TITLE Running astyle using %FILE_DIR%astyle.ini IF "%~1" == "" ( astyle -r --options=astyle.ini ..\*.h ..\*.cpp diff --git a/contrib/sign.bat b/contrib/sign.bat index d5711b41f86..a232875daac 100755 --- a/contrib/sign.bat +++ b/contrib/sign.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2013 see Authors.txt +REM (C) 2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -18,6 +18,7 @@ REM along with this program. If not, see . SETLOCAL +SET "FILE_DIR=%~dp0" IF "%~1" == "" ( ECHO %~nx0: No input specified! @@ -31,14 +32,14 @@ IF NOT DEFINED VS120COMNTOOLS ( GOTO END ) -IF NOT EXIST "%~dp0..\signinfo.txt" ( - ECHO %~nx0: %~dp0..\signinfo.txt is not present! +IF NOT EXIST "%FILE_DIR%..\signinfo.txt" ( + ECHO %~nx0: %FILE_DIR%..\signinfo.txt is not present! SET SIGN_ERROR=True GOTO END ) SET SIGN_CMD= -SET /P SIGN_CMD=<%~dp0..\signinfo.txt +SET /P SIGN_CMD=<"%FILE_DIR%..\signinfo.txt" TITLE Signing "%~1"... ECHO. & ECHO Signing "%~1"... @@ -50,7 +51,7 @@ IF %ERRORLEVEL% NEQ 0 ( ) REM Repeat n times when signing fails -SET REPEAT=3 +SET REPEAT=5 SET TRY=0 :SIGN diff --git a/distrib/Languages/Bengali.islu b/distrib/Languages/Bengali.islu index 58f84daf5f7..082a84dd22c 100644 --- a/distrib/Languages/Bengali.islu +++ b/distrib/Languages/Bengali.islu @@ -1,5 +1,5 @@ -; *** Inno Setup version 5.5.3+ Bangla messages *** -;; Translated by Mehedi Shanto [ mehediDshanto@gmail.com ] +; *** Inno Setup version 5.5.3+ Bengali messages *** +; Translated by Mehedi Shanto [ mehediDshanto@gmail.com ] ; To download user-contributed translations of this file, go to: ; http://www.jrsoftware.org/files/istrans/ ; @@ -74,7 +74,7 @@ AboutSetupMenuItem=সেটআপ বিষয়ক...(&A) AboutSetupTitle=সেটআপ বিষয়ক AboutSetupMessage=%1এর সংস্করণ %2%n%3%n%n%1 হোম পেইজ:%n%4 AboutSetupNote= -TranslatorNote=বাংলা অনুবাদ সম্পাদিত করেছে মেহেদী শান্ত +TranslatorNote=বাংলা অনুবাদটি সম্পাদনা করেছে মেহেদী শান্ত ; *** Buttons ButtonBack=< পূর্ববর্তী(&B) @@ -149,7 +149,7 @@ InvalidDrive=আপনি যে ড্রাইভ বা UNC shareটি ন DiskSpaceWarningTitle=নির্ধারিত ড্রাইভে পর্যাপ্ত জায়গা নেই DiskSpaceWarning=ইনস্টল করতে সেটআপের কমপক্ষে %1 KB খালি জায়গা থাকতে হবে, কিন্তু নির্ধারিত ড্রাইভে রয়েছে মাত্র %2 KB।%n%nআপনি কি যাই হোক প্রক্রিয়াটি চলমান রাখতে চান? DirNameTooLong=নির্ধারিত ফোল্ডারটির নাম অথবা অবস্থান অত্যন্ত দীর্ঘ। -InvalidDirName=নির্ধারিত ফোল্ডারের নামটি সঠিক নয়। +InvalidDirName=নির্ধারিত ফোল্ডারের নামটি অগ্রহণযোগ্য। BadDirName32=ফোল্ডারের নামে নিম্নোক্ত ক্যারেক্টারসমূহ ব্যবহার করা যাবে না:%n%n%1 DirExistsTitle=ফোল্ডারটি বিদ্যমান রয়েছে DirExists=নিম্নোক্ত ফোল্ডার:%n%n%1%n%nইতিমধ্যে বিদ্যমান রয়েছে। আপনি কি যাই হোক এই ফোল্ডারটিতেই ইনস্টল করতে চান? @@ -163,7 +163,7 @@ SelectComponentsLabel2=যে সকল উপাদানসমূহ আপন FullInstallation=সম্পূর্ণ ইনস্টল প্রক্রিয়া ; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language) CompactInstallation=ঘনবিন্যস্ত ইনস্টল প্রক্রিয়া -CustomInstallation=নির্ধারণযোগ্য ইনস্টল প্রক্রিয়া +CustomInstallation=ব্যক্তি-নির্ধারিত ইনস্টল প্রক্রিয়া NoUninstallWarningTitle=উপাদানসমূহ বিদ্যমান রয়েছে NoUninstallWarning=সেটআপ সনাক্ত করেছে যে নিম্নোক্ত উপাদানসমূহ ইতিমধ্যে আপনার কম্পিউটারে ইনস্টল করা রয়েছে:%n%n%1%n%nএই উপাদানসমূহ অনির্ধারণ করে দিলে তা আনইনস্টল হবে না।%n%nআপনি কি যাই হোক প্রক্রিয়াটি চলমান রাখতে চান? ComponentSize1=%1 KB @@ -182,7 +182,7 @@ SelectStartMenuFolderLabel3=সেটআপ প্রোগ্রামটির SelectStartMenuFolderBrowseLabel=প্রক্রিয়াটি চলমান রাখতে, "পরবর্তী" ক্লিক করুন। ভিন্ন ফোল্ডার নির্ধারণ করতে চাইলে "ব্রাউজ করি" ক্লিক করুন। MustEnterGroupName=আপনাকে অবশ্যই একটি ফোল্ডারের নাম প্রবেশ করতে হবে। GroupNameTooLong=নির্ধারিত ফোল্ডারটির নাম অথবা অবস্থান অত্যন্ত দীর্ঘ। -InvalidGroupName=নির্ধারিত ফোল্ডারের নামটি সঠিক নয়। +InvalidGroupName=নির্ধারিত ফোল্ডারের নামটি অগ্রহণযোগ্য। BadGroupName=ফোল্ডারের নামে নিম্নোক্ত ক্যারেক্টারসমূহ ব্যবহার করা যাবে না:%n%n%1 NoProgramGroupCheck2=স্টার্ট মেন্যুতে ফোল্ডার তৈরি করা হবে না(&D) diff --git a/distrib/custom_messages_translated.iss b/distrib/custom_messages_translated.iss index 49c036d58af..3d17fd2b532 100644 --- a/distrib/custom_messages_translated.iss +++ b/distrib/custom_messages_translated.iss @@ -35,16 +35,20 @@ be.WinVersionTooLowError=[name] патрабуецца Windows XP Service Pack 3 ; Bengali bn.WelcomeLabel2=এর মাধ্যমে আপনার কম্পিউটারে [name] ইনস্টল করা হবে। %n%nপ্রক্রিয়াটি চালিয়ে যাওয়ার পূর্বে অন্যান্য সকল অ্যাপ্লিকেশন বন্ধ করার পরামর্শ দেয়া যাচ্ছে। -bn.WinVersionTooLowError=[name] চালানোর জন্য Windows XP Service Pack 3 অথবা ঊর্ধ্বতন সংস্করণ প্রয়োজন। +bn.WinVersionTooLowError=[NAME] চালানোর জন্য Windows XP Service Pack 3 অথবা ঊর্ধ্বতন সংস্করণ প্রয়োজন। ; Catalan ca.WelcomeLabel2=Aquest auxiliar instal·larà el [name] al vostre ordinador%n%nEs recomana tancar totes les aplicacions abans de continuar. -ca.WinVersionTooLowError=[name] requereix Windows XP Service Pack 3 o superior per funcionar. +ca.WinVersionTooLowError=[name] cal Windows XP Service Pack 3 o superior per que funcioni. ; Czech cs.WelcomeLabel2=Produkt [name] bude nainstalován na Váš počítač.%n%nDříve než budete pokračovat, doporučuje se ukončit veškeré spuštěné aplikace. cs.WinVersionTooLowError=[name] vyžaduje Windows XP Service Pack 3 nebo novější. +; Danish +da.WelcomeLabel2=Dette vil installere [name] på din computer.%n%nDet anbefales, at du lukker alle andre programmer, inden du fortsætter. +da.WinVersionTooLowError=[name] kræver Windows XP Service Pack 3 eller nyere for at køre. + ; German (Neutral) de.WelcomeLabel2=Dieses Programm installiert [name] auf Ihrem Computer.%n%nEs wird empfohlen, alle laufenden Programme zu beenden, bevor Sie mit der Installation fortfahren. de.WinVersionTooLowError=[name] benötigt Windows XP Service Pack 3 oder höher. @@ -74,7 +78,7 @@ fr.WelcomeLabel2=Vous allez installer [name] sur votre ordinateur.%n%nIl est rec fr.WinVersionTooLowError=[name] nécessite Windows XP Service Pack 3 ou plus récent pour fonctionner. ; Galician -gl.WelcomeLabel2=Isto intalará [name] no teu ordenador.%n%nRecomendase que peches todas as aplicacións antes de seguir. +gl.WelcomeLabel2=Isto instalará [name] no teu ordenador.%n%nRecoméndase que peches todas as aplicacións antes de seguir. gl.WinVersionTooLowError=[name] require Windows XP Service Pack 3 ou posterior. ; Hebrew (Israel) @@ -99,7 +103,7 @@ it.WinVersionTooLowError=[name] richiede Windows XP Service Pack 3 o successivo ; Japanese ja.WelcomeLabel2=このプログラムはあなたのコンピュータ上に [name] をインストールします。%n%nセットアップを続行する前に他のすべてのアプリケーションを閉じることが推奨されます。 -ja.WinVersionTooLowError=[name] を実行する為には Windows XP Service Pack 3 以降が必要です。 +ja.WinVersionTooLowError=[name] を実行するためには Windows XP Service Pack 3 以降が必要です。 ; Korean ko.WelcomeLabel2=이것은 [name] 를(을) 당신의 컴퓨터에 설치합니다.%n%n설치를 계속하기 전에 다른 모든 프로그램을 종료하는 것을 권장합니다. @@ -122,7 +126,7 @@ pt_BR.WelcomeLabel2=Isto instalará o [name] no seu computador.%n%nÉ recomendá pt_BR.WinVersionTooLowError=[name] requer o Windows XP Service Pack 3 ou superior para ser executado. ; Romanian -ro.WelcomeLabel2=Se va instala [name] pe calculatorul dumneavoastră.%n%nEste recomandat să închideţi toate celelalte aplicaţii înainte de a continua. +ro.WelcomeLabel2=Se va instala [name] pe calculatorul dumneavoastră.%n%nEste recomandat să închideţi toate celelalte aplicații înainte de a continua. ro.WinVersionTooLowError=[name] necesită Windows XP Service Pack 3 sau mai nou pentru a rula. ; Russian @@ -220,7 +224,7 @@ bn.langid=00001093 bn.comp_mpciconlib=আইকন লাইব্রেরি bn.comp_mpcresources=অনুবাদসমূহ bn.msg_DeleteSettings=আপনি কি MPC-HCএর সেটিংসমূহও মুছে ফেলতে চান?%n%nআপনার যদি পুনরায় MPC-HC ইনস্টল করার পরিকল্পনা থাকে, তাহলে এসব মুছে ফেলতে হবে না। -bn.msg_SetupIsRunningWarning=MPC-HCএর সেটআপ ইতিমধ্যে চলমান রয়েছে! +bn.msg_SetupIsRunningWarning=MPC-HCএর সেটআপ প্রক্রিয়া ইতিমধ্যে চলমান রয়েছে! #if defined(sse_required) bn.msg_simd_sse=MPC-HCএর এই নির্মাণটির জন্য SSE এক্সটেনশন সমর্থন করে এমন একটি CPUর প্রয়োজন।%n%nআপনার CPUর সেই কর্মক্ষমতা নেই। #elif defined(sse2_required) @@ -231,8 +235,8 @@ bn.tsk_AllUsers=সকল ব্যবহারকারীর জন্য bn.tsk_CurrentUser=শুধুমাত্র বর্তমান ব্যবহারকারীর জন্য bn.tsk_Other=অন্যান্য কাজসমূহ: bn.tsk_ResetSettings=সেটিংসমূহ পুনর্বিন্যাস -bn.types_DefaultInstallation=নির্ধারিত ইনস্টল প্রক্রিয়া -bn.types_CustomInstallation=নির্ধারণযোগ্য ইনস্টল প্রক্রিয়া +bn.types_DefaultInstallation=ডিফল্ট ইনস্টল প্রক্রিয়া +bn.types_CustomInstallation=ব্যক্তি-নির্ধারিত ইনস্টল প্রক্রিয়া bn.ViewChangelog=পরিবর্তনতালিকা দেখুন ; Catalan @@ -242,15 +246,15 @@ ca.comp_mpcresources=Traduccions ca.msg_DeleteSettings=Voleu suprimir les preferències del MPC-HC?%n%nSi planegeu instal·lar-ho un altre cop no cal eliminar-les. ca.msg_SetupIsRunningWarning=La instal·lació del MPC-HC ja s’està executant. #if defined(sse_required) -ca.msg_simd_sse=Aquesta versió de MPC-HC requereix una CPU amb suport d'extensions SSE.%n%nLa teva CPU no cumpleix aquestes característiques. +ca.msg_simd_sse=Aquesta versió de MPC-HC necessita una CPU amb suport d'extensions SSE.%n%nLa teva CPU no cumpleix aquestes característiques. #elif defined(sse2_required) ca.msg_simd_sse2=Aquesta versió de MPC-HC requereix una CPU amb suport d'extensions SSE2.%n%nLa teva CPU no cumpleix aquestes característiques. #endif -ca.run_DownloadToolbarImages=Visita la nostra pàgina de Wiki per descarregar imatges per la barra d'eines -ca.tsk_AllUsers=Per tots els usuaris +ca.run_DownloadToolbarImages=Visita la nostra pàgina del Wiki per descarregar imatges per a la barra d'eines +ca.tsk_AllUsers=Per a tots els usuaris ca.tsk_CurrentUser=Només per l'usuari actual ca.tsk_Other=Altres tasques: -ca.tsk_ResetSettings=Reiniciar preferències +ca.tsk_ResetSettings=Reiniciar les preferències ca.types_DefaultInstallation=Instal·lació per defecte ca.types_CustomInstallation=Instal·lació personalitzada ca.ViewChangelog=Veure registre de canvis @@ -275,6 +279,26 @@ cs.types_DefaultInstallation=Standardní instalace cs.types_CustomInstallation=Volitelná instalace cs.ViewChangelog=Zobrazit seznam změn +; Danish +da.langid=00001030 +da.comp_mpciconlib=Ikon-bibliotek +da.comp_mpcresources=Oversættelser +da.msg_DeleteSettings=Vil du også slette MPC-HC indstillinger?%n%nHvis du har tænkt dig at installere MPC-HC igen, så behøves du ikke slette dem. +da.msg_SetupIsRunningWarning=MPC-HC installation kører allerede! +#if defined(sse_required) +da.msg_simd_sse=Denne version af MPC-HC kræver en CPU der understøtter SSE-udvidelsen.%n%nDin CPU understøtter det ikke. +#elif defined(sse2_required) +da.msg_simd_sse2=Denne version af MPC-HC kræver en CPU der understøtter SSE2-udvidelsen.%n%nDin CPU understøtter det ikke. +#endif +da.run_DownloadToolbarImages=Besøg vores wiki-side for at hente værktøjslinjebilleder +da.tsk_AllUsers=For alle brugere +da.tsk_CurrentUser=Kun for denne bruger +da.tsk_Other=Andre opgaver: +da.tsk_ResetSettings=Nulstil indstillinger +da.types_DefaultInstallation=Standardinstallation +da.types_CustomInstallation=Brugerdefineret installation +da.ViewChangelog=Vis ændringslog + ; German (Neutral) de.langid=00001031 de.comp_mpciconlib=Dateisymbole für verknüpfte Mediendateien @@ -419,12 +443,12 @@ fr.ViewChangelog=Voir la liste des changements gl.langid=00001110 gl.comp_mpciconlib=Biblioteca de iconas gl.comp_mpcresources=Traducións -gl.msg_DeleteSettings=Tamén queres eliminar os axustes de MPC-HC?%n%nSe te plantexas instalar MPC-HC outra vez entón non o tes que eliminar. -gl.msg_SetupIsRunningWarning=O instalador de MPC-HC xa está correndo! +gl.msg_DeleteSettings=Ques eliminar tamén os axustes de MPC-HC?%n%nSe pensas instalar MPC-HC de novo entón non o tes que eliminalos. +gl.msg_SetupIsRunningWarning=O instalador de MPC-HC xa está a ser executado! #if defined(sse_required) -gl.msg_simd_sse=Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE .%n%nO seu CPU non ten estas capacidades. +gl.msg_simd_sse=Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE .%n%nA súa CPU non ten estas capacidades. #elif defined(sse2_required) -gl.msg_simd_sse2=Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE2 .%n%nO seu CPU non ten estas capacidades. +gl.msg_simd_sse2=Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE2 .%n%nA súa CPU non ten estas capacidades. #endif gl.run_DownloadToolbarImages=Visite a nosa Wiki para descargar imaxes da barra de ferramentas gl.tsk_AllUsers=Para todos os usuarios @@ -471,7 +495,7 @@ hr.tsk_AllUsers=Za sve korisnike hr.tsk_CurrentUser=Samo za trenutnog korisnika hr.tsk_Other=Ostali zadaci: hr.tsk_ResetSettings=Vrati na početne postavke programa -hr.types_DefaultInstallation=Standarnda instalacija +hr.types_DefaultInstallation=Standardna instalacija hr.types_CustomInstallation=Prilagođena instalacija hr.ViewChangelog=Pogledaj popis promjena diff --git a/distrib/mpc-hc_setup.iss b/distrib/mpc-hc_setup.iss index e222d124362..4dbecc41ad0 100644 --- a/distrib/mpc-hc_setup.iss +++ b/distrib/mpc-hc_setup.iss @@ -80,6 +80,8 @@ #define bindir = bindir + " Lite" #endif +#define crashreporter_dir = AddBackslash(bindir) + "CrashReporter" + #ifnexist AddBackslash(bindir) + mpchc_exe #error Compile MPC-HC first #endif @@ -163,6 +165,7 @@ Name: be; MessagesFile: Languages\Belarusian.isl Name: bn; MessagesFile: Languages\Bengali.islu Name: ca; MessagesFile: compiler:Languages\Catalan.isl Name: cs; MessagesFile: compiler:Languages\Czech.isl +Name: da; MessagesFile: compiler:Languages\Danish.isl Name: de; MessagesFile: compiler:Languages\German.isl Name: el; MessagesFile: compiler:Languages\Greek.isl Name: en_GB; MessagesFile: Languages\EnglishBritish.isl @@ -245,6 +248,11 @@ Source: ..\docs\Authors.txt; DestDir: {app}; Components: main Source: ..\docs\Changelog.txt; DestDir: {app}; Components: main; Flags: ignoreversion Source: ..\docs\Readme.txt; DestDir: {app}; Components: main; Flags: ignoreversion Source: ..\src\mpc-hc\res\shaders\external\*.hlsl; DestDir: {app}\Shaders; Components: main; Flags: ignoreversion +#if DirExists(crashreporter_dir) +Source: {#bindir}\CrashReporter\crashrpt.dll; DestDir: {app}\CrashReporter; Components: main; Flags: ignoreversion +Source: {#bindir}\CrashReporter\dbghelp.dll; DestDir: {app}\CrashReporter; Components: main; Flags: ignoreversion +Source: {#bindir}\CrashReporter\sendrpt.exe; DestDir: {app}\CrashReporter; Components: main; Flags: ignoreversion +#endif [Icons] @@ -447,6 +455,12 @@ begin end; +procedure InitializeWizard(); +begin + WizardForm.LicenseAcceptedRadio.Checked := True; +end; + + procedure CurStepChanged(CurStep: TSetupStep); var iLanguage: Integer; diff --git a/docs/Changelog.txt b/docs/Changelog.txt index d80e2a05697..1164d81aaba 100644 --- a/docs/Changelog.txt +++ b/docs/Changelog.txt @@ -8,85 +8,82 @@ Legend: ! Fixed -1.7.8 - 25 January 2015 -======================= -+ DVB: Show current event time in the status bar -+ DVB: Add context menu to the navigation dialog -+ Add Finnish and Serbian translations -+ Ticket #907, Enable "Properties" dialog for DVD and DVB playback modes -+ Ticket #1091, Support MediaInfo analyse for DVD -+ Ticket #1494, Add tooltip in the "Organize Favorites" dialog with path of the item -+ Ticket #2438, Keep history of recently opened DVD directories -+ Ticket #3647, Internal LAV Video Decoder: Support Cinepack and QPEG in low-merit mode -+ Ticket #4941, Support embedded cover-art -* DVB: Improve channel switching speed -* The "Properties" dialog should open faster being that the MediaInfo analysis is now done asynchronously -* Make double-click tolerance consistent with system settings -* Ticket #4978, Execute "once" after playback event when playlist ends, regardless of the loop count -* Ticket #4991, Text subtitles: "opaque box" outlines will now always be drawn even if the border width is set to 0. - The size of the text is independent of the border width so there is no reason not to draw that part -* Ticket #5056, Position the text subtitles relative to the video frame by default -* Updated MediaInfoLib to v0.7.71 -* Updated ZenLib to v0.4.29 r498 -* Updated SoundTouch to v1.8.0 r201 -* Updated Little CMS to v2.7 (git 8174681) -* Updated Unrar to v5.2.3 -* Updated LAV Filters to v0.63.0.52: - - LAV Video Decoder: Fix a crash when the video height is not a multiple of 2 - - Ticket #3144, LAV Splitter: Support librtmp parameters for RTMP streams - - Ticket #4407, LAV Video Decoder: Fix a rare crash when checking the compatibility with hardware decoding - - Ticket #5030, LAV Video Decoder: The video timestamps could be wrong in some cases when using H264 DXVA decoding. - This could lead to synchronization issue with the audio - - Ticket #5047, LAV Splitter: Fix missing tracks in (m2)ts files - - Ticket #5116, LAV Video Decoder: Fix aspect ratio for some MPEG2 streams -* Updated Arabic, Armenian, Basque, Belarusian, Bengali, British English, Catalan, Chinese (Simplified and Traditional), - Croatian, Czech, Dutch, French, Galician, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Malay, - Polish, Portuguese (Brazil), Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Tatar, Thai, Turkish, - Ukrainian and Vietnamese translations -! XySubFilter: Always preserve subtitle frame aspect ratio -! Properties dialog: The creation time did not account for the local timezone -! Properties dialog: More consistent UI for the "Resources" tab -! PGSSub: Subtitles could have opaque background instead of transparent one -! Audio CDROMs with extra content could not be played -! Ticket #2420, Improve the reliability of the DirectShow hooks -! Ticket #2626, Fix some rare crashes when another application prevents MPC-HC from rendering the video -! Ticket #2953, DVB: Fix crash when closing window right after switching channel -! Ticket #3324, Some applications could interfere with Skype API and prevent MPC-HC from running - when "Display "Now Playing" information in Skype's mood message" was enabled -! Ticket #3666, DVB: Don't clear the channel list on saving new scan result -! Ticket #3742, Sync Renderer: Fix rare crashes when using Sync Renderer with "synchronize video to display" option enabled -! Ticket #3864, Video renderers: Fix a possible crash caused by a race condition -! Ticket #3991, Video renderers: Fix a possible crash when the D3D device cannot be created -! Ticket #4029, Fix a rare crash when right-clicking on the playlist panel -! Ticket #4436, DVB: Improve compatibility with certain tuners -! Ticket #4551, Fix a possible crash when saving the current frame -! Ticket #4721, Audio CD playback could hang and stutter with some drives -! Ticket #4933, ASS/SSA subtitles: Fix a crash for elements with no horizontal border but a vertical one -! Ticket #4937, Prevent showing black bars when window size after scale exceed current work area -! Ticket #4938, Fix resetting the settings from the "Options" dialog: some settings were (randomly) not - restored to their default value -! Ticket #4954, Open dialog: Support quoted paths -! Ticket #4956, Improve Play/Pause mouse click responsiveness -! Ticket #4957/#4982, Do not adjust window width in audio mode if no cover-art/logo is loaded or its size - is limited to zero -! Ticket #4969, DVD playback could fail with an error related to copy protection on some systems -! Ticket #4971, Bring back "Play next file in the folder" event in single time events menu -! Ticket #4975, Unrelated images could be loaded as cover-art when no author information was available - in the audio file -! Ticket #4991, Text subtitles: "opaque box" outlines were scaled twice -! Ticket #4992, DVB: Enabling the "Information" panel using the "Info" button on the "Navigation" dialog - would reduce the size of the main window when hiding the panel from the "View" menu -! Ticket #4993, DVB: The content of the "Information" panel was lost when changing the UI language -! Ticket #4994, The "Channels" sub-menu was not translated -! Ticket #4995, Some context menus weren't properly positioned when opened by App key -! Ticket #5010, Text subtitles: Fix a crash in case of memory allocation failure -! Ticket #5055, True/False strings were not translated in value column on advanced page -! Ticket #5067/#5203, Fix RealText subtitle parsing: the parser did not work at all and could even crash -! Ticket #5127, Improve the behavior of MPC-HC when doing the MediaInfo analysis when playing from - an optical drive. Playback will now be paused during the analysis to avoid concurrent accesses to - the disk that might hang playback -! Ticket #5130, Lock the player when the scan dialog is opened. Double-clicking on a media file will - always open a new instance of MPC-HC in this case. This avoids interrupting the scan accidentally - and fixes the issues which used to arise when doing that -! Ticket #5130, Remove the information corresponding to the previously playing channel during the DVB scan -! Ticket #5131, DVD playback could stutter on some systems +1.7.9 - 1 June 2015 +=================== ++ Internal Subtitle Renderer: Convert colorspace of subtitles to match video. ++ Append files to the playlist on drag&drop while holding "Control" key ++ Enable Press and Hold gesture to make easier access to context menu on touch devices ++ Add Danish translation ++ Add ability to disable every time after playback event for current session by selecting + "Do nothing" event in context menu. ++ Ticket #3051, Support DTS Music Disc ++ Ticket #5147, Add /randomize command-line switch for playlist randomization ++ Ticket #5334, Allow to enable high precision timer also when Subresync bar is hidden. + Right click on timer shows menu with options. ++ Ticket #5356, DVB: Support HEVC broadcasts ++ Ticket #5386, OSD: Add the ability to display the file name using a menu item and a hotkey ('N' by default) +* Subtitle renderer: Better compatibility with ASS/SSA subtitle files that are slightly violating the specs +* Rename "Display Stats" and "Reset Display Stats" features to "OSD: Display Renderer Statistics" and + "OSD: Reset Renderer Statistics" so that their meaning is clearer in the "Keys" option panel. Also + rename "Display Stats" to "Display Statistics" in the "Renderer Settings" menu +* Ticket #5294, Use internal LAV Splitter for demuxing WTV files +* Ticket #5336/#5380, Replace the minidump creation by Doctor Dump, a more advanced crash reporter. + The new crash reporter is able to send the report automatically after the user's approval and can + warn the user if the problem has already been fixed in a newer version. It should also be generally + more reliable than the old method +* Ticket #5416, Rename "Remaining Time" feature to "Display Current Time" in the "Renderer Settings" menu + and to "OSD: Display Current Time" in the "Keys" option panel so that it describes the feature accurately +* Updated Little CMS to v2.7 (git 6e33faa) +* Updated Unrar to v5.2.7 +* Updated MediaInfoLib to v0.7.73 +* Updated ZenLib to v0.4.31 +* Updated SoundTouch to v1.9.0 +* Updated LAV Filters to v0.65.0.9: + - LAV Video Decoder: Faster DXVA decoding in copy-back mode (direct output mode) + - LAV Video Decoder: Support for HEVC Main10 DXVA2 decoding in copy-back mode + - LAV Audio Decoder: Support for native DTS-HD decoding using libdcadec + - Ticket #5299, LAV Video Decoder: Fix corrupted decoding of some HEVC files + - Ticket #5330, LAV Video Decoder: Improve DVD subtitles timeout in some cases + - Ticket #5333, LAV Splitter: Fix handling of some Blu-Ray playlist +* Updated Basque, British English, Catalan, Chinese (Simplified), Croatian, Czech, Dutch, Finnish, French, + Galician, German, Greek, Hungarian, Italian, Japanese, Korean, Malay, Polish, Portuguese (Brazil), Romanian, + Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian and Vietnamese translations +! EVR-CP/Sync renderers could produce wrong colors +! Do not mirror the status bar and the time indicator when using an RTL layout +! DVBSub: Fix a possible infinite loop when rendering corrupted subtitles +! Subfolders were sometimes parsed multiple times when drag-and-dropping a folder +! Haali Renderer: Fix XySubFilter support +! Cover image were sometimes incorrectly displayed +! Logitech LCD: MPC-HC crashed when the media duration was unknown +! PGS subtitles: MPC-HC could crash when rendering broken subtitles +! Playlist: Fix and improve the shuffle mode: + - Ticket #80, Playback stopped after playing the last playlist item even if not all tracks had been played + - Ticket #3028, If the playlist was cleared and then the items readded, pressing next caused a crash + - Ticket #3128, The first item to play was always the first one in the playlist + - Ticket #4442, Going to the previous file used the playlist order instead of the shuffled order + - Ticket #4616, No tracks will be repeated unless all tracks have been played at least once +! Ticket #2167, Prevent the task bar buttons from being RTLed when Windows is configured to use RTL layout +! Ticket #2516, VSFilter: Fix PGS/DVB subtitles with different size than video frame +! Ticket #5028, Display OSD message for every time after playback event if once event is disabled +! Ticket #5183, Fix a rare crash when processing after playback event +! Ticket #5239, Fix a crash when specifying a non-existent monitor in the command line (/monitor) +! Ticket #5241, Improve the handling of RTL layout for dockable bars (Playlist, Subresync, etc.) +! Ticket #5247, "Information" panel was not showing new lines until window resize +! Ticket #5259, The auto fit factor could not be modified unless auto fit was used as auto-zoom +! Ticket #5262, The "Go to next/previous subtitle" feature did not work for some subtitles +! Ticket #5274, Dockable bars: Improve reloading of saved state +! Ticket #5280, The /nofocus command line option did nothing when starting MPC-HC +! Ticket #5314, If an explicit start time was set (for example from the command line or a favorite), + the saved position wrongly overwrote the position of the previously opened file +! Ticket #5324, Use more common "kb/s" instead of "Kb/s" as bitrate unit +! Ticket #5326, Prevent the main window from stealing the mouse focus from the D3D fullscreen window + when using always on top. It could cause unintentional mouse clicks in the hidden main + window and prevented the mouse pointer from being correctly hidden +! Ticket #5345, Fix opening of shortcuts pointing on directories +! Ticket #5348, VobSub: The latest subtitle entry was sometimes not rendered +! Ticket #5360, Fix: The "Turn off monitor" after playback event did not work +! Ticket #5378, Fix the "DVD Menu Activate" hotkey +! Ticket #5392, the Internal Subtitle Renderer did not work properly when the maximum texture resolution + was set to "Video" and the renderer was madVR +! Ticket #5401, Remote commands (WinLIRC, uICE) were incorrectly bounded to actions +! Ticket #5418, Fast seek (to key-frame) did not work when an external audio track was loaded diff --git a/docs/Changelog_old.txt b/docs/Changelog_old.txt index e40240e8528..6f870c25903 100644 --- a/docs/Changelog_old.txt +++ b/docs/Changelog_old.txt @@ -4,6 +4,90 @@ Legend: ! Fixed +1.7.8 - 25 January 2015 +======================= ++ DVB: Show current event time in the status bar ++ DVB: Add context menu to the navigation dialog ++ Add Finnish and Serbian translations ++ Ticket #907, Enable "Properties" dialog for DVD and DVB playback modes ++ Ticket #1091, Support MediaInfo analyse for DVD ++ Ticket #1494, Add tooltip in the "Organize Favorites" dialog with path of the item ++ Ticket #2438, Keep history of recently opened DVD directories ++ Ticket #3647, Internal LAV Video Decoder: Support Cinepack and QPEG in low-merit mode ++ Ticket #4941, Support embedded cover-art +* DVB: Improve channel switching speed +* The "Properties" dialog should open faster being that the MediaInfo analysis is now done asynchronously +* Make double-click tolerance consistent with system settings +* Ticket #4978, Execute "once" after playback event when playlist ends, regardless of the loop count +* Ticket #4991, Text subtitles: "opaque box" outlines will now always be drawn even if the border width is set to 0. + The size of the text is independent of the border width so there is no reason not to draw that part +* Ticket #5056, Position the text subtitles relative to the video frame by default +* Updated MediaInfoLib to v0.7.71 +* Updated ZenLib to v0.4.29 r498 +* Updated SoundTouch to v1.8.0 r201 +* Updated Little CMS to v2.7 (git 8174681) +* Updated Unrar to v5.2.3 +* Updated LAV Filters to v0.63.0.52: + - LAV Video Decoder: Fix a crash when the video height is not a multiple of 2 + - Ticket #3144, LAV Splitter: Support librtmp parameters for RTMP streams + - Ticket #4407, LAV Video Decoder: Fix a rare crash when checking the compatibility with hardware decoding + - Ticket #5030, LAV Video Decoder: The video timestamps could be wrong in some cases when using H264 DXVA decoding. + This could lead to synchronization issue with the audio + - Ticket #5047, LAV Splitter: Fix missing tracks in (m2)ts files + - Ticket #5116, LAV Video Decoder: Fix aspect ratio for some MPEG2 streams +* Updated Arabic, Armenian, Basque, Belarusian, Bengali, British English, Catalan, Chinese (Simplified and Traditional), + Croatian, Czech, Dutch, French, Galician, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Malay, + Polish, Portuguese (Brazil), Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Tatar, Thai, Turkish, + Ukrainian and Vietnamese translations +! XySubFilter: Always preserve subtitle frame aspect ratio +! Properties dialog: The creation time did not account for the local timezone +! Properties dialog: More consistent UI for the "Resources" tab +! PGSSub: Subtitles could have opaque background instead of transparent one +! Audio CDROMs with extra content could not be played +! Ticket #2420, Improve the reliability of the DirectShow hooks +! Ticket #2626, Fix some rare crashes when another application prevents MPC-HC from rendering the video +! Ticket #2953, DVB: Fix crash when closing window right after switching channel +! Ticket #3324, Some applications could interfere with Skype API and prevent MPC-HC from running + when "Display "Now Playing" information in Skype's mood message" was enabled +! Ticket #3666, DVB: Don't clear the channel list on saving new scan result +! Ticket #3742, Sync Renderer: Fix rare crashes when using Sync Renderer with "synchronize video to display" option enabled +! Ticket #3864, Video renderers: Fix a possible crash caused by a race condition +! Ticket #3991, Video renderers: Fix a possible crash when the D3D device cannot be created +! Ticket #4029, Fix a rare crash when right-clicking on the playlist panel +! Ticket #4436, DVB: Improve compatibility with certain tuners +! Ticket #4551, Fix a possible crash when saving the current frame +! Ticket #4721, Audio CD playback could hang and stutter with some drives +! Ticket #4933, ASS/SSA subtitles: Fix a crash for elements with no horizontal border but a vertical one +! Ticket #4937, Prevent showing black bars when window size after scale exceed current work area +! Ticket #4938, Fix resetting the settings from the "Options" dialog: some settings were (randomly) not + restored to their default value +! Ticket #4954, Open dialog: Support quoted paths +! Ticket #4956, Improve Play/Pause mouse click responsiveness +! Ticket #4957/#4982, Do not adjust window width in audio mode if no cover-art/logo is loaded or its size + is limited to zero +! Ticket #4969, DVD playback could fail with an error related to copy protection on some systems +! Ticket #4971, Bring back "Play next file in the folder" event in single time events menu +! Ticket #4975, Unrelated images could be loaded as cover-art when no author information was available + in the audio file +! Ticket #4991, Text subtitles: "opaque box" outlines were scaled twice +! Ticket #4992, DVB: Enabling the "Information" panel using the "Info" button on the "Navigation" dialog + would reduce the size of the main window when hiding the panel from the "View" menu +! Ticket #4993, DVB: The content of the "Information" panel was lost when changing the UI language +! Ticket #4994, The "Channels" sub-menu was not translated +! Ticket #4995, Some context menus weren't properly positioned when opened by App key +! Ticket #5010, Text subtitles: Fix a crash in case of memory allocation failure +! Ticket #5055, True/False strings were not translated in value column on advanced page +! Ticket #5067/#5203, Fix RealText subtitle parsing: the parser did not work at all and could even crash +! Ticket #5127, Improve the behavior of MPC-HC when doing the MediaInfo analysis when playing from + an optical drive. Playback will now be paused during the analysis to avoid concurrent accesses to + the disk that might hang playback +! Ticket #5130, Lock the player when the scan dialog is opened. Double-clicking on a media file will + always open a new instance of MPC-HC in this case. This avoids interrupting the scan accidentally + and fixes the issues which used to arise when doing that +! Ticket #5130, Remove the information corresponding to the previously playing channel during the DVB scan +! Ticket #5131, DVD playback could stutter on some systems + + 1.7.7 - 05 October 2014 ======================= + Allow loading more than one subtitle file at a time using the "Load subtitle" dialog or drag-and-drop diff --git a/docs/Readme.txt b/docs/Readme.txt index 87f8a788778..d00901ca1a1 100644 --- a/docs/Readme.txt +++ b/docs/Readme.txt @@ -5,8 +5,8 @@ and contains many additional features and bug fixes. We are in dire need of new developers of any kind. If you can code a little, or you can create logos for the player and images for the file associations, or you can create/maintain the main website, please join our IRC channel -and talk to us. Find some easy ticket on our trac page, fix the problem, -post the patch on trac or come on IRC and we'll review it for you. +and talk to us. Find some easy ticket on our Trac, fix the problem, +post the patch on Trac or come on IRC and we'll review it for you. Any help is always appreciated. We care about keeping an open project open and free for contributions @@ -24,7 +24,7 @@ Main Features: * Multi-Monitor support * Various pixel shaders * Color management -* 37 translations available +* 38 translations available System Requirements: @@ -35,11 +35,11 @@ System Requirements: Links: ------ -Website: http://mpc-hc.org +Website: https://mpc-hc.org/ Source code: https://github.com/mpc-hc -Support Trac: https://trac.mpc-hc.org +Support Trac: https://trac.mpc-hc.org/ IRC Channel: #mpc-hc / #mpc-hc-dev at Freenode (http://webchat.freenode.net/) -Donations: http://mpc-hc.org/donate/ +Donations: https://mpc-hc.org/donate/ For the people involved in the development, see Authors.txt. @@ -53,21 +53,21 @@ MPC-HC makes use of the following third-party code: Project License Website -------------------------------------------------------------------- CSizingControlBar - http://www.datamekanix.com/sizecbar/ -LAV Filters GPLv2+ http://code.google.com/p/lavfilters/ +LAV Filters GPLv2+ https://code.google.com/p/lavfilters/ libdivide zlib License http://libdivide.com/ Little CMS MIT License http://www.littlecms.com/ Logitech SDK - - -MediaInfoLib Simplified BSD License http://mediaarea.net/MediaInfo +MediaInfoLib Simplified BSD License https://mediaarea.net/MediaInfo Mhook MIT License https://github.com/martona/mhook MultiMon CPOL http://www.codeproject.com/Articles/3690/ QuickTime SDK - http://developer.apple.com/quicktime/ RARFileSource GPLv2+ http://www.v12pwr.com/RARFileSource/ RealMedia SDK - - -ResizableLib Artistic License http://sourceforge.net/projects/resizablelib/ +ResizableLib Artistic License https://sourceforge.net/projects/resizablelib/ Silk Icons CC Attribution 2.5 http://www.famfamfam.com/lab/icons/silk/ SoundTouch LGPLv2.1 http://www.surina.net/soundtouch/ TreePropSheet - http://www.codeproject.com/Articles/3709/ UnRAR freeware http://www.rarlab.com/rar_add.htm VirtualDub GPLv2+ http://www.virtualdub.org/ -ZenLib zlib License http://sourceforge.net/projects/zenlib/ +ZenLib zlib License https://sourceforge.net/projects/zenlib/ zlib zlib License http://zlib.net/ diff --git a/include/inttypes.h b/include/inttypes.h deleted file mode 100644 index dfbe45508fd..00000000000 --- a/include/inttypes.h +++ /dev/null @@ -1,306 +0,0 @@ -// ISO C9x compliant inttypes.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// -// Copyright (c) 2006-2013 Alexander Chemeris -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the product nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSC_VER // [ -#error "Use this header only with Microsoft Visual C++ compilers!" -#endif // _MSC_VER ] - -#ifndef _MSC_INTTYPES_H_ // [ -#define _MSC_INTTYPES_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - -// 7.8 Format conversion of integer types - -typedef struct { - intmax_t quot; - intmax_t rem; -} imaxdiv_t; - -// 7.8.1 Macros for format specifiers - -#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198 - -// The fprintf macros for signed integers are: -#define PRId8 "d" -#define PRIi8 "i" -#define PRIdLEAST8 "d" -#define PRIiLEAST8 "i" -#define PRIdFAST8 "d" -#define PRIiFAST8 "i" - -#define PRId16 "hd" -#define PRIi16 "hi" -#define PRIdLEAST16 "hd" -#define PRIiLEAST16 "hi" -#define PRIdFAST16 "hd" -#define PRIiFAST16 "hi" - -#define PRId32 "I32d" -#define PRIi32 "I32i" -#define PRIdLEAST32 "I32d" -#define PRIiLEAST32 "I32i" -#define PRIdFAST32 "I32d" -#define PRIiFAST32 "I32i" - -#define PRId64 "I64d" -#define PRIi64 "I64i" -#define PRIdLEAST64 "I64d" -#define PRIiLEAST64 "I64i" -#define PRIdFAST64 "I64d" -#define PRIiFAST64 "I64i" - -#define PRIdMAX "I64d" -#define PRIiMAX "I64i" - -#define PRIdPTR "Id" -#define PRIiPTR "Ii" - -// The fprintf macros for unsigned integers are: -#define PRIo8 "o" -#define PRIu8 "u" -#define PRIx8 "x" -#define PRIX8 "X" -#define PRIoLEAST8 "o" -#define PRIuLEAST8 "u" -#define PRIxLEAST8 "x" -#define PRIXLEAST8 "X" -#define PRIoFAST8 "o" -#define PRIuFAST8 "u" -#define PRIxFAST8 "x" -#define PRIXFAST8 "X" - -#define PRIo16 "ho" -#define PRIu16 "hu" -#define PRIx16 "hx" -#define PRIX16 "hX" -#define PRIoLEAST16 "ho" -#define PRIuLEAST16 "hu" -#define PRIxLEAST16 "hx" -#define PRIXLEAST16 "hX" -#define PRIoFAST16 "ho" -#define PRIuFAST16 "hu" -#define PRIxFAST16 "hx" -#define PRIXFAST16 "hX" - -#define PRIo32 "I32o" -#define PRIu32 "I32u" -#define PRIx32 "I32x" -#define PRIX32 "I32X" -#define PRIoLEAST32 "I32o" -#define PRIuLEAST32 "I32u" -#define PRIxLEAST32 "I32x" -#define PRIXLEAST32 "I32X" -#define PRIoFAST32 "I32o" -#define PRIuFAST32 "I32u" -#define PRIxFAST32 "I32x" -#define PRIXFAST32 "I32X" - -#define PRIo64 "I64o" -#define PRIu64 "I64u" -#define PRIx64 "I64x" -#define PRIX64 "I64X" -#define PRIoLEAST64 "I64o" -#define PRIuLEAST64 "I64u" -#define PRIxLEAST64 "I64x" -#define PRIXLEAST64 "I64X" -#define PRIoFAST64 "I64o" -#define PRIuFAST64 "I64u" -#define PRIxFAST64 "I64x" -#define PRIXFAST64 "I64X" - -#define PRIoMAX "I64o" -#define PRIuMAX "I64u" -#define PRIxMAX "I64x" -#define PRIXMAX "I64X" - -#define PRIoPTR "Io" -#define PRIuPTR "Iu" -#define PRIxPTR "Ix" -#define PRIXPTR "IX" - -// The fscanf macros for signed integers are: -#define SCNd8 "d" -#define SCNi8 "i" -#define SCNdLEAST8 "d" -#define SCNiLEAST8 "i" -#define SCNdFAST8 "d" -#define SCNiFAST8 "i" - -#define SCNd16 "hd" -#define SCNi16 "hi" -#define SCNdLEAST16 "hd" -#define SCNiLEAST16 "hi" -#define SCNdFAST16 "hd" -#define SCNiFAST16 "hi" - -#define SCNd32 "ld" -#define SCNi32 "li" -#define SCNdLEAST32 "ld" -#define SCNiLEAST32 "li" -#define SCNdFAST32 "ld" -#define SCNiFAST32 "li" - -#define SCNd64 "I64d" -#define SCNi64 "I64i" -#define SCNdLEAST64 "I64d" -#define SCNiLEAST64 "I64i" -#define SCNdFAST64 "I64d" -#define SCNiFAST64 "I64i" - -#define SCNdMAX "I64d" -#define SCNiMAX "I64i" - -#ifdef _WIN64 // [ -# define SCNdPTR "I64d" -# define SCNiPTR "I64i" -#else // _WIN64 ][ -# define SCNdPTR "ld" -# define SCNiPTR "li" -#endif // _WIN64 ] - -// The fscanf macros for unsigned integers are: -#define SCNo8 "o" -#define SCNu8 "u" -#define SCNx8 "x" -#define SCNX8 "X" -#define SCNoLEAST8 "o" -#define SCNuLEAST8 "u" -#define SCNxLEAST8 "x" -#define SCNXLEAST8 "X" -#define SCNoFAST8 "o" -#define SCNuFAST8 "u" -#define SCNxFAST8 "x" -#define SCNXFAST8 "X" - -#define SCNo16 "ho" -#define SCNu16 "hu" -#define SCNx16 "hx" -#define SCNX16 "hX" -#define SCNoLEAST16 "ho" -#define SCNuLEAST16 "hu" -#define SCNxLEAST16 "hx" -#define SCNXLEAST16 "hX" -#define SCNoFAST16 "ho" -#define SCNuFAST16 "hu" -#define SCNxFAST16 "hx" -#define SCNXFAST16 "hX" - -#define SCNo32 "lo" -#define SCNu32 "lu" -#define SCNx32 "lx" -#define SCNX32 "lX" -#define SCNoLEAST32 "lo" -#define SCNuLEAST32 "lu" -#define SCNxLEAST32 "lx" -#define SCNXLEAST32 "lX" -#define SCNoFAST32 "lo" -#define SCNuFAST32 "lu" -#define SCNxFAST32 "lx" -#define SCNXFAST32 "lX" - -#define SCNo64 "I64o" -#define SCNu64 "I64u" -#define SCNx64 "I64x" -#define SCNX64 "I64X" -#define SCNoLEAST64 "I64o" -#define SCNuLEAST64 "I64u" -#define SCNxLEAST64 "I64x" -#define SCNXLEAST64 "I64X" -#define SCNoFAST64 "I64o" -#define SCNuFAST64 "I64u" -#define SCNxFAST64 "I64x" -#define SCNXFAST64 "I64X" - -#define SCNoMAX "I64o" -#define SCNuMAX "I64u" -#define SCNxMAX "I64x" -#define SCNXMAX "I64X" - -#ifdef _WIN64 // [ -# define SCNoPTR "I64o" -# define SCNuPTR "I64u" -# define SCNxPTR "I64x" -# define SCNXPTR "I64X" -#else // _WIN64 ][ -# define SCNoPTR "lo" -# define SCNuPTR "lu" -# define SCNxPTR "lx" -# define SCNXPTR "lX" -#endif // _WIN64 ] - -#endif // __STDC_FORMAT_MACROS ] - -// 7.8.2 Functions for greatest-width integer types - -// 7.8.2.1 The imaxabs function -#define imaxabs _abs64 - -// 7.8.2.2 The imaxdiv function - -// This is modified version of div() function from Microsoft's div.c found -// in %MSVC.NET%\crt\src\div.c -#ifdef STATIC_IMAXDIV // [ -static -#else // STATIC_IMAXDIV ][ -_inline -#endif // STATIC_IMAXDIV ] -imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) -{ - imaxdiv_t result; - - result.quot = numer / denom; - result.rem = numer % denom; - - if (numer < 0 && result.rem > 0) { - // did division wrong; must fix up - ++result.quot; - result.rem -= denom; - } - - return result; -} - -// 7.8.2.3 The strtoimax and strtoumax functions -#define strtoimax _strtoi64 -#define strtoumax _strtoui64 - -// 7.8.2.4 The wcstoimax and wcstoumax functions -#define wcstoimax _wcstoi64 -#define wcstoumax _wcstoui64 - - -#endif // _MSC_INTTYPES_H_ ] diff --git a/include/moreuuids.h b/include/moreuuids.h index 311d2c1c0f2..6ee7f94b0ad 100644 --- a/include/moreuuids.h +++ b/include/moreuuids.h @@ -396,9 +396,6 @@ DEFINE_GUID(MEDIASUBTYPE_PS2_SUB, DEFINE_GUID(CLSID_DXR, 0x760a8f35, 0x97e7, 0x479d, 0xaa, 0xf5, 0xda, 0x9e, 0xff, 0x95, 0xd7, 0x51); -DEFINE_GUID(CLSID_madVR, - 0xe1a8b82a, 0x32ce, 0x4b0d, 0xbe, 0x0d, 0xaa, 0x68, 0xc7, 0x72, 0xe4, 0x23); - // // Ogg // diff --git a/include/mpc-hc_config.h b/include/mpc-hc_config.h index d8a2b0f5330..03317b768db 100644 --- a/include/mpc-hc_config.h +++ b/include/mpc-hc_config.h @@ -1,6 +1,6 @@ #ifndef ISPP_INVOKED /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -31,9 +31,9 @@ #endif #endif -#define WEBSITE_URL _T("http://mpc-hc.org/") -#define DOWNLOAD_URL _T("http://mpc-hc.org/downloads/") -#define UPDATE_URL _T("http://mpc-hc.org/version.txt") +#define WEBSITE_URL _T("https://mpc-hc.org/") +#define DOWNLOAD_URL _T("https://mpc-hc.org/downloads/") +#define UPDATE_URL _T("https://mpc-hc.org/version.txt") #define TRAC_URL _T("https://trac.mpc-hc.org/") #define BUGS_URL _T("https://trac.mpc-hc.org/wiki/How_to_Report_Issues") #define TOOLBARS_URL _T("https://trac.mpc-hc.org/wiki/Toolbar_images") diff --git a/include/mvrInterfaces.h b/include/mvrInterfaces.h index 24f63d0ac72..fccbef67dba 100644 --- a/include/mvrInterfaces.h +++ b/include/mvrInterfaces.h @@ -1,11 +1,12 @@ // *************************************************************** -// mvrInterfaces.h version: 1.0.6 date: 2013-06-04 +// mvrInterfaces.h version: 1.0.7 date: 2014-01-18 // ------------------------------------------------------------- // various interfaces exported by madVR // ------------------------------------------------------------- -// Copyright (C) 2011 - 2013 www.madshi.net, BSD license +// Copyright (C) 2011 - 2014 www.madshi.net, BSD license // *************************************************************** +// 2014-01-18 1.0.7 added IMadVRSettings2 // 2013-06-04 1.0.6 added IMadVRInfo // 2013-01-23 1.0.5 added IMadVRSubclassReplacement // 2012-11-18 1.0.4 added IMadVRExternalPixelShaders @@ -23,7 +24,7 @@ // use this CLSID to create a madVR instance -// DEFINE_GUID(CLSID_madVR, 0xe1a8b82a, 0x32ce, 0x4b0d, 0xbe, 0x0d, 0xaa, 0x68, 0xc7, 0x72, 0xe4, 0x23); +DEFINE_GUID(CLSID_madVR, 0xe1a8b82a, 0x32ce, 0x4b0d, 0xbe, 0x0d, 0xaa, 0x68, 0xc7, 0x72, 0xe4, 0x23); // --------------------------------------------------------------------------- // IMadVROsdServices @@ -72,6 +73,8 @@ interface IOsdRenderCallback : public IUnknown // fullOutputRect = (0, 0, outputSurfaceWidth, outputSurfaceHeight) // activeVideoRect = active video rendering rect inside of fullOutputRect // background area = the part of fullOutputRect which isn't covered by activeVideoRect + // you can return ERROR_EMPTY to indicate that you didn't actually do anything + // in that case madVR will skip some Direct3D state changes to save performance STDMETHOD(ClearBackground)(LPCSTR name, REFERENCE_TIME frameStart, RECT *fullOutputRect, RECT *activeVideoRect) = 0; STDMETHOD(RenderOsd )(LPCSTR name, REFERENCE_TIME frameStart, RECT *fullOutputRect, RECT *activeVideoRect) = 0; }; @@ -91,7 +94,7 @@ interface IMadVROsdServices : public IUnknown bool posRelativeToVideoRect = false, // draw relative to TRUE: the active video rect; FALSE: the full output rect int zOrder = 0, // high zOrder OSD elements are drawn on top of those with smaller zOrder values DWORD duration = 0, // how many milliseconds shall the OSD element be shown (0 = infinite)? - DWORD flags = 0, // undefined - set to 0 + DWORD flags = 0, // 0x00000001 = stretch OSD bitmap to video/output rect OSDMOUSECALLBACK callback = NULL, // optional callback for mouse events LPVOID callbackContext = NULL, // this context is passed to the callback LPVOID reserved = NULL // undefined - set to NULL @@ -313,8 +316,8 @@ interface IMadVRInfo : public IUnknown // setting value. E.g. the following calls will all return the same value: // (1) GetBoolean(L"dontDither", &boolVal); // (2) GetBoolean(L"don't use dithering", &boolVal); -// (3) GetBoolean(L"tradeQuality\dontDither", &boolVal); -// (4) GetBoolean(L"performanceTweaks\trade quality for performance\dontDither", &boolVal); +// (3) GetBoolean(L"dithering\dontDither", &boolVal); +// (4) GetBoolean(L"rendering\dithering\dontDither", &boolVal); // Using the full path can make sense if you want to access a specific profile. // If you don't specify a path, you automatically access the currently active @@ -351,6 +354,55 @@ interface IMadVRSettings : public IUnknown STDMETHOD_(BOOL, SettingsGetBinary )(LPCWSTR path, LPVOID* value, int* bufLenInBytes) = 0; }; +[uuid("1C3E03D6-F422-4D31-9424-75936F663BF7")] +interface IMadVRSettings2 : public IMadVRSettings +{ + // Enumerate the available settings stuff in the specified path. + // Simply loop from enumIndex 0 to infinite, until the enumeration returns FALSE. + // When enumeration is completed GetLastError returns ERROR_NO_MORE_ITEMS. + // The buffers must be provided by the caller and ...LenInChars set to the + // buffer's length (please note: 1 char -> 2 bytes). If the buffer is too small, + // the API fails and GetLastError returns ERROR_MORE_DATA. On return, + // ...LenInChars is set to the required buffer size. + STDMETHOD_(BOOL, SettingsEnumFolders )(LPCWSTR path, int enumIndex, LPCWSTR id, LPCWSTR name, LPCWSTR type, int* idLenInChars, int* nameLenInChars, int* typeLenInChars) = 0; + STDMETHOD_(BOOL, SettingsEnumValues )(LPCWSTR path, int enumIndex, LPCWSTR id, LPCWSTR name, LPCWSTR type, int* idLenInChars, int* nameLenInChars, int* typeLenInChars) = 0; + STDMETHOD_(BOOL, SettingsEnumProfileGroups)(LPCWSTR path, int enumIndex, LPCWSTR name, int* nameLenInChars ) = 0; + STDMETHOD_(BOOL, SettingsEnumProfiles )(LPCWSTR path, int enumIndex, LPCWSTR name, int* nameLenInChars ) = 0; + + // Creates/deletes a profile group in the specified path. + // Deleting a profile group works only if there's only one profile left in the group. + // Example: + // SettingsCreateProfileGroup('scalingParent', 'imageDoubling|lumaUp', 'upscaling profiles', 'SD 24fps'); + // SettingsDeleteProfileGroup('scalingParent\upscaling profiles'); + STDMETHOD_(BOOL, SettingsCreateProfileGroup)(LPCWSTR path, LPCWSTR settingsPageList, LPCWSTR profileGroupName, LPCWSTR firstProfileName) = 0; + STDMETHOD_(BOOL, SettingsDeleteProfileGroup)(LPCWSTR path) = 0; + + // SettingsAddProfile adds a new profile, using default parameters for all values. + // SettingsDuplicateProfile duplicates/copies a profile with all parameters. + // Deleting a profile works only if it isn't the only profile left in the group. + // Example: + // SettingsAddProfile('scalingParent\upscaling profiles', 'SD 60fps'); + // SettingsDuplicateProfile('scalingParent\upscaling profiles', 'SD 60fps', 'HD 24fps'); + // SettingsDeleteProfile('scalingParent\upscaling profiles', 'SD 60fps'); + STDMETHOD_(BOOL, SettingsAddProfile )(LPCWSTR path, LPCWSTR newProfileName) = 0; + STDMETHOD_(BOOL, SettingsDuplicateProfile)(LPCWSTR path, LPCWSTR originalProfileName, LPCWSTR newProfileName) = 0; + STDMETHOD_(BOOL, SettingsDeleteProfile )(LPCWSTR path, LPCWSTR profileName ) = 0; + + // SettingsActivateProfile activates the specified profile. + // It also disables automatic (rule based) profile selection. + // SettingsAutoselectProfile allows you to reactivate it. + // Example: + // if SettingsIsProfileActive('scalingParent\upscaling profiles', 'SD 24fps') then + // begin + // SettingsActivateProfile('scalingParent\upscaling profiles', 'SD 60fps'); + // [...] + // SettingsAutoselectProfile('scalingParent\upscaling profiles'); + STDMETHOD_(BOOL, SettingsIsProfileActive)(LPCWSTR path, LPCWSTR profileName) = 0; + STDMETHOD_(BOOL, SettingsActivateProfile)(LPCWSTR path, LPCWSTR profileName) = 0; + STDMETHOD_(BOOL, SettingsIsProfileAutoselected)(LPCWSTR path) = 0; + STDMETHOD_(BOOL, SettingsAutoselectProfile)(LPCWSTR path) = 0; +}; + // available settings: id, name, type, valid values // ------------------------------------------------ // devices, devices @@ -364,11 +416,15 @@ interface IMadVRSettings : public IUnknown // levels, levels, string, TV Levels|PC Levels|Custom // black, black, integer, 0..48 // white, white, integer, 200..255 -// displayBitdepth, native display bitdepth, integer, 6..10 +// displayBitdepth, native display bitdepth, integer, 3..10 // calibration, calibration // calibrate, calibrate display, string, disable calibration controls for this display|this display is already calibrated|calibrate this display by using yCMS|calibrate this display by using an external 3dlut file // disableGpuGammaRamps, disable GPU gamma ramps, boolean -// external3dlutFile, external 3dlut file, string +// external3dlutFile709, external 3dlut file (BT.709), string +// external3dlutFileNtsc, external 3dlut file (SMPTE C), string +// external3dlutFilePal, external 3dlut file (EBU/PAL), string +// external3dlutFile2020, external 3dlut file (BT.2020), string +// external3dlutFileDci, external 3dlut file (DCI-P3), string // gamutMeasurements, gamut measurements, string // gammaMeasurements, gamma measurements, string // displayPrimaries, display primaries, string, BT.709 (HD)|BT.601 (SD)|PAL|something else @@ -390,20 +446,34 @@ interface IMadVRSettings : public IUnknown // currentGammaCurve, current gamma curve, string, pure power curve|BT.709/601 curve // currentGammaValue, current gamma value, string, 1.80|1.85|1.90|1.95|2.00|2.05|2.10|2.15|2.20|2.25|2.30|2.35|2.40|2.45|2.50|2.55|2.60|2.65|2.70|2.75|2.80 // processing, processing -// decoding, processing -// decodeH264, decode h264, string, disable|libav|intel|hardware -// decodeVc1, decode VC-1, string, disable|libav|intel|hardware -// decodeMpeg2, decode MPEG2, string, disable|libav|intel|hardware // deinterlacing, deinterlacing // autoActivateDeinterlacing, automatically activate deinterlacing when needed, boolean // ifInDoubtDeinterlace, if in doubt, activate deinterlacing, boolean // contentType, source type, string, auto|film|video // scanPartialFrame, only look at pixels in the frame center, boolean // deinterlaceThread, perform deinterlacing in separate thread, boolean +// artifactRemoval, artifact removal +// debandActive, reduce banding artifacts, boolean +// debandLevel, default debanding strength, integer, 0..2 +// debandFadeLevel, strength during fade in/out, integer, 0..2 // scalingParent, scaling algorithms // chromaUp, chroma upscaling -// chromaUp, chroma upsampling, string, Nearest Neighbor|Bilinear|Mitchell-Netravali|Catmull-Rom|Bicubic50|Bicubic60|Bicubic75|Bicubic100|SoftCubic50|SoftCubic60|SoftCubic70|SoftCubic80|SoftCubic100|Lanczos3|Lanczos4|Lanczos8|Spline36|Spline64|Jinc3|Jinc4|Jinc8 +// chromaUp, chroma upsampling, string, Nearest Neighbor|Bilinear|Mitchell-Netravali|Catmull-Rom|Bicubic50|Bicubic60|Bicubic75|Bicubic100|SoftCubic50|SoftCubic60|SoftCubic70|SoftCubic80|SoftCubic100|Lanczos3|Lanczos4|Lanczos8|Spline36|Spline64|Jinc3|Jinc4|Jinc8|Nnedi16|Nnedi32|Nnedi64|Nnedi128|Nnedi256 // chromaAntiRinging, activate anti-ringing filter for chroma upsampling, boolean +// imageDoubling, image doubling +// nnediDLEnable, use NNEDI3 to double Luma resolution, boolean +// nnediDCEnable, use NNEDI3 to double Chroma resolution, boolean +// nnediQLEnable, use NNEDI3 to quadruple Luma resolution, boolean +// nnediQCEnable, use NNEDI3 to quadruple Chroma resolution, boolean +// nnediDLScalingFactor, when to use NNEDI3 to double Luma resolution, string, 1.2x|1.5x|2.0x|always +// nnediDCScalingFactor, when to use NNEDI3 to double Chroma resolution, string, 1.2x|1.5x|2.0x|always +// nnediQLScalingFactor, when to use NNEDI3 to quadruple Luma resolution, string, 1.2x|1.5x|2.0x|always +// nnediQCScalingFactor, when to use NNEDI3 to quadruple Chroma resolution, string, 1.2x|1.5x|2.0x|always +// nnediDLQuality, NNEDI3 double Luma quality, integer, 0..4 +// nnediDLQuality, NNEDI3 double Chroma quality, integer, 0..4 +// nnediDLQuality, NNEDI3 quadruple Luma quality, integer, 0..4 +// nnediDLQuality, NNEDI3 quadruple Chroma quality, integer, 0..4 +// amdInteropHack, use alternative interop hack (not recommended, AMD only), boolean // lumaUp, image upscaling // lumaUp, image upscaling, string, Nearest Neighbor|Bilinear|Dxva|Mitchell-Netravali|Catmull-Rom|Bicubic50|Bicubic60|Bicubic75|Bicubic100|SoftCubic50|SoftCubic60|SoftCubic70|SoftCubic80|SoftCubic100|Lanczos3|Lanczos4|Lanczos8|Spline36|Spline64|Jinc3|Jinc4|Jinc8 // lumaUpAntiRinging, activate anti-ringing filter for luma upsampling, boolean @@ -414,7 +484,6 @@ interface IMadVRSettings : public IUnknown // lumaDownLinear, downscale luma in linear light, boolean // rendering, rendering // basicRendering, general settings -// managedUpload, use managed upload textures (XP only), boolean // uploadInRenderThread, upload frames in render thread, boolean // delayPlaybackStart2, delay playback start until render queue is full, boolean // delaySeek, delay playback start after seeking, too, boolean @@ -433,13 +502,13 @@ interface IMadVRSettings : public IUnknown // flushAfterLastStep, after last step, string, don''t flush|flush|flush & wait (sleep)|flush & wait (loop) // flushAfterBackbuffer, after backbuffer, string, don''t flush|flush|flush & wait (sleep)|flush & wait (loop) // flushAfterPresent, after present, string, don''t flush|flush|flush & wait (sleep)|flush & wait (loop) +// oldWindowedPath, use old windowed rendering path, boolean +// preRenderFramesWindowed, no of pre-presented frames, integer, 1..16 // exclusiveSettings, exclusive mode settings // enableSeekbar, show seek bar, boolean // exclusiveDelay, delay switch to exclusive mode by 3 seconds, boolean -// oldExclusivePath, use old rendering path, boolean +// oldExclusivePath, use old fse rendering path, boolean // presentThread, run presentation in a separate thread, boolean -// avoidGlitches, limit rendering times to avoid glitches, boolean -// overshootMaxLatency, overshoot max frame latency (Vista and newer), boolean // preRenderFrames, no of pre-presented frames, integer, 1..16 // backbufferCountExcl, no of backbuffers, integer, 1..8 // flushAfterRenderStepsExcl, after render steps, string, don''t flush|flush|flush & wait (sleep)|flush & wait (loop) @@ -449,18 +518,27 @@ interface IMadVRSettings : public IUnknown // smoothMotion, smooth motion // smoothMotionEnabled, enable smooth motion frame rate conversion, boolean // smoothMotionMode, smooth motion mode, string, avoidJudder|almostAlways|always +// dithering, dithering +// ditheringAlgo, dithering algorithm, string, random|ordered|errorDifLowNoise|errorDifMedNoise +// dontDither, don't use dithering, boolean +// coloredDither, use colored noise, boolean +// dynamicDither, change dither for every frame, boolean // tradeQuality, trade quality for performance +// fastSubtitles, optimize subtitles for performance instead of quality, boolean +// dxvaChromaWhenDecode, use DXVA chroma upscaling when doing native DXVA decoding boolean +// dxvaChromaWhenDeint, use DXVA chroma upscaling when doing DXVA deinterlacing boolean +// mayLoseBtb, lose BTB and WTW if it improves performance boolean +// customShaders16f, store custom pixel shader results in 16bit buffer instead of 32bit, boolean +// gammaDithering, don't use linear light for dithering, boolean +// noGradientAngles, don't analyze gradient angles for debanding, boolean +// dontRerenderFades, don't rerender frames when fade in/out is detected, boolean // gammaBlending, don't use linear light for smooth motion frame blending, boolean -// dontDither, don't use dithering, boolean -// halfDxvaDeintFramerate, use half frame rate for DXVA deinterlacing, boolean // 10bitChroma, use 10bit chroma buffer instead of 16bit, boolean // 10bitLuma, use 10bit image buffer instead of 16bit, boolean -// customShaders16f, store custom pixel shader results in 16bit buffer instead of 32bit, boolean // customShadersTv, run custom pixel shaders in video levels instead of PC levels, boolean -// noDeintCopyback, don't use "copyback" for DXVA deinterlacing, boolean -// noDecodeCopyback, don't use "copyback" for DXVA decoding, boolean // 3dlutLowerBitdepth, use lower bitdepth for yCMS 3dlut calibration, boolean // 3dlutBitdepth, 3dlut bitdepth, integer, 6..7 +// halfDxvaDeintFramerate, use half frame rate for DXVA deinterlacing, boolean // ui, user interface // keys, keyboard shortcuts // keysOnlyIfFocused, use only if media player has keyboard focus, boolean @@ -495,6 +573,8 @@ interface IMadVRSettings : public IUnknown // keyDeintContentTypeFilm, deinterlacing content type - set to "film", string // keyDeintContentTypeVideo, deinterlacing content type - set to "video", string // keyDeintContentTypeAuto, deinterlacing content type - set to "auto detect", string +// keyDeband, debanding - toggle, string +// keyDebandCustom, debanding custom settings - toggle, string // keyDesiredGammaCurve, desired display gamma curve - toggle, string // keyDesiredGammaValueInc, desired display gamma value - increase, string // keyDesiredGammaValueDec, desired display gamma value - decrease, string @@ -548,6 +628,17 @@ interface IMadVRSettings : public IUnknown // keyDisplayModeChanger, display mode switcher - toggle on/off, string // keyDisplayBitdepth, display bitdepth - toggle, string // keyDithering, dithering - toggle on/off, string +// key3dlutSplitScreen, 3dlut split screen - toggle on, string + +// profile settings: id, name, type, valid values +// ---------------------------------------------- +// Profile Group 1 +// keyToggleProfiles, keyboard shortcut to toggle profiles, string +// autoselectRules, profile auto select rules, string +// Profile 1 +// keyActivateProfile, keyboard shortcut to activate this profile, string +// activateCmdline, command line to execute when this profile is activated, string +// deactivateCmdline, command line to execute when this profile is deactivated, string // --------------------------------------------------------------------------- // ISubRender @@ -557,27 +648,29 @@ interface IMadVRSettings : public IUnknown // engine in MPC-HC and PotPlayer for communication with madVR and with the // Haali Video Renderer -// interface ISubRenderCallback; // forward +/* +interface ISubRenderCallback; // forward // interface exported by madVR -// [uuid("9CC7F9F7-3ED1-493c-AF65-527EA1D9947F")] -// interface ISubRender : public IUnknown -// { -// STDMETHOD(SetCallback)(ISubRenderCallback *callback) = 0; -// }; +[uuid("9CC7F9F7-3ED1-493c-AF65-527EA1D9947F")] +interface ISubRender : public IUnknown +{ + STDMETHOD(SetCallback)(ISubRenderCallback *callback) = 0; +}; // callback interfaces can provide madVR with -// [uuid("CD6D2AA5-20D3-4ebe-A8A9-34D3B00CC253")] -// interface ISubRenderCallback : public IUnknown -// { -// STDMETHOD(SetDevice)(IDirect3DDevice9 *device) = 0; -// STDMETHOD(Render)(REFERENCE_TIME frameStart, int left, int top, int right, int bottom, int width, int height) = 0; -// }; -// [uuid("E602585E-C05A-4828-AC69-AF92997F2E0C")] -// interface ISubRenderCallback2 : public ISubRenderCallback -// { -// STDMETHOD(RenderEx)(REFERENCE_TIME frameStart, REFERENCE_TIME frameStop, REFERENCE_TIME avgTimePerFrame, int left, int top, int right, int bottom, int width, int height) = 0; -// }; +[uuid("CD6D2AA5-20D3-4ebe-A8A9-34D3B00CC253")] +interface ISubRenderCallback : public IUnknown +{ + STDMETHOD(SetDevice)(IDirect3DDevice9 *device) = 0; + STDMETHOD(Render)(REFERENCE_TIME frameStart, int left, int top, int right, int bottom, int width, int height) = 0; +}; +[uuid("E602585E-C05A-4828-AC69-AF92997F2E0C")] +interface ISubRenderCallback2 : public ISubRenderCallback +{ + STDMETHOD(RenderEx)(REFERENCE_TIME frameStart, REFERENCE_TIME frameStop, REFERENCE_TIME avgTimePerFrame, int left, int top, int right, int bottom, int width, int height) = 0; +}; +*/ // --------------------------------------------------------------------------- // IMadVRExclusiveModeInfo (obsolete) diff --git a/include/version.h b/include/version.h index 4c8f655661e..ec42aaced32 100644 --- a/include/version.h +++ b/include/version.h @@ -53,7 +53,7 @@ #define MPC_VERSION_MAJOR 1 #define MPC_VERSION_MINOR 7 -#define MPC_VERSION_PATCH 8 +#define MPC_VERSION_PATCH 9 #ifndef NO_VERSION_REV_NEEDED diff --git a/mpc-hc.sln b/mpc-hc.sln index 357e0f53f31..45e159ed8ac 100644 --- a/mpc-hc.sln +++ b/mpc-hc.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 +VisualStudioVersion = 12.0.31101.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Apps", "Apps", "{A21F07E6-A891-479C-98EA-EDB58CE4EFAB}" EndProject @@ -25,6 +25,9 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Transform", "Transform", "{F9F42BF2-3F13-4654-82C5-E27B8879EC4E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpc-hc", "src\mpc-hc\mpc-hc.vcxproj", "{8CE7E5D0-C821-47AC-A247-28EC95B34670}" + ProjectSection(ProjectDependencies) = postProject + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6} = {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeCSS", "src\DeCSS\DeCSS.vcxproj", "{1A2DFD1A-3C6C-44D1-909D-294AF646B575}" EndProject @@ -116,6 +119,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mhook", "src\thirdparty\mho EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MathLibFix", "src\MathLibFix\MathLibFix.vcxproj", "{FC9FC17F-70BF-4ACA-8285-C24D1889BACB}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DoctorDump", "src\thirdparty\DoctorDump\DoctorDump.vcxproj", "{BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug Filter|Win32 = Debug Filter|Win32 @@ -1118,6 +1123,22 @@ Global {FC9FC17F-70BF-4ACA-8285-C24D1889BACB}.Release|Win32.Build.0 = Release|Win32 {FC9FC17F-70BF-4ACA-8285-C24D1889BACB}.Release|x64.ActiveCfg = Release|x64 {FC9FC17F-70BF-4ACA-8285-C24D1889BACB}.Release|x64.Build.0 = Release|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Debug Filter|Win32.ActiveCfg = Release|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Debug Filter|x64.ActiveCfg = Release|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Debug Lite|Win32.ActiveCfg = Release Lite|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Debug Lite|x64.ActiveCfg = Release Lite|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Debug|Win32.ActiveCfg = Release|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Debug|x64.ActiveCfg = Release|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release Filter|Win32.ActiveCfg = Release|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release Filter|x64.ActiveCfg = Release|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release Lite|Win32.ActiveCfg = Release Lite|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release Lite|Win32.Build.0 = Release Lite|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release Lite|x64.ActiveCfg = Release Lite|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release Lite|x64.Build.0 = Release Lite|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release|Win32.ActiveCfg = Release|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release|Win32.Build.0 = Release|Win32 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release|x64.ActiveCfg = Release|x64 + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1177,5 +1198,6 @@ Global {ED257874-E12E-4143-AF0A-0676DA3BB18C} = {D9A0529B-9EC4-4D30-9E05-A5D533739D95} {F841363C-A630-4716-8941-CDDC1F32CFC3} = {D9A0529B-9EC4-4D30-9E05-A5D533739D95} {FC9FC17F-70BF-4ACA-8285-C24D1889BACB} = {D9A0529B-9EC4-4D30-9E05-A5D533739D95} + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6} = {D9A0529B-9EC4-4D30-9E05-A5D533739D95} EndGlobalSection EndGlobal diff --git a/mpcresources.sln b/mpcresources.sln index 8f43566846e..f8782487f8f 100644 --- a/mpcresources.sln +++ b/mpcresources.sln @@ -26,6 +26,8 @@ Global Release Croatian|x64 = Release Croatian|x64 Release Czech|Win32 = Release Czech|Win32 Release Czech|x64 = Release Czech|x64 + Release Danish|Win32 = Release Danish|Win32 + Release Danish|x64 = Release Danish|x64 Release Dutch|Win32 = Release Dutch|Win32 Release Dutch|x64 = Release Dutch|x64 Release English (British)|Win32 = Release English (British)|Win32 @@ -122,6 +124,10 @@ Global {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Czech|Win32.Build.0 = Release Czech|Win32 {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Czech|x64.ActiveCfg = Release Czech|x64 {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Czech|x64.Build.0 = Release Czech|x64 + {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Danish|Win32.ActiveCfg = Release Danish|Win32 + {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Danish|Win32.Build.0 = Release Danish|Win32 + {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Danish|x64.ActiveCfg = Release Danish|x64 + {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Danish|x64.Build.0 = Release Danish|x64 {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Dutch|Win32.ActiveCfg = Release Dutch|Win32 {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Dutch|Win32.Build.0 = Release Dutch|Win32 {A57CBE1A-3703-4237-950A-FC5F594FDB43}.Release Dutch|x64.ActiveCfg = Release Dutch|x64 diff --git a/src/DSUtil/ArrayUtils.h b/src/DSUtil/ArrayUtils.h new file mode 100644 index 00000000000..1187bc93081 --- /dev/null +++ b/src/DSUtil/ArrayUtils.h @@ -0,0 +1,27 @@ +/* +* (C) 2015 see Authors.txt +* +* This file is part of MPC-HC. +* +* MPC-HC is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 3 of the License, or +* (at your option) any later version. +* +* MPC-HC is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +*/ + +#pragma once + +template +inline std::array::type, sizeof...(T)> make_array(T... values) +{ + return { values... }; +} diff --git a/src/DSUtil/DSUtil.cpp b/src/DSUtil/DSUtil.cpp index 406f5f63c91..c9227635432 100644 --- a/src/DSUtil/DSUtil.cpp +++ b/src/DSUtil/DSUtil.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -346,7 +346,7 @@ IPin* AppendFilter(IPin* pPin, CString DisplayName, IGraphBuilder* pGB) } CComVariant var; - if (FAILED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (FAILED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { break; } @@ -440,7 +440,7 @@ IPin* InsertFilter(IPin* pPin, CString DisplayName, IGraphBuilder* pGB) } CComVariant var; - if (FAILED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (FAILED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { break; } @@ -629,10 +629,9 @@ bool IsCLSIDRegistered(const CLSID& clsid) { bool fRet = false; - LPOLESTR pStr = nullptr; + CComHeapPtr pStr; if (S_OK == StringFromCLSID(clsid, &pStr) && pStr) { fRet = IsCLSIDRegistered(CString(pStr)); - CoTaskMemFree(pStr); } return fRet; @@ -660,10 +659,9 @@ CString GetFilterPath(const CLSID& clsid) { CString path; - LPOLESTR pStr = nullptr; + CComHeapPtr pStr; if (S_OK == StringFromCLSID(clsid, &pStr) && pStr) { path = GetFilterPath(CString(pStr)); - CoTaskMemFree(pStr); } return path; @@ -1117,7 +1115,7 @@ bool CreateFilter(CStringW DisplayName, IBaseFilter** ppBF, CStringW& FriendlyNa CComPtr pPB; CComVariant var; if (SUCCEEDED(pMoniker->BindToStorage(pBindCtx, 0, IID_PPV_ARGS(&pPB))) - && SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + && SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { FriendlyName = var.bstrVal; } @@ -1146,7 +1144,7 @@ IBaseFilter* AppendFilter(IPin* pPin, IMoniker* pMoniker, IGraphBuilder* pGB) } CComVariant var; - if (FAILED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (FAILED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { break; } @@ -1190,7 +1188,7 @@ CStringW GetFriendlyName(CStringW displayName) CComPtr pPB; CComVariant var; if (SUCCEEDED(pMoniker->BindToStorage(pBindCtx, 0, IID_PPV_ARGS(&pPB))) - && SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + && SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { friendlyName = var.bstrVal; } } @@ -2424,87 +2422,6 @@ REFERENCE_TIME StringToReftime(LPCTSTR strVal) return rt; } -const double Rec601_Kr = 0.299; -const double Rec601_Kb = 0.114; -const double Rec601_Kg = 0.587; - -COLORREF YCrCbToRGB_Rec601(BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel) -{ - double targetRange = targetWhiteLevel - targetBlackLevel; - double chromaChannelRange = (sourceWhiteLevel == 235.0 ? 224.0 /* 4:2:0 */ : sourceBlackLevel == 0.0 ? 255.0 /* 4:4:4 */ : 239.0 /* 4:2:2 */) / 2.0; - double chromaScaleFactor = targetRange / chromaChannelRange; - double scaledY = (Y - (sourceBlackLevel - targetBlackLevel)) * (targetRange / (sourceWhiteLevel - sourceBlackLevel)); - - double rp = scaledY + chromaScaleFactor * (Cr - 128) * (1.0 - Rec601_Kr); - double gp = scaledY - chromaScaleFactor * (Cb - 128) * (1.0 - Rec601_Kb) * Rec601_Kb / Rec601_Kg - chromaScaleFactor * (Cr - 128) * (1.0 - Rec601_Kr) * Rec601_Kr / Rec601_Kg; - double bp = scaledY + chromaScaleFactor * (Cb - 128) * (1.0 - Rec601_Kb); - - auto R = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(rp)), targetWhiteLevel)); - auto G = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(gp)), targetWhiteLevel)); - auto B = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(bp)), targetWhiteLevel)); - - return RGB(R, G, B); -} - -DWORD YCrCbToRGB_Rec601(BYTE A, BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel) -{ - double targetRange = targetWhiteLevel - targetBlackLevel; - double chromaChannelRange = (sourceWhiteLevel == 235.0 ? 224.0 /* 4:2:0 */ : sourceBlackLevel == 0.0 ? 255.0 /* 4:4:4 */ : 239.0 /* 4:2:2 */) / 2.0; - double chromaScaleFactor = targetRange / chromaChannelRange; - double scaledY = (Y - (sourceBlackLevel - targetBlackLevel)) * (targetRange / (sourceWhiteLevel - sourceBlackLevel)); - - double rp = scaledY + chromaScaleFactor * (Cr - 128) * (1.0 - Rec601_Kr); - double gp = scaledY - chromaScaleFactor * (Cb - 128) * (1.0 - Rec601_Kb) * Rec601_Kb / Rec601_Kg - chromaScaleFactor * (Cr - 128) * (1.0 - Rec601_Kr) * Rec601_Kr / Rec601_Kg; - double bp = scaledY + chromaScaleFactor * (Cb - 128) * (1.0 - Rec601_Kb); - - auto R = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(rp)), targetWhiteLevel)); - auto G = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(gp)), targetWhiteLevel)); - auto B = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(bp)), targetWhiteLevel)); - - return D3DCOLOR_ARGB(A, R, G, B); -} - - -const double Rec709_Kr = 0.2126; -const double Rec709_Kb = 0.0722; -const double Rec709_Kg = 0.7152; - -COLORREF YCrCbToRGB_Rec709(BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel) -{ - double targetRange = targetWhiteLevel - targetBlackLevel; - double chromaChannelRange = (sourceWhiteLevel == 235.0 ? 224.0 /* 4:2:0 */ : sourceBlackLevel == 0.0 ? 255.0 /* 4:4:4 */ : 239.0 /* 4:2:2 */) / 2.0; - double chromaScaleFactor = targetRange / chromaChannelRange; - double scaledY = (Y - (sourceBlackLevel - targetBlackLevel)) * (targetRange / (sourceWhiteLevel - sourceBlackLevel)); - - double rp = scaledY + chromaScaleFactor * (Cr - 128) * (1.0 - Rec709_Kr); - double gp = scaledY - chromaScaleFactor * (Cb - 128) * (1.0 - Rec709_Kb) * Rec709_Kb / Rec709_Kg - chromaScaleFactor * (Cr - 128) * (1.0 - Rec709_Kr) * Rec709_Kr / Rec709_Kg; - double bp = scaledY + chromaScaleFactor * (Cb - 128) * (1.0 - Rec709_Kb); - - auto R = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(rp)), targetWhiteLevel)); - auto G = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(gp)), targetWhiteLevel)); - auto B = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(bp)), targetWhiteLevel)); - - return RGB(R, G, B); -} - -DWORD YCrCbToRGB_Rec709(BYTE A, BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel) -{ - double targetRange = targetWhiteLevel - targetBlackLevel; - double chromaChannelRange = (sourceWhiteLevel == 235.0 ? 224.0 /* 4:2:0 */ : sourceBlackLevel == 0.0 ? 255.0 /* 4:4:4 */ : 239.0 /* 4:2:2 */) / 2.0; - double chromaScaleFactor = targetRange / chromaChannelRange; - double scaledY = (Y - (sourceBlackLevel - targetBlackLevel)) * (targetRange / (sourceWhiteLevel - sourceBlackLevel)); - - double rp = scaledY + chromaScaleFactor * (Cr - 128) * (1.0 - Rec709_Kr); - double gp = scaledY - chromaScaleFactor * (Cb - 128) * (1.0 - Rec709_Kb) * Rec709_Kb / Rec709_Kg - chromaScaleFactor * (Cr - 128) * (1.0 - Rec709_Kr) * Rec709_Kr / Rec709_Kg; - double bp = scaledY + chromaScaleFactor * (Cb - 128) * (1.0 - Rec709_Kb); - - auto R = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(rp)), targetWhiteLevel)); - auto G = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(gp)), targetWhiteLevel)); - auto B = (BYTE)std::max(targetBlackLevel, std::min(std::abs(std::round(bp)), targetWhiteLevel)); - - return D3DCOLOR_ARGB(A, R, G, B); -} - const wchar_t* StreamTypeToName(PES_STREAM_TYPE _Type) { switch (_Type) { @@ -2518,6 +2435,8 @@ const wchar_t* StreamTypeToName(PES_STREAM_TYPE _Type) return L"MPEG-2"; case VIDEO_STREAM_H264: return L"H264"; + case VIDEO_STREAM_HEVC: + return L"HEVC"; case AUDIO_STREAM_LPCM: return L"LPCM"; case AUDIO_STREAM_AC3: diff --git a/src/DSUtil/DSUtil.h b/src/DSUtil/DSUtil.h index f70859fe41f..64a78a856bb 100644 --- a/src/DSUtil/DSUtil.h +++ b/src/DSUtil/DSUtil.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -125,10 +125,6 @@ extern CString ReftimeToString(const REFERENCE_TIME& rtVal); extern CString ReftimeToString2(const REFERENCE_TIME& rtVal); extern CString DVDtimeToString(const DVD_HMSF_TIMECODE& rtVal, bool bAlwaysShowHours = false); extern REFERENCE_TIME StringToReftime(LPCTSTR strVal); -extern COLORREF YCrCbToRGB_Rec601(BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel); -extern COLORREF YCrCbToRGB_Rec709(BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel); -extern DWORD YCrCbToRGB_Rec601(BYTE A, BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel); -extern DWORD YCrCbToRGB_Rec709(BYTE A, BYTE Y, BYTE Cr, BYTE Cb, double sourceBlackLevel, double sourceWhiteLevel, double targetBlackLevel, double targetWhiteLevel); extern void SetThreadName(DWORD dwThreadID, LPCSTR szThreadName); extern void CorrectComboListWidth(CComboBox& m_pComboBox); extern void CorrectComboBoxHeaderWidth(CWnd* pComboBox); @@ -291,7 +287,7 @@ typename std::enable_if::value, T>::type GCD(T a, T b) template typename std::enable_if::value, T>::type GCD(T a, T b) { - typedef std::make_unsigned::type uT; + using uT = typename std::make_unsigned::type; return T(GCD(uT(std::abs(a)), uT(std::abs(b)))); } diff --git a/src/DSUtil/DSUtil.vcxproj b/src/DSUtil/DSUtil.vcxproj index 9d22e901d7a..c145ebfd318 100644 --- a/src/DSUtil/DSUtil.vcxproj +++ b/src/DSUtil/DSUtil.vcxproj @@ -132,6 +132,7 @@ + diff --git a/src/DSUtil/DSUtil.vcxproj.filters b/src/DSUtil/DSUtil.vcxproj.filters index 5079d7b6ffc..56b6610c18d 100644 --- a/src/DSUtil/DSUtil.vcxproj.filters +++ b/src/DSUtil/DSUtil.vcxproj.filters @@ -133,5 +133,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/src/DSUtil/MediaTypeEx.cpp b/src/DSUtil/MediaTypeEx.cpp index d9cde419db6..6fa348df752 100644 --- a/src/DSUtil/MediaTypeEx.cpp +++ b/src/DSUtil/MediaTypeEx.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -262,7 +262,7 @@ CString CMediaTypeEx::GetVideoCodecName(const GUID& subtype, DWORD biCompression for (ptrdiff_t i = 0; i < 4; i++) { if (b[i] >= 'a' && b[i] <= 'z') { - b[i] = toupper(b[i]); + b[i] = (BYTE)toupper(b[i]); } } diff --git a/src/DSUtil/Mpeg2Def.h b/src/DSUtil/Mpeg2Def.h index edd0fd1e84c..ca6baf39fef 100644 --- a/src/DSUtil/Mpeg2Def.h +++ b/src/DSUtil/Mpeg2Def.h @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -54,6 +54,12 @@ enum PES_STREAM_TYPE { AUXILIARY_VIDEO_STREAM = 0x1E, // Auxiliary video stream as defined in ISO/IEC 23002-3 SVC_H264 = 0x1F, // SVC video sub-bitstream of an AVC video stream conforming to one or more profiles defined in Annex G of ITU-T Rec. H.264 | ISO/IEC 14496-10 MVC_H264 = 0x20, // MVC video sub-bitstream of an AVC video stream conforming to one or more profiles defined in Annex H of ITU-T Rec. H.264 | ISO/IEC 14496-10 + VIDEO_STREAM_JPEG2000 = 0x21, // ITU - T Rec.T.800 | ISO / IEC 15444 - 1 + ADDITIONAL_VIEW_MPEG2 = 0x22, // ITU - T Rec.H.262 | ISO / IEC 13818 - 2 Additional view for compatible 3D + ADDITIONAL_VIEW_H264 = 0x23, // ITU - T Rec.H.264 | ISO / IEC 14496 - 10 Additional view for compatible 3D + VIDEO_STREAM_HEVC = 0x24, // ITU - T Rec.H.265 | ISO / IEC 23008 - 2 video stream + VIDEO_SUBSET_HEVC = 0x25, // ITU - T Rec.H.265 | ISO / IEC 23008 - 2 Annex A temporal video subset + MVCD_H264 = 0x26, // ITU - T Rec.H.264 | ISO / IEC 14496 - 10 Annex I MVCD video sub - bitstream AUDIO_STREAM_LPCM = 0x80, AUDIO_STREAM_AC3 = 0x81, AUDIO_STREAM_DTS = 0x82, @@ -166,7 +172,8 @@ enum SERVICE_TYPE { AVC_DIGITAL_RADIO = 0x0A, MPEG2_HD_DIGITAL_TV = 0x11, AVC_SD_TV = 0x16, - AVC_HD_TV = 0x19 + AVC_HD_TV = 0x19, + HEVC_TV = 0x1F }; extern const wchar_t* StreamTypeToName(PES_STREAM_TYPE _Type); diff --git a/src/DSUtil/PathUtils.cpp b/src/DSUtil/PathUtils.cpp index e382083f06f..b46341a87d5 100644 --- a/src/DSUtil/PathUtils.cpp +++ b/src/DSUtil/PathUtils.cpp @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -179,6 +179,11 @@ namespace PathUtils return (attr != INVALID_FILE_ATTRIBUTES) && (attr & FILE_ATTRIBUTE_DIRECTORY); } + bool IsLinkFile(LPCTSTR path) + { + return !FileExt(path).CompareNoCase(_T(".lnk")); + } + bool CreateDirRecursive(LPCTSTR path) { bool ret = IsDir(path) || CreateDirectory(path, nullptr); @@ -187,4 +192,60 @@ namespace PathUtils } return ret; } + + CString ResolveLinkFile(LPCTSTR path) + { + TCHAR buff[MAX_PATH]; + CComPtr pSL; + pSL.CoCreateInstance(CLSID_ShellLink); + CComQIPtr pPF = pSL; + + if (pSL && pPF + && SUCCEEDED(pPF->Load(path, STGM_READ)) + && SUCCEEDED(pSL->Resolve(nullptr, SLR_ANY_MATCH | SLR_NO_UI)) + && SUCCEEDED(pSL->GetPath(buff, _countof(buff), nullptr, 0))) { + return buff; + } + + return _T(""); + } + + void RecurseAddDir(LPCTSTR path, CAtlList& paths) + { + CFileFind finder; + + BOOL bFound = finder.FindFile(PathUtils::CombinePaths(path, _T("*.*"))); + while (bFound) { + bFound = finder.FindNextFile(); + + if (!finder.IsDots() && finder.IsDirectory()) { + CString folderPath = finder.GetFilePath(); + paths.AddTail(folderPath); + RecurseAddDir(folderPath, paths); + } + } + } + + void ParseDirs(CAtlList& paths) + { + POSITION pos = paths.GetHeadPosition(); + while (pos) { + POSITION prevPos = pos; + CString fn = paths.GetNext(pos); + // Try to follow link files that point to a directory + if (IsLinkFile(fn)) { + fn = ResolveLinkFile(fn); + } + + if (IsDir(fn)) { + CAtlList subDirs; + RecurseAddDir(fn, subDirs); + // Add the subdirectories just after their parent + // so that the tree is not parsed multiple times + while (!subDirs.IsEmpty()) { + paths.InsertAfter(prevPos, subDirs.RemoveTail()); + } + } + } + } } diff --git a/src/DSUtil/PathUtils.h b/src/DSUtil/PathUtils.h index bec04b99fa1..f90826fc7f5 100644 --- a/src/DSUtil/PathUtils.h +++ b/src/DSUtil/PathUtils.h @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -39,5 +39,9 @@ namespace PathUtils bool Exists(LPCTSTR path); bool IsFile(LPCTSTR path); bool IsDir(LPCTSTR path); + bool IsLinkFile(LPCTSTR path); bool CreateDirRecursive(LPCTSTR path); + CString ResolveLinkFile(LPCTSTR path); + void RecurseAddDir(LPCTSTR path, CAtlList& sl); + void ParseDirs(CAtlList& pathsList); } diff --git a/src/DSUtil/deinterlace.cpp b/src/DSUtil/deinterlace.cpp index 0ec3850511b..7ef0dce756c 100644 --- a/src/DSUtil/deinterlace.cpp +++ b/src/DSUtil/deinterlace.cpp @@ -1346,7 +1346,7 @@ namespace { } topbuf[wr+16] = topbuf[wr+17] = topbuf[wr+18] = topbuf[wr+15]; - topbuf[wr+16] = topbuf[wr+17] = botbuf[wr+18] = botbuf[wr+15]; + botbuf[wr+16] = botbuf[wr+17] = botbuf[wr+18] = botbuf[wr+15]; ela_L8_scalar(elabuf, topbuf, botbuf, w16); nela_L8_scalar((uint8 *)dst, elabuf, w16); diff --git a/src/DSUtil/text.h b/src/DSUtil/text.h index 08657095d4c..22863a6ddae 100644 --- a/src/DSUtil/text.h +++ b/src/DSUtil/text.h @@ -179,3 +179,10 @@ int FindOneOf(const T& str, typename T::PCXSTR pszCharSet, int iStart) throw() T::PCXSTR psz = T::StrTraits::StringScanSet(str.GetString() + iStart, pszCharSet); return ((psz == NULL) ? -1 : int(psz - str.GetString())); } + +template +CString NumToCString(T num) +{ + static_assert(std::numeric_limits::is_specialized, "NumToCString can be used only for numeric types."); + return std::to_string(num).c_str(); +} diff --git a/src/DSUtil/vd.cpp b/src/DSUtil/vd.cpp index 18647dfb05f..ac15cf11dbd 100644 --- a/src/DSUtil/vd.cpp +++ b/src/DSUtil/vd.cpp @@ -262,6 +262,62 @@ bool BitBltFromRGBToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE* s return VDPixmapBlt(dstpxm, srcbm); } +bool BitBltFromRGBToRGBStretch(int dstw, int dsth, BYTE* dst, int dstpitch, int dbpp, int srcw, int srch, BYTE* src, int srcpitch, int sbpp) +{ + VDPixmap srcbm = { + src + srcpitch * (srch - 1), + nullptr, + srcw, + srch, + -srcpitch + }; + + switch (sbpp) { + case 8: + srcbm.format = nsVDPixmap::kPixFormat_Pal8; + break; + case 16: + srcbm.format = nsVDPixmap::kPixFormat_RGB565; + break; + case 24: + srcbm.format = nsVDPixmap::kPixFormat_RGB888; + break; + case 32: + srcbm.format = nsVDPixmap::kPixFormat_XRGB8888; + break; + default: + VDASSERT(false); + } + + VDPixmap dstpxm = { + dst + dstpitch * (dsth - 1), + nullptr, + dstw, + dsth, + -dstpitch + }; + + switch (dbpp) { + case 8: + dstpxm.format = nsVDPixmap::kPixFormat_Pal8; + break; + case 16: + dstpxm.format = nsVDPixmap::kPixFormat_RGB565; + break; + case 24: + dstpxm.format = nsVDPixmap::kPixFormat_RGB888; + break; + case 32: + dstpxm.format = nsVDPixmap::kPixFormat_XRGB8888; + break; + default: + VDASSERT(false); + } + + return VDPixmapStretchBltBilinear(dstpxm, srcbm); +} + + bool BitBltFromYUY2ToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE* src, int srcpitch) { if (srcpitch == 0) srcpitch = w; diff --git a/src/DSUtil/vd.h b/src/DSUtil/vd.h index f0407dcc111..9ba810b0b5f 100644 --- a/src/DSUtil/vd.h +++ b/src/DSUtil/vd.h @@ -37,6 +37,7 @@ extern bool BitBltFromI420ToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, extern bool BitBltFromYUY2ToYUY2(int w, int h, BYTE* dst, int dstpitch, BYTE* src, int srcpitch); extern bool BitBltFromYUY2ToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE* src, int srcpitch); extern bool BitBltFromRGBToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE* src, int srcpitch, int sbpp); +extern bool BitBltFromRGBToRGBStretch(int dstw, int dsth, BYTE* dst, int dstpitch, int dbpp, int srcw, int srch, BYTE* src, int srcpitch, int sbpp); extern void DeinterlaceBlend(BYTE* dst, BYTE* src, DWORD rowbytes, DWORD h, DWORD dstpitch, DWORD srcpitch); extern void DeinterlaceBob(BYTE* dst, BYTE* src, DWORD rowbytes, DWORD h, DWORD dstpitch, DWORD srcpitch, bool topfield); diff --git a/src/DeCSS/DeCSSInputPin.cpp b/src/DeCSS/DeCSSInputPin.cpp index c76ef19a120..41f78df1647 100644 --- a/src/DeCSS/DeCSSInputPin.cpp +++ b/src/DeCSS/DeCSSInputPin.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -289,7 +289,7 @@ STDMETHODIMP CDeCSSInputPin::Get(REFGUID PropSet, ULONG Id, LPVOID pInstanceData switch (Id) { case AM_PROPERTY_DVDCOPY_CHLG_KEY: { // 1. auth: send our nonce word AM_DVDCOPY_CHLGKEY* pChlgKey = (AM_DVDCOPY_CHLGKEY*)pPropertyData; - for (int i = 0; i < 10; i++) { + for (BYTE i = 0; i < 10; i++) { pChlgKey->ChlgKey[i] = 9 - (m_Challenge[i] = i); } *pBytesReturned = sizeof(AM_DVDCOPY_CHLGKEY); diff --git a/src/DeCSS/VobFile.cpp b/src/DeCSS/VobFile.cpp index af8b8c64d0d..8a8ef473e1f 100644 --- a/src/DeCSS/VobFile.cpp +++ b/src/DeCSS/VobFile.cpp @@ -97,7 +97,7 @@ bool CDVDSession::Authenticate() BYTE Challenge[10], Key[10]; - for (int i = 0; i < 10; i++) { + for (BYTE i = 0; i < 10; i++) { Challenge[i] = i; } @@ -205,74 +205,94 @@ static void Reverse(BYTE* d, BYTE* s, int len) bool CDVDSession::SendKey(DVD_KEY_TYPE KeyType, BYTE* pKeyData) { - CAutoPtr key; + CAutoVectorPtr key; + DVD_COPY_PROTECT_KEY* pKey = nullptr; + + auto allocateKey = [&](ULONG len) { + bool bSuccess = key.Allocate(len); + if (bSuccess) { + pKey = (DVD_COPY_PROTECT_KEY*)(BYTE*)key; + pKey->KeyLength = len; + } + return bSuccess; + }; switch (KeyType) { case DvdChallengeKey: - key.Attach((DVD_COPY_PROTECT_KEY*)DEBUG_NEW BYTE[DVD_CHALLENGE_KEY_LENGTH]); - key->KeyLength = DVD_CHALLENGE_KEY_LENGTH; - Reverse(key->KeyData, pKeyData, 10); + if (allocateKey(DVD_CHALLENGE_KEY_LENGTH)) { + Reverse(pKey->KeyData, pKeyData, 10); + } break; case DvdBusKey2: - key.Attach((DVD_COPY_PROTECT_KEY*)DEBUG_NEW BYTE[DVD_BUS_KEY_LENGTH]); - key->KeyLength = DVD_BUS_KEY_LENGTH; - Reverse(key->KeyData, pKeyData, 5); + if (allocateKey(DVD_BUS_KEY_LENGTH)) { + Reverse(pKey->KeyData, pKeyData, 5); + } break; default: break; } - if (!key) { + if (!pKey) { return false; } - key->SessionId = m_session; - key->KeyType = KeyType; - key->KeyFlags = 0; + pKey->SessionId = m_session; + pKey->KeyType = KeyType; + pKey->KeyFlags = 0; - DWORD BytesReturned; - return !!DeviceIoControl(m_hDrive, IOCTL_DVD_SEND_KEY, key, key->KeyLength, nullptr, 0, &BytesReturned, nullptr); + DWORD dwBytesReturned; + return !!DeviceIoControl(m_hDrive, IOCTL_DVD_SEND_KEY, pKey, pKey->KeyLength, nullptr, 0, &dwBytesReturned, nullptr); } bool CDVDSession::ReadKey(DVD_KEY_TYPE KeyType, BYTE* pKeyData, int lba) { - CAutoPtr key; + CAutoVectorPtr key; + DVD_COPY_PROTECT_KEY* pKey = nullptr; + + auto allocateKey = [&](ULONG len) { + bool bSuccess = key.Allocate(len); + if (bSuccess) { + pKey = (DVD_COPY_PROTECT_KEY*)(BYTE*)key; + pKey->KeyLength = len; + } + return bSuccess; + }; switch (KeyType) { case DvdChallengeKey: - key.Attach((DVD_COPY_PROTECT_KEY*)DEBUG_NEW BYTE[DVD_CHALLENGE_KEY_LENGTH]); - key->KeyLength = DVD_CHALLENGE_KEY_LENGTH; - key->Parameters.TitleOffset.QuadPart = 0; + if (allocateKey(DVD_CHALLENGE_KEY_LENGTH)) { + pKey->Parameters.TitleOffset.QuadPart = 0; + } break; case DvdBusKey1: - key.Attach((DVD_COPY_PROTECT_KEY*)DEBUG_NEW BYTE[DVD_BUS_KEY_LENGTH]); - key->KeyLength = DVD_BUS_KEY_LENGTH; - key->Parameters.TitleOffset.QuadPart = 0; + if (allocateKey(DVD_BUS_KEY_LENGTH)) { + pKey->Parameters.TitleOffset.QuadPart = 0; + } break; case DvdDiskKey: - key.Attach((DVD_COPY_PROTECT_KEY*)DEBUG_NEW BYTE[DVD_DISK_KEY_LENGTH]); - key->KeyLength = DVD_DISK_KEY_LENGTH; - key->Parameters.TitleOffset.QuadPart = 0; + if (allocateKey(DVD_DISK_KEY_LENGTH)) { + pKey->Parameters.TitleOffset.QuadPart = 0; + } break; case DvdTitleKey: - key.Attach((DVD_COPY_PROTECT_KEY*)DEBUG_NEW BYTE[DVD_TITLE_KEY_LENGTH]); - key->KeyLength = DVD_TITLE_KEY_LENGTH; - key->Parameters.TitleOffset.QuadPart = 2048i64 * lba; + if (allocateKey(DVD_TITLE_KEY_LENGTH)) { + pKey->Parameters.TitleOffset.QuadPart = 2048i64 * lba; + } break; default: break; } - if (!key) { + if (!pKey) { return false; } - key->SessionId = m_session; - key->KeyType = KeyType; - key->KeyFlags = 0; + pKey->SessionId = m_session; + pKey->KeyType = KeyType; + pKey->KeyFlags = 0; - DWORD BytesReturned; - if (!DeviceIoControl(m_hDrive, IOCTL_DVD_READ_KEY, key, key->KeyLength, key, key->KeyLength, &BytesReturned, nullptr)) { + DWORD dwBytesReturned; + if (!DeviceIoControl(m_hDrive, IOCTL_DVD_READ_KEY, pKey, pKey->KeyLength, pKey, pKey->KeyLength, &dwBytesReturned, nullptr)) { DWORD err = GetLastError(); UNREFERENCED_PARAMETER(err); return false; @@ -280,19 +300,19 @@ bool CDVDSession::ReadKey(DVD_KEY_TYPE KeyType, BYTE* pKeyData, int lba) switch (KeyType) { case DvdChallengeKey: - Reverse(pKeyData, key->KeyData, 10); + Reverse(pKeyData, pKey->KeyData, 10); break; case DvdBusKey1: - Reverse(pKeyData, key->KeyData, 5); + Reverse(pKeyData, pKey->KeyData, 5); break; case DvdDiskKey: - memcpy(pKeyData, key->KeyData, 2048); + memcpy(pKeyData, pKey->KeyData, 2048); for (int i = 0; i < 2048 / 5; i++) { pKeyData[i] ^= m_SessionKey[4 - (i % 5)]; } break; case DvdTitleKey: - memcpy(pKeyData, key->KeyData, 5); + memcpy(pKeyData, pKey->KeyData, 5); for (int i = 0; i < 5; i++) { pKeyData[i] ^= m_SessionKey[4 - (i % 5)]; } @@ -533,7 +553,7 @@ bool CVobFile::Open(CString fn, CAtlList& vobs, ULONG nProgNum /*= 1*/, int cellTableOffset = ReadShort(); REFERENCE_TIME rtDuration = 0; m_pChapters[0] = 0; - for (int currentProgram = 0; currentProgram < programChainPrograms; currentProgram++) { + for (BYTE currentProgram = 0; currentProgram < programChainPrograms; currentProgram++) { m_ifoFile.Seek(pcgITPosition + chainOffset + programMapOffset + currentProgram, CFile::begin); byte entryCell = ReadByte(); byte exitCell = entryCell; @@ -834,6 +854,7 @@ BSTR CVobFile::GetTrackName(UINT aTrackIdx) const REFERENCE_TIME CVobFile::GetChapterOffset(UINT ChapterNumber) const { REFERENCE_TIME rtChapterOffset = 0; - m_pChapters.Lookup(ChapterNumber, rtChapterOffset); + ASSERT(ChapterNumber < BYTE_MAX); + m_pChapters.Lookup((BYTE)ChapterNumber, rtChapterOffset); return rtChapterOffset; } diff --git a/src/DeCSS/udf.cpp b/src/DeCSS/udf.cpp index fcf6c79978b..ac1e08786a5 100644 --- a/src/DeCSS/udf.cpp +++ b/src/DeCSS/udf.cpp @@ -126,7 +126,7 @@ tp_udf_file udf_get_root(const HANDLE hDrive, const WORD partition_number) if (vol_valid) { // extract vol->FileSetDescriptorSequence FileDescriptorSequence_lba = vol->FileSetDescriptorSequence.Location.Location; - DWORD FileDescriptorSequence_lba_end = FileDescriptorSequence_lba + ((vol->FileSetDescriptorSequence.Length & udf_LengthMask) - 1) / sec_size; + // DWORD FileDescriptorSequence_lba_end = FileDescriptorSequence_lba + ((vol->FileSetDescriptorSequence.Length & udf_LengthMask) - 1) / sec_size; } } } else { diff --git a/src/SubPic/ISubPic.h b/src/SubPic/ISubPic.h index fa89052c77c..11766d37f65 100644 --- a/src/SubPic/ISubPic.h +++ b/src/SubPic/ISubPic.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -219,6 +219,7 @@ public IPersist { STDMETHOD_(int, GetStream)() PURE; STDMETHOD(SetStream)(int iStream) PURE; STDMETHOD(Reload)() PURE; + STDMETHOD(SetSourceTargetInfo)(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel) PURE; // TODO: get rid of IPersist to identify type and use only // interface functions to modify the settings of the substream diff --git a/src/SubPic/MemSubPic.cpp b/src/SubPic/MemSubPic.cpp index 1505f4cb063..defab054de1 100644 --- a/src/SubPic/MemSubPic.cpp +++ b/src/SubPic/MemSubPic.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -62,7 +62,7 @@ void ColorConvInit() for (int i = 0; i < 256; i++) { clipBase[i] = 0; - clipBase[i + 256] = i; + clipBase[i + 256] = BYTE(i); clipBase[i + 512] = 255; } @@ -84,8 +84,9 @@ void ColorConvInit() // CMemSubPic // -CMemSubPic::CMemSubPic(const SubPicDesc& spd) - : m_spd(spd) +CMemSubPic::CMemSubPic(const SubPicDesc& spd, CMemSubPicAllocator* pAllocator) + : m_pAllocator(pAllocator) + , m_spd(spd) { m_maxsize.SetSize(spd.w, spd.h); m_rcDirty.SetRect(0, 0, spd.w, spd.h); @@ -93,7 +94,10 @@ CMemSubPic::CMemSubPic(const SubPicDesc& spd) CMemSubPic::~CMemSubPic() { - delete [] m_spd.bits; + m_pAllocator->FreeSpdBits(m_spd); + if (m_resizedSpd) { + m_pAllocator->FreeSpdBits(*m_resizedSpd); + } } // ISubPic @@ -106,8 +110,8 @@ STDMETHODIMP_(void*) CMemSubPic::GetObject() STDMETHODIMP CMemSubPic::GetDesc(SubPicDesc& spd) { spd.type = m_spd.type; - spd.w = m_size.cx; - spd.h = m_size.cy; + spd.w = m_spd.w; + spd.h = m_spd.h; spd.bpp = m_spd.bpp; spd.pitch = m_spd.pitch; spd.bits = m_spd.bits; @@ -130,6 +134,13 @@ STDMETHODIMP CMemSubPic::CopyTo(ISubPic* pSubPic) return E_FAIL; } + if (auto subPic = dynamic_cast(pSubPic)) { + ASSERT(subPic->m_pAllocator == m_pAllocator); + ASSERT(subPic->m_resizedSpd == nullptr); + // Move because we are not going to reuse it. + subPic->m_resizedSpd = std::move(m_resizedSpd); + } + int w = m_rcDirty.Width(), h = m_rcDirty.Height(); BYTE* s = src.bits + src.pitch * m_rcDirty.top + m_rcDirty.left * 4; BYTE* d = dst.bits + dst.pitch * m_rcDirty.top + m_rcDirty.left * 4; @@ -181,26 +192,61 @@ STDMETHODIMP CMemSubPic::Unlock(RECT* pDirtyRect) return S_OK; } - if (m_spd.type == MSP_YUY2 || m_spd.type == MSP_YV12 || m_spd.type == MSP_IYUV || m_spd.type == MSP_AYUV) { + CRect r = m_spd.vidrect; + CRect rcDirty = m_rcDirty; + if (m_spd.h != r.Height() || m_spd.w != r.Width()) { + if (!m_resizedSpd) { + m_resizedSpd = std::unique_ptr(DEBUG_NEW SubPicDesc); + } + + m_resizedSpd->type = m_spd.type; + m_resizedSpd->w = r.Width(); + m_resizedSpd->h = r.Height(); + m_resizedSpd->pitch = r.Width() * 4; + m_resizedSpd->bpp = m_spd.bpp; + + if (!m_resizedSpd->bits) { + m_pAllocator->AllocSpdBits(*m_resizedSpd); + } + + BitBltFromRGBToRGBStretch(m_resizedSpd->w, m_resizedSpd->h, m_resizedSpd->bits, m_resizedSpd->pitch, m_resizedSpd->bpp + , m_spd.w, m_spd.h, m_spd.bits, m_spd.pitch, m_spd.bpp); + TRACE("CMemSubPic: Resized SubPic %dx%d -> %dx%d\n", m_spd.w, m_spd.h, r.Width(), r.Height()); + + // Set whole resized spd as dirty, we are not going to reuse it. + rcDirty.SetRect(0, 0, m_resizedSpd->w, m_resizedSpd->h); + } else if (m_resizedSpd) { + // Resize is not needed so release m_resizedSpd. + m_pAllocator->FreeSpdBits(*m_resizedSpd); + m_resizedSpd = nullptr; + } + + const SubPicDesc& subPic = m_resizedSpd ? *m_resizedSpd : m_spd; + + if (subPic.type == MSP_YUY2 || subPic.type == MSP_YV12 || subPic.type == MSP_IYUV || subPic.type == MSP_AYUV) { ColorConvInit(); - if (m_spd.type == MSP_YUY2 || m_spd.type == MSP_YV12 || m_spd.type == MSP_IYUV) { - m_rcDirty.left &= ~1; - m_rcDirty.right = (m_rcDirty.right + 1) & ~1; + if (subPic.type == MSP_YUY2 || subPic.type == MSP_YV12 || subPic.type == MSP_IYUV) { + rcDirty.left &= ~1; + rcDirty.right = (rcDirty.right + 1) & ~1; - if (m_spd.type == MSP_YV12 || m_spd.type == MSP_IYUV) { - m_rcDirty.top &= ~1; - m_rcDirty.bottom = (m_rcDirty.bottom + 1) & ~1; + if (subPic.type == MSP_YV12 || subPic.type == MSP_IYUV) { + rcDirty.top &= ~1; + rcDirty.bottom = (rcDirty.bottom + 1) & ~1; } } } - int w = m_rcDirty.Width(), h = m_rcDirty.Height(); - BYTE* top = m_spd.bits + m_spd.pitch * m_rcDirty.top + m_rcDirty.left * 4; - BYTE* bottom = top + m_spd.pitch * h; + if (!m_resizedSpd) { + m_rcDirty = rcDirty; + } + + int w = rcDirty.Width(), h = rcDirty.Height(); + BYTE* top = subPic.bits + subPic.pitch * rcDirty.top + rcDirty.left * 4; + BYTE* bottom = top + subPic.pitch * h; - if (m_spd.type == MSP_RGB16) { - for (; top < bottom ; top += m_spd.pitch) { + if (subPic.type == MSP_RGB16) { + for (; top < bottom ; top += subPic.pitch) { DWORD* s = (DWORD*)top; DWORD* e = s + w; for (; s < e; s++) { @@ -208,8 +254,8 @@ STDMETHODIMP CMemSubPic::Unlock(RECT* pDirtyRect) //*s = (*s&0xff000000)|((*s>>8)&0xf800)|((*s>>5)&0x07e0)|((*s>>3)&0x001f); } } - } else if (m_spd.type == MSP_RGB15) { - for (; top < bottom; top += m_spd.pitch) { + } else if (subPic.type == MSP_RGB15) { + for (; top < bottom; top += subPic.pitch) { DWORD* s = (DWORD*)top; DWORD* e = s + w; for (; s < e; s++) { @@ -217,14 +263,14 @@ STDMETHODIMP CMemSubPic::Unlock(RECT* pDirtyRect) //*s = (*s&0xff000000)|((*s>>9)&0x7c00)|((*s>>6)&0x03e0)|((*s>>3)&0x001f); } } - } else if (m_spd.type == MSP_YUY2 || m_spd.type == MSP_YV12 || m_spd.type == MSP_IYUV) { - for (; top < bottom ; top += m_spd.pitch) { + } else if (subPic.type == MSP_YUY2 || subPic.type == MSP_YV12 || subPic.type == MSP_IYUV) { + for (; top < bottom ; top += subPic.pitch) { BYTE* s = top; BYTE* e = s + w * 4; for (; s < e; s += 8) { // ARGB ARGB -> AxYU AxYV if ((s[3] + s[7]) < 0x1fe) { - s[1] = (c2y_yb[s[0]] + c2y_yg[s[1]] + c2y_yr[s[2]] + 0x108000) >> 16; - s[5] = (c2y_yb[s[4]] + c2y_yg[s[5]] + c2y_yr[s[6]] + 0x108000) >> 16; + s[1] = BYTE((c2y_yb[s[0]] + c2y_yg[s[1]] + c2y_yr[s[2]] + 0x108000) >> 16); + s[5] = BYTE((c2y_yb[s[4]] + c2y_yg[s[5]] + c2y_yr[s[6]] + 0x108000) >> 16); int scaled_y = (s[1] + s[5] - 32) * cy_cy2; @@ -236,14 +282,14 @@ STDMETHODIMP CMemSubPic::Unlock(RECT* pDirtyRect) } } } - } else if (m_spd.type == MSP_AYUV) { - for (; top < bottom ; top += m_spd.pitch) { + } else if (subPic.type == MSP_AYUV) { + for (; top < bottom ; top += subPic.pitch) { BYTE* s = top; BYTE* e = s + w * 4; for (; s < e; s += 4) { // ARGB -> AYUV if (s[3] < 0xff) { - int y = (c2y_yb[s[0]] + c2y_yg[s[1]] + c2y_yr[s[2]] + 0x108000) >> 16; + auto y = BYTE((c2y_yb[s[0]] + c2y_yg[s[1]] + c2y_yr[s[2]] + 0x108000) >> 16); int scaled_y = (y - 32) * cy_cy; s[1] = clip[((((s[0] << 16) - scaled_y) >> 10) * c2y_cu + 0x800000 + 0x8000) >> 16]; s[0] = clip[((((s[2] << 16) - scaled_y) >> 10) * c2y_cv + 0x800000 + 0x8000) >> 16]; @@ -373,7 +419,7 @@ STDMETHODIMP CMemSubPic::AlphaBlt(RECT* pSrc, RECT* pDst, SubPicDesc* pTarget) return E_POINTER; } - const SubPicDesc& src = m_spd; + const SubPicDesc& src = m_resizedSpd ? *m_resizedSpd : m_spd; SubPicDesc dst = *pTarget; // copy, because we might modify it if (src.type != dst.type) { @@ -382,6 +428,10 @@ STDMETHODIMP CMemSubPic::AlphaBlt(RECT* pSrc, RECT* pDst, SubPicDesc* pTarget) CRect rs(*pSrc), rd(*pDst); + if (m_resizedSpd) { + rs = rd = CRect(0, 0, m_resizedSpd->w, m_resizedSpd->h); + } + if (dst.h < 0) { dst.h = -dst.h; rd.bottom = dst.h - rd.bottom; @@ -565,7 +615,7 @@ STDMETHODIMP CMemSubPic::AlphaBlt(RECT* pSrc, RECT* pDst, SubPicDesc* pTarget) for (; s2 < s2end; s2 += 8, d2++, is2 += 8) { unsigned int ia = (s2[3] + s2[3 + src.pitch] + is2[3] + is2[3 + src.pitch]) >> 2; if (ia < 0xff) { - *d2 = (((*d2 - 0x80) * ia) >> 8) + ((s2[0] + s2[src.pitch]) >> 1); + *d2 = BYTE((((*d2 - 0x80) * ia) >> 8) + ((s2[0] + s2[src.pitch]) >> 1)); } } } @@ -586,11 +636,20 @@ CMemSubPicAllocator::CMemSubPicAllocator(int type, SIZE maxsize) { } +CMemSubPicAllocator::~CMemSubPicAllocator() +{ + CAutoLock cAutoLock(this); + + for (const auto& p : m_freeMemoryChunks) { + delete[] std::get<1>(p); + } +} + // ISubPicAllocatorImpl bool CMemSubPicAllocator::Alloc(bool fStatic, ISubPic** ppSubPic) { - if (!ppSubPic) { + if (!ppSubPic || m_maxsize.cx <= 0 || m_maxsize.cy <= 0) { return false; } @@ -600,15 +659,14 @@ bool CMemSubPicAllocator::Alloc(bool fStatic, ISubPic** ppSubPic) spd.bpp = 32; spd.pitch = (spd.w * spd.bpp) >> 3; spd.type = m_type; - try { - spd.bits = DEBUG_NEW BYTE[spd.pitch * spd.h]; - } catch (CMemoryException* e) { - e->Delete(); + spd.vidrect = m_curvidrect; + + if (!AllocSpdBits(spd)) { return false; } try { - *ppSubPic = DEBUG_NEW CMemSubPic(spd); + *ppSubPic = DEBUG_NEW CMemSubPic(spd, this); } catch (CMemoryException* e) { e->Delete(); delete [] spd.bits; @@ -619,3 +677,57 @@ bool CMemSubPicAllocator::Alloc(bool fStatic, ISubPic** ppSubPic) return true; } + +bool CMemSubPicAllocator::AllocSpdBits(SubPicDesc& spd) +{ + CAutoLock cAutoLock(this); + + ASSERT(!spd.bits); + ASSERT(spd.pitch * spd.h > 0); + + auto it = std::find_if(m_freeMemoryChunks.cbegin(), m_freeMemoryChunks.cend(), [&](const std::pair& p) { + return std::get<0>(p) == size_t(spd.pitch) * spd.h; + }); + + if (it != m_freeMemoryChunks.cend()) { + spd.bits = std::get<1>(*it); + m_freeMemoryChunks.erase(it); + } else { + try { + spd.bits = DEBUG_NEW BYTE[spd.pitch * spd.h]; + } catch (CMemoryException* e) { + ASSERT(FALSE); + e->Delete(); + return false; + } + } + return true; +} + +void CMemSubPicAllocator::FreeSpdBits(SubPicDesc& spd) +{ + CAutoLock cAutoLock(this); + + ASSERT(spd.bits); + m_freeMemoryChunks.emplace_back(spd.pitch * spd.h, spd.bits); + spd.bits = nullptr; +} + +STDMETHODIMP CMemSubPicAllocator::SetMaxTextureSize(SIZE maxTextureSize) +{ + if (m_maxsize != maxTextureSize) { + m_maxsize = maxTextureSize; + CAutoLock cAutoLock(this); + for (const auto& p : m_freeMemoryChunks) { + delete[] std::get<1>(p); + } + m_freeMemoryChunks.clear(); + } + return S_OK; +} + +STDMETHODIMP CMemSubPicAllocator::SetCurVidRect(RECT curvidrect) +{ + m_curvidrect = curvidrect; + return __super::SetCurVidRect(curvidrect); +} diff --git a/src/SubPic/MemSubPic.h b/src/SubPic/MemSubPic.h index 091a6237166..903639c0253 100644 --- a/src/SubPic/MemSubPic.h +++ b/src/SubPic/MemSubPic.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,6 +22,8 @@ #pragma once #include "SubPicImpl.h" +#include +#include enum { MSP_RGB32, @@ -36,16 +38,19 @@ enum { }; // CMemSubPic - +class CMemSubPicAllocator; class CMemSubPic : public CSubPicImpl { + CComPtr m_pAllocator; + SubPicDesc m_spd; + std::unique_ptr m_resizedSpd; protected: STDMETHODIMP_(void*) GetObject(); // returns SubPicDesc* public: - CMemSubPic(const SubPicDesc& spd); + CMemSubPic(const SubPicDesc& spd, CMemSubPicAllocator* pAllocator); virtual ~CMemSubPic(); // ISubPic @@ -59,13 +64,23 @@ class CMemSubPic : public CSubPicImpl // CMemSubPicAllocator -class CMemSubPicAllocator : public CSubPicAllocatorImpl +class CMemSubPicAllocator : public CSubPicAllocatorImpl, public CCritSec { int m_type; CSize m_maxsize; + CRect m_curvidrect; + + std::vector> m_freeMemoryChunks; bool Alloc(bool fStatic, ISubPic** ppSubPic); public: CMemSubPicAllocator(int type, SIZE maxsize); + virtual ~CMemSubPicAllocator(); + + bool AllocSpdBits(SubPicDesc& spd); + void FreeSpdBits(SubPicDesc& spd); + + STDMETHODIMP SetMaxTextureSize(SIZE maxTextureSize) override; + STDMETHODIMP SetCurVidRect(RECT curvidrect) override; }; diff --git a/src/SubPic/SubPicAllocatorPresenterImpl.cpp b/src/SubPic/SubPicAllocatorPresenterImpl.cpp index 61d96739831..80cd05170e7 100644 --- a/src/SubPic/SubPicAllocatorPresenterImpl.cpp +++ b/src/SubPic/SubPicAllocatorPresenterImpl.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -70,6 +70,7 @@ STDMETHODIMP CSubPicAllocatorPresenterImpl::NonDelegatingQueryInterface(REFIID r QI(ISubPicAllocatorPresenter2) QI(ISubRenderOptions) QI(ISubRenderConsumer) + QI(ISubRenderConsumer2) __super::NonDelegatingQueryInterface(riid, ppv); } @@ -483,10 +484,21 @@ STDMETHODIMP CSubPicAllocatorPresenterImpl::Connect(ISubRenderProvider* subtitle : (ISubPicQueue*)DEBUG_NEW CXySubPicQueueNoThread(m_pAllocator, &hr); */ + // Lock and wait for m_pAllocator to be ready. + CAutoLock cAutoLock(this); + if (!m_pAllocator) { + std::mutex mutexAllocator; + std::unique_lock lock(mutexAllocator); + if (!m_condAllocatorReady.wait_for(lock, std::chrono::seconds(1), [&]() {return !!m_pAllocator;})) { + // Return early, CXySubPicQueueNoThread ctor would fail anyway. + ASSERT(FALSE); + return E_FAIL; + } + } + CComPtr pSubPicQueue = (ISubPicQueue*)DEBUG_NEW CXySubPicQueueNoThread(m_pAllocator, &hr); if (SUCCEEDED(hr)) { - CAutoLock cAutoLock(this); pSubPicQueue->SetSubPicProvider(pSubPicProvider); m_pSubPicProvider = pSubPicProvider; m_pSubPicQueue = pSubPicQueue; diff --git a/src/SubPic/SubPicAllocatorPresenterImpl.h b/src/SubPic/SubPicAllocatorPresenterImpl.h index 40ce613cfb4..5b2e5a2d432 100644 --- a/src/SubPic/SubPicAllocatorPresenterImpl.h +++ b/src/SubPic/SubPicAllocatorPresenterImpl.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -23,6 +23,7 @@ #include #include +#include #include "ISubPic.h" #include "CoordGeom.h" #include "SubRenderIntf.h" @@ -54,6 +55,8 @@ class CSubPicAllocatorPresenterImpl CComPtr m_pAllocator; CComPtr m_pSubPicQueue; + std::condition_variable m_condAllocatorReady; + bool m_bDeviceResetRequested; bool m_bPendingResetDevice; diff --git a/src/SubPic/SubPicImpl.h b/src/SubPic/SubPicImpl.h index febb1d08e98..18c388c1ed4 100644 --- a/src/SubPic/SubPicImpl.h +++ b/src/SubPic/SubPicImpl.h @@ -135,6 +135,6 @@ class CSubPicAllocatorImpl : public CUnknown, public ISubPicAllocator STDMETHODIMP AllocDynamic(ISubPic** ppSubPic); STDMETHODIMP_(bool) IsDynamicWriteOnly() const; STDMETHODIMP ChangeDevice(IUnknown* pDev); - STDMETHODIMP SetMaxTextureSize(SIZE maxTextureSize) { return E_NOTIMPL; }; + STDMETHODIMP SetMaxTextureSize(SIZE maxTextureSize) PURE; STDMETHODIMP FreeStatic(); }; diff --git a/src/SubPic/SubPicQueueImpl.cpp b/src/SubPic/SubPicQueueImpl.cpp index ffbbc9fe3d5..f5d7abc22cf 100644 --- a/src/SubPic/SubPicQueueImpl.cpp +++ b/src/SubPic/SubPicQueueImpl.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -180,6 +180,9 @@ CSubPicQueue::~CSubPicQueue() m_bExitThread = true; SetSubPicProvider(nullptr); CAMThread::Close(); + if (m_pAllocator) { + m_pAllocator->FreeStatic(); + } } // ISubPicQueue @@ -688,6 +691,9 @@ CSubPicQueueNoThread::CSubPicQueueNoThread(SubPicQueueSettings settings, ISubPic CSubPicQueueNoThread::~CSubPicQueueNoThread() { + if (m_pAllocator) { + m_pAllocator->FreeStatic(); + } } // ISubPicQueue diff --git a/src/Subtitles/ColorConvTable.cpp b/src/Subtitles/ColorConvTable.cpp new file mode 100644 index 00000000000..092d91e179a --- /dev/null +++ b/src/Subtitles/ColorConvTable.cpp @@ -0,0 +1,885 @@ +/* +* (C) 2015 see Authors.txt +* +* This file is part of MPC-HC. +* +* MPC-HC is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 3 of the License, or +* (at your option) any later version. +* +* MPC-HC is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +*/ + +#include "stdafx.h" +#include "ColorConvTable.h" + +/************************************ +Formula: +Ey => [0,1] +Eu => [-0.5,0.5] +Ev => [-0.5,0.5] +Er => [0,1] +Eg => [0,1] +Eb => [0,1] + +1 = Kr + Kg + Kb +Ey = Kr * Er + Kg * Eg + Kb * Eb; +Eu = (Eb - Ey) / (1 - Kb) / 2; +Ev = (Er - Ey) / (1 - Kr) / 2; + +Quantization: +ANY = ANY * RANGE_SIZE + BASE + +Range: +TV Level +Y => [16, 235] +U => [16, 240] +V => [16, 240] + +R => [16, 235] +G => [16, 235] +B => [16, 235] +PC Level +Y => [0,255] +U => [0,255] +V => [0,255] + +R => [0,255] +G => [0,255] +B => [0,255] +************************************/ + +//RGB to YUV +#define DEFINE_YUV_MATRIX(Kr,Kg,Kb) { \ + { Kr , Kg , Kb , 0},\ + { -Kr /((1-Kb)*2), -Kg/((1-Kb)*2),(1-Kb)/((1-Kb)*2), 0},\ + {(1-Kr)/((1-Kr)*2), -Kg/((1-Kr)*2), -Kb /((1-Kr)*2), 0} \ +} + +//YUV to RGB: INV stand for inverse +#define DEFINE_YUV_MATRIX_INV(Kr,Kg,Kb) { \ + { 1, 0 , 2*(1-Kr) , 0},\ + { 1, -2*(1-Kb)*Kb/Kg, -2*(1-Kr)*Kr/Kg, 0},\ + { 1, 2*(1-Kb) , 0 , 0} \ +} + +const float MATRIX_BT_601[3][4] = DEFINE_YUV_MATRIX(0.299f, 0.587f, 0.114f); +const float MATRIX_BT_601_INV[3][4] = DEFINE_YUV_MATRIX_INV(0.299f, 0.587f, 0.114f); +const float MATRIX_BT_709[3][4] = DEFINE_YUV_MATRIX(0.2126f, 0.7152f, 0.0722f); +const float MATRIX_BT_709_INV[3][4] = DEFINE_YUV_MATRIX_INV(0.2126f, 0.7152f, 0.0722f); +const float YUV_PC[3][4] = { + { 255, 0, 0, 0 }, + { 0, 255, 0, 128 }, + { 0, 0, 255, 128 } +}; +const float YUV_PC_INV[3][4] = { + { 1 / 255.0f, 0, 0, 0 }, + { 0, 1 / 255.0f, 0, -128 / 255.0f }, + { 0, 0, 1 / 255.0f, -128 / 255.0f } +}; +const float YUV_TV[3][4] = { + { 219, 0, 0, 16 }, + { 0, 224, 0, 128 }, + { 0, 0, 224, 128 } +}; +const float YUV_TV_INV[3][4] = { + { 1 / 219.0f, 0, 0, -16 / 219.0f }, + { 0, 1 / 224.0f, 0, -128 / 224.0f }, + { 0, 0, 1 / 224.0f, -128 / 224.0f } +}; +const float RGB_PC[3][4] = { + { 255, 0, 0, 0 }, + { 0, 255, 0, 0 }, + { 0, 0, 255, 0 } +}; +const float RGB_PC_INV[3][4] = { + { 1 / 255.0f, 0, 0, 0 }, + { 0, 1 / 255.0f, 0, 0 }, + { 0, 0, 1 / 255.0f, 0 } +}; +const float RGB_TV[3][4] = { + { 219, 0, 0, 16 }, + { 0, 219, 0, 16 }, + { 0, 0, 219, 16 } +}; +const float RGB_TV_INV[3][4] = { + { 1 / 219.0f, 0, 0, -16 / 219.0f }, + { 0, 1 / 219.0f, 0, -16 / 219.0f }, + { 0, 0, 1 / 219.0f, -16 / 219.0f } +}; +const float IDENTITY[3][4] = { + { 1, 0, 0, 0 }, + { 0, 1, 0, 0 }, + { 0, 0, 1, 0 } +}; + +inline int clip(int value, int upper_bound) +{ + value &= ~(value >> 31); //value = value > 0 ? value : 0 + return value ^ ((value ^ upper_bound) & ((upper_bound - value) >> 31)); //value = value < upper_bound ? value : upper_bound +} + +#define E(M,i,j) M[i*4+j] + +void MultiplyMatrix(float* lhs_in_out, const float* rhs) +{ + float tmp1; + float tmp2; + float tmp3; + + tmp1 = E(lhs_in_out, 0, 0); + tmp2 = E(lhs_in_out, 0, 1); + tmp3 = E(lhs_in_out, 0, 2); + + E(lhs_in_out, 0, 0) = tmp1 * E(rhs, 0, 0) + tmp2 * E(rhs, 1, 0) + tmp3 * E(rhs, 2, 0); + E(lhs_in_out, 0, 1) = tmp1 * E(rhs, 0, 1) + tmp2 * E(rhs, 1, 1) + tmp3 * E(rhs, 2, 1); + E(lhs_in_out, 0, 2) = tmp1 * E(rhs, 0, 2) + tmp2 * E(rhs, 1, 2) + tmp3 * E(rhs, 2, 2); + E(lhs_in_out, 0, 3) = tmp1 * E(rhs, 0, 3) + tmp2 * E(rhs, 1, 3) + tmp3 * E(rhs, 2, 3) + E(lhs_in_out, 0, 3); + + tmp1 = E(lhs_in_out, 1, 0); + tmp2 = E(lhs_in_out, 1, 1); + tmp3 = E(lhs_in_out, 1, 2); + + E(lhs_in_out, 1, 0) = tmp1 * E(rhs, 0, 0) + tmp2 * E(rhs, 1, 0) + tmp3 * E(rhs, 2, 0); + E(lhs_in_out, 1, 1) = tmp1 * E(rhs, 0, 1) + tmp2 * E(rhs, 1, 1) + tmp3 * E(rhs, 2, 1); + E(lhs_in_out, 1, 2) = tmp1 * E(rhs, 0, 2) + tmp2 * E(rhs, 1, 2) + tmp3 * E(rhs, 2, 2); + E(lhs_in_out, 1, 3) = tmp1 * E(rhs, 0, 3) + tmp2 * E(rhs, 1, 3) + tmp3 * E(rhs, 2, 3) + E(lhs_in_out, 1, 3); + + tmp1 = E(lhs_in_out, 2, 0); + tmp2 = E(lhs_in_out, 2, 1); + tmp3 = E(lhs_in_out, 2, 2); + + E(lhs_in_out, 2, 0) = tmp1 * E(rhs, 0, 0) + tmp2 * E(rhs, 1, 0) + tmp3 * E(rhs, 2, 0); + E(lhs_in_out, 2, 1) = tmp1 * E(rhs, 0, 1) + tmp2 * E(rhs, 1, 1) + tmp3 * E(rhs, 2, 1); + E(lhs_in_out, 2, 2) = tmp1 * E(rhs, 0, 2) + tmp2 * E(rhs, 1, 2) + tmp3 * E(rhs, 2, 2); + E(lhs_in_out, 2, 3) = tmp1 * E(rhs, 0, 3) + tmp2 * E(rhs, 1, 3) + tmp3 * E(rhs, 2, 3) + E(lhs_in_out, 2, 3); +} + +class ConvMatrix +{ +public: + enum LevelType { + LEVEL_TV, + LEVEL_PC, + LEVEL_COUNT + }; + enum ColorType { + COLOR_YUV_601, + COLOR_YUV_709, + COLOR_RGB, + COLOR_COUNT + }; +public: + ConvMatrix(); + virtual ~ConvMatrix(); + + bool Init(); + DWORD Convert(int x1, int x2, int x3, int in_level, int in_type, int out_level, int out_type); + static DWORD DoConvert(int x1, int x2, int x3, const int* matrix); + + DWORD ColorCorrection(int r8, int g8, int b8, int output_rgb_level); + void InitMatrix(int in_level, int in_type, int out_level, int out_type); + void InitColorCorrectionMatrix(); +private: + const float* MATRIX_DE_QUAN[LEVEL_COUNT][COLOR_COUNT]; + const float* MATRIX_INV_TRANS[COLOR_COUNT]; + const float* MATRIX_TRANS[COLOR_COUNT]; + const float* MATRIX_QUAN[LEVEL_COUNT][COLOR_COUNT]; + + //m_matrix[in_level][in_type][out_level][out_type] + int* m_matrix[LEVEL_COUNT][COLOR_COUNT][LEVEL_COUNT][COLOR_COUNT]; + + int m_matrix_vsfilter_compact_corretion[LEVEL_COUNT][3][4]; +}; + +ConvMatrix::ConvMatrix() +{ + ZeroMemory(m_matrix, LEVEL_COUNT * COLOR_COUNT * LEVEL_COUNT * COLOR_COUNT * sizeof(float*)); + Init(); +} + +ConvMatrix::~ConvMatrix() +{ + int** p_matrix = (int**)m_matrix; + for (int i = 0; i < LEVEL_COUNT * COLOR_COUNT * LEVEL_COUNT * COLOR_COUNT; i++) { + SAFE_DELETE(p_matrix[i]); + } +} + +bool ConvMatrix::Init() +{ + MATRIX_DE_QUAN[LEVEL_TV][COLOR_YUV_601] = &YUV_TV_INV[0][0]; + MATRIX_DE_QUAN[LEVEL_TV][COLOR_YUV_709] = &YUV_TV_INV[0][0]; + MATRIX_DE_QUAN[LEVEL_TV][COLOR_RGB] = &RGB_TV_INV[0][0]; + + MATRIX_DE_QUAN[LEVEL_PC][COLOR_YUV_601] = &YUV_PC_INV[0][0]; + MATRIX_DE_QUAN[LEVEL_PC][COLOR_YUV_709] = &YUV_PC_INV[0][0]; + MATRIX_DE_QUAN[LEVEL_PC][COLOR_RGB] = &RGB_PC_INV[0][0]; + + MATRIX_INV_TRANS[COLOR_YUV_601] = &MATRIX_BT_601_INV[0][0]; + MATRIX_INV_TRANS[COLOR_YUV_709] = &MATRIX_BT_709_INV[0][0]; + MATRIX_INV_TRANS[COLOR_RGB] = &IDENTITY[0][0]; + + MATRIX_TRANS[COLOR_YUV_601] = &MATRIX_BT_601[0][0]; + MATRIX_TRANS[COLOR_YUV_709] = &MATRIX_BT_709[0][0]; + MATRIX_TRANS[COLOR_RGB] = &IDENTITY[0][0]; + + MATRIX_QUAN[LEVEL_TV][COLOR_YUV_601] = &YUV_TV[0][0]; + MATRIX_QUAN[LEVEL_TV][COLOR_YUV_709] = &YUV_TV[0][0]; + MATRIX_QUAN[LEVEL_TV][COLOR_RGB] = &RGB_TV[0][0]; + + MATRIX_QUAN[LEVEL_PC][COLOR_YUV_601] = &YUV_PC[0][0]; + MATRIX_QUAN[LEVEL_PC][COLOR_YUV_709] = &YUV_PC[0][0]; + MATRIX_QUAN[LEVEL_PC][COLOR_RGB] = &RGB_PC[0][0]; + + InitColorCorrectionMatrix(); + //InitMatrix(LEVEL_PC, COLOR_RGB, LEVEL_TV, COLOR_YUV_601); + //InitMatrix(LEVEL_PC, COLOR_RGB, LEVEL_TV, COLOR_YUV_709); + //InitMatrix(LEVEL_TV, COLOR_YUV_601, LEVEL_PC, COLOR_RGB); + //InitMatrix(LEVEL_TV, COLOR_YUV_709, LEVEL_PC, COLOR_RGB); + + //InitMatrix(LEVEL_TV, COLOR_RGB, LEVEL_TV, COLOR_YUV_601); + //InitMatrix(LEVEL_TV, COLOR_RGB, LEVEL_TV, COLOR_YUV_709); + //InitMatrix(LEVEL_TV, COLOR_YUV_601, LEVEL_TV, COLOR_RGB); + //InitMatrix(LEVEL_TV, COLOR_YUV_709, LEVEL_TV, COLOR_RGB); + return true; +}; + +void ConvMatrix::InitMatrix(int in_level, int in_type, int out_level, int out_type) +{ + int*& out_matrix = m_matrix[in_level][in_type][out_level][out_type]; + if (out_matrix) { + return; + } + out_matrix = DEBUG_NEW int[3 * 4]; + ASSERT(out_matrix); + + float matrix[3][4]; + float* p_matrix = &matrix[0][0]; + memcpy(p_matrix, MATRIX_QUAN[out_level][out_type], 3 * 4 * sizeof(float)); + MultiplyMatrix(p_matrix, MATRIX_TRANS[out_type]); + MultiplyMatrix(p_matrix, MATRIX_INV_TRANS[in_type]); + MultiplyMatrix(p_matrix, MATRIX_DE_QUAN[in_level][in_type]); + for (int i = 0; i < 3 * 4; i++) { + out_matrix[i] = std::lround(p_matrix[i] * (1 << 16)); + ASSERT(out_matrix[i] < (1 << 24)); + } +} + +void ConvMatrix::InitColorCorrectionMatrix() +{ + int* out_matrix = &m_matrix_vsfilter_compact_corretion[LEVEL_PC][0][0]; + + float matrix[3][4]; + float* p_matrix = &matrix[0][0]; + memcpy(p_matrix, MATRIX_INV_TRANS[COLOR_YUV_709], 3 * 4 * sizeof(float)); + MultiplyMatrix(p_matrix, MATRIX_TRANS[COLOR_YUV_601]); + for (int i = 0; i < 3 * 4; i++) { + out_matrix[i] = std::lround(p_matrix[i] * (1 << 16)); + ASSERT(out_matrix[i] < (1 << 24)); + } + + out_matrix = &m_matrix_vsfilter_compact_corretion[LEVEL_TV][0][0]; + memcpy(p_matrix, MATRIX_QUAN[LEVEL_TV][COLOR_RGB], 3 * 4 * sizeof(float)); + MultiplyMatrix(p_matrix, MATRIX_INV_TRANS[COLOR_YUV_709]); + MultiplyMatrix(p_matrix, MATRIX_TRANS[COLOR_YUV_601]); + MultiplyMatrix(p_matrix, MATRIX_DE_QUAN[LEVEL_PC][COLOR_RGB]); + for (int i = 0; i < 3 * 4; i++) { + out_matrix[i] = std::lround(p_matrix[i] * (1 << 16)); + ASSERT(out_matrix[i] < (1 << 24)); + } +} + +DWORD ConvMatrix::Convert(int x1, int x2, int x3, int in_level, int in_type, int out_level, int out_type) +{ + int*& matrix_int = m_matrix[in_level][in_type][out_level][out_type]; + if (!matrix_int) { + InitMatrix(in_level, in_type, out_level, out_type); + if (!matrix_int) { + ASSERT(FALSE); + return 0; + } + } + return DoConvert(x1, x2, x3, matrix_int); +} + +DWORD ConvMatrix::DoConvert(int x1, int x2, int x3, const int* matrix) +{ + ASSERT(matrix); + int tmp1 = (E(matrix, 0, 0) * x1 + E(matrix, 0, 1) * x2 + E(matrix, 0, 2) * x3 + E(matrix, 0, 3) + (1 << 15)) >> 16; + int tmp2 = (E(matrix, 1, 0) * x1 + E(matrix, 1, 1) * x2 + E(matrix, 1, 2) * x3 + E(matrix, 1, 3) + (1 << 15)) >> 16; + int tmp3 = (E(matrix, 2, 0) * x1 + E(matrix, 2, 1) * x2 + E(matrix, 2, 2) * x3 + E(matrix, 2, 3) + (1 << 15)) >> 16; + tmp1 = clip(tmp1, 255); + tmp2 = clip(tmp2, 255); + tmp3 = clip(tmp3, 255); + return (tmp1 << 16) | (tmp2 << 8) | tmp3; +} + +DWORD ConvMatrix::ColorCorrection(int r8, int g8, int b8, int output_rgb_level) +{ + ASSERT(output_rgb_level == LEVEL_PC || output_rgb_level == LEVEL_TV); + return DoConvert(r8, g8, b8, &m_matrix_vsfilter_compact_corretion[output_rgb_level][0][0]); +} + +const int FRACTION_BITS = 16; +const int FRACTION_SCALE = 1 << 16; + +struct RGBLevelInfo { + int low, size; +}; +const RGBLevelInfo RGB_LVL_PC = { 0, 255 }; +const RGBLevelInfo RGB_LVL_TV = { 16, 219 }; + +struct YUVLevelInfo { + int y_low, y_size; + int u_mid, u_size; +}; +const YUVLevelInfo YUV_LVL_PC = { 0, 255, 128, 255 }; +const YUVLevelInfo YUV_LVL_TV = { 16, 219, 128, 224 }; + +#define DEFINE_RGB2YUV_FUNC(func, RGB_LEVEL, YUV_LEVEL, Kr, Kg, Kb, YUV_POS) \ +DWORD func(int r8, int g8, int b8) \ +{ \ + r8 -= RGB_LEVEL.low; \ + g8 -= RGB_LEVEL.low; \ + b8 -= RGB_LEVEL.low; \ + const int INT_Kr = int(Kr*FRACTION_SCALE+0.5); \ + const int INT_Kg = int(Kg*FRACTION_SCALE+0.5); \ + const int INT_Kb = int(Kb*FRACTION_SCALE+0.5); \ + const int Y_CU = int(0.5/(1-Kb)*4096+0.5); \ + const int Y_CV = int(0.5/(1-Kr)*4096+0.5); \ + const int Y_SCALE= int(1.0*YUV_LEVEL.y_size/RGB_LEVEL.size*4096+0.5); \ + const int U_SCALE= int(1.0*YUV_LEVEL.u_size/RGB_LEVEL.size*4096+0.5); \ + \ + int y = INT_Kr*r8 + INT_Kg*g8 + INT_Kb*b8; \ + int u = (((b8<> 12) * Y_CU; \ + int v = (((r8<> 12) * Y_CV; \ + y = Y_SCALE == 4096 ? y : (y>>12)*Y_SCALE; \ + u = U_SCALE == 4096 ? u : (u>>12)*U_SCALE; \ + v = U_SCALE == 4096 ? v : (v>>12)*U_SCALE; \ + y = (y + (YUV_LEVEL.y_low*FRACTION_SCALE + FRACTION_SCALE/2))>>FRACTION_BITS; \ + u = (u + (YUV_LEVEL.u_mid*FRACTION_SCALE + FRACTION_SCALE/2))>>FRACTION_BITS; \ + v = (v + (YUV_LEVEL.u_mid*FRACTION_SCALE + FRACTION_SCALE/2))>>FRACTION_BITS; \ + y = clip(y, 255); \ + u = clip(u, 255); \ + v = clip(v, 255); \ + return (y<>FRACTION_BITS; \ + int g = (y8 + INT_GU*u8 + INT_GV*v8 + FRACTION_SCALE/2)>>FRACTION_BITS; \ + int b = (y8 + INT_BU*u8 + 0 + FRACTION_SCALE/2)>>FRACTION_BITS; \ + r = clip(r, RGB_LEVEL.size); \ + g = clip(g, RGB_LEVEL.size); \ + b = clip(b, RGB_LEVEL.size); \ + r += RGB_LEVEL.low; \ + g += RGB_LEVEL.low; \ + b += RGB_LEVEL.low; \ + return (r<<16) | (g<<8) | b; \ +} + +#define DEFINE_PREMUL_ARGB2AYUV_FUNC(func, RGB_LEVEL, YUV_LEVEL, Kr, Kg, Kb, YUV_POS) \ +DWORD func(int a8, int r8, int g8, int b8) \ +{ \ + r8 -= RGB_LEVEL.low; \ + g8 -= RGB_LEVEL.low; \ + b8 -= RGB_LEVEL.low; \ + const int INT_Kr = int(Kr*FRACTION_SCALE+0.5); \ + const int INT_Kg = int(Kg*FRACTION_SCALE+0.5); \ + const int INT_Kb = int(Kb*FRACTION_SCALE+0.5); \ + const int Y_CU = int(0.5/(1-Kb)*4096+0.5); \ + const int Y_CV = int(0.5/(1-Kr)*4096+0.5); \ + const int Y_SCALE= int(1.0*YUV_LEVEL.y_size/RGB_LEVEL.size*4096+0.5); \ + const int U_SCALE= int(1.0*YUV_LEVEL.u_size/RGB_LEVEL.size*4096+0.5); \ + \ + int a = (256-a8)<<(FRACTION_BITS-8); \ + int y = INT_Kr*r8 + INT_Kg*g8 + INT_Kb*b8; \ + int u = (((b8<> 12) * Y_CU; \ + int v = (((r8<> 12) * Y_CV; \ + y = Y_SCALE == 4096 ? y : (y>>12)*Y_SCALE; \ + u = U_SCALE == 4096 ? u : (u>>12)*U_SCALE; \ + v = U_SCALE == 4096 ? v : (v>>12)*U_SCALE; \ + y = (y + YUV_LEVEL.y_low*a + FRACTION_SCALE/2)>>FRACTION_BITS; \ + u = (u + YUV_LEVEL.u_mid*a + FRACTION_SCALE/2)>>FRACTION_BITS; \ + v = (v + YUV_LEVEL.u_mid*a + FRACTION_SCALE/2)>>FRACTION_BITS; \ + y = clip(y, 255); \ + u = clip(u, 255); \ + v = clip(v, 255); \ + return (y<>12)*Y_SCALE; \ + y = (y + (YUV_LEVEL.y_low*FRACTION_SCALE + FRACTION_SCALE/2))>>FRACTION_BITS; \ + y = clip(y, 255); \ + return y; \ +} + +DWORD RGB_PC_TO_YUV_TV_601(int r8, int g8, int b8); +DWORD RGB_PC_TO_YUV_PC_601(int r8, int g8, int b8); +DWORD RGB_PC_TO_YUV_TV_709(int r8, int g8, int b8); +DWORD RGB_PC_TO_YUV_PC_709(int r8, int g8, int b8); + +DWORD RGB_TV_TO_YUV_TV_601(int r8, int g8, int b8); +DWORD RGB_TV_TO_YUV_PC_601(int r8, int g8, int b8); +DWORD RGB_TV_TO_YUV_TV_709(int r8, int g8, int b8); +DWORD RGB_TV_TO_YUV_PC_709(int r8, int g8, int b8); + +DWORD RGB_PC_TO_UYV_TV_601(int r8, int g8, int b8); +DWORD RGB_PC_TO_UYV_PC_601(int r8, int g8, int b8); +DWORD RGB_PC_TO_UYV_TV_709(int r8, int g8, int b8); +DWORD RGB_PC_TO_UYV_PC_709(int r8, int g8, int b8); + +DWORD RGB_TV_TO_UYV_TV_601(int r8, int g8, int b8); +DWORD RGB_TV_TO_UYV_PC_601(int r8, int g8, int b8); +DWORD RGB_TV_TO_UYV_TV_709(int r8, int g8, int b8); +DWORD RGB_TV_TO_UYV_PC_709(int r8, int g8, int b8); + +DWORD PREMUL_ARGB_PC_TO_AYUV_TV_601(int a8, int r8, int g8, int b8); +DWORD PREMUL_ARGB_PC_TO_AYUV_PC_601(int a8, int r8, int g8, int b8); +DWORD PREMUL_ARGB_PC_TO_AYUV_TV_709(int a8, int r8, int g8, int b8); +DWORD PREMUL_ARGB_PC_TO_AYUV_PC_709(int a8, int r8, int g8, int b8); + +DWORD PREMUL_ARGB_TV_TO_AYUV_TV_601(int a8, int r8, int g8, int b8); +DWORD PREMUL_ARGB_TV_TO_AYUV_PC_601(int a8, int r8, int g8, int b8); +DWORD PREMUL_ARGB_TV_TO_AYUV_TV_709(int a8, int r8, int g8, int b8); +DWORD PREMUL_ARGB_TV_TO_AYUV_PC_709(int a8, int r8, int g8, int b8); + +DWORD RGB_PC_TO_Y_TV_601(int r8, int g8, int b8); +DWORD RGB_PC_TO_Y_PC_601(int r8, int g8, int b8); +DWORD RGB_PC_TO_Y_TV_709(int r8, int g8, int b8); +DWORD RGB_PC_TO_Y_PC_709(int r8, int g8, int b8); + +DWORD RGB_TV_TO_Y_TV_601(int r8, int g8, int b8); +DWORD RGB_TV_TO_Y_PC_601(int r8, int g8, int b8); +DWORD RGB_TV_TO_Y_TV_709(int r8, int g8, int b8); +DWORD RGB_TV_TO_Y_PC_709(int r8, int g8, int b8); + +DWORD YUV_TV_TO_RGB_PC_601(int y, int u, int v); +DWORD YUV_PC_TO_RGB_PC_601(int y, int u, int v); +DWORD YUV_TV_TO_RGB_PC_709(int y, int u, int v); +DWORD YUV_PC_TO_RGB_PC_709(int y, int u, int v); + +DWORD YUV_TV_TO_RGB_TV_601(int y, int u, int v); +DWORD YUV_PC_TO_RGB_TV_601(int y, int u, int v); +DWORD YUV_TV_TO_RGB_TV_709(int y, int u, int v); +DWORD YUV_PC_TO_RGB_TV_709(int y, int u, int v); + +typedef ColorConvTable::YuvMatrixType YuvMatrixType; +typedef ColorConvTable::YuvRangeType YuvRangeType; + +class ConvFunc +{ +public: + ConvFunc(YuvMatrixType yuv_type, YuvRangeType range, bool bOutputTVRange, bool bVSFilterCorrection); + bool InitConvFunc(YuvMatrixType yuv_type, YuvRangeType range); + + typedef DWORD(*R8G8B8ToYuvFunc)(int r8, int g8, int b8); + typedef DWORD(*PreMulArgbToAyuvFunc)(int a8, int r8, int g8, int b8); + typedef R8G8B8ToYuvFunc R8G8B8ToY; + typedef R8G8B8ToYuvFunc Y8U8V8ToRGBFunc; + + R8G8B8ToYuvFunc r8g8b8_to_yuv_func; + R8G8B8ToYuvFunc r8g8b8_to_uyv_func; + PreMulArgbToAyuvFunc pre_mul_argb_to_ayuv_func; + R8G8B8ToY r8g8b8_to_y_func; + Y8U8V8ToRGBFunc y8u8v8_to_rgb_func; + + YuvMatrixType m_eYuvType; + YuvRangeType m_eRangeType; + bool m_bOutputTVRange; + bool m_bVSFilterCorrection; + + ConvMatrix m_convMatrix; //for YUV to YUV or other complicated conversions +}; + +static ConvFunc& ConvFuncInst() +{ + static ConvFunc s(ColorConvTable::BT601, ColorConvTable::RANGE_TV, false, false); + return s; +} + +bool ConvFunc::InitConvFunc(YuvMatrixType yuv_type, YuvRangeType range) +{ + bool result = true; + + if (yuv_type == ColorConvTable::BT601 && range == ColorConvTable::RANGE_TV) { + r8g8b8_to_yuv_func = RGB_PC_TO_YUV_TV_601; + r8g8b8_to_uyv_func = RGB_PC_TO_UYV_TV_601; + pre_mul_argb_to_ayuv_func = PREMUL_ARGB_PC_TO_AYUV_TV_601; + r8g8b8_to_y_func = RGB_PC_TO_Y_TV_601; + y8u8v8_to_rgb_func = YUV_TV_TO_RGB_PC_601; + + m_eYuvType = yuv_type; + m_eRangeType = range; + } else if (yuv_type == ColorConvTable::BT709 && range == ColorConvTable::RANGE_TV) { + r8g8b8_to_yuv_func = RGB_PC_TO_YUV_TV_709; + r8g8b8_to_uyv_func = RGB_PC_TO_UYV_TV_709; + pre_mul_argb_to_ayuv_func = PREMUL_ARGB_PC_TO_AYUV_TV_709; + r8g8b8_to_y_func = RGB_PC_TO_Y_TV_709; + y8u8v8_to_rgb_func = YUV_TV_TO_RGB_PC_709; + + m_eYuvType = yuv_type; + m_eRangeType = range; + } else if (yuv_type == ColorConvTable::BT601 && range == ColorConvTable::RANGE_PC) { + r8g8b8_to_yuv_func = RGB_PC_TO_YUV_PC_601; + r8g8b8_to_uyv_func = RGB_PC_TO_UYV_PC_601; + pre_mul_argb_to_ayuv_func = PREMUL_ARGB_PC_TO_AYUV_PC_601; + r8g8b8_to_y_func = RGB_PC_TO_Y_PC_601; + y8u8v8_to_rgb_func = YUV_PC_TO_RGB_PC_601; + + m_eYuvType = yuv_type; + m_eRangeType = range; + } else if (yuv_type == ColorConvTable::BT709 && range == ColorConvTable::RANGE_PC) { + r8g8b8_to_yuv_func = RGB_PC_TO_YUV_PC_709; + r8g8b8_to_uyv_func = RGB_PC_TO_UYV_PC_709; + pre_mul_argb_to_ayuv_func = PREMUL_ARGB_PC_TO_AYUV_PC_709; + r8g8b8_to_y_func = RGB_PC_TO_Y_PC_709; + y8u8v8_to_rgb_func = YUV_PC_TO_RGB_PC_709; + + m_eYuvType = yuv_type; + m_eRangeType = range; + } else { + r8g8b8_to_yuv_func = RGB_PC_TO_YUV_TV_601; + r8g8b8_to_uyv_func = RGB_PC_TO_UYV_TV_601; + pre_mul_argb_to_ayuv_func = PREMUL_ARGB_PC_TO_AYUV_TV_601; + r8g8b8_to_y_func = RGB_PC_TO_Y_TV_601; + y8u8v8_to_rgb_func = YUV_TV_TO_RGB_PC_601; + + m_eYuvType = ColorConvTable::BT601; + m_eRangeType = ColorConvTable::RANGE_TV; + } + + return result; +} + +ConvFunc::ConvFunc(YuvMatrixType yuv_type, YuvRangeType range, bool bOutputTVRange, bool bVSFilterCorrection) + : m_bOutputTVRange(bOutputTVRange) + , m_bVSFilterCorrection(bVSFilterCorrection) +{ + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_601, + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_709); + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_601, + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_709); + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_601, + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_709); + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_601, + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_709); + + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_709, + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_601); + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_709, + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_601); + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_709, + ConvMatrix::LEVEL_TV, ConvMatrix::COLOR_YUV_601); + m_convMatrix.InitMatrix( + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_709, + ConvMatrix::LEVEL_PC, ConvMatrix::COLOR_YUV_601); + InitConvFunc(yuv_type, range); +} + +// +// ColorConvTable +// +ColorConvTable::YuvMatrixType ColorConvTable::GetDefaultYUVType() +{ + return ConvFuncInst().m_eYuvType; +} + +ColorConvTable::YuvRangeType ColorConvTable::GetDefaultRangeType() +{ + return ConvFuncInst().m_eRangeType; +} + +void ColorConvTable::SetDefaultConvType(YuvMatrixType yuv_type, YuvRangeType range, bool bOutputTVRange, bool bVSFilterCorrection) +{ + if (ConvFuncInst().m_eYuvType != yuv_type || ConvFuncInst().m_eRangeType != range) { + ConvFuncInst().InitConvFunc(yuv_type, range); + } + ConvFuncInst().m_bOutputTVRange = bOutputTVRange; + ConvFuncInst().m_bVSFilterCorrection = bVSFilterCorrection; +} + +DWORD ColorConvTable::Argb2Auyv(DWORD argb) +{ + int r = (argb & 0x00ff0000) >> 16; + int g = (argb & 0x0000ff00) >> 8; + int b = (argb & 0x000000ff); + return (argb & 0xff000000) | ConvFuncInst().r8g8b8_to_uyv_func(r, g, b); +} + +DWORD ColorConvTable::Argb2Ayuv(DWORD argb) +{ + int r = (argb & 0x00ff0000) >> 16; + int g = (argb & 0x0000ff00) >> 8; + int b = (argb & 0x000000ff); + return (argb & 0xff000000) | ConvFuncInst().r8g8b8_to_yuv_func(r, g, b); +} + +DWORD ColorConvTable::Argb2Ayuv_TV_BT601(DWORD argb) +{ + int r = (argb & 0x00ff0000) >> 16; + int g = (argb & 0x0000ff00) >> 8; + int b = (argb & 0x000000ff); + return (argb & 0xff000000) | RGB_PC_TO_YUV_TV_601(r, g, b); +} + +DWORD ColorConvTable::Ayuv2Auyv(DWORD ayuv) +{ + int y = (ayuv & 0x00ff0000) >> 8; + int u = (ayuv & 0x0000ff00) << 8; + return (ayuv & 0xff0000ff) | u | y; +} + +DWORD ColorConvTable::PreMulArgb2Ayuv(int a8, int r8, int g8, int b8) +{ + return ConvFuncInst().pre_mul_argb_to_ayuv_func(a8, r8, g8, b8); +} + +DWORD ColorConvTable::Rgb2Y(int r8, int g8, int b8) +{ + return ConvFuncInst().r8g8b8_to_y_func(r8, g8, b8); +} + +DWORD ColorConvTable::Ayuv2Argb_TV_BT601(DWORD ayuv) +{ + int y = (ayuv & 0x00ff0000) >> 16; + int u = (ayuv & 0x0000ff00) >> 8; + int v = (ayuv & 0x000000ff); + return (ayuv & 0xff000000) | YUV_TV_TO_RGB_PC_601(y, u, v); +} + +DWORD ColorConvTable::Ayuv2Argb_TV_BT709(DWORD ayuv) +{ + int y = (ayuv & 0x00ff0000) >> 16; + int u = (ayuv & 0x0000ff00) >> 8; + int v = (ayuv & 0x000000ff); + return (ayuv & 0xff000000) | YUV_TV_TO_RGB_PC_709(y, u, v); +} + +DWORD ColorConvTable::Ayuv2Argb(DWORD ayuv) +{ + int y = (ayuv & 0x00ff0000) >> 16; + int u = (ayuv & 0x0000ff00) >> 8; + int v = (ayuv & 0x000000ff); + return (ayuv & 0xff000000) | ConvFuncInst().y8u8v8_to_rgb_func(y, u, v); +} + +DWORD ColorConvTable::A8Y8U8V8_To_ARGB_TV_BT601(int a8, int y8, int u8, int v8) +{ + return (a8 << 24) | YUV_TV_TO_RGB_PC_601(y8, u8, v8); +} + +DWORD ColorConvTable::A8Y8U8V8_To_ARGB_PC_BT601(int a8, int y8, int u8, int v8) +{ + return (a8 << 24) | YUV_PC_TO_RGB_PC_601(y8, u8, v8); +} + +DWORD ColorConvTable::A8Y8U8V8_To_ARGB_TV_BT709(int a8, int y8, int u8, int v8) +{ + return (a8 << 24) | YUV_TV_TO_RGB_PC_709(y8, u8, v8); +} + +DWORD ColorConvTable::A8Y8U8V8_To_ARGB_PC_BT709(int a8, int y8, int u8, int v8) +{ + return (a8 << 24) | YUV_PC_TO_RGB_PC_709(y8, u8, v8); +} + +DWORD ColorConvTable::A8Y8U8V8_PC_To_TV(int a8, int y8, int u8, int v8) +{ + const int FRACTION_SCALE = 1 << 16; + const int YUV_MIN = 16; + const int cy = int(219.0 / 255 * FRACTION_SCALE + 0.5); + const int cuv = int(224.0 / 255 * FRACTION_SCALE + 0.5); + y8 = ((y8 * cy) >> 16) + YUV_MIN; + u8 = ((u8 * cuv) >> 16) + YUV_MIN; + v8 = ((v8 * cuv) >> 16) + YUV_MIN; + return (a8 << 24) | (y8 << 16) | (u8 << 8) | v8; +} + +DWORD ColorConvTable::A8Y8U8V8_TV_To_PC(int a8, int y8, int u8, int v8) +{ + const int FRACTION_SCALE = 1 << 16; + const int YUV_MIN = 16; + const int cy = int(255 / 219.0 * FRACTION_SCALE + 0.5); + const int cuv = int(255 / 224.0 * FRACTION_SCALE + 0.5); + y8 = ((y8 - YUV_MIN) * cy) >> 16; + u8 = ((u8 - YUV_MIN) * cuv) >> 16; + v8 = ((v8 - YUV_MIN) * cuv) >> 16; + return (a8 << 24) | (y8 << 16) | (u8 << 8) | v8; +} + +DWORD ColorConvTable::RGB_PC_TO_TV(DWORD argb) +{ + const int MIN = 16; + const int SCALE = int(219.0 / 255 * FRACTION_SCALE + 0.5); + DWORD r = (argb & 0x00ff0000) >> 16; + DWORD g = (argb & 0x0000ff00) >> 8; + DWORD b = (argb & 0x000000ff); + r = ((r * SCALE) >> 16) + MIN; + g = ((g * SCALE) >> 16) + MIN; + b = ((b * SCALE) >> 16) + MIN; + return (argb & 0xff000000) | (r << 16) | (g << 8) | b; +} + +DWORD ColorConvTable::A8Y8U8V8_TO_AYUV(int a8, int y8, int u8, int v8, + YuvRangeType in_range, YuvMatrixType in_type, YuvRangeType out_range, YuvMatrixType out_type) +{ + const int level_map[3] = { + ConvMatrix::LEVEL_TV, + ConvMatrix::LEVEL_TV, + ConvMatrix::LEVEL_PC + }; + const int type_map[3] = { + ConvMatrix::COLOR_YUV_601, + ConvMatrix::COLOR_YUV_601, + ConvMatrix::COLOR_YUV_709 + + }; + //level_map[ColorConvTable::RANGE_NONE] = ConvMatrix::LEVEL_TV; + //level_map[ColorConvTable::RANGE_TV] = ConvMatrix::LEVEL_TV; + //level_map[ColorConvTable::RANGE_PC] = ConvMatrix::LEVEL_PC; + //type_map[ColorConvTable::NONE] = ConvMatrix::COLOR_YUV_601; + //type_map[ColorConvTable::BT601] = ConvMatrix::COLOR_YUV_601; + //type_map[ColorConvTable::BT709] = ConvMatrix::COLOR_YUV_709; + if (in_type == out_type) { + if (in_range == RANGE_PC && out_range == RANGE_TV) { + return A8Y8U8V8_PC_To_TV(a8, y8, u8, v8); + } else if (in_range == RANGE_TV && out_range == RANGE_PC) { + return A8Y8U8V8_TV_To_PC(a8, y8, u8, v8); + } else { + return (a8 << 24) | (y8 << 16) | (u8 << 8) | v8; + } + } + return (a8 << 24) | ConvFuncInst().m_convMatrix.Convert(y8, u8, v8, + level_map[in_range], type_map[in_type], level_map[out_range], type_map[out_type]); +} + +DWORD ColorConvTable::A8Y8U8V8_TO_CUR_AYUV(int a8, int y8, int u8, int v8, YuvRangeType in_range, YuvMatrixType in_type) +{ + return A8Y8U8V8_TO_AYUV(a8, y8, u8, v8, in_range, in_type, + ConvFuncInst().m_eRangeType, ConvFuncInst().m_eYuvType); +} + +DWORD ColorConvTable::A8Y8U8V8_TO_ARGB(int a8, int y8, int u8, int v8, YuvMatrixType in_type) +{ + const ConvFunc::Y8U8V8ToRGBFunc funcs[2][2][2] = { + { + { YUV_TV_TO_RGB_TV_601, YUV_TV_TO_RGB_PC_601 }, + { YUV_TV_TO_RGB_TV_709, YUV_TV_TO_RGB_PC_709 } + }, + { + { YUV_PC_TO_RGB_TV_601, YUV_PC_TO_RGB_PC_601 }, + { YUV_PC_TO_RGB_TV_709, YUV_PC_TO_RGB_PC_709 } + } + }; + return (a8 << 24) | funcs[ConvFuncInst().m_eRangeType == RANGE_PC ? 1 : 0][in_type == BT709 ? 1 : 0][ConvFuncInst().m_bOutputTVRange ? 0 : 1](y8, u8, v8); +} + +DWORD ColorConvTable::ColorCorrection(DWORD argb) +{ + if (ConvFuncInst().m_bVSFilterCorrection) { + int r = (argb & 0x00ff0000) >> 16; + int g = (argb & 0x0000ff00) >> 8; + int b = (argb & 0x000000ff); + return (argb & 0xff000000) | + ConvFuncInst().m_convMatrix.ColorCorrection(r, g, b, + ConvFuncInst().m_bOutputTVRange ? ConvMatrix::LEVEL_TV : ConvMatrix::LEVEL_PC); + } + return argb; +} + +struct YuvPos { + int y; + int u; + int v; +}; +const YuvPos POS_YUV = { 16, 8, 0 }; +const YuvPos POS_UYV = { 8, 16, 0 }; + + +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_YUV_TV_601, RGB_LVL_PC, YUV_LVL_TV, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_YUV_PC_601, RGB_LVL_PC, YUV_LVL_PC, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_YUV_TV_709, RGB_LVL_PC, YUV_LVL_TV, 0.2126, 0.7152, 0.0722, POS_YUV) +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_YUV_PC_709, RGB_LVL_PC, YUV_LVL_PC, 0.2126, 0.7152, 0.0722, POS_YUV) + +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_YUV_TV_601, RGB_LVL_TV, YUV_LVL_TV, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_YUV_PC_601, RGB_LVL_TV, YUV_LVL_PC, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_YUV_TV_709, RGB_LVL_TV, YUV_LVL_TV, 0.2126, 0.7152, 0.0722, POS_YUV) +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_YUV_PC_709, RGB_LVL_TV, YUV_LVL_PC, 0.2126, 0.7152, 0.0722, POS_YUV) + +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_UYV_TV_601, RGB_LVL_PC, YUV_LVL_TV, 0.299, 0.587, 0.114, POS_UYV) +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_UYV_PC_601, RGB_LVL_PC, YUV_LVL_PC, 0.299, 0.587, 0.114, POS_UYV) +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_UYV_TV_709, RGB_LVL_PC, YUV_LVL_TV, 0.2126, 0.7152, 0.0722, POS_UYV) +DEFINE_RGB2YUV_FUNC(RGB_PC_TO_UYV_PC_709, RGB_LVL_PC, YUV_LVL_PC, 0.2126, 0.7152, 0.0722, POS_UYV) + +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_UYV_TV_601, RGB_LVL_TV, YUV_LVL_TV, 0.299, 0.587, 0.114, POS_UYV) +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_UYV_PC_601, RGB_LVL_TV, YUV_LVL_PC, 0.299, 0.587, 0.114, POS_UYV) +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_UYV_TV_709, RGB_LVL_TV, YUV_LVL_TV, 0.2126, 0.7152, 0.0722, POS_UYV) +DEFINE_RGB2YUV_FUNC(RGB_TV_TO_UYV_PC_709, RGB_LVL_TV, YUV_LVL_PC, 0.2126, 0.7152, 0.0722, POS_UYV) + +DEFINE_YUV2RGB_FUNC(YUV_TV_TO_RGB_PC_601, RGB_LVL_PC, YUV_LVL_TV, 0.299, 0.587, 0.114) +DEFINE_YUV2RGB_FUNC(YUV_PC_TO_RGB_PC_601, RGB_LVL_PC, YUV_LVL_PC, 0.299, 0.587, 0.114) +DEFINE_YUV2RGB_FUNC(YUV_TV_TO_RGB_PC_709, RGB_LVL_PC, YUV_LVL_TV, 0.2126, 0.7152, 0.0722) +DEFINE_YUV2RGB_FUNC(YUV_PC_TO_RGB_PC_709, RGB_LVL_PC, YUV_LVL_PC, 0.2126, 0.7152, 0.0722) + +DEFINE_YUV2RGB_FUNC(YUV_TV_TO_RGB_TV_601, RGB_LVL_TV, YUV_LVL_TV, 0.299, 0.587, 0.114) +DEFINE_YUV2RGB_FUNC(YUV_PC_TO_RGB_TV_601, RGB_LVL_TV, YUV_LVL_PC, 0.299, 0.587, 0.114) +DEFINE_YUV2RGB_FUNC(YUV_TV_TO_RGB_TV_709, RGB_LVL_TV, YUV_LVL_TV, 0.2126, 0.7152, 0.0722) +DEFINE_YUV2RGB_FUNC(YUV_PC_TO_RGB_TV_709, RGB_LVL_TV, YUV_LVL_PC, 0.2126, 0.7152, 0.0722) + +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_PC_TO_AYUV_TV_601, RGB_LVL_PC, YUV_LVL_TV, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_PC_TO_AYUV_PC_601, RGB_LVL_PC, YUV_LVL_PC, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_PC_TO_AYUV_TV_709, RGB_LVL_PC, YUV_LVL_TV, 0.2126, 0.7152, 0.0722, POS_YUV) +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_PC_TO_AYUV_PC_709, RGB_LVL_PC, YUV_LVL_PC, 0.2126, 0.7152, 0.0722, POS_YUV) + +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_TV_TO_AYUV_TV_601, RGB_LVL_TV, YUV_LVL_TV, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_TV_TO_AYUV_PC_601, RGB_LVL_TV, YUV_LVL_PC, 0.299, 0.587, 0.114, POS_YUV) +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_TV_TO_AYUV_TV_709, RGB_LVL_TV, YUV_LVL_TV, 0.2126, 0.7152, 0.0722, POS_YUV) +DEFINE_PREMUL_ARGB2AYUV_FUNC(PREMUL_ARGB_TV_TO_AYUV_PC_709, RGB_LVL_TV, YUV_LVL_PC, 0.2126, 0.7152, 0.0722, POS_YUV) + +DEFINE_RGB2Y_FUNC(RGB_PC_TO_Y_TV_601, RGB_LVL_PC, YUV_LVL_TV, 0.299, 0.587, 0.114) +DEFINE_RGB2Y_FUNC(RGB_PC_TO_Y_PC_601, RGB_LVL_PC, YUV_LVL_PC, 0.299, 0.587, 0.114) +DEFINE_RGB2Y_FUNC(RGB_PC_TO_Y_TV_709, RGB_LVL_PC, YUV_LVL_TV, 0.2126, 0.7152, 0.0722) +DEFINE_RGB2Y_FUNC(RGB_PC_TO_Y_PC_709, RGB_LVL_PC, YUV_LVL_PC, 0.2126, 0.7152, 0.0722) + +DEFINE_RGB2Y_FUNC(RGB_TV_TO_Y_TV_601, RGB_LVL_TV, YUV_LVL_TV, 0.299, 0.587, 0.114) +DEFINE_RGB2Y_FUNC(RGB_TV_TO_Y_PC_601, RGB_LVL_TV, YUV_LVL_PC, 0.299, 0.587, 0.114) +DEFINE_RGB2Y_FUNC(RGB_TV_TO_Y_TV_709, RGB_LVL_TV, YUV_LVL_TV, 0.2126, 0.7152, 0.0722) +DEFINE_RGB2Y_FUNC(RGB_TV_TO_Y_PC_709, RGB_LVL_TV, YUV_LVL_PC, 0.2126, 0.7152, 0.0722) diff --git a/src/Subtitles/ColorConvTable.h b/src/Subtitles/ColorConvTable.h new file mode 100644 index 00000000000..36d2178261e --- /dev/null +++ b/src/Subtitles/ColorConvTable.h @@ -0,0 +1,69 @@ +/* +* (C) 2015 see Authors.txt +* +* This file is part of MPC-HC. +* +* MPC-HC is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 3 of the License, or +* (at your option) any later version. +* +* MPC-HC is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +*/ + +#pragma once + +struct ColorConvTable { + enum YuvMatrixType { + NONE, + BT601, + BT709 + }; + + enum YuvRangeType { + RANGE_NONE, + RANGE_TV, + RANGE_PC + }; + + static void SetDefaultConvType(YuvMatrixType yuv_type, YuvRangeType range, bool bOutputTVRange, bool bVSFilterCorrection); + + static YuvMatrixType GetDefaultYUVType(); + static YuvRangeType GetDefaultRangeType(); + + static DWORD Argb2Ayuv(DWORD argb); + static DWORD Argb2Ayuv_TV_BT601(DWORD argb); + static DWORD Argb2Auyv(DWORD argb); + static DWORD Ayuv2Auyv(DWORD ayuv); + static DWORD Rgb2Y(int r8, int g8, int b8); + static DWORD PreMulArgb2Ayuv(int a8, int r8, int g8, int b8); + + static DWORD Ayuv2Argb(DWORD ayuv); + static DWORD Ayuv2Argb_TV_BT601(DWORD ayuv); + static DWORD A8Y8U8V8_To_ARGB_TV_BT601(int a8, int y8, int u8, int v8); + static DWORD A8Y8U8V8_To_ARGB_PC_BT601(int a8, int y8, int u8, int v8); + static DWORD Ayuv2Argb_TV_BT709(DWORD ayuv); + static DWORD A8Y8U8V8_To_ARGB_TV_BT709(int a8, int y8, int u8, int v8); + static DWORD A8Y8U8V8_To_ARGB_PC_BT709(int a8, int y8, int u8, int v8); + + static DWORD A8Y8U8V8_PC_To_TV(int a8, int y8, int u8, int v8); + static DWORD A8Y8U8V8_TV_To_PC(int a8, int y8, int u8, int v8); + + //should not past NONE into it + static DWORD A8Y8U8V8_TO_AYUV(int a8, int y8, int u8, int v8, YuvRangeType in_range, YuvMatrixType in_type, YuvRangeType out_range, YuvMatrixType out_type); + static DWORD A8Y8U8V8_TO_CUR_AYUV(int a8, int y8, int u8, int v8, YuvRangeType in_range, YuvMatrixType in_type); + static DWORD A8Y8U8V8_TO_ARGB(int a8, int y8, int u8, int v8, YuvMatrixType in_type); + + static DWORD RGB_PC_TO_TV(DWORD argb); + + static DWORD ColorCorrection(DWORD argb); + + ColorConvTable() = delete; +}; diff --git a/src/Subtitles/CompositionObject.cpp b/src/Subtitles/CompositionObject.cpp index 2f4094d2221..4993a790e03 100644 --- a/src/Subtitles/CompositionObject.cpp +++ b/src/Subtitles/CompositionObject.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -20,6 +20,7 @@ #include "stdafx.h" #include "CompositionObject.h" +#include "ColorConvTable.h" #include "../DSUtil/GolombBuffer.h" @@ -82,15 +83,11 @@ void CompositionObject::Reset() Init(); } -void CompositionObject::SetPalette(int nNbEntry, const HDMV_PALETTE* pPalette, bool BT709, int sourceBlackLevel, int sourceWhiteLevel, int targetBlackLevel, int targetWhiteLevel) +void CompositionObject::SetPalette(int nNbEntry, const HDMV_PALETTE* pPalette, ColorConvTable::YuvMatrixType currentMatrix) { m_nColorNumber = nNbEntry; for (int i = 0; i < nNbEntry; i++) { - if (BT709) { - m_colors[pPalette[i].entry_id] = YCrCbToRGB_Rec709(pPalette[i].T, pPalette[i].Y, pPalette[i].Cr, pPalette[i].Cb, sourceBlackLevel, sourceWhiteLevel, targetBlackLevel, targetWhiteLevel); - } else { - m_colors[pPalette[i].entry_id] = YCrCbToRGB_Rec601(pPalette[i].T, pPalette[i].Y, pPalette[i].Cr, pPalette[i].Cb, sourceBlackLevel, sourceWhiteLevel, targetBlackLevel, targetWhiteLevel); - } + m_colors[pPalette[i].entry_id] = ColorConvTable::A8Y8U8V8_TO_ARGB(pPalette[i].T, pPalette[i].Y, pPalette[i].Cb, pPalette[i].Cr, currentMatrix); } } @@ -200,6 +197,12 @@ void CompositionObject::DvbRenderField(SubPicDesc& spd, CGolombBuffer& gb, short short nX = nXStart; short nY = nYStart; size_t nEnd = gb.GetPos() + nLength; + if (nEnd > gb.GetSize()) { + // Unexpected end of data, the file is probably corrupted + // but try to render the subtitles anyway + ASSERT(FALSE); + nEnd = gb.GetSize(); + } while (gb.GetPos() < nEnd) { BYTE bType = gb.ReadByte(); @@ -272,11 +275,6 @@ void CompositionObject::Dvb2PixelsCodeString(SubPicDesc& spd, CGolombBuffer& gb, } } - if (nX + nCount > m_width) { - ASSERT(FALSE); - break; - } - if (nCount > 0) { FillSolidRect(spd, nX, nY, nCount, 1, m_colors[nPaletteIndex]); nX += nCount; @@ -330,13 +328,6 @@ void CompositionObject::Dvb4PixelsCodeString(SubPicDesc& spd, CGolombBuffer& gb, } } -#if 0 - if (nX + nCount > m_width) { - ASSERT(FALSE); - break; - } -#endif - if (nCount > 0) { FillSolidRect(spd, nX, nY, nCount, 1, m_colors[nPaletteIndex]); nX += nCount; @@ -369,11 +360,6 @@ void CompositionObject::Dvb8PixelsCodeString(SubPicDesc& spd, CGolombBuffer& gb, } } - if (nX + nCount > m_width) { - ASSERT(FALSE); - break; - } - if (nCount > 0) { FillSolidRect(spd, nX, nY, nCount, 1, m_colors[nPaletteIndex]); nX += nCount; diff --git a/src/Subtitles/CompositionObject.h b/src/Subtitles/CompositionObject.h index 1d2bf1a1b04..767ef4630ed 100644 --- a/src/Subtitles/CompositionObject.h +++ b/src/Subtitles/CompositionObject.h @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -21,6 +21,7 @@ #pragma once #include "Rasterizer.h" +#include "ColorConvTable.h" struct HDMV_PALETTE { @@ -68,7 +69,7 @@ class CompositionObject : Rasterizer void RenderHdmv(SubPicDesc& spd); void RenderDvb(SubPicDesc& spd, short nX, short nY); void WriteSeg(SubPicDesc& spd, short nX, short nY, short nCount, short nPaletteIndex); - void SetPalette(int nNbEntry, const HDMV_PALETTE* pPalette, bool BT709, int sourceBlackLevel, int sourceWhiteLevel, int targetBlackLevel, int targetWhiteLevel); + void SetPalette(int nNbEntry, const HDMV_PALETTE* pPalette, ColorConvTable::YuvMatrixType currentMatrix); bool HavePalette() const { return m_nColorNumber > 0; }; // Forbid the use of direct affectation for now, it would be dangerous because diff --git a/src/Subtitles/DVBSub.cpp b/src/Subtitles/DVBSub.cpp index 3c2315647e2..c5d453a0a43 100644 --- a/src/Subtitles/DVBSub.cpp +++ b/src/Subtitles/DVBSub.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -101,40 +101,44 @@ STDMETHODIMP CDVBSub::Render(SubPicDesc& spd, REFERENCE_TIME rt, double fps, REC if (POSITION posPage = FindPage(rt)) { const auto& pPage = m_pages.GetAt(posPage); - bool BT709 = m_infoSourceTarget.sourceMatrix == BT_709 ? true : m_infoSourceTarget.sourceMatrix == NONE ? (m_displayInfo.width > 720) : false; + m_eSourceMatrix = ColorConvTable::NONE ? (m_displayInfo.width > 720) ? ColorConvTable::BT709 : ColorConvTable::BT601 : m_eSourceMatrix; pPage->rendered = true; TRACE_DVB(_T("DVB - Renderer - %s - %s\n"), ReftimeToString(pPage->rtStart), ReftimeToString(pPage->rtStop)); - int nRegion = 1, nObject = 1; - for (POSITION pos = pPage->regionsPos.GetHeadPosition(); pos; nRegion++) { - DVB_REGION_POS regionPos = pPage->regionsPos.GetNext(pos); + size_t nRegion = 1; + for (const auto& regionPos : pPage->regionsPos) { + auto itRegion = FindRegion(pPage, regionPos.id); + if (itRegion != pPage->regions.cend()) { + const auto& pRegion = *itRegion; + auto itCLUT = FindClut(pPage, pRegion->CLUT_id); - if (POSITION posRegion = FindRegion(pPage, regionPos.id)) { - const auto& pRegion = pPage->regions.GetAt(posRegion); + if (itCLUT != pPage->CLUTs.cend()) { + const auto& pCLUT = *itCLUT; - if (POSITION posCLUT = FindClut(pPage, pRegion->CLUT_id)) { - const auto& pCLUT = pPage->CLUTs.GetAt(posCLUT); + size_t nObject = 1; + for (const auto& objectPos : pRegion->objects) { + auto itObject = FindObject(pPage, objectPos.object_id); - for (POSITION posO = pRegion->objects.GetHeadPosition(); posO; nObject++) { - DVB_OBJECT objectPos = pRegion->objects.GetNext(posO); - - if (POSITION posObject = FindObject(pPage, objectPos.object_id)) { - const auto& pObject = pPage->objects.GetAt(posObject); + if (itObject != pPage->objects.cend()) { + const auto& pObject = *itObject; short nX = regionPos.horizAddr + objectPos.object_horizontal_position; short nY = regionPos.vertAddr + objectPos.object_vertical_position; pObject->m_width = pRegion->width; pObject->m_height = pRegion->height; - pObject->SetPalette(pCLUT->size, pCLUT->palette, BT709, - m_infoSourceTarget.sourceBlackLevel, m_infoSourceTarget.sourceWhiteLevel, m_infoSourceTarget.targetBlackLevel, m_infoSourceTarget.targetWhiteLevel); + pObject->SetPalette(pCLUT->size, pCLUT->palette.data(), m_eSourceMatrix); pObject->RenderDvb(spd, nX, nY); - TRACE_DVB(_T(" --> %d/%d - %d/%d\n"), nRegion, pPage->regionsPos.GetCount(), nObject, pRegion->objects.GetCount()); + TRACE_DVB(_T(" --> %Iu/%Iu - %Iu/%Iu\n"), nRegion, pPage->regionsPos.size(), nObject, pRegion->objects.size()); } + + nObject++; } } } + + nRegion++; } bbox.left = 0; @@ -285,16 +289,16 @@ HRESULT CDVBSub::ParseSample(REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, BYTE // Copy data from the previous page const auto& pPrevPage = m_pages.GetTail(); - for (POSITION pos = pPrevPage->regions.GetHeadPosition(); pos;) { - m_pCurrentPage->regions.AddTail(CAutoPtr(DEBUG_NEW DVB_REGION(*pPrevPage->regions.GetNext(pos)))); + for (const auto& region : pPrevPage->regions) { + m_pCurrentPage->regions.emplace_back(DEBUG_NEW DVB_REGION(*region)); } - for (POSITION pos = pPrevPage->objects.GetHeadPosition(); pos;) { - m_pCurrentPage->objects.AddTail(CAutoPtr(DEBUG_NEW CompositionObject(*pPrevPage->objects.GetNext(pos)))); + for (const auto& object : pPrevPage->objects) { + m_pCurrentPage->objects.emplace_back(DEBUG_NEW CompositionObject(*object)); } - for (POSITION pos = pPrevPage->CLUTs.GetHeadPosition(); pos;) { - m_pCurrentPage->CLUTs.AddTail(CAutoPtr(DEBUG_NEW DVB_CLUT(*pPrevPage->CLUTs.GetNext(pos)))); + for (const auto& CLUT : pPrevPage->CLUTs) { + m_pCurrentPage->CLUTs.emplace_back(DEBUG_NEW DVB_CLUT(*CLUT)); } TRACE_DVB(_T("DVB - Page started [update] %s, TimeOut = %ds\n"), @@ -421,55 +425,28 @@ POSITION CDVBSub::FindPage(REFERENCE_TIME rt) const return nullptr; } -POSITION CDVBSub::FindRegion(const CAutoPtr& pPage, BYTE bRegionId) const +CDVBSub::RegionList::const_iterator CDVBSub::FindRegion(const CAutoPtr& pPage, BYTE bRegionId) const { - if (pPage != nullptr) { - POSITION pos = pPage->regions.GetHeadPosition(); + ENSURE(pPage); - while (pos) { - POSITION currentPos = pos; - const auto& pRegion = pPage->regions.GetNext(pos); - - if (pRegion->id == bRegionId) { - return currentPos; - } - } - } - return nullptr; + return std::find_if(pPage->regions.cbegin(), pPage->regions.cend(), + [bRegionId](const std::unique_ptr& pRegion) { return pRegion->id == bRegionId; }); } -POSITION CDVBSub::FindClut(const CAutoPtr& pPage, BYTE bClutId) const +CDVBSub::ClutList::const_iterator CDVBSub::FindClut(const CAutoPtr& pPage, BYTE bClutId) const { - if (pPage != nullptr) { - POSITION pos = pPage->CLUTs.GetHeadPosition(); + ENSURE(pPage); - while (pos) { - POSITION currentPos = pos; - const auto& pCLUT = pPage->CLUTs.GetNext(pos); - - if (pCLUT->id == bClutId) { - return currentPos; - } - } - } - return nullptr; + return std::find_if(pPage->CLUTs.cbegin(), pPage->CLUTs.cend(), + [bClutId](const std::unique_ptr& pCLUT) { return pCLUT->id == bClutId; }); } -POSITION CDVBSub::FindObject(const CAutoPtr& pPage, short sObjectId) const +CDVBSub::CompositionObjectList::const_iterator CDVBSub::FindObject(const CAutoPtr& pPage, short sObjectId) const { - if (pPage != nullptr) { - POSITION pos = pPage->objects.GetHeadPosition(); + ENSURE(pPage); - while (pos) { - POSITION currentPos = pos; - const auto& pObject = pPage->objects.GetNext(pos); - - if (pObject->m_object_id_ref == sObjectId) { - return currentPos; - } - } - } - return nullptr; + return std::find_if(pPage->objects.cbegin(), pPage->objects.cend(), + [sObjectId](const std::unique_ptr& pObject) { return pObject->m_object_id_ref == sObjectId; }); } HRESULT CDVBSub::ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtr& pPage) @@ -477,7 +454,7 @@ HRESULT CDVBSub::ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtr(DEBUG_NEW DVB_PAGE()); + pPage.Attach(DEBUG_NEW DVB_PAGE()); pPage->pageTimeOut = gb.ReadByte(); pPage->pageVersionNumber = (BYTE)gb.BitRead(4); @@ -490,7 +467,7 @@ HRESULT CDVBSub::ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtrregionsPos.AddTail(regionPos); + pPage->regionsPos.emplace_back(std::move(regionPos)); } return (wSegLength == nExpectedSize) ? S_OK : E_UNEXPECTED; @@ -525,11 +502,12 @@ HRESULT CDVBSub::ParseRegion(CGolombBuffer& gb, WORD wSegLength) size_t nEnd = gb.GetPos() + wSegLength; BYTE id = gb.ReadByte(); - POSITION posRegion = FindRegion(m_pCurrentPage, id); - if (!posRegion) { - posRegion = m_pCurrentPage->regions.AddTail(CAutoPtr(DEBUG_NEW DVB_REGION())); + auto itRegion = FindRegion(m_pCurrentPage, id); + if (itRegion == m_pCurrentPage->regions.cend()) { + m_pCurrentPage->regions.emplace_back(DEBUG_NEW DVB_REGION()); + itRegion = std::prev(m_pCurrentPage->regions.cend()); } - const auto& pRegion = m_pCurrentPage->regions.GetAt(posRegion); + const auto& pRegion = *itRegion; pRegion->id = id; pRegion->version_number = (BYTE)gb.BitRead(4); @@ -560,7 +538,7 @@ HRESULT CDVBSub::ParseRegion(CGolombBuffer& gb, WORD wSegLength) object.foreground_pixel_code = gb.ReadByte(); object.background_pixel_code = gb.ReadByte(); } - pRegion->objects.AddTail(object); + pRegion->objects.emplace_back(std::move(object)); } hr = (wSegLength == nExpectedSize) ? S_OK : E_UNEXPECTED; @@ -578,11 +556,12 @@ HRESULT CDVBSub::ParseClut(CGolombBuffer& gb, WORD wSegLength) size_t nEnd = gb.GetPos() + wSegLength; BYTE id = gb.ReadByte(); - POSITION posClut = FindClut(m_pCurrentPage, id); - if (!posClut) { - posClut = m_pCurrentPage->CLUTs.AddTail(CAutoPtr(DEBUG_NEW DVB_CLUT())); + auto itClut = FindClut(m_pCurrentPage, id); + if (itClut == m_pCurrentPage->CLUTs.cend()) { + m_pCurrentPage->CLUTs.emplace_back(DEBUG_NEW DVB_CLUT()); + itClut = std::prev(m_pCurrentPage->CLUTs.cend()); } - const auto& pClut = m_pCurrentPage->CLUTs.GetAt(posClut); + const auto& pClut = *itClut; pClut->id = id; pClut->version_number = (BYTE)gb.BitRead(4); @@ -635,14 +614,15 @@ HRESULT CDVBSub::ParseObject(CGolombBuffer& gb, WORD wSegLength) if (m_pCurrentPage) { size_t nExpectedSize = 3; - size_t nEnd = gb.GetPos() + wSegLength; + // size_t nEnd = gb.GetPos() + wSegLength; short id = gb.ReadShort(); - POSITION posObject = FindObject(m_pCurrentPage, id); - if (!posObject) { - posObject = m_pCurrentPage->objects.AddTail(CAutoPtr(DEBUG_NEW CompositionObject())); + auto itObject = FindObject(m_pCurrentPage, id); + if (itObject == m_pCurrentPage->objects.cend()) { + m_pCurrentPage->objects.emplace_back(DEBUG_NEW CompositionObject()); + itObject = std::prev(m_pCurrentPage->objects.cend()); } - const auto& pObject = m_pCurrentPage->objects.GetAt(posObject); + const auto& pObject = *itObject; pObject->m_object_id_ref = id; pObject->m_version_number = (BYTE)gb.BitRead(4); @@ -658,7 +638,7 @@ HRESULT CDVBSub::ParseObject(CGolombBuffer& gb, WORD wSegLength) hr = (wSegLength >= nExpectedSize) ? S_OK : E_UNEXPECTED; } else { TRACE_DVB(_T("DVB - Text subtitles are currently not supported\n")); - m_pCurrentPage->objects.RemoveTail(); + m_pCurrentPage->objects.pop_back(); hr = E_NOTIMPL; } } @@ -704,10 +684,11 @@ void CDVBSub::RemoveOldPages(REFERENCE_TIME rt) { // Cleanup the old pages. We keep a 2 min buffer to play nice with the queue. while (!m_pages.IsEmpty() && m_pages.GetHead()->rtStop + 120 * 10000000i64 < rt) { - auto pPage = m_pages.RemoveHead(); + const auto& pPage = m_pages.GetHead(); if (!pPage->rendered) { TRACE_DVB(_T("DVB - remove unrendered object, %s - %s\n"), ReftimeToString(pPage->rtStart), ReftimeToString(pPage->rtStop)); } + m_pages.RemoveHeadNoReturn(); } } diff --git a/src/Subtitles/DVBSub.h b/src/Subtitles/DVBSub.h index bbfba28d9cc..e2be340502a 100644 --- a/src/Subtitles/DVBSub.h +++ b/src/Subtitles/DVBSub.h @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,6 +22,8 @@ #include "RLECodedSubtitle.h" #include "CompositionObject.h" +#include +#include class CGolombBuffer; @@ -71,141 +73,77 @@ class CDVBSub : public CRLECodedSubtitle }; struct DVB_CLUT { - BYTE id; - BYTE version_number; - BYTE size; + BYTE id = 0; + BYTE version_number = 0; + BYTE size = 0; - HDMV_PALETTE palette[256]; + std::array palette; DVB_CLUT() - : id(0) - , version_number(0) - , size(0) { - ZeroMemory(palette, sizeof(palette)); + : palette() { } }; struct DVB_DISPLAY { - BYTE version_number; - BYTE display_window_flag; - short width; - short height; - short horizontal_position_minimun; - short horizontal_position_maximum; - short vertical_position_minimun; - short vertical_position_maximum; - - DVB_DISPLAY() // Default value (section 5.1.3) - : version_number(0) - , display_window_flag(0) - , width(720) - , height(576) - , horizontal_position_minimun(0) - , horizontal_position_maximum(0) - , vertical_position_minimun(0) - , vertical_position_maximum(0) { - } + BYTE version_number = 0; + BYTE display_window_flag = 0; + short width = 720; + short height = 576; + short horizontal_position_minimun = 0; + short horizontal_position_maximum = 0; + short vertical_position_minimun = 0; + short vertical_position_maximum = 0; }; struct DVB_OBJECT { - short object_id; - BYTE object_type; - BYTE object_provider_flag; - short object_horizontal_position; - short object_vertical_position; - BYTE foreground_pixel_code; - BYTE background_pixel_code; - - DVB_OBJECT() - : object_id(0xFF) - , object_type(0) - , object_provider_flag(0) - , object_horizontal_position(0) - , object_vertical_position(0) - , foreground_pixel_code(0) - , background_pixel_code(0) { - } + short object_id = 0; + BYTE object_type = 0; + BYTE object_provider_flag = 0; + short object_horizontal_position = 0; + short object_vertical_position = 0; + BYTE foreground_pixel_code = 0; + BYTE background_pixel_code = 0; }; struct DVB_REGION_POS { - BYTE id; - WORD horizAddr; - WORD vertAddr; - - DVB_REGION_POS() - : id(0) - , horizAddr(0) - , vertAddr(0) { - } + BYTE id = 0; + WORD horizAddr = 0; + WORD vertAddr = 0; }; struct DVB_REGION { - BYTE id; - BYTE version_number; - BYTE fill_flag; - WORD width; - WORD height; - BYTE level_of_compatibility; - BYTE depth; - BYTE CLUT_id; - BYTE _8_bit_pixel_code; - BYTE _4_bit_pixel_code; - BYTE _2_bit_pixel_code; - CAtlList objects; - - DVB_REGION() - : id(0) - , version_number(0) - , fill_flag(0) - , width(0) - , height(0) - , level_of_compatibility(0) - , depth(0) - , CLUT_id(0) - , _8_bit_pixel_code(0) - , _4_bit_pixel_code(0) - , _2_bit_pixel_code(0) { - } - - DVB_REGION(const CDVBSub::DVB_REGION& region) - : id(region.id) - , version_number(region.version_number) - , fill_flag(region.fill_flag) - , width(region.width) - , height(region.height) - , level_of_compatibility(region.level_of_compatibility) - , depth(region.depth) - , CLUT_id(region.CLUT_id) - , _8_bit_pixel_code(region._8_bit_pixel_code) - , _4_bit_pixel_code(region._4_bit_pixel_code) - , _2_bit_pixel_code(region._2_bit_pixel_code) { - objects.AddHeadList(®ion.objects); - } + BYTE id = 0; + BYTE version_number = 0; + BYTE fill_flag = 0; + WORD width = 0; + WORD height = 0; + BYTE level_of_compatibility = 0; + BYTE depth = 0; + BYTE CLUT_id = 0; + BYTE _8_bit_pixel_code = 0; + BYTE _4_bit_pixel_code = 0; + BYTE _2_bit_pixel_code = 0; + std::list objects; }; + using RegionList = std::list>; + using CompositionObjectList = std::list>; + using ClutList = std::list>; + class DVB_PAGE { public: - REFERENCE_TIME rtStart; - REFERENCE_TIME rtStop; - BYTE pageTimeOut; - BYTE pageVersionNumber; - BYTE pageState; - CAtlList regionsPos; - CAutoPtrList regions; - CAutoPtrList objects; - CAutoPtrList CLUTs; - bool rendered; - - DVB_PAGE() - : rtStart(0) - , rtStop(0) - , pageTimeOut(0) - , pageVersionNumber(0) - , pageState(0) - , rendered(false) { - } + REFERENCE_TIME rtStart = 0; + REFERENCE_TIME rtStop = 0; + BYTE pageTimeOut = 0; + BYTE pageVersionNumber = 0; + BYTE pageState = 0; + std::list regionsPos; + RegionList regions; + CompositionObjectList objects; + ClutList CLUTs; + bool rendered = false; }; size_t m_nBufferSize; @@ -219,9 +157,9 @@ class CDVBSub : public CRLECodedSubtitle HRESULT AddToBuffer(BYTE* pData, size_t nSize); POSITION FindPage(REFERENCE_TIME rt) const; - POSITION FindRegion(const CAutoPtr& pPage, BYTE bRegionId) const; - POSITION FindClut(const CAutoPtr& pPage, BYTE bClutId) const; - POSITION FindObject(const CAutoPtr& pPage, short sObjectId) const; + RegionList::const_iterator FindRegion(const CAutoPtr& pPage, BYTE bRegionId) const; + ClutList::const_iterator FindClut(const CAutoPtr& pPage, BYTE bClutId) const; + CompositionObjectList::const_iterator FindObject(const CAutoPtr& pPage, short sObjectId) const; HRESULT ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtr& pPage); HRESULT ParseDisplay(CGolombBuffer& gb, WORD wSegLength); diff --git a/src/Subtitles/PGSSub.cpp b/src/Subtitles/PGSSub.cpp index 748c2058ec3..3a13e0fee50 100644 --- a/src/Subtitles/PGSSub.cpp +++ b/src/Subtitles/PGSSub.cpp @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -216,8 +216,8 @@ void CPGSSub::Reset() m_nCurSegment = NO_SEGMENT; m_pCurrentPresentationSegment.Free(); m_pPresentationSegments.RemoveAll(); - for (int i = 0; i < _countof(m_compositionObjects); i++) { - m_compositionObjects[i].Reset(); + for (auto& compositionObject : m_compositionObjects) { + compositionObject.Reset(); } } @@ -247,7 +247,7 @@ HRESULT CPGSSub::Render(SubPicDesc& spd, REFERENCE_TIME rt, RECT& bbox, bool bRe if (posPresentationSegment) { const auto& pPresentationSegment = m_pPresentationSegments.GetAt(posPresentationSegment); - bool BT709 = m_infoSourceTarget.sourceMatrix == BT_709 ? true : m_infoSourceTarget.sourceMatrix == NONE ? (pPresentationSegment->video_descriptor.nVideoWidth > 720) : false; + m_eSourceMatrix = ColorConvTable::NONE ? (pPresentationSegment->video_descriptor.nVideoWidth > 720) ? ColorConvTable::BT709 : ColorConvTable::BT601 : m_eSourceMatrix; TRACE_PGSSUB(_T("CPGSSub:Render Presentation segment %d --> %s - %s\n"), pPresentationSegment->composition_descriptor.nNumber, ReftimeToString(pPresentationSegment->rtStart), @@ -256,14 +256,10 @@ HRESULT CPGSSub::Render(SubPicDesc& spd, REFERENCE_TIME rt, RECT& bbox, bool bRe bbox.left = bbox.top = LONG_MAX; bbox.right = bbox.bottom = 0; - POSITION pos = pPresentationSegment->objects.GetHeadPosition(); - while (pos) { - const auto& pObject = pPresentationSegment->objects.GetNext(pos); - + for (const auto& pObject : pPresentationSegment->objects) { if (pObject->GetRLEDataSize() && pObject->m_width > 0 && pObject->m_height > 0 && spd.w >= (pObject->m_horizontal_position + pObject->m_width) && spd.h >= (pObject->m_vertical_position + pObject->m_height)) { - pObject->SetPalette(pPresentationSegment->CLUT.size, pPresentationSegment->CLUT.palette, BT709, - m_infoSourceTarget.sourceBlackLevel, m_infoSourceTarget.sourceWhiteLevel, m_infoSourceTarget.targetBlackLevel, m_infoSourceTarget.targetWhiteLevel); + pObject->SetPalette(pPresentationSegment->CLUT.size, pPresentationSegment->CLUT.palette.data(), m_eSourceMatrix); bbox.left = std::min(pObject->m_horizontal_position, bbox.left); bbox.top = std::min(pObject->m_vertical_position, bbox.top); bbox.right = std::max(pObject->m_horizontal_position + pObject->m_width, bbox.right); @@ -289,7 +285,8 @@ HRESULT CPGSSub::Render(SubPicDesc& spd, REFERENCE_TIME rt, RECT& bbox, bool bRe int CPGSSub::ParsePresentationSegment(REFERENCE_TIME rt, CGolombBuffer* pGBuffer) { - m_pCurrentPresentationSegment = CAutoPtr(DEBUG_NEW HDMV_PRESENTATION_SEGMENT()); + m_pCurrentPresentationSegment.Free(); + m_pCurrentPresentationSegment.Attach(DEBUG_NEW HDMV_PRESENTATION_SEGMENT()); m_pCurrentPresentationSegment->rtStart = rt; m_pCurrentPresentationSegment->rtStop = UNKNOWN_TIME; // Unknown for now @@ -304,9 +301,10 @@ int CPGSSub::ParsePresentationSegment(REFERENCE_TIME rt, CGolombBuffer* pGBuffer m_pCurrentPresentationSegment->composition_descriptor.bState, m_pCurrentPresentationSegment->objectCount); for (int i = 0; i < m_pCurrentPresentationSegment->objectCount; i++) { - CAutoPtr pCompositionObject(DEBUG_NEW CompositionObject()); - ParseCompositionObject(pGBuffer, pCompositionObject); - m_pCurrentPresentationSegment->objects.AddTail(pCompositionObject); + std::unique_ptr pCompositionObject(DEBUG_NEW CompositionObject()); + if (ParseCompositionObject(pGBuffer, pCompositionObject)) { + m_pCurrentPresentationSegment->objects.emplace_back(std::move(pCompositionObject)); + } } return m_pCurrentPresentationSegment->objectCount; @@ -319,10 +317,7 @@ void CPGSSub::EnqueuePresentationSegment() m_pCurrentPresentationSegment->CLUT = m_CLUTs[m_pCurrentPresentationSegment->CLUT.id]; // Get the objects' data - POSITION pos = m_pCurrentPresentationSegment->objects.GetHeadPosition(); - while (pos) { - const auto& pObject = m_pCurrentPresentationSegment->objects.GetNext(pos); - + for (auto& pObject : m_pCurrentPresentationSegment->objects) { const CompositionObject& pObjectData = m_compositionObjects[pObject->m_object_id_ref]; pObject->m_width = pObjectData.m_width; @@ -384,7 +379,10 @@ void CPGSSub::ParsePalette(CGolombBuffer* pGBuffer, size_t nSize) // #497 void CPGSSub::ParseObject(CGolombBuffer* pGBuffer, size_t nUnitSize) // #498 { short object_id = pGBuffer->ReadShort(); - ASSERT(object_id < _countof(m_compositionObjects)); + if (object_id < 0 || size_t(object_id) >= m_compositionObjects.size()) { + ASSERT(FALSE); // This is not supposed to happen + return; + } CompositionObject& pObject = m_compositionObjects[object_id]; @@ -405,12 +403,17 @@ void CPGSSub::ParseObject(CGolombBuffer* pGBuffer, size_t nUnitSize) // #498 } } -void CPGSSub::ParseCompositionObject(CGolombBuffer* pGBuffer, const CAutoPtr& pCompositionObject) +bool CPGSSub::ParseCompositionObject(CGolombBuffer* pGBuffer, const std::unique_ptr& pCompositionObject) { - BYTE bTemp; - pCompositionObject->m_object_id_ref = pGBuffer->ReadShort(); + short object_id_ref = pGBuffer->ReadShort(); + if (object_id_ref < 0 || size_t(object_id_ref) >= m_compositionObjects.size()) { + ASSERT(FALSE); // This is not supposed to happen + return false; + } + + pCompositionObject->m_object_id_ref = object_id_ref; pCompositionObject->m_window_id_ref = pGBuffer->ReadByte(); - bTemp = pGBuffer->ReadByte(); + BYTE bTemp = pGBuffer->ReadByte(); pCompositionObject->m_object_cropped_flag = !!(bTemp & 0x80); pCompositionObject->m_forced_on_flag = !!(bTemp & 0x40); pCompositionObject->m_horizontal_position = pGBuffer->ReadShort(); @@ -422,6 +425,8 @@ void CPGSSub::ParseCompositionObject(CGolombBuffer* pGBuffer, const CAutoPtrm_cropping_width = pGBuffer->ReadShort(); pCompositionObject->m_cropping_height = pGBuffer->ReadShort(); } + + return true; } void CPGSSub::ParseVideoDescriptor(CGolombBuffer* pGBuffer, VIDEO_DESCRIPTOR* pVideoDescriptor) @@ -459,12 +464,12 @@ void CPGSSub::RemoveOldSegments(REFERENCE_TIME rt) while (!m_pPresentationSegments.IsEmpty() && m_pPresentationSegments.GetHead()->rtStop != UNKNOWN_TIME && m_pPresentationSegments.GetHead()->rtStop + 120 * 10000000i64 < rt) { - auto pPresentationSegment = m_pPresentationSegments.RemoveHead(); TRACE_PGSSUB(_T("CPGSSub::RemoveOldSegments Remove presentation segment %d %s => %s (rt=%s)\n"), - pPresentationSegment->composition_descriptor.nNumber, - ReftimeToString(pPresentationSegment->rtStart), - ReftimeToString(pPresentationSegment->rtStop), + m_pPresentationSegments.GetHead()->composition_descriptor.nNumber, + ReftimeToString(m_pPresentationSegments.GetHead()->rtStart), + ReftimeToString(m_pPresentationSegments.GetHead()->rtStop), ReftimeToString(rt)); + m_pPresentationSegments.RemoveHeadNoReturn(); } } @@ -536,7 +541,7 @@ void CPGSSubFile::ParseFile(CString fn) headerBuffer.ReadByte(); // segment type WORD wLenSegment = (WORD)headerBuffer.ReadShort(); - // Let some round to add the segment type and size + // Leave some room to add the segment type and size int nLenData = nExtraSize + wLenSegment; segBuff.resize(nLenData); memcpy(segBuff.data(), &header[header.size() - nExtraSize], nExtraSize); diff --git a/src/Subtitles/PGSSub.h b/src/Subtitles/PGSSub.h index 09cf4adfafe..ad651caadcc 100644 --- a/src/Subtitles/PGSSub.h +++ b/src/Subtitles/PGSSub.h @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -23,6 +23,8 @@ #include "RLECodedSubtitle.h" #include "CompositionObject.h" #include +#include +#include class CGolombBuffer; @@ -80,17 +82,14 @@ class CPGSSub : public CRLECodedSubtitle }; struct HDMV_CLUT { - BYTE id; - BYTE version_number; - BYTE size; + BYTE id = 0; + BYTE version_number = 0; + BYTE size = 0; - HDMV_PALETTE palette[256]; + std::array palette; HDMV_CLUT() - : id(0) - , version_number(0) - , size(0) { - ZeroMemory(palette, sizeof(palette)); + : palette() { } }; @@ -106,7 +105,7 @@ class CPGSSub : public CRLECodedSubtitle int objectCount; - CAutoPtrList objects; + std::list> objects; }; HDMV_SEGMENT_TYPE m_nCurSegment; @@ -118,8 +117,8 @@ class CPGSSub : public CRLECodedSubtitle CAutoPtr m_pCurrentPresentationSegment; CAutoPtrList m_pPresentationSegments; - HDMV_CLUT m_CLUTs[256]; - CompositionObject m_compositionObjects[64]; + std::array m_CLUTs; + std::array m_compositionObjects; void AllocSegment(size_t nSize); int ParsePresentationSegment(REFERENCE_TIME rt, CGolombBuffer* pGBuffer); @@ -130,7 +129,7 @@ class CPGSSub : public CRLECodedSubtitle void ParseObject(CGolombBuffer* pGBuffer, size_t nUnitSize); void ParseVideoDescriptor(CGolombBuffer* pGBuffer, VIDEO_DESCRIPTOR* pVideoDescriptor); void ParseCompositionDescriptor(CGolombBuffer* pGBuffer, COMPOSITION_DESCRIPTOR* pCompositionDescriptor); - void ParseCompositionObject(CGolombBuffer* pGBuffer, const CAutoPtr& pCompositionObject); + bool ParseCompositionObject(CGolombBuffer* pGBuffer, const std::unique_ptr& pCompositionObject); POSITION FindPresentationSegment(REFERENCE_TIME rt) const; diff --git a/src/Subtitles/RLECodedSubtitle.cpp b/src/Subtitles/RLECodedSubtitle.cpp index 88c8bc71e1d..328f07b3234 100644 --- a/src/Subtitles/RLECodedSubtitle.cpp +++ b/src/Subtitles/RLECodedSubtitle.cpp @@ -1,5 +1,5 @@ /* - * (C) 2008-2014 see Authors.txt + * (C) 2008-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -101,40 +101,38 @@ STDMETHODIMP CRLECodedSubtitle::Reload() return S_OK; } -HRESULT CRLECodedSubtitle::NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) -{ - CAutoLock cAutoLock(&m_csCritSec); - - Reset(); - - return S_OK; -} - STDMETHODIMP CRLECodedSubtitle::SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel) { + yuvMatrix.Replace(_T(".VSFilter"), _T("")); int nPos = 0; CString range = yuvMatrix.Tokenize(_T("."), nPos); CString matrix = yuvMatrix.Mid(nPos); - m_infoSourceTarget.sourceBlackLevel = 16; - m_infoSourceTarget.sourceWhiteLevel = 235; + ColorConvTable::YuvRangeType sourceRange = ColorConvTable::RANGE_TV; if (range == _T("PC")) { - m_infoSourceTarget.sourceBlackLevel = 0; - m_infoSourceTarget.sourceWhiteLevel = 255; + sourceRange = ColorConvTable::RANGE_PC; } if (matrix == _T("709")) { - m_infoSourceTarget.sourceMatrix = BT_709; + m_eSourceMatrix = ColorConvTable::BT709; } else if (matrix == _T("240M")) { - m_infoSourceTarget.sourceMatrix = BT_709; + m_eSourceMatrix = ColorConvTable::BT709; } else if (matrix == _T("601")) { - m_infoSourceTarget.sourceMatrix = BT_601; + m_eSourceMatrix = ColorConvTable::BT601; } else { - m_infoSourceTarget.sourceMatrix = NONE; + m_eSourceMatrix = ColorConvTable::NONE; } - m_infoSourceTarget.targetBlackLevel = targetBlackLevel; - m_infoSourceTarget.targetWhiteLevel = targetWhiteLevel; + ColorConvTable::SetDefaultConvType(ColorConvTable::BT601, sourceRange, (targetWhiteLevel < 245), false); // Matrix isn't relevant here. + + return S_OK; +} + +HRESULT CRLECodedSubtitle::NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) +{ + CAutoLock cAutoLock(&m_csCritSec); + + Reset(); return S_OK; } diff --git a/src/Subtitles/RLECodedSubtitle.h b/src/Subtitles/RLECodedSubtitle.h index ac407e54b55..7f5d31e6a6d 100644 --- a/src/Subtitles/RLECodedSubtitle.h +++ b/src/Subtitles/RLECodedSubtitle.h @@ -1,5 +1,5 @@ /* - * (C) 2008-2014 see Authors.txt + * (C) 2008-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -21,6 +21,7 @@ #pragma once #include "../SubPic/SubPicProviderImpl.h" +#include "ColorConvTable.h" class __declspec(uuid("FCA68599-C83E-4ea5-94A3-C2E1B0E326B9")) @@ -47,12 +48,12 @@ class __declspec(uuid("FCA68599-C83E-4ea5-94A3-C2E1B0E326B9")) STDMETHODIMP_(int) GetStream(); STDMETHODIMP SetStream(int iStream); STDMETHODIMP Reload(); + STDMETHODIMP SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel); virtual HRESULT ParseSample(REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, BYTE* pData, size_t nLen) PURE; HRESULT NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate); virtual void EndOfStream() PURE; virtual void Reset() PURE; - STDMETHODIMP SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel); protected: CCritSec m_csCritSec; @@ -60,18 +61,5 @@ class __declspec(uuid("FCA68599-C83E-4ea5-94A3-C2E1B0E326B9")) CString m_name; LCID m_lcid; - enum SOURCE_MATRIX { - NONE, - BT_709, - BT_601 - }; - - struct SourceTarget { - int sourceBlackLevel = 16; - int sourceWhiteLevel = 235; - int targetBlackLevel = 0; - int targetWhiteLevel = 255; - - SOURCE_MATRIX sourceMatrix = NONE; - } m_infoSourceTarget; + ColorConvTable::YuvMatrixType m_eSourceMatrix = ColorConvTable::NONE; }; diff --git a/src/Subtitles/RTS.cpp b/src/Subtitles/RTS.cpp index 778c9c34f1f..934c89b2ed9 100644 --- a/src/Subtitles/RTS.cpp +++ b/src/Subtitles/RTS.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -23,6 +23,7 @@ #include #include #include +#include "ColorConvTable.h" #include "RTS.h" #include "../DSUtil/PathUtils.h" @@ -605,14 +606,16 @@ bool CPolygon::ParseStr() }; for (LPCWSTR str = m_str; *str;) { - // Trim left whitespace - while (CStringW::StrTraits::IsSpace(*str)) { + // Trim any leading invalid characters and whitespace + while (*str && !isValidAction(*str)) { str++; } const WCHAR c = *str; - do { - str++; - } while (isValidAction(*str)); + if (*str) { + do { + str++; + } while (isValidAction(*str)); + } switch (c) { case L'm': if (!bFoundMove) { @@ -961,6 +964,7 @@ CRect CLine::PaintShadow(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPo } COLORREF shadow = revcolor(w->m_style.colors[3]) | (a << 24); DWORD sw[6] = {shadow, DWORD_MAX}; + sw[0] = ColorConvTable::ColorCorrection(sw[0]); w->Paint(CPoint(x, y), org); @@ -1000,6 +1004,7 @@ CRect CLine::PaintOutline(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CP } COLORREF outline = revcolor(w->m_style.colors[2]) | ((0xff - aoutline) << 24); DWORD sw[6] = {outline, DWORD_MAX}; + sw[0] = ColorConvTable::ColorCorrection(sw[0]); w->Paint(CPoint(x, y), org); @@ -1079,14 +1084,14 @@ CRect CLine::PaintBody(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoin if (w->m_style.fBlur) { bluradjust += 8; } - double tx = w->m_style.fontAngleZ; - UNREFERENCED_PARAMETER(tx); - sw[4] = sw[2]; - sw[5] = 0x00ffffff; w->Paint(CPoint(x, y), org); + sw[0] = ColorConvTable::ColorCorrection(sw[0]); + sw[2] = ColorConvTable::ColorCorrection(sw[2]); sw[3] = (int)(w->m_style.outlineWidthX + t * w->getOverlayWidth() + t * bluradjust) >> 3; + sw[4] = sw[2]; + sw[5] = 0x00ffffff; bbox |= w->Draw(spd, clipRect, pAlphaMask, x, y, sw, true, false); p.x += w->m_width; @@ -1330,7 +1335,7 @@ void CSubtitle::CreateClippers(CSize size) int k = std::min(width, w); for (ptrdiff_t i = 0; i < k; i++, a += da) { - am[i] = (am[i] * a) >> 14; + am[i] = BYTE((am[i] * a) >> 14); } a = 0x40 << 8; @@ -1342,7 +1347,7 @@ void CSubtitle::CreateClippers(CSize size) } for (ptrdiff_t i = k; i < w; i++, a -= da) { - am[i] = (am[i] * a) >> 14; + am[i] = BYTE((am[i] * a) >> 14); } } } else if (m_effects[EF_SCROLL] && m_effects[EF_SCROLL]->param[4]) { @@ -1371,7 +1376,7 @@ void CSubtitle::CreateClippers(CSize size) for (ptrdiff_t j = k; j < l; j++, a += da) { for (ptrdiff_t i = 0; i < w; i++, am++) { - *am = ((*am) * a) >> 14; + *am = BYTE(((*am) * a) >> 14); } } } @@ -1394,7 +1399,7 @@ void CSubtitle::CreateClippers(CSize size) int j = k; for (; j < l; j++, a += da) { for (ptrdiff_t i = 0; i < w; i++, am++) { - *am = ((*am) * a) >> 14; + *am = BYTE(((*am) * a) >> 14); } } @@ -3249,3 +3254,42 @@ STDMETHODIMP CRenderedTextSubtitle::Reload() } return !m_path.IsEmpty() && Open(m_path, DEFAULT_CHARSET, m_name) ? S_OK : E_FAIL; } + +STDMETHODIMP CRenderedTextSubtitle::SetSourceTargetInfo(CString yuvVideoMatrix, int targetBlackLevel, int targetWhiteLevel) +{ + bool bIsVSFilter = !!yuvVideoMatrix.Replace(_T(".VSFilter"), _T("")); + ColorConvTable::YuvMatrixType yuvMatrix = ColorConvTable::BT601; + ColorConvTable::YuvRangeType yuvRange = ColorConvTable::RANGE_TV; + + auto parseMatrixString = [&](const CString & sYuvMatrix) { + int nPos = 0; + CString range = sYuvMatrix.Tokenize(_T("."), nPos); + CString matrix = sYuvMatrix.Mid(nPos); + + yuvRange = ColorConvTable::RANGE_TV; + if (range == _T("PC")) { + yuvRange = ColorConvTable::RANGE_PC; + } + + if (matrix == _T("709")) { + yuvMatrix = ColorConvTable::BT709; + } else if (matrix == _T("240M")) { + yuvMatrix = ColorConvTable::BT709; + } else if (matrix == _T("601")) { + yuvMatrix = ColorConvTable::BT601; + } else { + yuvMatrix = ColorConvTable::NONE; + } + }; + + if (!m_sYCbCrMatrix.IsEmpty()) { + parseMatrixString(m_sYCbCrMatrix); + } else { + parseMatrixString(yuvVideoMatrix); + } + + bool bTransformColors = !bIsVSFilter && !m_sYCbCrMatrix.IsEmpty(); + ColorConvTable::SetDefaultConvType(yuvMatrix, yuvRange, (targetWhiteLevel < 245), bTransformColors); + + return S_OK; +} diff --git a/src/Subtitles/RTS.h b/src/Subtitles/RTS.h index cd350b72519..b2660d45862 100644 --- a/src/Subtitles/RTS.h +++ b/src/Subtitles/RTS.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -423,4 +423,5 @@ class __declspec(uuid("537DCACA-2812-4a4f-B2C6-1A34C17ADEB0")) STDMETHODIMP_(int) GetStream(); STDMETHODIMP SetStream(int iStream); STDMETHODIMP Reload(); + STDMETHODIMP SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel); }; diff --git a/src/Subtitles/Rasterizer.cpp b/src/Subtitles/Rasterizer.cpp index 4f68ceba511..e61eb61b1fe 100644 --- a/src/Subtitles/Rasterizer.cpp +++ b/src/Subtitles/Rasterizer.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -865,9 +865,9 @@ bool Rasterizer::Rasterize(int xsub, int ysub, int fBlur, double fGaussianBlur) byte* dst = buffer + m_pOverlayData->mOverlayPitch * (y >> 3) + first; if (first == last) { - *dst += x2 - x1; + *dst += byte(x2 - x1); } else { - *dst += ((first + 1) << 3) - x1; + *dst += byte(((first + 1) << 3) - x1); ++dst; while (++first < last) { @@ -875,7 +875,7 @@ bool Rasterizer::Rasterize(int xsub, int ysub, int fBlur, double fGaussianBlur) ++dst; } - *dst += x2 - (last << 3); + *dst += byte(x2 - (last << 3)); } } } @@ -1674,6 +1674,8 @@ CRect Rasterizer::Draw(SubPicDesc& spd, CRect& clipRect, byte* pAlphaMask, int x void Rasterizer::FillSolidRect(SubPicDesc& spd, int x, int y, int nWidth, int nHeight, DWORD lColor) { + ASSERT(spd.w >= x + nWidth && spd.h >= y + nHeight); + for (int wy = y; wy < y + nHeight; wy++) { DWORD* dst = (DWORD*)((BYTE*)spd.bits + spd.pitch * wy) + x; for (int wt = 0; wt < nWidth; ++wt) { diff --git a/src/Subtitles/STS.cpp b/src/Subtitles/STS.cpp index b428458896a..8ec94753120 100644 --- a/src/Subtitles/STS.cpp +++ b/src/Subtitles/STS.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -242,14 +242,6 @@ int CharSetLen = _countof(CharSetList); // -static DWORD CharSetToCodePage(DWORD dwCharSet) -{ - CHARSETINFO cs; - ZeroMemory(&cs, sizeof(CHARSETINFO)); - ::TranslateCharsetInfo((DWORD*)dwCharSet, &cs, TCI_SRCCHARSET); - return cs.ciACP; -} - static int FindChar(CStringW str, WCHAR c, int pos, bool fUnicode, int CharSet) { if (fUnicode) { @@ -1269,7 +1261,7 @@ static bool LoadFont(const CString& font) const TCHAR* s = font; const TCHAR* e = s + len; for (BYTE* p = pData; s < e; s++, p++) { - *p = *s - 33; + *p = BYTE(*s - 33); } for (ptrdiff_t i = 0, j = 0, k = len & ~3; i < k; i += 4, j += 3) { @@ -1485,7 +1477,7 @@ static bool OpenSubStationAlpha(CTextFile* file, CSimpleTextSubtitle& ret, int C style->colors[2] = style->colors[3]; // style->colors[2] is used for drawing the outline alpha = std::max(std::min(alpha, 0xff), 0); for (size_t i = 0; i < 3; i++) { - style->alpha[i] = alpha; + style->alpha[i] = (BYTE)alpha; } style->alpha[3] = 0x80; } @@ -1580,6 +1572,8 @@ static bool OpenSubStationAlpha(CTextFile* file, CSimpleTextSubtitle& ret, int C fRet = true; } else if (entry == L"fontname") { LoadUUEFont(file); + } else if (entry == L"ycbcr matrix") { + ret.m_sYCbCrMatrix = GetStrW(pszBuff, nBuffLength); } } @@ -1645,7 +1639,7 @@ static bool OpenXombieSub(CTextFile* file, CSimpleTextSubtitle& ret, int CharSet style->colors[i] = (COLORREF)GetInt(pszBuff, nBuffLength); } for (size_t i = 0; i < 4; i++) { - style->alpha[i] = GetInt(pszBuff, nBuffLength); + style->alpha[i] = (BYTE)GetInt(pszBuff, nBuffLength); } style->fontWeight = GetInt(pszBuff, nBuffLength) ? FW_BOLD : FW_NORMAL; style->fItalic = GetInt(pszBuff, nBuffLength); @@ -2615,7 +2609,7 @@ bool CSimpleTextSubtitle::Open(CString fn, int CharSet, CString name, CString vi return Open(&f, CharSet, name); } -static size_t CountLines(CTextFile* f, ULONGLONG from, ULONGLONG to, CString& s = CString()) +static size_t CountLines(CTextFile* f, ULONGLONG from, ULONGLONG to, CString s = _T("")) { size_t n = 0; f->Seek(from, CFile::begin); @@ -3038,7 +3032,7 @@ STSStyle& STSStyle::operator = (LOGFONT& lf) LOGFONTA& operator <<= (LOGFONTA& lfa, STSStyle& s) { - lfa.lfCharSet = s.charSet; + lfa.lfCharSet = (BYTE)s.charSet; strncpy_s(lfa.lfFaceName, LF_FACESIZE, CStringA(s.fontName), _TRUNCATE); HDC hDC = GetDC(nullptr); lfa.lfHeight = -MulDiv((int)(s.fontSize + 0.5), GetDeviceCaps(hDC, LOGPIXELSY), 72); @@ -3052,7 +3046,7 @@ LOGFONTA& operator <<= (LOGFONTA& lfa, STSStyle& s) LOGFONTW& operator <<= (LOGFONTW& lfw, STSStyle& s) { - lfw.lfCharSet = s.charSet; + lfw.lfCharSet = (BYTE)s.charSet; wcsncpy_s(lfw.lfFaceName, LF_FACESIZE, CStringW(s.fontName), _TRUNCATE); HDC hDC = GetDC(nullptr); lfw.lfHeight = -MulDiv((int)(s.fontSize + 0.5), GetDeviceCaps(hDC, LOGPIXELSY), 72); @@ -3106,7 +3100,7 @@ STSStyle& operator <<= (STSStyle& s, const CString& style) s.colors[i] = (COLORREF)GetInt(pszBuff, nBuffLength, L';'); } for (size_t i = 0; i < 4; i++) { - s.alpha[i] = GetInt(pszBuff, nBuffLength, L';'); + s.alpha[i] = (BYTE)GetInt(pszBuff, nBuffLength, L';'); } s.charSet = GetInt(pszBuff, nBuffLength, L';'); s.fontName = WToT(GetStrW(pszBuff, nBuffLength, L';')); diff --git a/src/Subtitles/STS.h b/src/Subtitles/STS.h index cd9bdf63573..5803f9d88fa 100644 --- a/src/Subtitles/STS.h +++ b/src/Subtitles/STS.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -143,6 +143,7 @@ class CSimpleTextSubtitle : public CAtlArray int m_defaultWrapStyle; int m_collisions; bool m_fScaledBAS; + CString m_sYCbCrMatrix; bool m_fUsingAutoGeneratedDefaultStyle; diff --git a/src/Subtitles/SeparableFilter.h b/src/Subtitles/SeparableFilter.h index 3334a56b468..4b272026b59 100644 --- a/src/Subtitles/SeparableFilter.h +++ b/src/Subtitles/SeparableFilter.h @@ -1,6 +1,6 @@ /* * (C) 2007 Niels Martin Hansen -* (C) 2013-2014 see Authors.txt +* (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -24,7 +24,10 @@ #include #define LIBDIVIDE_USE_SSE2 1 +#pragma warning(push) +#pragma warning(disable: 4244 4702) #include "libdivide.h" +#pragma warning(pop) // Filter an image in horizontal direction with a one-dimensional filter // PixelWidth is the distance in bytes between pixels diff --git a/src/Subtitles/SubtitleInputPin.cpp b/src/Subtitles/SubtitleInputPin.cpp index 9cdcc559547..a7cf216ec80 100644 --- a/src/Subtitles/SubtitleInputPin.cpp +++ b/src/Subtitles/SubtitleInputPin.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -275,7 +275,7 @@ STDMETHODIMP CSubtitleInputPin::Receive(IMediaSample* pSample) { std::unique_lock lock(m_mutexQueue); - m_sampleQueue.AddTail(CAutoPtr(DEBUG_NEW SubtitleSample(tStart, tStop, pData, size_t(len)))); + m_sampleQueue.emplace_back(DEBUG_NEW SubtitleSample(tStart, tStop, pData, size_t(len))); lock.unlock(); m_condQueueReady.notify_one(); } @@ -290,7 +290,7 @@ STDMETHODIMP CSubtitleInputPin::EndOfStream(void) if (SUCCEEDED(hr)) { std::unique_lock lock(m_mutexQueue); - m_sampleQueue.AddTail(CAutoPtr(nullptr)); // nullptr means end of stream + m_sampleQueue.emplace_back(nullptr); // nullptr means end of stream lock.unlock(); m_condQueueReady.notify_one(); } @@ -318,7 +318,7 @@ void CSubtitleInputPin::DecodeSamples() }; auto isQueueReady = [&]() { - return !m_sampleQueue.IsEmpty() || needStopProcessing(); + return !m_sampleQueue.empty() || needStopProcessing(); }; m_condQueueReady.wait(lock, isQueueReady); @@ -330,8 +330,8 @@ void CSubtitleInputPin::DecodeSamples() CAutoLock cAutoLock(m_pSubLock); lock.lock(); // Reacquire the lock - while (!m_sampleQueue.IsEmpty() && !needStopProcessing()) { - auto pSample = m_sampleQueue.RemoveHead(); + while (!m_sampleQueue.empty() && !needStopProcessing()) { + const auto& pSample = m_sampleQueue.front(); if (pSample) { REFERENCE_TIME rtSampleInvalidate = DecodeSample(pSample); @@ -344,6 +344,8 @@ void CSubtitleInputPin::DecodeSamples() pRLECodedSubtitle->EndOfStream(); } } + + m_sampleQueue.pop_front(); } } @@ -355,7 +357,7 @@ void CSubtitleInputPin::DecodeSamples() } } -REFERENCE_TIME CSubtitleInputPin::DecodeSample(const CAutoPtr& pSample) +REFERENCE_TIME CSubtitleInputPin::DecodeSample(const std::unique_ptr& pSample) { bool bInvalidate = false; @@ -476,7 +478,7 @@ void CSubtitleInputPin::InvalidateSamples() m_bStopDecoding = true; { std::lock_guard lock(m_mutexQueue); - m_sampleQueue.RemoveAll(); + m_sampleQueue.clear(); m_bStopDecoding = false; } } diff --git a/src/Subtitles/SubtitleInputPin.h b/src/Subtitles/SubtitleInputPin.h index 55549ad9465..c94635d3e15 100644 --- a/src/Subtitles/SubtitleInputPin.h +++ b/src/Subtitles/SubtitleInputPin.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,6 +22,7 @@ #pragma once #include +#include #include #include #include @@ -51,7 +52,7 @@ class CSubtitleInputPin : public CBaseInputPin , data(pData, pData + len) {} }; - CAutoPtrList m_sampleQueue; + std::list> m_sampleQueue; bool m_bExitDecodingThread, m_bStopDecoding; std::thread m_decodeThread; @@ -59,7 +60,7 @@ class CSubtitleInputPin : public CBaseInputPin std::condition_variable m_condQueueReady; void DecodeSamples(); - REFERENCE_TIME DecodeSample(const CAutoPtr& pSample); + REFERENCE_TIME DecodeSample(const std::unique_ptr& pSample); void InvalidateSamples(); protected: diff --git a/src/Subtitles/Subtitles.vcxproj b/src/Subtitles/Subtitles.vcxproj index 2bf9badf43d..4d64358d61f 100644 --- a/src/Subtitles/Subtitles.vcxproj +++ b/src/Subtitles/Subtitles.vcxproj @@ -96,6 +96,7 @@ + @@ -117,6 +118,7 @@ + diff --git a/src/Subtitles/Subtitles.vcxproj.filters b/src/Subtitles/Subtitles.vcxproj.filters index 7587cff1c1d..706743683d2 100644 --- a/src/Subtitles/Subtitles.vcxproj.filters +++ b/src/Subtitles/Subtitles.vcxproj.filters @@ -71,6 +71,9 @@ Source Files + + Source Files + @@ -139,5 +142,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/src/Subtitles/USFSubtitles.cpp b/src/Subtitles/USFSubtitles.cpp index 7e50225ac3a..737dad5e029 100644 --- a/src/Subtitles/USFSubtitles.cpp +++ b/src/Subtitles/USFSubtitles.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -315,7 +315,7 @@ bool CUSFSubtitles::ConvertToSTS(CSimpleTextSubtitle& sts) if (!s->name.CompareNoCase(L"Default") && !s->fontstyle.wrap.IsEmpty()) { sts.m_defaultWrapStyle = !s->fontstyle.wrap.CompareNoCase(L"no") ? 2 : - !s->fontstyle.wrap.CompareNoCase(L"auto") ? 1 : + /*!s->fontstyle.wrap.CompareNoCase(L"auto") ? 1 :*/ 1; } @@ -348,12 +348,12 @@ bool CUSFSubtitles::ConvertToSTS(CSimpleTextSubtitle& sts) for (size_t i = 0; i < 4; i++) { DWORD color = ColorToDWORD(s->fontstyle.color[i]); - int alpha = (BYTE)wcstol(s->fontstyle.alpha, nullptr, 10); + auto alpha = (BYTE)wcstol(s->fontstyle.alpha, nullptr, 10); stss->colors[i] = color & 0xffffff; stss->alpha[i] = (BYTE)(color >> 24); - stss->alpha[i] = stss->alpha[i] + (255 - stss->alpha[i]) * std::min(std::max(alpha, 0), 100) / 100; + stss->alpha[i] = BYTE(stss->alpha[i] + (255 - stss->alpha[i]) * std::min(std::max(alpha, 0ui8), 100ui8) / 100); } if (!s->fontstyle.face.IsEmpty()) { @@ -428,7 +428,7 @@ bool CUSFSubtitles::ConvertToSTS(CSimpleTextSubtitle& sts) if (s->name == t->style && !s->fontstyle.wrap.IsEmpty()) { int WrapStyle = !s->fontstyle.wrap.CompareNoCase(L"no") ? 2 : - !s->fontstyle.wrap.CompareNoCase(L"auto") ? 1 : + /*!s->fontstyle.wrap.CompareNoCase(L"auto") ? 1 :*/ 1; if (WrapStyle != sts.m_defaultWrapStyle) { diff --git a/src/Subtitles/VobSubFile.cpp b/src/Subtitles/VobSubFile.cpp index abc82c2218d..1c0983ced90 100644 --- a/src/Subtitles/VobSubFile.cpp +++ b/src/Subtitles/VobSubFile.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -259,8 +259,8 @@ bool CVobSubFile::Copy(CVobSubFile& vsf) sp.filepos = m_sub.GetPosition(); BYTE buff[2048]; - vsf.m_sub.Read(buff, 2048); - m_sub.Write(buff, 2048); + UINT uRead = vsf.m_sub.Read(buff, 2048); + m_sub.Write(buff, uRead); WORD packetsize = (buff[buff[0x16] + 0x18] << 8) | buff[buff[0x16] + 0x19]; @@ -271,13 +271,13 @@ bool CVobSubFile::Copy(CVobSubFile& vsf) size = std::min(sizeleft, 2048 - hsize); if (size != sizeleft) { - while (vsf.m_sub.Read(buff, 2048)) { + while ((uRead = vsf.m_sub.Read(buff, 2048)) > 0) { if (!(buff[0x15] & 0x80) && buff[buff[0x16] + 0x17] == (i | 0x20)) { break; } } - m_sub.Write(buff, 2048); + m_sub.Write(buff, uRead); } } @@ -648,7 +648,7 @@ bool CVobSubFile::ReadIdx(CString fn, int& ver) } else if (entry == _T("id")) { str.MakeLower(); - int langid = ((str[0] & 0xff) << 8) | (str[1] & 0xff); + WORD langid = ((str[0] & 0xff) << 8) | (str[1] & 0xff); i = str.Find(_T("index:")); if (i < 0) { @@ -690,8 +690,8 @@ bool CVobSubFile::ReadIdx(CString fn, int& ver) } else if (id >= 0 && entry == _T("timestamp")) { SubPos sb; - sb.vobid = vobid; - sb.cellid = cellid; + sb.vobid = (char)vobid; + sb.cellid = (char)cellid; sb.celltimestamp = celltimestamp; sb.bValid = true; @@ -1143,13 +1143,15 @@ BYTE* CVobSubFile::GetPacket(size_t idx, size_t& packetSize, size_t& dataSize, s break; } + ASSERT(nLang < BYTE_MAX); + // let's check a few things to make sure... if (*(DWORD*)&buff[0x00] != 0xba010000 || *(DWORD*)&buff[0x0e] != 0xbd010000 || !(buff[0x15] & 0x80) || (buff[0x17] & 0xf0) != 0x20 || (buff[buff[0x16] + 0x17] & 0xe0) != 0x20 - || (buff[buff[0x16] + 0x17] & 0x1f) != nLang) { + || (buff[buff[0x16] + 0x17] & 0x1f) != (BYTE)nLang) { break; } @@ -1225,14 +1227,11 @@ bool CVobSubFile::GetFrame(size_t idx, size_t nLang /*= SIZE_T_ERROR*/, REFERENC } m_img.start = sp[idx].start; - m_img.delay = idx + 1 < sp.GetCount() ? sp[idx + 1].start - sp[idx].start : 3000; bool ret = m_img.Decode(buff, packetSize, dataSize, rt >= 0 ? int(rt - sp[idx].start) : INT_MAX, m_bCustomPal, m_tridx, m_orgpal, m_cuspal, true); - if (idx + 1 < sp.GetCount()) { - m_img.delay = std::min(m_img.delay, sp[idx + 1].start - m_img.start); - } + m_img.delay = sp[idx].stop - sp[idx].start; if (!ret) { return false; @@ -1360,7 +1359,7 @@ STDMETHODIMP CVobSubFile::Render(SubPicDesc& spd, REFERENCE_TIME rt, double fps, rt /= 10000; - if (!GetFrame(GetFrameIdxByTimeStamp(rt), -1, rt)) { + if (!GetFrame(GetFrameIdxByTimeStamp(rt), SIZE_T_ERROR, rt)) { return E_FAIL; } @@ -1496,8 +1495,8 @@ static void PixelAtBiLinear(RGBQUAD& c, int x, int y, CVobSubImage& src) + c21.rgbGreen * v2u1 + c22.rgbGreen * v2u2) >> 24; c.rgbBlue = (c11.rgbBlue * v1u1 + c12.rgbBlue * v1u2 + c21.rgbBlue * v2u1 + c22.rgbBlue * v2u2) >> 24; - c.rgbReserved = (v1u1 + v1u2 - + v2u1 + v2u2) >> 16; + c.rgbReserved = BYTE((v1u1 + v1u2 + + v2u1 + v2u2) >> 16); } static void StretchBlt(SubPicDesc& spd, CRect dstrect, CVobSubImage& src) @@ -1960,7 +1959,8 @@ bool CVobSubFile::SaveScenarist(CString fn, int delay) BYTE colormap[16]; for (size_t i = 0; i < 16; i++) { - int idx = 0, maxdif = 255 * 255 * 3 + 1; + BYTE idx = 0; + int maxdif = 255 * 255 * 3 + 1; for (size_t j = 0; j < 16 && maxdif; j++) { int rdif = pal[j].rgbRed - m_orgpal[i].rgbRed; @@ -1970,7 +1970,7 @@ bool CVobSubFile::SaveScenarist(CString fn, int delay) int dif = rdif * rdif + gdif * gdif + bdif * bdif; if (dif < maxdif) { maxdif = dif; - idx = (int)j; + idx = (BYTE)j; } } @@ -2397,7 +2397,7 @@ void CVobSubStream::Open(CString name, BYTE* pData, int len) m_bAlign = sl.RemoveHead() == _T("ON"); CString hor = sl.GetHead(), ver = sl.GetTail(); m_alignhor = hor == _T("LEFT") ? 0 : hor == _T("CENTER") ? 1 : hor == _T("RIGHT") ? 2 : 1; - m_alignver = ver == _T("TOP") ? 0 : ver == _T("CENTER") ? 1 : ver == _T("BOTTOM") ? 2 : 2; + m_alignver = ver == _T("TOP") ? 0 : ver == _T("CENTER") ? 1 : /*ver == _T("BOTTOM") ? 2 :*/ 2; } } else if (key == _T("fade in/out")) { _stscanf_s(value, _T("%d%, %d%"), &m_fadein, &m_fadeout); diff --git a/src/Subtitles/VobSubFile.h b/src/Subtitles/VobSubFile.h index b3fe01a454d..b1aea10e194 100644 --- a/src/Subtitles/VobSubFile.h +++ b/src/Subtitles/VobSubFile.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -94,7 +94,7 @@ class __declspec(uuid("998D4C9A-460F-4de6-BDCD-35AB24F94ADF")) }; struct SubLang { - int id = 0; + WORD id = 0; CString name, alt; CAtlArray subpos; }; @@ -163,6 +163,7 @@ class __declspec(uuid("998D4C9A-460F-4de6-BDCD-35AB24F94ADF")) STDMETHODIMP_(int) GetStream(); STDMETHODIMP SetStream(int iStream); STDMETHODIMP Reload(); + STDMETHODIMP SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel) { return E_NOTIMPL; }; }; class __declspec(uuid("D7FBFB45-2D13-494F-9B3D-FFC9557D5C45")) @@ -208,4 +209,5 @@ class __declspec(uuid("D7FBFB45-2D13-494F-9B3D-FFC9557D5C45")) STDMETHODIMP_(int) GetStream(); STDMETHODIMP SetStream(int iStream); STDMETHODIMP Reload() { return E_NOTIMPL; } + STDMETHODIMP SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel) { return E_NOTIMPL; } }; diff --git a/src/Subtitles/VobSubFileRipper.cpp b/src/Subtitles/VobSubFileRipper.cpp index 031671dd46f..00bd1763810 100644 --- a/src/Subtitles/VobSubFileRipper.cpp +++ b/src/Subtitles/VobSubFileRipper.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -1024,16 +1024,14 @@ STDMETHODIMP CVobSubFileRipper::LoadParamFile(CString fn) line.TrimLeft(); n = 0; - - int langnum; - if (_istdigit(lang[0])) { + int langnum; n = _stscanf_s(lang, _T("%d"), &langnum); if (n != 1) { break; } - m_rd.selids[langnum] = true; + m_rd.selids[(BYTE)langnum] = true; } else if (_istalpha(lang[0])) { n = _stscanf_s(lang, _T("%s"), langid, _countof(langid)); if (n != 1) { @@ -1045,7 +1043,8 @@ STDMETHODIMP CVobSubFileRipper::LoadParamFile(CString fn) if (id == 'cc') { m_rd.bClosedCaption = true; } else { - m_rd.selids[id] = true; + ASSERT(id <= BYTE_MAX); + m_rd.selids[(BYTE)id] = true; } } else { break; diff --git a/src/Subtitles/VobSubImage.cpp b/src/Subtitles/VobSubImage.cpp index f00fb2b4e30..c797f40e574 100644 --- a/src/Subtitles/VobSubImage.cpp +++ b/src/Subtitles/VobSubImage.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -990,8 +990,8 @@ void CVobSubImage::SplitOutline(const COutline& o, COutline& o1, COutline& o2) } } - size_t maxlen = 0, maxidx = -1; - size_t maxlen2 = 0, maxidx2 = -1; + size_t maxlen = 0, maxidx = SIZE_T_ERROR; + size_t maxlen2 = 0, maxidx2 = SIZE_T_ERROR; for (i = 0; i < la.GetCount(); i++) { if (maxlen < la[i]) { @@ -1005,6 +1005,8 @@ void CVobSubImage::SplitOutline(const COutline& o, COutline& o1, COutline& o2) } } + ASSERT(maxidx != SIZE_T_ERROR && maxidx2 != SIZE_T_ERROR); + if (maxlen == maxlen2) { maxidx = maxidx2; // if equal choose the inner section } diff --git a/src/Subtitles/stdafx.h b/src/Subtitles/stdafx.h index b6cb795fcd1..a2cc7e7521a 100644 --- a/src/Subtitles/stdafx.h +++ b/src/Subtitles/stdafx.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -35,4 +35,8 @@ #include "../DSUtil/DSUtil.h" #include +#include #include +#include +#include +#include diff --git a/src/YASM.bat b/src/YASM.bat index dde5bc0a164..451fe036d8c 100755 --- a/src/YASM.bat +++ b/src/YASM.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2012-2013 see Authors.txt +REM (C) 2012-2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -17,12 +17,9 @@ REM You should have received a copy of the GNU General Public License REM along with this program. If not, see . -IF EXIST "%~dp0..\build.user.bat" ( - CALL "%~dp0..\build.user.bat" -) ELSE ( - IF DEFINED MSYS SET MPCHC_MSYS=%MSYS% -) - -SET PATH=%PATH%;%MPCHC_MSYS%\bin +CALL "%~dp0..\common.bat" :SubSetPath +IF %ERRORLEVEL% NEQ 0 EXIT /B 1 +CALL "%~dp0..\common.bat" :SubDoesExist yasm.exe +IF %ERRORLEVEL% NEQ 0 EXIT /B 1 yasm.exe %* diff --git a/src/common-3rd-party.props b/src/common-3rd-party.props index a13bbd2bdcc..03f400dbbb7 100644 --- a/src/common-3rd-party.props +++ b/src/common-3rd-party.props @@ -6,4 +6,4 @@ TurnOffAllWarnings - \ No newline at end of file + diff --git a/src/common.props b/src/common.props index 9c92797f0df..5b7686e7753 100644 --- a/src/common.props +++ b/src/common.props @@ -12,7 +12,7 @@ - /w34701 /w34706 /d2Zi+ /Zc:rvalueCast %(AdditionalOptions) + /w34701 /w34706 /Zo /Zc:rvalueCast %(AdditionalOptions) /wd4005 /wd6031 /wd6246 /wd6309 /wd6387 /wd28204 %(AdditionalOptions) true true @@ -26,7 +26,7 @@ STANDALONE_FILTER;_USRDLL;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions) WIN32;%(PreprocessorDefinitions) _WIN64;WIN64;%(PreprocessorDefinitions) - Level3 + Level4 MachineX86 @@ -92,4 +92,4 @@ NDEBUG;%(PreprocessorDefinitions) - \ No newline at end of file + diff --git a/src/filters/PinInfoWnd.cpp b/src/filters/PinInfoWnd.cpp index 8717e2ffa6c..2ba4264722f 100644 --- a/src/filters/PinInfoWnd.cpp +++ b/src/filters/PinInfoWnd.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -116,7 +116,7 @@ bool CPinInfoWnd::OnActivate() IDC_PP_EDIT1); m_info_edit.SetLimitText(60000); - OnCbnSelchangeCombo1(); + OnSelectedPinChange(); for (CWnd* pWnd = GetWindow(GW_CHILD); pWnd; pWnd = pWnd->GetNextWindow()) { pWnd->SetFont(&m_font, FALSE); @@ -151,7 +151,7 @@ BOOL CPinInfoWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* } BEGIN_MESSAGE_MAP(CPinInfoWnd, CInternalPropertyPageWnd) - ON_CBN_SELCHANGE(IDC_PP_COMBO1, OnCbnSelchangeCombo1) + ON_CBN_SELCHANGE(IDC_PP_COMBO1, OnSelectedPinChange) END_MESSAGE_MAP() void CPinInfoWnd::AddLine(CString str) @@ -162,7 +162,7 @@ void CPinInfoWnd::AddLine(CString str) m_info_edit.ReplaceSel(str); } -void CPinInfoWnd::OnCbnSelchangeCombo1() +void CPinInfoWnd::OnSelectedPinChange() { m_info_edit.SetWindowText(_T("")); @@ -177,29 +177,27 @@ void CPinInfoWnd::OnCbnSelchangeCombo1() } CString str; - PIN_INFO PinInfo; + CPinInfo pinInfo; - if (SUCCEEDED(pPin->QueryPinInfo(&PinInfo))) { + if (SUCCEEDED(pPin->QueryPinInfo(&pinInfo))) { CString strName; - CLSID FilterClsid; - FILTER_INFO FilterInfo; + CLSID filterClsid; + CFilterInfo filterInfo; - if (SUCCEEDED(PinInfo.pFilter->QueryFilterInfo(&FilterInfo))) { + if (SUCCEEDED(pinInfo.pFilter->QueryFilterInfo(&filterInfo))) { CRegKey key; - PinInfo.pFilter->GetClassID(&FilterClsid); + pinInfo.pFilter->GetClassID(&filterClsid); TCHAR buff[128]; ULONG len = _countof(buff); - if (ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, _T("CLSID\\{083863F1-70DE-11D0-BD40-00A0C911CE86}\\Instance\\") + CStringFromGUID(FilterClsid), KEY_READ) + if (ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, _T("CLSID\\{083863F1-70DE-11D0-BD40-00A0C911CE86}\\Instance\\") + CStringFromGUID(filterClsid), KEY_READ) && ERROR_SUCCESS == key.QueryStringValue(_T("FriendlyName"), buff, &len)) { strName = CString(buff); } else { - strName = FilterInfo.achName; + strName = filterInfo.achName; } - str.Format(_T("Filter : %s - CLSID : %s\n\n"), strName, CStringFromGUID(FilterClsid)); + str.Format(_T("Filter : %s - CLSID : %s\n\n"), strName, CStringFromGUID(filterClsid)); AddLine(str); - FilterInfo.pGraph->Release(); } - PinInfo.pFilter->Release(); } CMediaTypeEx cmt; diff --git a/src/filters/PinInfoWnd.h b/src/filters/PinInfoWnd.h index a92b50d303b..441d1764fd1 100644 --- a/src/filters/PinInfoWnd.h +++ b/src/filters/PinInfoWnd.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2012 see Authors.txt + * (C) 2006-2012, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -54,7 +54,7 @@ class __declspec(uuid("A1EB391C-6089-4A87-9988-BE50872317D4")) DECLARE_MESSAGE_MAP() - void OnCbnSelchangeCombo1(); + void OnSelectedPinChange(); protected: virtual BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult); diff --git a/src/filters/muxer/BaseMuxer/BaseMuxerOutputPin.cpp b/src/filters/muxer/BaseMuxer/BaseMuxerOutputPin.cpp index 6b38dd9e1f8..e4408028c57 100644 --- a/src/filters/muxer/BaseMuxer/BaseMuxerOutputPin.cpp +++ b/src/filters/muxer/BaseMuxer/BaseMuxerOutputPin.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -244,8 +244,8 @@ void CBaseMuxerRawOutputPin::MuxPacket(const CMediaType& mt, const MuxerPacket* int len = (DataSize + 7) & 0x1fff; BYTE hdr[7] = {0xff, 0xf9}; - hdr[2] = (profile << 6) | (srate_idx << 2) | ((channels & 4) >> 2); - hdr[3] = ((channels & 3) << 6) | (len >> 11); + hdr[2] = BYTE((profile << 6) | (srate_idx << 2) | ((channels & 4) >> 2)); + hdr[3] = BYTE(((channels & 3) << 6) | (len >> 11)); hdr[4] = (len >> 3) & 0xff; hdr[5] = ((len & 7) << 5) | 0x1f; hdr[6] = 0xfc; diff --git a/src/filters/muxer/DSMMuxer/DSMMuxer.cpp b/src/filters/muxer/DSMMuxer/DSMMuxer.cpp index 8c3584967db..192c8484cdc 100644 --- a/src/filters/muxer/DSMMuxer/DSMMuxer.cpp +++ b/src/filters/muxer/DSMMuxer/DSMMuxer.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -417,7 +417,7 @@ void CDSMMuxerFilter::IndexSyncPoint(const MuxerPacket* p, __int64 fp) m_rtPrevSyncPoint = p->rtStart; SyncPoint sp; - sp.id = p->pPin->GetID(); + sp.id = (BYTE)p->pPin->GetID(); sp.rtStart = p->rtStart; sp.rtStop = p->pPin->IsSubtitleStream() ? p->rtStop : _I64_MAX; sp.fp = fp; diff --git a/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp b/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp index 61a3b011a51..f2c1e0d8278 100644 --- a/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp +++ b/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -255,7 +255,7 @@ QWORD CLength::Size(bool fWithHeader) QWORD len = 0; for (int i = 1; i <= 8; i++) { - if (!(m_len & (~((1i64 << (7 * i)) - 1))) && (m_len & ((1i64 << (7 * i)) - 1)) != ((1i64 << (7 * i)) - 1)) { + if (!(m_len & (~((QWORD(1) << (7 * i)) - 1))) && (m_len & ((QWORD(1) << (7 * i)) - 1)) != ((QWORD(1) << (7 * i)) - 1)) { len += i; break; } @@ -924,8 +924,14 @@ HRESULT Void::Write(IStream* pStream) HeaderWrite(pStream); BYTE buff[64]; memset(buff, 0x80, sizeof(buff)); - for (int len = (int)m_len; len > 0; len -= sizeof(buff)) { - pStream->Write(buff, std::min(sizeof(buff), (ULONG)len), nullptr); + QWORD len = m_len; + for (; len >= sizeof(buff); len -= sizeof(buff)) { + pStream->Write(buff, sizeof(buff), nullptr); } + + if (len > 0) { + pStream->Write(buff, (ULONG)len, nullptr); + } + return S_OK; } diff --git a/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.cpp b/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.cpp index de5e64c6829..c5be29d3196 100644 --- a/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.cpp +++ b/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -156,7 +156,7 @@ CBasePin* CMatroskaMuxerFilter::GetPin(int n) } } - if (n == m_pInputs.GetCount() && m_pOutput) { + if (n == (int)m_pInputs.GetCount() && m_pOutput) { return m_pOutput; } @@ -396,9 +396,9 @@ DWORD CMatroskaMuxerFilter::ThreadProc() // TODO QWORD voidlen = 100; if (rtDur > 0) { - voidlen += int(1.0 * rtDur / MAXCLUSTERTIME / 10000 + 0.5) * 20; + voidlen += QWORD(1.0 * rtDur / MAXCLUSTERTIME / 10000 + 0.5) * 20; } else { - voidlen += int(1.0 * 1000 * 60 * 60 * 24 / MAXCLUSTERTIME + 0.5) * 20; // when no duration is known, allocate for 24 hours (~340k) + voidlen += QWORD(1.0 * 1000 * 60 * 60 * 24 / MAXCLUSTERTIME + 0.5) * 20; // when no duration is known, allocate for 24 hours (~340k) } ULONGLONG voidpos = GetStreamPosition(pStream); { @@ -675,15 +675,15 @@ DWORD CMatroskaMuxerFilter::ThreadProc() } SetStreamPosition(pStream, voidpos); - int len = (int)(voidlen - seek.Size()); + QWORD len = voidlen - seek.Size(); ASSERT(len >= 0 && len != 1); seek.Write(pStream); if (len == 0) { // nothing to do } else if (len >= 2) { - for (int i = 0; i < 8; i++) { - if (len >= (1 << i * 7) - 2 && len <= (1 << (i + 1) * 7) - 2) { + for (QWORD i = 0; i < 8; i++) { + if (len >= (QWORD(1) << i * 7) - 2 && len <= (QWORD(1) << (i + 1) * 7) - 2) { Void(len - 2 - i).Write(pStream); break; } @@ -1105,7 +1105,7 @@ HRESULT CMatroskaMuxerInputPin::CompleteConnect(IPin* pPin) *dst++ = 2; for (int i = 0; i < 2; i++) { for (int len2 = pvf2->HeaderSize[i]; len2 >= 0; len2 -= 255) { - *dst++ = std::min(len2, 255); + *dst++ = (BYTE)std::min(len2, BYTE_MAX); } } diff --git a/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp b/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp index f44f808d2a2..efd02df97e8 100644 --- a/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp +++ b/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -144,10 +144,9 @@ DWORD CStreamDriveThruFilter::ThreadProc() if (CComQIPtr pFSF = GetFilterFromPin(m_pOutput->GetConnected())) { pFSF->SetMode(AM_FILE_OVERWRITE); - LPOLESTR pfn; + CComHeapPtr pfn; if (SUCCEEDED(pFSF->GetCurFile(&pfn, nullptr))) { pFSF->SetFileName(pfn, nullptr); - CoTaskMemFree(pfn); } } diff --git a/src/filters/reader/CDDAReader/CDDAReader.cpp b/src/filters/reader/CDDAReader/CDDAReader.cpp index bf7182e8557..8a3cd1f35a9 100644 --- a/src/filters/reader/CDDAReader/CDDAReader.cpp +++ b/src/filters/reader/CDDAReader/CDDAReader.cpp @@ -21,6 +21,7 @@ #include "stdafx.h" #include +#include #ifdef STANDALONE_FILTER #include #endif @@ -133,7 +134,7 @@ STDMETHODIMP CCDDAReader::Load(LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) CMediaType mt; mt.majortype = MEDIATYPE_Stream; - mt.subtype = MEDIASUBTYPE_WAVE; + mt.subtype = m_stream.IsDTS() ? MEDIASUBTYPE_DTS : MEDIASUBTYPE_WAVE; m_mt = mt; return S_OK; @@ -275,6 +276,8 @@ CCDDAStream::CCDDAStream() m_header.frm.pcm.wf.nBlockAlign = m_header.frm.pcm.wf.nChannels * m_header.frm.pcm.wBitsPerSample / 8; m_header.frm.pcm.wf.nAvgBytesPerSec = m_header.frm.pcm.wf.nSamplesPerSec * m_header.frm.pcm.wf.nBlockAlign; m_header.data.hdr.chunkID = DataID; + + m_bDTS = false; } CCDDAStream::~CCDDAStream() @@ -342,6 +345,39 @@ bool CCDDAStream::Load(const WCHAR* fnw) m_header.riff.hdr.chunkSize = (long)(m_llLength + sizeof(m_header) - 8); m_header.data.hdr.chunkSize = (long)(m_llLength); + // Detect DTS Music Disk + m_bDTS = false; + + // DCA syncwords + const DWORD DCA_MARKER_RAW_BE = 0x7FFE8001; + const DWORD DCA_MARKER_RAW_LE = 0xFE7F0180; + const DWORD DCA_MARKER_14B_BE = 0x1FFFE800; + const DWORD DCA_MARKER_14B_LE = 0xFF1F00E8; + UINT nMarkerFound = 0, nAttempt = 0; + DWORD marker = DWORD_MAX; + + std::vector data(16384); + DWORD dwSizeRead = 0; + while (SUCCEEDED(Read(data.data(), (DWORD)data.size(), TRUE, &dwSizeRead)) && dwSizeRead && nAttempt < (4 + nMarkerFound)) { + nAttempt++; + + for (DWORD i = 0; i < dwSizeRead; i++) { + marker = (marker << 8) | data[i]; + if ((marker == DCA_MARKER_14B_LE && (i < dwSizeRead - 2) && (data[i + 1] & 0xF0) == 0xF0 && data[i + 2] == 0x07) + || (marker == DCA_MARKER_14B_BE && (i < dwSizeRead - 2) && data[i + 1] == 0x07 && (data[i + 2] & 0xF0) == 0xF0) + || marker == DCA_MARKER_RAW_LE || marker == DCA_MARKER_RAW_BE) { + nMarkerFound++; + } + } + dwSizeRead = 0; + + if (nMarkerFound >= 4) { + m_bDTS = true; + break; + } + } + SetPointer(0); + CDROM_READ_TOC_EX TOCEx; ZeroMemory(&TOCEx, sizeof(TOCEx)); TOCEx.Format = CDROM_READ_TOC_EX_FORMAT_CDTEXT; @@ -384,15 +420,15 @@ bool CCDDAStream::Load(const WCHAR* fnw) const int lenW = _countof(pDesc->WText); CString text = !pDesc->Unicode - ? CString(CStringA((CHAR*)pDesc->Text, lenU)) - : CString(CStringW((WCHAR*)pDesc->WText, lenW)); + ? CString(CStringA((CHAR*)pDesc->Text, lenU)) + : CString(CStringW((WCHAR*)pDesc->WText, lenW)); int tlen = text.GetLength(); CString tmp = (tlen < 12 - 1) - ? (!pDesc->Unicode - ? CString(CStringA((CHAR*)pDesc->Text + tlen + 1, lenU - (tlen + 1))) - : CString(CStringW((WCHAR*)pDesc->WText + tlen + 1, lenW - (tlen + 1)))) - : _T(""); + ? (!pDesc->Unicode + ? CString(CStringA((CHAR*)pDesc->Text + tlen + 1, lenU - (tlen + 1))) + : CString(CStringW((WCHAR*)pDesc->WText + tlen + 1, lenW - (tlen + 1)))) + : _T(""); if (pDesc->PackType < 0x80 || pDesc->PackType >= 0x80 + 0x10) { continue; @@ -437,15 +473,17 @@ HRESULT CCDDAStream::Read(PBYTE pbBuffer, DWORD dwBytesToRead, BOOL bAlign, LPDW LONGLONG pos = m_llPosition; size_t len = dwBytesToRead; - if (pos < sizeof(m_header) && len > 0) { - size_t l = std::min(len, size_t(sizeof(m_header) - pos)); - memcpy(pbBuffer, &((BYTE*)&m_header)[pos], l); - pbBuffer += l; - pos += l; - len -= l; - } + if (!m_bDTS) { + if (pos < sizeof(m_header) && len > 0) { + size_t l = std::min(len, size_t(sizeof(m_header) - pos)); + memcpy(pbBuffer, &((BYTE*)&m_header)[pos], l); + pbBuffer += l; + pos += l; + len -= l; + } - pos -= sizeof(m_header); + pos -= sizeof(m_header); + } while (pos >= 0 && pos < m_llLength && len > 0) { RAW_READ_INFO rawreadinfo; @@ -486,7 +524,10 @@ HRESULT CCDDAStream::Read(PBYTE pbBuffer, DWORD dwBytesToRead, BOOL bAlign, LPDW LONGLONG CCDDAStream::Size(LONGLONG* pSizeAvailable) { - LONGLONG size = sizeof(m_header) + m_llLength; + LONGLONG size = m_llLength; + if (!m_bDTS) { + size += sizeof(m_header); + } if (pSizeAvailable) { *pSizeAvailable = size; } diff --git a/src/filters/reader/CDDAReader/CDDAReader.h b/src/filters/reader/CDDAReader/CDDAReader.h index 4f5a2e04ba9..fb34c6722ee 100644 --- a/src/filters/reader/CDDAReader/CDDAReader.h +++ b/src/filters/reader/CDDAReader/CDDAReader.h @@ -70,6 +70,7 @@ class CCDDAStream : public CAsyncStream HANDLE m_hDrive; CDROM_TOC m_TOC; UINT m_nFirstSector, m_nStartSector, m_nStopSector; + bool m_bDTS; WAVEChunck m_header; @@ -83,6 +84,8 @@ class CCDDAStream : public CAsyncStream bool Load(const WCHAR* fnw); + bool IsDTS() const { return m_bDTS; }; + // overrides HRESULT SetPointer(LONGLONG llPos); HRESULT Read(PBYTE pbBuffer, DWORD dwBytesToRead, BOOL bAlign, LPDWORD pdwBytesRead); diff --git a/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp index 4a1bb1da53f..46e65017677 100644 --- a/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp +++ b/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp @@ -672,7 +672,7 @@ HRESULT CDX9AllocatorPresenter::CreateDevice(CString& _Error) if (r.m_AdvRendSets.bVMR9FullscreenGUISupport && !m_bHighColorResolution) { pp.Flags |= D3DPRESENTFLAG_LOCKABLE_BACKBUFFER; } - m_D3DDevExError = L"No m_pD3DEx"; + m_D3DDevExError = _T("No m_pD3DEx"); if (!m_FocusThread) { m_FocusThread = (CFocusThread*)AfxBeginThread(RUNTIME_CLASS(CFocusThread), 0, 0, 0); @@ -701,7 +701,7 @@ HRESULT CDX9AllocatorPresenter::CreateDevice(CString& _Error) &pp, &DisplayMode, &m_pD3DDevEx); } - m_D3DDevExError = GetWindowsErrorMessage(hr, m_hD3D9); + m_D3DDevExError = FAILED(hr) ? GetWindowsErrorMessage(hr, m_hD3D9) : _T(""); if (m_pD3DDevEx) { m_pD3DDev = m_pD3DDevEx; m_BackbufferType = pp.BackBufferFormat; @@ -1904,7 +1904,9 @@ void CDX9AllocatorPresenter::DrawStats() DrawText(rc, strText, 1); OffsetRect(&rc, 0, TextHeight); - strText.Format(L"Formats : Surface %s Backbuffer %s Display %s Device %s D3DExError: %s", GetD3DFormatStr(m_SurfaceType), GetD3DFormatStr(m_BackbufferType), GetD3DFormatStr(m_DisplayType), m_pD3DDevEx ? L"D3DDevEx" : L"D3DDev", m_D3DDevExError.GetString()); + strText.Format(L"Formats : Surface %s Backbuffer %s Display %s Device %s %s", + GetD3DFormatStr(m_SurfaceType), GetD3DFormatStr(m_BackbufferType), GetD3DFormatStr(m_DisplayType), + m_pD3DDevEx ? L"D3DDevEx" : L"D3DDev", m_D3DDevExError.IsEmpty() ? _T("") : _T("D3DExError: ") + m_D3DDevExError); DrawText(rc, strText, 1); OffsetRect(&rc, 0, TextHeight); diff --git a/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp b/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp index 2890ac87052..4f4704c6d7d 100644 --- a/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp +++ b/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -1365,22 +1365,22 @@ HRESULT CDX9RenderingEngine::CreateIccProfileLut(TCHAR* profilePath, float* lut3 return E_FAIL; } - unsigned short* lut3DOutput = nullptr; - unsigned short* lut3DInput = nullptr; + uint16_t* lut3DOutput = nullptr; + uint16_t* lut3DInput = nullptr; try { // Create the 3D LUT input - lut3DOutput = DEBUG_NEW unsigned short[m_Lut3DEntryCount * 3]; - lut3DInput = DEBUG_NEW unsigned short[m_Lut3DEntryCount * 3]; + lut3DOutput = DEBUG_NEW uint16_t[m_Lut3DEntryCount * 3]; + lut3DInput = DEBUG_NEW uint16_t[m_Lut3DEntryCount * 3]; - unsigned short* lut3DInputIterator = lut3DInput; + uint16_t* lut3DInputIterator = lut3DInput; for (int b = 0; b < m_Lut3DSize; b++) { for (int g = 0; g < m_Lut3DSize; g++) { for (int r = 0; r < m_Lut3DSize; r++) { - *lut3DInputIterator++ = r * 65535 / (m_Lut3DSize - 1); - *lut3DInputIterator++ = g * 65535 / (m_Lut3DSize - 1); - *lut3DInputIterator++ = b * 65535 / (m_Lut3DSize - 1); + *lut3DInputIterator++ = uint16_t(r * 65535 / (m_Lut3DSize - 1)); + *lut3DInputIterator++ = uint16_t(g * 65535 / (m_Lut3DSize - 1)); + *lut3DInputIterator++ = uint16_t(b * 65535 / (m_Lut3DSize - 1)); } } } @@ -1397,9 +1397,6 @@ HRESULT CDX9RenderingEngine::CreateIccProfileLut(TCHAR* profilePath, float* lut3 delete [] lut3DOutput; delete [] lut3DInput; cmsDeleteTransform(hTransform); - - return S_OK; - } catch (...) { // Cleanup delete [] lut3DOutput; diff --git a/src/filters/renderer/VideoRenderers/DXRAllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/DXRAllocatorPresenter.cpp index 248e4f863f0..c25c3728b4f 100644 --- a/src/filters/renderer/VideoRenderers/DXRAllocatorPresenter.cpp +++ b/src/filters/renderer/VideoRenderers/DXRAllocatorPresenter.cpp @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -82,26 +82,36 @@ STDMETHODIMP CDXRAllocatorPresenter::NonDelegatingQueryInterface(REFIID riid, vo HRESULT CDXRAllocatorPresenter::SetDevice(IDirect3DDevice9* pD3DDev) { - CheckPointer(pD3DDev, E_POINTER); + HRESULT hr = S_OK; - const CRenderersSettings& r = GetRenderersSettings(); + if (!pD3DDev) { + // release all resources + m_pSubPicQueue = nullptr; + m_pAllocator = nullptr; + return hr; + } + const CRenderersSettings& r = GetRenderersSettings(); InitMaxSubtitleTextureSize(r.subPicQueueSettings.nMaxRes, m_ScreenSize); if (m_pAllocator) { m_pAllocator->ChangeDevice(pD3DDev); } else { m_pAllocator = DEBUG_NEW CDX9SubPicAllocator(pD3DDev, m_maxSubtitleTextureSize, true); + m_condAllocatorReady.notify_one(); } - HRESULT hr = S_OK; - if (!m_pSubPicQueue) { + { + // Lock before check because m_pSubPicQueue might be initialized in CSubPicAllocatorPresenterImpl::Connect CAutoLock cAutoLock(this); - m_pSubPicQueue = r.subPicQueueSettings.nSize > 0 - ? (ISubPicQueue*)DEBUG_NEW CSubPicQueue(r.subPicQueueSettings, m_pAllocator, &hr) - : (ISubPicQueue*)DEBUG_NEW CSubPicQueueNoThread(r.subPicQueueSettings, m_pAllocator, &hr); - } else { - m_pSubPicQueue->Invalidate(); + if (!m_pSubPicQueue) { + m_pSubPicQueue = r.subPicQueueSettings.nSize > 0 + ? (ISubPicQueue*)DEBUG_NEW CSubPicQueue(r.subPicQueueSettings, m_pAllocator, &hr) + : (ISubPicQueue*)DEBUG_NEW CSubPicQueueNoThread(r.subPicQueueSettings, m_pAllocator, &hr); + } else { + this->Unlock(); + m_pSubPicQueue->Invalidate(); + } } if (SUCCEEDED(hr) && m_pSubPicProvider) { diff --git a/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.cpp index cdc4e774992..b391bd4b3b0 100644 --- a/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.cpp +++ b/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.cpp @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -26,6 +26,7 @@ #include "IPinHook.h" #include "MacrovisionKicker.h" #include "IMPCVideoDecFilter.h" +#include "../../../DSUtil/ArrayUtils.h" #if (0) // Set to 1 to activate EVR traces #define TRACE_EVR TRACE @@ -102,16 +103,13 @@ CEVRAllocatorPresenter::CEVRAllocatorPresenter(HWND hWnd, bool bFullscreen, HRES , m_nStepCount(0) , m_bSignaledStarvation(false) , m_StarvationClock(0) - , m_hDXVA2Lib(nullptr) - , m_hEVRLib(nullptr) - , m_hAVRTLib(nullptr) - , pfDXVA2CreateDirect3DDeviceManager9(nullptr) - , pfMFCreateDXSurfaceBuffer(nullptr) - , pfMFCreateVideoSampleFromSurface(nullptr) - , pfMFCreateVideoMediaType(nullptr) - , pfAvSetMmThreadCharacteristicsW(nullptr) - , pfAvSetMmThreadPriority(nullptr) - , pfAvRevertMmThreadCharacteristics(nullptr) + , fnDXVA2CreateDirect3DDeviceManager9("dxva2.dll", "DXVA2CreateDirect3DDeviceManager9") + , fnMFCreateDXSurfaceBuffer("evr.dll", "MFCreateDXSurfaceBuffer") + , fnMFCreateVideoSampleFromSurface("evr.dll", "MFCreateVideoSampleFromSurface") + , fnMFCreateMediaType("mfplat.dll", "MFCreateMediaType") + , fnAvSetMmThreadCharacteristicsW("avrt.dll", "AvSetMmThreadCharacteristicsW") + , fnAvSetMmThreadPriority("avrt.dll", "AvSetMmThreadPriority") + , fnAvRevertMmThreadCharacteristics("avrt.dll", "AvRevertMmThreadCharacteristics") { const CRenderersSettings& r = GetRenderersSettings(); @@ -123,62 +121,25 @@ CEVRAllocatorPresenter::CEVRAllocatorPresenter(HWND hWnd, bool bFullscreen, HRES return; } - // Load EVR specific DLLs - m_hDXVA2Lib = LoadLibrary(L"dxva2.dll"); - if (m_hDXVA2Lib) { - pfDXVA2CreateDirect3DDeviceManager9 = (PTR_DXVA2CreateDirect3DDeviceManager9) GetProcAddress(m_hDXVA2Lib, "DXVA2CreateDirect3DDeviceManager9"); - } - - // Load EVR functions - m_hEVRLib = LoadLibrary(L"evr.dll"); - if (m_hEVRLib) { - pfMFCreateDXSurfaceBuffer = (PTR_MFCreateDXSurfaceBuffer) GetProcAddress(m_hEVRLib, "MFCreateDXSurfaceBuffer"); - pfMFCreateVideoSampleFromSurface = (PTR_MFCreateVideoSampleFromSurface) GetProcAddress(m_hEVRLib, "MFCreateVideoSampleFromSurface"); - pfMFCreateVideoMediaType = (PTR_MFCreateVideoMediaType) GetProcAddress(m_hEVRLib, "MFCreateVideoMediaType"); - } - - if (!pfDXVA2CreateDirect3DDeviceManager9 || !pfMFCreateDXSurfaceBuffer || !pfMFCreateVideoSampleFromSurface || !pfMFCreateVideoMediaType) { - if (!pfDXVA2CreateDirect3DDeviceManager9) { + if (!fnDXVA2CreateDirect3DDeviceManager9 || !fnMFCreateDXSurfaceBuffer || !fnMFCreateVideoSampleFromSurface || !fnMFCreateMediaType) { + if (!fnDXVA2CreateDirect3DDeviceManager9) { _Error += L"Could not find DXVA2CreateDirect3DDeviceManager9 (dxva2.dll)\n"; } - if (!pfMFCreateDXSurfaceBuffer) { + if (!fnMFCreateDXSurfaceBuffer) { _Error += L"Could not find MFCreateDXSurfaceBuffer (evr.dll)\n"; } - if (!pfMFCreateVideoSampleFromSurface) { + if (!fnMFCreateVideoSampleFromSurface) { _Error += L"Could not find MFCreateVideoSampleFromSurface (evr.dll)\n"; } - if (!pfMFCreateVideoMediaType) { - _Error += L"Could not find MFCreateVideoMediaType (evr.dll)\n"; + if (!fnMFCreateMediaType) { + _Error += L"Could not find MFCreateMediaType (mfplat.dll)\n"; } hr = E_FAIL; return; } - // Load mfplat fuctions -#if 0 - m_hMFPlatLib = LoadLibrary(L"mfplat.dll"); - if (m_hMFPlatLib) { - (FARPROC&)pMFCreateMediaType = GetProcAddress(m_hMFPlatLib, "MFCreateMediaType"); - (FARPROC&)pMFInitMediaTypeFromAMMediaType = GetProcAddress(m_hMFPlatLib, "MFInitMediaTypeFromAMMediaType"); - (FARPROC&)pMFInitAMMediaTypeFromMFMediaType = GetProcAddress(m_hMFPlatLib, "MFInitAMMediaTypeFromMFMediaType"); - } - - if (!pMFCreateMediaType || !pMFInitMediaTypeFromAMMediaType || !pMFInitAMMediaTypeFromMFMediaType) { - hr = E_FAIL; - return; - } -#endif - - // Load Vista+ specific DLLs - m_hAVRTLib = LoadLibrary(L"avrt.dll"); - if (m_hAVRTLib) { - pfAvSetMmThreadCharacteristicsW = (PTR_AvSetMmThreadCharacteristicsW) GetProcAddress(m_hAVRTLib, "AvSetMmThreadCharacteristicsW"); - pfAvSetMmThreadPriority = (PTR_AvSetMmThreadPriority) GetProcAddress(m_hAVRTLib, "AvSetMmThreadPriority"); - pfAvRevertMmThreadCharacteristics = (PTR_AvRevertMmThreadCharacteristics) GetProcAddress(m_hAVRTLib, "AvRevertMmThreadCharacteristics"); - } - // Init DXVA manager - hr = pfDXVA2CreateDirect3DDeviceManager9(&m_nResetToken, &m_pD3DManager); + hr = fnDXVA2CreateDirect3DDeviceManager9(&m_nResetToken, &m_pD3DManager); if (SUCCEEDED(hr) && m_pD3DManager) { hr = m_pD3DManager->ResetDevice(m_pD3DDev, m_nResetToken); if (FAILED(hr)) { @@ -189,7 +150,7 @@ CEVRAllocatorPresenter::CEVRAllocatorPresenter(HWND hWnd, bool bFullscreen, HRES HANDLE hDevice; if (SUCCEEDED(m_pD3DManager->OpenDeviceHandle(&hDevice)) && SUCCEEDED(m_pD3DManager->GetVideoService(hDevice, IID_PPV_ARGS(&pDecoderService)))) { - TRACE_EVR("EVR: DXVA2 : device handle = 0x%08x", hDevice); + TRACE_EVR("EVR: DXVA2 : device handle = 0x%08x\n", hDevice); HookDirectXVideoDecoderService(pDecoderService); m_pD3DManager->CloseDeviceHandle(hDevice); @@ -212,16 +173,6 @@ CEVRAllocatorPresenter::~CEVRAllocatorPresenter() m_pMediaType = nullptr; m_pClock = nullptr; m_pD3DManager = nullptr; - - if (m_hDXVA2Lib) { - FreeLibrary(m_hDXVA2Lib); - } - if (m_hEVRLib) { - FreeLibrary(m_hEVRLib); - } - if (m_hAVRTLib) { - FreeLibrary(m_hAVRTLib); - } } void CEVRAllocatorPresenter::ResetStats() @@ -713,95 +664,77 @@ HRESULT CEVRAllocatorPresenter::IsMediaTypeSupported(IMFMediaType* pMixerType) return hr; } -HRESULT CEVRAllocatorPresenter::CreateProposedOutputType(IMFMediaType* pMixerType, IMFMediaType** ppType) +HRESULT CEVRAllocatorPresenter::CreateOptimalOutputType(IMFMediaType* pMixerProposedType, IMFMediaType* pMixerInputType, IMFMediaType** ppType) { HRESULT hr; - AM_MEDIA_TYPE* pAMMedia = nullptr; - LARGE_INTEGER i64Size; - MFVIDEOFORMAT* VideoFormat; + IMFMediaType* pOptimalMediaType; - CHECK_HR(pMixerType->GetRepresentation(FORMAT_MFVideoFormat, (void**)&pAMMedia)); + CHECK_HR(fnMFCreateMediaType(&pOptimalMediaType)); + CHECK_HR(pMixerProposedType->CopyAllItems(pOptimalMediaType)); - VideoFormat = (MFVIDEOFORMAT*)pAMMedia->pbFormat; + auto colorAttributes = make_array( + MF_MT_VIDEO_LIGHTING, + MF_MT_VIDEO_PRIMARIES, + MF_MT_TRANSFER_FUNCTION, + MF_MT_YUV_MATRIX, + MF_MT_VIDEO_CHROMA_SITING + ); - IMFVideoMediaType* pMediaType; - hr = pfMFCreateVideoMediaType(VideoFormat, &pMediaType); + auto copyAttribute = [](IMFAttributes * pFrom, IMFAttributes * pTo, REFGUID guidKey) { + PROPVARIANT val; + HRESULT hr = pFrom->GetItem(guidKey, &val); -#if 0 - // This code doesn't work, use same method as VMR9 instead - if (VideoFormat->videoInfo.FramesPerSecond.Numerator != 0) { - switch (VideoFormat->videoInfo.InterlaceMode) { - case MFVideoInterlace_Progressive: - case MFVideoInterlace_MixedInterlaceOrProgressive: - default: { - m_rtTimePerFrame = (10000000I64 * VideoFormat->videoInfo.FramesPerSecond.Denominator) / VideoFormat->videoInfo.FramesPerSecond.Numerator; - m_bInterlaced = false; - } - break; - case MFVideoInterlace_FieldSingleUpper: - case MFVideoInterlace_FieldSingleLower: - case MFVideoInterlace_FieldInterleavedUpperFirst: - case MFVideoInterlace_FieldInterleavedLowerFirst: { - m_rtTimePerFrame = (20000000I64 * VideoFormat->videoInfo.FramesPerSecond.Denominator) / VideoFormat->videoInfo.FramesPerSecond.Numerator; - m_bInterlaced = true; - } - break; + if (SUCCEEDED(hr)) { + hr = pTo->SetItem(guidKey, val); + PropVariantClear(&val); + } else if (hr == MF_E_ATTRIBUTENOTFOUND) { + hr = pTo->DeleteItem(guidKey); } - } -#endif + return hr; + }; - CSize videoSize; - videoSize.cx = VideoFormat->videoInfo.dwWidth; - videoSize.cy = VideoFormat->videoInfo.dwHeight; - - if (SUCCEEDED(hr)) { - i64Size.HighPart = videoSize.cx; - i64Size.LowPart = videoSize.cy; - pMediaType->SetUINT64(MF_MT_FRAME_SIZE, i64Size.QuadPart); - - pMediaType->SetUINT32(MF_MT_PAN_SCAN_ENABLED, 0); - - const CRenderersSettings& r = GetRenderersSettings(); - -#if 1 - if (r.m_AdvRendSets.iEVROutputRange == 1) { - pMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, MFNominalRange_16_235); - } else { - pMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, MFNominalRange_0_255); + for (REFGUID guidKey : colorAttributes) { + if (FAILED(hr = copyAttribute(pMixerInputType, pOptimalMediaType, guidKey))) { + TRACE_EVR(_T("Copying color attribute %s failed: 0x%08x\n"), CComBSTR(guidKey), hr); } + } - // m_pMediaType->SetUINT32 (MF_MT_TRANSFER_FUNCTION, MFVideoTransFunc_10); -#else - - pMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, MFNominalRange_0_255); - if (r.iEVROutputRange == 1) { - pMediaType->SetUINT32(MF_MT_YUV_MATRIX, MFVideoTransferMatrix_BT601); - } else { - pMediaType->SetUINT32(MF_MT_YUV_MATRIX, MFVideoTransferMatrix_BT709); - } -#endif + pOptimalMediaType->SetUINT32(MF_MT_PAN_SCAN_ENABLED, 0); + const CRenderersSettings& r = GetRenderersSettings(); + UINT32 nominalRange; + if (SUCCEEDED(pMixerInputType->GetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, &nominalRange)) + && nominalRange == MFNominalRange_0_255) { + // EVR mixer always assume 16-235 input. To ensure that luminance range won't be expanded we requests 16-235 also on output. + // Request 16-235 to ensure untouched luminance range on output. It is the only way to pass 0-255 without changes. + nominalRange = MFNominalRange_16_235; + m_LastSetOutputRange = -1; // -1 to prevent renegotiations because of different value than this in settings. + } else { + nominalRange = (r.m_AdvRendSets.iEVROutputRange == 1) ? MFNominalRange_16_235 : MFNominalRange_0_255; m_LastSetOutputRange = r.m_AdvRendSets.iEVROutputRange; + } + pOptimalMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, nominalRange); - i64Size.HighPart = VideoFormat->videoInfo.PixelAspectRatio.Numerator; - i64Size.LowPart = VideoFormat->videoInfo.PixelAspectRatio.Denominator; - pMediaType->SetUINT64(MF_MT_PIXEL_ASPECT_RATIO, i64Size.QuadPart); + ULARGE_INTEGER ui64Size; + pOptimalMediaType->GetUINT64(MF_MT_FRAME_SIZE, &ui64Size.QuadPart); - MFVideoArea Area = MakeArea(0, 0, videoSize.cx, videoSize.cy); - pMediaType->SetBlob(MF_MT_GEOMETRIC_APERTURE, (UINT8*)&Area, sizeof(MFVideoArea)); + CSize videoSize((LONG)ui64Size.HighPart, (LONG)ui64Size.LowPart); + MFVideoArea Area = MakeArea(0, 0, videoSize.cx, videoSize.cy); + pOptimalMediaType->SetBlob(MF_MT_GEOMETRIC_APERTURE, (UINT8*)&Area, sizeof(MFVideoArea)); - } + ULARGE_INTEGER ui64AspectRatio; + pOptimalMediaType->GetUINT64(MF_MT_PIXEL_ASPECT_RATIO, &ui64AspectRatio.QuadPart); - UINT64 dwARx = UINT64(VideoFormat->videoInfo.PixelAspectRatio.Numerator) * videoSize.cx; - UINT64 dwARy = UINT64(VideoFormat->videoInfo.PixelAspectRatio.Denominator) * videoSize.cy; - UINT64 gcd = GCD(dwARx, dwARy); + UINT64 ui64ARx = UINT64(ui64AspectRatio.HighPart) * ui64Size.HighPart; + UINT64 ui64ARy = UINT64(ui64AspectRatio.LowPart) * ui64Size.LowPart; + UINT64 gcd = GCD(ui64ARx, ui64ARy); if (gcd > 1) { - dwARx /= gcd; - dwARy /= gcd; + ui64ARx /= gcd; + ui64ARy /= gcd; } - CSize aspectRatio((LONG)dwARx, (LONG)dwARy); + CSize aspectRatio((LONG)ui64ARx, (LONG)ui64ARy); if (videoSize != m_nativeVideoSize || aspectRatio != m_aspectRatio) { SetVideoSize(videoSize, aspectRatio); @@ -811,8 +744,8 @@ HRESULT CEVRAllocatorPresenter::CreateProposedOutputType(IMFMediaType* pMixerTyp } } - pMixerType->FreeRepresentation(FORMAT_MFVideoFormat, (void*)pAMMedia); - pMediaType->QueryInterface(IID_PPV_ARGS(ppType)); + *ppType = pOptimalMediaType; + (*ppType)->AddRef(); return hr; } @@ -1000,6 +933,7 @@ HRESULT CEVRAllocatorPresenter::RenegotiateMediaType() HRESULT hr = S_OK; CComPtr pMixerType; + CComPtr pMixerInputType; CComPtr pType; if (!m_pMixer) { @@ -1009,13 +943,13 @@ HRESULT CEVRAllocatorPresenter::RenegotiateMediaType() CInterfaceArray ValidMixerTypes; // Get the mixer's input type - hr = m_pMixer->GetInputCurrentType(0, &pType); + hr = m_pMixer->GetInputCurrentType(0, &pMixerInputType); if (SUCCEEDED(hr)) { AM_MEDIA_TYPE* pMT; - hr = pType->GetRepresentation(FORMAT_VideoInfo2, (void**)&pMT); + hr = pMixerInputType->GetRepresentation(FORMAT_VideoInfo2, (void**)&pMT); if (SUCCEEDED(hr)) { m_inputMediaType = *pMT; - pType->FreeRepresentation(FORMAT_VideoInfo2, pMT); + pMixerInputType->FreeRepresentation(FORMAT_VideoInfo2, pMT); } } @@ -1037,7 +971,7 @@ HRESULT CEVRAllocatorPresenter::RenegotiateMediaType() } if (SUCCEEDED(hr)) { - hr = CreateProposedOutputType(pMixerType, &pType); + hr = CreateOptimalOutputType(pMixerType, pMixerInputType, &pType); } // Step 4. Check if the mixer will accept this media type. @@ -1108,7 +1042,7 @@ HRESULT CEVRAllocatorPresenter::RenegotiateMediaType() bool CEVRAllocatorPresenter::GetImageFromMixer() { - MFT_OUTPUT_DATA_BUFFER Buffer; + MFT_OUTPUT_DATA_BUFFER dataBuffer; HRESULT hr = S_OK; DWORD dwStatus; REFERENCE_TIME nsSampleTime; @@ -1127,18 +1061,20 @@ bool CEVRAllocatorPresenter::GetImageFromMixer() break; } - ZeroMemory(&Buffer, sizeof(Buffer)); - Buffer.pSample = pSample; + ZeroMemory(&dataBuffer, sizeof(dataBuffer)); + dataBuffer.pSample = pSample; pSample->GetUINT32(GUID_SURFACE_INDEX, &dwSurface); { llClockBefore = GetRenderersData()->GetPerfCounter(); - hr = m_pMixer->ProcessOutput(0, 1, &Buffer, &dwStatus); + hr = m_pMixer->ProcessOutput(0, 1, &dataBuffer, &dwStatus); llClockAfter = GetRenderersData()->GetPerfCounter(); } if (hr == MF_E_TRANSFORM_NEED_MORE_INPUT) { MoveToFreeList(pSample, false); + // Important: Release any events returned from the ProcessOutput method. + SAFE_RELEASE(dataBuffer.pEvents); break; } @@ -1171,6 +1107,10 @@ bool CEVRAllocatorPresenter::GetImageFromMixer() MoveToScheduledList(pSample, false); bDoneSomething = true; + + // Important: Release any events returned from the ProcessOutput method. + SAFE_RELEASE(dataBuffer.pEvents); + if (m_rtTimePerFrame == 0) { break; } @@ -1529,10 +1469,11 @@ STDMETHODIMP CEVRAllocatorPresenter::InitializeDevice(IMFMediaType* pMediaType) if (SUCCEEDED(hr)) { for (int i = 0; i < m_nNbDXSurface; i++) { CComPtr pMFSample; - hr = pfMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); + hr = fnMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); if (SUCCEEDED(hr)) { pMFSample->SetUINT32(GUID_SURFACE_INDEX, i); + CAutoLock sampleQueueLock(&m_SampleQueueLock); m_FreeSamples.AddTail(pMFSample); } ASSERT(SUCCEEDED(hr)); @@ -1922,10 +1863,11 @@ STDMETHODIMP_(bool) CEVRAllocatorPresenter::ResetDevice() for (int i = 0; i < m_nNbDXSurface; i++) { CComPtr pMFSample; - HRESULT hr = pfMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); + HRESULT hr = fnMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); if (SUCCEEDED(hr)) { pMFSample->SetUINT32(GUID_SURFACE_INDEX, i); + CAutoLock sampleQueueLock(&m_SampleQueueLock); m_FreeSamples.AddTail(pMFSample); } ASSERT(SUCCEEDED(hr)); @@ -1986,17 +1928,17 @@ void CEVRAllocatorPresenter::RenderThread() // Tell Multimedia Class Scheduler we are a playback thread (increase priority) HANDLE hAvrt = 0; - if (pfAvSetMmThreadCharacteristicsW) { + if (fnAvSetMmThreadCharacteristicsW) { DWORD dwTaskIndex = 0; - hAvrt = pfAvSetMmThreadCharacteristicsW(L"Playback", &dwTaskIndex); - if (pfAvSetMmThreadPriority) { - pfAvSetMmThreadPriority(hAvrt, AVRT_PRIORITY_HIGH /*AVRT_PRIORITY_CRITICAL*/); + hAvrt = fnAvSetMmThreadCharacteristicsW(L"Playback", &dwTaskIndex); + if (fnAvSetMmThreadPriority) { + fnAvSetMmThreadPriority(hAvrt, AVRT_PRIORITY_HIGH /*AVRT_PRIORITY_CRITICAL*/); } } timeGetDevCaps(&tc, sizeof(TIMECAPS)); DWORD dwResolution = std::min(std::max(tc.wPeriodMin, 0u), tc.wPeriodMax); - DWORD dwUser = timeBeginPeriod(dwResolution); + VERIFY(timeBeginPeriod(dwResolution) == 0); const CRenderersSettings& r = GetRenderersSettings(); int NextSleepTime = 1; @@ -2059,17 +2001,16 @@ void CEVRAllocatorPresenter::RenderThread() m_pCurrentDisplaydSample = pMFSample; bool bValidSampleTime = true; - HRESULT hGetSampleTime = pMFSample->GetSampleTime(&nsSampleTime); - if (hGetSampleTime != S_OK || nsSampleTime == 0) { + HRESULT hrGetSampleTime = pMFSample->GetSampleTime(&nsSampleTime); + if (hrGetSampleTime != S_OK || nsSampleTime == 0) { bValidSampleTime = false; } // We assume that all samples have the same duration LONGLONG SampleDuration = 0; bool bValidSampleDuration = true; - HRESULT hGetSampleDuration = pMFSample->GetSampleDuration(&SampleDuration); - + HRESULT hrGetSampleDuration = pMFSample->GetSampleDuration(&SampleDuration); // Some filters return invalid values, ignore them - if (hGetSampleTime != S_OK || SampleDuration <= MIN_FRAME_TIME) { + if (hrGetSampleDuration != S_OK || SampleDuration <= MIN_FRAME_TIME) { bValidSampleDuration = false; } @@ -2341,8 +2282,8 @@ void CEVRAllocatorPresenter::RenderThread() } timeEndPeriod(dwResolution); - if (pfAvRevertMmThreadCharacteristics) { - pfAvRevertMmThreadCharacteristics(hAvrt); + if (fnAvRevertMmThreadCharacteristics) { + fnAvRevertMmThreadCharacteristics(hAvrt); } } @@ -2418,86 +2359,87 @@ void CEVRAllocatorPresenter::VSyncThread() WaitForVBlankRange(ScanlineEnd, 5, true, true, false, bTakenLock); LONGLONG TimeEnd = rd->GetPerfCounter(); - double nSeconds = double(TimeEnd - TimeStart) / 10000000.0; - LONGLONG DiffMiddle = TimeMiddle - TimeStart; - LONGLONG DiffEnd = TimeEnd - TimeMiddle; - double DiffDiff; - if (DiffEnd > DiffMiddle) { - DiffDiff = double(DiffEnd) / double(DiffMiddle); - } else { - DiffDiff = double(DiffMiddle) / double(DiffEnd); - } - if (nSeconds > 0.003 && DiffDiff < 1.3) { - double ScanLineSeconds; - double nScanLines; - if (ScanLineMiddle > ScanlineEnd) { - ScanLineSeconds = double(TimeMiddle - TimeStart) / 10000000.0; - nScanLines = ScanLineMiddle - ScanlineStart; - } else { - ScanLineSeconds = double(TimeEnd - TimeMiddle) / 10000000.0; - nScanLines = ScanlineEnd - ScanLineMiddle; - } - - double ScanLineTime = ScanLineSeconds / nScanLines; - - int iPos = m_DetectedRefreshRatePos % 100; - m_ldDetectedScanlineRateList[iPos] = ScanLineTime; - if (m_DetectedScanlineTime && ScanlineStart != ScanlineEnd) { - int Diff = ScanlineEnd - ScanlineStart; - nSeconds -= double(Diff) * m_DetectedScanlineTime; - } - m_ldDetectedRefreshRateList[iPos] = nSeconds; - double Average = 0; - double AverageScanline = 0; - int nPos = std::min(iPos + 1, 100); - for (int i = 0; i < nPos; ++i) { - Average += m_ldDetectedRefreshRateList[i]; - AverageScanline += m_ldDetectedScanlineRateList[i]; - } - - if (nPos) { - Average /= double(nPos); - AverageScanline /= double(nPos); - } else { - Average = 0; - AverageScanline = 0; - } + double nSeconds = (TimeEnd - TimeStart) / 10000000.0; + LONGLONG llDiffMiddle = TimeMiddle - TimeStart; + ASSERT(llDiffMiddle > 0); + + if (nSeconds > 0.003 && llDiffMiddle > 0) { + double dDiffMiddle = double(llDiffMiddle); + double dDiffEnd = double(TimeEnd - TimeMiddle); + + double dDiffDiff = dDiffEnd / dDiffMiddle; + if (dDiffDiff < 1.3 && dDiffDiff > (1 / 1.3)) { + double ScanLineSeconds; + double nScanLines; + if (ScanLineMiddle > ScanlineEnd) { + ScanLineSeconds = dDiffMiddle / 10000000.0; + nScanLines = ScanLineMiddle - ScanlineStart; + } else { + ScanLineSeconds = dDiffEnd / 10000000.0; + nScanLines = ScanlineEnd - ScanLineMiddle; + } - double ThisValue = Average; + double ScanLineTime = ScanLineSeconds / nScanLines; - if (Average > 0.0 && AverageScanline > 0.0) { - CAutoLock Lock(&m_refreshRateLock); - ++m_DetectedRefreshRatePos; - if (m_DetectedRefreshTime == 0 || m_DetectedRefreshTime / ThisValue > 1.01 || m_DetectedRefreshTime / ThisValue < 0.99) { - m_DetectedRefreshTime = ThisValue; - m_DetectedRefreshTimePrim = 0; - } - if (_isnan(m_DetectedRefreshTime)) { - m_DetectedRefreshTime = 0.0; + int iPos = m_DetectedRefreshRatePos % 100; + m_ldDetectedScanlineRateList[iPos] = ScanLineTime; + if (m_DetectedScanlineTime && ScanlineStart != ScanlineEnd) { + int Diff = ScanlineEnd - ScanlineStart; + nSeconds -= double(Diff) * m_DetectedScanlineTime; } - if (_isnan(m_DetectedRefreshTimePrim)) { - m_DetectedRefreshTimePrim = 0.0; + m_ldDetectedRefreshRateList[iPos] = nSeconds; + double Average = 0; + double AverageScanline = 0; + int nPos = std::min(iPos + 1, 100); + for (int i = 0; i < nPos; ++i) { + Average += m_ldDetectedRefreshRateList[i]; + AverageScanline += m_ldDetectedScanlineRateList[i]; } - ModerateFloat(m_DetectedRefreshTime, ThisValue, m_DetectedRefreshTimePrim, 1.5); - if (m_DetectedRefreshTime > 0.0) { - m_DetectedRefreshRate = 1.0 / m_DetectedRefreshTime; + if (nPos) { + Average /= double(nPos); + AverageScanline /= double(nPos); } else { - m_DetectedRefreshRate = 0.0; + Average = 0; + AverageScanline = 0; } - if (m_DetectedScanlineTime == 0 || m_DetectedScanlineTime / AverageScanline > 1.01 || m_DetectedScanlineTime / AverageScanline < 0.99) { - m_DetectedScanlineTime = AverageScanline; - m_DetectedScanlineTimePrim = 0; - } - ModerateFloat(m_DetectedScanlineTime, AverageScanline, m_DetectedScanlineTimePrim, 1.5); - if (m_DetectedScanlineTime > 0.0) { - m_DetectedScanlinesPerFrame = m_DetectedRefreshTime / m_DetectedScanlineTime; - } else { - m_DetectedScanlinesPerFrame = 0; + double ThisValue = Average; + + if (Average > 0.0 && AverageScanline > 0.0) { + CAutoLock Lock(&m_refreshRateLock); + ++m_DetectedRefreshRatePos; + if (m_DetectedRefreshTime == 0 || m_DetectedRefreshTime / ThisValue > 1.01 || m_DetectedRefreshTime / ThisValue < 0.99) { + m_DetectedRefreshTime = ThisValue; + m_DetectedRefreshTimePrim = 0; + } + if (_isnan(m_DetectedRefreshTime)) { + m_DetectedRefreshTime = 0.0; + } + if (_isnan(m_DetectedRefreshTimePrim)) { + m_DetectedRefreshTimePrim = 0.0; + } + + ModerateFloat(m_DetectedRefreshTime, ThisValue, m_DetectedRefreshTimePrim, 1.5); + if (m_DetectedRefreshTime > 0.0) { + m_DetectedRefreshRate = 1.0 / m_DetectedRefreshTime; + } else { + m_DetectedRefreshRate = 0.0; + } + + if (m_DetectedScanlineTime == 0 || m_DetectedScanlineTime / AverageScanline > 1.01 || m_DetectedScanlineTime / AverageScanline < 0.99) { + m_DetectedScanlineTime = AverageScanline; + m_DetectedScanlineTimePrim = 0; + } + ModerateFloat(m_DetectedScanlineTime, AverageScanline, m_DetectedScanlineTimePrim, 1.5); + if (m_DetectedScanlineTime > 0.0) { + m_DetectedScanlinesPerFrame = m_DetectedRefreshTime / m_DetectedScanlineTime; + } else { + m_DetectedScanlinesPerFrame = 0; + } } + //TRACE(_T("Refresh: %f\n"), RefreshRate); } - //TRACE(_T("Refresh: %f\n"), RefreshRate); } } } else { @@ -2534,7 +2476,8 @@ void CEVRAllocatorPresenter::OnResetDevice() void CEVRAllocatorPresenter::RemoveAllSamples() { - CAutoLock AutoLock(&m_ImageProcessingLock); + CAutoLock imageProcesssingLock(&m_ImageProcessingLock); + CAutoLock sampleQueueLock(&m_SampleQueueLock); FlushSamples(); m_ScheduledSamples.RemoveAll(); diff --git a/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.h b/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.h index eb70c61c589..292b7a4e1ea 100644 --- a/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.h +++ b/src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.h @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -23,25 +23,10 @@ #include "DX9AllocatorPresenter.h" #include // API Media Foundation #include +#include "../../../DSUtil/WinapiFunc.h" namespace DSObjects { - // dxva.dll - typedef HRESULT(__stdcall* PTR_DXVA2CreateDirect3DDeviceManager9)(UINT* pResetToken, IDirect3DDeviceManager9** ppDeviceManager); - - // mf.dll - typedef HRESULT(__stdcall* PTR_MFCreatePresentationClock)(IMFPresentationClock** ppPresentationClock); - - // evr.dll - typedef HRESULT(__stdcall* PTR_MFCreateDXSurfaceBuffer)(REFIID riid, IUnknown* punkSurface, BOOL fBottomUpWhenLinear, IMFMediaBuffer** ppBuffer); - typedef HRESULT(__stdcall* PTR_MFCreateVideoSampleFromSurface)(IUnknown* pUnkSurface, IMFSample** ppSample); - typedef HRESULT(__stdcall* PTR_MFCreateVideoMediaType)(const MFVIDEOFORMAT* pVideoFormat, IMFVideoMediaType** ppIVideoMediaType); - - // avrt.dll - typedef HANDLE(__stdcall* PTR_AvSetMmThreadCharacteristicsW)(LPCWSTR TaskName, LPDWORD TaskIndex); - typedef BOOL (__stdcall* PTR_AvSetMmThreadPriority)(HANDLE AvrtHandle, AVRT_PRIORITY Priority); - typedef BOOL (__stdcall* PTR_AvRevertMmThreadCharacteristics)(HANDLE AvrtHandle); - class COuterEVR; class CEVRAllocatorPresenter : @@ -262,31 +247,20 @@ namespace DSObjects // === Media type negotiation functions HRESULT RenegotiateMediaType(); HRESULT IsMediaTypeSupported(IMFMediaType* pMixerType); - HRESULT CreateProposedOutputType(IMFMediaType* pMixerType, IMFMediaType** pType); + HRESULT CreateOptimalOutputType(IMFMediaType* pMixerProposedType, IMFMediaType* pMixerInputType, IMFMediaType** pType); HRESULT SetMediaType(IMFMediaType* pType); HRESULT GetMediaTypeFourCC(IMFMediaType* pType, DWORD* pFourCC); HRESULT GetMediaTypeMerit(IMFMediaType* pType, int* pMerit); LPCTSTR GetMediaTypeFormatDesc(IMFMediaType* pMediaType); - // === Functions pointers on Vista+ / .NET Framework 3.5 specific library - HMODULE m_hDXVA2Lib; - HMODULE m_hEVRLib; - HMODULE m_hAVRTLib; - - PTR_DXVA2CreateDirect3DDeviceManager9 pfDXVA2CreateDirect3DDeviceManager9; - PTR_MFCreateDXSurfaceBuffer pfMFCreateDXSurfaceBuffer; - PTR_MFCreateVideoSampleFromSurface pfMFCreateVideoSampleFromSurface; - PTR_MFCreateVideoMediaType pfMFCreateVideoMediaType; - -#if 0 - HRESULT(__stdcall* pMFCreateMediaType)(__deref_out IMFMediaType** ppMFType); - HRESULT(__stdcall* pMFInitMediaTypeFromAMMediaType)(__in IMFMediaType* pMFType, __in const AM_MEDIA_TYPE* pAMType); - HRESULT(__stdcall* pMFInitAMMediaTypeFromMFMediaType)(__in IMFMediaType* pMFType, __in GUID guidFormatBlockType, __inout AM_MEDIA_TYPE* pAMType); -#endif - - PTR_AvSetMmThreadCharacteristicsW pfAvSetMmThreadCharacteristicsW; - PTR_AvSetMmThreadPriority pfAvSetMmThreadPriority; - PTR_AvRevertMmThreadCharacteristics pfAvRevertMmThreadCharacteristics; + const WinapiFunc fnDXVA2CreateDirect3DDeviceManager9; + const WinapiFunc fnMFCreateDXSurfaceBuffer; + const WinapiFunc fnMFCreateVideoSampleFromSurface; + const WinapiFunc fnMFCreateMediaType; + + const WinapiFunc fnAvSetMmThreadCharacteristicsW; + const WinapiFunc fnAvSetMmThreadPriority; + const WinapiFunc fnAvRevertMmThreadCharacteristics; }; } diff --git a/src/filters/renderer/VideoRenderers/IPinHook.cpp b/src/filters/renderer/VideoRenderers/IPinHook.cpp index 3dc19a98e3b..e445a0e5b3d 100644 --- a/src/filters/renderer/VideoRenderers/IPinHook.cpp +++ b/src/filters/renderer/VideoRenderers/IPinHook.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -47,6 +47,7 @@ GUID g_guidDXVADecoder = GUID_NULL; int g_nDXVAVersion = 0; IPinCVtbl* g_pPinCVtbl = nullptr; +IPinCVtbl* g_pPinCVtblVideoDriverWorkAround = nullptr; IMemInputPinCVtbl* g_pMemInputPinCVtbl = nullptr; struct D3DFORMAT_TYPE { @@ -152,8 +153,8 @@ static HRESULT(STDMETHODCALLTYPE* ReceiveConnectionOrg)(IPinC* This, /* [in] */ static HRESULT STDMETHODCALLTYPE ReceiveConnectionMine(IPinC* This, /* [in] */ IPinC* pConnector, /* [in] */ const AM_MEDIA_TYPE* pmt) { - // Force the renderer to always reject the P010 pixel format - if (pmt && pmt->subtype == MEDIASUBTYPE_P010) { + // Force the renderer to always reject the P010 and P016 pixel formats + if (pmt && (pmt->subtype == MEDIASUBTYPE_P010 || pmt->subtype == MEDIASUBTYPE_P016)) { return VFW_E_TYPE_NOT_ACCEPTED; } else { return ReceiveConnectionOrg(This, pConnector, pmt); @@ -183,53 +184,47 @@ static HRESULT STDMETHODCALLTYPE ReceiveMine(IMemInputPinC* This, IMediaSample* return ReceiveMineI(This, pSample); } -void HookWorkAroundNVIDIADriverBug(IPinC* pPinC) +void HookWorkAroundVideoDriversBug(IBaseFilter* pBF) { - // Work-around a bug in NVIDIA drivers v344.11: this driver mistakenly - // accepts P010 pixel format as input for EVR so use the pin hook to - // add our own level of verification -#if MPC_VERSION_MAJOR > 1 || MPC_VERSION_MINOR > 7 || MPC_VERSION_PATCH > 6 -#pragma message("WARNING: Check if this bug is fixed in currently distributed driver") + // Work-around a bug in some video drivers: some drivers mistakenly + // accepts P010 and P016 pixel formats as input for VMR/EVR renderers + // so use the pin hook to add our own level of verification. +#if MPC_VERSION_MAJOR > 1 || MPC_VERSION_MINOR > 7 || MPC_VERSION_PATCH > 9 +#pragma message("WARNING: Check if this bug is fixed in currently distributed drivers") #endif - if (ReceiveConnectionOrg == nullptr) { - ReceiveConnectionOrg = pPinC->lpVtbl->ReceiveConnection; - } - pPinC->lpVtbl->ReceiveConnection = ReceiveConnectionMine; -} -void UnhookWorkAroundNVIDIADriverBug() -{ - if (g_pPinCVtbl->ReceiveConnection == ReceiveConnectionMine) { - g_pPinCVtbl->ReceiveConnection = ReceiveConnectionOrg; - } - ReceiveConnectionOrg = nullptr; -} - -void HookWorkAroundNVIDIADriverBug(IBaseFilter* pBF) -{ - DWORD flOldProtect = 0; + if (CComPtr pPin = GetFirstPin(pBF)) { + IPinC* pPinC = (IPinC*)(IPin*)pPin; - // Unhook previous VTable - if (g_pPinCVtbl) { - if (VirtualProtect(g_pPinCVtbl, sizeof(IPinCVtbl), PAGE_WRITECOPY, &flOldProtect)) { - UnhookWorkAroundNVIDIADriverBug(); - VirtualProtect(g_pPinCVtbl, sizeof(IPinCVtbl), flOldProtect, &flOldProtect); - g_pPinCVtbl = nullptr; + DWORD flOldProtect = 0; + if (VirtualProtect(pPinC->lpVtbl, sizeof(IPinCVtbl), PAGE_WRITECOPY, &flOldProtect)) { + if (ReceiveConnectionOrg == nullptr) { + ReceiveConnectionOrg = pPinC->lpVtbl->ReceiveConnection; + } + pPinC->lpVtbl->ReceiveConnection = ReceiveConnectionMine; + VirtualProtect(pPinC->lpVtbl, sizeof(IPinCVtbl), flOldProtect, &flOldProtect); + g_pPinCVtblVideoDriverWorkAround = pPinC->lpVtbl; } else { - TRACE(_T("HookWorkAroundNVIDIADriverBug: Could not unhook previous VTable")); + TRACE(_T("HookWorkAroundVideoDriversBug: Could not hook the VTable")); ASSERT(FALSE); } } +} - if (CComPtr pPin = GetFirstPin(pBF)) { - IPinC* pPinC = (IPinC*)(IPin*)pPin; - - if (VirtualProtect(pPinC->lpVtbl, sizeof(IPinCVtbl), PAGE_WRITECOPY, &flOldProtect)) { - HookWorkAroundNVIDIADriverBug(pPinC); - VirtualProtect(pPinC->lpVtbl, sizeof(IPinCVtbl), flOldProtect, &flOldProtect); - g_pPinCVtbl = pPinC->lpVtbl; +void UnhookWorkAroundVideoDriversBug() +{ + // Unhook previous VTable + if (g_pPinCVtblVideoDriverWorkAround) { + DWORD flOldProtect = 0; + if (VirtualProtect(g_pPinCVtblVideoDriverWorkAround, sizeof(IPinCVtbl), PAGE_WRITECOPY, &flOldProtect)) { + if (g_pPinCVtblVideoDriverWorkAround->ReceiveConnection == ReceiveConnectionMine) { + g_pPinCVtblVideoDriverWorkAround->ReceiveConnection = ReceiveConnectionOrg; + } + ReceiveConnectionOrg = nullptr; + VirtualProtect(g_pPinCVtblVideoDriverWorkAround, sizeof(IPinCVtbl), flOldProtect, &flOldProtect); + g_pPinCVtblVideoDriverWorkAround = nullptr; } else { - TRACE(_T("HookWorkAroundNVIDIADriverBug: Could not hook the VTable")); + TRACE(_T("UnhookWorkAroundVideoDriversBug: Could not unhook previous VTable")); ASSERT(FALSE); } } @@ -245,7 +240,6 @@ void UnhookNewSegmentAndReceive() if (g_pPinCVtbl->NewSegment == NewSegmentMine) { g_pPinCVtbl->NewSegment = NewSegmentOrg; } - UnhookWorkAroundNVIDIADriverBug(); VirtualProtect(g_pPinCVtbl, sizeof(IPinCVtbl), flOldProtect, &flOldProtect); g_pPinCVtbl = nullptr; NewSegmentOrg = nullptr; @@ -289,7 +283,6 @@ bool HookNewSegmentAndReceive(IPinC* pPinC, IMemInputPinC* pMemInputPinC) NewSegmentOrg = pPinC->lpVtbl->NewSegment; } pPinC->lpVtbl->NewSegment = NewSegmentMine; // Function sets global variable(s) - HookWorkAroundNVIDIADriverBug(pPinC); VirtualProtect(pPinC->lpVtbl, sizeof(IPinCVtbl), flOldProtect, &flOldProtect); g_pPinCVtbl = pPinC->lpVtbl; } else { diff --git a/src/filters/renderer/VideoRenderers/IPinHook.h b/src/filters/renderer/VideoRenderers/IPinHook.h index 1712b3e34d1..adb5f8d8304 100644 --- a/src/filters/renderer/VideoRenderers/IPinHook.h +++ b/src/filters/renderer/VideoRenderers/IPinHook.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -76,7 +76,8 @@ extern bool HookNewSegmentAndReceive(IPinC* pPinC, IMemInputPinC* pMemInputPin); extern void UnhookNewSegmentAndReceive(); extern REFERENCE_TIME g_tSegmentStart, g_tSampleStart, g_rtTimePerFrame; -extern void HookWorkAroundNVIDIADriverBug(IBaseFilter* pBF); +extern void HookWorkAroundVideoDriversBug(IBaseFilter* pBF); +extern void UnhookWorkAroundVideoDriversBug(); // diff --git a/src/filters/renderer/VideoRenderers/RM7AllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/RM7AllocatorPresenter.cpp index 879103f880e..98a943d5aed 100644 --- a/src/filters/renderer/VideoRenderers/RM7AllocatorPresenter.cpp +++ b/src/filters/renderer/VideoRenderers/RM7AllocatorPresenter.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -87,9 +87,8 @@ HRESULT CRM7AllocatorPresenter::AllocSurfaces() ddsd.ddpfPixelFormat.dwYUVBitCount = 16; ddsd.ddpfPixelFormat.dwFourCC = '2YUY'; - m_pDD->CreateSurface(&ddsd, &m_pVideoSurfaceYUY2, nullptr); - - if (FAILED(m_pVideoSurfaceOff->Blt(nullptr, m_pVideoSurfaceYUY2, nullptr, DDBLT_WAIT, nullptr))) { + if (FAILED(m_pDD->CreateSurface(&ddsd, &m_pVideoSurfaceYUY2, nullptr)) || + FAILED(m_pVideoSurfaceOff->Blt(nullptr, m_pVideoSurfaceYUY2, nullptr, DDBLT_WAIT, nullptr))) { m_pVideoSurfaceYUY2 = nullptr; } diff --git a/src/filters/renderer/VideoRenderers/RenderersSettings.cpp b/src/filters/renderer/VideoRenderers/RenderersSettings.cpp index 89813297e6a..3f04ec5966f 100644 --- a/src/filters/renderer/VideoRenderers/RenderersSettings.cpp +++ b/src/filters/renderer/VideoRenderers/RenderersSettings.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -108,21 +108,15 @@ CRenderersData::CRenderersData() // Don't disable hardware features before initializing a renderer m_bFP16Support = true; m_b10bitSupport = true; + QueryPerformanceFrequency(&llPerfFrequency); } LONGLONG CRenderersData::GetPerfCounter() const { LARGE_INTEGER i64Ticks100ns; - LARGE_INTEGER llPerfFrequency; - QueryPerformanceFrequency(&llPerfFrequency); - if (llPerfFrequency.QuadPart != 0) { - QueryPerformanceCounter(&i64Ticks100ns); - return llMulDiv(i64Ticks100ns.QuadPart, 10000000, llPerfFrequency.QuadPart, 0); - } else { - // ms to 100ns units - return LONGLONG(timeGetTime()) * 10000; - } + QueryPerformanceCounter(&i64Ticks100ns); + return llMulDiv(i64Ticks100ns.QuadPart, 10000000, llPerfFrequency.QuadPart, 0); } HINSTANCE CRenderersData::GetD3X9Dll() diff --git a/src/filters/renderer/VideoRenderers/RenderersSettings.h b/src/filters/renderer/VideoRenderers/RenderersSettings.h index c8c9e60cc3d..2e57c929a17 100644 --- a/src/filters/renderer/VideoRenderers/RenderersSettings.h +++ b/src/filters/renderer/VideoRenderers/RenderersSettings.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -131,8 +131,9 @@ class CRenderersSettings class CRenderersData { - HINSTANCE m_hD3DX9Dll; - UINT m_nDXSdkRelease; + HINSTANCE m_hD3DX9Dll; + UINT m_nDXSdkRelease; + LARGE_INTEGER llPerfFrequency; public: CRenderersData(); diff --git a/src/filters/renderer/VideoRenderers/SyncRenderer.cpp b/src/filters/renderer/VideoRenderers/SyncRenderer.cpp index cc25407b7cf..e4c13b40692 100644 --- a/src/filters/renderer/VideoRenderers/SyncRenderer.cpp +++ b/src/filters/renderer/VideoRenderers/SyncRenderer.cpp @@ -1,5 +1,5 @@ /* - * (C) 2010-2014 see Authors.txt + * (C) 2010-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -45,6 +45,7 @@ #include "SyncRenderer.h" #include "version.h" #include "FocusThread.h" +#include "../../../DSUtil/ArrayUtils.h" // only for debugging //#define DISABLE_USING_D3D9EX @@ -79,7 +80,7 @@ CBaseAP::CBaseAP(HWND hWnd, bool bFullscreen, HRESULT& hr, CString& _Error) , m_pAudioStats(nullptr) , m_nNextJitter(0) , m_nNextSyncOffset(0) - , m_llLastSyncTime(0) + , m_llLastSyncTime(LONGLONG_ERROR) , m_fAvrFps(0.0) , m_fJitterStdDev(0.0) , m_fSyncOffsetStdDev(0.0) @@ -381,6 +382,7 @@ void CBaseAP::ResetStats() m_MaxSyncOffset = MINLONG64; m_uSyncGlitches = 0; m_pcFramesDropped = 0; + m_llLastSyncTime = LONGLONG_ERROR; } bool CBaseAP::SettingsNeedResetDevice() @@ -711,14 +713,13 @@ HRESULT CBaseAP::ResetDXDevice(CString& _Error) CComPtr rendererInputEnum; std::vector> decoderOutput; std::vector> rendererInput; - FILTER_INFO filterInfo; - ZeroMemory(&filterInfo, sizeof(filterInfo)); + CFilterInfo filterInfo; - bool disconnected = FALSE; + bool disconnected = false; // Disconnect all pins to release video memory resources if (m_pD3DDev) { - m_pOuterEVR->QueryFilterInfo(&filterInfo); // This addref's the pGraph member + m_pOuterEVR->QueryFilterInfo(&filterInfo); if (SUCCEEDED(m_pOuterEVR->EnumPins(&rendererInputEnum))) { CComPtr input; CComPtr output; @@ -735,13 +736,15 @@ HRESULT CBaseAP::ResetDXDevice(CString& _Error) } else { return hr; } - for (DWORD i = 0; i < decoderOutput.size(); i++) { - TRACE(_T("Disconnecting pin\n")); - filterInfo.pGraph->Disconnect(decoderOutput.at(i).p); - filterInfo.pGraph->Disconnect(rendererInput.at(i).p); - TRACE(_T("Pin disconnected\n")); + if (filterInfo.pGraph) { + for (size_t i = 0; i < decoderOutput.size(); i++) { + TRACE(_T("Disconnecting pin\n")); + filterInfo.pGraph->Disconnect(decoderOutput[i].p); + filterInfo.pGraph->Disconnect(rendererInput[i].p); + TRACE(_T("Pin disconnected\n")); + } + disconnected = true; } - disconnected = true; } // Release more resources @@ -859,15 +862,11 @@ HRESULT CBaseAP::ResetDXDevice(CString& _Error) } if (disconnected) { - for (DWORD i = 0; i < decoderOutput.size(); i++) { - if (FAILED(filterInfo.pGraph->ConnectDirect(decoderOutput.at(i).p, rendererInput.at(i).p, nullptr))) { + for (size_t i = 0; i < decoderOutput.size(); i++) { + if (FAILED(filterInfo.pGraph->ConnectDirect(decoderOutput[i].p, rendererInput[i].p, nullptr))) { return hr; } } - - if (filterInfo.pGraph != nullptr) { - filterInfo.pGraph->Release(); - } } m_pPSC.Attach(DEBUG_NEW CPixelShaderCompiler(m_pD3DDev, true)); @@ -1461,6 +1460,10 @@ HRESULT CBaseAP::AlphaBlt(RECT* pSrc, const RECT* pDst, IDirect3DTexture9* pText // Update the array m_pllJitter with a new vsync period. Calculate min, max and stddev. void CBaseAP::SyncStats(LONGLONG syncTime) { + if (m_llLastSyncTime == LONGLONG_ERROR) { + m_llLastSyncTime = syncTime; + } + m_nNextJitter = (m_nNextJitter + 1) % NB_JITTER; LONGLONG jitter = syncTime - m_llLastSyncTime; m_pllJitter[m_nNextJitter] = jitter; @@ -2401,9 +2404,6 @@ STDMETHODIMP CBaseAP::SetPixelShader2(LPCSTR pSrcData, LPCSTR pTarget, bool bScr CSyncAP::CSyncAP(HWND hWnd, bool bFullscreen, HRESULT& hr, CString& _Error) : CBaseAP(hWnd, bFullscreen, hr, _Error) - , m_hDXVA2Lib(nullptr) - , m_hEVRLib(nullptr) - , m_hAVRTLib(nullptr) , m_nResetToken(0) , m_hRenderThread(nullptr) , m_hMixerThread(nullptr) @@ -2426,13 +2426,13 @@ CSyncAP::CSyncAP(HWND hWnd, bool bFullscreen, HRESULT& hr, CString& _Error) , m_bPrerolled(false) , m_LastClockState(MFCLOCK_STATE_INVALID) , m_bEvtSkip(false) - , pfDXVA2CreateDirect3DDeviceManager9(nullptr) - , pfMFCreateDXSurfaceBuffer(nullptr) - , pfMFCreateVideoSampleFromSurface(nullptr) - , pfMFCreateVideoMediaType(nullptr) - , pfAvSetMmThreadCharacteristicsW(nullptr) - , pfAvSetMmThreadPriority(nullptr) - , pfAvRevertMmThreadCharacteristics(nullptr) + , fnDXVA2CreateDirect3DDeviceManager9("dxva2.dll", "DXVA2CreateDirect3DDeviceManager9") + , fnMFCreateDXSurfaceBuffer("evr.dll", "MFCreateDXSurfaceBuffer") + , fnMFCreateVideoSampleFromSurface("evr.dll", "MFCreateVideoSampleFromSurface") + , fnMFCreateMediaType("mfplat.dll", "MFCreateMediaType") + , fnAvSetMmThreadCharacteristicsW("avrt.dll", "AvSetMmThreadCharacteristicsW") + , fnAvSetMmThreadPriority("avrt.dll", "AvSetMmThreadPriority") + , fnAvRevertMmThreadCharacteristics("avrt.dll", "AvRevertMmThreadCharacteristics") { const CRenderersSettings& r = GetRenderersSettings(); @@ -2441,47 +2441,25 @@ CSyncAP::CSyncAP(HWND hWnd, bool bFullscreen, HRESULT& hr, CString& _Error) return; } - // Load EVR specific DLLs - m_hDXVA2Lib = LoadLibrary(L"dxva2.dll"); - if (m_hDXVA2Lib) { - pfDXVA2CreateDirect3DDeviceManager9 = (PTR_DXVA2CreateDirect3DDeviceManager9) GetProcAddress(m_hDXVA2Lib, "DXVA2CreateDirect3DDeviceManager9"); - } - - // Load EVR functions - m_hEVRLib = LoadLibrary(L"evr.dll"); - if (m_hEVRLib) { - pfMFCreateDXSurfaceBuffer = (PTR_MFCreateDXSurfaceBuffer)GetProcAddress(m_hEVRLib, "MFCreateDXSurfaceBuffer"); - pfMFCreateVideoSampleFromSurface = (PTR_MFCreateVideoSampleFromSurface)GetProcAddress(m_hEVRLib, "MFCreateVideoSampleFromSurface"); - pfMFCreateVideoMediaType = (PTR_MFCreateVideoMediaType)GetProcAddress(m_hEVRLib, "MFCreateVideoMediaType"); - } - - if (!pfDXVA2CreateDirect3DDeviceManager9 || !pfMFCreateDXSurfaceBuffer || !pfMFCreateVideoSampleFromSurface || !pfMFCreateVideoMediaType) { - if (!pfDXVA2CreateDirect3DDeviceManager9) { + if (!fnDXVA2CreateDirect3DDeviceManager9 || !fnMFCreateDXSurfaceBuffer || !fnMFCreateVideoSampleFromSurface || !fnMFCreateMediaType) { + if (!fnDXVA2CreateDirect3DDeviceManager9) { _Error += L"Could not find DXVA2CreateDirect3DDeviceManager9 (dxva2.dll)\n"; } - if (!pfMFCreateDXSurfaceBuffer) { + if (!fnMFCreateDXSurfaceBuffer) { _Error += L"Could not find MFCreateDXSurfaceBuffer (evr.dll)\n"; } - if (!pfMFCreateVideoSampleFromSurface) { + if (!fnMFCreateVideoSampleFromSurface) { _Error += L"Could not find MFCreateVideoSampleFromSurface (evr.dll)\n"; } - if (!pfMFCreateVideoMediaType) { - _Error += L"Could not find MFCreateVideoMediaType (evr.dll)\n"; + if (!fnMFCreateMediaType) { + _Error += L"Could not find MFCreateMediaType (mfplat.dll)\n"; } hr = E_FAIL; return; } - // Load Vista+ specific DLLs - m_hAVRTLib = LoadLibrary(L"avrt.dll"); - if (m_hAVRTLib) { - pfAvSetMmThreadCharacteristicsW = (PTR_AvSetMmThreadCharacteristicsW) GetProcAddress(m_hAVRTLib, "AvSetMmThreadCharacteristicsW"); - pfAvSetMmThreadPriority = (PTR_AvSetMmThreadPriority) GetProcAddress(m_hAVRTLib, "AvSetMmThreadPriority"); - pfAvRevertMmThreadCharacteristics = (PTR_AvRevertMmThreadCharacteristics) GetProcAddress(m_hAVRTLib, "AvRevertMmThreadCharacteristics"); - } - // Init DXVA manager - hr = pfDXVA2CreateDirect3DDeviceManager9(&m_nResetToken, &m_pD3DManager); + hr = fnDXVA2CreateDirect3DDeviceManager9(&m_nResetToken, &m_pD3DManager); if (SUCCEEDED(hr) && m_pD3DManager) { hr = m_pD3DManager->ResetDevice(m_pD3DDev, m_nResetToken); if (FAILED(hr)) { @@ -2515,16 +2493,6 @@ CSyncAP::~CSyncAP() m_pMediaType = nullptr; m_pClock = nullptr; m_pD3DManager = nullptr; - - if (m_hDXVA2Lib) { - FreeLibrary(m_hDXVA2Lib); - } - if (m_hEVRLib) { - FreeLibrary(m_hEVRLib); - } - if (m_hAVRTLib) { - FreeLibrary(m_hAVRTLib); - } } HRESULT CSyncAP::CheckShutdown() const @@ -2940,52 +2908,78 @@ HRESULT CSyncAP::IsMediaTypeSupported(IMFMediaType* pMixerType) return hr; } -HRESULT CSyncAP::CreateProposedOutputType(IMFMediaType* pMixerType, IMFMediaType** ppType) +HRESULT CSyncAP::CreateOptimalOutputType(IMFMediaType* pMixerProposedType, IMFMediaType* pMixerInputType, IMFMediaType** ppType) { HRESULT hr; - AM_MEDIA_TYPE* pAMMedia = nullptr; - LARGE_INTEGER i64Size; - MFVIDEOFORMAT* VideoFormat; + IMFMediaType* pOptimalMediaType; - CHECK_HR(pMixerType->GetRepresentation(FORMAT_MFVideoFormat, (void**)&pAMMedia)); + CHECK_HR(fnMFCreateMediaType(&pOptimalMediaType)); + CHECK_HR(pMixerProposedType->CopyAllItems(pOptimalMediaType)); - VideoFormat = (MFVIDEOFORMAT*)pAMMedia->pbFormat; - hr = pfMFCreateVideoMediaType(VideoFormat, &m_pMediaType); + auto colorAttributes = make_array( + MF_MT_VIDEO_LIGHTING, + MF_MT_VIDEO_PRIMARIES, + MF_MT_TRANSFER_FUNCTION, + MF_MT_YUV_MATRIX, + MF_MT_VIDEO_CHROMA_SITING + ); - CSize videoSize; - videoSize.cx = VideoFormat->videoInfo.dwWidth; - videoSize.cy = VideoFormat->videoInfo.dwHeight; + auto copyAttribute = [](IMFAttributes * pFrom, IMFAttributes * pTo, REFGUID guidKey) { + PROPVARIANT val; + HRESULT hr = pFrom->GetItem(guidKey, &val); - if (SUCCEEDED(hr)) { - i64Size.HighPart = videoSize.cx; - i64Size.LowPart = videoSize.cy; - m_pMediaType->SetUINT64(MF_MT_FRAME_SIZE, i64Size.QuadPart); - m_pMediaType->SetUINT32(MF_MT_PAN_SCAN_ENABLED, 0); - const CRenderersSettings& r = GetRenderersSettings(); + if (SUCCEEDED(hr)) { + hr = pTo->SetItem(guidKey, val); + PropVariantClear(&val); + } else if (hr == MF_E_ATTRIBUTENOTFOUND) { + hr = pTo->DeleteItem(guidKey); + } + return hr; + }; - if (r.m_AdvRendSets.iEVROutputRange == 1) { - m_pMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, MFNominalRange_16_235); - } else { - m_pMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, MFNominalRange_0_255); + for (REFGUID guidKey : colorAttributes) { + if (FAILED(hr = copyAttribute(pMixerInputType, pOptimalMediaType, guidKey))) { + TRACE(_T("Copying color attribute %s failed: 0x%08x\n"), CComBSTR(guidKey), hr); } + } - m_LastSetOutputRange = r.m_AdvRendSets.iEVROutputRange; - i64Size.HighPart = VideoFormat->videoInfo.PixelAspectRatio.Numerator; - i64Size.LowPart = VideoFormat->videoInfo.PixelAspectRatio.Denominator; - m_pMediaType->SetUINT64(MF_MT_PIXEL_ASPECT_RATIO, i64Size.QuadPart); + pOptimalMediaType->SetUINT32(MF_MT_PAN_SCAN_ENABLED, 0); - MFVideoArea Area = GetArea(0, 0, videoSize.cx, videoSize.cy); - m_pMediaType->SetBlob(MF_MT_GEOMETRIC_APERTURE, (UINT8*)&Area, sizeof(MFVideoArea)); + const CRenderersSettings& r = GetRenderersSettings(); + + UINT32 nominalRange; + if (SUCCEEDED(pMixerInputType->GetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, &nominalRange)) + && nominalRange == MFNominalRange_0_255) { + // EVR mixer always assume 16-235 input. To ensure that luminance range won't be expanded we requests 16-235 also on output. + // Request 16-235 to ensure untouched luminance range on output. It is the only way to pass 0-255 without changes. + nominalRange = MFNominalRange_16_235; + m_LastSetOutputRange = -1; // -1 to prevent renegotiations because of different value than this in settings. + } else { + nominalRange = (r.m_AdvRendSets.iEVROutputRange == 1) ? MFNominalRange_16_235 : MFNominalRange_0_255; + m_LastSetOutputRange = r.m_AdvRendSets.iEVROutputRange; } + pOptimalMediaType->SetUINT32(MF_MT_VIDEO_NOMINAL_RANGE, nominalRange); + + m_LastSetOutputRange = r.m_AdvRendSets.iEVROutputRange; - UINT64 dwARx = UINT64(VideoFormat->videoInfo.PixelAspectRatio.Numerator) * videoSize.cx; - UINT64 dwARy = UINT64(VideoFormat->videoInfo.PixelAspectRatio.Denominator) * videoSize.cy; - UINT64 gcd = GCD(dwARx, dwARy); + ULARGE_INTEGER ui64Size; + pOptimalMediaType->GetUINT64(MF_MT_FRAME_SIZE, &ui64Size.QuadPart); + + CSize videoSize((LONG)ui64Size.HighPart, (LONG)ui64Size.LowPart); + MFVideoArea Area = GetArea(0, 0, videoSize.cx, videoSize.cy); + pOptimalMediaType->SetBlob(MF_MT_GEOMETRIC_APERTURE, (UINT8*)&Area, sizeof(MFVideoArea)); + + ULARGE_INTEGER ui64AspectRatio; + pOptimalMediaType->GetUINT64(MF_MT_PIXEL_ASPECT_RATIO, &ui64AspectRatio.QuadPart); + + UINT64 ui64ARx = UINT64(ui64AspectRatio.HighPart) * ui64Size.HighPart; + UINT64 ui64ARy = UINT64(ui64AspectRatio.LowPart) * ui64Size.LowPart; + UINT64 gcd = GCD(ui64ARx, ui64ARy); if (gcd > 1) { - dwARx /= gcd; - dwARy /= gcd; + ui64ARx /= gcd; + ui64ARy /= gcd; } - CSize aspectRatio((LONG)dwARx, (LONG)dwARy); + CSize aspectRatio((LONG)ui64ARx, (LONG)ui64ARy); if (videoSize != m_nativeVideoSize || aspectRatio != m_aspectRatio) { SetVideoSize(videoSize, aspectRatio); @@ -2996,8 +2990,8 @@ HRESULT CSyncAP::CreateProposedOutputType(IMFMediaType* pMixerType, IMFMediaType } } - pMixerType->FreeRepresentation(FORMAT_MFVideoFormat, (void*)pAMMedia); - m_pMediaType->QueryInterface(IID_PPV_ARGS(ppType)); + *ppType = pOptimalMediaType; + (*ppType)->AddRef(); return hr; } @@ -3013,6 +3007,9 @@ HRESULT CSyncAP::SetMediaType(IMFMediaType* pType) hr = InitializeDevice(pAMMedia); if (SUCCEEDED(hr)) { + CAutoLock lock(this); + m_pMediaType = pType; + strTemp = GetMediaTypeName(pAMMedia->subtype); strTemp.Replace(L"MEDIASUBTYPE_", L""); m_strStatsMsg[MSG_MIXEROUT].Format(L"Mixer output : %s", strTemp); @@ -3066,6 +3063,7 @@ HRESULT CSyncAP::RenegotiateMediaType() HRESULT hr = S_OK; CComPtr pMixerType; + CComPtr pMixerInputType; CComPtr pType; if (!m_pMixer) { @@ -3073,13 +3071,13 @@ HRESULT CSyncAP::RenegotiateMediaType() } // Get the mixer's input type - hr = m_pMixer->GetInputCurrentType(0, &pType); + hr = m_pMixer->GetInputCurrentType(0, &pMixerInputType); if (SUCCEEDED(hr)) { AM_MEDIA_TYPE* pMT; - hr = pType->GetRepresentation(FORMAT_VideoInfo2, (void**)&pMT); + hr = pMixerInputType->GetRepresentation(FORMAT_VideoInfo2, (void**)&pMT); if (SUCCEEDED(hr)) { m_inputMediaType = *pMT; - pType->FreeRepresentation(FORMAT_VideoInfo2, pMT); + pMixerInputType->FreeRepresentation(FORMAT_VideoInfo2, pMT); } } @@ -3089,7 +3087,6 @@ HRESULT CSyncAP::RenegotiateMediaType() while ((hr != MF_E_NO_MORE_TYPES)) { pMixerType = nullptr; pType = nullptr; - m_pMediaType = nullptr; // Step 1. Get the next media type supported by mixer. hr = m_pMixer->GetOutputAvailableType(0, iTypeIndex++, &pMixerType); @@ -3101,7 +3098,7 @@ HRESULT CSyncAP::RenegotiateMediaType() hr = IsMediaTypeSupported(pMixerType); } if (SUCCEEDED(hr)) { - hr = CreateProposedOutputType(pMixerType, &pType); + hr = CreateOptimalOutputType(pMixerType, pMixerInputType, &pType); } // Step 4. Check if the mixer will accept this media type. if (SUCCEEDED(hr)) { @@ -3151,7 +3148,7 @@ HRESULT CSyncAP::RenegotiateMediaType() bool CSyncAP::GetSampleFromMixer() { - MFT_OUTPUT_DATA_BUFFER Buffer; + MFT_OUTPUT_DATA_BUFFER dataBuffer; HRESULT hr = S_OK; DWORD dwStatus; LONGLONG llClockBefore = 0; @@ -3168,17 +3165,19 @@ bool CSyncAP::GetSampleFromMixer() break; } - ZeroMemory(&Buffer, sizeof(Buffer)); - Buffer.pSample = pSample; + ZeroMemory(&dataBuffer, sizeof(dataBuffer)); + dataBuffer.pSample = pSample; pSample->GetUINT32(GUID_SURFACE_INDEX, &dwSurface); { llClockBefore = GetRenderersData()->GetPerfCounter(); - hr = m_pMixer->ProcessOutput(0 , 1, &Buffer, &dwStatus); + hr = m_pMixer->ProcessOutput(0 , 1, &dataBuffer, &dwStatus); llClockAfter = GetRenderersData()->GetPerfCounter(); } if (hr == MF_E_TRANSFORM_NEED_MORE_INPUT) { // There are no samples left in the mixer MoveToFreeList(pSample, false); + // Important: Release any events returned from the ProcessOutput method. + SAFE_RELEASE(dataBuffer.pEvents); break; } if (m_pSink) { @@ -3203,6 +3202,8 @@ bool CSyncAP::GetSampleFromMixer() m_nTearingPos = (m_nTearingPos + 7) % m_nativeVideoSize.cx; } MoveToScheduledList(pSample, false); // Schedule, then go back to see if there is more where that came from + // Important: Release any events returned from the ProcessOutput method. + SAFE_RELEASE(dataBuffer.pEvents); } return newSample; } @@ -3532,9 +3533,10 @@ STDMETHODIMP CSyncAP::InitializeDevice(AM_MEDIA_TYPE* pMediaType) for (int i = 0; i < m_nDXSurface; i++) { CComPtr pMFSample; - hr = pfMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); + hr = fnMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); if (SUCCEEDED(hr)) { pMFSample->SetUINT32(GUID_SURFACE_INDEX, i); + CAutoLock sampleQueueLock(&m_SampleQueueLock); m_FreeSamples.AddTail(pMFSample); } ASSERT(SUCCEEDED(hr)); @@ -3617,18 +3619,18 @@ void CSyncAP::RenderThread() // Tell Multimedia Class Scheduler we are doing threaded playback (increase priority) HANDLE hAvrt = 0; - if (pfAvSetMmThreadCharacteristicsW) { + if (fnAvSetMmThreadCharacteristicsW) { DWORD dwTaskIndex = 0; - hAvrt = pfAvSetMmThreadCharacteristicsW(L"Playback", &dwTaskIndex); - if (pfAvSetMmThreadPriority) { - pfAvSetMmThreadPriority(hAvrt, AVRT_PRIORITY_HIGH); + hAvrt = fnAvSetMmThreadCharacteristicsW(L"Playback", &dwTaskIndex); + if (fnAvSetMmThreadPriority) { + fnAvSetMmThreadPriority(hAvrt, AVRT_PRIORITY_HIGH); } } // Set timer resolution timeGetDevCaps(&tc, sizeof(TIMECAPS)); DWORD dwResolution = std::min(std::max(tc.wPeriodMin, 0u), tc.wPeriodMax); - DWORD dwUser = timeBeginPeriod(dwResolution); + VERIFY(timeBeginPeriod(dwResolution) == 0); pNewSample = nullptr; while (!bQuit) { @@ -3808,8 +3810,8 @@ void CSyncAP::RenderThread() pNewSample = nullptr; } timeEndPeriod(dwResolution); - if (pfAvRevertMmThreadCharacteristics) { - pfAvRevertMmThreadCharacteristics(hAvrt); + if (fnAvRevertMmThreadCharacteristics) { + fnAvRevertMmThreadCharacteristics(hAvrt); } } @@ -3818,15 +3820,17 @@ STDMETHODIMP_(bool) CSyncAP::ResetDevice() CAutoLock lock(this); CAutoLock lock2(&m_ImageProcessingLock); CAutoLock cRenderLock(&m_allocatorLock); + RemoveAllSamples(); bool bResult = __super::ResetDevice(); for (int i = 0; i < m_nDXSurface; i++) { CComPtr pMFSample; - HRESULT hr = pfMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); + HRESULT hr = fnMFCreateVideoSampleFromSurface(m_pVideoSurface[i], &pMFSample); if (SUCCEEDED(hr)) { pMFSample->SetUINT32(GUID_SURFACE_INDEX, i); + CAutoLock sampleQueueLock(&m_SampleQueueLock); m_FreeSamples.AddTail(pMFSample); } ASSERT(SUCCEEDED(hr)); @@ -3849,7 +3853,9 @@ void CSyncAP::OnResetDevice() void CSyncAP::RemoveAllSamples() { - CAutoLock AutoLock(&m_ImageProcessingLock); + CAutoLock imageProcesssingLock(&m_ImageProcessingLock); + CAutoLock sampleQueueLock(&m_SampleQueueLock); + FlushSamples(); m_ScheduledSamples.RemoveAll(); m_FreeSamples.RemoveAll(); @@ -3905,11 +3911,11 @@ void CSyncAP::MoveToFreeList(IMFSample* pSample, bool bTail) void CSyncAP::MoveToScheduledList(IMFSample* pSample, bool _bSorted) { + CAutoLock lock(&m_SampleQueueLock); + if (_bSorted) { - CAutoLock lock(&m_SampleQueueLock); m_ScheduledSamples.AddHead(pSample); } else { - CAutoLock lock(&m_SampleQueueLock); m_ScheduledSamples.AddTail(pSample); } } @@ -3942,10 +3948,9 @@ HRESULT CSyncAP::BeginStreaming() m_pcFramesDrawn = 0; CComPtr pEVR; - FILTER_INFO filterInfo; - ZeroMemory(&filterInfo, sizeof(filterInfo)); + CFilterInfo filterInfo; m_pOuterEVR->QueryInterface(IID_PPV_ARGS(&pEVR)); - pEVR->QueryFilterInfo(&filterInfo); // This addref's the pGraph member + pEVR->QueryFilterInfo(&filterInfo); BeginEnumFilters(filterInfo.pGraph, pEF, pBF); if (CComQIPtr pAS = pBF) { @@ -3954,9 +3959,6 @@ HRESULT CSyncAP::BeginStreaming() EndEnumFilters; pEVR->GetSyncSource(&m_pRefClock); - if (filterInfo.pGraph) { - filterInfo.pGraph->Release(); - } m_pGenlock->SetMonitor(GetAdapter(m_pD3D, m_hWnd)); m_pGenlock->GetTiming(); diff --git a/src/filters/renderer/VideoRenderers/SyncRenderer.h b/src/filters/renderer/VideoRenderers/SyncRenderer.h index fca1d67dd89..7455e0e0c9c 100644 --- a/src/filters/renderer/VideoRenderers/SyncRenderer.h +++ b/src/filters/renderer/VideoRenderers/SyncRenderer.h @@ -1,5 +1,5 @@ /* - * (C) 2010-2014 see Authors.txt + * (C) 2010-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -25,6 +25,7 @@ #include "SyncAllocatorPresenter.h" #include "AllocatorCommon.h" #include +#include "../../../DSUtil/WinapiFunc.h" #define VMRBITMAP_UPDATE 0x80000000 #define MAX_PICTURE_SLOTS (60 + 2) // Last 2 for pixels shader! @@ -449,19 +450,6 @@ namespace GothSync MFCLOCK_STATE m_LastClockState; private: - // dxva.dll - typedef HRESULT(__stdcall* PTR_DXVA2CreateDirect3DDeviceManager9)(UINT* pResetToken, IDirect3DDeviceManager9** ppDeviceManager); - // mf.dll - typedef HRESULT(__stdcall* PTR_MFCreatePresentationClock)(IMFPresentationClock** ppPresentationClock); - // evr.dll - typedef HRESULT(__stdcall* PTR_MFCreateDXSurfaceBuffer)(REFIID riid, IUnknown* punkSurface, BOOL fBottomUpWhenLinear, IMFMediaBuffer** ppBuffer); - typedef HRESULT(__stdcall* PTR_MFCreateVideoSampleFromSurface)(IUnknown* pUnkSurface, IMFSample** ppSample); - typedef HRESULT(__stdcall* PTR_MFCreateVideoMediaType)(const MFVIDEOFORMAT* pVideoFormat, IMFVideoMediaType** ppIVideoMediaType); - // avrt.dll - typedef HANDLE(__stdcall* PTR_AvSetMmThreadCharacteristicsW)(LPCWSTR TaskName, LPDWORD TaskIndex); - typedef BOOL (__stdcall* PTR_AvSetMmThreadPriority)(HANDLE AvrtHandle, AVRT_PRIORITY Priority); - typedef BOOL (__stdcall* PTR_AvRevertMmThreadCharacteristics)(HANDLE AvrtHandle); - enum RENDER_STATE { Started = State_Running, Stopped = State_Stopped, @@ -473,7 +461,7 @@ namespace GothSync CComPtr m_pD3DManager; CComPtr m_pMixer; CComPtr m_pSink; - CComPtr m_pMediaType; + CComPtr m_pMediaType; MFVideoAspectRatioMode m_dwVideoAspectRatioMode; MFVideoRenderPrefs m_dwVideoRenderPrefs; COLORREF m_BorderColor; @@ -529,22 +517,17 @@ namespace GothSync LONGLONG GetMediaTypeMerit(IMFMediaType* pMediaType); HRESULT RenegotiateMediaType(); HRESULT IsMediaTypeSupported(IMFMediaType* pMixerType); - HRESULT CreateProposedOutputType(IMFMediaType* pMixerType, IMFMediaType** pType); + HRESULT CreateOptimalOutputType(IMFMediaType* pMixerProposedType, IMFMediaType* pMixerInputType, IMFMediaType** ppType); HRESULT SetMediaType(IMFMediaType* pType); - // Functions pointers for Vista+ / .NET Framework 3.5 specific library - HMODULE m_hDXVA2Lib; - HMODULE m_hEVRLib; - HMODULE m_hAVRTLib; - - PTR_DXVA2CreateDirect3DDeviceManager9 pfDXVA2CreateDirect3DDeviceManager9; - PTR_MFCreateDXSurfaceBuffer pfMFCreateDXSurfaceBuffer; - PTR_MFCreateVideoSampleFromSurface pfMFCreateVideoSampleFromSurface; - PTR_MFCreateVideoMediaType pfMFCreateVideoMediaType; + const WinapiFunc fnDXVA2CreateDirect3DDeviceManager9; + const WinapiFunc fnMFCreateDXSurfaceBuffer; + const WinapiFunc fnMFCreateVideoSampleFromSurface; + const WinapiFunc fnMFCreateMediaType; - PTR_AvSetMmThreadCharacteristicsW pfAvSetMmThreadCharacteristicsW; - PTR_AvSetMmThreadPriority pfAvSetMmThreadPriority; - PTR_AvRevertMmThreadCharacteristics pfAvRevertMmThreadCharacteristics; + const WinapiFunc fnAvSetMmThreadCharacteristicsW; + const WinapiFunc fnAvSetMmThreadPriority; + const WinapiFunc fnAvRevertMmThreadCharacteristics; }; class CSyncRenderer: diff --git a/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp index 0124367e6c3..3faf3784d6e 100644 --- a/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp +++ b/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -23,7 +23,8 @@ #include "../../../SubPic/DX9SubPic.h" #include "../../../SubPic/SubPicQueueImpl.h" #include "RenderersSettings.h" -#include "moreuuids.h" +#include + using namespace DSObjects; @@ -88,8 +89,6 @@ STDMETHODIMP CmadVRAllocatorPresenter::NonDelegatingQueryInterface(REFIID riid, HRESULT CmadVRAllocatorPresenter::SetDevice(IDirect3DDevice9* pD3DDev) { - const CRenderersSettings& r = GetRenderersSettings(); - if (!pD3DDev) { // release all resources m_pSubPicQueue = nullptr; @@ -97,6 +96,7 @@ HRESULT CmadVRAllocatorPresenter::SetDevice(IDirect3DDevice9* pD3DDev) return S_OK; } + const CRenderersSettings& r = GetRenderersSettings(); InitMaxSubtitleTextureSize(r.subPicQueueSettings.nMaxRes, m_ScreenSize); if (m_pAllocator) { @@ -187,6 +187,8 @@ STDMETHODIMP_(void) CmadVRAllocatorPresenter::SetPosition(RECT w, RECT v) if (CComQIPtr pVW = m_pDXR) { pVW->SetWindowPosition(w.left, w.top, w.right - w.left, w.bottom - w.top); } + + SetVideoSize(GetVideoSize(), GetVideoSize(true)); } STDMETHODIMP_(SIZE) CmadVRAllocatorPresenter::GetVideoSize(bool bCorrectAR) const diff --git a/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.h b/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.h index b7290103491..2bbf45e0615 100644 --- a/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.h +++ b/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.h @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -20,11 +20,8 @@ #pragma once -#include "AllocatorCommon.h" -#include "../../../SubPic/SubPicAllocatorPresenterImpl.h" -#include "../../../SubPic/ISubRender.h" - -#include +#include "../SubPic/SubPicAllocatorPresenterImpl.h" +#include "../SubPic/ISubRender.h" namespace DSObjects { @@ -94,7 +91,7 @@ namespace DSObjects // ISubPicAllocatorPresenter STDMETHODIMP CreateRenderer(IUnknown** ppRenderer); STDMETHODIMP_(void) SetPosition(RECT w, RECT v); - STDMETHODIMP_(SIZE) GetVideoSize(bool bCorrectAR) const; + STDMETHODIMP_(SIZE) GetVideoSize(bool bCorrectAR = true) const; STDMETHODIMP_(bool) Paint(bool bAll); STDMETHODIMP GetDIB(BYTE* lpDib, DWORD* size); STDMETHODIMP SetPixelShader(LPCSTR pSrcData, LPCSTR pTarget); diff --git a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp index 1cdedbb203e..0c20030daff 100644 --- a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp +++ b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -27,6 +27,9 @@ #include #include "moreuuids.h" +// Even if we don't use this, it is needed for mvrInterfaces.h +typedef interface IDirect3DDevice9* LPDIRECT3DDEVICE9; +#include // // CBaseVideoFilter diff --git a/src/filters/transform/VSFilter/Copy.cpp b/src/filters/transform/VSFilter/Copy.cpp index 3d9293b0e52..b6c65e0d8f8 100644 --- a/src/filters/transform/VSFilter/Copy.cpp +++ b/src/filters/transform/VSFilter/Copy.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -44,7 +44,7 @@ void BltLineRGB32(DWORD* d, BYTE* sub, int w, const GUID& subtype) for (; db < dbtend; sub += 4, db++) { if (sub[3] < 0xff) { int y = (c2y_yb[sub[0]] + c2y_yg[sub[1]] + c2y_yr[sub[2]] + 0x108000) >> 16; - *db = y; // w/o colors + *db = BYTE(y); // w/o colors } } } else if (subtype == MEDIASUBTYPE_YUY2) { @@ -54,7 +54,7 @@ void BltLineRGB32(DWORD* d, BYTE* sub, int w, const GUID& subtype) for (; ds < dstend; sub += 4, ds++) { if (sub[3] < 0xff) { int y = (c2y_yb[sub[0]] + c2y_yg[sub[1]] + c2y_yr[sub[2]] + 0x108000) >> 16; - *ds = 0x8000 | y; // w/o colors + *ds = WORD(0x8000 | y); // w/o colors } } } else if (subtype == MEDIASUBTYPE_RGB555) { diff --git a/src/filters/transform/VSFilter/DirectVobSub.cpp b/src/filters/transform/VSFilter/DirectVobSub.cpp index e9fb9ead8dd..f8cdc9b1c79 100644 --- a/src/filters/transform/VSFilter/DirectVobSub.cpp +++ b/src/filters/transform/VSFilter/DirectVobSub.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -300,12 +300,12 @@ STDMETHODIMP CDirectVobSub::get_TextSettings(void* lf, int lflen, COLORREF* colo return E_INVALIDARG; } - ((LOGFONT*)lf)->lfCharSet = m_defStyle.charSet; - ((LOGFONT*)lf)->lfItalic = m_defStyle.fItalic; + ((LOGFONT*)lf)->lfCharSet = (BYTE)m_defStyle.charSet; + ((LOGFONT*)lf)->lfItalic = (BYTE)m_defStyle.fItalic; ((LOGFONT*)lf)->lfHeight = (LONG)m_defStyle.fontSize; ((LOGFONT*)lf)->lfWeight = m_defStyle.fontWeight; - ((LOGFONT*)lf)->lfStrikeOut = m_defStyle.fStrikeOut; - ((LOGFONT*)lf)->lfUnderline = m_defStyle.fUnderline; + ((LOGFONT*)lf)->lfStrikeOut = (BYTE)m_defStyle.fStrikeOut; + ((LOGFONT*)lf)->lfUnderline = (BYTE)m_defStyle.fUnderline; } if (color) { diff --git a/src/filters/transform/VSFilter/DirectVobSubFilter.cpp b/src/filters/transform/VSFilter/DirectVobSubFilter.cpp index db2d287acb5..beefbdeac7a 100644 --- a/src/filters/transform/VSFilter/DirectVobSubFilter.cpp +++ b/src/filters/transform/VSFilter/DirectVobSubFilter.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -1622,31 +1622,30 @@ void CDirectVobSubFilter::SetSubtitle(ISubStream* pSubStream) pRTS->SetAlignment(m_fOverridePlacement, m_PlacementXperc, m_PlacementYperc); pRTS->Deinit(); - } else if (clsid == __uuidof(CRLECodedSubtitle)) { - CRLECodedSubtitle* pRHS = (CRLECodedSubtitle*)pSubStream; - - DXVA2_ExtendedFormat extFormat; - extFormat.value = m_cf; - CString yuvMatrix = (extFormat.NominalRange == DXVA2_NominalRange_Normal) ? _T("PC.") : _T("TV."); + } - switch (extFormat.VideoTransferMatrix) { - case DXVA2_VideoTransferMatrix_BT601: - yuvMatrix.Append(_T("601")); - break; - case DXVA2_VideoTransferMatrix_BT709: - yuvMatrix.Append(_T("709")); - break; - case DXVA2_VideoTransferMatrix_SMPTE240M: - yuvMatrix.Append(_T("240M")); - break; - default: - yuvMatrix = _T("None"); - break; - } + DXVA2_ExtendedFormat extFormat; + extFormat.value = m_cf; + CString yuvMatrix = (extFormat.NominalRange == DXVA2_NominalRange_Normal) ? _T("PC.") : _T("TV."); - // Actually VSFilter expect full range (A)RGB frames to work with. - pRHS->SetSourceTargetInfo(yuvMatrix, 0, 255); + switch (extFormat.VideoTransferMatrix) { + case DXVA2_VideoTransferMatrix_BT601: + yuvMatrix.Append(_T("601")); + break; + case DXVA2_VideoTransferMatrix_BT709: + yuvMatrix.Append(_T("709")); + break; + case DXVA2_VideoTransferMatrix_SMPTE240M: + yuvMatrix.Append(_T("240M")); + break; + default: + yuvMatrix = _T("None"); + break; } + + yuvMatrix.Append(_T(".VSFilter")); + // Actually VSFilter expect full range (A)RGB frames to work with. + pSubStream->SetSourceTargetInfo(yuvMatrix, 0, 255); } int i = 0; diff --git a/src/filters/transform/VSFilter/StyleEditorDialog.cpp b/src/filters/transform/VSFilter/StyleEditorDialog.cpp index 806e6cff51d..3e4e4773429 100644 --- a/src/filters/transform/VSFilter/StyleEditorDialog.cpp +++ b/src/filters/transform/VSFilter/StyleEditorDialog.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -193,7 +193,8 @@ void CStyleEditorDialog::OnOK() m_stss.marginRect = m_margin; for (size_t i = 0; i < m_alpha.size(); i++) { - m_stss.alpha[i] = BYTE_MAX - m_alpha[i]; + ASSERT(m_alpha[i] <= BYTE_MAX); + m_stss.alpha[i] = BYTE_MAX - BYTE(m_alpha[i]); } __super::OnOK(); diff --git a/src/filters/transform/VSFilter/installer/build_installer.bat b/src/filters/transform/VSFilter/installer/build_installer.bat index 13314751a96..c397f3ec810 100755 --- a/src/filters/transform/VSFilter/installer/build_installer.bat +++ b/src/filters/transform/VSFilter/installer/build_installer.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2012-2013 see Authors.txt +REM (C) 2012-2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -18,17 +18,14 @@ REM along with this program. If not, see . SETLOCAL -PUSHD %~dp0 - -REM You can set here the Inno Setup path if for example you have Inno Setup Unicode -REM installed and you want to use the ANSI Inno Setup which is in another location -IF NOT DEFINED InnoSetupPath SET "InnoSetupPath=H:\progs\thirdparty\isetup" +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" SET ROOT_DIR=..\..\..\..\.. SET "BIN_DIR=%ROOT_DIR%\bin" -CALL :SubDetectInnoSetup -IF EXIST "%~dp0%ROOT_DIR%\signinfo.txt" ( +CALL "%FILE_DIR%%ROOT_DIR%\common.bat" :SubDetectInnoSetup +IF EXIST "%FILE_DIR%%ROOT_DIR%\signinfo.txt" ( CALL :SubSign VSFilter.dll x86 CALL :SubSign VSFilter.dll x64 ) @@ -48,7 +45,7 @@ REM %1 is name of the file to sign REM %2 is the platform PUSHD "%BIN_DIR%\Filters_%~2\" -CALL "%~dp0%ROOT_DIR%\contrib\sign.bat" "%1" || (ECHO Problem signing %1 & GOTO Break) +CALL "%FILE_DIR%%ROOT_DIR%\contrib\sign.bat" "%1" || (ECHO Problem signing %1 & GOTO Break) ECHO %1 signed successfully. :Break @@ -60,7 +57,7 @@ EXIT /B IF %ERRORLEVEL% NEQ 0 GOTO EndWithError ECHO. TITLE Building VSFilter installer... -"%InnoSetupPath%\ISCC.exe" /SMySignTool="cmd /c "%~dp0%ROOT_DIR%\contrib\sign.bat" $f" /Q^ +"%InnoSetupPath%\ISCC.exe" /SMySignTool="cmd /c "%FILE_DIR%%ROOT_DIR%\contrib\sign.bat" $f" /Q^ "vsfilter_setup.iss" /D%~1 IF %ERRORLEVEL% NEQ 0 GOTO EndWithError IF /I "%~1%" == "x64Build" ( @@ -71,34 +68,6 @@ IF /I "%~1%" == "x64Build" ( EXIT /B -:SubDetectInnoSetup -REM Detect if we are running on 64bit Windows and use Wow6432Node since Inno Setup is -REM a 32-bit application, and set the registry key of Inno Setup accordingly -IF DEFINED PROGRAMFILES(x86) ( - SET "U_=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" -) ELSE ( - SET "U_=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -) - -IF DEFINED InnoSetupPath IF NOT EXIST "%InnoSetupPath%" ( - ECHO "%InnoSetupPath%" wasn't found on this machine! I will try to detect Inno Setup's path from the registry... -) - -IF NOT EXIST "%InnoSetupPath%" ( - FOR /F "delims=" %%a IN ( - 'REG QUERY "%U_%\Inno Setup 5_is1" /v "Inno Setup: App Path"2^>Nul^|FIND "REG_SZ"') DO ( - SET "InnoSetupPath=%%a" & CALL :SubInnoSetupPath %%InnoSetupPath:*Z=%%) -) - -IF NOT EXIST "%InnoSetupPath%" ECHO Inno Setup wasn't found! & GOTO EndWithError -EXIT /B - - -:SubInnoSetupPath -SET "InnoSetupPath=%*" -EXIT /B - - :EndWithError Title Building VSFilter installer [ERROR] COLOR 0C diff --git a/src/mpc-hc/AboutDlg.cpp b/src/mpc-hc/AboutDlg.cpp index d394a5073ed..e6bb01994b9 100644 --- a/src/mpc-hc/AboutDlg.cpp +++ b/src/mpc-hc/AboutDlg.cpp @@ -1,5 +1,5 @@ /* - * (C) 2012-2014 see Authors.txt + * (C) 2012-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -31,7 +31,6 @@ #include "PathUtils.h" #include -extern "C" char g_Gcc_Compiler[]; ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About @@ -216,7 +215,7 @@ void CAboutDlg::OnCopyToClipboard() info += _T(" LAV Splitter: ") + CFGFilterLAV::GetVersion(CFGFilterLAV::SPLITTER) + _T("\r\n"); info += _T(" LAV Video: ") + CFGFilterLAV::GetVersion(CFGFilterLAV::VIDEO_DECODER) + _T("\r\n"); info += _T(" LAV Audio: ") + CFGFilterLAV::GetVersion(CFGFilterLAV::AUDIO_DECODER) + _T("\r\n"); - info += _T(" FFmpeg compiler: ") + CString(g_Gcc_Compiler) + _T("\r\n\r\n"); + info += _T(" FFmpeg compiler: ") + VersionInfo::GetGCCVersion() + _T("\r\n\r\n"); #endif info += _T("Operating system:\r\n"); info += _T(" Name: ") + m_OSName + _T("\r\n"); diff --git a/src/mpc-hc/AppSettings.cpp b/src/mpc-hc/AppSettings.cpp index 381bd1dec58..75107c56543 100644 --- a/src/mpc-hc/AppSettings.cpp +++ b/src/mpc-hc/AppSettings.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -24,7 +24,8 @@ #include "AppSettings.h" #include "FGFilter.h" #include "FileAssoc.h" -#include "MiniDump.h" +#include "CrashReporter.h" +#include "CrashReporterDialog.h" #include "VersionInfo.h" #include "SysVersion.h" #include "WinAPIUtils.h" @@ -32,6 +33,7 @@ #include "Translations.h" #include "UpdateChecker.h" #include "moreuuids.h" +#include #pragma warning(push) @@ -53,6 +55,7 @@ CAppSettings::CAppSettings() , nOSDSize(0) , nSpeakerChannels(2) , fRemainingTime(false) + , bHighPrecisionTimer(false) , nUpdaterAutoCheck(-1) , nUpdaterDelay(7) , fBDAUseOffset(false) @@ -198,6 +201,7 @@ CAppSettings::CAppSettings() , nJpegQuality(90) , bEnableCoverArt(true) , nCoverArtSizeLimit(600) + , bEnableLogging(false) { // Internal source filter #if INTERNAL_SOURCEFILTER_CDDA @@ -212,8 +216,11 @@ CAppSettings::CAppSettings() #if INTERNAL_SOURCEFILTER_FLIC SrcFiltersKeys[SRC_FLIC] = FilterKey(_T("SRC_FLIC"), true); #endif -#if INTERNAL_SOURCEFILTER_DTSAC3 - SrcFiltersKeys[SRC_DTSAC3] = FilterKey(_T("SRC_DTSAC3"), true); +#if INTERNAL_SOURCEFILTER_AC3 + SrcFiltersKeys[SRC_AC3] = FilterKey(_T("SRC_AC3"), true); +#endif +#if INTERNAL_SOURCEFILTER_DTS + SrcFiltersKeys[SRC_DTS] = FilterKey(_T("SRC_DTS"), true); #endif #if INTERNAL_SOURCEFILTER_MATROSKA SrcFiltersKeys[SRC_MATROSKA] = FilterKey(_T("SRC_MATROSKA"), true); @@ -270,6 +277,9 @@ CAppSettings::CAppSettings() #if INTERNAL_SOURCEFILTER_ASF SrcFiltersKeys[SRC_ASF] = FilterKey(_T("SRC_ASF"), false); #endif +#if INTERNAL_SOURCEFILTER_WTV + SrcFiltersKeys[SRC_WTV] = FilterKey(_T("SRC_WTV"), true); +#endif #if INTERNAL_SOURCEFILTER_FLAC SrcFiltersKeys[SRC_FLAC] = FilterKey(_T("SRC_FLAC"), true); #endif @@ -396,195 +406,194 @@ CAppSettings::CAppSettings() void CAppSettings::CreateCommands() { -#define ADDCMD(cmd) wmcmds.AddTail(wmcmd##cmd) - ADDCMD((ID_FILE_OPENQUICK, 'Q', FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_0)); - ADDCMD((ID_FILE_OPENMEDIA, 'O', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_OPEN_FILE)); - ADDCMD((ID_FILE_OPENDVDBD, 'D', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_OPEN_DVD)); - ADDCMD((ID_FILE_OPENDEVICE, 'V', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_OPEN_DEVICE)); - ADDCMD((ID_FILE_REOPEN, 'E', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_REOPEN)); - ADDCMD((ID_FILE_RECYCLE, 0, FVIRTKEY | FNOINVERT, IDS_FILE_RECYCLE)); - - ADDCMD((ID_FILE_SAVE_COPY, 0, FVIRTKEY | FNOINVERT, IDS_AG_SAVE_COPY)); - ADDCMD((ID_FILE_SAVE_IMAGE, 'I', FVIRTKEY | FALT | FNOINVERT, IDS_AG_SAVE_IMAGE)); - ADDCMD((ID_FILE_SAVE_IMAGE_AUTO, VK_F5, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_6)); - ADDCMD((ID_FILE_SAVE_THUMBNAILS, 0, FVIRTKEY | FNOINVERT, IDS_FILE_SAVE_THUMBNAILS)); - - ADDCMD((ID_FILE_LOAD_SUBTITLE, 'L', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_LOAD_SUBTITLE)); - ADDCMD((ID_FILE_SAVE_SUBTITLE, 'S', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_SAVE_SUBTITLE)); - ADDCMD((ID_FILE_CLOSE_AND_RESTORE, 'C', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_CLOSE)); - ADDCMD((ID_FILE_PROPERTIES, VK_F10, FVIRTKEY | FSHIFT | FNOINVERT, IDS_AG_PROPERTIES)); - ADDCMD((ID_FILE_EXIT, 'X', FVIRTKEY | FALT | FNOINVERT, IDS_AG_EXIT)); - ADDCMD((ID_PLAY_PLAYPAUSE, VK_SPACE, FVIRTKEY | FNOINVERT, IDS_AG_PLAYPAUSE, APPCOMMAND_MEDIA_PLAY_PAUSE, wmcmd::LUP, wmcmd::LUP)); - ADDCMD((ID_PLAY_PLAY, 0, FVIRTKEY | FNOINVERT, IDS_AG_PLAY, APPCOMMAND_MEDIA_PLAY)); - ADDCMD((ID_PLAY_PAUSE, 0, FVIRTKEY | FNOINVERT, IDS_AG_PAUSE, APPCOMMAND_MEDIA_PAUSE)); - ADDCMD((ID_PLAY_STOP, VK_OEM_PERIOD, FVIRTKEY | FNOINVERT, IDS_AG_STOP, APPCOMMAND_MEDIA_STOP)); - ADDCMD((ID_PLAY_FRAMESTEP, VK_RIGHT, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_FRAMESTEP)); - ADDCMD((ID_PLAY_FRAMESTEPCANCEL, VK_LEFT, FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_16)); - ADDCMD((ID_NAVIGATE_GOTO, 'G', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_GO_TO)); - ADDCMD((ID_PLAY_INCRATE, VK_UP, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_INCREASE_RATE)); - ADDCMD((ID_PLAY_DECRATE, VK_DOWN, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_DECREASE_RATE)); - ADDCMD((ID_PLAY_RESETRATE, 'R', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_RESET_RATE)); - ADDCMD((ID_PLAY_INCAUDDELAY, VK_ADD, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_21)); - ADDCMD((ID_PLAY_DECAUDDELAY, VK_SUBTRACT, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_22)); - ADDCMD((ID_PLAY_SEEKFORWARDSMALL, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_23)); - ADDCMD((ID_PLAY_SEEKBACKWARDSMALL, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_24)); - ADDCMD((ID_PLAY_SEEKFORWARDMED, VK_RIGHT, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_25)); - ADDCMD((ID_PLAY_SEEKBACKWARDMED, VK_LEFT, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_26)); - ADDCMD((ID_PLAY_SEEKFORWARDLARGE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_27)); - ADDCMD((ID_PLAY_SEEKBACKWARDLARGE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_28)); - ADDCMD((ID_PLAY_SEEKKEYFORWARD, VK_RIGHT, FVIRTKEY | FSHIFT | FNOINVERT, IDS_MPLAYERC_29)); - ADDCMD((ID_PLAY_SEEKKEYBACKWARD, VK_LEFT, FVIRTKEY | FSHIFT | FNOINVERT, IDS_MPLAYERC_30)); - ADDCMD((ID_PLAY_SEEKSET, VK_HOME, FVIRTKEY | FNOINVERT, IDS_AG_SEEKSET)); - ADDCMD((ID_NAVIGATE_SKIPFORWARD, VK_NEXT, FVIRTKEY | FNOINVERT, IDS_AG_NEXT, APPCOMMAND_MEDIA_NEXTTRACK, wmcmd::X2DOWN, wmcmd::X2DOWN)); - ADDCMD((ID_NAVIGATE_SKIPBACK, VK_PRIOR, FVIRTKEY | FNOINVERT, IDS_AG_PREVIOUS, APPCOMMAND_MEDIA_PREVIOUSTRACK, wmcmd::X1DOWN, wmcmd::X1DOWN)); - ADDCMD((ID_NAVIGATE_SKIPFORWARDFILE, VK_NEXT, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_NEXT_FILE)); - ADDCMD((ID_NAVIGATE_SKIPBACKFILE, VK_PRIOR, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PREVIOUS_FILE)); - ADDCMD((ID_NAVIGATE_TUNERSCAN, 'T', FVIRTKEY | FSHIFT | FNOINVERT, IDS_NAVIGATE_TUNERSCAN)); - ADDCMD((ID_FAVORITES_QUICKADDFAVORITE, 'Q', FVIRTKEY | FSHIFT | FNOINVERT, IDS_FAVORITES_QUICKADDFAVORITE)); - ADDCMD((ID_VIEW_CAPTIONMENU, '0', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_CAPTION)); - ADDCMD((ID_VIEW_SEEKER, '1', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_SEEKER)); - ADDCMD((ID_VIEW_CONTROLS, '2', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_CONTROLS)); - ADDCMD((ID_VIEW_INFORMATION, '3', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_INFO)); - ADDCMD((ID_VIEW_STATISTICS, '4', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_STATS)); - ADDCMD((ID_VIEW_STATUS, '5', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_STATUS)); - ADDCMD((ID_VIEW_SUBRESYNC, '6', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_SUBRESYNC)); - ADDCMD((ID_VIEW_PLAYLIST, '7', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_PLAYLIST)); - ADDCMD((ID_VIEW_CAPTURE, '8', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_CAPTURE)); - ADDCMD((ID_VIEW_NAVIGATION, '9', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_NAVIGATION)); - ADDCMD((ID_VIEW_DEBUGSHADERS, 0, FVIRTKEY | FNOINVERT, IDS_AG_TOGGLE_DEBUGSHADERS)); - ADDCMD((ID_VIEW_PRESETS_MINIMAL, '1', FVIRTKEY | FNOINVERT, IDS_AG_VIEW_MINIMAL)); - ADDCMD((ID_VIEW_PRESETS_COMPACT, '2', FVIRTKEY | FNOINVERT, IDS_AG_VIEW_COMPACT)); - ADDCMD((ID_VIEW_PRESETS_NORMAL, '3', FVIRTKEY | FNOINVERT, IDS_AG_VIEW_NORMAL)); - ADDCMD((ID_VIEW_FULLSCREEN, VK_RETURN, FVIRTKEY | FALT | FNOINVERT, IDS_AG_FULLSCREEN, 0, wmcmd::LDBLCLK, wmcmd::LDBLCLK)); - ADDCMD((ID_VIEW_FULLSCREEN_SECONDARY, VK_F11, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_39)); - ADDCMD((ID_VIEW_ZOOM_50, '1', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_50)); - ADDCMD((ID_VIEW_ZOOM_100, '2', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_100)); - ADDCMD((ID_VIEW_ZOOM_200, '3', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_200)); - ADDCMD((ID_VIEW_ZOOM_AUTOFIT, '4', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_AUTO_FIT)); - ADDCMD((ID_VIEW_ZOOM_AUTOFIT_LARGER, '5', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_AUTO_FIT_LARGER)); - ADDCMD((ID_ASPECTRATIO_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_AG_NEXT_AR_PRESET)); - ADDCMD((ID_VIEW_VF_HALF, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_HALF)); - ADDCMD((ID_VIEW_VF_NORMAL, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_NORMAL)); - ADDCMD((ID_VIEW_VF_DOUBLE, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_DOUBLE)); - ADDCMD((ID_VIEW_VF_STRETCH, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_STRETCH)); - ADDCMD((ID_VIEW_VF_FROMINSIDE, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_INSIDE)); - ADDCMD((ID_VIEW_VF_ZOOM1, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_ZOOM1)); - ADDCMD((ID_VIEW_VF_ZOOM2, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_ZOOM2)); - ADDCMD((ID_VIEW_VF_FROMOUTSIDE, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_OUTSIDE)); - ADDCMD((ID_VIEW_VF_SWITCHZOOM, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_SWITCHZOOM)); - ADDCMD((ID_ONTOP_ALWAYS, 'A', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_ALWAYS_ON_TOP)); - ADDCMD((ID_VIEW_RESET, VK_NUMPAD5, FVIRTKEY | FNOINVERT, IDS_AG_PNS_RESET)); - ADDCMD((ID_VIEW_INCSIZE, VK_NUMPAD9, FVIRTKEY | FNOINVERT, IDS_AG_PNS_INC_SIZE)); - ADDCMD((ID_VIEW_INCWIDTH, VK_NUMPAD6, FVIRTKEY | FNOINVERT, IDS_AG_PNS_INC_WIDTH)); - ADDCMD((ID_VIEW_INCHEIGHT, VK_NUMPAD8, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_47)); - ADDCMD((ID_VIEW_DECSIZE, VK_NUMPAD1, FVIRTKEY | FNOINVERT, IDS_AG_PNS_DEC_SIZE)); - ADDCMD((ID_VIEW_DECWIDTH, VK_NUMPAD4, FVIRTKEY | FNOINVERT, IDS_AG_PNS_DEC_WIDTH)); - ADDCMD((ID_VIEW_DECHEIGHT, VK_NUMPAD2, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_50)); - ADDCMD((ID_PANSCAN_CENTER, VK_NUMPAD5, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_CENTER)); - ADDCMD((ID_PANSCAN_MOVELEFT, VK_NUMPAD4, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_LEFT)); - ADDCMD((ID_PANSCAN_MOVERIGHT, VK_NUMPAD6, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_RIGHT)); - ADDCMD((ID_PANSCAN_MOVEUP, VK_NUMPAD8, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_UP)); - ADDCMD((ID_PANSCAN_MOVEDOWN, VK_NUMPAD2, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_DOWN)); - ADDCMD((ID_PANSCAN_MOVEUPLEFT, VK_NUMPAD7, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_UPLEFT)); - ADDCMD((ID_PANSCAN_MOVEUPRIGHT, VK_NUMPAD9, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_UPRIGHT)); - ADDCMD((ID_PANSCAN_MOVEDOWNLEFT, VK_NUMPAD1, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_DOWNLEFT)); - ADDCMD((ID_PANSCAN_MOVEDOWNRIGHT, VK_NUMPAD3, FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_59)); - ADDCMD((ID_PANSCAN_ROTATEXP, VK_NUMPAD8, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEX_P)); - ADDCMD((ID_PANSCAN_ROTATEXM, VK_NUMPAD2, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEX_M)); - ADDCMD((ID_PANSCAN_ROTATEYP, VK_NUMPAD4, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEY_P)); - ADDCMD((ID_PANSCAN_ROTATEYM, VK_NUMPAD6, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEY_M)); - ADDCMD((ID_PANSCAN_ROTATEZP, VK_NUMPAD1, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEZ_P)); - ADDCMD((ID_PANSCAN_ROTATEZM, VK_NUMPAD3, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEZ_M)); - ADDCMD((ID_VOLUME_UP, VK_UP, FVIRTKEY | FNOINVERT, IDS_AG_VOLUME_UP, 0, wmcmd::WUP, wmcmd::WUP)); - ADDCMD((ID_VOLUME_DOWN, VK_DOWN, FVIRTKEY | FNOINVERT, IDS_AG_VOLUME_DOWN, 0, wmcmd::WDOWN, wmcmd::WDOWN)); - ADDCMD((ID_VOLUME_MUTE, 'M', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_VOLUME_MUTE, 0)); - ADDCMD((ID_VOLUME_BOOST_INC, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_INC)); - ADDCMD((ID_VOLUME_BOOST_DEC, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_DEC)); - ADDCMD((ID_VOLUME_BOOST_MIN, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_MIN)); - ADDCMD((ID_VOLUME_BOOST_MAX, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_MAX)); - ADDCMD((ID_CUSTOM_CHANNEL_MAPPING, 0, FVIRTKEY | FNOINVERT, IDS_CUSTOM_CHANNEL_MAPPING)); - ADDCMD((ID_NORMALIZE, 0, FVIRTKEY | FNOINVERT, IDS_NORMALIZE)); - ADDCMD((ID_REGAIN_VOLUME, 0, FVIRTKEY | FNOINVERT, IDS_REGAIN_VOLUME)); - ADDCMD((ID_COLOR_BRIGHTNESS_INC, 0, FVIRTKEY | FNOINVERT, IDS_BRIGHTNESS_INC)); - ADDCMD((ID_COLOR_BRIGHTNESS_DEC, 0, FVIRTKEY | FNOINVERT, IDS_BRIGHTNESS_DEC)); - ADDCMD((ID_COLOR_CONTRAST_INC, 0, FVIRTKEY | FNOINVERT, IDS_CONTRAST_INC)); - ADDCMD((ID_COLOR_CONTRAST_DEC, 0, FVIRTKEY | FNOINVERT, IDS_CONTRAST_DEC)); - ADDCMD((ID_COLOR_HUE_INC, 0, FVIRTKEY | FNOINVERT, IDS_HUE_INC)); - ADDCMD((ID_COLOR_HUE_DEC, 0, FVIRTKEY | FNOINVERT, IDS_HUE_DEC)); - ADDCMD((ID_COLOR_SATURATION_INC, 0, FVIRTKEY | FNOINVERT, IDS_SATURATION_INC)); - ADDCMD((ID_COLOR_SATURATION_DEC, 0, FVIRTKEY | FNOINVERT, IDS_SATURATION_DEC)); - ADDCMD((ID_COLOR_RESET, 0, FVIRTKEY | FNOINVERT, IDS_RESET_COLOR)); - ADDCMD((ID_NAVIGATE_TITLEMENU, 'T', FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_63)); - ADDCMD((ID_NAVIGATE_ROOTMENU, 'R', FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_ROOT_MENU)); - ADDCMD((ID_NAVIGATE_SUBPICTUREMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_65)); - ADDCMD((ID_NAVIGATE_AUDIOMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_66)); - ADDCMD((ID_NAVIGATE_ANGLEMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_67)); - ADDCMD((ID_NAVIGATE_CHAPTERMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_68)); - ADDCMD((ID_NAVIGATE_MENU_LEFT, VK_LEFT, FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_MENU_LEFT)); - ADDCMD((ID_NAVIGATE_MENU_RIGHT, VK_RIGHT, FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_70)); - ADDCMD((ID_NAVIGATE_MENU_UP, VK_UP, FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_MENU_UP)); - ADDCMD((ID_NAVIGATE_MENU_DOWN, VK_DOWN, FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_MENU_DOWN)); - ADDCMD((ID_NAVIGATE_MENU_ACTIVATE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_73)); - ADDCMD((ID_NAVIGATE_MENU_BACK, 0, FVIRTKEY | FNOINVERT, IDS_AG_DVD_MENU_BACK)); - ADDCMD((ID_NAVIGATE_MENU_LEAVE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_75)); - ADDCMD((ID_BOSS, 'B', FVIRTKEY | FNOINVERT, IDS_AG_BOSS_KEY)); - ADDCMD((ID_MENU_PLAYER_SHORT, VK_APPS, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_77, 0, wmcmd::RUP, wmcmd::RUP)); - ADDCMD((ID_MENU_PLAYER_LONG, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_78)); - ADDCMD((ID_MENU_FILTERS, 0, FVIRTKEY | FNOINVERT, IDS_AG_FILTERS_MENU)); - ADDCMD((ID_VIEW_OPTIONS, 'O', FVIRTKEY | FNOINVERT, IDS_AG_OPTIONS)); - ADDCMD((ID_STREAM_AUDIO_NEXT, 'A', FVIRTKEY | FNOINVERT, IDS_AG_NEXT_AUDIO)); - ADDCMD((ID_STREAM_AUDIO_PREV, 'A', FVIRTKEY | FSHIFT | FNOINVERT, IDS_AG_PREV_AUDIO)); - ADDCMD((ID_STREAM_SUB_NEXT, 'S', FVIRTKEY | FNOINVERT, IDS_AG_NEXT_SUBTITLE)); - ADDCMD((ID_STREAM_SUB_PREV, 'S', FVIRTKEY | FSHIFT | FNOINVERT, IDS_AG_PREV_SUBTITLE)); - ADDCMD((ID_STREAM_SUB_ONOFF, 'W', FVIRTKEY | FNOINVERT, IDS_MPLAYERC_85)); - ADDCMD((ID_SUBTITLES_SUBITEM_START + 2, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_86)); - ADDCMD((ID_FILE_ISDB_DOWNLOAD, 'D', FVIRTKEY | FNOINVERT, IDS_DOWNLOAD_SUBS)); - ADDCMD((ID_OGM_AUDIO_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_87)); - ADDCMD((ID_OGM_AUDIO_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_88)); - ADDCMD((ID_OGM_SUB_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_89)); - ADDCMD((ID_OGM_SUB_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_90)); - ADDCMD((ID_DVD_ANGLE_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_91)); - ADDCMD((ID_DVD_ANGLE_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_92)); - ADDCMD((ID_DVD_AUDIO_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_93)); - ADDCMD((ID_DVD_AUDIO_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_94)); - ADDCMD((ID_DVD_SUB_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_95)); - ADDCMD((ID_DVD_SUB_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_96)); - ADDCMD((ID_DVD_SUB_ONOFF, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_97)); - ADDCMD((ID_VIEW_TEARING_TEST, 'T', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TEARING_TEST)); - ADDCMD((ID_VIEW_REMAINING_TIME, 'I', FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_98)); - ADDCMD((ID_SHADERS_PRESET_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_AG_SHADERS_PRESET_NEXT)); - ADDCMD((ID_SHADERS_PRESET_PREV, 0, FVIRTKEY | FNOINVERT, IDS_AG_SHADERS_PRESET_PREV)); - ADDCMD((ID_D3DFULLSCREEN_TOGGLE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_99)); - ADDCMD((ID_GOTO_PREV_SUB, 'Y', FVIRTKEY | FNOINVERT, IDS_MPLAYERC_100)); - ADDCMD((ID_GOTO_NEXT_SUB, 'U', FVIRTKEY | FNOINVERT, IDS_MPLAYERC_101)); - ADDCMD((ID_SHIFT_SUB_DOWN, VK_NEXT, FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_102)); - ADDCMD((ID_SHIFT_SUB_UP, VK_PRIOR, FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_103)); - ADDCMD((ID_VIEW_DISPLAYSTATS, 'J', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_DISPLAY_STATS)); - ADDCMD((ID_VIEW_RESETSTATS, 'R', FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_RESET_STATS)); - ADDCMD((ID_VIEW_VSYNC, 'V', FVIRTKEY | FNOINVERT, IDS_AG_VSYNC)); - ADDCMD((ID_VIEW_ENABLEFRAMETIMECORRECTION, 0, FVIRTKEY | FNOINVERT, IDS_AG_ENABLEFRAMETIMECORRECTION)); - ADDCMD((ID_VIEW_VSYNCACCURATE, 'V', FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_VSYNCACCURATE)); - ADDCMD((ID_VIEW_VSYNCOFFSET_DECREASE, VK_UP, FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_VSYNCOFFSET_DECREASE)); - ADDCMD((ID_VIEW_VSYNCOFFSET_INCREASE, VK_DOWN, FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_VSYNCOFFSET_INCREASE)); - ADDCMD((ID_SUB_DELAY_DOWN, VK_F1, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_104)); - ADDCMD((ID_SUB_DELAY_UP, VK_F2, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_105)); - - ADDCMD((ID_AFTERPLAYBACK_CLOSE, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_CLOSE)); - ADDCMD((ID_AFTERPLAYBACK_STANDBY, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_STANDBY)); - ADDCMD((ID_AFTERPLAYBACK_HIBERNATE, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_HIBERNATE)); - ADDCMD((ID_AFTERPLAYBACK_SHUTDOWN, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_SHUTDOWN)); - ADDCMD((ID_AFTERPLAYBACK_LOGOFF, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_LOGOFF)); - ADDCMD((ID_AFTERPLAYBACK_LOCK, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_LOCK)); - ADDCMD((ID_AFTERPLAYBACK_MONITOROFF, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_MONITOROFF)); - ADDCMD((ID_AFTERPLAYBACK_PLAYNEXT, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_PLAYNEXT)); - - ADDCMD((ID_VIEW_EDITLISTEDITOR, 0, FVIRTKEY | FNOINVERT, IDS_AG_TOGGLE_EDITLISTEDITOR)); - ADDCMD((ID_EDL_IN, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_IN)); - ADDCMD((ID_EDL_OUT, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_OUT)); - ADDCMD((ID_EDL_NEWCLIP, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_NEW_CLIP)); - ADDCMD((ID_EDL_SAVE, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_SAVE)); - -#undef ADDCMD + wmcmds.AddTail({ID_FILE_OPENQUICK, 'Q', FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_0}); + wmcmds.AddTail({ID_FILE_OPENMEDIA, 'O', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_OPEN_FILE}); + wmcmds.AddTail({ID_FILE_OPENDVDBD, 'D', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_OPEN_DVD}); + wmcmds.AddTail({ID_FILE_OPENDEVICE, 'V', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_OPEN_DEVICE}); + wmcmds.AddTail({ID_FILE_REOPEN, 'E', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_REOPEN}); + wmcmds.AddTail({ID_FILE_RECYCLE, 0, FVIRTKEY | FNOINVERT, IDS_FILE_RECYCLE}); + + wmcmds.AddTail({ID_FILE_SAVE_COPY, 0, FVIRTKEY | FNOINVERT, IDS_AG_SAVE_COPY}); + wmcmds.AddTail({ID_FILE_SAVE_IMAGE, 'I', FVIRTKEY | FALT | FNOINVERT, IDS_AG_SAVE_IMAGE}); + wmcmds.AddTail({ID_FILE_SAVE_IMAGE_AUTO, VK_F5, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_6}); + wmcmds.AddTail({ID_FILE_SAVE_THUMBNAILS, 0, FVIRTKEY | FNOINVERT, IDS_FILE_SAVE_THUMBNAILS}); + + wmcmds.AddTail({ID_FILE_LOAD_SUBTITLE, 'L', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_LOAD_SUBTITLE}); + wmcmds.AddTail({ID_FILE_SAVE_SUBTITLE, 'S', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_SAVE_SUBTITLE}); + wmcmds.AddTail({ID_FILE_CLOSE_AND_RESTORE, 'C', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_CLOSE}); + wmcmds.AddTail({ID_FILE_PROPERTIES, VK_F10, FVIRTKEY | FSHIFT | FNOINVERT, IDS_AG_PROPERTIES}); + wmcmds.AddTail({ID_FILE_EXIT, 'X', FVIRTKEY | FALT | FNOINVERT, IDS_AG_EXIT}); + wmcmds.AddTail({ID_PLAY_PLAYPAUSE, VK_SPACE, FVIRTKEY | FNOINVERT, IDS_AG_PLAYPAUSE, APPCOMMAND_MEDIA_PLAY_PAUSE, wmcmd::LUP, wmcmd::LUP}); + wmcmds.AddTail({ID_PLAY_PLAY, 0, FVIRTKEY | FNOINVERT, IDS_AG_PLAY, APPCOMMAND_MEDIA_PLAY}); + wmcmds.AddTail({ID_PLAY_PAUSE, 0, FVIRTKEY | FNOINVERT, IDS_AG_PAUSE, APPCOMMAND_MEDIA_PAUSE}); + wmcmds.AddTail({ID_PLAY_STOP, VK_OEM_PERIOD, FVIRTKEY | FNOINVERT, IDS_AG_STOP, APPCOMMAND_MEDIA_STOP}); + wmcmds.AddTail({ID_PLAY_FRAMESTEP, VK_RIGHT, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_FRAMESTEP}); + wmcmds.AddTail({ID_PLAY_FRAMESTEPCANCEL, VK_LEFT, FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_16}); + wmcmds.AddTail({ID_NAVIGATE_GOTO, 'G', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_GO_TO}); + wmcmds.AddTail({ID_PLAY_INCRATE, VK_UP, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_INCREASE_RATE}); + wmcmds.AddTail({ID_PLAY_DECRATE, VK_DOWN, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_DECREASE_RATE}); + wmcmds.AddTail({ID_PLAY_RESETRATE, 'R', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_RESET_RATE}); + wmcmds.AddTail({ID_PLAY_INCAUDDELAY, VK_ADD, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_21}); + wmcmds.AddTail({ID_PLAY_DECAUDDELAY, VK_SUBTRACT, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_22}); + wmcmds.AddTail({ID_PLAY_SEEKFORWARDSMALL, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_23}); + wmcmds.AddTail({ID_PLAY_SEEKBACKWARDSMALL, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_24}); + wmcmds.AddTail({ID_PLAY_SEEKFORWARDMED, VK_RIGHT, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_25}); + wmcmds.AddTail({ID_PLAY_SEEKBACKWARDMED, VK_LEFT, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_26}); + wmcmds.AddTail({ID_PLAY_SEEKFORWARDLARGE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_27}); + wmcmds.AddTail({ID_PLAY_SEEKBACKWARDLARGE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_28}); + wmcmds.AddTail({ID_PLAY_SEEKKEYFORWARD, VK_RIGHT, FVIRTKEY | FSHIFT | FNOINVERT, IDS_MPLAYERC_29}); + wmcmds.AddTail({ID_PLAY_SEEKKEYBACKWARD, VK_LEFT, FVIRTKEY | FSHIFT | FNOINVERT, IDS_MPLAYERC_30}); + wmcmds.AddTail({ID_PLAY_SEEKSET, VK_HOME, FVIRTKEY | FNOINVERT, IDS_AG_SEEKSET}); + wmcmds.AddTail({ID_NAVIGATE_SKIPFORWARD, VK_NEXT, FVIRTKEY | FNOINVERT, IDS_AG_NEXT, APPCOMMAND_MEDIA_NEXTTRACK, wmcmd::X2DOWN, wmcmd::X2DOWN}); + wmcmds.AddTail({ID_NAVIGATE_SKIPBACK, VK_PRIOR, FVIRTKEY | FNOINVERT, IDS_AG_PREVIOUS, APPCOMMAND_MEDIA_PREVIOUSTRACK, wmcmd::X1DOWN, wmcmd::X1DOWN}); + wmcmds.AddTail({ID_NAVIGATE_SKIPFORWARDFILE, VK_NEXT, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_NEXT_FILE}); + wmcmds.AddTail({ID_NAVIGATE_SKIPBACKFILE, VK_PRIOR, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PREVIOUS_FILE}); + wmcmds.AddTail({ID_NAVIGATE_TUNERSCAN, 'T', FVIRTKEY | FSHIFT | FNOINVERT, IDS_NAVIGATE_TUNERSCAN}); + wmcmds.AddTail({ID_FAVORITES_QUICKADDFAVORITE, 'Q', FVIRTKEY | FSHIFT | FNOINVERT, IDS_FAVORITES_QUICKADDFAVORITE}); + wmcmds.AddTail({ID_VIEW_CAPTIONMENU, '0', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_CAPTION}); + wmcmds.AddTail({ID_VIEW_SEEKER, '1', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_SEEKER}); + wmcmds.AddTail({ID_VIEW_CONTROLS, '2', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_CONTROLS}); + wmcmds.AddTail({ID_VIEW_INFORMATION, '3', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_INFO}); + wmcmds.AddTail({ID_VIEW_STATISTICS, '4', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_STATS}); + wmcmds.AddTail({ID_VIEW_STATUS, '5', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_STATUS}); + wmcmds.AddTail({ID_VIEW_SUBRESYNC, '6', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_SUBRESYNC}); + wmcmds.AddTail({ID_VIEW_PLAYLIST, '7', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_PLAYLIST}); + wmcmds.AddTail({ID_VIEW_CAPTURE, '8', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_CAPTURE}); + wmcmds.AddTail({ID_VIEW_NAVIGATION, '9', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TOGGLE_NAVIGATION}); + wmcmds.AddTail({ID_VIEW_DEBUGSHADERS, 0, FVIRTKEY | FNOINVERT, IDS_AG_TOGGLE_DEBUGSHADERS}); + wmcmds.AddTail({ID_VIEW_PRESETS_MINIMAL, '1', FVIRTKEY | FNOINVERT, IDS_AG_VIEW_MINIMAL}); + wmcmds.AddTail({ID_VIEW_PRESETS_COMPACT, '2', FVIRTKEY | FNOINVERT, IDS_AG_VIEW_COMPACT}); + wmcmds.AddTail({ID_VIEW_PRESETS_NORMAL, '3', FVIRTKEY | FNOINVERT, IDS_AG_VIEW_NORMAL}); + wmcmds.AddTail({ID_VIEW_FULLSCREEN, VK_RETURN, FVIRTKEY | FALT | FNOINVERT, IDS_AG_FULLSCREEN, 0, wmcmd::LDBLCLK, wmcmd::LDBLCLK}); + wmcmds.AddTail({ID_VIEW_FULLSCREEN_SECONDARY, VK_F11, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_39}); + wmcmds.AddTail({ID_VIEW_ZOOM_50, '1', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_50}); + wmcmds.AddTail({ID_VIEW_ZOOM_100, '2', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_100}); + wmcmds.AddTail({ID_VIEW_ZOOM_200, '3', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_200}); + wmcmds.AddTail({ID_VIEW_ZOOM_AUTOFIT, '4', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_AUTO_FIT}); + wmcmds.AddTail({ID_VIEW_ZOOM_AUTOFIT_LARGER, '5', FVIRTKEY | FALT | FNOINVERT, IDS_AG_ZOOM_AUTO_FIT_LARGER}); + wmcmds.AddTail({ID_ASPECTRATIO_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_AG_NEXT_AR_PRESET}); + wmcmds.AddTail({ID_VIEW_VF_HALF, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_HALF}); + wmcmds.AddTail({ID_VIEW_VF_NORMAL, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_NORMAL}); + wmcmds.AddTail({ID_VIEW_VF_DOUBLE, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_DOUBLE}); + wmcmds.AddTail({ID_VIEW_VF_STRETCH, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_STRETCH}); + wmcmds.AddTail({ID_VIEW_VF_FROMINSIDE, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_INSIDE}); + wmcmds.AddTail({ID_VIEW_VF_ZOOM1, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_ZOOM1}); + wmcmds.AddTail({ID_VIEW_VF_ZOOM2, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_ZOOM2}); + wmcmds.AddTail({ID_VIEW_VF_FROMOUTSIDE, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_OUTSIDE}); + wmcmds.AddTail({ID_VIEW_VF_SWITCHZOOM, 0, FVIRTKEY | FNOINVERT, IDS_AG_VIDFRM_SWITCHZOOM}); + wmcmds.AddTail({ID_ONTOP_ALWAYS, 'A', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_ALWAYS_ON_TOP}); + wmcmds.AddTail({ID_VIEW_RESET, VK_NUMPAD5, FVIRTKEY | FNOINVERT, IDS_AG_PNS_RESET}); + wmcmds.AddTail({ID_VIEW_INCSIZE, VK_NUMPAD9, FVIRTKEY | FNOINVERT, IDS_AG_PNS_INC_SIZE}); + wmcmds.AddTail({ID_VIEW_INCWIDTH, VK_NUMPAD6, FVIRTKEY | FNOINVERT, IDS_AG_PNS_INC_WIDTH}); + wmcmds.AddTail({ID_VIEW_INCHEIGHT, VK_NUMPAD8, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_47}); + wmcmds.AddTail({ID_VIEW_DECSIZE, VK_NUMPAD1, FVIRTKEY | FNOINVERT, IDS_AG_PNS_DEC_SIZE}); + wmcmds.AddTail({ID_VIEW_DECWIDTH, VK_NUMPAD4, FVIRTKEY | FNOINVERT, IDS_AG_PNS_DEC_WIDTH}); + wmcmds.AddTail({ID_VIEW_DECHEIGHT, VK_NUMPAD2, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_50}); + wmcmds.AddTail({ID_PANSCAN_CENTER, VK_NUMPAD5, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_CENTER}); + wmcmds.AddTail({ID_PANSCAN_MOVELEFT, VK_NUMPAD4, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_LEFT}); + wmcmds.AddTail({ID_PANSCAN_MOVERIGHT, VK_NUMPAD6, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_RIGHT}); + wmcmds.AddTail({ID_PANSCAN_MOVEUP, VK_NUMPAD8, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_UP}); + wmcmds.AddTail({ID_PANSCAN_MOVEDOWN, VK_NUMPAD2, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_DOWN}); + wmcmds.AddTail({ID_PANSCAN_MOVEUPLEFT, VK_NUMPAD7, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_UPLEFT}); + wmcmds.AddTail({ID_PANSCAN_MOVEUPRIGHT, VK_NUMPAD9, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_UPRIGHT}); + wmcmds.AddTail({ID_PANSCAN_MOVEDOWNLEFT, VK_NUMPAD1, FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_PNS_DOWNLEFT}); + wmcmds.AddTail({ID_PANSCAN_MOVEDOWNRIGHT, VK_NUMPAD3, FVIRTKEY | FCONTROL | FNOINVERT, IDS_MPLAYERC_59}); + wmcmds.AddTail({ID_PANSCAN_ROTATEXP, VK_NUMPAD8, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEX_P}); + wmcmds.AddTail({ID_PANSCAN_ROTATEXM, VK_NUMPAD2, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEX_M}); + wmcmds.AddTail({ID_PANSCAN_ROTATEYP, VK_NUMPAD4, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEY_P}); + wmcmds.AddTail({ID_PANSCAN_ROTATEYM, VK_NUMPAD6, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEY_M}); + wmcmds.AddTail({ID_PANSCAN_ROTATEZP, VK_NUMPAD1, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEZ_P}); + wmcmds.AddTail({ID_PANSCAN_ROTATEZM, VK_NUMPAD3, FVIRTKEY | FALT | FNOINVERT, IDS_AG_PNS_ROTATEZ_M}); + wmcmds.AddTail({ID_VOLUME_UP, VK_UP, FVIRTKEY | FNOINVERT, IDS_AG_VOLUME_UP, 0, wmcmd::WUP, wmcmd::WUP}); + wmcmds.AddTail({ID_VOLUME_DOWN, VK_DOWN, FVIRTKEY | FNOINVERT, IDS_AG_VOLUME_DOWN, 0, wmcmd::WDOWN, wmcmd::WDOWN}); + wmcmds.AddTail({ID_VOLUME_MUTE, 'M', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_VOLUME_MUTE, 0}); + wmcmds.AddTail({ID_VOLUME_BOOST_INC, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_INC}); + wmcmds.AddTail({ID_VOLUME_BOOST_DEC, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_DEC}); + wmcmds.AddTail({ID_VOLUME_BOOST_MIN, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_MIN}); + wmcmds.AddTail({ID_VOLUME_BOOST_MAX, 0, FVIRTKEY | FNOINVERT, IDS_VOLUME_BOOST_MAX}); + wmcmds.AddTail({ID_CUSTOM_CHANNEL_MAPPING, 0, FVIRTKEY | FNOINVERT, IDS_CUSTOM_CHANNEL_MAPPING}); + wmcmds.AddTail({ID_NORMALIZE, 0, FVIRTKEY | FNOINVERT, IDS_NORMALIZE}); + wmcmds.AddTail({ID_REGAIN_VOLUME, 0, FVIRTKEY | FNOINVERT, IDS_REGAIN_VOLUME}); + wmcmds.AddTail({ID_COLOR_BRIGHTNESS_INC, 0, FVIRTKEY | FNOINVERT, IDS_BRIGHTNESS_INC}); + wmcmds.AddTail({ID_COLOR_BRIGHTNESS_DEC, 0, FVIRTKEY | FNOINVERT, IDS_BRIGHTNESS_DEC}); + wmcmds.AddTail({ID_COLOR_CONTRAST_INC, 0, FVIRTKEY | FNOINVERT, IDS_CONTRAST_INC}); + wmcmds.AddTail({ID_COLOR_CONTRAST_DEC, 0, FVIRTKEY | FNOINVERT, IDS_CONTRAST_DEC}); + wmcmds.AddTail({ID_COLOR_HUE_INC, 0, FVIRTKEY | FNOINVERT, IDS_HUE_INC}); + wmcmds.AddTail({ID_COLOR_HUE_DEC, 0, FVIRTKEY | FNOINVERT, IDS_HUE_DEC}); + wmcmds.AddTail({ID_COLOR_SATURATION_INC, 0, FVIRTKEY | FNOINVERT, IDS_SATURATION_INC}); + wmcmds.AddTail({ID_COLOR_SATURATION_DEC, 0, FVIRTKEY | FNOINVERT, IDS_SATURATION_DEC}); + wmcmds.AddTail({ID_COLOR_RESET, 0, FVIRTKEY | FNOINVERT, IDS_RESET_COLOR}); + wmcmds.AddTail({ID_NAVIGATE_TITLEMENU, 'T', FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_63}); + wmcmds.AddTail({ID_NAVIGATE_ROOTMENU, 'R', FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_ROOT_MENU}); + wmcmds.AddTail({ID_NAVIGATE_SUBPICTUREMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_65}); + wmcmds.AddTail({ID_NAVIGATE_AUDIOMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_66}); + wmcmds.AddTail({ID_NAVIGATE_ANGLEMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_67}); + wmcmds.AddTail({ID_NAVIGATE_CHAPTERMENU, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_68}); + wmcmds.AddTail({ID_NAVIGATE_MENU_LEFT, VK_LEFT, FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_MENU_LEFT}); + wmcmds.AddTail({ID_NAVIGATE_MENU_RIGHT, VK_RIGHT, FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_70}); + wmcmds.AddTail({ID_NAVIGATE_MENU_UP, VK_UP, FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_MENU_UP}); + wmcmds.AddTail({ID_NAVIGATE_MENU_DOWN, VK_DOWN, FVIRTKEY | FALT | FNOINVERT, IDS_AG_DVD_MENU_DOWN}); + wmcmds.AddTail({ID_NAVIGATE_MENU_ACTIVATE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_73}); + wmcmds.AddTail({ID_NAVIGATE_MENU_BACK, 0, FVIRTKEY | FNOINVERT, IDS_AG_DVD_MENU_BACK}); + wmcmds.AddTail({ID_NAVIGATE_MENU_LEAVE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_75}); + wmcmds.AddTail({ID_BOSS, 'B', FVIRTKEY | FNOINVERT, IDS_AG_BOSS_KEY}); + wmcmds.AddTail({ID_MENU_PLAYER_SHORT, VK_APPS, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_77, 0, wmcmd::RUP, wmcmd::RUP}); + wmcmds.AddTail({ID_MENU_PLAYER_LONG, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_78}); + wmcmds.AddTail({ID_MENU_FILTERS, 0, FVIRTKEY | FNOINVERT, IDS_AG_FILTERS_MENU}); + wmcmds.AddTail({ID_VIEW_OPTIONS, 'O', FVIRTKEY | FNOINVERT, IDS_AG_OPTIONS}); + wmcmds.AddTail({ID_STREAM_AUDIO_NEXT, 'A', FVIRTKEY | FNOINVERT, IDS_AG_NEXT_AUDIO}); + wmcmds.AddTail({ID_STREAM_AUDIO_PREV, 'A', FVIRTKEY | FSHIFT | FNOINVERT, IDS_AG_PREV_AUDIO}); + wmcmds.AddTail({ID_STREAM_SUB_NEXT, 'S', FVIRTKEY | FNOINVERT, IDS_AG_NEXT_SUBTITLE}); + wmcmds.AddTail({ID_STREAM_SUB_PREV, 'S', FVIRTKEY | FSHIFT | FNOINVERT, IDS_AG_PREV_SUBTITLE}); + wmcmds.AddTail({ID_STREAM_SUB_ONOFF, 'W', FVIRTKEY | FNOINVERT, IDS_MPLAYERC_85}); + wmcmds.AddTail({ID_SUBTITLES_SUBITEM_START + 2, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_86}); + wmcmds.AddTail({ID_FILE_ISDB_DOWNLOAD, 'D', FVIRTKEY | FNOINVERT, IDS_DOWNLOAD_SUBS}); + wmcmds.AddTail({ID_OGM_AUDIO_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_87}); + wmcmds.AddTail({ID_OGM_AUDIO_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_88}); + wmcmds.AddTail({ID_OGM_SUB_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_89}); + wmcmds.AddTail({ID_OGM_SUB_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_90}); + wmcmds.AddTail({ID_DVD_ANGLE_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_91}); + wmcmds.AddTail({ID_DVD_ANGLE_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_92}); + wmcmds.AddTail({ID_DVD_AUDIO_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_93}); + wmcmds.AddTail({ID_DVD_AUDIO_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_94}); + wmcmds.AddTail({ID_DVD_SUB_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_95}); + wmcmds.AddTail({ID_DVD_SUB_PREV, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_96}); + wmcmds.AddTail({ID_DVD_SUB_ONOFF, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_97}); + wmcmds.AddTail({ID_VIEW_TEARING_TEST, 'T', FVIRTKEY | FCONTROL | FNOINVERT, IDS_AG_TEARING_TEST}); + wmcmds.AddTail({ID_VIEW_OSD_DISPLAY_TIME, 'I', FVIRTKEY | FCONTROL | FNOINVERT, IDS_OSD_DISPLAY_CURRENT_TIME}); + wmcmds.AddTail({ID_VIEW_OSD_SHOW_FILENAME, 'N', FVIRTKEY | FNOINVERT, IDS_OSD_SHOW_FILENAME}); + wmcmds.AddTail({ID_SHADERS_PRESET_NEXT, 0, FVIRTKEY | FNOINVERT, IDS_AG_SHADERS_PRESET_NEXT}); + wmcmds.AddTail({ID_SHADERS_PRESET_PREV, 0, FVIRTKEY | FNOINVERT, IDS_AG_SHADERS_PRESET_PREV}); + wmcmds.AddTail({ID_D3DFULLSCREEN_TOGGLE, 0, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_99}); + wmcmds.AddTail({ID_GOTO_PREV_SUB, 'Y', FVIRTKEY | FNOINVERT, IDS_MPLAYERC_100}); + wmcmds.AddTail({ID_GOTO_NEXT_SUB, 'U', FVIRTKEY | FNOINVERT, IDS_MPLAYERC_101}); + wmcmds.AddTail({ID_SHIFT_SUB_DOWN, VK_NEXT, FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_102}); + wmcmds.AddTail({ID_SHIFT_SUB_UP, VK_PRIOR, FVIRTKEY | FALT | FNOINVERT, IDS_MPLAYERC_103}); + wmcmds.AddTail({ID_VIEW_DISPLAY_RENDERER_STATS, 'J', FVIRTKEY | FCONTROL | FNOINVERT, IDS_OSD_DISPLAY_RENDERER_STATS}); + wmcmds.AddTail({ID_VIEW_RESET_RENDERER_STATS, 'R', FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_OSD_RESET_RENDERER_STATS}); + wmcmds.AddTail({ID_VIEW_VSYNC, 'V', FVIRTKEY | FNOINVERT, IDS_AG_VSYNC}); + wmcmds.AddTail({ID_VIEW_ENABLEFRAMETIMECORRECTION, 0, FVIRTKEY | FNOINVERT, IDS_AG_ENABLEFRAMETIMECORRECTION}); + wmcmds.AddTail({ID_VIEW_VSYNCACCURATE, 'V', FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_VSYNCACCURATE}); + wmcmds.AddTail({ID_VIEW_VSYNCOFFSET_DECREASE, VK_UP, FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_VSYNCOFFSET_DECREASE}); + wmcmds.AddTail({ID_VIEW_VSYNCOFFSET_INCREASE, VK_DOWN, FVIRTKEY | FCONTROL | FALT | FNOINVERT, IDS_AG_VSYNCOFFSET_INCREASE}); + wmcmds.AddTail({ID_SUB_DELAY_DOWN, VK_F1, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_104}); + wmcmds.AddTail({ID_SUB_DELAY_UP, VK_F2, FVIRTKEY | FNOINVERT, IDS_MPLAYERC_105}); + + wmcmds.AddTail({ID_AFTERPLAYBACK_DONOTHING, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_DONOTHING}); + wmcmds.AddTail({ID_AFTERPLAYBACK_PLAYNEXT, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_PLAYNEXT}); + wmcmds.AddTail({ID_AFTERPLAYBACK_MONITOROFF, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_MONITOROFF}); + wmcmds.AddTail({ID_AFTERPLAYBACK_EXIT, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_EXIT}); + wmcmds.AddTail({ID_AFTERPLAYBACK_STANDBY, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_STANDBY}); + wmcmds.AddTail({ID_AFTERPLAYBACK_HIBERNATE, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_HIBERNATE}); + wmcmds.AddTail({ID_AFTERPLAYBACK_SHUTDOWN, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_SHUTDOWN}); + wmcmds.AddTail({ID_AFTERPLAYBACK_LOGOFF, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_LOGOFF}); + wmcmds.AddTail({ID_AFTERPLAYBACK_LOCK, 0, FVIRTKEY | FNOINVERT, IDS_AFTERPLAYBACK_LOCK}); + + wmcmds.AddTail({ID_VIEW_EDITLISTEDITOR, 0, FVIRTKEY | FNOINVERT, IDS_AG_TOGGLE_EDITLISTEDITOR}); + wmcmds.AddTail({ID_EDL_IN, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_IN}); + wmcmds.AddTail({ID_EDL_OUT, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_OUT}); + wmcmds.AddTail({ID_EDL_NEWCLIP, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_NEW_CLIP}); + wmcmds.AddTail({ID_EDL_SAVE, 0, FVIRTKEY | FNOINVERT, IDS_AG_EDL_SAVE}); } CAppSettings::~CAppSettings() @@ -638,6 +647,11 @@ bool CAppSettings::IsVideoRendererAvailable(int iVideoRendererType) } } +bool CAppSettings::IsInitialized() const +{ + return bInitialized; +} + CString CAppSettings::SelectedAudioRenderer() const { CString strResult; @@ -859,15 +873,14 @@ void CAppSettings::SaveSettings() pApp->WriteProfileString(IDS_R_COMMANDS, nullptr, nullptr); POSITION pos = wmcmds.GetHeadPosition(); for (int i = 0; pos;) { - wmcmd& wc = wmcmds.GetNext(pos); + const wmcmd& wc = wmcmds.GetNext(pos); if (wc.IsModified()) { CString str; str.Format(_T("CommandMod%d"), i); CString str2; - str2.Format(_T("%u %x %x %s %d %u %u %u"), - wc.cmd, wc.fVirt, wc.key, - _T("\"") + CString(wc.rmcmd) + _T("\""), wc.rmrepcnt, - wc.mouse, wc.appcmd, wc.mouseFS); + str2.Format(_T("%hu %hx %hx \"%S\" %d %u %u %u"), + wc.cmd, (WORD)wc.fVirt, wc.key, wc.rmcmd, + wc.rmrepcnt, wc.mouse, wc.appcmd, wc.mouseFS); pApp->WriteProfileString(IDS_R_COMMANDS, str, str2); i++; } @@ -951,6 +964,7 @@ void CAppSettings::SaveSettings() } pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REMAINING_TIME, fRemainingTime); + pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIGH_PRECISION_TIMER, bHighPrecisionTimer); pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_UPDATER_AUTO_CHECK, nUpdaterAutoCheck); pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_UPDATER_DELAY, nUpdaterDelay); @@ -962,6 +976,8 @@ void CAppSettings::SaveSettings() pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_COVER_ART, bEnableCoverArt); pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_COVER_ART_SIZE_LIMIT, nCoverArtSizeLimit); + pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOGGING, bEnableLogging); + pApp->FlushProfile(); } @@ -1192,6 +1208,13 @@ void CAppSettings::LoadSettings() language = 0; } } +#ifndef DEBUG + if (language) { + auto pCrashReporterUIThread = CCrashReporterUIThread::GetInstance(); + pCrashReporterUIThread->WaitThreadReady(); + pCrashReporterUIThread->GetCrashDialog().LoadTranslatableResources(); + } +#endif CreateCommands(); @@ -1447,29 +1470,35 @@ void CAppSettings::LoadSettings() if (str2.IsEmpty()) { break; } - int cmd, fVirt, key, repcnt; - UINT mouse, mouseFS, appcmd; - TCHAR buff[128]; + + wmcmd tmp; int n; - if (5 > (n = _stscanf_s(str2, _T("%d %x %x %s %d %u %u %u"), &cmd, &fVirt, &key, buff, _countof(buff), &repcnt, &mouse, &appcmd, &mouseFS))) { + int fVirt = 0; + if (5 > (n = _stscanf_s(str2, _T("%hu %x %hx %S %d %u %u %u"), + &tmp.cmd, &fVirt, &tmp.key, tmp.rmcmd.GetBuffer(128), 128, + &tmp.rmrepcnt, &tmp.mouse, &tmp.appcmd, &tmp.mouseFS))) { break; } - if (POSITION pos = wmcmds.Find(cmd)) { + tmp.rmcmd.ReleaseBuffer(); + if (n >= 2) { + tmp.fVirt = (BYTE)fVirt; + } + if (POSITION pos = wmcmds.Find(tmp)) { wmcmd& wc = wmcmds.GetAt(pos); - wc.cmd = cmd; - wc.fVirt = fVirt; - wc.key = key; + wc.cmd = tmp.cmd; + wc.fVirt = tmp.fVirt; + wc.key = tmp.key; if (n >= 6) { - wc.mouse = mouse; + wc.mouse = tmp.mouse; } if (n >= 7) { - wc.appcmd = appcmd; + wc.appcmd = tmp.appcmd; } // If there is no distinct bindings for windowed and // fullscreen modes we use the same for both. - wc.mouseFS = (n >= 8) ? mouseFS : wc.mouse; - wc.rmcmd = CStringA(buff).Trim('\"'); - wc.rmrepcnt = repcnt; + wc.mouseFS = (n >= 8) ? tmp.mouseFS : wc.mouse; + wc.rmcmd = tmp.rmcmd.Trim('\"'); + wc.rmrepcnt = tmp.rmrepcnt; } } @@ -1642,6 +1671,7 @@ void CAppSettings::LoadSettings() fLastFullScreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LASTFULLSCREEN, FALSE); fRemainingTime = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REMAINING_TIME, FALSE); + bHighPrecisionTimer = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIGH_PRECISION_TIMER, FALSE); nUpdaterAutoCheck = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_UPDATER_AUTO_CHECK, AUTOUPDATE_UNKNOWN); nUpdaterDelay = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_UPDATER_DELAY, 7); @@ -1659,6 +1689,8 @@ void CAppSettings::LoadSettings() bEnableCoverArt = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_COVER_ART, TRUE); nCoverArtSizeLimit = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_COVER_ART_SIZE_LIMIT, 600); + bEnableLogging = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOGGING, FALSE); + if (fLaunchfullscreen) { nCLSwitches |= CLSW_FULLSCREEN; } @@ -1930,6 +1962,8 @@ void CAppSettings::ParseCommandLine(CAtlList& cmdln) nCLSwitches |= CLSW_DEVICE; } else if (sw == _T("add")) { nCLSwitches |= CLSW_ADD; + } else if (sw == _T("randomize")) { + nCLSwitches |= CLSW_RANDOMIZE; } else if (sw == _T("regvid")) { nCLSwitches |= CLSW_REGEXTVID; } else if (sw == _T("regaud")) { @@ -1995,8 +2029,8 @@ void CAppSettings::ParseCommandLine(CAtlList& cmdln) } } else if (sw == _T("debug")) { fShowDebugInfo = true; - } else if (sw == _T("nominidump")) { - CMiniDump::Disable(); + } else if (sw == _T("nocrashreporter")) { + CrashReporter::Disable(); } else if (sw == _T("audiorenderer") && pos) { SetAudioRenderer(_ttoi(cmdln.GetNext(pos))); } else if (sw == _T("shaderpreset") && pos) { @@ -2375,6 +2409,10 @@ void CAppSettings::UpdateSettings() VERIFY(pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLE_SUBTITLE_ANIMATION, bDisableSubtitleAnimation)); } // no break + case 5: + copyInt(IDS_R_INTERNAL_FILTERS, _T("SRC_DTSAC3"), IDS_R_INTERNAL_FILTERS, _T("SRC_DTS")); + copyInt(IDS_R_INTERNAL_FILTERS, _T("SRC_DTSAC3"), IDS_R_INTERNAL_FILTERS, _T("SRC_AC3")); + // no break default: pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_R_VERSION, APPSETTINGS_VERSION); } diff --git a/src/mpc-hc/AppSettings.h b/src/mpc-hc/AppSettings.h index bfd53c27ac6..70184f9b32d 100644 --- a/src/mpc-hc/AppSettings.h +++ b/src/mpc-hc/AppSettings.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -59,15 +59,17 @@ enum : UINT64 { CLSW_LOCK = CLSW_LOGOFF << 1, CLSW_MONITOROFF = CLSW_LOCK << 1, CLSW_PLAYNEXT = CLSW_MONITOROFF << 1, - CLSW_AFTERPLAYBACK_MASK = CLSW_CLOSE | CLSW_STANDBY | CLSW_SHUTDOWN | CLSW_HIBERNATE | CLSW_LOGOFF | CLSW_LOCK | CLSW_MONITOROFF | CLSW_PLAYNEXT, - CLSW_FULLSCREEN = CLSW_PLAYNEXT << 1, + CLSW_DONOTHING = CLSW_PLAYNEXT << 1, + CLSW_AFTERPLAYBACK_MASK = CLSW_CLOSE | CLSW_STANDBY | CLSW_SHUTDOWN | CLSW_HIBERNATE | CLSW_LOGOFF | CLSW_LOCK | CLSW_MONITOROFF | CLSW_PLAYNEXT | CLSW_DONOTHING, + CLSW_FULLSCREEN = CLSW_DONOTHING << 1, CLSW_NEW = CLSW_FULLSCREEN << 1, CLSW_HELP = CLSW_NEW << 1, CLSW_DVD = CLSW_HELP << 1, CLSW_CD = CLSW_DVD << 1, CLSW_DEVICE = CLSW_CD << 1, CLSW_ADD = CLSW_DEVICE << 1, - CLSW_MINIMIZED = CLSW_ADD << 1, + CLSW_RANDOMIZE = CLSW_ADD << 1, + CLSW_MINIMIZED = CLSW_RANDOMIZE << 1, CLSW_REGEXTVID = CLSW_MINIMIZED << 1, CLSW_REGEXTAUD = CLSW_REGEXTVID << 1, CLSW_REGEXTPL = CLSW_REGEXTAUD << 1, @@ -82,7 +84,7 @@ enum : UINT64 { CLSW_SLAVE = CLSW_ADMINOPTION << 1, CLSW_AUDIORENDERER = CLSW_SLAVE << 1, CLSW_RESET = CLSW_AUDIORENDERER << 1, - CLSW_UNRECOGNIZEDSWITCH = CLSW_RESET << 1 // 33 + CLSW_UNRECOGNIZEDSWITCH = CLSW_RESET << 1 // 35 }; enum MpcCaptionState { @@ -273,35 +275,31 @@ class wmcmd : public ACCEL CStringA rmcmd; int rmrepcnt; - wmcmd(WORD cmd = 0) - : appcmd(0) - , appcmdorg(0) - , dwname(0) - , mouse(NONE) - , mouseorg(NONE) - , mouseFS(NONE) - , mouseFSorg(NONE) - , rmrepcnt(0) { - this->cmd = cmd; - this->key = 0; - this->fVirt = 0; - ZeroMemory(&backup, sizeof(backup)); + explicit wmcmd(WORD cmd = 0) + : ACCEL( { 0, 0, cmd }) + , backup({ 0, 0, cmd }) + , appcmdorg(0) + , mouseorg(NONE) + , mouseFSorg(NONE) + , dwname(0) + , appcmd(0) + , mouse(NONE) + , mouseFS(NONE) + , rmrepcnt(0) { } wmcmd(WORD cmd, WORD key, BYTE fVirt, DWORD dwname, UINT appcmd = 0, UINT mouse = NONE, UINT mouseFS = NONE, LPCSTR rmcmd = "", int rmrepcnt = 5) - : appcmd(appcmd) - , appcmdorg(appcmd) - , dwname(dwname) - , mouse(mouse) - , mouseorg(mouse) - , mouseFS(mouseFS) - , mouseFSorg(mouseFS) - , rmcmd(rmcmd) - , rmrepcnt(rmrepcnt) { - this->cmd = cmd; - this->key = key; - this->fVirt = fVirt; - backup = *this; + : ACCEL( { fVirt, key, cmd }) + , backup({ fVirt, key, cmd }) + , appcmdorg(appcmd) + , mouseorg(mouse) + , mouseFSorg(mouseFS) + , dwname(dwname) + , appcmd(appcmd) + , mouse(mouse) + , mouseFS(mouseFS) + , rmcmd(rmcmd) + , rmrepcnt(rmrepcnt) { } bool operator == (const wmcmd& wc) const { @@ -370,7 +368,7 @@ class CUIceClient : public CRemoteCtrlClient CUIceClient(); }; -#define APPSETTINGS_VERSION 5 +#define APPSETTINGS_VERSION 6 class CAppSettings { @@ -656,6 +654,7 @@ class CAppSettings UINT nLastWindowType; UINT nLastUsedPage; bool fRemainingTime; + bool bHighPrecisionTimer; bool fLastFullScreen; bool fIntRealMedia; @@ -670,10 +669,13 @@ class CAppSettings bool bEnableCoverArt; int nCoverArtSizeLimit; + bool bEnableLogging; + bool IsD3DFullscreen() const; CString SelectedAudioRenderer() const; bool IsISRAutoLoadEnabled() const; bool IsISRAvailable() const; + bool IsInitialized() const; static bool IsVideoRendererAvailable(int iVideoRendererType); CFileAssoc fileAssoc; diff --git a/src/mpc-hc/AuthDlg.cpp b/src/mpc-hc/AuthDlg.cpp index 496f5cc172b..47569ac7325 100644 --- a/src/mpc-hc/AuthDlg.cpp +++ b/src/mpc-hc/AuthDlg.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,7 +22,7 @@ #include "stdafx.h" #include "AuthDlg.h" #include "SysVersion.h" -#include "version.h" +#include "VersionInfo.h" // We need to dynamically link to the functions provided by CredUI.lib in order // to be able to use the features available to the OS. @@ -103,7 +103,7 @@ HRESULT PromptForCredentials(HWND hWnd, const CString& strCaptionText, const CSt const DWORD dwFlags = CREDUI_FLAGS_ALWAYS_SHOW_UI | CREDUI_FLAGS_GENERIC_CREDENTIALS/* | CREDUI_FLAGS_EXPECT_CONFIRMATION*/ | CREDUI_FLAGS_COMPLETE_USERNAME | CREDUI_FLAGS_DO_NOT_PERSIST | (bSave ? CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX : 0); CString strUserDomain(strUsername); if (!strDomain.GetLength()) { - strDomain = _T("mpc-hc/") MPC_VERSION_STR; + strDomain = _T("mpc-hc/") + VersionInfo::GetVersionString(); } DWORD dwResult = fnCredUIPromptForCredentialsW(&info, strDomain.Left(dwDomain), nullptr, dwAuthError, @@ -116,7 +116,7 @@ HRESULT PromptForCredentials(HWND hWnd, const CString& strCaptionText, const CSt strDomain.ReleaseBuffer(); //dwResult = CredUIConfirmCredentials(szDomain.Left(cchDomain), TRUE); - if (strDomain == _T("mpc-hc/") MPC_VERSION_STR) { + if (strDomain == _T("mpc-hc/") + VersionInfo::GetVersionString()) { strDomain.Empty(); } diff --git a/src/mpc-hc/ChildView.cpp b/src/mpc-hc/ChildView.cpp index 53e03420576..1e4d28580d8 100644 --- a/src/mpc-hc/ChildView.cpp +++ b/src/mpc-hc/ChildView.cpp @@ -165,10 +165,7 @@ void CChildView::LoadImgInternal(HGDIOBJ hImg) CSize CChildView::GetLogoSize() { - BITMAP bitmap; - ZeroMemory(&bitmap, sizeof(BITMAP)); - m_img.GetBitmap(&bitmap); - return CSize(bitmap.bmWidth, bitmap.bmHeight); + return m_img.GetSize(); } IMPLEMENT_DYNAMIC(CChildView, CMouseWnd) @@ -224,18 +221,20 @@ BOOL CChildView::OnEraseBkgnd(CDC* pDC) r = CRect(CPoint(x, y), CSize(std::lround(dImgWidth), std::lround(dImgHeight))); - if (m_resizedImg.IsNull() || r.Width() != m_resizedImg.GetWidth() || r.Height() != m_resizedImg.GetHeight() || img.GetBPP() != m_resizedImg.GetBPP()) { - m_resizedImg.Destroy(); - m_resizedImg.Create(r.Width(), r.Height(), img.GetBPP()); + if (!r.IsRectEmpty()) { + if (m_resizedImg.IsNull() || r.Width() != m_resizedImg.GetWidth() || r.Height() != m_resizedImg.GetHeight() || img.GetBPP() != m_resizedImg.GetBPP()) { + m_resizedImg.Destroy(); + m_resizedImg.Create(r.Width(), r.Height(), std::max(img.GetBPP(), 24)); - HDC hDC = m_resizedImg.GetDC(); - SetStretchBltMode(hDC, STRETCH_HALFTONE); - img.StretchBlt(hDC, 0, 0, r.Width(), r.Height(), SRCCOPY); - m_resizedImg.ReleaseDC(); - } + HDC hDC = m_resizedImg.GetDC(); + SetStretchBltMode(hDC, STRETCH_HALFTONE); + img.StretchBlt(hDC, 0, 0, r.Width(), r.Height(), SRCCOPY); + m_resizedImg.ReleaseDC(); + } - m_resizedImg.BitBlt(*pDC, r.TopLeft()); - pDC->ExcludeClipRect(r); + m_resizedImg.BitBlt(*pDC, r.TopLeft()); + pDC->ExcludeClipRect(r); + } } img.Detach(); diff --git a/src/mpc-hc/CrashReporter.cpp b/src/mpc-hc/CrashReporter.cpp new file mode 100644 index 00000000000..e4b62e1fd4d --- /dev/null +++ b/src/mpc-hc/CrashReporter.cpp @@ -0,0 +1,147 @@ +/* + * (C) 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "stdafx.h" +#include "CrashReporter.h" +#ifndef _DEBUG +#include +#include "CrashReporterDialog.h" +#include "VersionInfo.h" +#include "mpc-hc_config.h" +#include "DoctorDump/CrashRpt.h" + + +using namespace crash_rpt; + +namespace CrashReporter +{ + static bool g_bEnabled = false; + static CrashRpt g_crashReporter(L"CrashReporter\\crashrpt.dll"); + + static CrashProcessingCallbackResult CALLBACK CrashProcessingCallback(CrashProcessingCallbackStage stage, + ExceptionInfo* pExceptionInfo, + LPVOID pUserData); +} +#endif + +void CrashReporter::Enable() +{ +#ifndef _DEBUG + static crash_rpt::ApplicationInfo appInfo = { + sizeof(appInfo), + "31c48823-ce52-401b-8425-888388161757", + "mpc-hc", + L"MPC-HC", + L"MPC-HC Team", + { + USHORT(VersionInfo::GetMajorNumber()), + USHORT(VersionInfo::GetMinorNumber()), + USHORT(VersionInfo::GetPatchNumber()), + USHORT(VersionInfo::GetRevisionNumber()), + }, + 0, + nullptr + }; + + const MINIDUMP_TYPE dumpType = MINIDUMP_TYPE( +#if ENABLE_FULLDUMP + MiniDumpWithFullMemory | + MiniDumpWithTokenInformation | +#else + MiniDumpWithIndirectlyReferencedMemory | + MiniDumpWithDataSegs | +#endif // ENABLE_FULLDUMP + MiniDumpWithHandleData | + MiniDumpWithThreadInfo | + MiniDumpWithProcessThreadData | + MiniDumpWithFullMemoryInfo | + MiniDumpWithUnloadedModules | + MiniDumpIgnoreInaccessibleMemory + ); + + static crash_rpt::HandlerSettings handlerSettings = { + sizeof(handlerSettings), + FALSE, // Don't keep the dumps + FALSE, // Don't open the problem page in the browser + FALSE, // Don't use WER (for now) + 0, // Anonymous submitter + FALSE, // Ask before sending additional info + TRUE, // Override the "full" dump settings + dumpType, // "Full" dump custom settings + nullptr, // No lang file (for now) + nullptr, // Default path for SendRpt + nullptr, // Default path for DbgHelp + CrashProcessingCallback, // Callback function + nullptr // No user defined parameter for the callback function + }; + + if (!g_crashReporter.IsCrashHandlingEnabled()) { + g_bEnabled = g_crashReporter.InitCrashRpt(&appInfo, &handlerSettings); + // Ensure the crash reporter UI thread is running + VERIFY(CCrashReporterUIThread::GetInstance() != nullptr); + } else { + g_bEnabled = true; + } +#endif +}; + +void CrashReporter::Disable() +{ +#ifndef _DEBUG + g_bEnabled = false; +#endif +}; + +#ifndef _DEBUG +CrashProcessingCallbackResult CALLBACK CrashReporter::CrashProcessingCallback(CrashProcessingCallbackStage stage, + ExceptionInfo* pExceptionInfo, + LPVOID pUserData) +{ + if (!g_bEnabled) { + return SkipSendReportReturnDefaultResult; + } + + // All variables are allocated statically to reduce allocations after crashing + if (stage == BeforeSendReport) { + // We need to make sure the message pump is ready + static CCrashReporterUIThread* pCrashReporterUIThread = CCrashReporterUIThread::GetInstance(); + pCrashReporterUIThread->WaitThreadReady(); + // before actually showing the dialog + static CCrashReporterDialog& crashDlg = pCrashReporterUIThread->GetCrashDialog(); + crashDlg.ShowWindow(SW_SHOWNORMAL); + crashDlg.SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + crashDlg.SetForegroundWindow(); + + static CString email, description; + if (crashDlg.WaitForUserInput(email, description)) { + if (!email.IsEmpty()) { + g_crashReporter.AddUserInfoToReport(L"email", email); + } + if (!description.IsEmpty()) { + g_crashReporter.AddUserInfoToReport(L"description", description); + } + } + crashDlg.SignalDataRead(); + WaitForSingleObject(CCrashReporterUIThread::GetInstance()->m_hThread, INFINITE); + } + + return DoDefaultActions; +}; +#endif diff --git a/src/mpc-hc/MiniDump.h b/src/mpc-hc/CrashReporter.h similarity index 79% rename from src/mpc-hc/MiniDump.h rename to src/mpc-hc/CrashReporter.h index 38cb03a58db..ed54b972040 100644 --- a/src/mpc-hc/MiniDump.h +++ b/src/mpc-hc/CrashReporter.h @@ -1,31 +1,27 @@ -/* - * (C) 2009-2014 see Authors.txt - * - * This file is part of MPC-HC. - * - * MPC-HC is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * MPC-HC is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#pragma once - -namespace CMiniDump -{ - void Enable(); - void Disable(); - -#ifndef _DEBUG - LONG WINAPI UnhandledExceptionFilter(EXCEPTION_POINTERS* pExceptionPointers); -#endif -}; +/* + * (C) 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +namespace CrashReporter +{ + void Enable(); + void Disable(); +}; diff --git a/src/mpc-hc/CrashReporterDialog.cpp b/src/mpc-hc/CrashReporterDialog.cpp new file mode 100644 index 00000000000..bba5c2626fd --- /dev/null +++ b/src/mpc-hc/CrashReporterDialog.cpp @@ -0,0 +1,155 @@ +/* + * (C) 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "stdafx.h" +#include "CrashReporterDialog.h" +#include "resource.h" +#include "mplayerc.h" +#include "DSUtil.h" + +CCrashReporterDialog::CCrashReporterDialog() + : CDialog() +{ + // Listen for language changes + EventRouter::EventSelection receives; + receives.insert(MpcEvent::CHANGING_UI_LANGUAGE); + GetEventd().Connect(m_eventc, receives, std::bind(&CCrashReporterDialog::EventCallback, this, std::placeholders::_1)); +} + +BOOL CCrashReporterDialog::Create() +{ + // Try to preallocate memory for the result strings + m_email.Preallocate(128); + m_description.Preallocate(4096); + + BOOL res = __super::Create(IDD, CWnd::GetDesktopWindow()); + + // Because we set LR_SHARED, there is no need to explicitly destroy the icon + VERIFY(SetIcon((HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, 48, 48, LR_SHARED), true) == nullptr); + + return res; +} + +BOOL CCrashReporterDialog::OnInitDialog() +{ + __super::OnInitDialog(); + return FALSE; // return FALSE so that the dialog does not steal focus +} + +void CCrashReporterDialog::LoadTranslatableResources() +{ + // Load the template in a temporary dialog and get the strings from there. + // We don't use MFC to avoid side effects caused by creating another dialog. + HWND hDlg = ::CreateDialog(AfxGetResourceHandle(), MAKEINTRESOURCE(IDD), nullptr, nullptr); + if (hDlg) { + auto setTextFromDlg = [&](int nID) { + CWnd* pItem = CWnd::FromHandle(::GetDlgItem(hDlg, nID)); + if (pItem && IsWindow(pItem->m_hWnd)) { + CString text; + pItem->GetWindowText(text); + if (!text.IsEmpty()) { + GetDlgItem(nID)->SetWindowText(text); + } + } + }; + + setTextFromDlg(IDC_STATIC1); + setTextFromDlg(IDC_STATIC2); + setTextFromDlg(IDC_STATIC3); + setTextFromDlg(IDC_STATIC4); + setTextFromDlg(IDOK); + + ::DestroyWindow(hDlg); + } +} + +void CCrashReporterDialog::EventCallback(MpcEvent ev) +{ + switch (ev) { + case MpcEvent::CHANGING_UI_LANGUAGE: + LoadTranslatableResources(); + break; + default: + ASSERT(FALSE); + } +} + +bool CCrashReporterDialog::WaitForUserInput(CString& email, CString& description) +{ + m_eventDataAvailable.Wait(); + + if (m_bHasData) { + email = m_email; + description = m_description; + } + + return m_bHasData; +} + +void CCrashReporterDialog::OnQuit() +{ + if (m_bHasData) { + GetDlgItem(IDC_EDIT1)->GetWindowText(m_email); + GetDlgItem(IDC_EDIT2)->GetWindowText(m_description); + } + m_eventDataAvailable.Set(); + m_eventDataRead.Wait(); + DestroyWindow(); +} + +BEGIN_MESSAGE_MAP(CCrashReporterDialog, CDialog) +END_MESSAGE_MAP() + +IMPLEMENT_DYNCREATE(CCrashReporterUIThread, CWinThread) + +CCrashReporterUIThread::CCrashReporterUIThread() + : CWinThread() + , m_bThreadReady(false) + , m_eventThreadReady(TRUE) +{} + +BOOL CCrashReporterUIThread::InitInstance() +{ + __super::InitInstance(); + + SetThreadName(DWORD(-1), "Crash Reporter UI Thread"); + + m_dlg.Create(); + m_pMainWnd = &m_dlg; + return TRUE; +} + +int CCrashReporterUIThread::ExitInstance() +{ + m_dlg.DestroyWindow(); + return __super::ExitInstance(); +} + +BOOL CCrashReporterUIThread::OnIdle(LONG lCount) +{ + if (!m_bThreadReady) { + m_bThreadReady = true; + m_eventThreadReady.Set(); + } + return __super::OnIdle(lCount); +} + +BEGIN_MESSAGE_MAP(CCrashReporterUIThread, CWinThread) +END_MESSAGE_MAP() diff --git a/src/mpc-hc/CrashReporterDialog.h b/src/mpc-hc/CrashReporterDialog.h new file mode 100644 index 00000000000..ff763887295 --- /dev/null +++ b/src/mpc-hc/CrashReporterDialog.h @@ -0,0 +1,88 @@ +/* + * (C) 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include "BaseClasses/wxutil.h" +#include "resource.h" + +class CCrashReporterDialog : public CDialog +{ +private: + CAMEvent m_eventDataAvailable, m_eventDataRead; + bool m_bHasData = false; + CString m_email, m_description; + + EventClient m_eventc; + +public: + CCrashReporterDialog(); + + BOOL Create(); + BOOL OnInitDialog() override; + void LoadTranslatableResources(); + + bool WaitForUserInput(CString& email, CString& description); + void SignalDataRead() { m_eventDataRead.Set(); }; + + // Dialog Data + enum { IDD = IDD_CRASH_REPORTER }; + +protected: + DECLARE_MESSAGE_MAP() + + virtual void OnOK() { m_bHasData = true; OnQuit(); }; + virtual void OnCancel() { m_bHasData = false; OnQuit(); }; + +private: + void EventCallback(MpcEvent ev); + void OnQuit(); +}; + +class CCrashReporterUIThread : public CWinThread +{ +private: + CAMEvent m_eventThreadReady; + bool m_bThreadReady; + CCrashReporterDialog m_dlg; + + DECLARE_DYNCREATE(CCrashReporterUIThread) + +protected: + CCrashReporterUIThread(); + +public: + static CCrashReporterUIThread* GetInstance() { + static CCrashReporterUIThread* pUIThread = (CCrashReporterUIThread*)AfxBeginThread(RUNTIME_CLASS(CCrashReporterUIThread)); + return pUIThread; + }; + + virtual BOOL InitInstance(); + virtual int ExitInstance(); + + virtual BOOL OnIdle(LONG lCount); + + void WaitThreadReady() { m_eventThreadReady.Wait(); }; + + CCrashReporterDialog& GetCrashDialog() { return m_dlg; }; + + DECLARE_MESSAGE_MAP() +}; diff --git a/src/mpc-hc/DVBChannel.cpp b/src/mpc-hc/DVBChannel.cpp index 48d2f81ba44..e4a0b7e41fe 100644 --- a/src/mpc-hc/DVBChannel.cpp +++ b/src/mpc-hc/DVBChannel.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -150,6 +150,7 @@ void CDVBChannel::AddStreamInfo(ULONG ulPID, DVB_STREAM_TYPE nType, PES_STREAM_T switch (nType) { case DVB_MPV: case DVB_H264: + case DVB_HEVC: m_ulVideoPID = ulPID; m_nVideoType = nType; break; diff --git a/src/mpc-hc/DVBChannel.h b/src/mpc-hc/DVBChannel.h index d338fc1e077..61558e98519 100644 --- a/src/mpc-hc/DVBChannel.h +++ b/src/mpc-hc/DVBChannel.h @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -50,6 +50,7 @@ enum DVB_STREAM_TYPE { DVB_MPA = 0x02, DVB_AC3 = 0x03, DVB_EAC3 = 0x04, + DVB_HEVC = 0x05, DVB_LATM = 0x11, DVB_PSI = 0x80, DVB_TIF = 0x81, diff --git a/src/mpc-hc/DebugShadersDlg.cpp b/src/mpc-hc/DebugShadersDlg.cpp index bfd94d1c63e..3adb9007ae0 100644 --- a/src/mpc-hc/DebugShadersDlg.cpp +++ b/src/mpc-hc/DebugShadersDlg.cpp @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -64,7 +64,7 @@ CDebugShadersDlg::CDebugShadersDlg() SetSizeGripVisibility(FALSE); SetMinTrackSize(CSize(360, 100)); AddAnchor(IDC_COMBO1, TOP_LEFT, TOP_RIGHT); - AddAnchor(IDC_STATIC, TOP_LEFT, BOTTOM_RIGHT); + AddAnchor((UINT)IDC_STATIC, TOP_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_EDIT1, TOP_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_RADIO1, TOP_RIGHT); AddAnchor(IDC_RADIO2, TOP_RIGHT); diff --git a/src/mpc-hc/DropTarget.cpp b/src/mpc-hc/DropTarget.cpp new file mode 100644 index 00000000000..e70b79238a5 --- /dev/null +++ b/src/mpc-hc/DropTarget.cpp @@ -0,0 +1,126 @@ +/* + * (C) 2003-2006 Gabest + * (C) 2006-2012, 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "stdafx.h" +#include "DropTarget.h" + +CDropTarget::CDropTarget() +{ + m_pDropHelper.CoCreateInstance(CLSID_DragDropHelper, nullptr, CLSCTX_INPROC_SERVER); +}; + +DROPEFFECT CDropTarget::OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) +{ + DROPEFFECT dropEffect = DROPEFFECT_NONE; + + auto pClient = dynamic_cast(pWnd); + if (pClient && (pDataObject->IsDataAvailable(CF_HDROP) || pDataObject->IsDataAvailable(CF_URL))) { + dropEffect = pClient->OnDropAccept(pDataObject, dwKeyState, point); + } + + if (m_pDropHelper) { + m_pDropHelper->DragEnter(pWnd->GetSafeHwnd(), pDataObject->GetIDataObject(FALSE), &point, dropEffect); + } + + return dropEffect; +} + +DROPEFFECT CDropTarget::OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) +{ + DROPEFFECT dropEffect = DROPEFFECT_NONE; + + auto pClient = dynamic_cast(pWnd); + if (pClient && (pDataObject->IsDataAvailable(CF_HDROP) || pDataObject->IsDataAvailable(CF_URL))) { + dropEffect = pClient->OnDropAccept(pDataObject, dwKeyState, point); + } + + if (m_pDropHelper) { + m_pDropHelper->DragOver(&point, dropEffect); + } + + return dropEffect; +} + +BOOL CDropTarget::OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point) +{ + BOOL bResult = FALSE; + CAtlList slFiles; + + if (auto pClient = dynamic_cast(pWnd)) { + if (pDataObject->IsDataAvailable(CF_HDROP)) { + if (HGLOBAL hGlobal = pDataObject->GetGlobalData(CF_HDROP)) { + if (HDROP hDrop = (HDROP)GlobalLock(hGlobal)) { + UINT nFiles = ::DragQueryFile(hDrop, UINT_MAX, nullptr, 0); + for (UINT iFile = 0; iFile < nFiles; iFile++) { + CString fn; + fn.ReleaseBuffer(::DragQueryFile(hDrop, iFile, fn.GetBuffer(MAX_PATH), MAX_PATH)); + slFiles.AddTail(fn); + } + ::DragFinish(hDrop); + pClient->OnDropFiles(slFiles, dropEffect); + bResult = TRUE; + } + GlobalUnlock(hGlobal); + } + } else if (pDataObject->IsDataAvailable(CF_URL)) { + FORMATETC fmt = { CF_URL, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; + if (HGLOBAL hGlobal = pDataObject->GetGlobalData(CF_URL, &fmt)) { + LPCSTR pText = (LPCSTR)GlobalLock(hGlobal); + if (AfxIsValidString(pText)) { + CAtlList sl; + sl.AddTail(pText); + pClient->OnDropFiles(sl, dropEffect); + GlobalUnlock(hGlobal); + bResult = TRUE; + } + } + } + } + + if (m_pDropHelper) { + m_pDropHelper->Drop(pDataObject->GetIDataObject(FALSE), &point, dropEffect); + } + + return bResult; +} + +DROPEFFECT CDropTarget::OnDropEx(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point) +{ + if (OnDrop(pWnd, pDataObject, dropDefault, point)) { + return dropDefault; + } + return DROPEFFECT_NONE; +} + +void CDropTarget::OnDragLeave(CWnd* pWnd) +{ + if (m_pDropHelper) { + m_pDropHelper->DragLeave(); + } +} + +DROPEFFECT CDropTarget::OnDragScroll(CWnd* pWnd, DWORD dwKeyState, CPoint point) +{ + return DROPEFFECT_NONE; +} + +BEGIN_MESSAGE_MAP(CDropTarget, COleDropTarget) +END_MESSAGE_MAP() diff --git a/src/mpc-hc/FileDropTarget.h b/src/mpc-hc/DropTarget.h similarity index 55% rename from src/mpc-hc/FileDropTarget.h rename to src/mpc-hc/DropTarget.h index b7868206f9f..8df0680ed34 100644 --- a/src/mpc-hc/FileDropTarget.h +++ b/src/mpc-hc/DropTarget.h @@ -1,72 +1,51 @@ -/* - * (C) 2003-2006 Gabest - * (C) 2006-2012 see Authors.txt - * - * This file is part of MPC-HC. - * - * MPC-HC is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * MPC-HC is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#pragma once - -#include - - -class CDropTarget -{ -public: - CDropTarget() {} - - virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) { - return DROPEFFECT_NONE; - } - virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) { - return DROPEFFECT_NONE; - } - virtual BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point) { - return FALSE; - } - virtual DROPEFFECT OnDropEx(COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point) { - return (DROPEFFECT) - 1; - } - virtual void OnDragLeave() {} - virtual DROPEFFECT OnDragScroll(DWORD dwKeyState, CPoint point) { - return DROPEFFECT_NONE; - } -}; - -// CFileDropTarget command target - -class CFileDropTarget : public COleDropTarget -{ - // DECLARE_DYNAMIC(CFileDropTarget) - -private: - CDropTarget* m_pDropTarget; - -public: - CFileDropTarget(CDropTarget* pDropTarget); - virtual ~CFileDropTarget(); - -protected: - DECLARE_MESSAGE_MAP() - - DROPEFFECT OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); - DROPEFFECT OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); - BOOL OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point); - DROPEFFECT OnDropEx(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point); - void OnDragLeave(CWnd* pWnd); - DROPEFFECT OnDragScroll(CWnd* pWnd, DWORD dwKeyState, CPoint point); -}; +/* + * (C) 2003-2006 Gabest + * (C) 2006-2012, 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include + + +struct CDropClient { + virtual void OnDropFiles(CAtlList& slFiles, DROPEFFECT dropEffect) PURE; + virtual DROPEFFECT OnDropAccept(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) PURE; +}; + +class CDropTarget : public COleDropTarget +{ +public: + CDropTarget(); + virtual ~CDropTarget() = default; + +private: + const CLIPFORMAT CF_URL = (CLIPFORMAT)RegisterClipboardFormat(_T("UniformResourceLocator")); + CComPtr m_pDropHelper; + +protected: + DECLARE_MESSAGE_MAP() + + DROPEFFECT OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); + DROPEFFECT OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); + BOOL OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point); + DROPEFFECT OnDropEx(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point); + void OnDragLeave(CWnd* pWnd); + DROPEFFECT OnDragScroll(CWnd* pWnd, DWORD dwKeyState, CPoint point); +}; diff --git a/src/mpc-hc/EventDispatcher.h b/src/mpc-hc/EventDispatcher.h index f5ea31c73a0..5f2ddeaca83 100644 --- a/src/mpc-hc/EventDispatcher.h +++ b/src/mpc-hc/EventDispatcher.h @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -44,6 +44,7 @@ enum class MpcEvent { SYSTEM_MENU_POPUP_INITIALIZED, SYSTEM_MENU_POPUP_UNINITIALIZED, CHANGING_UI_LANGUAGE, + STREAM_POS_UPDATE_REQUEST }; class EventClient; diff --git a/src/mpc-hc/FGFilter.cpp b/src/mpc-hc/FGFilter.cpp index de49fdef617..9b5f3d7058e 100644 --- a/src/mpc-hc/FGFilter.cpp +++ b/src/mpc-hc/FGFilter.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -29,6 +29,7 @@ #include "SyncAllocatorPresenter.h" #include "IPinHook.h" // For the NVIDIA driver bug work-around #include "moreuuids.h" +#include // @@ -104,12 +105,11 @@ CFGFilterRegistry::CFGFilterRegistry(IMoniker* pMoniker, UINT64 merit) return; } - LPOLESTR str = nullptr; + CComHeapPtr str; if (FAILED(m_pMoniker->GetDisplayName(0, 0, &str))) { return; } m_DisplayName = m_name = str; - CoTaskMemFree(str), str = nullptr; QueryProperties(); @@ -147,17 +147,17 @@ void CFGFilterRegistry::QueryProperties() CComPtr pPB; if (SUCCEEDED(m_pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)))) { CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { m_name = var.bstrVal; var.Clear(); } - if (SUCCEEDED(pPB->Read(CComBSTR(_T("CLSID")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("CLSID"), &var, nullptr))) { CLSIDFromString(var.bstrVal, &m_clsid); var.Clear(); } - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FilterData")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FilterData"), &var, nullptr))) { BSTR* pstr; if (SUCCEEDED(SafeArrayAccessData(var.parray, (void**)&pstr))) { ExtractFilterData((BYTE*)pstr, var.parray->cbElements * (var.parray->rgsabound[0].cElements)); @@ -427,10 +427,18 @@ HRESULT CFGFilterFile::Create(IBaseFilter** ppBF, CInterfaceList& pUnks) { TRACE(_T("--> CFGFilterVideoRenderer::Create on thread: %lu\n"), GetCurrentThreadId()); @@ -460,6 +468,9 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList pMVRSR = pCAP) { + VERIFY(SUCCEEDED(pMVRSR->DisableSubclassing())); + } if (CComQIPtr pVW = pCAP) { pVW->put_Owner((OAHWND)m_hWnd); } @@ -472,8 +483,6 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList pConfig = pBF; pConfig->SetNumberOfStreams(3); - - HookWorkAroundNVIDIADriverBug(pBF); } BeginEnumPins(pBF, pEP, pPin) { @@ -490,6 +499,9 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList& pUnks); }; diff --git a/src/mpc-hc/FGFilterLAV.cpp b/src/mpc-hc/FGFilterLAV.cpp index 7979e59a1ca..d5cd8cc20cd 100644 --- a/src/mpc-hc/FGFilterLAV.cpp +++ b/src/mpc-hc/FGFilterLAV.cpp @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -559,6 +559,7 @@ LPCTSTR CFGFilterLAVVideo::GetUserFriendlyDecoderName(const CString& decoderName make_pair(_T("avcodec"), _T("FFmpeg")), make_pair(_T("dxva2n"), _T("DXVA2 Native")), make_pair(_T("dxva2cb"), _T("DXVA2 Copy-back")), + make_pair(_T("dxva2cb direct"), _T("DXVA2 Copy-back (Direct)")), make_pair(_T("cuvid"), _T("NVIDIA CUVID")), make_pair(_T("quicksync"), _T("Intel QuickSync")) }; diff --git a/src/mpc-hc/FGManager.cpp b/src/mpc-hc/FGManager.cpp index d9308fc643a..91fa9a60eed 100644 --- a/src/mpc-hc/FGManager.cpp +++ b/src/mpc-hc/FGManager.cpp @@ -30,7 +30,6 @@ #include "AllocatorCommon7.h" #include "AllocatorCommon.h" #include "SyncAllocatorPresenter.h" -#include "madVRAllocatorPresenter.h" #include "DeinterlacerFilter.h" #include "../DeCSS/VobFile.h" #include @@ -42,6 +41,7 @@ #include #include "IPinHook.h" #include "moreuuids.h" +#include // // CFGManager @@ -215,12 +215,6 @@ HRESULT CFGManager::EnumSourceFilters(LPCWSTR lpcwstrFileName, CFGFilterList& fl } } - // exceptions first - - if (ext == _T(".dvr-ms") || ext == _T(".wtv")) { // doh, this is stupid - fl.Insert(LookupFilterRegistry(CLSID_StreamBufferSource, m_override, MERIT64_PREFERRED), 0); - } - if (hFile == INVALID_HANDLE_VALUE) { // internal / protocol @@ -1473,6 +1467,13 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk) } #endif +#if INTERNAL_SOURCEFILTER_WTV + if (src[SRC_WTV]) { + pFGLAVSplitterSource->m_extensions.AddTail(_T(".wtv")); + pFGLAVSplitterSource->AddEnabledFormat("wtv"); + } +#endif + #if INTERNAL_SOURCEFILTER_MATROSKA if (src[SRC_MATROSKA]) { pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,1A45DFA3")); @@ -1529,20 +1530,27 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk) } #endif -#if INTERNAL_SOURCEFILTER_DTSAC3 - if (src[SRC_DTSAC3]) { - pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,7FFE8001")); // DTS - pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,fE7f0180")); // DTS LE +#if INTERNAL_SOURCEFILTER_AC3 + if (src[SRC_AC3]) { pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,2,,0B77")); // AC3, E-AC3 - pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,52494646,8,8,,57415645666D7420"));// RIFFxxxxWAVEfmt_ for DTSWAV pFGLAVSplitterSource->m_chkbytes.AddTail(_T("4,4,,F8726FBB")); // MLP pFGLAVSplitterSource->m_extensions.AddTail(_T(".ac3")); - pFGLAVSplitterSource->m_extensions.AddTail(_T(".dts")); pFGLAVSplitterSource->m_extensions.AddTail(_T(".eac3")); pFGLAVSplitterSource->AddEnabledFormat("ac3"); + pFGLAVSplitterSource->AddEnabledFormat("eac3"); + } +#endif + +#if INTERNAL_SOURCEFILTER_DTS + if (src[SRC_DTS]) { + pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,7FFE8001")); // DTS + pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,fE7f0180")); // DTS LE + pFGLAVSplitterSource->m_chkbytes.AddTail(_T("0,4,,52494646,8,8,,57415645666D7420"));// RIFFxxxxWAVEfmt_ for DTSWAV + pFGLAVSplitterSource->m_extensions.AddTail(_T(".dts")); + pFGLAVSplitterSource->m_extensions.AddTail(_T(".dtshd")); + pFGLAVSplitterSource->m_extensions.AddTail(_T(".dtsma")); pFGLAVSplitterSource->AddEnabledFormat("dts"); pFGLAVSplitterSource->AddEnabledFormat("dtshd"); - pFGLAVSplitterSource->AddEnabledFormat("eac3"); } #endif @@ -1679,6 +1687,26 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk) } #endif +#if INTERNAL_SOURCEFILTER_AC3 + if (src[SRC_AC3]) { + pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_DOLBY_AC3); + pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_DOLBY_TRUEHD); + pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_DOLBY_DDPLUS); + pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_MLP); + pFGLAVSplitter->AddEnabledFormat("ac3"); + pFGLAVSplitter->AddEnabledFormat("eac3"); + } +#endif + +#if INTERNAL_SOURCEFILTER_DTS + if (src[SRC_DTS]) { + pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_DTS); + pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_DTS_HD); + pFGLAVSplitter->AddEnabledFormat("dts"); + pFGLAVSplitter->AddEnabledFormat("dtshd"); + } +#endif + #if INTERNAL_SOURCEFILTER_MPEGAUDIO if (src[SRC_MPA]) { pFGLAVSplitter->AddType(MEDIATYPE_Stream, MEDIASUBTYPE_MPEG1Audio); @@ -1776,6 +1804,7 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk) pFGF->AddType(MEDIATYPE_MPEG2_PACK, MEDIASUBTYPE_DTS); pFGF->AddType(MEDIATYPE_MPEG2_PES, MEDIASUBTYPE_DTS); pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_DTS); + pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_DTS_HD); pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_WAVE_DTS); #endif @@ -1851,6 +1880,7 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk) #if INTERNAL_DECODER_PCM pFGF = tra[TRA_PCM] ? pFGLAVAudio : pFGLAVAudioLM; + pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM); pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_NONE); pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_RAW); pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_TWOS); @@ -2257,7 +2287,7 @@ STDMETHODIMP CFGManagerCustom::AddFilter(IBaseFilter* pBF, LPCWSTR pName) if (GetCLSID(pBF) == CLSID_DMOWrapperFilter) { if (CComQIPtr pPB = pBF) { CComVariant var(true); - pPB->Write(CComBSTR(L"_HIRESOUTPUT"), &var); + pPB->Write(_T("_HIRESOUTPUT"), &var); } } diff --git a/src/mpc-hc/FGManagerBDA.cpp b/src/mpc-hc/FGManagerBDA.cpp index e7391717874..cbb84cf2e22 100644 --- a/src/mpc-hc/FGManagerBDA.cpp +++ b/src/mpc-hc/FGManagerBDA.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -38,7 +38,11 @@ #include "Mpeg2SectionData.h" #include "MainFrm.h" #include "SysVersion.h" +#include "Logger.h" +#define LOG Logger::LOG +#define CheckAndLogBDA(x, msg) hr = ##x; if (FAILED(hr)) { LOG(msg _T(": 0x%08x\n"), hr); return hr; } +#define CheckAndLogBDANoRet(x, msg) hr = ##x; if (FAILED(hr)) { LOG(msg _T(": 0x%08x\n"), hr); } /// Format, Video MPEG2 static VIDEOINFOHEADER2 sMpv_fmt = { @@ -78,8 +82,6 @@ static AM_MEDIA_TYPE mt_Mpv = { (LPBYTE)& sMpv_fmt // pbFormat }; -#define FCC_h264 MAKEFOURCC('h', '2', '6', '4') - /// Format, Video H264 static VIDEOINFOHEADER2 vih2_H264 = { {0, 0, 0, 0}, // rcSource @@ -95,12 +97,12 @@ static VIDEOINFOHEADER2 vih2_H264 = { 0, // dwReserved2 { // bmiHeader - sizeof(BITMAPINFOHEADER), // biSize - 720, // biWidth - 576, // biHeight - 1, // biPlanes - 0, // biBitCount - FCC_h264 // biCompression + sizeof(BITMAPINFOHEADER), // biSize + 720, // biWidth + 576, // biHeight + 1, // biPlanes + 0, // biBitCount + MAKEFOURCC('h', '2', '6', '4') // biCompression } // implicitly sets the others fields to 0 }; @@ -118,6 +120,44 @@ static AM_MEDIA_TYPE mt_H264 = { (LPBYTE)& vih2_H264 // pbFormat }; +/// Format, Video HEVC +static VIDEOINFOHEADER2 vih2_HEVC = { + {0, 0, 0, 0}, // rcSource + {0, 0, 0, 0}, // rcTarget + 0, // dwBitRate, + 0, // dwBitErrorRate + 0, // AvgTimePerFrame + 0, // dwInterlaceFlags + 0, // dwCopyProtectFlags + 0, // dwPictAspectRatioX + 0, // dwPictAspectRatioY + {0}, // dwControlFlag & dwReserved1 + 0, // dwReserved2 + { + // bmiHeader + sizeof(BITMAPINFOHEADER), // biSize + 720, // biWidth + 576, // biHeight + 1, // biPlanes + 0, // biBitCount + MAKEFOURCC('H', 'E', 'V', 'C') // biCompression + } + // implicitly sets the others fields to 0 +}; + +/// Media type, Video HEVC +static AM_MEDIA_TYPE mt_HEVC = { + MEDIATYPE_Video, // majortype + MEDIASUBTYPE_HEVC, // subtype + FALSE, // bFixedSizeSamples + TRUE, // bTemporalCompression + 0, // lSampleSize + FORMAT_VideoInfo2, // formattype + nullptr, // pUnk + sizeof(vih2_HEVC), // cbFormat + (LPBYTE)& vih2_HEVC // pbFormat +}; + // Format, Audio MPEG2 static BYTE MPEG2AudioFormat[] = { 0x50, 0x00, //wFormatTag @@ -294,6 +334,8 @@ CFGManagerBDA::CFGManagerBDA(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd) if (pChannel) { if (pChannel->GetVideoType() == DVB_H264) { UpdateMediaType(&vih2_H264, pChannel); + } else if (pChannel->GetVideoType() == DVB_HEVC) { + UpdateMediaType(&vih2_HEVC, pChannel); } else if (pChannel->GetVideoType() == DVB_MPV) { UpdateMediaType(&sMpv_fmt, pChannel); } @@ -301,6 +343,7 @@ CFGManagerBDA::CFGManagerBDA(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd) m_DVBStreams[DVB_MPV] = CDVBStream(L"mpv", &mt_Mpv); m_DVBStreams[DVB_H264] = CDVBStream(L"h264", &mt_H264); + m_DVBStreams[DVB_HEVC] = CDVBStream(L"HEVC", &mt_HEVC); m_DVBStreams[DVB_MPA] = CDVBStream(L"mpa", &mt_Mpa); m_DVBStreams[DVB_AC3] = CDVBStream(L"ac3", &mt_Ac3); m_DVBStreams[DVB_EAC3] = CDVBStream(L"eac3", &mt_Eac3); @@ -354,11 +397,11 @@ HRESULT CFGManagerBDA::CreateKSFilter(IBaseFilter** ppBF, CLSID KSCategory, cons BeginEnumSysDev(KSCategory, pMoniker) { CComPtr pPB; CComVariant var; - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (SUCCEEDED(pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB))) && SUCCEEDED(pMoniker->GetDisplayName(nullptr, nullptr, &strName)) && - SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { - CStringW Name = CStringW(strName); + SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { + CStringW Name = strName; if (Name != DisplayName) { continue; } @@ -369,10 +412,6 @@ HRESULT CFGManagerBDA::CreateKSFilter(IBaseFilter** ppBF, CLSID KSCategory, cons } break; } - - if (strName) { - CoTaskMemFree(strName); - } } EndEnumSysDev; @@ -424,19 +463,24 @@ HRESULT CFGManagerBDA::ConnectFilters(IBaseFilter* pOutFilter, IBaseFilter* pInF && S_OK != IsPinConnected(pInPin)) { hr = this->ConnectDirect(pOutPin, pInPin, nullptr); - /*#ifdef _DEBUG - PIN_INFO InfoPinIn, InfoPinOut; - FILTER_INFO InfoFilterIn, InfoFilterOut; - pInPin->QueryPinInfo (&InfoPinIn); - pOutPin->QueryPinInfo (&InfoPinOut); - InfoPinIn.pFilter->QueryFilterInfo(&InfoFilterIn); - InfoPinOut.pFilter->QueryFilterInfo(&InfoFilterOut); +#if 0 && defined(_DEBUG) // Disabled by default because it can be verbose + CPinInfo infoPinIn, infoPinOut; + infoPinIn.achName[0] = infoPinOut.achName[0] = L'\0'; + CFilterInfo infoFilterIn, infoFilterOut; + infoFilterIn.achName[0] = infoFilterOut.achName[0] = L'\0'; - TRACE(_T("%s - %s => %s - %s (hr=0x%08x)\n"), InfoFilterOut.achName, InfoPinOut.achName, InfoFilterIn.achName, InfoPinIn.achName, hr); + pInPin->QueryPinInfo(&infoPinIn); + if (infoPinIn.pFilter) { + infoPinIn.pFilter->QueryFilterInfo(&infoFilterIn); + } + pOutPin->QueryPinInfo(&infoPinOut); + if (infoPinOut.pFilter) { + infoPinOut.pFilter->QueryFilterInfo(&infoFilterOut); + } + + TRACE(_T("%s - %s => %s - %s (hr=0x%08x)\n"), infoFilterOut.achName, infoPinOut.achName, infoFilterIn.achName, infoPinIn.achName, hr); +#endif - InfoPinIn.pFilter->Release(); - InfoPinOut.pFilter->Release(); - #endif*/ if (SUCCEEDED(hr)) { return hr; } @@ -653,6 +697,9 @@ HRESULT CFGManagerBDA::ClearMaps() if (m_DVBStreams[DVB_H264].GetMappedPID()) { CheckNoLog(m_DVBStreams[DVB_H264].Unmap(m_DVBStreams[DVB_H264].GetMappedPID())); } + if (m_DVBStreams[DVB_HEVC].GetMappedPID()) { + CheckNoLog(m_DVBStreams[DVB_HEVC].Unmap(m_DVBStreams[DVB_HEVC].GetMappedPID())); + } if (m_DVBStreams[DVB_MPA].GetMappedPID()) { CheckNoLog(m_DVBStreams[DVB_MPA].Unmap(m_DVBStreams[DVB_MPA].GetMappedPID())); } @@ -959,6 +1006,7 @@ HRESULT CFGManagerBDA::CreateMicrosoftDemux(CComPtr& pMpeg2Demux) case DVB_MPV: case DVB_H264: + case DVB_HEVC: if ((nType == m_nCurVideoType) || (m_nDVBRebuildFilterGraph == DVB_REBUILD_FG_NEVER)) { if (!Stream.GetFindExisting() || (pPin = FindPin(pMpeg2Demux, PINDIR_OUTPUT, Stream.GetMediaType())) == nullptr) { @@ -1040,6 +1088,9 @@ HRESULT CFGManagerBDA::SetChannelInternal(CDVBChannel* pChannel) if (pChannel->GetVideoType() == DVB_H264) { UpdateMediaType(&vih2_H264, pChannel); hr = pDemux->SetOutputPinMediaType(L"h264", const_cast(&mt_H264)); + } else if (pChannel->GetVideoType() == DVB_HEVC) { + UpdateMediaType(&vih2_HEVC, pChannel); + hr = pDemux->SetOutputPinMediaType(L"HEVC", const_cast(&mt_HEVC)); } else { UpdateMediaType(&sMpv_fmt, pChannel); hr = pDemux->SetOutputPinMediaType(L"mpv", const_cast(&mt_Mpv)); @@ -1086,7 +1137,8 @@ HRESULT CFGManagerBDA::SetChannelInternal(CDVBChannel* pChannel) CheckNoLog(m_DVBStreams[DVB_SUB].Map(pChannel->GetDefaultSubtitlePID())); } LOG(_T("Stream maps:")); - LOG(_T("Mapped PID MPEG-2: %u, Mapped PID H.264: %u."), m_DVBStreams[DVB_MPV].GetMappedPID(), m_DVBStreams[DVB_H264].GetMappedPID()); + LOG(_T("Mapped PID MPEG-2: %u, Mapped PID H.264: %u, Mapped PID HEVC: %u."), + m_DVBStreams[DVB_MPV].GetMappedPID(), m_DVBStreams[DVB_H264].GetMappedPID(), m_DVBStreams[DVB_HEVC].GetMappedPID()); LOG(_T("Mapped PID MPA: %u, Mapped PID AC3: %u, Mapped PID EAC3: %u, Mapped PID AAC-LATM: %u."), m_DVBStreams[DVB_MPA].GetMappedPID(), m_DVBStreams[DVB_AC3].GetMappedPID(), m_DVBStreams[DVB_EAC3].GetMappedPID(), m_DVBStreams[DVB_LATM].GetMappedPID()); LOG(_T("Mapped PID Subtitles: %u."), m_DVBStreams[DVB_SUB].GetMappedPID()); @@ -1144,7 +1196,7 @@ HRESULT CFGManagerBDA::SwitchStream(DVB_STREAM_TYPE nOldType, DVB_STREAM_TYPE nN CComPtr pNewOut = GetFirstPin(pFGNew, PINDIR_OUTPUT); CComPtr pNewOutDynamic; - if ((nNewType != DVB_H264) && (nNewType != DVB_MPV) && GetState() != State_Stopped) { + if (nNewType != DVB_MPV && nNewType != DVB_H264 && nNewType != DVB_HEVC && GetState() != State_Stopped) { CComPtr pDemux; m_pDemux->QueryInterface(IID_PPV_ARGS(&pDemux)); diff --git a/src/mpc-hc/FGManagerBDA.h b/src/mpc-hc/FGManagerBDA.h index b314b6f1b00..aeb46c5dac9 100644 --- a/src/mpc-hc/FGManagerBDA.h +++ b/src/mpc-hc/FGManagerBDA.h @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -173,44 +173,3 @@ class CFGManagerBDA : public CFGManagerPlayer, IBDATuner, IAMStreamSelect HRESULT SearchIBDATopology(const CComPtr& pTuner, REFIID iid, CComPtr& pUnk); }; - -#ifdef _DEBUG -#include -#include - -#define CheckAndLogBDA(x, msg) hr = ##x; if (FAILED(hr)) { LOG(msg _T(": 0x%08x\n"), hr); return hr; } -#define CheckAndLogBDANoRet(x, msg) hr = ##x; if (FAILED(hr)) { LOG(msg _T(": 0x%08x\n"), hr); } - -#define LOG_FILE _T("bda.log") - -static void LOG(LPCTSTR fmt, ...) -{ - va_list args; - va_start(args, fmt); - TCHAR buff[3000]; - FILE* f; - _timeb timebuffer; - TCHAR time1[8]; - TCHAR wbuf[26]; - - _ftime_s(&timebuffer); - _tctime_s(wbuf, _countof(wbuf), &timebuffer.time); - - for (size_t i = 0; i < _countof(time1); i++) { - time1[i] = wbuf[i + 11]; - } - - _vstprintf_s(buff, _countof(buff), fmt, args); - if (_tfopen_s(&f, LOG_FILE, _T("at")) == 0) { - fseek(f, 0, 2); - _ftprintf_s(f, _T("%.8s.%03hu - %s\n"), time1, timebuffer.millitm, buff); - fclose(f); - } - - va_end(args); -} -#else -inline void LOG(LPCTSTR fmt, ...) {} -#define CheckAndLogBDA(x, msg) hr = ##x; if (FAILED(hr)) { TRACE(msg _T(": 0x%08x\n"), hr); return hr; } -#define CheckAndLogBDANoRet(x, msg) hr = ##x; if (FAILED(hr)) { TRACE(msg _T(": 0x%08x\n"), hr); } -#endif diff --git a/src/mpc-hc/FileDropTarget.cpp b/src/mpc-hc/FileDropTarget.cpp deleted file mode 100644 index e1fd73be4de..00000000000 --- a/src/mpc-hc/FileDropTarget.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * (C) 2003-2006 Gabest - * (C) 2006-2012 see Authors.txt - * - * This file is part of MPC-HC. - * - * MPC-HC is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * MPC-HC is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include "stdafx.h" -#include "mplayerc.h" -#include "FileDropTarget.h" - - -// CFileDropTarget - -//IMPLEMENT_DYNAMIC(CFileDropTarget, COleDropTarget) -CFileDropTarget::CFileDropTarget(CDropTarget* pDropTarget) - : m_pDropTarget(pDropTarget) -{ - ASSERT(m_pDropTarget); -} - -CFileDropTarget::~CFileDropTarget() -{ -} - -DROPEFFECT CFileDropTarget::OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) -{ - return m_pDropTarget ? m_pDropTarget->OnDragEnter(pDataObject, dwKeyState, point) : DROPEFFECT_NONE; -} - -DROPEFFECT CFileDropTarget::OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) -{ - return m_pDropTarget ? m_pDropTarget->OnDragOver(pDataObject, dwKeyState, point) : DROPEFFECT_NONE; -} - -BOOL CFileDropTarget::OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point) -{ - return m_pDropTarget ? m_pDropTarget->OnDrop(pDataObject, dropEffect, point) : DROPEFFECT_NONE; -} - -DROPEFFECT CFileDropTarget::OnDropEx(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point) -{ - return m_pDropTarget ? m_pDropTarget->OnDropEx(pDataObject, dropDefault, dropList, point) : DROPEFFECT_NONE; -} - -void CFileDropTarget::OnDragLeave(CWnd* pWnd) -{ - if (m_pDropTarget) { - m_pDropTarget->OnDragLeave(); - } -} - -DROPEFFECT CFileDropTarget::OnDragScroll(CWnd* pWnd, DWORD dwKeyState, CPoint point) -{ - return m_pDropTarget ? m_pDropTarget->OnDragScroll(dwKeyState, point) : DROPEFFECT_NONE; -} - -BEGIN_MESSAGE_MAP(CFileDropTarget, COleDropTarget) -END_MESSAGE_MAP() diff --git a/src/mpc-hc/FilterEnum.h b/src/mpc-hc/FilterEnum.h index 1c4360068dc..bbd6b1a8979 100644 --- a/src/mpc-hc/FilterEnum.h +++ b/src/mpc-hc/FilterEnum.h @@ -1,5 +1,5 @@ /* - * (C) 2010-2014 see Authors.txt + * (C) 2010-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -43,8 +43,11 @@ enum SOURCE_FILTER { #if INTERNAL_SOURCEFILTER_FLIC SRC_FLIC, #endif -#if INTERNAL_SOURCEFILTER_DTSAC3 - SRC_DTSAC3, +#if INTERNAL_SOURCEFILTER_AC3 + SRC_AC3, +#endif +#if INTERNAL_SOURCEFILTER_DTS + SRC_DTS, #endif #if INTERNAL_SOURCEFILTER_MATROSKA SRC_MATROSKA, @@ -101,6 +104,9 @@ enum SOURCE_FILTER { #if INTERNAL_SOURCEFILTER_ASF SRC_ASF, #endif +#if INTERNAL_SOURCEFILTER_WTV + SRC_WTV, +#endif #if INTERNAL_SOURCEFILTER_FLAC SRC_FLAC, #endif diff --git a/src/mpc-hc/FreeviewEPGDecode.cpp b/src/mpc-hc/FreeviewEPGDecode.cpp index 90d7b6fd1f8..c6ad4f5028c 100644 --- a/src/mpc-hc/FreeviewEPGDecode.cpp +++ b/src/mpc-hc/FreeviewEPGDecode.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2006-2008 Team MediaPortal http://www.team-mediaportal.com - * (C) 2013 see Authors.txt + * (C) 2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -21,6 +21,7 @@ #include "stdafx.h" #include "FreeviewEPGDecode.h" +#include "Logger.h" #define bitrev16(d) ((d << 8) & 0xff00) + ((d >> 8) & 0x00ff) #define START '\0' @@ -738,7 +739,7 @@ CString DecodeFreeviewEPG(const BYTE* pBuffer, size_t uLength) prevc = nextc; } while (nextc != STOP); } else { - TRACE(_T("DecodeFreeviewEPG: unsupported huffman table version %d, only version 1 and 2 are supported\n"), pBuffer[0]); + Logger::LOG(_T("DecodeFreeviewEPG: unsupported huffman table version %d, only version 1 and 2 are supported\n"), pBuffer[0]); } return uncompressedString; diff --git a/src/mpc-hc/ISDb.cpp b/src/mpc-hc/ISDb.cpp index 1c82fcd12df..b8bb731f38c 100644 --- a/src/mpc-hc/ISDb.cpp +++ b/src/mpc-hc/ISDb.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -43,12 +43,11 @@ namespace ISDb return false; } - LPOLESTR name; + CComHeapPtr name; if (FAILED(pFSF->GetCurFile(&name, nullptr))) { return false; } fh.name = name; - CoTaskMemFree(name); LONGLONG size, available; if (pAR->Length(&size, &available) != S_OK) { // Don't accept estimates diff --git a/src/mpc-hc/InternalFiltersConfig.h b/src/mpc-hc/InternalFiltersConfig.h index 8ad417d7e02..d5878e22d5c 100644 --- a/src/mpc-hc/InternalFiltersConfig.h +++ b/src/mpc-hc/InternalFiltersConfig.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -37,13 +37,15 @@ #define INTERNAL_SOURCEFILTER_CDDA INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_CDXA INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_DSM INTERNAL_FILTERS_ENABLED -#define INTERNAL_SOURCEFILTER_DTSAC3 INTERNAL_FILTERS_ENABLED +#define INTERNAL_SOURCEFILTER_AC3 INTERNAL_FILTERS_ENABLED +#define INTERNAL_SOURCEFILTER_DTS INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_VTS INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_FLIC INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_FLAC INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_FLV INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_GIF INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_ASF INTERNAL_FILTERS_ENABLED +#define INTERNAL_SOURCEFILTER_WTV INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_MATROSKA INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_MP4 INTERNAL_FILTERS_ENABLED #define INTERNAL_SOURCEFILTER_OGG INTERNAL_FILTERS_ENABLED @@ -104,12 +106,12 @@ // Groups #define HAS_SOURCEFILTERS \ - (INTERNAL_SOURCEFILTER_AVI || INTERNAL_SOURCEFILTER_CDDA || INTERNAL_SOURCEFILTER_CDXA || INTERNAL_SOURCEFILTER_DSM || INTERNAL_SOURCEFILTER_DTSAC3 || \ - INTERNAL_SOURCEFILTER_VTS || INTERNAL_SOURCEFILTER_FLIC || INTERNAL_SOURCEFILTER_FLAC || INTERNAL_SOURCEFILTER_FLV || INTERNAL_SOURCEFILTER_ASF || \ - INTERNAL_SOURCEFILTER_MATROSKA || INTERNAL_SOURCEFILTER_MP4 || INTERNAL_SOURCEFILTER_OGG || INTERNAL_SOURCEFILTER_MPEGAUDIO || INTERNAL_SOURCEFILTER_MPEG || \ - INTERNAL_SOURCEFILTER_REALMEDIA || INTERNAL_SOURCEFILTER_HTTP || INTERNAL_SOURCEFILTER_UDP ||INTERNAL_SOURCEFILTER_RTP || INTERNAL_SOURCEFILTER_RTSP || \ - INTERNAL_SOURCEFILTER_AVI2AC3 || INTERNAL_SOURCEFILTER_RFS || INTERNAL_SOURCEFILTER_RTSP || INTERNAL_SOURCEFILTER_MMS || INTERNAL_SOURCEFILTER_RTMP || \ - INTERNAL_SOURCEFILTER_AVS || INTERNAL_SOURCEFILTER_GIF) + (INTERNAL_SOURCEFILTER_AVI || INTERNAL_SOURCEFILTER_CDDA || INTERNAL_SOURCEFILTER_CDXA || INTERNAL_SOURCEFILTER_DSM || INTERNAL_SOURCEFILTER_AC3 || \ + INTERNAL_SOURCEFILTER_DTS || INTERNAL_SOURCEFILTER_VTS || INTERNAL_SOURCEFILTER_FLIC || INTERNAL_SOURCEFILTER_FLAC || INTERNAL_SOURCEFILTER_FLV || \ + INTERNAL_SOURCEFILTER_ASF ||INTERNAL_SOURCEFILTER_WTV || INTERNAL_SOURCEFILTER_MATROSKA || INTERNAL_SOURCEFILTER_MP4 || INTERNAL_SOURCEFILTER_OGG || \ + INTERNAL_SOURCEFILTER_MPEGAUDIO || INTERNAL_SOURCEFILTER_MPEG || INTERNAL_SOURCEFILTER_REALMEDIA || INTERNAL_SOURCEFILTER_HTTP || INTERNAL_SOURCEFILTER_UDP || \ + INTERNAL_SOURCEFILTER_RTP || INTERNAL_SOURCEFILTER_RTSP || INTERNAL_SOURCEFILTER_AVI2AC3 || INTERNAL_SOURCEFILTER_RFS || INTERNAL_SOURCEFILTER_RTSP || \ + INTERNAL_SOURCEFILTER_MMS || INTERNAL_SOURCEFILTER_RTMP || INTERNAL_SOURCEFILTER_AVS || INTERNAL_SOURCEFILTER_GIF) #define HAS_AUDIO_DECODERS \ (INTERNAL_DECODER_LPCM || INTERNAL_DECODER_PS2AUDIO || INTERNAL_DECODER_REALAUDIO || INTERNAL_DECODER_PCM || INTERNAL_DECODER_AC3 || \ diff --git a/src/mpc-hc/LcdSupport.cpp b/src/mpc-hc/LcdSupport.cpp index 9e64b518d70..ad36171d324 100644 --- a/src/mpc-hc/LcdSupport.cpp +++ b/src/mpc-hc/LcdSupport.cpp @@ -1,5 +1,5 @@ /* - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -657,7 +657,13 @@ void CMPC_Lcd::SetVolume(__int64 nVol) //handle 64bit integers LCDUI only supports int for Range //Since it also supports floats for position, //This will always work in percentage - float fVol = ((float)(nVol - m_nVolumeStart) * 100) / (float)(m_nVolumeStop - m_nVolumeStart); + float fVol; + if (m_nVolumeStart != m_nVolumeStop) { + fVol = float(nVol - m_nVolumeStart) * 100.0f / float(m_nVolumeStop - m_nVolumeStart); + } else { + fVol = 0.0f; + ASSERT(FALSE); // This isn't supposed to happen + } EnterCriticalSection(&cs); m_MonoPage.m_ProgBar[0].SetPos(fVol); @@ -681,7 +687,12 @@ void CMPC_Lcd::SetMediaPos(__int64 nPos) //handle 64bit integers LCDUI only supports int for Range //Since it also supports floats for position, //This will always work in percentage - float fPos = ((float)(nPos - m_nMediaStart) * 100) / (float)(m_nMediaStop - m_nMediaStart); + float fPos; + if (m_nMediaStart != m_nMediaStop) { + fPos = float(nPos - m_nMediaStart) * 100.0f / float(m_nMediaStop - m_nMediaStart); + } else { // The duration might be unknown + fPos = 0.0f; + } EnterCriticalSection(&cs); m_MonoPage.m_ProgBar[1].SetPos(fPos); diff --git a/src/mpc-hc/Logger.h b/src/mpc-hc/Logger.h new file mode 100644 index 00000000000..6855733e3ff --- /dev/null +++ b/src/mpc-hc/Logger.h @@ -0,0 +1,90 @@ +/* + * (C) 2015 see Authors.txt + * + * This file is part of MPC-HC. + * + * MPC-HC is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * MPC-HC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include +#include "mplayerc.h" + +enum class LogTargets { + BDA +}; + +template +struct LoggerFile; + +template<> +struct LoggerFile { +protected: + const LPCTSTR filename = _T("bda.log"); + virtual ~LoggerFile() = default; +}; + +template +class Logger final : public LoggerFile +{ +public: + static void LOG(LPCTSTR fmt...) { + static Logger logger; + + va_list args; + va_start(args, fmt); + logger.WriteToFile(fmt, args); + va_end(args); + }; + +private: + const bool m_bLogging = AfxGetAppSettings().bEnableLogging; + std::mutex m_mutex; + + Logger() { + // Check if logging is enabled only during initialization + // to avoid incomplete logs + ASSERT(AfxGetAppSettings().IsInitialized()); + } + + void WriteToFile(LPCTSTR fmt, va_list& args) { + if (!m_bLogging) { + return; + } + + TCHAR buff[3000]; + FILE* f; + _timeb timebuffer; + TCHAR time1[8]; + TCHAR wbuf[26]; + + _ftime_s(&timebuffer); + _tctime_s(wbuf, _countof(wbuf), &timebuffer.time); + + for (size_t i = 0; i < _countof(time1); i++) { + time1[i] = wbuf[i + 11]; + } + + _vstprintf_s(buff, _countof(buff), fmt, args); + + std::lock_guard lock(m_mutex); + if (_tfopen_s(&f, filename, _T("at")) == 0) { + _ftprintf_s(f, _T("%.8s.%03hu - %s\n"), time1, timebuffer.millitm, buff); + fclose(f); + } + } +}; diff --git a/src/mpc-hc/MPCPngImage.cpp b/src/mpc-hc/MPCPngImage.cpp index 3bfbd73d5b4..e4b6ba6ea63 100644 --- a/src/mpc-hc/MPCPngImage.cpp +++ b/src/mpc-hc/MPCPngImage.cpp @@ -7,18 +7,6 @@ CImage* CMPCPngImage::m_pImage; -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CMPCPngImage::CMPCPngImage() -{ -} - -CMPCPngImage::~CMPCPngImage() -{ -} - ////////////////////////////////////////////////////////////////////// // Operations ////////////////////////////////////////////////////////////////////// @@ -112,3 +100,13 @@ BOOL CMPCPngImage::LoadFromBuffer(const LPBYTE lpBuffer, UINT uiSize) return bRes; } + +CSize CMPCPngImage::GetSize() +{ + CSize size; + BITMAP bm; + if (GetBitmap(&bm)) { + size.SetSize(bm.bmWidth, bm.bmHeight); + } + return size; +} diff --git a/src/mpc-hc/MPCPngImage.h b/src/mpc-hc/MPCPngImage.h index 91129a3e969..47448a7ff4a 100644 --- a/src/mpc-hc/MPCPngImage.h +++ b/src/mpc-hc/MPCPngImage.h @@ -6,8 +6,8 @@ class CMPCPngImage : public CBitmap { // Construction/Destruction public: - CMPCPngImage(); - virtual ~CMPCPngImage(); + CMPCPngImage() = default; + virtual ~CMPCPngImage() = default; // Attributes: protected: @@ -21,6 +21,8 @@ class CMPCPngImage : public CBitmap BOOL LoadFromFile(LPCTSTR lpszPath); BOOL LoadFromBuffer(const LPBYTE lpBuffer, UINT uiSize); + CSize GetSize(); + static void __stdcall CleanUp() { SAFE_DELETE(m_pImage); } diff --git a/src/mpc-hc/MainFrm.cpp b/src/mpc-hc/MainFrm.cpp index c6a565e4f18..86fcf7d71be 100644 --- a/src/mpc-hc/MainFrm.cpp +++ b/src/mpc-hc/MainFrm.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -101,6 +101,9 @@ #include "../Subtitles/RLECodedSubtitle.h" #include "../Subtitles/PGSSub.h" +#include +#include + template bool NEARLY_EQ(T a, T b, T tol) { @@ -247,7 +250,6 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_UPDATE_COMMAND_UI_RANGE(ID_FILE_OPEN_OPTICAL_DISK_START, ID_FILE_OPEN_OPTICAL_DISK_END, OnUpdateFileOpen) ON_COMMAND(ID_FILE_REOPEN, OnFileReopen) ON_COMMAND(ID_FILE_RECYCLE, OnFileRecycle) - ON_WM_DROPFILES() ON_COMMAND(ID_FILE_SAVE_COPY, OnFileSaveAs) ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_COPY, OnUpdateFileSaveAs) ON_COMMAND(ID_FILE_SAVE_IMAGE, OnFileSaveImage) @@ -332,9 +334,9 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) // Casimir666 ON_UPDATE_COMMAND_UI(ID_VIEW_TEARING_TEST, OnUpdateViewTearingTest) ON_COMMAND(ID_VIEW_TEARING_TEST, OnViewTearingTest) - ON_UPDATE_COMMAND_UI(ID_VIEW_DISPLAYSTATS, OnUpdateViewDisplayStats) - ON_COMMAND(ID_VIEW_RESETSTATS, OnViewResetStats) - ON_COMMAND(ID_VIEW_DISPLAYSTATS, OnViewDisplayStatsSC) + ON_UPDATE_COMMAND_UI(ID_VIEW_DISPLAY_RENDERER_STATS, OnUpdateViewDisplayRendererStats) + ON_COMMAND(ID_VIEW_RESET_RENDERER_STATS, OnViewResetRendererStats) + ON_COMMAND(ID_VIEW_DISPLAY_RENDERER_STATS, OnViewDisplayRendererStats) ON_UPDATE_COMMAND_UI(ID_VIEW_FULLSCREENGUISUPPORT, OnUpdateViewFullscreenGUISupport) ON_UPDATE_COMMAND_UI(ID_VIEW_HIGHCOLORRESOLUTION, OnUpdateViewHighColorResolution) ON_UPDATE_COMMAND_UI(ID_VIEW_FORCEINPUTHIGHCOLORRESOLUTION, OnUpdateViewForceInputHighColorResolution) @@ -417,8 +419,10 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_COMMAND(ID_VIEW_VSYNCOFFSET_INCREASE, OnViewVSyncOffsetIncrease) ON_COMMAND(ID_VIEW_VSYNCOFFSET_DECREASE, OnViewVSyncOffsetDecrease) - ON_UPDATE_COMMAND_UI(ID_VIEW_REMAINING_TIME, OnUpdateViewRemainingTime) - ON_COMMAND(ID_VIEW_REMAINING_TIME, OnViewRemainingTime) + ON_UPDATE_COMMAND_UI(ID_VIEW_OSD_DISPLAY_TIME, OnUpdateViewOSDDisplayTime) + ON_COMMAND(ID_VIEW_OSD_DISPLAY_TIME, OnViewOSDDisplayTime) + ON_UPDATE_COMMAND_UI(ID_VIEW_OSD_SHOW_FILENAME, OnUpdateViewOSDShowFileName) + ON_COMMAND(ID_VIEW_OSD_SHOW_FILENAME, OnViewOSDShowFileName) ON_COMMAND(ID_D3DFULLSCREEN_TOGGLE, OnD3DFullscreenToggle) ON_COMMAND_RANGE(ID_GOTO_PREV_SUB, ID_GOTO_NEXT_SUB, OnGotoSubtitle) ON_COMMAND_RANGE(ID_SHIFT_SUB_DOWN, ID_SHIFT_SUB_UP, OnShiftSubtitle) @@ -465,10 +469,10 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_COMMAND_RANGE(ID_NORMALIZE, ID_REGAIN_VOLUME, OnNormalizeRegainVolume) ON_UPDATE_COMMAND_UI_RANGE(ID_NORMALIZE, ID_REGAIN_VOLUME, OnUpdateNormalizeRegainVolume) ON_COMMAND_RANGE(ID_COLOR_BRIGHTNESS_INC, ID_COLOR_RESET, OnPlayColor) - ON_UPDATE_COMMAND_UI_RANGE(ID_AFTERPLAYBACK_CLOSE, ID_AFTERPLAYBACK_MONITOROFF, OnUpdateAfterplayback) - ON_COMMAND_RANGE(ID_AFTERPLAYBACK_CLOSE, ID_AFTERPLAYBACK_MONITOROFF, OnAfterplayback) - ON_UPDATE_COMMAND_UI(ID_AFTERPLAYBACK_PLAYNEXT, OnUpdateAfterplayback) - ON_COMMAND_RANGE(ID_AFTERPLAYBACK_PLAYNEXT, ID_AFTERPLAYBACK_PLAYNEXT, OnAfterplayback) + ON_UPDATE_COMMAND_UI_RANGE(ID_AFTERPLAYBACK_EXIT, ID_AFTERPLAYBACK_MONITOROFF, OnUpdateAfterplayback) + ON_COMMAND_RANGE(ID_AFTERPLAYBACK_EXIT, ID_AFTERPLAYBACK_MONITOROFF, OnAfterplayback) + ON_UPDATE_COMMAND_UI_RANGE(ID_AFTERPLAYBACK_PLAYNEXT, ID_AFTERPLAYBACK_DONOTHING, OnUpdateAfterplayback) + ON_COMMAND_RANGE(ID_AFTERPLAYBACK_PLAYNEXT, ID_AFTERPLAYBACK_DONOTHING, OnAfterplayback) ON_COMMAND_RANGE(ID_NAVIGATE_SKIPBACK, ID_NAVIGATE_SKIPFORWARD, OnNavigateSkip) ON_UPDATE_COMMAND_UI_RANGE(ID_NAVIGATE_SKIPBACK, ID_NAVIGATE_SKIPFORWARD, OnUpdateNavigateSkip) @@ -674,6 +678,10 @@ void CMainFrame::EventCallback(MpcEvent ev) case MpcEvent::CHANGING_UI_LANGUAGE: UpdateUILanguage(); break; + case MpcEvent::STREAM_POS_UPDATE_REQUEST: + OnTimer(TIMER_STREAMPOSPOLLER); + OnTimer(TIMER_STREAMPOSPOLLER2); + break; default: ASSERT(FALSE); } @@ -715,18 +723,16 @@ CMainFrame::CMainFrame() , m_fOpeningAborted(false) , m_bBuffering(false) , m_bUsingDXVA(false) - , m_fileDropTarget(this) , m_bTrayIcon(false) , m_pFullscreenWnd(nullptr) , m_pVideoWnd(nullptr) - , m_bRemainingTime(false) + , m_bOSDDisplayTime(false) , m_nCurSubtitle(-1) , m_lSubtitleShift(0) , m_nStepForwardCount(0) , m_rtStepForwardStart(0) , m_lCurrentChapter(0) , m_lChapterStartTime(0xFFFFFFFF) - , m_pTaskbarList(nullptr) , m_pGraphThread(nullptr) , m_bOpenedThroughThread(false) , m_evOpenPrivateFinished(FALSE, TRUE) @@ -783,6 +789,7 @@ CMainFrame::CMainFrame() receives.insert(MpcEvent::DISPLAY_MODE_AUTOCHANGING); receives.insert(MpcEvent::DISPLAY_MODE_AUTOCHANGED); receives.insert(MpcEvent::CHANGING_UI_LANGUAGE); + receives.insert(MpcEvent::STREAM_POS_UPDATE_REQUEST); EventRouter::EventSelection fires; fires.insert(MpcEvent::SWITCHING_TO_FULLSCREEN); fires.insert(MpcEvent::SWITCHED_TO_FULLSCREEN); @@ -902,7 +909,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) pair.second->ShowWindow(SW_HIDE); } - m_fileDropTarget.Register(this); + m_dropTarget.Register(this); const CAppSettings& s = AfxGetAppSettings(); @@ -910,8 +917,6 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) ShowTrayIcon(s.fTrayIcon); - SetFocus(); - m_pGraphThread = (CGraphThread*)AfxBeginThread(RUNTIME_CLASS(CGraphThread)); if (m_pGraphThread) { @@ -939,7 +944,7 @@ void CMainFrame::OnDestroy() { WTSUnRegisterSessionNotification(); ShowTrayIcon(false); - m_fileDropTarget.Revoke(); + m_dropTarget.Revoke(); if (m_pDebugShaders && IsWindow(m_pDebugShaders->m_hWnd)) { VERIFY(m_pDebugShaders->DestroyWindow()); @@ -988,62 +993,6 @@ void CMainFrame::OnClose() __super::OnClose(); } -DROPEFFECT CMainFrame::OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) -{ - return DROPEFFECT_NONE; -} - -DROPEFFECT CMainFrame::OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) -{ - UpdateControlState(UPDATE_CONTROLS_VISIBILITY); - UINT CF_URL = RegisterClipboardFormat(_T("UniformResourceLocator")); - return pDataObject->IsDataAvailable(CF_URL) ? DROPEFFECT_COPY : DROPEFFECT_NONE; -} - -BOOL CMainFrame::OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point) -{ - UINT CF_URL = RegisterClipboardFormat(_T("UniformResourceLocator")); - BOOL bResult = FALSE; - - // If we are dropping a file, let OnDropFiles handle drag-and-drop - if (!pDataObject->IsDataAvailable(CF_HDROP) && pDataObject->IsDataAvailable(CF_URL)) { - FORMATETC fmt = {CF_URL, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; - if (HGLOBAL hGlobal = pDataObject->GetGlobalData(CF_URL, &fmt)) { - LPCSTR pText = (LPCSTR)GlobalLock(hGlobal); - if (AfxIsValidString(pText)) { - CStringA url(pText); - - SetForegroundWindow(); - - CAtlList sl; - sl.AddTail(CString(url)); - - m_wndPlaylistBar.Open(sl, true); - OpenCurPlaylistItem(); - - GlobalUnlock(hGlobal); - bResult = TRUE; - } - } - } - - return bResult; -} - -DROPEFFECT CMainFrame::OnDropEx(COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point) -{ - return (DROPEFFECT) - 1; -} - -void CMainFrame::OnDragLeave() -{ -} - -DROPEFFECT CMainFrame::OnDragScroll(DWORD dwKeyState, CPoint point) -{ - return DROPEFFECT_NONE; -} - LPCTSTR CMainFrame::GetRecentFile() const { CRecentFileList& MRU = AfxGetAppSettings().MRU; @@ -1605,7 +1554,7 @@ void CMainFrame::OnWindowPosChanging(WINDOWPOS* lpwndpos) void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) { // Only stop screensaver if video playing; allow for audio only - if ((GetMediaState() == State_Running && !m_fAudioOnly) + if ((GetMediaState() == State_Running && !m_fEndOfStream && !m_fAudioOnly) && (((nID & 0xFFF0) == SC_SCREENSAVE) || ((nID & 0xFFF0) == SC_MONITORPOWER))) { TRACE(_T("SC_SCREENSAVE, nID = %u, lParam = %d\n"), nID, lParam); return; @@ -1807,7 +1756,7 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) m_lSubtitleShift = 0; } - m_wndStatusBar.SetStatusTimer(rtNow, rtDur, !!m_wndSubresyncBar.IsWindowVisible(), GetTimeFormat()); + m_wndStatusBar.SetStatusTimer(rtNow, rtDur, IsSubresyncBarVisible(), GetTimeFormat()); break; case PM_DVD: g_bExternalSubtitleTime = true; @@ -1830,7 +1779,7 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) } } } - m_wndStatusBar.SetStatusTimer(rtNow, rtDur, !!m_wndSubresyncBar.IsWindowVisible(), GetTimeFormat()); + m_wndStatusBar.SetStatusTimer(rtNow, rtDur, IsSubresyncBarVisible(), GetTimeFormat()); break; case PM_ANALOG_CAPTURE: g_bExternalSubtitleTime = true; @@ -1879,7 +1828,7 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) case PM_FILE: // no break case PM_DVD: - if (m_bRemainingTime) { + if (m_bOSDDisplayTime) { m_OSD.DisplayMessage(OSD_TOPLEFT, m_wndStatusBar.GetStatusTimer()); } break; @@ -1891,7 +1840,7 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) REFERENCE_TIME rtNow = REFERENCE_TIME(tNow - NowNext.startTime) * 10000000; REFERENCE_TIME rtDur = REFERENCE_TIME(NowNext.duration) * 10000000; m_wndStatusBar.SetStatusTimer(rtNow, rtDur, false, TIME_FORMAT_MEDIA_TIME); - if (m_bRemainingTime) { + if (m_bOSDDisplayTime) { m_OSD.DisplayMessage(OSD_TOPLEFT, m_wndStatusBar.GetStatusTimer()); } } else { @@ -1983,7 +1932,7 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) DWORD nAvg = pBRI->GetAverageBitRate() / 1000; if (nAvg > 0) { - sInfo.AppendFormat(_T("[%u]: %lu/%lu Kb/s "), i, nAvg, pBRI->GetCurrentBitRate() / 1000); + sInfo.AppendFormat(_T("[%u]: %lu/%lu kb/s "), i, nAvg, pBRI->GetCurrentBitRate() / 1000); } } i++; @@ -2234,7 +2183,9 @@ void CMainFrame::DoAfterPlaybackEvent() bool bExitFullScreen = false; bool bNoMoreMedia = false; - if (s.nCLSwitches & CLSW_CLOSE) { + if (s.nCLSwitches & CLSW_DONOTHING) { + // Do nothing + } else if (s.nCLSwitches & CLSW_CLOSE) { SendMessage(WM_COMMAND, ID_FILE_EXIT); } else if (s.nCLSwitches & CLSW_MONITOROFF) { m_fEndOfStream = true; @@ -2304,6 +2255,10 @@ void CMainFrame::DoAfterPlaybackEvent() } } + if (AfxGetMyApp()->m_fClosingState) { + return; + } + if (m_fEndOfStream) { m_OSD.EnableShowMessage(false); SendMessage(WM_COMMAND, ID_PLAY_PAUSE); @@ -2345,7 +2300,7 @@ void CMainFrame::GraphEventComplete() DoAfterPlaybackEvent(); } else if (m_wndPlaylistBar.GetCount() > 1) { int nLoops = m_nLoops; - SendMessage(WM_COMMAND, ID_NAVIGATE_SKIPFORWARD); + SendMessage(WM_COMMAND, ID_NAVIGATE_SKIPFORWARDFILE); m_nLoops = nLoops; } else { if (GetMediaState() == State_Stopped) { @@ -2374,7 +2329,7 @@ LRESULT CMainFrame::OnGraphNotify(WPARAM wParam, LPARAM lParam) LONG evCode = 0; LONG_PTR evParam1, evParam2; - while (m_pME && SUCCEEDED(m_pME->GetEvent(&evCode, &evParam1, &evParam2, 0))) { + while (!AfxGetMyApp()->m_fClosingState && m_pME && SUCCEEDED(m_pME->GetEvent(&evCode, &evParam1, &evParam2, 0))) { #ifdef _DEBUG TRACE(_T("--> CMainFrame::OnGraphNotify on thread: %lu; event: 0x%08x (%ws)\n"), GetCurrentThreadId(), evCode, GetEventString(evCode)); #endif @@ -4111,6 +4066,13 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS) bool fSetForegroundWindow = false; + auto applyRandomizeSwitch = [&]() { + if (s.nCLSwitches & CLSW_RANDOMIZE) { + m_wndPlaylistBar.Randomize(); + s.nCLSwitches &= ~CLSW_RANDOMIZE; + } + }; + if ((s.nCLSwitches & CLSW_DVD) && !s.slFiles.IsEmpty()) { SendMessage(WM_COMMAND, ID_FILE_CLOSEMEDIA); fSetForegroundWindow = true; @@ -4141,6 +4103,7 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS) } m_wndPlaylistBar.Open(sl, true); + applyRandomizeSwitch(); OpenCurPlaylistItem(); } else if (s.nCLSwitches & CLSW_DEVICE) { SendMessage(WM_COMMAND, ID_FILE_OPENDEVICE); @@ -4148,7 +4111,7 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS) CAtlList sl; sl.AddTailList(&s.slFiles); - ParseDirs(sl); + PathUtils::ParseDirs(sl); bool fMulti = sl.GetCount() > 1; @@ -4176,6 +4139,7 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS) if ((s.nCLSwitches & CLSW_ADD) && !IsPlaylistEmpty()) { m_wndPlaylistBar.Append(sl, fMulti, &s.slSubs); + applyRandomizeSwitch(); if (s.nCLSwitches & (CLSW_OPEN | CLSW_PLAY)) { m_wndPlaylistBar.SetLast(); @@ -4186,6 +4150,7 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS) fSetForegroundWindow = true; m_wndPlaylistBar.Open(sl, fMulti, &s.slSubs); + applyRandomizeSwitch(); OpenCurPlaylistItem((s.nCLSwitches & CLSW_STARTVALID) ? s.rtStart : 0); s.nCLSwitches &= ~CLSW_STARTVALID; @@ -4193,6 +4158,7 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS) } } } else { + applyRandomizeSwitch(); s.nCLSwitches = CLSW_NONE; } @@ -4359,39 +4325,39 @@ void CMainFrame::OnFileReopen() OpenCurPlaylistItem(); } -void CMainFrame::OnDropFiles(HDROP hDropInfo) +DROPEFFECT CMainFrame::OnDropAccept(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) { - SetForegroundWindow(); - - UINT nFiles = ::DragQueryFile(hDropInfo, UINT_MAX, nullptr, 0); - - CAtlList sl; - for (UINT iFile = 0; iFile < nFiles; iFile++) { - CString fn; - fn.ReleaseBuffer(::DragQueryFile(hDropInfo, iFile, fn.GetBuffer(MAX_PATH), MAX_PATH)); - sl.AddTail(fn); + ClientToScreen(&point); + if (CMouse::CursorOnRootWindow(point, *this)) { + UpdateControlState(UPDATE_CONTROLS_VISIBILITY); + return (dwKeyState & MK_CONTROL) ? DROPEFFECT_COPY : DROPEFFECT_MOVE; } - ::DragFinish(hDropInfo); + return DROPEFFECT_NONE; +} + +void CMainFrame::OnDropFiles(CAtlList& slFiles, DROPEFFECT dropEffect) +{ + SetForegroundWindow(); - if (sl.IsEmpty()) { + if (slFiles.IsEmpty()) { return; } - if (sl.GetCount() == 1 && OpenBD(sl.GetHead())) { + if (slFiles.GetCount() == 1 && OpenBD(slFiles.GetHead())) { return; } - ParseDirs(sl); + PathUtils::ParseDirs(slFiles); SubtitleInput subInputSelected; if (GetLoadState() == MLS::LOADED && !IsPlaybackCaptureMode() && !m_fAudioOnly && m_pCAP) { - POSITION pos = sl.GetHeadPosition(); + POSITION pos = slFiles.GetHeadPosition(); while (pos) { // Try to open all dropped files as subtitles. If one of the files // cannot be loaded as subtitle, add all files to the playlist. SubtitleInput subInput; - if (LoadSubtitle(sl.GetNext(pos), &subInput)) { + if (LoadSubtitle(slFiles.GetNext(pos), &subInput)) { if (!subInputSelected.pSubStream) { subInputSelected = subInput; } @@ -4408,16 +4374,20 @@ void CMainFrame::OnDropFiles(HDROP hDropInfo) SetSubtitle(subInputSelected); CString filenames; - POSITION pos = sl.GetHeadPosition(); + POSITION pos = slFiles.GetHeadPosition(); while (pos) { - CPath fn(sl.GetNext(pos)); + CPath fn(slFiles.GetNext(pos)); fn.StripPath(); filenames.AppendFormat(pos ? _T("%s, ") : _T("%s"), fn); } SendStatusMessage(filenames + ResStr(IDS_SUB_LOADED_SUCCESS), 3000); } else { - m_wndPlaylistBar.Open(sl, true); - OpenCurPlaylistItem(); + if (dropEffect & DROPEFFECT_COPY) { + m_wndPlaylistBar.Append(slFiles, true); + } else { + m_wndPlaylistBar.Open(slFiles, true); + OpenCurPlaylistItem(); + } } } @@ -5415,7 +5385,7 @@ void CMainFrame::OnViewTearingTest() AfxGetMyApp()->m_Renderers.m_bTearingTest = !AfxGetMyApp()->m_Renderers.m_bTearingTest; } -void CMainFrame::OnUpdateViewDisplayStats(CCmdUI* pCmdUI) +void CMainFrame::OnUpdateViewDisplayRendererStats(CCmdUI* pCmdUI) { const CAppSettings& s = AfxGetAppSettings(); bool supported = (s.iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS @@ -5426,12 +5396,12 @@ void CMainFrame::OnUpdateViewDisplayStats(CCmdUI* pCmdUI) pCmdUI->SetCheck(supported && AfxGetMyApp()->m_Renderers.m_iDisplayStats); } -void CMainFrame::OnViewResetStats() +void CMainFrame::OnViewResetRendererStats() { AfxGetMyApp()->m_Renderers.m_bResetStats = true; // Reset by "consumer" } -void CMainFrame::OnViewDisplayStatsSC() +void CMainFrame::OnViewDisplayRendererStats() { const CAppSettings& s = AfxGetAppSettings(); bool supported = (s.iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS @@ -6167,24 +6137,67 @@ void CMainFrame::OnViewVSyncOffsetDecrease() m_OSD.DisplayMessage(OSD_TOPRIGHT, strOSD); } -void CMainFrame::OnUpdateViewRemainingTime(CCmdUI* pCmdUI) +void CMainFrame::OnUpdateViewOSDDisplayTime(CCmdUI* pCmdUI) { const CAppSettings& s = AfxGetAppSettings(); - pCmdUI->Enable(s.fShowOSD && (GetLoadState() != MLS::CLOSED)); - pCmdUI->SetCheck(m_bRemainingTime); + pCmdUI->Enable(s.fShowOSD && GetLoadState() != MLS::CLOSED); + pCmdUI->SetCheck(m_bOSDDisplayTime); } -void CMainFrame::OnViewRemainingTime() +void CMainFrame::OnViewOSDDisplayTime() { - m_bRemainingTime = !m_bRemainingTime; + m_bOSDDisplayTime = !m_bOSDDisplayTime; - if (!m_bRemainingTime) { + if (!m_bOSDDisplayTime) { m_OSD.ClearMessage(); } OnTimer(TIMER_STREAMPOSPOLLER2); } +void CMainFrame::OnUpdateViewOSDShowFileName(CCmdUI* pCmdUI) +{ + const CAppSettings& s = AfxGetAppSettings(); + pCmdUI->Enable(s.fShowOSD && GetLoadState() != MLS::CLOSED); +} + +void CMainFrame::OnViewOSDShowFileName() +{ + CString strOSD; + switch (GetPlaybackMode()) { + case PM_FILE: + strOSD = GetFileName(); + break; + case PM_DVD: + strOSD = _T("DVD"); + if (m_pDVDI) { + CString path; + ULONG len = 0; + if (SUCCEEDED(m_pDVDI->GetDVDDirectory(path.GetBuffer(MAX_PATH), MAX_PATH, &len)) && len) { + path.ReleaseBuffer(); + if (path.Find(_T("\\VIDEO_TS")) == 2) { + strOSD.AppendFormat(_T(" - %s"), GetDriveLabel(CPath(path))); + } else { + strOSD.AppendFormat(_T(" - %s"), path); + } + } + } + break; + case PM_ANALOG_CAPTURE: + strOSD = GetCaptureTitle(); + break; + case PM_DIGITAL_CAPTURE: + UpdateCurrentChannelInfo(true, false); + break; + default: // Shouldn't happen + ASSERT(FALSE); + return; + } + if (!strOSD.IsEmpty()) { + m_OSD.DisplayMessage(OSD_TOPLEFT, strOSD); + } +} + void CMainFrame::OnD3DFullscreenToggle() { CAppSettings& s = AfxGetAppSettings(); @@ -6507,7 +6520,7 @@ void CMainFrame::OnViewFullscreenSecondary() { const CAppSettings& s = AfxGetAppSettings(); - if (IsD3DFullScreenMode() || (s.IsD3DFullscreen() && !m_fFullScreen)) { + if (IsD3DFullScreenMode() || (s.IsD3DFullscreen() && !m_fFullScreen && !m_fAudioOnly)) { ToggleD3DFullscreen(false); } else { ToggleFullscreen(true, false); @@ -7163,7 +7176,7 @@ void CMainFrame::OnPlayStop() __int64 start, stop; m_wndSeekBar.GetRange(start, stop); if (!IsPlaybackCaptureMode()) { - m_wndStatusBar.SetStatusTimer(m_wndSeekBar.GetPos(), stop, !!m_wndSubresyncBar.IsWindowVisible(), GetTimeFormat()); + m_wndStatusBar.SetStatusTimer(m_wndSeekBar.GetPos(), stop, IsSubresyncBarVisible(), GetTimeFormat()); } SetAlwaysOnTop(AfxGetAppSettings().iOnTop); @@ -7407,7 +7420,6 @@ void CMainFrame::OnPlaySeekKey(UINT nID) void CMainFrame::OnUpdatePlaySeek(CCmdUI* pCmdUI) { bool fEnable = false; - OAFilterState fs = GetMediaState(); if (GetLoadState() == MLS::LOADED) { fEnable = true; @@ -8136,58 +8148,89 @@ void CMainFrame::OnAfterplayback(UINT nID) WORD osdMsg = 0; bool bDisable = false; - auto toogleOption = [&](UINT64 nID) { + auto toggleOption = [&](UINT64 nID) { bDisable = !!(s.nCLSwitches & nID); s.nCLSwitches &= ~CLSW_AFTERPLAYBACK_MASK | nID; s.nCLSwitches ^= nID; }; switch (nID) { - case ID_AFTERPLAYBACK_CLOSE: - toogleOption(CLSW_CLOSE); - osdMsg = IDS_AFTERPLAYBACK_CLOSE; + case ID_AFTERPLAYBACK_EXIT: + toggleOption(CLSW_CLOSE); + osdMsg = IDS_AFTERPLAYBACK_EXIT; break; case ID_AFTERPLAYBACK_STANDBY: - toogleOption(CLSW_STANDBY); + toggleOption(CLSW_STANDBY); osdMsg = IDS_AFTERPLAYBACK_STANDBY; break; case ID_AFTERPLAYBACK_HIBERNATE: - toogleOption(CLSW_HIBERNATE); + toggleOption(CLSW_HIBERNATE); osdMsg = IDS_AFTERPLAYBACK_HIBERNATE; break; case ID_AFTERPLAYBACK_SHUTDOWN: - toogleOption(CLSW_SHUTDOWN); + toggleOption(CLSW_SHUTDOWN); osdMsg = IDS_AFTERPLAYBACK_SHUTDOWN; break; case ID_AFTERPLAYBACK_LOGOFF: - toogleOption(CLSW_LOGOFF); + toggleOption(CLSW_LOGOFF); osdMsg = IDS_AFTERPLAYBACK_LOGOFF; break; case ID_AFTERPLAYBACK_LOCK: - toogleOption(CLSW_LOCK); + toggleOption(CLSW_LOCK); osdMsg = IDS_AFTERPLAYBACK_LOCK; break; case ID_AFTERPLAYBACK_MONITOROFF: - toogleOption(CLSW_MONITOROFF); + toggleOption(CLSW_MONITOROFF); osdMsg = IDS_AFTERPLAYBACK_MONITOROFF; break; case ID_AFTERPLAYBACK_PLAYNEXT: - toogleOption(CLSW_PLAYNEXT); + toggleOption(CLSW_PLAYNEXT); osdMsg = IDS_AFTERPLAYBACK_PLAYNEXT; break; + case ID_AFTERPLAYBACK_DONOTHING: + toggleOption(CLSW_DONOTHING); + osdMsg = IDS_AFTERPLAYBACK_DONOTHING; + break; + } + if (bDisable) { + switch (s.eAfterPlayback) { + case CAppSettings::AfterPlayback::PLAY_NEXT: + osdMsg = IDS_AFTERPLAYBACK_PLAYNEXT; + break; + case CAppSettings::AfterPlayback::REWIND: + osdMsg = IDS_AFTERPLAYBACK_REWIND; + break; + case CAppSettings::AfterPlayback::MONITOROFF: + osdMsg = IDS_AFTERPLAYBACK_MONITOROFF; + break; + case CAppSettings::AfterPlayback::CLOSE: + osdMsg = IDS_AFTERPLAYBACK_CLOSE; + break; + case CAppSettings::AfterPlayback::EXIT: + osdMsg = IDS_AFTERPLAYBACK_EXIT; + break; + default: + ASSERT(FALSE); + // no break + case CAppSettings::AfterPlayback::DO_NOTHING: + osdMsg = IDS_AFTERPLAYBACK_DONOTHING; + break; + } } - m_OSD.DisplayMessage(OSD_TOPLEFT, bDisable ? ResStr(IDS_AFTERPLAYBACK_DONOTHING) : ResStr(osdMsg)); + m_OSD.DisplayMessage(OSD_TOPLEFT, ResStr(osdMsg)); } void CMainFrame::OnUpdateAfterplayback(CCmdUI* pCmdUI) { const CAppSettings& s = AfxGetAppSettings(); - bool bChecked = false; + bool bChecked; + bool bRadio = false; switch (pCmdUI->m_nID) { - case ID_AFTERPLAYBACK_CLOSE: + case ID_AFTERPLAYBACK_EXIT: bChecked = !!(s.nCLSwitches & CLSW_CLOSE); + bRadio = s.eAfterPlayback == CAppSettings::AfterPlayback::EXIT; break; case ID_AFTERPLAYBACK_STANDBY: bChecked = !!(s.nCLSwitches & CLSW_STANDBY); @@ -8206,14 +8249,29 @@ void CMainFrame::OnUpdateAfterplayback(CCmdUI* pCmdUI) break; case ID_AFTERPLAYBACK_MONITOROFF: bChecked = !!(s.nCLSwitches & CLSW_MONITOROFF); + bRadio = s.eAfterPlayback == CAppSettings::AfterPlayback::MONITOROFF; break; case ID_AFTERPLAYBACK_PLAYNEXT: bChecked = !!(s.nCLSwitches & CLSW_PLAYNEXT); + bRadio = s.eAfterPlayback == CAppSettings::AfterPlayback::PLAY_NEXT; break; + case ID_AFTERPLAYBACK_DONOTHING: + bChecked = !!(s.nCLSwitches & CLSW_DONOTHING); + bRadio = s.eAfterPlayback == CAppSettings::AfterPlayback::DO_NOTHING; + break; + default: + ASSERT(FALSE); + return; } - pCmdUI->Enable(); - pCmdUI->SetCheck(bChecked); + if (IsMenu(*pCmdUI->m_pMenu)) { + MENUITEMINFO mii; + mii.cbSize = sizeof(mii); + mii.fMask = MIIM_FTYPE | MIIM_STATE; + mii.fType = (bRadio ? MFT_RADIOCHECK : 0); + mii.fState = (bRadio ? MFS_DISABLED : 0) | (bChecked || bRadio ? MFS_CHECKED : 0); + VERIFY(pCmdUI->m_pMenu->SetMenuItemInfo(pCmdUI->m_nID, &mii)); + } } bool CMainFrame::SeekToFileChapter(int iChapter, bool bRelative /*= false*/) @@ -8246,7 +8304,9 @@ bool CMainFrame::SeekToFileChapter(int iChapter, bool bRelative /*= false*/) } CComBSTR name; - if (iChapter >= 0 && DWORD(iChapter) < nChapters && SUCCEEDED(m_pCB->ChapGet(iChapter, &rt, &name))) { + REFERENCE_TIME rtStart, rtStop; + m_wndSeekBar.GetRange(rtStart, rtStop); + if (iChapter >= 0 && DWORD(iChapter) < nChapters && SUCCEEDED(m_pCB->ChapGet(iChapter, &rt, &name)) && rt < rtStop) { SeekTo(rt, false); SendStatusMessage(ResStr(IDS_AG_CHAPTER2) + CString(name), 3000); ret = true; @@ -8604,7 +8664,7 @@ void CMainFrame::OnNavigateMenuItem(UINT nID) m_pDVDC->SelectRelativeButton(DVD_Relative_Lower); break; case 4: - if (m_iDVDDomain != DVD_DOMAIN_Title) { // Casimir666 : for the remote control + if (m_iDVDDomain == DVD_DOMAIN_Title || m_iDVDDomain == DVD_DOMAIN_VideoTitleSetMenu || m_iDVDDomain == DVD_DOMAIN_VideoManagerMenu) { m_pDVDC->ActivateButton(); } else { OnPlayPlay(); @@ -8740,11 +8800,10 @@ void CMainFrame::AddFavorite(bool fDisplayMessage, bool fShowDialog) BeginEnumFilters(m_pGB, pEF, pBF) { CComQIPtr pFSF = pBF; if (pFSF) { - LPOLESTR pFN = nullptr; + CComHeapPtr pFN; AM_MEDIA_TYPE mt; if (SUCCEEDED(pFSF->GetCurFile(&pFN, &mt)) && pFN && *pFN) { fn = CStringW(pFN); - CoTaskMemFree(pFN); } break; } @@ -9095,7 +9154,7 @@ void CMainFrame::OnHelpToolbarImages() void CMainFrame::OnHelpDonate() { - ShellExecute(m_hWnd, _T("open"), _T("http://mpc-hc.org/donate/"), nullptr, nullptr, SW_SHOWDEFAULT); + ShellExecute(m_hWnd, _T("open"), _T("https://mpc-hc.org/donate/"), nullptr, nullptr, SW_SHOWDEFAULT); } ////////////////////////////////// @@ -9119,7 +9178,7 @@ void CMainFrame::SetDefaultWindowRect(int iMonitor) ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_NOZORDER); } SetMenuBarVisibility(AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10); - SetWindowPos(nullptr, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER); + SetWindowPos(nullptr, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); } CSize windowSize; @@ -9156,23 +9215,17 @@ void CMainFrame::SetDefaultWindowRect(int iMonitor) if (!bRestoredWindowPosition) { CMonitors monitors; CMonitor monitor; - if (iMonitor > 0) { + if (iMonitor > 0 && iMonitor <= monitors.GetCount()) { monitor = monitors.GetMonitor(--iMonitor); } else { monitor = CMonitors::GetNearestMonitor(this); } - SetWindowPos(nullptr, 0, 0, windowSize.cx, windowSize.cy, SWP_NOMOVE | SWP_NOZORDER); - monitor.CenterWindowToMonitor(this, TRUE); - } - - if (s.fRememberWindowSize && s.fRememberWindowPos) { - UINT lastWindowType = s.nLastWindowType; - if (lastWindowType == SIZE_MAXIMIZED) { - ShowWindow(SW_MAXIMIZE); - } else if (lastWindowType == SIZE_MINIMIZED) { - ShowWindow(SW_MINIMIZE); - } + MINMAXINFO mmi; + OnGetMinMaxInfo(&mmi); + CRect windowRect(0, 0, max(windowSize.cx, mmi.ptMinTrackSize.x), max(windowSize.cy, mmi.ptMinTrackSize.y)); + monitor.CenterRectToMonitor(windowRect, TRUE); + SetWindowPos(nullptr, windowRect.left, windowRect.top, windowSize.cx, windowSize.cy, SWP_NOZORDER | SWP_NOACTIVATE); } if (s.fSavePnSZoom) { @@ -10094,7 +10147,7 @@ double CMainFrame::GetZoomAutoFitScale(bool bLargerOnly) LONG width = wa.right - wa.left; LONG height = wa.bottom - wa.top; - if (bLargerOnly && (arxy.cx + decorationsSize.cx < width && arxy.cy + decorationsSize.cy < height)) { + if (bLargerOnly && (arxy.cx + decorationsSize.cx <= width && arxy.cy + decorationsSize.cy <= height)) { return 1.0; } @@ -10471,13 +10524,16 @@ void CMainFrame::OpenFile(OpenFileData* pOFD) if (bMainFile) { pOFD->title = fn; - if (!(m_pFSF = m_pGB)) { - BeginEnumFilters(m_pGB, pEF, pBF); - if (m_pFSF = pBF) { - break; - } - EndEnumFilters; + + m_pFSF = m_pGB; + BeginEnumFilters(m_pGB, pEF, pBF); + if (!m_pFSF) { + m_pFSF = pBF; } + if (!m_pKFI) { + m_pKFI = pBF; + } + EndEnumFilters; } bMainFile = false; @@ -11156,6 +11212,8 @@ void CMainFrame::OpenSetupCaptureBar() void CMainFrame::OpenSetupInfoBar(bool bClear /*= true*/) { + bool bRecalcLayout = false; + if (bClear) { m_wndInfoBar.RemoveAllLines(); } @@ -11189,19 +11247,23 @@ void CMainFrame::OpenSetupInfoBar(bool bClear /*= true*/) } EndEnumFilters; - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_TITLE), title); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_TITLE), title); UpdateChapterInInfoBar(); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_AUTHOR), author); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_COPYRIGHT), copyright); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_RATING), rating); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_DESCRIPTION), description); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_AUTHOR), author); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_COPYRIGHT), copyright); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_RATING), rating); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_DESCRIPTION), description); } else if (GetPlaybackMode() == PM_DVD) { CString info('-'); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_DOMAIN), info); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_LOCATION), info); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_VIDEO), info); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_AUDIO), info); - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_SUBTITLES), info); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_DOMAIN), info); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_LOCATION), info); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_VIDEO), info); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_AUDIO), info); + bRecalcLayout |= m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_SUBTITLES), info); + } + + if (bRecalcLayout) { + RecalcLayout(); } } @@ -11223,7 +11285,9 @@ void CMainFrame::UpdateChapterInInfoBar() } } } - m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_CHAPTER), chapter); + if (m_wndInfoBar.SetLine(ResStr(IDS_INFOBAR_CHAPTER), chapter)) { + RecalcLayout(); + } } @@ -11728,6 +11792,7 @@ bool CMainFrame::OpenMediaPrivate(CAutoPtr pOMD) m_pGB->FindInterface(IID_PPV_ARGS(&m_pVMRMC), TRUE); m_pGB->FindInterface(IID_PPV_ARGS(&pVMB), TRUE); m_pGB->FindInterface(IID_PPV_ARGS(&pMFVMB), TRUE); + m_pMVRSR = m_pCAP; m_pMVRS = m_pCAP; pMVTO = m_pCAP; @@ -11784,9 +11849,14 @@ bool CMainFrame::OpenMediaPrivate(CAutoPtr pOMD) // Set start time but seek only after all files are loaded if (pFileData->rtStart > 0) { // Check if an explicit start time was given rtPos = pFileData->rtStart; - } else if (m_bRememberFilePos && !s.filePositions.AddEntry(fn)) { - // else check if we have a remembered position to restore - rtPos = s.filePositions.GetLatestEntry()->llPosition; + } + if (m_bRememberFilePos) { // Check if we want to remember the position + // Always update the file positions list so that the position + // is correctly saved but only restore the remembered position + // if no explicit start time was already set. + if (!s.filePositions.AddEntry(fn) && !rtPos) { + rtPos = s.filePositions.GetLatestEntry()->llPosition; + } } if (rtPos) { @@ -11890,6 +11960,7 @@ void CMainFrame::CloseMediaPrivate() // IMPORTANT: IVMRSurfaceAllocatorNotify/IVMRSurfaceAllocatorNotify9 has to be released before the VMR/VMR9, otherwise it will crash in Release() m_OSD.Stop(); m_pMVRS.Release(); + m_pMVRSR.Release(); m_pCAP2.Release(); m_pCAP.Release(); m_pVMRWC.Release(); @@ -11924,6 +11995,7 @@ void CMainFrame::CloseMediaPrivate() m_pME.Release(); m_pMC.Release(); m_pFSF.Release(); + m_pKFI.Release(); if (m_pGB) { m_pGB->RemoveFromROT(); @@ -11938,30 +12010,6 @@ void CMainFrame::CloseMediaPrivate() m_AudDispName.Empty(); } -void CMainFrame::ParseDirs(CAtlList& sl) -{ - POSITION pos = sl.GetHeadPosition(); - - while (pos) { - CString fn = sl.GetNext(pos); - WIN32_FIND_DATA fd; - ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); - HANDLE hFind = FindFirstFile(fn, &fd); - - if (hFind != INVALID_HANDLE_VALUE) { - if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - if (fn[fn.GetLength() - 1] != '\\') { - fn += '\\'; - } - - COpenDirHelper::RecurseAddDir(fn, &sl); - } - - FindClose(hFind); - } - } -} - bool CMainFrame::SearchInDir(bool bDirForward, bool bLoop /*= false*/) { ASSERT(GetPlaybackMode() == PM_FILE); @@ -13572,36 +13620,34 @@ void CMainFrame::SetSubtitle(const SubtitleInput& subInput) pRTS->SetOverride(s.fUseDefaultSubtitlesStyle, s.subtitlesDefStyle); pRTS->SetAlignment(s.fOverridePlacement, s.nHorPos, s.nVerPos); pRTS->Deinit(); - } else if (clsid == __uuidof(CRLECodedSubtitle)) { - CRLECodedSubtitle* pRHS = (CRLECodedSubtitle*)(ISubStream*)subInput.pSubStream; - - CComQIPtr pSRO = m_pCAP; - CComQIPtr pMVRI = m_pCAP; - - LPWSTR yuvMatrix = nullptr; - int nLen; - if (pMVRI) { - pMVRI->GetString("yuvMatrix", &yuvMatrix, &nLen); - } else if (pSRO) { - pSRO->GetString("yuvMatrix", &yuvMatrix, &nLen); - } + } - int targetBlackLevel = 0, targetWhiteLevel = 255; - if (m_pMVRS) { - m_pMVRS->SettingsGetInteger(L"Black", &targetBlackLevel); - m_pMVRS->SettingsGetInteger(L"White", &targetWhiteLevel); - } else if (pSRO) { - int range = 0; - pSRO->GetInt("supportedLevels", &range); - if (range == 3) { - targetBlackLevel = 16; - targetWhiteLevel = 235; - } - } + CComQIPtr pSRO = m_pCAP; + CComQIPtr pMVRI = m_pCAP; - pRHS->SetSourceTargetInfo(yuvMatrix, targetBlackLevel, targetWhiteLevel); - LocalFree(yuvMatrix); + LPWSTR yuvMatrix = nullptr; + int nLen; + if (pMVRI) { + pMVRI->GetString("yuvMatrix", &yuvMatrix, &nLen); + } else if (pSRO) { + pSRO->GetString("yuvMatrix", &yuvMatrix, &nLen); } + + int targetBlackLevel = 0, targetWhiteLevel = 255; + if (m_pMVRS) { + m_pMVRS->SettingsGetInteger(L"Black", &targetBlackLevel); + m_pMVRS->SettingsGetInteger(L"White", &targetWhiteLevel); + } else if (pSRO) { + int range = 0; + pSRO->GetInt("supportedLevels", &range); + if (range == 3) { + targetBlackLevel = 16; + targetWhiteLevel = 235; + } + } + + subInput.pSubStream->SetSourceTargetInfo(yuvMatrix, targetBlackLevel, targetWhiteLevel); + LocalFree(yuvMatrix); } m_pCurrentSubInput = subInput; @@ -13743,18 +13789,12 @@ bool CMainFrame::GetNeighbouringKeyFrames(REFERENCE_TIME rtTarget, std::pair pKFI; - BeginEnumFilters(m_pGB, pEF, pBF); - if (pKFI = pBF) { - break; - } - EndEnumFilters; UINT nKFs = 0; m_kfs.clear(); - if (pKFI && S_OK == pKFI->GetKeyFrameCount(nKFs) && nKFs > 1) { + if (m_pKFI && S_OK == m_pKFI->GetKeyFrameCount(nKFs) && nKFs > 1) { UINT k = nKFs; m_kfs.resize(k); - if (FAILED(pKFI->GetKeyFrames(&TIME_FORMAT_MEDIA_TIME, m_kfs.data(), k)) || k != nKFs) { + if (FAILED(m_pKFI->GetKeyFrames(&TIME_FORMAT_MEDIA_TIME, m_kfs.data(), k)) || k != nKFs) { m_kfs.clear(); } } @@ -13801,7 +13841,7 @@ void CMainFrame::SeekTo(REFERENCE_TIME rtPos, bool bShowOSD /*= true*/) if (rtPos > stop) { rtPos = stop; } - m_wndStatusBar.SetStatusTimer(rtPos, stop, !!m_wndSubresyncBar.IsWindowVisible(), GetTimeFormat()); + m_wndStatusBar.SetStatusTimer(rtPos, stop, IsSubresyncBarVisible(), GetTimeFormat()); if (bShowOSD) { m_OSD.DisplayMessage(OSD_TOPLEFT, m_wndStatusBar.GetStatusTimer(), 1500); @@ -14136,6 +14176,7 @@ bool CMainFrame::BuildGraphVideoAudio(int fVPreview, bool fVCapture, int fAPrevi CComPtr pMVTO; m_pMVRS.Release(); + m_pMVRSR.Release(); m_OSD.Stop(); m_pCAP2.Release(); @@ -14157,6 +14198,7 @@ bool CMainFrame::BuildGraphVideoAudio(int fVPreview, bool fVCapture, int fAPrevi m_pGB->FindInterface(IID_PPV_ARGS(&m_pMFVDC), TRUE); m_pGB->FindInterface(IID_PPV_ARGS(&m_pMFVP), TRUE); pMVTO = m_pCAP; + m_pMVRSR = m_pCAP; m_pMVRS = m_pCAP; const CAppSettings& s = AfxGetAppSettings(); @@ -14890,63 +14932,37 @@ void CMainFrame::SetPlayState(MPC_PLAYSTATE iState) bool CMainFrame::CreateFullScreenWindow() { - HMONITOR hMonitor; - MONITORINFOEX MonitorInfo; - CRect MonitorRect; + const CAppSettings& s = AfxGetAppSettings(); + CMonitor monitor; if (m_pFullscreenWnd->IsWindow()) { m_pFullscreenWnd->DestroyWindow(); } - ZeroMemory(&MonitorInfo, sizeof(MonitorInfo)); - MonitorInfo.cbSize = sizeof(MonitorInfo); - - CMonitors monitors; - CString str; - CMonitor monitor; - const CAppSettings& s = AfxGetAppSettings(); - hMonitor = nullptr; - - if (!s.iMonitor) { - if (s.strFullScreenMonitor == _T("Current")) { - hMonitor = MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTONEAREST); - } else { - for (int i = 0; i < monitors.GetCount(); i++) { - monitor = monitors.GetMonitor(i); + if (s.iMonitor == 0 && s.strFullScreenMonitor != _T("Current")) { + CMonitors monitors; + for (int i = 0; i < monitors.GetCount(); i++) { + monitor = monitors.GetMonitor(i); + if (monitor.IsMonitor()) { + CString str; monitor.GetName(str); - - if ((monitor.IsMonitor()) && (s.strFullScreenMonitor == str)) { - hMonitor = monitor; + if (s.strFullScreenMonitor == str) { break; } - } - if (!hMonitor) { - hMonitor = MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTONEAREST); + monitor.Detach(); } } - } else { - hMonitor = MonitorFromWindow(m_hWnd, 0); } - if (GetMonitorInfo(hMonitor, &MonitorInfo)) { - MonitorRect = CRect(MonitorInfo.rcMonitor); - // Window creation - DWORD dwStyle = WS_POPUP | WS_VISIBLE; - - m_pFullscreenWnd->CreateEx(WS_EX_TOPMOST | WS_EX_TOOLWINDOW, _T(""), ResStr(IDS_MAINFRM_136), dwStyle, MonitorRect.left, MonitorRect.top, MonitorRect.Width(), MonitorRect.Height(), nullptr, nullptr, nullptr); - //SetWindowLongPtr(m_pFullscreenWnd->m_hWnd, GWL_EXSTYLE, WS_EX_TOPMOST); // TODO : still freezing sometimes... - /* - CRect r; - GetWindowRect(r); - int x = MonitorRect.left + (MonitorRect.Width()/2)-(r.Width()/2); - int y = MonitorRect.top + (MonitorRect.Height()/2)-(r.Height()/2); - int w = r.Width(); - int h = r.Height(); - MoveWindow(x, y, w, h); - */ + if (!monitor.IsMonitor()) { + monitor = CMonitors::GetNearestMonitor(this); } - return m_pFullscreenWnd->IsWindow(); + CRect monitorRect; + monitor.GetMonitorRect(monitorRect); + + return !!m_pFullscreenWnd->CreateEx(WS_EX_TOPMOST | WS_EX_TOOLWINDOW, _T(""), ResStr(IDS_MAINFRM_136), + WS_POPUP | WS_VISIBLE, monitorRect, this, 0); } bool CMainFrame::IsD3DFullScreenMode() const @@ -15328,7 +15344,7 @@ void CMainFrame::SendNowPlayingToApi() // get current location (title number & chapter) if (SUCCEEDED(m_pDVDI->GetCurrentLocation(&Location))) { // get number of chapters in current title - m_pDVDI->GetNumberOfChapters(Location.TitleNum, &ulNumOfChapters); + VERIFY(SUCCEEDED(m_pDVDI->GetNumberOfChapters(Location.TitleNum, &ulNumOfChapters))); } // get total time of title @@ -15754,6 +15770,14 @@ void CMainFrame::OnFileOpendirectory() path = _path; } + // If we got a link file that points to a directory, follow the link + if (PathUtils::IsLinkFile(path)) { + CString resolvedPath = PathUtils::ResolveLinkFile(path); + if (PathUtils::IsDir(resolvedPath)) { + path = resolvedPath; + } + } + if (path[path.GetLength() - 1] != '\\') { path += '\\'; } @@ -15761,7 +15785,7 @@ void CMainFrame::OnFileOpendirectory() CAtlList sl; sl.AddTail(path); if (COpenDirHelper::m_incl_subdir) { - COpenDirHelper::RecurseAddDir(path, &sl); + PathUtils::RecurseAddDir(path, sl); } m_wndPlaylistBar.Open(sl, true); @@ -15774,71 +15798,79 @@ HRESULT CMainFrame::CreateThumbnailToolbar() return E_FAIL; } - if (m_pTaskbarList) { - m_pTaskbarList->Release(); - } - HRESULT hr = CoCreateInstance(CLSID_TaskbarList, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pTaskbarList)); - if (SUCCEEDED(hr)) { + if (m_pTaskbarList || SUCCEEDED(m_pTaskbarList.CoCreateInstance(CLSID_TaskbarList, nullptr, CLSCTX_INPROC_SERVER))) { + bool bRTLLayout = false; // Assume left-to-right layout by default + // Try to locate the window used to display the task bar + if (CWnd* pTaskBarWnd = FindWindow(_T("TaskListThumbnailWnd"), nullptr)) { + bRTLLayout = !!(pTaskBarWnd->GetExStyle() & WS_EX_LAYOUTRTL); + } + CMPCPngImage image; - if (!image.Load(MAKEINTRESOURCE(IDF_WIN7_TOOLBAR))) { - m_pTaskbarList->Release(); - image.CleanUp(); + if (!image.Load(IDF_WIN7_TOOLBAR)) { return E_FAIL; } - BITMAP bi; - image.GetBitmap(&bi); - int nI = bi.bmWidth / bi.bmHeight; - HIMAGELIST hImageList = ImageList_Create(bi.bmHeight, bi.bmHeight, ILC_COLOR32, nI, 0); - - ImageList_Add(hImageList, (HBITMAP)image, 0); - hr = m_pTaskbarList->ThumbBarSetImageList(m_hWnd, hImageList); - - if (SUCCEEDED(hr)) { + CSize size = image.GetSize(); + + if (bRTLLayout) { // We don't want the buttons to be mirrored so we pre-mirror them + // Create memory DCs for the source and destination bitmaps + CDC sourceDC, destDC; + sourceDC.CreateCompatibleDC(nullptr); + destDC.CreateCompatibleDC(nullptr); + // Swap the source bitmap with an empty one + CBitmap sourceImg; + sourceImg.Attach(image.Detach()); + // Create a temporary DC + CClientDC clientDC(nullptr); + // Create the destination bitmap + image.CreateCompatibleBitmap(&clientDC, size.cx, size.cy); + // Select the bitmaps into the DCs + HGDIOBJ oldSourceDCObj = sourceDC.SelectObject(sourceImg); + HGDIOBJ oldDestDCObj = destDC.SelectObject(image); + // Actually flip the bitmap + destDC.StretchBlt(0, 0, size.cx, size.cy, + &sourceDC, size.cx, 0, -size.cx, size.cy, + SRCCOPY); + // Reselect the old objects back into their DCs + sourceDC.SelectObject(oldSourceDCObj); + destDC.SelectObject(oldDestDCObj); + } + + CImageList imageList; + imageList.Create(size.cy, size.cy, ILC_COLOR32, size.cx / size.cy, 0); + imageList.Add(&image, nullptr); + + if (SUCCEEDED(m_pTaskbarList->ThumbBarSetImageList(m_hWnd, imageList.GetSafeHandle()))) { THUMBBUTTON buttons[5] = {}; + for (size_t i = 0; i < _countof(buttons); i++) { + buttons[i].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; + buttons[i].dwFlags = THBF_DISABLED; + buttons[i].iBitmap = 0; // Will be set later + } + // PREVIOUS - buttons[0].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[0].dwFlags = THBF_DISABLED; buttons[0].iId = IDTB_BUTTON3; - buttons[0].iBitmap = 0; - StringCchCopy(buttons[0].szTip, _countof(buttons[0].szTip), ResStr(IDS_AG_PREVIOUS)); - // STOP - buttons[1].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[1].dwFlags = THBF_DISABLED; buttons[1].iId = IDTB_BUTTON1; - buttons[1].iBitmap = 1; - StringCchCopy(buttons[1].szTip, _countof(buttons[1].szTip), ResStr(IDS_AG_STOP)); - // PLAY/PAUSE - buttons[2].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[2].dwFlags = THBF_DISABLED; buttons[2].iId = IDTB_BUTTON2; - buttons[2].iBitmap = 3; - StringCchCopy(buttons[2].szTip, _countof(buttons[2].szTip), ResStr(IDS_AG_PLAYPAUSE)); - // NEXT - buttons[3].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[3].dwFlags = THBF_DISABLED; buttons[3].iId = IDTB_BUTTON4; - buttons[3].iBitmap = 4; - StringCchCopy(buttons[3].szTip, _countof(buttons[3].szTip), ResStr(IDS_AG_NEXT)); - // FULLSCREEN - buttons[4].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[4].dwFlags = THBF_DISABLED; buttons[4].iId = IDTB_BUTTON5; - buttons[4].iBitmap = 5; - StringCchCopy(buttons[4].szTip, _countof(buttons[4].szTip), ResStr(IDS_AG_FULLSCREEN)); - hr = m_pTaskbarList->ThumbBarAddButtons(m_hWnd, ARRAYSIZE(buttons), buttons); + if (bRTLLayout) { // We don't want the buttons to be mirrored so we pre-mirror them + std::reverse(buttons, buttons + _countof(buttons)); + } + + if (SUCCEEDED(m_pTaskbarList->ThumbBarAddButtons(m_hWnd, _countof(buttons), buttons))) { + return UpdateThumbarButton(); + } } - ImageList_Destroy(hImageList); - image.CleanUp(); } - return hr; + return E_FAIL; } HRESULT CMainFrame::UpdateThumbarButton() @@ -15863,125 +15895,109 @@ HRESULT CMainFrame::UpdateThumbarButton(MPC_PLAYSTATE iPlayState) return E_FAIL; } + THUMBBUTTON buttons[5] = {}; + + for (size_t i = 0; i < _countof(buttons); i++) { + buttons[i].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; + } + + buttons[0].iId = IDTB_BUTTON3; + buttons[1].iId = IDTB_BUTTON1; + buttons[2].iId = IDTB_BUTTON2; + buttons[3].iId = IDTB_BUTTON4; + buttons[4].iId = IDTB_BUTTON5; + const CAppSettings& s = AfxGetAppSettings(); if (!s.fUseWin7TaskBar) { m_pTaskbarList->SetOverlayIcon(m_hWnd, nullptr, L""); m_pTaskbarList->SetProgressState(m_hWnd, TBPF_NOPROGRESS); - THUMBBUTTON buttons[5] = {}; - - buttons[0].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[0].dwFlags = THBF_HIDDEN; - buttons[0].iId = IDTB_BUTTON3; - - buttons[1].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[1].dwFlags = THBF_HIDDEN; - buttons[1].iId = IDTB_BUTTON1; + for (size_t i = 0; i < _countof(buttons); i++) { + buttons[i].dwFlags = THBF_HIDDEN; + } + } else { + buttons[0].iBitmap = 0; + StringCchCopy(buttons[0].szTip, _countof(buttons[0].szTip), ResStr(IDS_AG_PREVIOUS)); - buttons[2].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[2].dwFlags = THBF_HIDDEN; - buttons[2].iId = IDTB_BUTTON2; + buttons[1].iBitmap = 1; + StringCchCopy(buttons[1].szTip, _countof(buttons[1].szTip), ResStr(IDS_AG_STOP)); - buttons[3].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[3].dwFlags = THBF_HIDDEN; - buttons[3].iId = IDTB_BUTTON4; + buttons[2].iBitmap = 3; + StringCchCopy(buttons[2].szTip, _countof(buttons[2].szTip), ResStr(IDS_AG_PLAYPAUSE)); - buttons[4].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[4].dwFlags = THBF_HIDDEN; - buttons[4].iId = IDTB_BUTTON5; + buttons[3].iBitmap = 4; + StringCchCopy(buttons[3].szTip, _countof(buttons[3].szTip), ResStr(IDS_AG_NEXT)); - HRESULT hr = m_pTaskbarList->ThumbBarUpdateButtons(m_hWnd, ARRAYSIZE(buttons), buttons); - return hr; - } + buttons[4].iBitmap = 5; + StringCchCopy(buttons[4].szTip, _countof(buttons[4].szTip), ResStr(IDS_AG_FULLSCREEN)); - THUMBBUTTON buttons[5] = {}; + if (GetLoadState() == MLS::LOADED) { + HICON hIcon = nullptr; - buttons[0].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[0].dwFlags = (!s.fUseSearchInFolder && m_wndPlaylistBar.GetCount() <= 1 && (m_pCB && m_pCB->ChapGetCount() <= 1)) ? THBF_DISABLED : THBF_ENABLED; - buttons[0].iId = IDTB_BUTTON3; - buttons[0].iBitmap = 0; - StringCchCopy(buttons[0].szTip, _countof(buttons[0].szTip), ResStr(IDS_AG_PREVIOUS)); + buttons[0].dwFlags = (!s.fUseSearchInFolder && m_wndPlaylistBar.GetCount() <= 1 && (m_pCB && m_pCB->ChapGetCount() <= 1)) ? THBF_DISABLED : THBF_ENABLED; + buttons[3].dwFlags = (!s.fUseSearchInFolder && m_wndPlaylistBar.GetCount() <= 1 && (m_pCB && m_pCB->ChapGetCount() <= 1)) ? THBF_DISABLED : THBF_ENABLED; + buttons[4].dwFlags = THBF_ENABLED; - buttons[1].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[1].iId = IDTB_BUTTON1; - buttons[1].iBitmap = 1; - StringCchCopy(buttons[1].szTip, _countof(buttons[1].szTip), ResStr(IDS_AG_STOP)); + if (iPlayState == PS_PLAY) { + buttons[1].dwFlags = THBF_ENABLED; + buttons[2].dwFlags = THBF_ENABLED; + buttons[2].iBitmap = 2; - buttons[2].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[2].iId = IDTB_BUTTON2; - buttons[2].iBitmap = 3; - StringCchCopy(buttons[2].szTip, _countof(buttons[2].szTip), ResStr(IDS_AG_PLAYPAUSE)); + hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TB_PLAY), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE); + m_pTaskbarList->SetProgressState(m_hWnd, m_wndSeekBar.HasDuration() ? TBPF_NORMAL : TBPF_NOPROGRESS); + } else if (iPlayState == PS_STOP) { + buttons[1].dwFlags = THBF_DISABLED; + buttons[2].dwFlags = THBF_ENABLED; + buttons[2].iBitmap = 3; - buttons[3].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[3].dwFlags = (!s.fUseSearchInFolder && m_wndPlaylistBar.GetCount() <= 1 && (m_pCB && m_pCB->ChapGetCount() <= 1)) ? THBF_DISABLED : THBF_ENABLED; - buttons[3].iId = IDTB_BUTTON4; - buttons[3].iBitmap = 4; - StringCchCopy(buttons[3].szTip, _countof(buttons[3].szTip), ResStr(IDS_AG_NEXT)); + hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TB_STOP), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE); + m_pTaskbarList->SetProgressState(m_hWnd, TBPF_NOPROGRESS); + } else if (iPlayState == PS_PAUSE) { + buttons[1].dwFlags = THBF_ENABLED; + buttons[2].dwFlags = THBF_ENABLED; + buttons[2].iBitmap = 3; - buttons[4].dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS; - buttons[4].dwFlags = THBF_ENABLED; - buttons[4].iId = IDTB_BUTTON5; - buttons[4].iBitmap = 5; - StringCchCopy(buttons[4].szTip, _countof(buttons[4].szTip), ResStr(IDS_AG_FULLSCREEN)); + hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TB_PAUSE), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE); + m_pTaskbarList->SetProgressState(m_hWnd, m_wndSeekBar.HasDuration() ? TBPF_PAUSED : TBPF_NOPROGRESS); + } - if (GetLoadState() == MLS::LOADED) { - HICON hIcon = nullptr; - if (iPlayState == PS_PLAY) { - buttons[1].dwFlags = THBF_ENABLED; - buttons[2].dwFlags = THBF_ENABLED; - buttons[2].iBitmap = 2; - - hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TB_PLAY), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE); - m_pTaskbarList->SetProgressState(m_hWnd, m_wndSeekBar.HasDuration() ? TBPF_NORMAL : TBPF_NOPROGRESS); - } else if (iPlayState == PS_STOP) { - buttons[1].dwFlags = THBF_DISABLED; - buttons[2].dwFlags = THBF_ENABLED; - buttons[2].iBitmap = 3; - - hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TB_STOP), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE); - m_pTaskbarList->SetProgressState(m_hWnd, TBPF_NOPROGRESS); - } else if (iPlayState == PS_PAUSE) { - buttons[1].dwFlags = THBF_ENABLED; - buttons[2].dwFlags = THBF_ENABLED; - buttons[2].iBitmap = 3; + if (GetPlaybackMode() == PM_DVD && m_iDVDDomain != DVD_DOMAIN_Title) { + buttons[0].dwFlags = THBF_DISABLED; + buttons[1].dwFlags = THBF_DISABLED; + buttons[2].dwFlags = THBF_DISABLED; + buttons[3].dwFlags = THBF_DISABLED; + } - hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TB_PAUSE), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE); - m_pTaskbarList->SetProgressState(m_hWnd, m_wndSeekBar.HasDuration() ? TBPF_PAUSED : TBPF_NOPROGRESS); - } + m_pTaskbarList->SetOverlayIcon(m_hWnd, hIcon, L""); - if (m_fAudioOnly) { - buttons[4].dwFlags = THBF_DISABLED; - } + if (hIcon != nullptr) { + DestroyIcon(hIcon); + } + } else { + for (size_t i = 0; i < _countof(buttons); i++) { + buttons[i].dwFlags = THBF_DISABLED; + } - if (GetPlaybackMode() == PM_DVD && m_iDVDDomain != DVD_DOMAIN_Title) { - buttons[0].dwFlags = THBF_DISABLED; - buttons[1].dwFlags = THBF_DISABLED; - buttons[2].dwFlags = THBF_DISABLED; - buttons[3].dwFlags = THBF_DISABLED; + m_pTaskbarList->SetOverlayIcon(m_hWnd, nullptr, L""); + m_pTaskbarList->SetProgressState(m_hWnd, TBPF_NOPROGRESS); } - m_pTaskbarList->SetOverlayIcon(m_hWnd, hIcon, L""); + UpdateThumbnailClip(); + } - if (hIcon != nullptr) { - DestroyIcon(hIcon); + // Try to locate the window used to display the task bar to check if it is RTLed + if (CWnd* pTaskBarWnd = FindWindow(_T("TaskListThumbnailWnd"), nullptr)) { + // We don't want the buttons to be mirrored so we pre-mirror them + if (pTaskBarWnd->GetExStyle() & WS_EX_LAYOUTRTL) { + for (UINT i = 0; i < _countof(buttons); i++) { + buttons[i].iBitmap = _countof(buttons) - buttons[i].iBitmap; + } + std::reverse(buttons, buttons + _countof(buttons)); } - } else { - buttons[0].dwFlags = THBF_DISABLED; - buttons[1].dwFlags = THBF_DISABLED; - buttons[2].dwFlags = THBF_DISABLED; - buttons[3].dwFlags = THBF_DISABLED; - buttons[4].dwFlags = THBF_DISABLED; - - m_pTaskbarList->SetOverlayIcon(m_hWnd, nullptr, L""); - m_pTaskbarList->SetProgressState(m_hWnd, TBPF_NOPROGRESS); } - HRESULT hr = m_pTaskbarList->ThumbBarUpdateButtons(m_hWnd, ARRAYSIZE(buttons), buttons); - - UpdateThumbnailClip(); - - return hr; + return m_pTaskbarList->ThumbBarUpdateButtons(m_hWnd, _countof(buttons), buttons); } HRESULT CMainFrame::UpdateThumbnailClip() @@ -16007,11 +16023,6 @@ HRESULT CMainFrame::UpdateThumbnailClip() LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { - if (message == WM_LBUTTONDOWN || message == WM_LBUTTONUP) { - ASSERT(m_pMVRS); - return 42; - } - if ((message == WM_COMMAND) && (THBN_CLICKED == HIWORD(wParam))) { int const wmId = LOWORD(wParam); switch (wmId) { @@ -16042,7 +16053,25 @@ LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) return 0; } - return __super::WindowProc(message, wParam, lParam); + LRESULT ret = 0; + bool bCallOurProc = true; + if (m_pMVRSR) { + // call madVR window proc directly when the interface is available + switch (message) { + case WM_MOUSEMOVE: + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + // CMouseWnd will call madVR window proc + break; + default: + bCallOurProc = !m_pMVRSR->ParentWindowProc(m_hWnd, message, &wParam, &lParam, &ret); + } + } + if (bCallOurProc) { + ret = __super::WindowProc(message, wParam, lParam); + } + + return ret; } bool CMainFrame::IsAeroSnapped() @@ -16464,10 +16493,9 @@ CString CMainFrame::GetFileName() CString path(m_wndPlaylistBar.GetCurFileName()); if (m_pFSF) { - LPOLESTR pFN; + CComHeapPtr pFN; if (SUCCEEDED(m_pFSF->GetCurFile(&pFN, nullptr))) { path = pFN; - CoTaskMemFree(pFN); } } diff --git a/src/mpc-hc/MainFrm.h b/src/mpc-hc/MainFrm.h index c23732c2e01..4cb5618cf75 100644 --- a/src/mpc-hc/MainFrm.h +++ b/src/mpc-hc/MainFrm.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -36,7 +36,7 @@ #include "EditListEditor.h" #include "PPageSheet.h" #include "PPageFileInfoSheet.h" -#include "FileDropTarget.h" +#include "DropTarget.h" #include "KeyProvider.h" #include "GraphThread.h" #include "TimerWrappers.h" @@ -154,8 +154,10 @@ struct SubtitleInput { }; interface ISubClock; +interface IMadVRSubclassReplacement; +interface IMadVRSettings; -class CMainFrame : public CFrameWnd, public CDropTarget +class CMainFrame : public CFrameWnd, public CDropClient { public: enum class Timer32HzSubscriber { @@ -220,6 +222,7 @@ class CMainFrame : public CFrameWnd, public CDropTarget CComQIPtr m_pMS; CComQIPtr m_pFS; CComQIPtr m_pFSF; + CComQIPtr m_pKFI; CComQIPtr m_pQP; CComQIPtr m_pBI; CComQIPtr m_pAMOP; @@ -231,6 +234,7 @@ class CMainFrame : public CFrameWnd, public CDropTarget CComPtr m_pCAP; CComPtr m_pCAP2; + CComPtr m_pMVRSR; CComPtr m_pMVRS; CComQIPtr m_pDVDC; @@ -384,6 +388,10 @@ class CMainFrame : public CFrameWnd, public CDropTarget REFTIME GetAvgTimePerFrame() const; + CDropTarget m_dropTarget; + void OnDropFiles(CAtlList& slFiles, DROPEFFECT dropEffect) override; + DROPEFFECT OnDropAccept(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) override; + public: void StartWebServer(int nPort); void StopWebServer(); @@ -424,6 +432,10 @@ class CMainFrame : public CFrameWnd, public CDropTarget } bool IsD3DFullScreenMode() const; + bool IsSubresyncBarVisible() const { + return !!m_wndSubresyncBar.IsWindowVisible(); + } + CControlBar* m_pLastBar; protected: @@ -554,7 +566,6 @@ class CMainFrame : public CFrameWnd, public CDropTarget bool DoCapture(), StartCapture(), StopCapture(); void DoAfterPlaybackEvent(); - void ParseDirs(CAtlList& sl); bool SearchInDir(bool bDirForward, bool bLoop = false); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); @@ -629,15 +640,6 @@ class CMainFrame : public CFrameWnd, public CDropTarget std::unique_ptr m_pDebugShaders; - CFileDropTarget m_fileDropTarget; - // TODO - DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); - DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); - BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point); - DROPEFFECT OnDropEx(COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point); - void OnDragLeave(); - DROPEFFECT OnDragScroll(DWORD dwKeyState, CPoint point); - LPCTSTR GetRecentFile() const; friend class CPPagePlayback; // TODO @@ -731,7 +733,6 @@ class CMainFrame : public CFrameWnd, public CDropTarget afx_msg void OnFileOpenOpticalDisk(UINT nID); afx_msg void OnFileReopen(); afx_msg void OnFileRecycle(); - afx_msg void OnDropFiles(HDROP hDropInfo); // no menu item afx_msg void OnFileSaveAs(); afx_msg void OnUpdateFileSaveAs(CCmdUI* pCmdUI); afx_msg void OnFileSaveImage(); @@ -815,9 +816,9 @@ class CMainFrame : public CFrameWnd, public CDropTarget afx_msg void OnViewOptions(); afx_msg void OnUpdateViewTearingTest(CCmdUI* pCmdUI); afx_msg void OnViewTearingTest(); - afx_msg void OnUpdateViewDisplayStats(CCmdUI* pCmdUI); - afx_msg void OnViewResetStats(); - afx_msg void OnViewDisplayStatsSC(); + afx_msg void OnUpdateViewDisplayRendererStats(CCmdUI* pCmdUI); + afx_msg void OnViewResetRendererStats(); + afx_msg void OnViewDisplayRendererStats(); afx_msg void OnUpdateViewVSync(CCmdUI* pCmdUI); afx_msg void OnUpdateViewVSyncOffset(CCmdUI* pCmdUI); afx_msg void OnUpdateViewVSyncAccurate(CCmdUI* pCmdUI); @@ -886,8 +887,10 @@ class CMainFrame : public CFrameWnd, public CDropTarget afx_msg void OnViewEnableFrameTimeCorrection(); afx_msg void OnViewVSyncOffsetIncrease(); afx_msg void OnViewVSyncOffsetDecrease(); - afx_msg void OnUpdateViewRemainingTime(CCmdUI* pCmdUI); - afx_msg void OnViewRemainingTime(); + afx_msg void OnUpdateViewOSDDisplayTime(CCmdUI* pCmdUI); + afx_msg void OnViewOSDDisplayTime(); + afx_msg void OnUpdateViewOSDShowFileName(CCmdUI* pCmdUI); + afx_msg void OnViewOSDShowFileName(); afx_msg void OnD3DFullscreenToggle(); afx_msg void OnGotoSubtitle(UINT nID); afx_msg void OnShiftSubtitle(UINT nID); @@ -978,7 +981,7 @@ class CMainFrame : public CFrameWnd, public CDropTarget CWnd* m_pVideoWnd; // Current Video (main display screen or 2nd) CFullscreenWnd* m_pFullscreenWnd; CVMROSD m_OSD; - bool m_bRemainingTime; + bool m_bOSDDisplayTime; int m_nCurSubtitle; long m_lSubtitleShift; REFERENCE_TIME m_rtCurSubPos; @@ -1019,7 +1022,7 @@ class CMainFrame : public CFrameWnd, public CDropTarget CString GetVidPos() const; - ITaskbarList3* m_pTaskbarList; + CComPtr m_pTaskbarList; HRESULT CreateThumbnailToolbar(); HRESULT UpdateThumbarButton(); HRESULT UpdateThumbarButton(MPC_PLAYSTATE iPlayState); diff --git a/src/mpc-hc/MainFrmControls.cpp b/src/mpc-hc/MainFrmControls.cpp index 0aaaea205c3..d9588e9c26e 100644 --- a/src/mpc-hc/MainFrmControls.cpp +++ b/src/mpc-hc/MainFrmControls.cpp @@ -21,6 +21,7 @@ #include "stdafx.h" #include "MainFrmControls.h" #include "MainFrm.h" +#include #define DELAY_SHOW_NOT_LOADED_TIME_MS 3000 diff --git a/src/mpc-hc/MediaFormats.cpp b/src/mpc-hc/MediaFormats.cpp index c626ce21bc7..7d1b283e02b 100644 --- a/src/mpc-hc/MediaFormats.cpp +++ b/src/mpc-hc/MediaFormats.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -232,7 +232,8 @@ void CMediaFormats::UpdateData(bool fSave) ADDFMT((_T("ivf"), ResStr(IDS_MFMT_IVF), _T("ivf"))); ADDFMT((_T("swf"), ResStr(IDS_MFMT_SWF), _T("swf"), false, _T("ShockWave ActiveX control"), ShockWave)); ADDFMT((_T("other"), ResStr(IDS_MFMT_OTHER), _T("divx amv"))); - ADDFMT((_T("ac3dts"), ResStr(IDS_MFMT_AC3), _T("ac3 dts"), true)); + ADDFMT((_T("ac3"), ResStr(IDS_MFMT_AC3), _T("ac3"), true)); + ADDFMT((_T("dts"), ResStr(IDS_MFMT_DTS), _T("dts dtshd dtsma"), true)); ADDFMT((_T("aiff"), ResStr(IDS_MFMT_AIFF), _T("aif aifc aiff"), true)); ADDFMT((_T("alac"), ResStr(IDS_MFMT_ALAC), _T("alac"), true)); ADDFMT((_T("amr"), ResStr(IDS_MFMT_AMR), _T("amr"), true)); diff --git a/src/mpc-hc/MiniDump.cpp b/src/mpc-hc/MiniDump.cpp deleted file mode 100644 index fcea88916b2..00000000000 --- a/src/mpc-hc/MiniDump.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * (C) 2008-2014 see Authors.txt - * - * This file is part of MPC-HC. - * - * MPC-HC is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * MPC-HC is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include "stdafx.h" -#include -#include -#include "mplayerc.h" -#include "resource.h" -#include "WinAPIUtils.h" -#include "PathUtils.h" -#include "WinApiFunc.h" -#include "VersionInfo.h" -#include "mpc-hc_config.h" -#include "MiniDump.h" - -void CMiniDump::Enable() -{ -#ifndef _DEBUG - SetUnhandledExceptionFilter(UnhandledExceptionFilter); -#endif -}; - -void CMiniDump::Disable() -{ -#ifndef _DEBUG - SetUnhandledExceptionFilter(nullptr); -#endif -}; - -#ifndef _DEBUG -LONG WINAPI CMiniDump::UnhandledExceptionFilter(EXCEPTION_POINTERS* pExceptionPointers) -{ - LONG retval = EXCEPTION_CONTINUE_SEARCH; - -#if ENABLE_MINIDUMP || ENABLE_FULLDUMP - CString strResult; - CPath dumpPath; - bool bDumpCreated = false; - - const WinapiFunc fnMiniDumpWriteDump = { "DbgHelp.dll", "MiniDumpWriteDump" }; - - if (fnMiniDumpWriteDump && AfxGetMyApp()->GetAppSavePath(dumpPath) && (PathUtils::Exists(dumpPath) || CreateDirectory(dumpPath, nullptr))) { - dumpPath.Append(CString(AfxGetApp()->m_pszExeName) + _T(".exe.") + VersionInfo::GetVersionString() + _T(".dmp")); - - HANDLE hFile = ::CreateFile(dumpPath, GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr); - - if (hFile != INVALID_HANDLE_VALUE) { - MINIDUMP_EXCEPTION_INFORMATION ExInfo = { ::GetCurrentThreadId(), pExceptionPointers, FALSE }; - MINIDUMP_TYPE dumpType = (MINIDUMP_TYPE)( -#if ENABLE_FULLDUMP - MiniDumpWithFullMemory | - MiniDumpWithHandleData | - MiniDumpWithThreadInfo | - MiniDumpWithProcessThreadData | - MiniDumpWithFullMemoryInfo | - MiniDumpWithUnloadedModules | - MiniDumpIgnoreInaccessibleMemory | - MiniDumpWithTokenInformation -#else - MiniDumpWithHandleData | - MiniDumpWithFullMemoryInfo | - MiniDumpWithThreadInfo | - MiniDumpWithUnloadedModules | - MiniDumpWithProcessThreadData -#endif // ENABLE_FULLDUMP - ); - - bDumpCreated = !!fnMiniDumpWriteDump(::GetCurrentProcess(), ::GetCurrentProcessId(), hFile, dumpType, (pExceptionPointers ? &ExInfo : nullptr), nullptr, nullptr); - - ::CloseHandle(hFile); - } - } - - if (bDumpCreated) { - strResult.Format(ResStr(IDS_MPC_CRASH), dumpPath); - retval = EXCEPTION_EXECUTE_HANDLER; - } else { - strResult.Format(ResStr(IDS_MPC_MINIDUMP_FAIL), dumpPath, GetLastError()); - } - - switch (MessageBox(AfxGetApp()->GetMainWnd()->GetSafeHwnd(), strResult, _T("MPC-HC - Mini Dump"), (bDumpCreated ? MB_YESNO : MB_OK) | MB_TOPMOST)) { - case IDYES: - ShellExecute(nullptr, _T("open"), BUGS_URL, nullptr, nullptr, SW_SHOWDEFAULT); - ExploreToFile(dumpPath); - break; - case IDNO: - retval = EXCEPTION_CONTINUE_SEARCH; // rethrow the exception to make easier attaching a debugger - break; - } -#else - if (MessageBox(AfxGetApp()->GetMainWnd()->GetSafeHwnd(), ResStr(IDS_MPC_BUG_REPORT), ResStr(IDS_MPC_BUG_REPORT_TITLE), MB_YESNO | MB_TOPMOST) == IDYES) { - ShellExecute(nullptr, _T("open"), DOWNLOAD_URL, nullptr, nullptr, SW_SHOWDEFAULT); - } -#endif // DISABLE_MINIDUMP - - return retval; -} -#endif diff --git a/src/mpc-hc/MouseTouch.cpp b/src/mpc-hc/MouseTouch.cpp index 0162ec5dd18..1bb2160881a 100644 --- a/src/mpc-hc/MouseTouch.cpp +++ b/src/mpc-hc/MouseTouch.cpp @@ -22,6 +22,7 @@ #include "MouseTouch.h" #include "MainFrm.h" #include "FullscreenWnd.h" +#include #define CURSOR_HIDE_TIMEOUT 2000 @@ -229,27 +230,25 @@ void CMouse::EventCallback(MpcEvent ev) // madVR compatibility layer for exclusive mode seekbar bool CMouse::UsingMVR() const { - return !!m_pMainFrame->m_pMVRS; + return !!m_pMainFrame->m_pMVRSR; } void CMouse::MVRMove(UINT nFlags, const CPoint& point) { if (UsingMVR()) { - CPoint mappedPoint(point); - MapWindowPoints(GetWnd(), m_pMainFrame->m_hWnd, &mappedPoint, 1); WPARAM wp = nFlags; - LPARAM lp = MAKELPARAM(mappedPoint.x, mappedPoint.y); - m_pMainFrame->SendMessage(WM_MOUSEMOVE, wp, lp); + LPARAM lp = MAKELPARAM(point.x, point.y); + LRESULT lr = 0; + m_pMainFrame->m_pMVRSR->ParentWindowProc(GetWnd(), WM_MOUSEMOVE, &wp, &lp, &lr); } } bool CMouse::MVRDown(UINT nFlags, const CPoint& point) { bool ret = false; if (UsingMVR()) { - CPoint mappedPoint(point); - MapWindowPoints(GetWnd(), m_pMainFrame->m_hWnd, &mappedPoint, 1); WPARAM wp = nFlags; - LPARAM lp = MAKELPARAM(mappedPoint.x, mappedPoint.y); - ret = (m_pMainFrame->SendMessage(WM_LBUTTONDOWN, wp, lp) != 42); + LPARAM lp = MAKELPARAM(point.x, point.y); + LRESULT lr = 0; + ret = !!m_pMainFrame->m_pMVRSR->ParentWindowProc(GetWnd(), WM_LBUTTONDOWN, &wp, &lp, &lr); } return ret; } @@ -257,11 +256,10 @@ bool CMouse::MVRUp(UINT nFlags, const CPoint& point) { bool ret = false; if (UsingMVR()) { - CPoint mappedPoint(point); - MapWindowPoints(GetWnd(), m_pMainFrame->m_hWnd, &mappedPoint, 1); WPARAM wp = nFlags; - LPARAM lp = MAKELPARAM(mappedPoint.x, mappedPoint.y); - ret = (m_pMainFrame->SendMessage(WM_LBUTTONUP, wp, lp) != 42); + LPARAM lp = MAKELPARAM(point.x, point.y); + LRESULT lr = 0; + ret = !!m_pMainFrame->m_pMVRSR->ParentWindowProc(GetWnd(), WM_LBUTTONUP, &wp, &lp, &lr); } return ret; } diff --git a/src/mpc-hc/MouseTouch.h b/src/mpc-hc/MouseTouch.h index 9948b835c39..0651330ec09 100644 --- a/src/mpc-hc/MouseTouch.h +++ b/src/mpc-hc/MouseTouch.h @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -52,8 +52,10 @@ class CMouse CMouse& operator=(const CMouse&) = delete; -private: +protected: const bool m_bD3DFS; + +private: CMainFrame* m_pMainFrame; bool m_bMouseHiderStarted; CPoint m_mouseHiderStartScreenPoint; @@ -157,4 +159,8 @@ class CMouseWnd : public CWnd, public CMouse virtual CWnd& GetWnd() override final { return *this; } + + virtual ULONG GetGestureStatus(CPoint) override { + return m_bD3DFS ? TABLET_DISABLE_PRESSANDHOLD : 0; + } }; diff --git a/src/mpc-hc/MpcApi.h b/src/mpc-hc/MpcApi.h index a4c675a1ef9..34177f75552 100644 --- a/src/mpc-hc/MpcApi.h +++ b/src/mpc-hc/MpcApi.h @@ -1,5 +1,5 @@ /* - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -53,7 +53,7 @@ typedef enum MPC_LOADSTATE { MLS_LOADED, MLS_CLOSING, MLS_FAILING, -}; +} MPC_LOADSTATE; typedef enum MPC_PLAYSTATE { @@ -61,7 +61,7 @@ typedef enum MPC_PLAYSTATE { PS_PAUSE = 1, PS_STOP = 2, PS_UNUSED = 3 -}; +} MPC_PLAYSTATE; struct MPC_OSDDATA { @@ -266,4 +266,4 @@ typedef enum MPCAPI_COMMAND : // Show host defined OSD message string CMD_OSDSHOWMESSAGE = 0xA0005000 -}; +} MPCAPI_COMMAND; diff --git a/src/mpc-hc/Mpeg2SectionData.cpp b/src/mpc-hc/Mpeg2SectionData.cpp index 99bbc1259d6..86314baffdb 100644 --- a/src/mpc-hc/Mpeg2SectionData.cpp +++ b/src/mpc-hc/Mpeg2SectionData.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -26,7 +26,9 @@ #include "Mpeg2SectionData.h" #include "FreeviewEPGDecode.h" #include "resource.h" +#include "Logger.h" +#define BDA_LOG Logger::LOG #define BeginEnumDescriptors(gb, nType, nLength) \ { \ @@ -38,7 +40,7 @@ #define SkipDescriptor(gb, nType, nLength) \ gb.ReadBuffer(DescBuffer, nLength); \ - TRACE(_T("Skipped descriptor : 0x%02x\n"), nType); \ + BDA_LOG(_T("Skipped descriptor : 0x%02x"), nType); \ UNREFERENCED_PARAMETER(nType); #define EndEnumDescriptors }} @@ -214,6 +216,8 @@ DVB_STREAM_TYPE CMpeg2DataParser::ConvertToDVBType(PES_STREAM_TYPE nType) return DVB_MPA; case VIDEO_STREAM_H264: return DVB_H264; + case VIDEO_STREAM_HEVC: + return DVB_HEVC; case AUDIO_STREAM_AC3: return DVB_AC3; case AUDIO_STREAM_AC3_PLUS: @@ -292,7 +296,7 @@ HRESULT CMpeg2DataParser::ParseSDT(ULONG ulFreq) gb.ReadBuffer(DescBuffer, nLength); // service_name DescBuffer[nLength] = 0; Channel.SetName(ConvertString(DescBuffer, nLength)); - TRACE(_T("%-20s %lu\n"), Channel.GetName(), Channel.GetSID()); + BDA_LOG(_T("%-20s %lu"), Channel.GetName(), Channel.GetSID()); break; default: SkipDescriptor(gb, nType, nLength); // descriptor() @@ -310,10 +314,11 @@ HRESULT CMpeg2DataParser::ParseSDT(ULONG ulFreq) case MPEG2_HD_DIGITAL_TV: case AVC_SD_TV: case AVC_HD_TV: + case HEVC_TV: Channels[Channel.GetSID()] = Channel; break; default: - TRACE(_T("DVB: Skipping not supported service: %-20s %lu\n"), Channel.GetName(), Channel.GetSID()); + BDA_LOG(_T("DVB: Skipping not supported service: %-20s %lu"), Channel.GetName(), Channel.GetSID()); break; } } @@ -455,7 +460,7 @@ HRESULT CMpeg2DataParser::ParsePMT(CDVBChannel& Channel) Channel.SetVideoWidth(720); Channel.SetVideoHeight(576); } - } else if ((Channel.GetVideoType() == DVB_H264) && (Channel.GetVideoPID())) { + } else if ((Channel.GetVideoType() == DVB_H264 || Channel.GetVideoType() == DVB_HEVC) && (Channel.GetVideoPID())) { if (Channel.GetVideoFps() == DVB_FPS_NONE) { Channel.SetVideoFps(DVB_FPS_25_0); } @@ -716,7 +721,7 @@ HRESULT CMpeg2DataParser::ParseNIT() WORD logical_channel_number = (WORD)gb.BitRead(10); if (Channels.Lookup(service_id)) { Channels[service_id].SetOriginNumber(logical_channel_number); - TRACE(_T("NIT association : %d -> %s\n"), logical_channel_number, Channels[service_id].ToString()); + BDA_LOG(_T("NIT association : %d -> %s"), logical_channel_number, Channels[service_id].ToString()); } } break; diff --git a/src/mpc-hc/OpenDirHelper.cpp b/src/mpc-hc/OpenDirHelper.cpp index 0d5686fe297..244ee9f8192 100644 --- a/src/mpc-hc/OpenDirHelper.cpp +++ b/src/mpc-hc/OpenDirHelper.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,6 +22,7 @@ #include "stdafx.h" #include "MainFrm.h" #include "OpenDirHelper.h" +#include "PathUtils.h" WNDPROC COpenDirHelper::CBProc; @@ -110,27 +111,3 @@ int CALLBACK COpenDirHelper::BrowseCallbackProcDIR(HWND hwnd, UINT uMsg, LPARAM return 0; } - -void COpenDirHelper::RecurseAddDir(CString path, CAtlList* sl) -{ - WIN32_FIND_DATA fd; - ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); - - HANDLE hFind = FindFirstFile(path + _T("*.*"), &fd); - if (hFind != INVALID_HANDLE_VALUE) { - do { - CString f_name = fd.cFileName; - if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (f_name != _T(".")) && (f_name != _T(".."))) { - CString fullpath = path + f_name; - if (fullpath[fullpath.GetLength() - 1] != '\\') { - fullpath += '\\'; - } - sl->AddTail(fullpath); - RecurseAddDir(fullpath, sl); - } else { - continue; - } - } while (FindNextFile(hFind, &fd)); - FindClose(hFind); - } -} diff --git a/src/mpc-hc/OpenDirHelper.h b/src/mpc-hc/OpenDirHelper.h index 5b93d07fb02..d6d48e6d887 100644 --- a/src/mpc-hc/OpenDirHelper.h +++ b/src/mpc-hc/OpenDirHelper.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -33,6 +33,4 @@ class COpenDirHelper static LRESULT APIENTRY CheckBoxSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static int CALLBACK BrowseCallbackProcDIR(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData); - - static void RecurseAddDir(CString path, CAtlList* sl); }; diff --git a/src/mpc-hc/OpenFileDlg.cpp b/src/mpc-hc/OpenFileDlg.cpp index f32e85d573f..c50821836b3 100644 --- a/src/mpc-hc/OpenFileDlg.cpp +++ b/src/mpc-hc/OpenFileDlg.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -121,27 +121,21 @@ BOOL COpenFileDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) BOOL COpenFileDlg::OnIncludeItem(OFNOTIFYEX* pOFNEx, LRESULT* pResult) { - TCHAR buff[MAX_PATH]; - if (!SHGetPathFromIDList((PIDLIST_ABSOLUTE)pOFNEx->pidl, buff)) { + CString fn; + if (!SHGetPathFromIDList((PIDLIST_ABSOLUTE)pOFNEx->pidl, fn.GetBuffer(MAX_PATH))) { + fn.ReleaseBuffer(0); + IShellFolder* psf = (IShellFolder*)pOFNEx->psf; + PCUITEMID_CHILD pidl = (PCUITEMID_CHILD)pOFNEx->pidl; STRRET s; - HRESULT hr = ((IShellFolder*)pOFNEx->psf)->GetDisplayNameOf((PCUITEMID_CHILD)pOFNEx->pidl, SHGDN_NORMAL | SHGDN_FORPARSING, &s); - if (S_OK != hr) { - return FALSE; - } - switch (s.uType) { - case STRRET_CSTR: - _tcscpy_s(buff, CString(s.cStr)); - break; - case STRRET_WSTR: - _tcscpy_s(buff, CString(s.pOleStr)); - CoTaskMemFree(s.pOleStr); - break; - default: - return FALSE; + CComHeapPtr fnTmp; + if (SUCCEEDED(psf->GetDisplayNameOf(pidl, SHGDN_NORMAL | SHGDN_FORPARSING, &s)) + && SUCCEEDED(StrRetToStr(&s, pidl, &fnTmp))) { + fn = fnTmp; } + } else { + fn.ReleaseBuffer(); } - CString fn(buff); /* WIN32_FILE_ATTRIBUTE_DATA fad; if (GetFileAttributesEx(fn, GetFileExInfoStandard, &fad) diff --git a/src/mpc-hc/PPageAccelTbl.cpp b/src/mpc-hc/PPageAccelTbl.cpp index 94c6271e165..3fba403f043 100644 --- a/src/mpc-hc/PPageAccelTbl.cpp +++ b/src/mpc-hc/PPageAccelTbl.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -1168,7 +1168,8 @@ void CPPageAccelTbl::OnEndListLabelEdit(NMHDR* pNMHDR, LRESULT* pResult) wc.fVirt |= FSHIFT; } wc.fVirt |= FVIRTKEY; - wc.key = cod; + ASSERT(cod < WORD_MAX); + wc.key = (WORD)cod; CString str; HotkeyToString(cod, mod, str); diff --git a/src/mpc-hc/PPageAdvanced.cpp b/src/mpc-hc/PPageAdvanced.cpp index aa38cb2b030..86d640adcc2 100644 --- a/src/mpc-hc/PPageAdvanced.cpp +++ b/src/mpc-hc/PPageAdvanced.cpp @@ -1,5 +1,5 @@ /* -* (C) 2014 see Authors.txt +* (C) 2014-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,6 +22,7 @@ #include #include "PPageAdvanced.h" #include "mplayerc.h" +#include "MainFrm.h" #include "SettingsDefines.h" CPPageAdvanced::CPPageAdvanced() @@ -127,6 +128,7 @@ void CPPageAdvanced::InitSettings() addIntItem(FILE_POS_LONGER, IDS_RS_FILEPOSLONGER, 0, s.iRememberPosForLongerThan, std::make_pair(0, INT_MAX), ResStr(IDS_PPAGEADVANCED_FILE_POS_LONGER)); addBoolItem(FILE_POS_AUDIO, IDS_RS_FILEPOSAUDIO, true, s.bRememberPosForAudioFiles, ResStr(IDS_PPAGEADVANCED_FILE_POS_AUDIO)); addIntItem(COVER_SIZE_LIMIT, IDS_RS_COVER_ART_SIZE_LIMIT, 600, s.nCoverArtSizeLimit, std::make_pair(0, INT_MAX), ResStr(IDS_PPAGEADVANCED_COVER_SIZE_LIMIT)); + addBoolItem(LOGGING, IDS_RS_LOGGING, false, s.bEnableLogging, ResStr(IDS_PPAGEADVANCED_LOGGER)); } BOOL CPPageAdvanced::OnApply() @@ -143,6 +145,11 @@ BOOL CPPageAdvanced::OnApply() s.filePositions.SetMaxSize(s.iRecentFilesNumber); s.dvdPositions.SetMaxSize(s.iRecentFilesNumber); + // There is no main frame when the option dialog is displayed stand-alone + if (CMainFrame* pMainFrame = AfxGetMainFrame()) { + pMainFrame->UpdateControlState(CMainFrame::UPDATE_CONTROLS_VISIBILITY); + } + return __super::OnApply(); } diff --git a/src/mpc-hc/PPageAdvanced.h b/src/mpc-hc/PPageAdvanced.h index ee67e98916d..59caccf0db1 100644 --- a/src/mpc-hc/PPageAdvanced.h +++ b/src/mpc-hc/PPageAdvanced.h @@ -1,5 +1,5 @@ /* -* (C) 2014 see Authors.txt +* (C) 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -20,7 +20,6 @@ #pragma once -#include "AppSettings.h" #include "PPageBase.h" #include "resource.h" #include @@ -40,6 +39,7 @@ class SettingsBase : name(name) , toolTipText(toolTipText) { } + virtual ~SettingsBase() = default; CString GetToolTipText() const { return toolTipText; } CString GetName() const { return name; } @@ -143,7 +143,8 @@ class CPPageAdvanced : public CPPageBase RECENT_FILES_NB, FILE_POS_LONGER, FILE_POS_AUDIO, - COVER_SIZE_LIMIT + COVER_SIZE_LIMIT, + LOGGING }; enum { @@ -178,9 +179,7 @@ class CPPageAdvanced : public CPPageBase virtual BOOL OnInitDialog() override; virtual BOOL OnApply() override; - afx_msg void OnBnClickedSetButton(); afx_msg void OnBnClickedDefaultButton(); - afx_msg void OnUpdateSetButton(CCmdUI* pCmdUI); afx_msg void OnUpdateDefaultButton(CCmdUI* pCmdUI); afx_msg void OnNMDblclk(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnNMCustomdraw(NMHDR* pNMHDR, LRESULT* pResult); diff --git a/src/mpc-hc/PPageAudioSwitcher.cpp b/src/mpc-hc/PPageAudioSwitcher.cpp index 7a0f4f9b232..6ecb5048d8f 100644 --- a/src/mpc-hc/PPageAudioSwitcher.cpp +++ b/src/mpc-hc/PPageAudioSwitcher.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -396,7 +396,7 @@ void CPPageAudioSwitcher::OnCancel() { const CAppSettings& s = AfxGetAppSettings(); - if (m_AudioBoostPos != s.nAudioBoost) { + if ((UINT)m_AudioBoostPos != s.nAudioBoost) { ((CMainFrame*)GetParentFrame())->SetVolumeBoost(s.nAudioBoost); } diff --git a/src/mpc-hc/PPageCapture.cpp b/src/mpc-hc/PPageCapture.cpp index c586a43f0f6..404401c25b3 100644 --- a/src/mpc-hc/PPageCapture.cpp +++ b/src/mpc-hc/PPageCapture.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -491,15 +491,14 @@ void CPPageCapture::FindAnalogDevices() pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)); CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { int i = m_cbAnalogVideo.AddString(CString(var.bstrVal)); - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (SUCCEEDED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) { m_vidnames.Add(CString(strName)); if (s.strAnalogVideo == CString(strName)) { iSel = i; } - CoTaskMemFree(strName); } } } @@ -526,16 +525,15 @@ void CPPageCapture::FindAnalogDevices() pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)); CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { int i = m_cbAnalogAudio.AddString(CString(var.bstrVal)); - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (SUCCEEDED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) { m_audnames.Add(CString(strName)); if (s.strAnalogAudio == CString(strName)) { iSel = i; } - CoTaskMemFree(strName); } } } @@ -637,10 +635,10 @@ void CPPageCapture::FindDigitalDevices() pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)); CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { int i = m_cbDigitalNetworkProvider.AddString(CString(var.bstrVal)); - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (SUCCEEDED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) { m_providernames.Add(CString(strName)); if (s.strBDANetworkProvider == CString(strName)) { @@ -650,7 +648,6 @@ void CPPageCapture::FindDigitalDevices() // Select Microsoft Network Provider by default, other network providers are deprecated. iSel = i; } - CoTaskMemFree(strName); } } } @@ -668,16 +665,15 @@ void CPPageCapture::FindDigitalDevices() pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)); CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { int i = m_cbDigitalTuner.AddString(CString(var.bstrVal)); - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (SUCCEEDED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) { m_tunernames.Add(CString(strName)); if (s.strBDATuner == CString(strName)) { iSel = i; } - CoTaskMemFree(strName); } } } @@ -694,16 +690,15 @@ void CPPageCapture::FindDigitalDevices() pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)); CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { int i = m_cbDigitalReceiver.AddString(CString(var.bstrVal)); - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (SUCCEEDED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) { m_receivernames.Add(CString(strName)); if (s.strBDAReceiver == CString(strName)) { iSel = i; } - CoTaskMemFree(strName); } } } diff --git a/src/mpc-hc/PPageExternalFilters.cpp b/src/mpc-hc/PPageExternalFilters.cpp index c2793121c6b..f2f2d7df533 100644 --- a/src/mpc-hc/PPageExternalFilters.cpp +++ b/src/mpc-hc/PPageExternalFilters.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -326,7 +326,7 @@ BEGIN_MESSAGE_MAP(CPPageExternalFilters, CPPageBase) ON_EN_CHANGE(IDC_EDIT1, OnChangeMerit) ON_NOTIFY(NM_DBLCLK, IDC_TREE1, OnDoubleClickType) ON_NOTIFY(TVN_KEYDOWN, IDC_TREE1, OnKeyDownType) - ON_WM_DROPFILES() + ON_WM_DESTROY() ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify) END_MESSAGE_MAP() @@ -337,7 +337,7 @@ BOOL CPPageExternalFilters::OnInitDialog() { __super::OnInitDialog(); - DragAcceptFiles(TRUE); + m_dropTarget.Register(this); const CAppSettings& s = AfxGetAppSettings(); @@ -375,6 +375,12 @@ BOOL CPPageExternalFilters::OnInitDialog() // EXCEPTION: OCX Property Pages should return FALSE } +void CPPageExternalFilters::OnDestroy() +{ + m_dropTarget.Revoke(); + __super::OnDestroy(); +} + BOOL CPPageExternalFilters::OnApply() { UpdateData(); @@ -821,17 +827,22 @@ void CPPageExternalFilters::OnKeyDownType(NMHDR* pNMHDR, LRESULT* pResult) *pResult = 0; } -void CPPageExternalFilters::OnDropFiles(HDROP hDropInfo) +DROPEFFECT CPPageExternalFilters::OnDropAccept(COleDataObject*, DWORD, CPoint) +{ + return DROPEFFECT_COPY; +} + +void CPPageExternalFilters::OnDropFiles(CAtlList& slFiles, DROPEFFECT) { SetActiveWindow(); - UINT nFiles = ::DragQueryFile(hDropInfo, UINT_MAX, nullptr, 0); - for (UINT iFile = 0; iFile < nFiles; iFile++) { - TCHAR szFileName[MAX_PATH]; - ::DragQueryFile(hDropInfo, iFile, szFileName, MAX_PATH); + POSITION pos = slFiles.GetHeadPosition(); + + while (pos) { + CString fn = slFiles.GetNext(pos); CFilterMapper2 fm2(false); - fm2.Register(szFileName); + fm2.Register(fn); while (!fm2.m_filters.IsEmpty()) { if (FilterOverride* f = fm2.m_filters.RemoveHead()) { @@ -849,7 +860,6 @@ void CPPageExternalFilters::OnDropFiles(HDROP hDropInfo) } } } - ::DragFinish(hDropInfo); } BOOL CPPageExternalFilters::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult) diff --git a/src/mpc-hc/PPageExternalFilters.h b/src/mpc-hc/PPageExternalFilters.h index ae106ff9085..da61e695400 100644 --- a/src/mpc-hc/PPageExternalFilters.h +++ b/src/mpc-hc/PPageExternalFilters.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -24,6 +24,7 @@ #include "PPageBase.h" #include "FloatEdit.h" #include "mplayerc.h" +#include "DropTarget.h" class CPPageExternalFiltersListBox : public CCheckListBox @@ -45,7 +46,7 @@ class CPPageExternalFiltersListBox : public CCheckListBox // CPPageExternalFilters dialog -class CPPageExternalFilters : public CPPageBase +class CPPageExternalFilters : public CPPageBase, public CDropClient { DECLARE_DYNAMIC(CPPageExternalFilters) @@ -65,6 +66,10 @@ class CPPageExternalFilters : public CPPageBase CHexEdit m_dwMerit; CTreeCtrl m_tree; + CDropTarget m_dropTarget; + void OnDropFiles(CAtlList& slFiles, DROPEFFECT) override; + DROPEFFECT OnDropAccept(COleDataObject*, DWORD, CPoint) override; + void StepUp(CCheckListBox& list); void StepDown(CCheckListBox& list); @@ -102,6 +107,6 @@ class CPPageExternalFilters : public CPPageBase afx_msg void OnChangeMerit(); afx_msg void OnDoubleClickType(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnKeyDownType(NMHDR* pNMHDR, LRESULT* pResult); - afx_msg void OnDropFiles(HDROP hDropInfo); + afx_msg void OnDestroy(); afx_msg BOOL OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult); }; diff --git a/src/mpc-hc/PPageFileInfoClip.cpp b/src/mpc-hc/PPageFileInfoClip.cpp index 5ca098972ff..8a43dcbec1f 100644 --- a/src/mpc-hc/PPageFileInfoClip.cpp +++ b/src/mpc-hc/PPageFileInfoClip.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -44,10 +44,9 @@ CPPageFileInfoClip::CPPageFileInfoClip(CString path, IFilterGraph* pFG, IFileSou , m_location(ResStr(IDS_AG_NONE)) { if (pFSF) { - LPOLESTR pFN; + CComHeapPtr pFN; if (SUCCEEDED(pFSF->GetCurFile(&pFN, nullptr))) { m_fn = pFN; - CoTaskMemFree(pFN); } } else if (pDVDI) { ULONG len = 0; diff --git a/src/mpc-hc/PPageFileInfoDetails.cpp b/src/mpc-hc/PPageFileInfoDetails.cpp index 26edf3e90d9..91243035770 100644 --- a/src/mpc-hc/PPageFileInfoDetails.cpp +++ b/src/mpc-hc/PPageFileInfoDetails.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -46,10 +46,9 @@ CPPageFileInfoDetails::CPPageFileInfoDetails(CString path, IFilterGraph* pFG, IS , m_creationDate(ResStr(IDS_AG_NOT_KNOWN)) { if (pFSF) { - LPOLESTR pFN; + CComHeapPtr pFN; if (SUCCEEDED(pFSF->GetCurFile(&pFN, nullptr))) { m_fn = pFN; - CoTaskMemFree(pFN); } } else if (pDVDI) { ULONG len = 0; diff --git a/src/mpc-hc/PPageFileInfoRes.cpp b/src/mpc-hc/PPageFileInfoRes.cpp index a7d2b2ec734..da1ac6b1258 100644 --- a/src/mpc-hc/PPageFileInfoRes.cpp +++ b/src/mpc-hc/PPageFileInfoRes.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -33,10 +33,9 @@ CPPageFileInfoRes::CPPageFileInfoRes(CString path, IFilterGraph* pFG, IFileSourc , m_fn(path) { if (pFSF) { - LPOLESTR pFN = nullptr; + CComHeapPtr pFN; if (SUCCEEDED(pFSF->GetCurFile(&pFN, nullptr))) { m_fn = pFN; - CoTaskMemFree(pFN); } } diff --git a/src/mpc-hc/PPageFileMediaInfo.cpp b/src/mpc-hc/PPageFileMediaInfo.cpp index 8725dc25c08..4459b9e69c1 100644 --- a/src/mpc-hc/PPageFileMediaInfo.cpp +++ b/src/mpc-hc/PPageFileMediaInfo.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -49,10 +49,9 @@ CPPageFileMediaInfo::CPPageFileMediaInfo(CString path, IFileSourceFilter* pFSF, { CComQIPtr pAR; if (pFSF) { - LPOLESTR pFN; + CComHeapPtr pFN; if (SUCCEEDED(pFSF->GetCurFile(&pFN, nullptr))) { m_fn = pFN; - CoTaskMemFree(pFN); } if (CComQIPtr pBF = pFSF) { diff --git a/src/mpc-hc/PPageInternalFilters.cpp b/src/mpc-hc/PPageInternalFilters.cpp index 49cd2ae255f..efd7d75bb1c 100644 --- a/src/mpc-hc/PPageInternalFilters.cpp +++ b/src/mpc-hc/PPageInternalFilters.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -343,9 +343,14 @@ void CPPageInternalFilters::InitFiltersList() #if INTERNAL_SOURCEFILTER_DSM m_filters.Add(filter_t(_T("DirectShow Media"), SOURCE_FILTER, SRC_DSM, 0)); #endif -#if INTERNAL_SOURCEFILTER_DTSAC3 +#if INTERNAL_SOURCEFILTER_AC3 if (bLAVSplitterIsAvailable) { - m_filters.Add(filter_t(_T("DTS/AC3"), SOURCE_FILTER, SRC_DTSAC3, IDS_INTERNAL_LAVF)); + m_filters.Add(filter_t(_T("AC3"), SOURCE_FILTER, SRC_AC3, IDS_INTERNAL_LAVF)); + } +#endif +#if INTERNAL_SOURCEFILTER_DTS + if (bLAVSplitterIsAvailable) { + m_filters.Add(filter_t(_T("DTS/DTS-HD"), SOURCE_FILTER, SRC_DTS, IDS_INTERNAL_LAVF)); } #endif #if INTERNAL_SOURCEFILTER_VTS @@ -396,6 +401,11 @@ void CPPageInternalFilters::InitFiltersList() m_filters.Add(filter_t(_T("WMV/ASF/DVR-MS"), SOURCE_FILTER, SRC_ASF, IDS_INTERNAL_LAVF_WMV)); } #endif +#if INTERNAL_SOURCEFILTER_WTV + if (bLAVSplitterIsAvailable) { + m_filters.Add(filter_t(_T("WTV"), SOURCE_FILTER, SRC_WTV, IDS_INTERNAL_LAVF_WMV)); + } +#endif #if INTERNAL_SOURCEFILTER_OGG if (bLAVSplitterIsAvailable) { m_filters.Add(filter_t(_T("Ogg"), SOURCE_FILTER, SRC_OGG, IDS_INTERNAL_LAVF)); diff --git a/src/mpc-hc/PPageOutput.cpp b/src/mpc-hc/PPageOutput.cpp index 737429e7091..631a19c1628 100644 --- a/src/mpc-hc/PPageOutput.cpp +++ b/src/mpc-hc/PPageOutput.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -154,24 +154,23 @@ BOOL CPPageOutput::OnInitDialog() CString Cbstr; BeginEnumSysDev(CLSID_AudioRendererCategory, pMoniker) { - LPOLESTR olestr = nullptr; + CComHeapPtr olestr; if (FAILED(pMoniker->GetDisplayName(0, 0, &olestr))) { continue; } CStringW str(olestr); - CoTaskMemFree(olestr); m_AudioRendererDisplayNames.Add(CString(str)); CComPtr pPB; if (SUCCEEDED(pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)))) { CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { CString fstr(var.bstrVal); var.Clear(); - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FilterData")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FilterData"), &var, nullptr))) { BSTR* pbstr; if (SUCCEEDED(SafeArrayAccessData(var.parray, (void**)&pbstr))) { fstr.Format(_T("%s (%08x)"), CString(fstr), *((DWORD*)pbstr + 1)); @@ -332,7 +331,7 @@ BOOL CPPageOutput::OnInitDialog() addRenderer(VIDRNDT_DS_NULL_UNCOMP); for (int j = 0; j < m_iDSVRTC.GetCount(); ++j) { - if (m_iDSVideoRendererType == m_iDSVRTC.GetItemData(j)) { + if ((UINT)m_iDSVideoRendererType == m_iDSVRTC.GetItemData(j)) { m_iDSVRTC.SetCurSel(j); break; } @@ -420,7 +419,7 @@ BOOL CPPageOutput::OnApply() // revert to the renderer in the settings m_iDSVideoRendererTypeCtrl.SetCurSel(0); for (int i = 0; i < m_iDSVideoRendererTypeCtrl.GetCount(); ++i) { - if (s.iDSVideoRendererType == m_iDSVideoRendererTypeCtrl.GetItemData(i)) { + if ((UINT)s.iDSVideoRendererType == m_iDSVideoRendererTypeCtrl.GetItemData(i)) { m_iDSVideoRendererTypeCtrl.SetCurSel(i); break; } diff --git a/src/mpc-hc/PPagePlayback.cpp b/src/mpc-hc/PPagePlayback.cpp index 67e58087ba1..f872b5999c4 100644 --- a/src/mpc-hc/PPagePlayback.cpp +++ b/src/mpc-hc/PPagePlayback.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -92,9 +92,6 @@ BEGIN_MESSAGE_MAP(CPPagePlayback, CPPageBase) ON_UPDATE_COMMAND_UI(IDC_COMBO1, OnUpdateAutoZoomCombo) ON_UPDATE_COMMAND_UI(IDC_COMBO2, OnUpdateAfterPlayback) ON_UPDATE_COMMAND_UI(IDC_SPEEDSTEP_SPIN, OnUpdateSpeedStep) - ON_UPDATE_COMMAND_UI(IDC_EDIT4, OnUpdateAutoZoomFactor) - ON_UPDATE_COMMAND_UI(IDC_STATIC2, OnUpdateAutoZoomFactor) - ON_UPDATE_COMMAND_UI(IDC_STATIC3, OnUpdateAutoZoomFactor) ON_UPDATE_COMMAND_UI(IDC_CHECK3, OnUpdateISREnabled) ON_STN_DBLCLK(IDC_STATIC_BALANCE, OnBalanceTextDblClk) @@ -238,12 +235,6 @@ void CPPagePlayback::OnUpdateAfterPlayback(CCmdUI* pCmdUI) pCmdUI->Enable(!IsDlgButtonChecked(IDC_RADIO2)); } -void CPPagePlayback::OnUpdateAutoZoomFactor(CCmdUI* pCmdUI) -{ - int iZoomLevel = m_zoomlevelctrl.GetCurSel(); - pCmdUI->Enable(!!IsDlgButtonChecked(IDC_CHECK5) && (iZoomLevel == 3 || iZoomLevel == 4)); -} - void CPPagePlayback::OnUpdateISREnabled(CCmdUI* pCmdUI) { pCmdUI->Enable(AfxGetAppSettings().IsISRAvailable()); diff --git a/src/mpc-hc/PPagePlayback.h b/src/mpc-hc/PPagePlayback.h index eb45c0acb95..450d7b8e92c 100644 --- a/src/mpc-hc/PPagePlayback.h +++ b/src/mpc-hc/PPagePlayback.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -80,7 +80,6 @@ class CPPagePlayback : public CPPageBase afx_msg void OnUpdateLoopNum(CCmdUI* pCmdUI); afx_msg void OnUpdateAutoZoomCombo(CCmdUI* pCmdUI); afx_msg void OnUpdateAfterPlayback(CCmdUI* pCmdUI); - afx_msg void OnUpdateAutoZoomFactor(CCmdUI* pCmdUI); afx_msg void OnUpdateISREnabled(CCmdUI* pCmdUI); afx_msg void OnUpdateSpeedStep(CCmdUI* pCmdUI); diff --git a/src/mpc-hc/PPageSubStyle.cpp b/src/mpc-hc/PPageSubStyle.cpp index 26ce6a4ff75..5be4ab07649 100644 --- a/src/mpc-hc/PPageSubStyle.cpp +++ b/src/mpc-hc/PPageSubStyle.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -214,7 +214,8 @@ BOOL CPPageSubStyle::OnApply() m_stss.relativeTo = (STSStyle::RelativeTo)m_iRelativeTo; for (size_t i = 0; i < m_alpha.size(); i++) { - m_stss.alpha[i] = BYTE_MAX - m_alpha[i]; + ASSERT(m_alpha[i] <= BYTE_MAX); + m_stss.alpha[i] = BYTE_MAX - BYTE(m_alpha[i]); } if (m_bDefaultStyle) { diff --git a/src/mpc-hc/PPageSubtitles.cpp b/src/mpc-hc/PPageSubtitles.cpp index a471a332896..8b60c1822af 100644 --- a/src/mpc-hc/PPageSubtitles.cpp +++ b/src/mpc-hc/PPageSubtitles.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -274,11 +274,12 @@ BOOL CPPageSubtitles::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult) switch (nID) { case IDC_EDIT4: - auto& substituteEmpty = [](CString & hotkey) { - if (hotkey.IsEmpty()) { + auto substituteEmpty = [](CString && hotkey) -> CString && { + if (hotkey.IsEmpty()) + { hotkey.LoadString(IDS_HOTKEY_NOT_DEFINED); } - return hotkey; + return std::move(hotkey); }; ::SendMessage(pNMHDR->hwndFrom, TTM_SETMAXTIPWIDTH, 0, 320); m_strToolTip.Format(IDS_SUBTITLE_DELAY_STEP_TOOLTIP, diff --git a/src/mpc-hc/PlayerBar.cpp b/src/mpc-hc/PlayerBar.cpp index 47ae1c59243..d567a8886ad 100644 --- a/src/mpc-hc/PlayerBar.cpp +++ b/src/mpc-hc/PlayerBar.cpp @@ -1,5 +1,5 @@ /* - * (C) 2012-2014 see Authors.txt + * (C) 2012-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -85,6 +85,17 @@ void CPlayerBar::OnExitMenuLoop(BOOL bIsTrackPopupMenu) __super::OnExitMenuLoop(bIsTrackPopupMenu); } +void CPlayerBar::OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle) +{ + DWORD dwChangedStyle = dwOldStyle ^ dwNewStyle; + + if (dwChangedStyle & CBRS_FLOATING) { + SaveState(); + } + + __super::OnBarStyleChange(dwOldStyle, dwNewStyle); +} + BOOL CPlayerBar::Create(LPCTSTR lpszWindowName, CWnd* pParentWnd, UINT nID, UINT defDockBarID, CString const& strSettingName) { m_defDockBarID = defDockBarID; @@ -97,10 +108,8 @@ void CPlayerBar::LoadState(CFrameWnd* pParent) { CWinApp* pApp = AfxGetApp(); - CRect r; - pParent->GetWindowRect(r); - CRect rDesktop; - GetDesktopWindow()->GetWindowRect(&rDesktop); + CRect rcDesktop; + GetDesktopWindow()->GetWindowRect(&rcDesktop); CString section = _T("ToolBars\\") + m_strSettingName; @@ -108,22 +117,33 @@ void CPlayerBar::LoadState(CFrameWnd* pParent) UINT dockBarID = pApp->GetProfileInt(section, _T("DockState"), m_defDockBarID); - if (dockBarID == AFX_IDW_DOCKBAR_FLOAT) { - CPoint p; - p.x = pApp->GetProfileInt(section, _T("DockPosX"), r.right); - p.y = pApp->GetProfileInt(section, _T("DockPosY"), r.top); - if (p.x < rDesktop.left) { - p.x = rDesktop.left; + CPoint p; + p.x = pApp->GetProfileInt(section, _T("DockPosX"), CW_USEDEFAULT); + p.y = pApp->GetProfileInt(section, _T("DockPosY"), CW_USEDEFAULT); + if (p.x != CW_USEDEFAULT && p.y != CW_USEDEFAULT) { + if (p.x < rcDesktop.left) { + p.x = rcDesktop.left; } - if (p.y < rDesktop.top) { - p.y = rDesktop.top; + if (p.y < rcDesktop.top) { + p.y = rcDesktop.top; } - if (p.x >= rDesktop.right) { - p.x = rDesktop.right - 1; + if (p.x >= rcDesktop.right) { + p.x = rcDesktop.right - 1; } - if (p.y >= rDesktop.bottom) { - p.y = rDesktop.bottom - 1; + if (p.y >= rcDesktop.bottom) { + p.y = rcDesktop.bottom - 1; } + } else { + p = rcDesktop.CenterPoint(); + p.x -= m_szFloat.cx / 2; + p.y -= m_szFloat.cy / 2; + } + + ASSERT(m_pDockContext); + m_pDockContext->m_uMRUDockID = m_defDockBarID; + m_pDockContext->m_ptMRUFloatPos = p; + + if (dockBarID == AFX_IDW_DOCKBAR_FLOAT) { pParent->FloatControlBar(this, p); } else { pParent->DockControlBar(this, dockBarID); diff --git a/src/mpc-hc/PlayerBar.h b/src/mpc-hc/PlayerBar.h index 89c62119183..52a0e36936a 100644 --- a/src/mpc-hc/PlayerBar.h +++ b/src/mpc-hc/PlayerBar.h @@ -1,5 +1,5 @@ /* - * (C) 2012-2014 see Authors.txt + * (C) 2012-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -45,6 +45,8 @@ class CPlayerBar : public CSizingControlBarG afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu); afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu); + virtual void OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle); + void SetAutohidden(bool bValue); public: diff --git a/src/mpc-hc/PlayerCaptureDialog.cpp b/src/mpc-hc/PlayerCaptureDialog.cpp index 52634979a79..d606b507f9f 100644 --- a/src/mpc-hc/PlayerCaptureDialog.cpp +++ b/src/mpc-hc/PlayerCaptureDialog.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -428,19 +428,18 @@ static void InitCodecList(CAtlArray& codecs, CComboBox& box, const GUID& } c.pBF = pBF; */ - LPOLESTR strName = nullptr; + CComHeapPtr strName; if (FAILED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) { continue; } c.displayName = strName; - CoTaskMemFree(strName); CComPtr pPB; pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)); CComVariant var; - if (!pPB || FAILED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (!pPB || FAILED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { continue; } @@ -1336,7 +1335,7 @@ BOOL CPlayerCaptureDialog::OnInitDialog() { __super::OnInitDialog(); - return TRUE; // return TRUE unless you set the focus to a control + return FALSE; // return FALSE so that the dialog does not steal focus // EXCEPTION: OCX Property Pages should return FALSE } diff --git a/src/mpc-hc/PlayerInfoBar.cpp b/src/mpc-hc/PlayerInfoBar.cpp index 6f039a8f4a9..91e2ad410e8 100644 --- a/src/mpc-hc/PlayerInfoBar.cpp +++ b/src/mpc-hc/PlayerInfoBar.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -37,12 +37,11 @@ CPlayerInfoBar::~CPlayerInfoBar() { } -void CPlayerInfoBar::SetLine(CString label, CString info) +bool CPlayerInfoBar::SetLine(CString label, CString info) { info.Trim(); if (info.IsEmpty()) { - RemoveLine(label); - return; + return RemoveLine(label); } for (size_t idx = 0; idx < m_label.GetCount(); idx++) { @@ -54,7 +53,7 @@ void CPlayerInfoBar::SetLine(CString label, CString info) m_info[idx]->SetWindowText(info); m_tooltip.UpdateTipText(info, m_info[idx]); } - return; + return false; } } @@ -68,6 +67,8 @@ void CPlayerInfoBar::SetLine(CString label, CString info) m_info.Add(i); Relayout(); + + return true; } void CPlayerInfoBar::GetLine(CString label, CString& info) @@ -85,7 +86,7 @@ void CPlayerInfoBar::GetLine(CString label, CString& info) } } -void CPlayerInfoBar::RemoveLine(CString label) +bool CPlayerInfoBar::RemoveLine(CString label) { for (size_t i = 0; i < m_label.GetCount(); i++) { CString tmp; @@ -95,9 +96,10 @@ void CPlayerInfoBar::RemoveLine(CString label) m_label.RemoveAt(i); m_info.RemoveAt(i); Relayout(); - break; + return true; } } + return false; } void CPlayerInfoBar::RemoveAllLines() diff --git a/src/mpc-hc/PlayerInfoBar.h b/src/mpc-hc/PlayerInfoBar.h index 72c542fe742..dfeac5ee027 100644 --- a/src/mpc-hc/PlayerInfoBar.h +++ b/src/mpc-hc/PlayerInfoBar.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -48,9 +48,9 @@ class CPlayerInfoBar : public CDialogBar BOOL Create(CWnd* pParentWnd); - void SetLine(CString label, CString info); + bool SetLine(CString label, CString info); void GetLine(CString label, CString& info); - void RemoveLine(CString label); + bool RemoveLine(CString label); void RemoveAllLines(); protected: diff --git a/src/mpc-hc/PlayerListCtrl.h b/src/mpc-hc/PlayerListCtrl.h index b2b9747d9ba..bfe5d05b945 100644 --- a/src/mpc-hc/PlayerListCtrl.h +++ b/src/mpc-hc/PlayerListCtrl.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -171,6 +171,7 @@ class CPlayerListCtrl : public CListCtrl protected: virtual void PreSubclassWindow(); virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const; + virtual ULONG GetGestureStatus(CPoint) override { return 0; }; DECLARE_MESSAGE_MAP() diff --git a/src/mpc-hc/PlayerNavigationDialog.cpp b/src/mpc-hc/PlayerNavigationDialog.cpp index a7b2f42ba30..86e9c35d324 100644 --- a/src/mpc-hc/PlayerNavigationDialog.cpp +++ b/src/mpc-hc/PlayerNavigationDialog.cpp @@ -1,5 +1,5 @@ /* - * (C) 2010-2014 see Authors.txt + * (C) 2010-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -93,7 +93,11 @@ BOOL CPlayerNavigationDialog::OnInitDialog() m_buttonFilterStations.SetWindowText(ResStr(IDS_DVB_TVNAV_SEETV)); } - return TRUE; // return TRUE unless you set the focus to a control + ATOM atom = ::GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY); + ::SetProp(m_channelList.GetSafeHwnd(), MICROSOFT_TABLETPENSERVICE_PROPERTY, nullptr); + ::GlobalDeleteAtom(atom); + + return FALSE; // return FALSE so that the dialog does not steal focus // EXCEPTION: OCX Property Pages should return FALSE } diff --git a/src/mpc-hc/PlayerNavigationDialog.h b/src/mpc-hc/PlayerNavigationDialog.h index 020fce6f516..9e91f8d18ce 100644 --- a/src/mpc-hc/PlayerNavigationDialog.h +++ b/src/mpc-hc/PlayerNavigationDialog.h @@ -1,5 +1,5 @@ /* - * (C) 2010-2014 see Authors.txt + * (C) 2010-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -26,10 +26,19 @@ class CMainFrame; +class CNavListBox : public CListBox +{ +public: + virtual ~CNavListBox() = default; + +protected: + virtual ULONG GetGestureStatus(CPoint) override { return 0; } +}; + class CPlayerNavigationDialog : public CResizableDialog { private: - CListBox m_channelList; + CNavListBox m_channelList; CButton m_buttonInfo; CButton m_buttonFilterStations; diff --git a/src/mpc-hc/PlayerPlaylistBar.cpp b/src/mpc-hc/PlayerPlaylistBar.cpp index 368fa648354..3df894fd121 100644 --- a/src/mpc-hc/PlayerPlaylistBar.cpp +++ b/src/mpc-hc/PlayerPlaylistBar.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -37,6 +37,7 @@ IMPLEMENT_DYNAMIC(CPlayerPlaylistBar, CPlayerBar) CPlayerPlaylistBar::CPlayerPlaylistBar(CMainFrame* pMainFrame) : m_pMainFrame(pMainFrame) , m_list(0) + , m_pl(AfxGetAppSettings().bShufflePlaylistItems) , m_nTimeColWidth(0) , m_pDragImage(nullptr) , m_bDragging(FALSE) @@ -80,6 +81,8 @@ BOOL CPlayerPlaylistBar::Create(CWnd* pParentWnd, UINT defDockBarID) m_fakeImageList.Create(1, 16, ILC_COLOR4, 10, 10); m_list.SetImageList(&m_fakeImageList, LVSIL_SMALL); + m_dropTarget.Register(this); + return TRUE; } @@ -255,22 +258,16 @@ void CPlayerPlaylistBar::ResolveLinkFiles(CAtlList& fns) { // resolve .lnk files - CComPtr pSL; - pSL.CoCreateInstance(CLSID_ShellLink); - CComQIPtr pPF = pSL; - POSITION pos = fns.GetHeadPosition(); - while (pSL && pPF && pos) { + while (pos) { CString& fn = fns.GetNext(pos); - TCHAR buff[MAX_PATH]; - if (CPath(fn).GetExtension().MakeLower() != _T(".lnk") - || FAILED(pPF->Load(CStringW(fn), STGM_READ)) - || FAILED(pSL->Resolve(nullptr, SLR_ANY_MATCH | SLR_NO_UI)) - || FAILED(pSL->GetPath(buff, _countof(buff), nullptr, 0))) { - continue; - } - fn = buff; + if (PathUtils::IsLinkFile(fn)) { + CString fnResolved = PathUtils::ResolveLinkFile(fn); + if (!fnResolved.IsEmpty()) { + fn = fnResolved; + } + } } } @@ -536,7 +533,9 @@ void CPlayerPlaylistBar::Append(CAtlList& fns, bool fMulti, CAtlListwVKey == VK_SPACE && items.GetCount() == 1) { m_pl.SetPos(FindPos(items.GetHead())); - + m_list.Invalidate(); m_pMainFrame->OpenCurPlaylistItem(); - m_pMainFrame->SetFocus(); *pResult = TRUE; @@ -1110,24 +1123,19 @@ BOOL CPlayerPlaylistBar::OnPlayPlay(UINT nID) return FALSE; } -void CPlayerPlaylistBar::OnDropFiles(HDROP hDropInfo) +DROPEFFECT CPlayerPlaylistBar::OnDropAccept(COleDataObject*, DWORD, CPoint) +{ + return DROPEFFECT_COPY; +} + +void CPlayerPlaylistBar::OnDropFiles(CAtlList& slFiles, DROPEFFECT) { SetForegroundWindow(); m_list.SetFocus(); - CAtlList sl; - - UINT nFiles = ::DragQueryFile(hDropInfo, UINT_MAX, nullptr, 0); - for (UINT iFile = 0; iFile < nFiles; iFile++) { - TCHAR szFileName[MAX_PATH]; - ::DragQueryFile(hDropInfo, iFile, szFileName, MAX_PATH); - sl.AddTail(szFileName); - } - ::DragFinish(hDropInfo); - - m_pMainFrame->ParseDirs(sl); + PathUtils::ParseDirs(slFiles); - Append(sl, true); + Append(slFiles, true); } void CPlayerPlaylistBar::OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult) @@ -1278,25 +1286,9 @@ void CPlayerPlaylistBar::DropItemOnList() m_list.DeleteItem(m_nDragIndex); - CList tmp; - UINT id = UINT_MAX; for (int i = 0; i < m_list.GetItemCount(); i++) { POSITION pos = (POSITION)m_list.GetItemData(i); - CPlaylistItem& pli = m_pl.GetAt(pos); - tmp.AddTail(pli); - if (pos == m_pl.GetPos()) { - id = pli.m_id; - } - } - m_pl.RemoveAll(); - POSITION pos = tmp.GetHeadPosition(); - for (int i = 0; pos; i++) { - CPlaylistItem& pli = tmp.GetNext(pos); - m_pl.AddTail(pli); - if (pli.m_id == id) { - m_pl.SetPos(m_pl.GetTailPosition()); - } - m_list.SetItemData(i, (DWORD_PTR)m_pl.GetTailPosition()); + m_pl.MoveToTail(pos); } ResizeListColumn(); @@ -1313,7 +1305,7 @@ BOOL CPlayerPlaylistBar::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResul int row = ((pNMHDR->idFrom - 1) >> 10) & 0x3fffff; int col = (pNMHDR->idFrom - 1) & 0x3ff; - if (row < 0 || row >= m_pl.GetCount()) { + if (row < 0 || size_t(row) >= m_pl.GetCount()) { return FALSE; } @@ -1361,7 +1353,7 @@ void CPlayerPlaylistBar::OnContextMenu(CWnd* /*pWnd*/, CPoint p) if (p.x == -1 && p.y == -1) { lvhti.iItem = m_list.GetSelectionMark(); - if (lvhti.iItem == -1 && m_pl.GetSize() == 1) { + if (lvhti.iItem == -1 && m_pl.GetCount() == 1) { lvhti.iItem = 0; } @@ -1378,7 +1370,7 @@ void CPlayerPlaylistBar::OnContextMenu(CWnd* /*pWnd*/, CPoint p) m_list.ScreenToClient(&lvhti.pt); m_list.SubItemHitTest(&lvhti); bOnItem = lvhti.iItem >= 0 && !!(lvhti.flags & LVHT_ONITEM); - if (!bOnItem && m_pl.GetSize() == 1) { + if (!bOnItem && m_pl.GetCount() == 1) { bOnItem = true; lvhti.iItem = 0; } @@ -1476,9 +1468,7 @@ void CPlayerPlaylistBar::OnContextMenu(CWnd* /*pWnd*/, CPoint p) SavePlaylist(); break; case M_RANDOMIZE: - m_pl.Randomize(); - SetupList(); - SavePlaylist(); + Randomize(); break; case M_CLIPBOARD: if (OpenClipboard() && EmptyClipboard()) { @@ -1722,6 +1712,7 @@ void CPlayerPlaylistBar::OnContextMenu(CWnd* /*pWnd*/, CPoint p) break; case M_SHUFFLE: s.bShufflePlaylistItems = !s.bShufflePlaylistItems; + m_pl.SetShuffle(s.bShufflePlaylistItems); break; case M_HIDEFULLSCREEN: s.bHidePlaylistFullScreen = !s.bHidePlaylistFullScreen; diff --git a/src/mpc-hc/PlayerPlaylistBar.h b/src/mpc-hc/PlayerPlaylistBar.h index d113ee563c7..310ce9f368a 100644 --- a/src/mpc-hc/PlayerPlaylistBar.h +++ b/src/mpc-hc/PlayerPlaylistBar.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -25,13 +25,14 @@ #include "PlayerBar.h" #include "PlayerListCtrl.h" #include "Playlist.h" +#include "DropTarget.h" class OpenMediaData; class CMainFrame; -class CPlayerPlaylistBar : public CPlayerBar +class CPlayerPlaylistBar : public CPlayerBar, public CDropClient { DECLARE_DYNAMIC(CPlayerPlaylistBar) @@ -72,6 +73,10 @@ class CPlayerPlaylistBar : public CPlayerBar bool m_bHiddenDueToFullscreen; + CDropTarget m_dropTarget; + void OnDropFiles(CAtlList& slFiles, DROPEFFECT) override; + DROPEFFECT OnDropAccept(COleDataObject*, DWORD, CPoint) override; + public: CPlayerPlaylistBar(CMainFrame* pMainFrame); virtual ~CPlayerPlaylistBar(); @@ -102,6 +107,7 @@ class CPlayerPlaylistBar : public CPlayerBar void SetLast(); void SetCurValid(bool fValid); void SetCurTime(REFERENCE_TIME rt); + void Randomize(); void Refresh(); bool Empty(); @@ -127,6 +133,7 @@ class CPlayerPlaylistBar : public CPlayerBar DECLARE_MESSAGE_MAP() public: + afx_msg void OnDestroy(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnLvnKeyDown(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnNMDblclkList(NMHDR* pNMHDR, LRESULT* pResult); @@ -134,7 +141,6 @@ class CPlayerPlaylistBar : public CPlayerBar // afx_msg void OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); afx_msg BOOL OnPlayPlay(UINT nID); - afx_msg void OnDropFiles(HDROP hDropInfo); afx_msg void OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); diff --git a/src/mpc-hc/PlayerStatusBar.cpp b/src/mpc-hc/PlayerStatusBar.cpp index f811fdac89f..9975df0db56 100644 --- a/src/mpc-hc/PlayerStatusBar.cpp +++ b/src/mpc-hc/PlayerStatusBar.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -38,6 +38,9 @@ CPlayerStatusBar::CPlayerStatusBar(CMainFrame* pMainFrame) , m_hIcon(0) , m_time_rect(-1, -1, -1, -1) { + EventRouter::EventSelection fires; + fires.insert(MpcEvent::STREAM_POS_UPDATE_REQUEST); + GetEventd().Connect(m_eventc, fires); } CPlayerStatusBar::~CPlayerStatusBar() @@ -51,6 +54,9 @@ BOOL CPlayerStatusBar::Create(CWnd* pParentWnd) { BOOL ret = CDialogBar::Create(pParentWnd, IDD_PLAYERSTATUSBAR, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_BOTTOM, IDD_PLAYERSTATUSBAR); + // Should never be RTLed + ModifyStyleEx(WS_EX_LAYOUTRTL, WS_EX_NOINHERITLAYOUT); + m_tooltip.Create(this, TTS_NOPREFIX | TTS_ALWAYSTIP); m_tooltip.SetDelayTime(TTDT_INITIAL, 0); m_tooltip.SetDelayTime(TTDT_AUTOPOP, 2500); @@ -58,7 +64,6 @@ BOOL CPlayerStatusBar::Create(CWnd* pParentWnd) m_tooltip.AddTool(&m_time, IDS_TOOLTIP_REMAINING_TIME); m_tooltip.AddTool(&m_status); - return ret; } @@ -98,6 +103,8 @@ int CPlayerStatusBar::OnCreate(LPCREATESTRUCT lpCreateStruct) m_time.Create(_T(""), WS_CHILD | WS_VISIBLE | SS_OWNERDRAW | SS_NOTIFY, r, this, IDC_PLAYERTIME); + // Should never be RTLed + m_time.ModifyStyleEx(WS_EX_LAYOUTRTL, WS_EX_NOINHERITLAYOUT); m_status.SetWindowPos(&m_time, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); @@ -260,11 +267,12 @@ void CPlayerStatusBar::SetStatusTimer(REFERENCE_TIME rtNow, REFERENCE_TIME rtDur { CString str; CString posstr, durstr, rstr; + const CAppSettings& s = AfxGetAppSettings(); if (timeFormat == TIME_FORMAT_MEDIA_TIME) { DVD_HMSF_TIMECODE tcNow, tcDur, tcRt; - if (fHighPrecision) { + if (fHighPrecision || s.bHighPrecisionTimer) { tcNow = RT2HMSF(rtNow); tcDur = RT2HMSF(rtDur); tcRt = RT2HMSF(rtDur - rtNow); @@ -288,7 +296,7 @@ void CPlayerStatusBar::SetStatusTimer(REFERENCE_TIME rtNow, REFERENCE_TIME rtDur durstr.Format(_T("%02u:%02u"), tcDur.bMinutes, tcDur.bSeconds); } - if (fHighPrecision) { + if (fHighPrecision || s.bHighPrecisionTimer) { posstr.AppendFormat(_T(".%03d"), int((rtNow / 10000) % 1000)); durstr.AppendFormat(_T(".%03d"), int((rtDur / 10000) % 1000)); rstr.AppendFormat(_T(".%03d"), int(((rtDur - rtNow) / 10000) % 1000)); @@ -299,7 +307,7 @@ void CPlayerStatusBar::SetStatusTimer(REFERENCE_TIME rtNow, REFERENCE_TIME rtDur rstr.Format(_T("%I64d"), rtDur - rtNow); } - if (!AfxGetAppSettings().fRemainingTime) { + if (!s.fRemainingTime) { str = ((rtDur <= 0) || (rtDur < rtNow)) ? posstr : posstr + _T(" / ") + durstr; } else { str = ((rtDur <= 0) || (rtDur < rtNow)) ? posstr : _T("- ") + rstr + _T(" / ") + durstr; @@ -323,6 +331,7 @@ BEGIN_MESSAGE_MAP(CPlayerStatusBar, CDialogBar) ON_WM_LBUTTONDOWN() ON_WM_SETCURSOR() ON_WM_CTLCOLOR() + ON_WM_CONTEXTMENU() ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify) END_MESSAGE_MAP() @@ -427,7 +436,7 @@ BOOL CPlayerStatusBar::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) GetCursorPos(&p); ScreenToClient(&p); - if (m_time_rect.PtInRect(p)) { + if (m_time_rect.PtInRect(p) && !IsMenu(m_timerMenu)) { SetCursor(LoadCursor(nullptr, IDC_HAND)); return TRUE; } @@ -465,12 +474,48 @@ BOOL CPlayerStatusBar::PreTranslateMessage(MSG* pMsg) void CPlayerStatusBar::OnTimeDisplayClicked() { - CMainFrame* pFrame = ((CMainFrame*)GetParentFrame()); CAppSettings& s = AfxGetAppSettings(); s.fRemainingTime = !s.fRemainingTime; - // This isn't particularly nice... - pFrame->OnTimer(2); + m_eventc.FireEvent(MpcEvent::STREAM_POS_UPDATE_REQUEST); +} + +void CPlayerStatusBar::OnContextMenu(CWnd* pWnd, CPoint point) +{ + CPoint clientPoint = point; + ScreenToClient(&clientPoint); + if (!m_time_rect.PtInRect(clientPoint)) { + return __super::OnContextMenu(pWnd, point); + } + + CAppSettings& s = AfxGetAppSettings(); + + enum { + REMAINING_TIME = 1, + HIGH_PRECISION + }; + + m_timerMenu.CreatePopupMenu(); + m_timerMenu.AppendMenu(MF_STRING | MF_ENABLED | (s.fRemainingTime ? MF_CHECKED : MF_UNCHECKED), REMAINING_TIME, ResStr(IDS_TIMER_REMAINING_TIME)); + UINT nFlags = MF_STRING; + if (m_pMainFrame->IsSubresyncBarVisible()) { + nFlags |= MF_DISABLED | MF_CHECKED; + } else { + nFlags |= MF_ENABLED | (s.bHighPrecisionTimer ? MF_CHECKED : MF_UNCHECKED); + } + m_timerMenu.AppendMenu(nFlags, HIGH_PRECISION, ResStr(IDS_TIMER_HIGH_PRECISION)); + + switch (m_timerMenu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RETURNCMD, point.x, point.y, this)) { + case REMAINING_TIME: + s.fRemainingTime = !s.fRemainingTime; + m_eventc.FireEvent(MpcEvent::STREAM_POS_UPDATE_REQUEST); + break; + case HIGH_PRECISION: + s.bHighPrecisionTimer = !s.bHighPrecisionTimer; + m_eventc.FireEvent(MpcEvent::STREAM_POS_UPDATE_REQUEST); + break; + } + m_timerMenu.DestroyMenu(); } BOOL CPlayerStatusBar::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult) diff --git a/src/mpc-hc/PlayerStatusBar.h b/src/mpc-hc/PlayerStatusBar.h index fb0017f6873..4be42a201a6 100644 --- a/src/mpc-hc/PlayerStatusBar.h +++ b/src/mpc-hc/PlayerStatusBar.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -41,9 +41,12 @@ class CPlayerStatusBar : public CDialogBar HICON m_hIcon; CRect m_time_rect; + CMenu m_timerMenu; CToolTipCtrl m_tooltip; + EventClient m_eventc; + void Relayout(); public: @@ -83,5 +86,6 @@ class CPlayerStatusBar : public CDialogBar afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg BOOL PreTranslateMessage(MSG* pMsg); afx_msg void OnTimeDisplayClicked(); + afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); afx_msg BOOL OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult); }; diff --git a/src/mpc-hc/PlayerSubresyncBar.cpp b/src/mpc-hc/PlayerSubresyncBar.cpp index c54b8143150..37967e61eb9 100644 --- a/src/mpc-hc/PlayerSubresyncBar.cpp +++ b/src/mpc-hc/PlayerSubresyncBar.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -235,7 +235,7 @@ void CPlayerSubresyncBar::ReloadSubtitle() m_list.InsertColumn(COL_EFFECT, ResStr(IDS_SUBRESYNC_CLN_EFFECT), LVCFMT_LEFT, 80); } - m_subtimes.SetCount(m_sts.GetCount()); + m_subtimes.resize(m_sts.GetCount()); for (size_t i = 0, j = m_sts.GetCount(); i < j; i++) { m_subtimes[i].orgStart = m_sts[i].start; @@ -254,11 +254,16 @@ void CPlayerSubresyncBar::ResetSubtitle() int prevstart = INT_MIN; size_t nCount = m_sts.GetCount(); - m_displayData.SetCount(nCount); + m_displayData.resize(nCount); + m_newStartsIndex.clear(); + auto itHint = m_newStartsIndex.end(); for (size_t i = 0; i < nCount; i++) { m_subtimes[i].newStart = m_subtimes[i].orgStart; m_subtimes[i].newEnd = m_subtimes[i].orgEnd; + // In general subtitle files are more or less sorted so try to use that to insert more efficiently + m_subtimes[i].itIndex = itHint = m_newStartsIndex.emplace_hint(itHint, m_subtimes[i].newStart, i); + ++itHint; m_displayData[i].tStart = m_displayData[i].tPrevStart = m_subtimes[i].orgStart; m_displayData[i].tEnd = m_displayData[i].tPrevEnd = m_subtimes[i].orgEnd; @@ -493,6 +498,8 @@ bool CPlayerSubresyncBar::ModStart(int iItem, int t, bool bReset) } else if (bReset) { st.newStart = st.newEnd - (st.orgEnd - st.orgStart); } + m_newStartsIndex.erase(st.itIndex); + st.itIndex = m_newStartsIndex.emplace(st.newStart, size_t(iItem)); SetCheck(iItem, !bReset, bEndMod); } @@ -516,6 +523,8 @@ bool CPlayerSubresyncBar::ModEnd(int iItem, int t, bool bReset) st.newEnd = t; if (!bStartMod) { st.newStart = st.newEnd - (st.orgEnd - st.orgStart); + m_newStartsIndex.erase(st.itIndex); + st.itIndex = m_newStartsIndex.emplace(st.newStart, size_t(iItem)); } else if (bReset) { st.newEnd = st.newStart + (st.orgEnd - st.orgStart); } @@ -558,7 +567,7 @@ void CPlayerSubresyncBar::OnGetDisplayInfo(NMHDR* pNMHDR, LRESULT* pResult) NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR; LV_ITEM* pItem = &pDispInfo->item; - if (pItem->iItem < 0 || (size_t)pItem->iItem >= m_displayData.GetCount()) { + if (pItem->iItem < 0 || size_t(pItem->iItem) >= m_displayData.size()) { return; } @@ -1011,9 +1020,13 @@ void CPlayerSubresyncBar::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) STSEntry entry = m_sts[iItem]; m_sts.InsertAt(iItem + 1, entry); SubTime subtime = m_subtimes[iItem]; - m_subtimes.InsertAt(iItem + 1, subtime); + m_subtimes.insert(m_subtimes.begin() + iItem + 1, subtime); + m_subtimes[iItem + 1].itIndex = m_newStartsIndex.emplace(m_subtimes[iItem + 1].newStart, size_t(iItem + 1)); + for (size_t j = size_t(iItem + 2); j < m_subtimes.size(); j++) { + m_subtimes[j].itIndex->second++; + } DisplayData displayData = m_displayData[iItem]; - m_displayData.InsertAt(iItem + 1, displayData); + m_displayData.insert(m_displayData.begin() + iItem + 1, displayData); } m_list.SetItemCount((int)m_sts.GetCount()); @@ -1033,8 +1046,12 @@ void CPlayerSubresyncBar::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) for (INT_PTR i = 0, l = items.GetCount(); i < l; i++) { iItem = items[i]; m_sts.RemoveAt(iItem); - m_subtimes.RemoveAt(iItem); - m_displayData.RemoveAt(iItem); + m_newStartsIndex.erase(m_subtimes[iItem].itIndex); + m_subtimes.erase(m_subtimes.begin() + iItem); + for (size_t j = size_t(iItem); j < m_subtimes.size(); j++) { + m_subtimes[j].itIndex->second--; + } + m_displayData.erase(m_displayData.begin() + iItem); } m_list.SetItemCount((int)m_sts.GetCount()); @@ -1356,25 +1373,26 @@ bool CPlayerSubresyncBar::HandleShortCuts(const MSG* pMsg) int CPlayerSubresyncBar::FindNearestSub(REFERENCE_TIME& rtPos, bool bForward) { - if (m_subtimes.IsEmpty()) { + if (m_subtimes.empty()) { return -2; } - int lCurTime = (int)(rtPos / 10000) + (bForward ? 1 : -1); - int subCount = (int)m_sts.GetCount(); + int lCurTime = int(rtPos / 10000) + (bForward ? 1 : -1); - if (lCurTime < m_subtimes[0].newStart) { - rtPos = (REFERENCE_TIME)m_subtimes[0].newStart * 10000; - return bForward ? 0 : -1; - } else if (lCurTime > m_subtimes[subCount - 1].newStart) { - rtPos = (REFERENCE_TIME)m_subtimes[subCount - 1].newStart * 10000; - return bForward ? -1 : subCount - 1; + if (lCurTime < m_newStartsIndex.begin()->first) { + size_t i = m_newStartsIndex.begin()->second; + rtPos = m_subtimes[i].newStart * 10000i64; + return bForward ? int(i) : -1; + } else if (lCurTime > m_newStartsIndex.rbegin()->first) { + size_t i = m_newStartsIndex.rbegin()->second; + rtPos = m_subtimes[i].newStart * 10000i64; + return bForward ? -1 : int(i); } - for (int i = 1; i < subCount; i++) { - if ((lCurTime >= m_subtimes[i - 1].newStart) && (lCurTime < m_subtimes[i].newStart)) { - rtPos = bForward ? (REFERENCE_TIME)m_subtimes[i].newStart * 10000 : (REFERENCE_TIME)m_subtimes[i - 1].newStart * 10000; - return bForward ? i : i - 1; + for (auto it = m_newStartsIndex.begin(), itPrec = it++; it != m_newStartsIndex.end(); it++, itPrec++) { + if (lCurTime >= itPrec->first && lCurTime < it->first) { + rtPos = bForward ? it->first * 10000i64 : itPrec->first * 10000i64; + return int(bForward ? it->second : itPrec->second); } } diff --git a/src/mpc-hc/PlayerSubresyncBar.h b/src/mpc-hc/PlayerSubresyncBar.h index ebced00fe31..1b6cf35da71 100644 --- a/src/mpc-hc/PlayerSubresyncBar.h +++ b/src/mpc-hc/PlayerSubresyncBar.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -22,6 +22,8 @@ #pragma once #include +#include +#include #include "PlayerBar.h" #include "PlayerListCtrl.h" #include "../Subtitles/RTS.h" @@ -78,10 +80,12 @@ class CPlayerSubresyncBar : public CPlayerBar }; MODE m_mode; + std::multimap m_newStartsIndex; struct SubTime { int orgStart, newStart, orgEnd, newEnd; + std::multimap::iterator itIndex; }; - CAtlArray m_subtimes; + std::vector m_subtimes; CSimpleTextSubtitle m_sts; CAtlArray m_vobSub; @@ -90,7 +94,7 @@ class CPlayerSubresyncBar : public CPlayerBar int tStart, tPrevStart, tEnd, tPrevEnd; int flags; }; - CAtlArray m_displayData; + std::vector m_displayData; CString m_displayBuffer; int GetStartTime(int iItem); diff --git a/src/mpc-hc/PlayerToolBar.cpp b/src/mpc-hc/PlayerToolBar.cpp index 9dfa47684e0..6d8dd31f0bb 100644 --- a/src/mpc-hc/PlayerToolBar.cpp +++ b/src/mpc-hc/PlayerToolBar.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -391,7 +391,7 @@ BOOL CPlayerToolBar::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult) if (bi.iImage == 12) { strTipText.LoadString(ID_VOLUME_MUTE); } else if (bi.iImage == 13) { - strTipText.LoadString(ID_VOLUME_MUTE_ON); + strTipText.LoadString(ID_VOLUME_MUTE_OFF); } else if (bi.iImage == 14) { strTipText.LoadString(ID_VOLUME_MUTE_DISABLED); } else { diff --git a/src/mpc-hc/Playlist.cpp b/src/mpc-hc/Playlist.cpp index 5450ddd7b44..fa22b3e6d31 100644 --- a/src/mpc-hc/Playlist.cpp +++ b/src/mpc-hc/Playlist.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -32,7 +32,9 @@ UINT CPlaylistItem::m_globalid = 0; CPlaylistItem::CPlaylistItem() - : m_type(file) + : m_posNextShuffle(nullptr) + , m_posPrevShuffle(nullptr) + , m_type(file) , m_duration(0) , m_vinput(-1) , m_vchannel(-1) @@ -52,7 +54,7 @@ CPlaylistItem::CPlaylistItem(const CPlaylistItem& pli) *this = pli; } -CPlaylistItem& CPlaylistItem::operator = (const CPlaylistItem& pli) +CPlaylistItem& CPlaylistItem::operator=(const CPlaylistItem& pli) { if (this != &pli) { m_id = pli.m_id; @@ -68,6 +70,8 @@ CPlaylistItem& CPlaylistItem::operator = (const CPlaylistItem& pli) m_vchannel = pli.m_vchannel; m_ainput = pli.m_ainput; m_country = pli.m_country; + m_posNextShuffle = pli.m_posNextShuffle; + m_posPrevShuffle = pli.m_posPrevShuffle; } return *this; } @@ -216,8 +220,12 @@ void CPlaylistItem::AutoLoadFiles() // CPlaylist // -CPlaylist::CPlaylist() +CPlaylist::CPlaylist(bool bShuffle /*= false*/) : m_pos(nullptr) + , m_bShuffle(bShuffle) + , m_posHeadShuffle(nullptr) + , m_posTailShuffle(nullptr) + , m_nShuffledListSize(0) { } @@ -230,13 +238,32 @@ bool CPlaylist::RemoveAll() __super::RemoveAll(); bool bWasPlaying = (m_pos != nullptr); m_pos = nullptr; + m_posHeadShuffle = m_posTailShuffle = nullptr; + m_nShuffledListSize = 0; return bWasPlaying; } bool CPlaylist::RemoveAt(POSITION pos) { if (pos) { + // Update the shuffled list + if (m_bShuffle) { + const CPlaylistItem& pli = GetAt(pos); + if (pos == m_posHeadShuffle) { + m_posHeadShuffle = pli.m_posNextShuffle; + } else { + GetAt(pli.m_posPrevShuffle).m_posNextShuffle = pli.m_posNextShuffle; + } + if (pos == m_posTailShuffle) { + m_posTailShuffle = pli.m_posPrevShuffle; + } else { + GetAt(pli.m_posNextShuffle).m_posPrevShuffle = pli.m_posPrevShuffle; + } + m_nShuffledListSize--; + } + // Actually remove the item __super::RemoveAt(pos); + // Check if it was the currently playing item if (m_pos == pos) { m_pos = nullptr; return true; @@ -278,11 +305,7 @@ void CPlaylist::SortById() } qsort(a.GetData(), a.GetCount(), sizeof(plsort_t), compare); for (size_t i = 0; i < a.GetCount(); i++) { - AddTail(GetAt(a[i].pos)); - __super::RemoveAt(a[i].pos); - if (m_pos == a[i].pos) { - m_pos = GetTailPosition(); - } + MoveToTail(a[i].pos); } } @@ -298,11 +321,7 @@ void CPlaylist::SortByName() } qsort(a.GetData(), a.GetCount(), sizeof(plsort2_t), compare2); for (size_t i = 0; i < a.GetCount(); i++) { - AddTail(GetAt(a[i].pos)); - __super::RemoveAt(a[i].pos); - if (m_pos == a[i].pos) { - m_pos = GetTailPosition(); - } + MoveToTail(a[i].pos); } } @@ -316,11 +335,7 @@ void CPlaylist::SortByPath() } qsort(a.GetData(), a.GetCount(), sizeof(plsort2_t), compare2); for (size_t i = 0; i < a.GetCount(); i++) { - AddTail(GetAt(a[i].pos)); - __super::RemoveAt(a[i].pos); - if (m_pos == a[i].pos) { - m_pos = GetTailPosition(); - } + MoveToTail(a[i].pos); } } @@ -334,13 +349,8 @@ void CPlaylist::Randomize() a[i].n = rand(), a[i].pos = pos; } qsort(a.GetData(), a.GetCount(), sizeof(plsort_t), compare); - for (size_t i = 0; i < a.GetCount(); i++) { - AddTail(GetAt(a[i].pos)); - __super::RemoveAt(a[i].pos); - if (m_pos == a[i].pos) { - m_pos = GetTailPosition(); - } + MoveToTail(a[i].pos); } } @@ -354,56 +364,99 @@ void CPlaylist::SetPos(POSITION pos) m_pos = pos; } -POSITION CPlaylist::Shuffle() +POSITION CPlaylist::GetShuffleAwareHeadPosition() { - static INT_PTR idx = 0; - static INT_PTR count = 0; - static CAtlArray a; - - ASSERT(GetCount() > 2); - // insert or remove items in playlist, or index out of bounds then recalculate - if ((count != GetCount()) || (idx >= GetCount())) { - a.RemoveAll(); - idx = 0; - a.SetCount(count = GetCount()); - - POSITION pos = GetHeadPosition(); - for (INT_PTR i = 0; pos; i++, GetNext(pos)) { - a[i].pos = pos; // initialize position array - } - - //Use Fisher-Yates shuffle algorithm - srand((unsigned)time(nullptr)); - for (INT_PTR i = 0; i < (count - 1); i++) { - INT_PTR r = i + (rand() % (count - i)); - POSITION temp = a[i].pos; - a[i].pos = a[r].pos; - a[r].pos = temp; - } + POSITION posHead; + if (m_bShuffle) { + ReshuffleIfNeeded(); + posHead = m_posHeadShuffle; + } else { + posHead = GetHeadPosition(); } + return posHead; +} - return a[idx++].pos; +POSITION CPlaylist::GetShuffleAwareTailPosition() +{ + POSITION posTail; + if (m_bShuffle) { + ReshuffleIfNeeded(); + posTail = m_posTailShuffle; + } else { + posTail = GetTailPosition(); + } + return posTail; } CPlaylistItem& CPlaylist::GetNextWrap(POSITION& pos) { - if (AfxGetAppSettings().bShufflePlaylistItems && GetCount() > 2) { - pos = Shuffle(); + if (m_bShuffle) { + ReshuffleIfNeeded(); + pos = GetAt(pos).m_posNextShuffle; } else { GetNext(pos); - if (!pos) { - pos = GetHeadPosition(); - } } - + if (!pos) { + pos = GetShuffleAwareHeadPosition(); + } return GetAt(pos); } CPlaylistItem& CPlaylist::GetPrevWrap(POSITION& pos) { - GetPrev(pos); + if (m_bShuffle) { + ReshuffleIfNeeded(); + pos = GetAt(pos).m_posPrevShuffle; + } else { + GetPrev(pos); + } if (!pos) { - pos = GetTailPosition(); + pos = GetShuffleAwareTailPosition(); } return GetAt(pos); } + +// Calling this function with bEnable equals to true when +// shuffle is already enabled will re-shuffle the tracks. +void CPlaylist::SetShuffle(bool bEnable) +{ + m_bShuffle = bEnable; + + if (bEnable && !IsEmpty()) { + m_nShuffledListSize = GetCount(); + CAtlArray positions; + positions.SetCount(m_nShuffledListSize + 1); + srand((unsigned int)time(nullptr)); + POSITION pos = GetHeadPosition(); + for (size_t i = 0; pos; i++, GetNext(pos)) { + positions[i].n = rand(); + positions[i].pos = pos; + } + qsort(positions.GetData(), m_nShuffledListSize, sizeof(plsort_t), compare); + positions[m_nShuffledListSize].pos = nullptr; // Termination + + m_posHeadShuffle = positions[0].pos; + m_posTailShuffle = nullptr; + for (size_t i = 0; i < m_nShuffledListSize; i++) { + pos = positions[i].pos; + CPlaylistItem& pli = GetAt(pos); + pli.m_posPrevShuffle = m_posTailShuffle; + pli.m_posNextShuffle = positions[i + 1].pos; + m_posTailShuffle = pos; + } + } else { + m_posHeadShuffle = m_posTailShuffle = nullptr; + m_nShuffledListSize = 0; + } +} + +// This will reshuffle if the shuffled list size +// does not match the playlist size. +bool CPlaylist::ReshuffleIfNeeded() +{ + if (m_bShuffle && m_nShuffledListSize != GetCount()) { + SetShuffle(true); + return true; + } + return false; +} diff --git a/src/mpc-hc/Playlist.h b/src/mpc-hc/Playlist.h index f219a06c959..48a9f2aad95 100644 --- a/src/mpc-hc/Playlist.h +++ b/src/mpc-hc/Playlist.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2012 see Authors.txt + * (C) 2006-2012, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -26,7 +26,11 @@ class CPlaylistItem { + friend class CPlaylist; + static UINT m_globalid; + POSITION m_posNextShuffle; + POSITION m_posPrevShuffle; public: UINT m_id; @@ -41,12 +45,11 @@ class CPlaylistItem bool m_fInvalid; -public: CPlaylistItem(); virtual ~CPlaylistItem(); CPlaylistItem(const CPlaylistItem& pli); - CPlaylistItem& operator = (const CPlaylistItem& pli); + CPlaylistItem& operator=(const CPlaylistItem& pli); POSITION FindFile(LPCTSTR path); void AutoLoadFiles(); @@ -54,13 +57,35 @@ class CPlaylistItem CString GetLabel(int i = 0); }; -class CPlaylist : public CList +class CPlaylist : protected CAtlList { protected: POSITION m_pos; + bool m_bShuffle; + POSITION m_posHeadShuffle; + POSITION m_posTailShuffle; + size_t m_nShuffledListSize; + + bool ReshuffleIfNeeded(); public: - CPlaylist(); + using CAtlList::AddHead; + using CAtlList::AddTail; + using CAtlList::InsertAfter; + using CAtlList::InsertBefore; + using CAtlList::GetHead; + using CAtlList::GetTail; + using CAtlList::GetHeadPosition; + using CAtlList::GetTailPosition; + using CAtlList::GetNext; + using CAtlList::GetPrev; + using CAtlList::GetAt; + using CAtlList::GetCount; + using CAtlList::IsEmpty; + using CAtlList::MoveToHead; + using CAtlList::MoveToTail; + + CPlaylist(bool bShuffle = false); virtual ~CPlaylist(); bool RemoveAll(); @@ -70,8 +95,12 @@ class CPlaylist : public CList POSITION GetPos() const; void SetPos(POSITION pos); + + POSITION GetShuffleAwareHeadPosition(); + POSITION GetShuffleAwareTailPosition(); + CPlaylistItem& GetNextWrap(POSITION& pos); CPlaylistItem& GetPrevWrap(POSITION& pos); - POSITION Shuffle(); + void SetShuffle(bool bEnable); }; diff --git a/src/mpc-hc/QuicktimeGraph.cpp b/src/mpc-hc/QuicktimeGraph.cpp index b2e69bab267..976c60a9e02 100644 --- a/src/mpc-hc/QuicktimeGraph.cpp +++ b/src/mpc-hc/QuicktimeGraph.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -509,7 +509,7 @@ bool CQuicktimeWindow::OpenMovie(CString fn) CHAR buff[MAX_PATH] = {0, 0}; WideCharToMultiByte(GetACP(), 0, fn, -1, buff + 1, _countof(buff) - 1, 0, 0); - buff[0] = strlen(buff + 1); + buff[0] = (CHAR)strlen(buff + 1); // Make a FSSpec with a pascal string filename FSSpec sfFile; diff --git a/src/mpc-hc/RegFilterChooserDlg.cpp b/src/mpc-hc/RegFilterChooserDlg.cpp index 16d19a2d250..2956af1fa1a 100644 --- a/src/mpc-hc/RegFilterChooserDlg.cpp +++ b/src/mpc-hc/RegFilterChooserDlg.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -54,7 +54,7 @@ void CRegFilterChooserDlg::AddToList(IMoniker* pMoniker) CComPtr pPB; if (SUCCEEDED(pMoniker->BindToStorage(0, 0, IID_PPV_ARGS(&pPB)))) { CComVariant var; - if (SUCCEEDED(pPB->Read(CComBSTR(_T("FriendlyName")), &var, nullptr))) { + if (SUCCEEDED(pPB->Read(_T("FriendlyName"), &var, nullptr))) { m_list.SetItemData( m_list.InsertItem(-1, CString(CStringW(var.bstrVal))), (DWORD_PTR)m_monikers.AddTail(pMoniker)); diff --git a/src/mpc-hc/SettingsDefines.h b/src/mpc-hc/SettingsDefines.h index 67a866599a9..51d35b9a374 100644 --- a/src/mpc-hc/SettingsDefines.h +++ b/src/mpc-hc/SettingsDefines.h @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -261,6 +261,7 @@ #define IDS_RS_LCD_SUPPORT _T("LcdSupport") #define IDS_RS_REMAINING_TIME _T("RemainingTime") +#define IDS_RS_HIGH_PRECISION_TIMER _T("HighPrecisionTimer") #define IDS_RS_UPDATER_AUTO_CHECK _T("UpdaterAutoCheck") #define IDS_RS_UPDATER_LAST_CHECK _T("UpdaterLastCheck") @@ -293,3 +294,4 @@ #define IDS_RS_COVER_ART _T("EnableCoverArt") #define IDS_RS_COVER_ART_SIZE_LIMIT _T("CoverArtSizeLimit") +#define IDS_RS_LOGGING _T("EnableLogging") diff --git a/src/mpc-hc/Translations.cpp b/src/mpc-hc/Translations.cpp index 434bebc8d90..bbe498f195b 100644 --- a/src/mpc-hc/Translations.cpp +++ b/src/mpc-hc/Translations.cpp @@ -35,6 +35,7 @@ static const std::vector languageResources = { { 1028, _T("Chinese (Traditional)"), _T("Lang\\mpcresources.zh_TW.dll") }, { 1050, _T("Croatian"), _T("Lang\\mpcresources.hr.dll") }, { 1029, _T("Czech"), _T("Lang\\mpcresources.cs.dll") }, + { 1030, _T("Danish"), _T("Lang\\mpcresources.da.dll") }, { 1043, _T("Dutch"), _T("Lang\\mpcresources.nl.dll") }, { 0, _T("English"), nullptr }, { 2057, _T("English (British)"), _T("Lang\\mpcresources.en_GB.dll") }, diff --git a/src/mpc-hc/TunerScanDlg.cpp b/src/mpc-hc/TunerScanDlg.cpp index f673d5709b4..64f531a0990 100644 --- a/src/mpc-hc/TunerScanDlg.cpp +++ b/src/mpc-hc/TunerScanDlg.cpp @@ -1,5 +1,5 @@ /* - * (C) 2009-2014 see Authors.txt + * (C) 2009-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -72,11 +72,11 @@ BOOL CTunerScanDlg::OnInitDialog() m_ChannelList.InsertColumn(TSCC_NUMBER, ResStr(IDS_DVB_CHANNEL_NUMBER), LVCFMT_LEFT, 35); m_ChannelList.InsertColumn(TSCC_NAME, ResStr(IDS_DVB_CHANNEL_NAME), LVCFMT_LEFT, 190); m_ChannelList.InsertColumn(TSCC_FREQUENCY, ResStr(IDS_DVB_CHANNEL_FREQUENCY), LVCFMT_LEFT, 65); - m_ChannelList.InsertColumn(TSCC_ENCRYPTED, ResStr(IDS_DVB_CHANNEL_ENCRYPTION), LVCFMT_LEFT, 55); - m_ChannelList.InsertColumn(TSCC_VIDEO_FORMAT, ResStr(IDS_DVB_CHANNEL_FORMAT), LVCFMT_LEFT, 55); - m_ChannelList.InsertColumn(TSCC_VIDEO_FPS, ResStr(IDS_DVB_CHANNEL_FPS), LVCFMT_LEFT, 50); - m_ChannelList.InsertColumn(TSCC_VIDEO_RES, ResStr(IDS_DVB_CHANNEL_RESOLUTION), LVCFMT_LEFT, 70); - m_ChannelList.InsertColumn(TSCC_VIDEO_AR, ResStr(IDS_DVB_CHANNEL_ASPECT_RATIO), LVCFMT_LEFT, 50); + m_ChannelList.InsertColumn(TSCC_ENCRYPTED, ResStr(IDS_DVB_CHANNEL_ENCRYPTION), LVCFMT_CENTER, 55); + m_ChannelList.InsertColumn(TSCC_VIDEO_FORMAT, ResStr(IDS_DVB_CHANNEL_FORMAT), LVCFMT_CENTER, 55); + m_ChannelList.InsertColumn(TSCC_VIDEO_FPS, ResStr(IDS_DVB_CHANNEL_FPS), LVCFMT_CENTER, 50); + m_ChannelList.InsertColumn(TSCC_VIDEO_RES, ResStr(IDS_DVB_CHANNEL_RESOLUTION), LVCFMT_CENTER, 70); + m_ChannelList.InsertColumn(TSCC_VIDEO_AR, ResStr(IDS_DVB_CHANNEL_ASPECT_RATIO), LVCFMT_CENTER, 50); m_ChannelList.InsertColumn(TSCC_CHANNEL, _T("Channel"), LVCFMT_LEFT, 0); m_Progress.SetRange(0, 100); @@ -247,11 +247,13 @@ LRESULT CTunerScanDlg::OnNewChannel(WPARAM wParam, LPARAM lParam) strTemp = channel.IsEncrypted() ? ResStr(IDS_DVB_CHANNEL_ENCRYPTED) : ResStr(IDS_DVB_CHANNEL_NOT_ENCRYPTED); m_ChannelList.SetItemText(nItem, TSCC_ENCRYPTED, strTemp); if (channel.GetVideoType() == DVB_H264) { - strTemp = _T(" H.264"); + strTemp = _T("H.264"); + } else if (channel.GetVideoType() == DVB_HEVC) { + strTemp = _T("HEVC"); } else if (channel.GetVideoPID()) { strTemp = _T("MPEG-2"); } else { - strTemp = _T(" - "); + strTemp = _T("-"); } m_ChannelList.SetItemText(nItem, TSCC_VIDEO_FORMAT, strTemp); strTemp = channel.GetVideoFpsDesc(); @@ -259,7 +261,7 @@ LRESULT CTunerScanDlg::OnNewChannel(WPARAM wParam, LPARAM lParam) if (channel.GetVideoWidth() || channel.GetVideoHeight()) { strTemp.Format(_T("%lux%lu"), channel.GetVideoWidth(), channel.GetVideoHeight()); } else { - strTemp = _T(" - "); + strTemp = _T("-"); } m_ChannelList.SetItemText(nItem, TSCC_VIDEO_RES, strTemp); strTemp.Format(_T("%lu/%lu"), channel.GetVideoARy(), channel.GetVideoARx()); diff --git a/src/mpc-hc/VMROSD.cpp b/src/mpc-hc/VMROSD.cpp index 38493defb95..d2ebdb21d81 100644 --- a/src/mpc-hc/VMROSD.cpp +++ b/src/mpc-hc/VMROSD.cpp @@ -23,6 +23,7 @@ #include "mplayerc.h" #include "DSMPropertyBag.h" #include "MainFrm.h" +#include #define SEEKBAR_HEIGHT 60 #define SLIDER_BAR_MARGIN 10 diff --git a/src/mpc-hc/VMROSD.h b/src/mpc-hc/VMROSD.h index df210067158..ab2b9ce52bf 100644 --- a/src/mpc-hc/VMROSD.h +++ b/src/mpc-hc/VMROSD.h @@ -24,7 +24,6 @@ #include #include #include -#include "madVRAllocatorPresenter.h" enum OSD_COLORS { @@ -45,8 +44,8 @@ enum OSD_MESSAGEPOS { OSD_DEBUG }; -struct IDSMChapterBag; - +interface IMadVRTextOsd; +interface IDSMChapterBag; class CMainFrame; class CVMROSD diff --git a/src/mpc-hc/VersionInfo.cpp b/src/mpc-hc/VersionInfo.cpp index 5726084f0f1..b5f332b8ed0 100644 --- a/src/mpc-hc/VersionInfo.cpp +++ b/src/mpc-hc/VersionInfo.cpp @@ -1,5 +1,5 @@ /* - * (C) 2013-2014 see Authors.txt + * (C) 2013-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -83,3 +83,12 @@ unsigned VersionInfo::GetRevisionNumber() { return MPC_VERSION_REV; } + +CString VersionInfo::GetGCCVersion() +{ +#ifdef _WIN64 + return GCC64_VERSION; +#else + return GCC32_VERSION; +#endif +} diff --git a/src/mpc-hc/VersionInfo.h b/src/mpc-hc/VersionInfo.h index 0e854bdfcbb..116cb74916f 100644 --- a/src/mpc-hc/VersionInfo.h +++ b/src/mpc-hc/VersionInfo.h @@ -1,5 +1,5 @@ /* - * (C) 2013 see Authors.txt + * (C) 2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -20,19 +20,17 @@ #pragma once -class VersionInfo +namespace VersionInfo { -public: - static bool IsNightly(); - static CString GetNightlyWord(); - static bool Is64Bit(); - static CString GetVersionString(); - static CString GetFullVersionString(); - static CString GetBuildDateString(); - static unsigned GetMajorNumber(); - static unsigned GetMinorNumber(); - static unsigned GetPatchNumber(); - static unsigned GetRevisionNumber(); -private: - VersionInfo(); + bool IsNightly(); + CString GetNightlyWord(); + bool Is64Bit(); + CString GetVersionString(); + CString GetFullVersionString(); + CString GetBuildDateString(); + unsigned GetMajorNumber(); + unsigned GetMinorNumber(); + unsigned GetPatchNumber(); + unsigned GetRevisionNumber(); + CString GetGCCVersion(); }; diff --git a/src/mpc-hc/WebClientSocket.cpp b/src/mpc-hc/WebClientSocket.cpp index c7f4bf8f2ea..d5c6a6718ee 100644 --- a/src/mpc-hc/WebClientSocket.cpp +++ b/src/mpc-hc/WebClientSocket.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -26,6 +26,7 @@ #include "../Subtitles/TextFile.h" #include "WebServer.h" #include "WebClientSocket.h" +#include "text.h" #define MAX_HEADER_SIZE 512 * 1024 #define MAX_DATA_SIZE 2 * 1024 * 1024 @@ -440,52 +441,12 @@ bool CWebClientSocket::OnIndex(CStringA& hdr, CStringA& body, CStringA& mime) bool CWebClientSocket::OnInfo(CStringA& hdr, CStringA& body, CStringA& mime) { - int pos = (int)(m_pMainFrame->GetPos() / 10000); - int dur = (int)(m_pMainFrame->GetDur() / 10000); - - CString positionstring, durationstring, versionstring, sizestring; - versionstring.Format(L"%s", AfxGetMyApp()->m_strVersion); - - positionstring.Format(_T("%02d:%02d:%02d"), (pos / 3600000), (pos / 60000) % 60, (pos / 1000) % 60); - durationstring.Format(_T("%02d:%02d:%02d"), (dur / 3600000), (dur / 60000) % 60, (dur / 1000) % 60); - - CPath file(m_pMainFrame->GetFileName()); - file.RemoveExtension(); - - LONGLONG size = 0; - if (CComQIPtr pBF = m_pMainFrame->m_pFSF) { - BeginEnumPins(pBF, pEP, pPin) { - if (CComQIPtr pAR = pPin) { - LONGLONG total, available; - if (SUCCEEDED(pAR->Length(&total, &available))) { - size = total; - break; - } - } - } - EndEnumPins; - } - - if (size == 0) { - WIN32_FIND_DATA wfd; - HANDLE hFind = FindFirstFile(m_pMainFrame->m_wndPlaylistBar.GetCurFileName(), &wfd); - if (hFind != INVALID_HANDLE_VALUE) { - FindClose(hFind); - size = (LONGLONG(wfd.nFileSizeHigh) << 32) | wfd.nFileSizeLow; - } - } - - const int MAX_FILE_SIZE_BUFFER = 65; - TCHAR szFileSize[MAX_FILE_SIZE_BUFFER]; - StrFormatByteSizeW(size, szFileSize, MAX_FILE_SIZE_BUFFER); - sizestring.Format(L"%s", szFileSize); - m_pWebServer->LoadPage(IDR_HTML_INFO, body, AToT(m_path)); - body.Replace("[version]", UTF8(versionstring)); - body.Replace("[file]", UTF8(file)); - body.Replace("[position]", UTF8(positionstring)); - body.Replace("[duration]", UTF8(durationstring)); - body.Replace("[size]", UTF8(sizestring)); + body.Replace("[version]", UTF8(AfxGetMyApp()->m_strVersion)); + body.Replace("[file]", UTF8(m_pMainFrame->GetFileName())); + body.Replace("[position]", UTF8(ReftimeToString2(m_pMainFrame->GetPos()))); + body.Replace("[duration]", UTF8(ReftimeToString2(m_pMainFrame->GetDur()))); + body.Replace("[size]", UTF8(GetSize())); return true; } @@ -703,19 +664,7 @@ bool CWebClientSocket::OnControls(CStringA& hdr, CStringA& body, CStringA& mime) break; } - int pos = (int)(m_pMainFrame->GetPos() / 10000); - int dur = (int)(m_pMainFrame->GetDur() / 10000); - - CString position, duration; - position.Format(_T("%d"), pos); - duration.Format(_T("%d"), dur); - - CString positionstring, durationstring, playbackrate; - // positionstring.Format(_T("%02d:%02d:%02d.%03d"), (pos/3600000), (pos/60000)%60, (pos/1000)%60, pos%1000); - // durationstring.Format(_T("%02d:%02d:%02d.%03d"), (dur/3600000), (dur/60000)%60, (dur/1000)%60, dur%1000); - positionstring.Format(_T("%02d:%02d:%02d"), (pos / 3600000), (pos / 60000) % 60, (pos / 1000) % 60); - durationstring.Format(_T("%02d:%02d:%02d"), (dur / 3600000), (dur / 60000) % 60, (dur / 1000) % 60); - playbackrate = _T("1"); // TODO + CString playbackrate = _T("1"); // TODO CString volumelevel, muted; volumelevel.Format(_T("%d"), m_pMainFrame->m_wndToolBar.m_volctrl.GetPos()); @@ -730,10 +679,10 @@ bool CWebClientSocket::OnControls(CStringA& hdr, CStringA& body, CStringA& mime) body.Replace("[filedir]", UTF8(dir)); body.Replace("[state]", UTF8(state)); body.Replace("[statestring]", UTF8(statestring)); - body.Replace("[position]", UTF8(position)); - body.Replace("[positionstring]", UTF8(positionstring)); - body.Replace("[duration]", UTF8(duration)); - body.Replace("[durationstring]", UTF8(durationstring)); + body.Replace("[position]", UTF8(NumToCString(std::lround(m_pMainFrame->GetPos() / 10000i64)))); + body.Replace("[positionstring]", UTF8(ReftimeToString2(m_pMainFrame->GetPos()))); + body.Replace("[duration]", UTF8(NumToCString(std::lround(m_pMainFrame->GetDur() / 10000i64)))); + body.Replace("[durationstring]", UTF8(ReftimeToString2(m_pMainFrame->GetDur()))); body.Replace("[volumelevel]", UTF8(volumelevel)); body.Replace("[muted]", UTF8(muted)); body.Replace("[playbackrate]", UTF8(playbackrate)); @@ -772,19 +721,7 @@ bool CWebClientSocket::OnVariables(CStringA& hdr, CStringA& body, CStringA& mime break; } - int pos = (int)(m_pMainFrame->GetPos() / 10000); - int dur = (int)(m_pMainFrame->GetDur() / 10000); - - CString position, duration; - position.Format(_T("%d"), pos); - duration.Format(_T("%d"), dur); - - CString positionstring, durationstring, playbackrate; - // positionstring.Format(_T("%02d:%02d:%02d.%03d"), (pos/3600000), (pos/60000)%60, (pos/1000)%60, pos%1000); - // durationstring.Format(_T("%02d:%02d:%02d.%03d"), (dur/3600000), (dur/60000)%60, (dur/1000)%60, dur%1000); - positionstring.Format(_T("%02d:%02d:%02d"), (pos / 3600000), (pos / 60000) % 60, (pos / 1000) % 60); - durationstring.Format(_T("%02d:%02d:%02d"), (dur / 3600000), (dur / 60000) % 60, (dur / 1000) % 60); - playbackrate = _T("1"); // TODO + CString playbackrate = _T("1"); // TODO CString volumelevel, muted; volumelevel.Format(_T("%d"), m_pMainFrame->m_wndToolBar.m_volctrl.GetPos()); @@ -793,20 +730,23 @@ bool CWebClientSocket::OnVariables(CStringA& hdr, CStringA& body, CStringA& mime CString reloadtime(_T("0")); // TODO m_pWebServer->LoadPage(IDR_HTML_VARIABLES, body, AToT(m_path)); + body.Replace("[file]", UTF8(m_pMainFrame->GetFileName())); body.Replace("[filepatharg]", UTF8Arg(path)); body.Replace("[filepath]", UTF8(path)); body.Replace("[filedirarg]", UTF8Arg(dir)); body.Replace("[filedir]", UTF8(dir)); body.Replace("[state]", UTF8(state)); body.Replace("[statestring]", UTF8(statestring)); - body.Replace("[position]", UTF8(position)); - body.Replace("[positionstring]", UTF8(positionstring)); - body.Replace("[duration]", UTF8(duration)); - body.Replace("[durationstring]", UTF8(durationstring)); + body.Replace("[position]", UTF8(NumToCString(std::lround(m_pMainFrame->GetPos() / 10000i64)))); + body.Replace("[positionstring]", UTF8(ReftimeToString2(m_pMainFrame->GetPos()))); + body.Replace("[duration]", UTF8(NumToCString(std::lround(m_pMainFrame->GetDur() / 10000i64)))); + body.Replace("[durationstring]", UTF8(ReftimeToString2(m_pMainFrame->GetDur()))); body.Replace("[volumelevel]", UTF8(volumelevel)); body.Replace("[muted]", UTF8(muted)); body.Replace("[playbackrate]", UTF8(playbackrate)); + body.Replace("[size]", UTF8(GetSize())); body.Replace("[reloadtime]", UTF8(reloadtime)); + body.Replace("[version]", UTF8(AfxGetMyApp()->m_strVersion)); return true; } @@ -835,19 +775,16 @@ bool CWebClientSocket::OnStatus(CStringA& hdr, CStringA& body, CStringA& mime) break; } - int pos = (int)(m_pMainFrame->GetPos() / 10000); - int dur = (int)(m_pMainFrame->GetDur() / 10000); - - CString posstr, durstr; - posstr.Format(_T("%02d:%02d:%02d"), (pos / 3600000), (pos / 60000) % 60, (pos / 1000) % 60); - durstr.Format(_T("%02d:%02d:%02d"), (dur / 3600000), (dur / 60000) % 60, (dur / 1000) % 60); + REFERENCE_TIME pos = m_pMainFrame->GetPos(); + REFERENCE_TIME dur = m_pMainFrame->GetDur(); title.Replace(_T("'"), _T("\\'")); status.Replace(_T("'"), _T("\\'")); - body.Format("OnStatus(\"%s\", \"%s\", %d, \"%s\", %d, \"%s\", %d, %d, \"%s\")", // , \"%s\" + body.Format("OnStatus(\"%s\", \"%s\", %ld, \"%s\", %ld, \"%s\", %d, %d, \"%s\")", // , \"%s\" UTF8(title), UTF8(status), - pos, UTF8(posstr), dur, UTF8(durstr), + std::lround(pos / 10000i64), UTF8(ReftimeToString2(pos)), + std::lround(dur / 10000i64), UTF8(ReftimeToString2(dur)), m_pMainFrame->IsMuted(), m_pMainFrame->GetVolume(), UTF8(file)/*, UTF8(dir)*/); @@ -1018,3 +955,38 @@ bool CWebClientSocket::OnDVBSetChannel(CStringA& hdr, CStringA& body, CStringA& } return true; } + +CString CWebClientSocket::GetSize() const +{ + CString sizeString; + LONGLONG size = 0; + + if (CComQIPtr pBF = m_pMainFrame->m_pFSF) { + BeginEnumPins(pBF, pEP, pPin) { + if (CComQIPtr pAR = pPin) { + LONGLONG total, available; + if (SUCCEEDED(pAR->Length(&total, &available))) { + size = total; + break; + } + } + } + EndEnumPins; + } + + if (size == 0) { + WIN32_FIND_DATA wfd; + HANDLE hFind = FindFirstFile(m_pMainFrame->m_wndPlaylistBar.GetCurFileName(), &wfd); + if (hFind != INVALID_HANDLE_VALUE) { + FindClose(hFind); + size = (LONGLONG(wfd.nFileSizeHigh) << 32) | wfd.nFileSizeLow; + } + } + + const int MAX_FILE_SIZE_BUFFER = 65; + TCHAR szFileSize[MAX_FILE_SIZE_BUFFER]; + StrFormatByteSizeW(size, szFileSize, MAX_FILE_SIZE_BUFFER); + sizeString.Format(L"%s", szFileSize); + + return sizeString; +} diff --git a/src/mpc-hc/WebClientSocket.h b/src/mpc-hc/WebClientSocket.h index d46fe50a25c..eccd24be3bf 100644 --- a/src/mpc-hc/WebClientSocket.h +++ b/src/mpc-hc/WebClientSocket.h @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2013 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -79,4 +79,7 @@ class CWebClientSocket : public CAsyncSocket bool OnViewRes(CStringA& hdr, CStringA& body, CStringA& mime); bool OnDVBChannels(CStringA& hdr, CStringA& body, CStringA& mime); bool OnDVBSetChannel(CStringA& hdr, CStringA& body, CStringA& mime); + +private: + CString GetSize() const; }; diff --git a/src/mpc-hc/mpc-hc.rc b/src/mpc-hc/mpc-hc.rc index bb7f61f54ee..60f4d10a5e6 100644 --- a/src/mpc-hc/mpc-hc.rc +++ b/src/mpc-hc/mpc-hc.rc @@ -134,12 +134,12 @@ BEGIN EDITTEXT IDC_EDIT2,124,77,46,13,ES_AUTOHSCROLL,WS_EX_RIGHT CONTROL "",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,158,77,12,13 CONTROL "Enable custom channel mapping",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,93,286,8 - LTEXT "Speaker configuration for ",IDC_STATIC1,5,107,115,8 + LTEXT "Speaker configuration for",IDC_STATIC1,5,107,115,8 EDITTEXT IDC_EDIT1,124,105,29,13,ES_CENTER | ES_AUTOHSCROLL CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,141,105,12,13 LTEXT "input channels:",IDC_STATIC2,157,107,134,8 CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_OWNERDRAWFIXED | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP,5,121,286,103 - CTEXT "Hold shift for immediate changes when clicking something ",IDC_STATIC3,5,228,286,8 + CTEXT "Hold shift for immediate changes when clicking something",IDC_STATIC3,5,228,286,8 END IDD_GOTO_DLG DIALOGEX 0, 0, 186, 120 @@ -370,7 +370,7 @@ BEGIN CONTROL "Apply aspect ratio compensation for anamorphic videos",IDC_CHECK_SUB_AR_COMPENSATION, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,10,148,277,8 GROUPBOX "Warning",IDC_STATIC,5,165,286,43 - LTEXT "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu.",IDC_STATIC,10,176,267,27 + LTEXT "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU.",IDC_STATIC,10,176,267,27 END IDD_PPAGEFORMATS DIALOGEX 0, 0, 296, 241 @@ -422,9 +422,9 @@ BEGIN CONTROL "Prevent minimizing the player when in fullscreen on a non default monitor",IDC_CHECK6, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,90,290,8 CONTROL "Use Windows 7 Taskbar features",IDC_CHECK_WIN7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,102,286,8 - CONTROL "Open next/previous file in folder on ""Skip back/forward"" when there is only one item in playlist",IDC_CHECK7, + CONTROL "Open previous/next file in folder on ""Skip back/forward"" when there is only one item in playlist",IDC_CHECK7, "Button",BS_AUTOCHECKBOX | BS_VCENTER | BS_MULTILINE | WS_TABSTOP,5,125,290,18 - CONTROL "Use time tooltip:",IDC_CHECK8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,149,135,8 + CONTROL "Show time tooltip:",IDC_CHECK8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,149,135,8 COMBOBOX IDC_COMBO3,145,147,113,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT "OSD font:",IDC_STATIC,5,167,82,8 COMBOBOX IDC_COMBO1,89,165,140,64,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP @@ -865,7 +865,7 @@ BEGIN PUSHBUTTON "Reset",IDC_RESET,231,80,50,14 GROUPBOX "Update check",IDC_STATIC,5,106,286,40 CONTROL "Enable automatic update check",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,118,250,8 - LTEXT "Delay between each check:",IDC_STATIC5,10,131,110,8 + LTEXT "Check every:",IDC_STATIC5,10,131,110,8 EDITTEXT IDC_EDIT1,120,129,30,13,ES_CENTER | ES_AUTOHSCROLL | ES_NUMBER CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,150,129,13,14 LTEXT "day(s)",IDC_STATIC6,155,131,50,8 @@ -1104,6 +1104,20 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,252,156,50,14 END +IDD_CRASH_REPORTER DIALOGEX 0, 0, 300, 240 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Crash reporter" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want.",IDC_STATIC1,5,5,290,35 + LTEXT "Email:",IDC_STATIC2,5,45,290,8 + EDITTEXT IDC_EDIT1,5,57,290,13,ES_AUTOHSCROLL + LTEXT "Your email address is optional and will only be used if the developers need to contact you for more information.",IDC_STATIC3,5,72,290,16 + LTEXT "Problem description (use English only):",IDC_STATIC4,5,92,290,8 + EDITTEXT IDC_EDIT2,5,105,290,112,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL + DEFPUSHBUTTON "OK",IDOK,245,220,50,14 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -1278,6 +1292,11 @@ BEGIN TOPMARGIN, 7 BOTTOMMARGIN, 170 END + + IDD_CRASH_REPORTER, DIALOG + BEGIN + BOTTOMMARGIN, 200 + END END #endif // APSTUDIO_INVOKED @@ -1309,7 +1328,7 @@ BEGIN BUTTON ID_BUTTONSEP BUTTON ID_DUMMYSEPARATOR BUTTON ID_VOLUME_MUTE - BUTTON ID_VOLUME_MUTE_ON + BUTTON ID_VOLUME_MUTE_OFF BUTTON ID_VOLUME_MUTE_DISABLED END @@ -1383,8 +1402,9 @@ BEGIN POPUP "R&enderer Settings" BEGIN MENUITEM "&Tearing Test", ID_VIEW_TEARING_TEST - MENUITEM "&Display Stats", ID_VIEW_DISPLAYSTATS - MENUITEM "&Remaining Time", ID_VIEW_REMAINING_TIME + MENUITEM "&Display Statistics", ID_VIEW_DISPLAY_RENDERER_STATS + MENUITEM "Display Current T&ime", ID_VIEW_OSD_DISPLAY_TIME + MENUITEM "Show &File Name", ID_VIEW_OSD_SHOW_FILENAME MENUITEM SEPARATOR POPUP "&Output Range" BEGIN @@ -1510,9 +1530,9 @@ BEGIN MENUITEM "&Filters", ID_FILTERS MENUITEM "S&haders", ID_SHADERS MENUITEM SEPARATOR - MENUITEM "&Audio", ID_AUDIOS - MENUITEM "Su&btitles", ID_SUBTITLES - MENUITEM "&Video Stream", ID_VIDEO_STREAMS + MENUITEM "&Audio Track", ID_AUDIOS + MENUITEM "Su&btitle Track", ID_SUBTITLES + MENUITEM "&Video Track", ID_VIDEO_STREAMS MENUITEM SEPARATOR POPUP "&Volume" BEGIN @@ -1522,14 +1542,15 @@ BEGIN END POPUP "Af&ter Playback" BEGIN - MENUITEM "&Exit", ID_AFTERPLAYBACK_CLOSE + MENUITEM "Do no&thing", ID_AFTERPLAYBACK_DONOTHING + MENUITEM "Play &next file in the folder", ID_AFTERPLAYBACK_PLAYNEXT + MENUITEM "Turn off the &monitor", ID_AFTERPLAYBACK_MONITOROFF + MENUITEM "&Exit", ID_AFTERPLAYBACK_EXIT MENUITEM "&Stand By", ID_AFTERPLAYBACK_STANDBY MENUITEM "&Hibernate", ID_AFTERPLAYBACK_HIBERNATE MENUITEM "Shut&down", ID_AFTERPLAYBACK_SHUTDOWN MENUITEM "Log &Off", ID_AFTERPLAYBACK_LOGOFF MENUITEM "&Lock", ID_AFTERPLAYBACK_LOCK - MENUITEM "Turn off the &monitor", ID_AFTERPLAYBACK_MONITOROFF - MENUITEM "Play &next file in the folder", ID_AFTERPLAYBACK_PLAYNEXT END END POPUP "&Navigate" @@ -1664,9 +1685,9 @@ BEGIN MENUITEM "&Filters", ID_FILTERS MENUITEM "S&haders", ID_SHADERS MENUITEM SEPARATOR - MENUITEM "&Audio", ID_AUDIOS - MENUITEM "Su&btitles", ID_SUBTITLES - MENUITEM "&Video Stream", ID_VIDEO_STREAMS + MENUITEM "&Audio Track", ID_AUDIOS + MENUITEM "Su&btitle Track", ID_SUBTITLES + MENUITEM "&Video Track", ID_VIDEO_STREAMS MENUITEM SEPARATOR POPUP "&Volume" BEGIN @@ -1676,14 +1697,15 @@ BEGIN END POPUP "Af&ter Playback" BEGIN - MENUITEM "&Exit", ID_AFTERPLAYBACK_CLOSE + MENUITEM "Do no&thing", ID_AFTERPLAYBACK_DONOTHING + MENUITEM "Play &next file in the folder", ID_AFTERPLAYBACK_PLAYNEXT + MENUITEM "Turn off the &monitor", ID_AFTERPLAYBACK_MONITOROFF + MENUITEM "&Exit", ID_AFTERPLAYBACK_EXIT MENUITEM "&Stand By", ID_AFTERPLAYBACK_STANDBY MENUITEM "&Hibernate", ID_AFTERPLAYBACK_HIBERNATE MENUITEM "Shut&down", ID_AFTERPLAYBACK_SHUTDOWN MENUITEM "Log &Off", ID_AFTERPLAYBACK_LOGOFF MENUITEM "&Lock", ID_AFTERPLAYBACK_LOCK - MENUITEM "Turn off the &monitor", ID_AFTERPLAYBACK_MONITOROFF - MENUITEM "Play &next file in the folder", ID_AFTERPLAYBACK_PLAYNEXT END MENUITEM SEPARATOR POPUP "&View" @@ -1717,8 +1739,9 @@ BEGIN POPUP "R&enderer Settings" BEGIN MENUITEM "&Tearing Test", ID_VIEW_TEARING_TEST - MENUITEM "&Display Stats", ID_VIEW_DISPLAYSTATS - MENUITEM "&Remaining Time", ID_VIEW_REMAINING_TIME + MENUITEM "&Display Statistics", ID_VIEW_DISPLAY_RENDERER_STATS + MENUITEM "Display Current T&ime", ID_VIEW_OSD_DISPLAY_TIME + MENUITEM "Show &File Name", ID_VIEW_OSD_SHOW_FILENAME MENUITEM SEPARATOR POPUP "&Output Range" BEGIN @@ -1852,8 +1875,9 @@ BEGIN POPUP "R&enderer Settings" BEGIN MENUITEM "&Tearing Test", ID_VIEW_TEARING_TEST - MENUITEM "&Display Stats", ID_VIEW_DISPLAYSTATS - MENUITEM "&Remaining Time", ID_VIEW_REMAINING_TIME + MENUITEM "&Display Statistics", ID_VIEW_DISPLAY_RENDERER_STATS + MENUITEM "Display Current T&ime", ID_VIEW_OSD_DISPLAY_TIME + MENUITEM "Show &File Name", ID_VIEW_OSD_SHOW_FILENAME MENUITEM SEPARATOR POPUP "&Output Range" BEGIN @@ -2004,9 +2028,9 @@ BEGIN MENUITEM "&Filters", ID_FILTERS MENUITEM "S&haders", ID_SHADERS MENUITEM SEPARATOR - MENUITEM "&Audio", ID_AUDIOS - MENUITEM "Su&btitles", ID_SUBTITLES - MENUITEM "&Video Stream", ID_VIDEO_STREAMS + MENUITEM "&Audio Track", ID_AUDIOS + MENUITEM "Su&btitle Track", ID_SUBTITLES + MENUITEM "&Video Track", ID_VIDEO_STREAMS MENUITEM SEPARATOR POPUP "&Volume" BEGIN @@ -2016,21 +2040,23 @@ BEGIN END POPUP "Af&ter Playback" BEGIN - MENUITEM "&Exit", ID_AFTERPLAYBACK_CLOSE + MENUITEM "Do no&thing", ID_AFTERPLAYBACK_DONOTHING + MENUITEM "Play &next file in the folder", ID_AFTERPLAYBACK_PLAYNEXT + MENUITEM "Turn off the &monitor", ID_AFTERPLAYBACK_MONITOROFF + MENUITEM "&Exit", ID_AFTERPLAYBACK_EXIT MENUITEM "&Stand By", ID_AFTERPLAYBACK_STANDBY MENUITEM "&Hibernate", ID_AFTERPLAYBACK_HIBERNATE MENUITEM "Shut&down", ID_AFTERPLAYBACK_SHUTDOWN MENUITEM "Log &Off", ID_AFTERPLAYBACK_LOGOFF MENUITEM "&Lock", ID_AFTERPLAYBACK_LOCK - MENUITEM "Turn off the &monitor", ID_AFTERPLAYBACK_MONITOROFF - MENUITEM "Play &next file in the folder", ID_AFTERPLAYBACK_PLAYNEXT END MENUITEM SEPARATOR POPUP "R&enderer Settings" BEGIN MENUITEM "&Tearing Test", ID_VIEW_TEARING_TEST - MENUITEM "&Display Stats", ID_VIEW_DISPLAYSTATS - MENUITEM "&Remaining Time", ID_VIEW_REMAINING_TIME + MENUITEM "&Display Statistics", ID_VIEW_DISPLAY_RENDERER_STATS + MENUITEM "Display Current T&ime", ID_VIEW_OSD_DISPLAY_TIME + MENUITEM "Show &File Name", ID_VIEW_OSD_SHOW_FILENAME MENUITEM SEPARATOR POPUP "&Output Range" BEGIN @@ -2211,8 +2237,8 @@ BEGIN IDS_SUBRESYNC_CLN_EFFECT "Effect" IDS_PLAYLIST_CAPTION "Playlist" IDS_PPAGE_FS_CLN_ON_OFF "On/Off" - IDS_PPAGE_FS_CLN_FROM_FPS "From fps" - IDS_PPAGE_FS_CLN_TO_FPS "To fps" + IDS_PPAGE_FS_CLN_FROM_FPS "From FPS" + IDS_PPAGE_FS_CLN_TO_FPS "To FPS" IDS_PPAGE_FS_CLN_DISPLAY_MODE "Display mode (Hz)" IDS_PPAGE_FS_DEFAULT "Default" IDS_PPAGE_FS_OTHER "Other" @@ -2321,7 +2347,7 @@ BEGIN IDC_DSVMR7REN "Same as the VMR-7 (windowed), but with the Allocator-Presenter plugin of MPC-HC for subtitling. Overlay video mirroring WILL NOT work. ""True Color"" desktop color space recommended." IDC_DSVMR9REN "Same as the VMR-9 (windowed), but with the Allocator-Presenter plugin of MPC-HC for subtitling. Overlay video mirroring MIGHT work. ""True Color"" desktop color space recommended. Recommended for Windows XP." IDC_DSDXR "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer." - IDC_DSNULL_COMP "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." + IDC_DSNULL_COMP "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." IDC_DSNULL_UNCOMP "Same as the normal Null renderer, but this will only connect to uncompressed types." IDC_DSEVR "Only available on Vista or later or on XP with at least .NET Framework 3.5 installed." IDC_DSEVR_CUSTOM "Same as the EVR, but with the Allocator-Presenter of MPC-HC for subtitling and postprocessing. Recommended for Windows Vista or later." @@ -2440,7 +2466,7 @@ END STRINGTABLE BEGIN ID_VOLUME_MUTE "Mute" - ID_VOLUME_MUTE_ON "Unmute" + ID_VOLUME_MUTE_OFF "Unmute" ID_VOLUME_MUTE_DISABLED "No audio" END @@ -2628,6 +2654,11 @@ BEGIN IDS_MEDIAINFO_NO_INFO_AVAILABLE "No information available" IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS "Please wait, analysis in progress..." IDS_ASPECT_RATIO_FMT "AR %d:%d" + IDS_PPAGEADVANCED_LOGGER "Enables logging to file (requires restart)" + IDS_TIMER_REMAINING_TIME "Remaining time" + IDS_TIMER_HIGH_PRECISION "High precision" + IDS_AFTERPLAYBACK_REWIND "After Playback: Rewind current file" + IDS_AFTERPLAYBACK_CLOSE "After Playback: Close" END STRINGTABLE @@ -2644,8 +2675,8 @@ BEGIN IDS_AG_PLAYPAUSE "Play/Pause" IDS_AG_PLAY "Play" IDS_AG_STOP "Stop" - IDS_AG_FRAMESTEP "Framestep" - IDS_MPLAYERC_16 "Framestep back" + IDS_AG_FRAMESTEP "Frame-step" + IDS_MPLAYERC_16 "Frame-step back" IDS_AG_GO_TO "Go To" IDS_AG_INCREASE_RATE "Increase Rate" END @@ -2678,7 +2709,7 @@ BEGIN IDS_OSD_RS_VSYNC_OFFSET "VSync Offset: %d" IDS_OSD_SPEED "Speed: %.2lfx" IDS_OSD_THUMBS_SAVED "Thumbnails saved successfully" - IDS_MENU_VIDEO_STREAM "&Video Stream" + IDS_MENU_VIDEO_STREAM "&Video Track" IDS_MENU_VIDEO_ANGLE "Video Ang&le" IDS_RESET_SETTINGS "Reset settings" IDS_RESET_SETTINGS_WARNING @@ -2722,8 +2753,20 @@ BEGIN IDS_MPLAYERC_101 "Goto Next Subtitle" IDS_MPLAYERC_102 "Shift Subtitle Left" IDS_MPLAYERC_103 "Shift Subtitle Right" - IDS_AG_DISPLAY_STATS "Display Stats" IDS_AG_SEEKSET "Jump to Beginning" + IDS_OSD_SHOW_FILENAME "OSD: Show File Name" +END + +STRINGTABLE +BEGIN + IDS_OSD_DISPLAY_RENDERER_STATS "OSD: Display Renderer Statistics" + IDS_OSD_RESET_RENDERER_STATS "OSD: Reset Renderer Statistics" + IDD_PPAGESUBMISC "Subtitles::Misc" + IDS_VIEW_BORDERLESS "Hide &borders" + IDS_VIEW_FRAMEONLY "Fra&me Only" + IDS_VIEW_CAPTIONMENU "Sho&w Caption&&Menu" + IDS_VIEW_HIDEMENU "Hide &Menu" + IDD_PPAGEADVANCED "Advanced" END STRINGTABLE @@ -2799,8 +2842,8 @@ BEGIN IDS_AG_DVD_MENU_BACK "DVD Menu Back" IDS_MPLAYERC_75 "DVD Menu Leave" IDS_AG_BOSS_KEY "Boss key" - IDS_MPLAYERC_77 "Player Menu (short)" - IDS_MPLAYERC_78 "Player Menu (long)" + IDS_MPLAYERC_77 "Player Menu" + IDS_MPLAYERC_78 "Player Menu (full)" IDS_AG_FILTERS_MENU "Filters Menu" IDS_AG_OPTIONS "Options" IDS_AG_NEXT_AUDIO "Next Audio" @@ -2824,7 +2867,7 @@ BEGIN IDS_MPLAYERC_95 "Next Subtitle (DVD)" IDS_MPLAYERC_96 "Prev Subtitle (DVD)" IDS_MPLAYERC_97 "On/Off Subtitle (DVD)" - IDS_MPLAYERC_98 "Remaining Time" + IDS_OSD_DISPLAY_CURRENT_TIME "OSD: Display Current Time" END STRINGTABLE @@ -2943,7 +2986,7 @@ BEGIN IDS_MAINFRM_70 "Audio delay: %I64d ms" IDS_AG_CHAPTER "Chapter %d" IDS_AG_OUT_OF_MEMORY "Out of memory" - IDS_MAINFRM_77 "Error: Flash player for IE is required" + IDS_MAINFRM_77 "Error: Adobe Flash Player for Internet Explorer is required" IDS_MAINFRM_78 "QuickTime not yet supported for X64 (apple library not available)" IDS_MAINFRM_80 "Failed to create the filter graph object" IDS_MAINFRM_81 "Invalid argument" @@ -2965,7 +3008,7 @@ BEGIN IDS_MAINFRM_DIR_CHECK "Include subdirectories" IDS_AG_PAUSE "Pause" IDS_AG_TOGGLE_CAPTION "Toggle Caption&Menu" - IDS_AG_TOGGLE_SEEKER "Toggle Seeker" + IDS_AG_TOGGLE_SEEKER "Toggle Seek Bar" IDS_AG_TOGGLE_CONTROLS "Toggle Controls" END @@ -3016,7 +3059,7 @@ BEGIN IDS_VOLUME_BOOST_DEC "Volume boost decrease" IDS_VOLUME_BOOST_MIN "Volume boost Min" IDS_VOLUME_BOOST_MAX "Volume boost Max" - IDS_USAGE "Usage: mpc-hc.exe ""pathname"" [switches]\n\n""pathname""\tThe main file or directory to be loaded (wildcards\n\t\tallowed, ""-"" denotes standard input)\n/dub ""dubname""\tLoad an additional audio file\n/dubdelay ""file""\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains ""...DELAY XXms..."")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub ""subname""\tLoad an additional subtitle file\n/filter ""filtername""\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, ""pathname"" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t""pathname"" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd ""pathname"" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at ""ms"" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see ""Output"" settings)\n/shaderpreset ""Pr""\tStart using ""Pr"" shader preset\n/pns ""name""\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave ""hWnd""\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" + IDS_USAGE "Usage: mpc-hc.exe ""pathname"" [switches]\n\n""pathname""\tThe main file or directory to be loaded (wildcards\n\t\tallowed, ""-"" denotes standard input)\n/dub ""dubname""\tLoad an additional audio file\n/dubdelay ""file""\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains ""...DELAY XXms..."")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub ""subname""\tLoad an additional subtitle file\n/filter ""filtername""\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, ""pathname"" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t""pathname"" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd ""pathname"" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at ""ms"" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see ""Output"" settings)\n/shaderpreset ""Pr""\tStart using ""Pr"" shader preset\n/pns ""name""\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave ""hWnd""\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" IDS_UNKNOWN_SWITCH "Unrecognized switch(es) found in command line string: \n\n" END @@ -3090,19 +3133,8 @@ END STRINGTABLE BEGIN - IDS_AG_RESET_STATS "Reset Display Stats" - IDD_PPAGESUBMISC "Subtitles::Misc" - IDS_VIEW_BORDERLESS "Hide &borders" - IDS_VIEW_FRAMEONLY "Frame Only" - IDS_VIEW_CAPTIONMENU "Sho&w Caption&&Menu" - IDS_VIEW_HIDEMENU "Hide &Menu" - IDD_PPAGEADVANCED "Advanced" -END - -STRINGTABLE -BEGIN - IDS_TIME_TOOLTIP_ABOVE "Above seekbar" - IDS_TIME_TOOLTIP_BELOW "Below seekbar" + IDS_TIME_TOOLTIP_ABOVE "Above seek bar" + IDS_TIME_TOOLTIP_BELOW "Below seek bar" IDS_VIDEO_STREAM "Video: %s" IDS_APPLY "Apply" IDS_CLEAR "Clear" @@ -3164,11 +3196,20 @@ END STRINGTABLE BEGIN - IDS_MFMT_AC3 "AC-3/DTS" + IDS_MFMT_AC3 "AC-3" IDS_MFMT_AIFF "AIFF" IDS_MFMT_ALAC "Apple Lossless" END +STRINGTABLE +BEGIN + IDS_MFMT_WAV "WAV" + IDS_MFMT_WMA "Windows Media Audio" + IDS_MFMT_WV "WavPack" + IDS_MFMT_OPUS "Opus Audio Codec" + IDS_MFMT_DTS "DTS/DTS-HD" +END + STRINGTABLE BEGIN IDS_MFMT_AMR "AMR" @@ -3189,14 +3230,6 @@ BEGIN IDS_MFMT_TTA "True Audio" END -STRINGTABLE -BEGIN - IDS_MFMT_WAV "WAV" - IDS_MFMT_WMA "Windows Media Audio" - IDS_MFMT_WV "WavPack" - IDS_MFMT_OPUS "Opus Audio Codec" -END - STRINGTABLE BEGIN IDS_MFMT_PLS "Playlist" @@ -3331,7 +3364,7 @@ BEGIN IDS_GOTO_ERROR_PARSING_TEXT "Error parsing the entered text!" IDS_GOTO_ERROR_PARSING_FPS "Error parsing the entered frame rate!" IDS_FRAME_STEP_ERROR_RENDERER - "Cannot frame step, try a different video renderer." + "Cannot frame-step, try a different video renderer." IDS_SCREENSHOT_ERROR_REAL "The ""Save Image"" and ""Save Thumbnails"" functions do not work with the default video renderer for RealMedia.\nSelect one of the DirectX renderers for RealMedia in MPC-HC's output options and reopen the file." IDS_SCREENSHOT_ERROR_QT "The ""Save Image"" and ""Save Thumbnails"" functions do not work with the default video renderer for QuickTime.\nSelect one of the DirectX renderers for QuickTime in MPC-HC's output options and reopen the file." @@ -3374,7 +3407,7 @@ END STRINGTABLE BEGIN - IDS_AFTERPLAYBACK_CLOSE "After Playback: Exit" + IDS_AFTERPLAYBACK_EXIT "After Playback: Exit" IDS_AFTERPLAYBACK_STANDBY "After Playback: Stand By" IDS_AFTERPLAYBACK_HIBERNATE "After Playback: Hibernate" IDS_AFTERPLAYBACK_SHUTDOWN "After Playback: Shutdown" diff --git a/src/mpc-hc/mpc-hc.vcxproj b/src/mpc-hc/mpc-hc.vcxproj index cb521851aa0..6786bbddbe1 100644 --- a/src/mpc-hc/mpc-hc.vcxproj +++ b/src/mpc-hc/mpc-hc.vcxproj @@ -321,6 +321,8 @@ + + @@ -336,7 +338,7 @@ - + @@ -351,7 +353,6 @@ - @@ -449,6 +450,8 @@ + + @@ -464,7 +467,7 @@ - + @@ -477,12 +480,12 @@ + - @@ -574,13 +577,6 @@ - - Document - true - true - true - true - ICO @@ -766,6 +762,9 @@ {5e56335f-0fb1-4eea-b240-d8dc5e0608e4} + + {beceaff9-cdca-45ec-a1cf-658fa51818e6} + {ed257874-e12e-4143-af0a-0676da3bb18c} diff --git a/src/mpc-hc/mpc-hc.vcxproj.filters b/src/mpc-hc/mpc-hc.vcxproj.filters index dfd45f79d56..063c0f1d7ed 100644 --- a/src/mpc-hc/mpc-hc.vcxproj.filters +++ b/src/mpc-hc/mpc-hc.vcxproj.filters @@ -83,6 +83,9 @@ {0453474a-2716-4c52-b5f4-cf6bd9e31ed0} + + {1d73f7db-64e8-4bc8-b0ca-72847253f467} + @@ -157,9 +160,6 @@ Player Config - - Helpers - Custom Controls @@ -397,7 +397,6 @@ - @@ -435,6 +434,15 @@ Panels + + Helpers + + + Crash Reporter + + + Crash Reporter + @@ -509,9 +517,6 @@ Player Config - - Helpers - Custom Controls @@ -770,7 +775,6 @@ - @@ -812,6 +816,18 @@ Panels + + Helpers + + + Helpers + + + Crash Reporter + + + Crash Reporter + @@ -1048,9 +1064,4 @@ Resource Files - - - Build Info - - \ No newline at end of file diff --git a/src/mpc-hc/mpciconlib/mpciconlib.cpp b/src/mpc-hc/mpciconlib/mpciconlib.cpp index c85de0f3631..78ca7645e52 100644 --- a/src/mpc-hc/mpciconlib/mpciconlib.cpp +++ b/src/mpc-hc/mpciconlib/mpciconlib.cpp @@ -1,5 +1,5 @@ /* - * (C) 2008-2013 see Authors.txt + * (C) 2008-2013, 2015 see Authors.txt * * This file is part of MPC-HC. * @@ -95,6 +95,10 @@ extern "C" __declspec(dllexport) int GetIconIndex(LPCTSTR ext) iconIndex = IDI_DSM_ICON; } else if (_tcsicmp(ext, _T(".dts")) == 0) { iconIndex = IDI_DTS_ICON; + } else if (_tcsicmp(ext, _T(".dtshd")) == 0) { + iconIndex = IDI_DTS_ICON; + } else if (_tcsicmp(ext, _T(".dtsma")) == 0) { + iconIndex = IDI_DTS_ICON; } else if (_tcsicmp(ext, _T(".evo")) == 0) { iconIndex = IDI_MPEG_ICON; } else if (_tcsicmp(ext, _T(".f4v")) == 0) { diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ar.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ar.dialogs.po index 8164268eac0..0f9b43c5bd4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ar.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ar.dialogs.po @@ -115,7 +115,7 @@ msgid "Enable custom channel mapping" msgstr "تمكين تخطيط القنوات المخصص" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "إعداد السماعات لـ" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -123,7 +123,7 @@ msgid "input channels:" msgstr "قنوات إدخال" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "استمر بالضغط على shift لجعل التغييرات فورية بعد النقر على شيء" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -575,7 +575,7 @@ msgid "Warning" msgstr "تحذير" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "إذا كنت ستتجاوز وتمكّن الشاشة الكاملة ضدّ التعرّج في مكان ضبط كرت الفيديو الخاص بك، فالترجمة لن تشاهدها بفرق أفضل لكنّه سيستهلك وحدة المعالجة المركزية بالتأكيد" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -687,11 +687,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "إستعمال مميزّات شريط المهام لويندوز 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "فتح (التالي / السابق) (رجوع خلفي/ أمامي) في الحافظة عندما تكون هناك مادة وحيدة في قائمة التشغيل" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "استخدام أداة طرف الوقت:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1283,8 +1283,8 @@ msgid "Enable automatic update check" msgstr "تمكين الفحص التلقائي للتحديثات" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "التأخير بين كل فحص:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1670,3 +1670,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "حسناً" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ar.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ar.menus.po index 8072e84cafe..befe53f7dd4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ar.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ar.menus.po @@ -199,13 +199,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "اختبار التمزق" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "عرض الإحصائيات" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "الوقت المتبقي" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -556,16 +560,16 @@ msgid "S&haders" msgstr "المظللات" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "الصوت" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "الترجمة" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "تدفق الفيديو" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -587,7 +591,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "بعد التشغيل" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "تشغيل الملف التالي في المجلد" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "أغلق الشاشة" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "خروج" @@ -611,14 +627,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "قفل" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "أغلق الشاشة" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "تشغيل الملف التالي في المجلد" - msgctxt "POPUP" msgid "&Navigate" msgstr "التنقل" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ar.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ar.strings.po index 1140f59e5ba..24109261f37 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ar.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ar.strings.po @@ -331,11 +331,11 @@ msgid "On/Off" msgstr "تشغيل/إيقاف" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "من إطار في الثانية" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "إلى إطار في الثانية" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -627,7 +627,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "نفس الـ VMR-9 ولكنه (عارض أقل)، لكن إستعمال إعادة التحجيم حقيقية." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "الإتصال بأيّ فيديو مثل نوع الوسائط وسيرسل العينات ليفحصها ليس في أي مكان. إستعمله إذا كنت لست بحاجة إلى عرض الفيديو وأردت توفير وحدة المعالجة المركزية من عمل غير ضروري." msgctxt "IDC_DSNULL_UNCOMP" @@ -894,7 +894,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "صامت" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "غير صامت" @@ -1378,6 +1378,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "فتح جهاز" @@ -1427,11 +1447,11 @@ msgid "Stop" msgstr "توقف" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "خطوة إطار" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "خطوة خلفية للإطار" msgctxt "IDS_AG_GO_TO" @@ -1531,8 +1551,8 @@ msgid "Thumbnails saved successfully" msgstr "تم حفظ المصغرات" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "تدفق الفيديو" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1654,14 +1674,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "تحويل الترجمة لليمين" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "عرض الإحصائيات" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "القفز إلى البداية" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "الترجمة::منوعات" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "إخفاء الحدود" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "الإطار فقط" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "تبديل العنوان و القائمة" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "إخفاء القائمة" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "متقدّم" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "عرض الحد الأدنى" @@ -1895,12 +1947,12 @@ msgid "Boss key" msgstr "مفتاح الرئيس" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "قائمة المشغل (قصيرة)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "قائمة المشغل (طويلة)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1978,9 +2030,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "تشغيل/إيقاف الترجمة (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "الوقت المتبقي" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2291,7 +2343,7 @@ msgid "Out of memory" msgstr "نفذت الذاكرة" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" msgstr "خطأ: مطلوب فلاش بلاير لانترنت اكسبلورر" msgctxt "IDS_MAINFRM_78" @@ -2363,7 +2415,7 @@ msgid "Toggle Caption&Menu" msgstr "تبديل العنوان و القائمة" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "تبديل الباحث" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2519,8 +2571,8 @@ msgid "Volume boost Max" msgstr "أقصى تعزيز للصوت" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "طريقة الاستعمال: mpc-hc.exe \"pathname\" [المفاتيح]\n\n\"pathname\"\tالملف الرئيسي او المجلد الذي سيتم تحميله (حرف بدل\n\t\tمسموح, \"-\" يدل على المدخل القياسي)\n/dub \"dubname\"\tتحميل ملف صوت إضافي\n/dubdelay \"file\"\tتحميل ملف صوت إضافي مزاح بـ XXms (إذا كان\n\t\tالملف يحتوي على \"...DELAY XXms...\")\n/d3dfs\t\tبدء التصيير في وضع ملء الشاشة D3D\n/sub \"subname\"\tتحميل ملف ترجمة إضافي\n/filter \"filtername\"\tتحميل فلاتر DirectShow من مكتبة الروابط\n\t\tالديناميكية (أحرف البدل مسموحة)\n/dvd\t\tتشغيل في وضع DVD, \"pathname\" تعني الـDVD\n\t\tالمجلد (اختياري)\n/dvdpos T#C\tبدء التشغيل في العنوان T, فصل C\n/dvdpos T#hh:mm\tبدء التشغيل في العنوان T, موقع hh:mm:ss\n/cd\t\tتحميل كل مسارات audio cd أو (s)vcd,\n\t\t\"pathname\" يعني مسار محرك الأقراص (اختياري)\n/device\t\tفتح جهاز الفيديو الافتراضي\n/open\t\tافتح الملف، لا تبدأ التشغيل تلقائيا\n/play\t\tبدء تشغيل الملف عند بدء\n\t\tالمشغل\n/close\t\tإغلاق المشغل بعد نهاية العرض (يعمل فقط عند\n\t\tاستعماله مع /play)\n/shutdown\tإيقاف تشغيل نظام التشغيل بعد العرض\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tالبدء في وضع ملء الشاشة\n/minimized\tالبدء في الوضع المصغر\n/new\t\tاستخدام مثيل جديد من المشغل\n/add\t\tإضافة \"pathname\" إلى قائمة التشغيل، يمكن دمجه\n\t\tمع /open و /play\n/regvid\t\tإنشاء اقترانات الملفات لملفات الفيديو\n/regaud\t\tإنشاء اقترانات الملفات لملفات الصوت\n/regpl\t\tإنشاء اقترانات الملفات لملفات قائمة التشغيل\n/regall\t\tإنشاء اقترانات الملفات لجميع الملفات المدعومة\n/unregall\t\tإزالة جميع اقترانات الملفات\n/start ms\t\tبدء العرض عند \"ms\" (= ميلي ثانية)\n/startpos hh:mm:ss\tبدء العرض عند موضع hh:mm:ss\n/fixedsize w,h\tتعيين حجم نافذة ثابت\n/monitor N\tبدء المشغل على الشاشة N، حيث N تبدأ من 1\n/audiorenderer N\tالبدء باستعمال مصيير الصوت N، حيث N تبدأ من 1\n\t\t( راجع اعدادات \"المخرجات\" )\n/shaderpreset \"Pr\"\tالبدء باستعمال الاعدادات المسبقة \"Pr\" للمظلل\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tاستعادة الإعدادات الافتراضية\n/help /h /?\tعرض التعليمات حول مفاتيح سطر الأوامر\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "طريقة الاستعمال: mpc-hc.exe \"pathname\" [المفاتيح]\n\n\"pathname\"\tالملف الرئيسي او المجلد الذي سيتم تحميله (حرف بدل\n\t\tمسموح, \"-\" يدل على المدخل القياسي)\n/dub \"dubname\"\tتحميل ملف صوت إضافي\n/dubdelay \"file\"\tتحميل ملف صوت إضافي مزاح بـ XXms (إذا كان\n\t\tالملف يحتوي على \"...DELAY XXms...\")\n/d3dfs\t\tبدء التصيير في وضع ملء الشاشة D3D\n/sub \"subname\"\tتحميل ملف ترجمة إضافي\n/filter \"filtername\"\tتحميل فلاتر DirectShow من مكتبة الروابط\n\t\tالديناميكية (أحرف البدل مسموحة)\n/dvd\t\tتشغيل في وضع DVD, \"pathname\" تعني الـDVD\n\t\tالمجلد (اختياري)\n/dvdpos T#C\tبدء التشغيل في العنوان T, فصل C\n/dvdpos T#hh:mm\tبدء التشغيل في العنوان T, موقع hh:mm:ss\n/cd\t\tتحميل كل مسارات audio cd أو (s)vcd,\n\t\t\"pathname\" يعني مسار محرك الأقراص (اختياري)\n/device\t\tفتح جهاز الفيديو الافتراضي\n/open\t\tافتح الملف، لا تبدأ التشغيل تلقائيا\n/play\t\tبدء تشغيل الملف عند بدء\n\t\tالمشغل\n/close\t\tإغلاق المشغل بعد نهاية العرض (يعمل فقط عند\n\t\tاستعماله مع /play)\n/shutdown\tإيقاف تشغيل نظام التشغيل بعد العرض\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tالبدء في وضع ملء الشاشة\n/minimized\tالبدء في الوضع المصغر\n/new\t\tاستخدام مثيل جديد من المشغل\n/add\t\tإضافة \"pathname\" إلى قائمة التشغيل، يمكن دمجه\n\t\tمع /open و /play\n/randomize\tRandomize the playlist\n/regvid\t\tإنشاء اقترانات الملفات لملفات الفيديو\n/regaud\t\tإنشاء اقترانات الملفات لملفات الصوت\n/regpl\t\tإنشاء اقترانات الملفات لملفات قائمة التشغيل\n/regall\t\tإنشاء اقترانات الملفات لجميع الملفات المدعومة\n/unregall\t\tإزالة جميع اقترانات الملفات\n/start ms\t\tبدء العرض عند \"ms\" (= ميلي ثانية)\n/startpos hh:mm:ss\tبدء العرض عند موضع hh:mm:ss\n/fixedsize w,h\tتعيين حجم نافذة ثابت\n/monitor N\tبدء المشغل على الشاشة N، حيث N تبدأ من 1\n/audiorenderer N\tالبدء باستعمال مصيير الصوت N، حيث N تبدأ من 1\n\t\t( راجع اعدادات \"المخرجات\" )\n/shaderpreset \"Pr\"\tالبدء باستعمال الاعدادات المسبقة \"Pr\" للمظلل\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tاستعادة الإعدادات الافتراضية\n/help /h /?\tعرض التعليمات حول مفاتيح سطر الأوامر\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2702,40 +2754,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "أعلى خلف يمين" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "إعادة ضبظ إحصائيات العرض" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "الترجمة::منوعات" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "إخفاء الحدود" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "الإطار فقط" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "تبديل العنوان و القائمة" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "إخفاء القائمة" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "متقدّم" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "فوق شريط الباحث" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "تحت شريط الباحث" msgctxt "IDS_VIDEO_STREAM" @@ -2903,8 +2927,8 @@ msgid "Other Audio" msgstr "أصوات أخرى" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2914,6 +2938,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "صوت ويندوز ميديا" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus كودك صوت" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2978,22 +3022,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "صوت حقيقي" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "صوت ويندوز ميديا" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus كودك صوت" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "قائمة التشغيل" @@ -3379,7 +3407,7 @@ msgid "Error parsing the entered frame rate!" msgstr "يوضح الخطأ نسبة تداخل في الإطار!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "لا يستطيع تأطير الخطوة، حاول بعارض فيديو مختلف." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3470,7 +3498,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "تحتاج لتطبيق الضبط الجديد قبل أن تفحصهم." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "بعد التشغيل: الخروج" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.be.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.be.dialogs.po index 4b1557c10f0..3077e374c80 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.be.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.be.dialogs.po @@ -108,16 +108,16 @@ msgid "Enable custom channel mapping" msgstr "Уключыць карыстальніцкае размеркаванне каналаў" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Налада калонак для " +msgid "Speaker configuration for" +msgstr "Налада калонак для" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "уваходных каналаў:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Утрымлівайце shift для неадкладнага прыняцця змен пры націску " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Утрымлівайце shift для неадкладнага прыняцця змен пры націску" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -568,7 +568,7 @@ msgid "Warning" msgstr "Увага" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Калі вы зменіце становішча і задзейнічаеце поўнаэкраннае згладжванне ў наладах відэакарты, субтытры не будуць выглядаць лепш, але будуць празмеру нагружаць працэсар." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -680,11 +680,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Выкарыстоўваць магчымасці таскбара Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Адкрыць наступны/папярэднi файл у папцы пры нацiску папярэднi/наступны, калi у плэйлiсце адзiн файл" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Паказваць час:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1276,8 +1276,8 @@ msgid "Enable automatic update check" msgstr "Укл. аўтаматычную праверку абнаўленняў" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Інтэрвал паміж абнаўленнямі:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1663,3 +1663,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.be.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.be.menus.po index 5f0db9a5b68..d43981dcfce 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.be.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.be.menus.po @@ -195,13 +195,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Тэст дрыгацення" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Паказваць статыстыку" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Пакінуты час" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -552,16 +556,16 @@ msgid "S&haders" msgstr "&Шэйдары" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Аўдыё" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "С&убтытры" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Відэаструмень" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -583,7 +587,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Па канчатку прайгравання" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Закрыць праграму" @@ -607,14 +623,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Блакаваць" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Навігацыя" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.be.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.be.strings.po index e48214acd34..b47b6852be5 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.be.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.be.strings.po @@ -325,12 +325,12 @@ msgid "On/Off" msgstr "Укл/Адкл" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Ад fps" +msgid "From FPS" +msgstr "Ад FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Да fps" +msgid "To FPS" +msgstr "Да FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -621,7 +621,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Падлучаецца да любога тыпу відэададзеных і адсылае ўваходныя кадры ў нікуды. Рэжым можа спатрэбіцца для захавання рэсурсаў працэсара ў выпадку калі патрэбны толькі гук." msgctxt "IDC_DSNULL_UNCOMP" @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Адключыць гук" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Адкрыць прыладу" @@ -1421,11 +1441,11 @@ msgid "Stop" msgstr "Стоп" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Крок наперад" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Крок назад" msgctxt "IDS_AG_GO_TO" @@ -1525,8 +1545,8 @@ msgid "Thumbnails saved successfully" msgstr "Мініяцюры паспяхова захаваны" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Відэаструмень" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Ссунуць субтытры направа" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Паказаць статыстыку" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Субтытры::Рознае" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Схаваць межы" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Толькі фрэймы" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Паказаць Загаловак і Меню" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Схаваць Меню" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Мінімальны выгляд" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "Аварыйная клавіша" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Меню прайгравальніка (скарочанае)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Меню прайгравальніка (поўнае)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Субтытры Укл/Адкл (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Пакінуты час" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "Бракуе памяці" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Памылка: Неабходны Flash для IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Памылка: Неабходны Flash для Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,7 +2409,7 @@ msgid "Toggle Caption&Menu" msgstr "Укл/Адкл загаловак і меню" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Укл/Адкл паласу прагорткі" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "Узмацненне гучнасці - Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Выкарыстанне: mpc-hc.exe \"шлях\" [перамыкачы]\n\n\"шлях\"\tФайл або каталог для загрузкі (дазволеныя маскі, \"-\" denotes standard input)\n/dub \"dubname\"\tЗагрузiць дадатковы гукавы файл\n/dubdelay \"file\"\tЗагрузiць дадатковы гукавы файл са зрушэннем XXмс\n(калі файл утрымлівае \"...DELAY XXms...\")\n/d3dfs\t\tСтартаваць у поўнаэкранным D3D рэжыме\n/sub \"subname\"\tЗагрузiць дадатковыя субтытры\n/filter \"filtername\"\tЗагрузiць фільтры DirectShow з бібліятэкі (дазволеныя маскі)\n/dvd\t\tЗапуск у рэжыме DVD \"шлях\" азначае каталог з DVD (апцыянальна)\n/cd\t\tЗагрузіць усе дарожкі Audio CD або (S)VCD \"шлях\" азначае шлях да кружэлкі (апцыянальна)\n/device\t\tOpen the default video device\n/open\t\tТолькi адкрыць файл\n/play\t\tПачынаць прайграванне адразу пасля запуску\n/close\t\tЗакрыць па канчатку прайгравання (працуе толькі з перамыкачом /play)\n/shutdown\tВыключыць кампутар па канчатку прайгравання\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tЗапуск у поўнаэкранным рэжыме\n/minimized\tЗапуск у згорнутым выглядзе\n/new\t\tВыкарстаць новую копію прайгравальніка\n/add\t\tДадаць \"шлях\" у плэйліст можна сумесна з /open і /play\n/regvid\t\tРэгістраваць відэафарматы\n/regaud\t\tРэгістраваць аўдыёфарматы\n/unregvid\t\tРазрэгістраваць відэафарматы\n/unregaud\tРазрэгістраваць аўдыёфарматы\n/start ms\t\tПрайграваць з пазіцыі \"ms\" (= мілісекунды)\n/fixedsize wh\tУсталяваць фіксаваны памер акна\n/monitor N\tЗапускацца на маніторы N дзе N адлічваецца з 1\n/audiorenderer N\tВыкарыстаць аўдыёрэндэр N, дзе N адлічваецца з 1\n\t\t(глядзіце налады \"Вывад\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/help /h /?\tПаказвае гэтую даведку\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Выкарыстанне: mpc-hc.exe \"шлях\" [перамыкачы]\n\n\"шлях\"\tФайл або каталог для загрузкі (дазволеныя маскі, \"-\" denotes standard input)\n/dub \"dubname\"\tЗагрузiць дадатковы гукавы файл\n/dubdelay \"file\"\tЗагрузiць дадатковы гукавы файл са зрушэннем XXмс\n(калі файл утрымлівае \"...DELAY XXms...\")\n/d3dfs\t\tСтартаваць у поўнаэкранным D3D рэжыме\n/sub \"subname\"\tЗагрузiць дадатковыя субтытры\n/filter \"filtername\"\tЗагрузiць фільтры DirectShow з бібліятэкі (дазволеныя маскі)\n/dvd\t\tЗапуск у рэжыме DVD \"шлях\" азначае каталог з DVD (апцыянальна)\n/cd\t\tЗагрузіць усе дарожкі Audio CD або (S)VCD \"шлях\" азначае шлях да кружэлкі (апцыянальна)\n/device\t\tOpen the default video device\n/open\t\tТолькi адкрыць файл\n/play\t\tПачынаць прайграванне адразу пасля запуску\n/close\t\tЗакрыць па канчатку прайгравання (працуе толькі з перамыкачом /play)\n/shutdown\tВыключыць кампутар па канчатку прайгравання\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tЗапуск у поўнаэкранным рэжыме\n/minimized\tЗапуск у згорнутым выглядзе\n/new\t\tВыкарстаць новую копію прайгравальніка\n/add\t\tДадаць \"шлях\" у плэйліст можна сумесна з /open і /play\n/randomize\tRandomize the playlist\n/regvid\t\tРэгістраваць відэафарматы\n/regaud\t\tРэгістраваць аўдыёфарматы\n/unregvid\t\tРазрэгістраваць відэафарматы\n/unregaud\tРазрэгістраваць аўдыёфарматы\n/start ms\t\tПрайграваць з пазіцыі \"ms\" (= мілісекунды)\n/fixedsize wh\tУсталяваць фіксаваны памер акна\n/monitor N\tЗапускацца на маніторы N дзе N адлічваецца з 1\n/audiorenderer N\tВыкарыстаць аўдыёрэндэр N, дзе N адлічваецца з 1\n\t\t(глядзіце налады \"Вывад\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tПаказвае гэтую даведку\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,40 +2748,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Верх. задні правы" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Субтытры::Рознае" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Схаваць межы" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Толькі фрэймы" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Паказаць Загаловак і Меню" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Схаваць Меню" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Над паласой прагорткі" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Пад паласой прагорткі" msgctxt "IDS_VIDEO_STREAM" @@ -2897,7 +2921,7 @@ msgid "Other Audio" msgstr "" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" +msgid "AC-3" msgstr "" msgctxt "IDS_MFMT_AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Плэйліст" @@ -3373,7 +3401,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Колькасць кадраў у секунду запісаны няслушна!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Пакадравы прагляд немагчымы, паспрабуйце іншы відэарэндар." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,7 +3492,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Вы павінны ужыць налады перад іхняй праверкай." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Пасля прайгрвання: Выйсці" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.bn.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.bn.dialogs.po index bd3e2f9afca..4ca937d626c 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.bn.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.bn.dialogs.po @@ -1,16 +1,16 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# mehzad, 2014 +# Mehedi Hussain, 2014 # mehzad, 2014 # Tapu Afrad (তপু আফ্রাদ) , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-04-12 14:10+0000\n" +"Last-Translator: Mehedi Hussain\n" "Language-Team: Bengali (http://www.transifex.com/projects/p/mpc-hc/language/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -108,10 +108,10 @@ msgstr "অডিও সময়ের স্থানান্তর (ms):" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK1" msgid "Enable custom channel mapping" -msgstr "নির্ধারণযোগ্য চ্যানেল বিন্যাস সক্রিয়করণ" +msgstr "ব্যক্তি-নির্ধারিত চ্যানেল বিন্যাস সক্রিয়করণ" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "কনফিগারেশনের জন্য স্পিকার সংখ্যা" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -119,7 +119,7 @@ msgid "input channels:" msgstr "ইনপুট চ্যানেলসমূহ:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "কোন কিছু ক্লিক করার সময় অবিলম্বে পরিবর্তনের জন্য শিফট কী ধরে রাখুন" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -200,7 +200,7 @@ msgstr "এই প্রোগ্রামটি একটি উন্মুক msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "English translation made by MPC-HC Team" -msgstr "বাংলা অনুবাদ সম্পাদিত করেছে মেহেদী শান্ত" +msgstr "বাংলা অনুবাদটি সম্পাদনা করেছে মেহেদী শান্ত" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "Build information" @@ -516,7 +516,7 @@ msgstr "%" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Delay step" -msgstr "" +msgstr "বিলম্বনে পদক্ষেপ" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "ms" @@ -564,14 +564,14 @@ msgstr "রেনডারারের ধরন-প্রকৃতি" msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_SUB_AR_COMPENSATION" msgid "Apply aspect ratio compensation for anamorphic videos" -msgstr "আনামর্ফিক ভিডিওসমূহের জন্য অ্যাসপেক্ট রেশিও সামঞ্জস্য করা কার্যকর করণ" +msgstr "আনামর্ফিক ভিডিওসমূহের জন্য অ্যাসপেক্ট রেশিও সামঞ্জস্য করা প্রয়োগ করণ" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Warning" msgstr "সতর্কীকরণ" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "আপনার ভিডিওকার্ডের সেটিংসমূহের কোথাও যদি সম্পূর্ণ-স্ক্রীন জুড়ে অ্যান্টিএলিয়েসিং- ওভাররাইড করণ এবং সক্রিয় থাকে, তবে সাবটাইটেল অপেক্ষাকৃত ভাল তো দেখাবেই না বরং সেটা আপনার CPUর কর্মদক্ষতা হ্রাস করবে।" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -588,19 +588,19 @@ msgstr "সেট করি" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC3" msgid "Association" -msgstr "সংশ্লিষ্টতা" +msgstr "সম্পৃক্ততা" msgctxt "IDD_PPAGEFORMATS_IDC_CHECK8" msgid "Use the format-specific icons" -msgstr "" +msgstr "ধরন-সাপেক্ষে নির্দিষ্ট আইকন ব্যবহার করি" msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON1" msgid "Run as &administrator" -msgstr "" +msgstr "অ্যাডমিনিস্ট্রেটর হিসেবে চালনা করি(&A)" msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON7" msgid "Set as &default program" -msgstr "" +msgstr "ডিফল্ট প্রোগ্রাম হিসেবে নির্ধারণ করি(&D)" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC" msgid "Real-Time Streaming Protocol handler (for rtsp://... URLs)" @@ -683,11 +683,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows 7এর বৈশিষ্ট্যমূলক টাস্কবার ব্যবহার" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "প্লেলিস্টে মাত্র একটি ফাইল থাকলে \"পিছনে/সামনে যাই\" দ্বারা ফোল্ডারে থাকা পরবর্তী/পূর্ববর্তী ফাইল চালনা" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "সময় প্রদর্শনে টুলটিপ ব্যবহার:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -932,7 +932,7 @@ msgstr "ms" msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_CHECK1" msgid "Save custom style" -msgstr "নির্ধারণকৃত ধরনটি সেইভ করি" +msgstr "ব্যক্তি-নির্ধারিত ধরনটি সেইভ করি" msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" msgid "JPEG quality:" @@ -1279,12 +1279,12 @@ msgid "Enable automatic update check" msgstr "স্বয়ংক্রিয়ভাবে হালনাগাদ অনুসন্ধান সক্রিয়করণ" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "প্রত্যেক অনুসন্ধান মধ্যবর্তি বিরতি:" +msgid "Check every:" +msgstr "অনুসন্ধান করা হবে:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" -msgstr "দিন" +msgstr "দিন পরপর" msgctxt "IDD_PPAGEMISC_IDC_STATIC" msgid "Settings management" @@ -1500,7 +1500,7 @@ msgstr "নিচে নামাই" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK3" msgid "Apply default monitor mode on fullscreen exit" -msgstr "ফুলস্ক্রীন থেকে প্রস্থানে ডিফল্ট মনিটর মুড কার্যকরকরণ" +msgstr "ফুলস্ক্রীন থেকে প্রস্থানে ডিফল্ট মনিটর মুড প্রয়োগ করণ" msgctxt "IDD_PPAGEFULLSCREEN_IDC_RESTORERESCHECK" msgid "Restore resolution on program exit" @@ -1660,9 +1660,33 @@ msgstr "JPEGএর বৈশিষ্ট্যগুণ:" msgctxt "IDD_CMD_LINE_HELP_CAPTION" msgid "Command line help" -msgstr "" +msgstr "কমান্ড লাইনের সহায়িকা" msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "ঠিক আছে" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.bn.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.bn.menus.po index 10f602a2727..4e1b66b6408 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.bn.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.bn.menus.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # mehzad, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-08-19 21:10:25+0000\n" -"PO-Revision-Date: 2014-08-21 19:10+0000\n" -"Last-Translator: mehzad\n" +"POT-Creation-Date: 2015-04-06 16:31:55+0000\n" +"PO-Revision-Date: 2015-04-12 14:14+0000\n" +"Last-Translator: Mehedi Hussain\n" "Language-Team: Bengali (http://www.transifex.com/projects/p/mpc-hc/language/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "স্ক্রীন ছিঁড়ে যাওয়া পরীক্ষা(&T)" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "ডিসপ্লে বৃত্তান্ত(&D)" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "অবশিষ্ট সময়(&R)" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -326,7 +330,7 @@ msgstr "&VSync" msgctxt "ID_VIEW_VSYNCACCURATE" msgid "&Accurate VSync" -msgstr "যথোপযোগী VSync(&A)" +msgstr "নিখুঁত VSync(&A)" msgctxt "ID_VIEW_ALTERNATIVEVSYNC" msgid "A<ernative VSync" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "শেইডারসমূহ(&H)" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "অডিও(&A)" +msgid "&Audio Track" +msgstr "অডিও ট্র্যাক(&A)" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "সাবটাইটেল(&B)" +msgid "Su&btitle Track" +msgstr "সাবটাইটেল ট্র্যাক(&B)" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "ভিডিও স্ট্রিম(&V)" +msgid "&Video Track" +msgstr "ভিডিও ট্র্যাক(&V)" msgctxt "POPUP" msgid "&Volume" @@ -578,13 +582,25 @@ msgstr "কমাই(&D)" msgctxt "ID_VOLUME_MUTE" msgid "&Mute" -msgstr "শব্দহীন করি(&M)" +msgstr "নিঃশব্দ করি(&M)" msgctxt "POPUP" msgid "Af&ter Playback" msgstr "প্লেব্যাকের পরে(&T)" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "ফোল্ডারের পরবর্তী ফাইলটি প্লে করি(N)" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "মনিটর বন্ধ করি(&M)" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "প্রোগ্রাম বন্ধ করি(&E)" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "কম্পিউটার লক করি(&L)" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "মনিটর বন্ধ করি(&M)" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "ন্যাভিগেট(&N)" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.bn.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.bn.strings.po index 3841ec53ac9..a29e1944a47 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.bn.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.bn.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# mehzad, 2014 +# Mehedi Hussain, 2014 # mehzad, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-19 22:15:16+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: JellyFrog\n" +"POT-Creation-Date: 2015-04-09 21:29:25+0000\n" +"PO-Revision-Date: 2015-04-12 14:14+0000\n" +"Last-Translator: Mehedi Hussain\n" "Language-Team: Bengali (http://www.transifex.com/projects/p/mpc-hc/language/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -115,7 +115,7 @@ msgstr "ধরনসমূহ" msgctxt "IDS_TEXT_SUB_RENDERING_TARGET" msgid "If the rendering target is left undefined, SSA/ASS subtitles will be rendered relative to the video frame while all other text subtitles will be rendered relative to the window." -msgstr "যদি রেনডার করার জন্য কোন নির্দিষ্ট ধরন নির্ধারণ করা না থাকে, তাহলে SSA/ASS সাবটাইটেলসমূহ ভিডিও ফ্রেম সাপেক্ষে রেনডার করা হবে যেখানে অন্যান্য সকল টেক্সট্‌ সাবটাইটেল উইন্ডো সাপেক্ষে রেনডার করা হবে।" +msgstr "যদি রেনডার করার জন্য কোন নির্দিষ্ট ধরন নির্ধারণ করা না থাকে, তাহলে SSA/ASS সাবটাইটেলসমূহ ভিডিও ফ্রেমের সাপেক্ষে রেনডার করা হবে, যখন অন্যান্য সকল টেক্সট্‌ সাবটাইটেল উইন্ডো-এর সাপেক্ষে রেনডার করা হবে।" msgctxt "IDS_PPAGE_CAPTURE_FG0" msgid "Never (fastest approach)" @@ -179,7 +179,7 @@ msgstr "খবর/সাম্প্রতিক ব্যাপার" msgctxt "IDS_SPEED_UNIT_G" msgid "GB/s" -msgstr "GB/s" +msgstr "গিগাবাইট/সেকন্ড" msgctxt "IDS_FILE_FAV_ADDED" msgid "File added to favorites" @@ -263,7 +263,7 @@ msgstr "ক্যাপচার ডিভাইসটি চালনা কর msgctxt "IDS_INVALID_PARAMS_ERROR" msgid "Can't open, invalid input parameters" -msgstr "চালনা করা যাচ্ছে না, ইনপুট প্যারামিটারসমূহ সঠিক নয়" +msgstr "চালনা করা যাচ্ছে না, ইনপুট প্যারামিটারসমূহ অগ্রহণযোগ্য" msgctxt "IDS_EDIT_LIST_EDITOR" msgid "Edit List Editor" @@ -275,7 +275,7 @@ msgstr "প্রবেশকৃত সময়টি ফাইলের স্থ msgctxt "IDS_MISSING_ICONS_LIB" msgid "The icons library \"mpciconlib.dll\" is missing.\nThe player's default icon will be used for file associations.\nPlease, reinstall MPC-HC to get \"mpciconlib.dll\"." -msgstr "আইকন লাইব্রেরি \"mpciconlib.dll\" খুঁজে পাওয়া যাচ্ছে না।\nপ্লেয়ারের ডিফল্ট আইকন সংশ্লিষ্ট ফাইলসমূহে ব্যবহার করা হবে।\n\"mpciconlib.dll\" পাওয়ার জন্যে, অনুগ্রহপূর্বক পুনরায় MPC-HC ইনস্টল করুন।" +msgstr "আইকন লাইব্রেরি \"mpciconlib.dll\" খুঁজে পাওয়া যাচ্ছে না।\nপ্লেয়ারের ডিফল্ট আইকন সম্পৃক্ত ফাইলসমূহে ব্যবহার করা হবে।\n\"mpciconlib.dll\" পাওয়ার জন্যে, অনুগ্রহপূর্বক পুনরায় MPC-HC ইনস্টল করুন।" msgctxt "IDS_SUBDL_DLG_FILENAME_COL" msgid "File" @@ -326,12 +326,12 @@ msgid "On/Off" msgstr "চালু/বন্ধ" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "fps থেকে" +msgid "From FPS" +msgstr "FPS থেকে" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "fpsএর দিকে" +msgid "To FPS" +msgstr "FPSএর দিকে" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -475,11 +475,11 @@ msgstr "আইকন লাইব্রেরির নতুন সংস্ক msgctxt "IDS_ICONS_REASSOC_DLG_INSTR" msgid "Do you want to reassociate the icons?" -msgstr "আপনি কি আইকনসমূহ পুনরায় সংশ্লিষ্টকরণ করতে চান?" +msgstr "আপনি কি আইকনসমূহ পুনরায় সম্পৃক্তকরণ করতে চান?" msgctxt "IDS_ICONS_REASSOC_DLG_CONTENT" msgid "This will fix the icons being incorrectly displayed after an update of the icon library.\nThe file associations will not be modified, only the corresponding icons will be refreshed." -msgstr "আইকন লাইব্রেরি হালনাগাদকরণের পরে আইকনসমূহ ভুলভাবে প্রদর্শন করলে, এর মাধ্যমে তা ঠিক করা যাবে।\nফাইলের সংশ্লিষ্টতাসমূহ এর মাধ্যমে পরিবর্তিত হবে না, শুধু সংশ্লিষ্ট আইকনসমূহ নতুন করে বিন্যস্ত হবে।" +msgstr "আইকন লাইব্রেরি হালনাগাদকরণের পরে আইকনসমূহ ভুলভাবে প্রদর্শন করলে, এর মাধ্যমে তা ঠিক করা যাবে।\nফাইলের সম্পৃক্ততাসমূহ এর মাধ্যমে পরিবর্তিত হবে না, শুধু সংশ্লিষ্ট আইকনসমূহ নতুন করে বিন্যস্ত হবে।" msgctxt "IDS_PPAGE_OUTPUT_OLDRENDERER" msgid "Old Video Renderer" @@ -622,8 +622,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "VMR-9 (renderless)এর মত একই রকমের, তবে একটি ট্রু টু-পাস বিকিউবিক সাইজপরিবর্তন পদ্ধতি ব্যবহার করে।" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "ভিডিওর মত যেকোনো মিডিয়া টাইপের সাথেই সংযুক্ত হবে এবং আসন্ন নমুনাসমূহকে কোথাও পাঠাবে না। এটা তখনই ব্যবহার করুন যখন আপনার ভিডিও ডিসপ্লের কোনো প্রয়োজন নেই এবং আপনি cpuকে অযথা কাজ করা থেকে বিরত রাখতে চান।" +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "ভিডিওর মত যেকোনো মিডিয়া টাইপের সাথেই সংযুক্ত হবে এবং আসন্ন নমুনাসমূহকে কোথাও পাঠাবে না। এটা তখনই ব্যবহার করুন যখন আপনার ভিডিও ডিসপ্লের কোনো প্রয়োজন নেই এবং আপনি CPUকে অযথা কাজ করা থেকে বিরত রাখতে চান।" msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -755,7 +755,7 @@ msgstr "MIMEএর ধরন" msgctxt "IDS_EMB_RESOURCES_VIEWER_INFO" msgid "In order to view an embedded resource in your browser you have to enable the web interface.\n\nUse the \"Save As\" button if you only want to save the information." -msgstr "কোন সংযুক্ত উৎস ব্রাউজারে দেখার জন্য ওয়েব ইন্টারফেস সক্রিয় করতে হবে।\n\nযদি শুধুমাত্র তথ্যাদি সেইভ করতে চান তবে \"সেইভ করতে পারি\" বাটনটি ব্যবহার করুন।" +msgstr "কোন সংযুক্তি উৎস ব্রাউজারে দেখার জন্য ওয়েব ইন্টারফেস সক্রিয় করতে হবে।\n\nযদি শুধুমাত্র তথ্যাদি সেইভ করতে চান তবে \"সেইভ করতে পারি\" বাটনটি ব্যবহার করুন।" msgctxt "IDS_DOWNLOAD_SUBS" msgid "Download subtitles" @@ -771,7 +771,7 @@ msgstr "স্বয়ংক্রিয়" msgctxt "IDS_EXPORT_SETTINGS_NO_KEYS" msgid "There are no customized keys to export." -msgstr "এক্সপোর্ট করার জন্য কোনো নির্ধারণকৃত কীসমূহ পাওয়া যায়নি।" +msgstr "এক্সপোর্ট করার জন্য কোনো ব্যক্তি-নির্ধারিত কীসমূহ পাওয়া যায়নি।" msgctxt "IDS_RFS_NO_FILES" msgid "No media files found in the archive" @@ -839,27 +839,27 @@ msgstr "ন্যাভিগেশন বার নিয়ন্ত্রণ" msgctxt "IDS_AG_VSYNCACCURATE" msgid "Accurate VSync" -msgstr "যথোপযোগী VSync" +msgstr "নিখুঁত VSync" msgctxt "IDC_CHECK_RELATIVETO" msgid "If the rendering target is left undefined, it will be inherited from the default style." -msgstr "রেনডার করার জন্য কোন নির্দিষ্ট ধরন নির্ধারণ করা না থাকলে, তা ডিফল্ট ধরন থেকে গ্রহণ করা হবে।" +msgstr "রেনডার করার জন্য কোন নির্দিষ্ট ধরন নির্ধারণ করা না থাকলে, তা ডিফল্ট ধরনটি থেকে গ্রহণ করা হবে।" msgctxt "IDC_CHECK_NO_SUB_ANIM" msgid "Disallow subtitle animation. Enabling this option will lower CPU usage. You can use it if you experience flashing subtitles." -msgstr "সাবটাইটেলের অ্যানিমেশন অননুমোদন। এই অপশনটি সক্রিয়করণে CPUর ব্যবহার কম হবে। সাবটাইটেল বার বার চমকাতে দেখলে এ অপশনটি ব্যবহার করতে পারেন।" +msgstr "সাবটাইটেলের অ্যানিমেশন অননুমোদন। এই অপশনটি সক্রিয়করণে CPUর ব্যবহার কম হবে। সাবটাইটেল বারবার চমকাতে দেখলে এ অপশনটি ব্যবহার করতে পারেন।" msgctxt "IDC_SUBPIC_TO_BUFFER" msgid "Increasing the number of buffered subpictures should in general improve the rendering performance at the cost of a higher video RAM usage on the GPU." -msgstr "সাধারণভাবে, বাফারকৃত সাবপিকচারসমূহের সংখ্যা বৃদ্ধি করলে তা GPUতে উচ্চমাত্রায় ভিডিও RAM ব্যবহারের বিনিময়ে রেনডারিং কার্য-সম্পাদনের উন্নতিসাধন করে।" +msgstr "সাধারণভাবে, বাফারকৃত সাবপিকচারসমূহের সংখ্যা বৃদ্ধি করলে তা উচ্চমাত্রায় ভিডিও RAM ব্যবহারের বিনিময়ে GPUতে রেনডারিং কার্য-সম্পাদনের উন্নতিসাধন করে।" msgctxt "IDC_BUTTON_EXT_SET" msgid "After clicking this button, the checked state of the format group will reflect the actual file association for MPC-HC. A newly added extension will usually make it grayed, so don't forget to check it again before closing this dialog!" -msgstr "এই বাটনটি ক্লিক করার পরে, নির্ধারণকৃত ধরন শ্রেণীর ফাইলসমূহ MPC-HCএর সাথে সংশ্লিষ্ট হবে। নতুন করে এক্সটেনশন যোগ করলে নির্ধারণ টিক-চিহ্নটি ছাই রং ধারণ করবে, তাই অপশন ডায়লগ বক্স বন্ধ করার পূর্বে সেটা পুনরায় নির্ধারণ করতে ভুলবেন না!" +msgstr "এই বাটনটি ক্লিক করার পরে, নির্ধারণকৃত ধরন শ্রেণীর ফাইলসমূহ MPC-HCএর সাথে সম্পৃক্ত হবে। নতুন করে এক্সটেনশন যোগ করলে নির্ধারণ টিক-চিহ্নটি ছাই রং ধারণ করবে, তাই অপশন ডায়লগ বক্স বন্ধ করার পূর্বে সেটা পুনরায় নির্ধারণ করতে ভুলবেন না!" msgctxt "IDC_CHECK_ALLOW_DROPPING_SUBPIC" msgid "Disabling this option will prevent the subtitles from blinking but it may cause the video renderer to skip some video frames." -msgstr "এই অপশনটি নিষ্ক্রিয়করণে সাবটাইটেলের বার বার চমকানো বন্ধ হবে কিন্তু এর জন্য ভিডিও রেনডারার কিছু ভিডিও ফ্রেম স্কিপ করতে পারে।" +msgstr "এই অপশনটি নিষ্ক্রিয়করণে সাবটাইটেলের বারবার চমকানো বন্ধ হবে কিন্তু এর জন্য ভিডিও রেনডারার কিছু ভিডিও ফ্রেমসমূহ বাদ দিয়ে যেতে পারে।" msgctxt "ID_PLAY_PLAY" msgid "Play\nPlay" @@ -875,7 +875,7 @@ msgstr "বন্ধ করি\nবন্ধ করি" msgctxt "ID_PLAY_FRAMESTEP" msgid "Step\nStep" -msgstr "পদক্ষেপ করি\nপদক্ষেপ করি" +msgstr "পদক্ষেপ গ্রহন করি\nপদক্ষেপ গ্রহন করি" msgctxt "ID_PLAY_DECRATE" msgid "Decrease speed\nDecrease speed" @@ -887,11 +887,11 @@ msgstr "গতি বৃদ্ধি করি\nগতি বৃদ্ধি ক msgctxt "ID_VOLUME_MUTE" msgid "Mute" -msgstr "শব্দহীন করি" +msgstr "নিঃশব্দ করি" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" -msgstr "শব্দহীনতা বন্ধ করি" +msgstr "নিঃশব্দতা বন্ধ করি" msgctxt "ID_VOLUME_MUTE_DISABLED" msgid "No audio" @@ -1231,7 +1231,7 @@ msgstr "+%d%%" msgctxt "IDS_PLAYLIST_ADDFOLDER" msgid "Add containing folder" -msgstr "ধারণকৃত ফোল্ডার যোগ করি" +msgstr "ধারণকারী ফোল্ডার যোগ করি" msgctxt "IDS_HW_INDICATOR" msgid "[H/W]" @@ -1251,27 +1251,27 @@ msgstr "ফিল্টারসমূহের তালিকা ক্লি msgctxt "IDS_CREDENTIALS_SERVER" msgid "Enter server credentials" -msgstr "সার্ভার এর বিস্তারিত বিবরণসমূহ প্রবেশ করুন" +msgstr "সার্ভার এর প্রামাণ্য বিবরণসমূহ প্রবেশ করুন" msgctxt "IDS_CREDENTIALS_CONNECT" msgid "Enter your credentials to connect" -msgstr "সংযুক্ত হতে আপনার বিস্তারিত বিবরণসমূহ প্রবেশ করুন" +msgstr "সংযুক্ত হতে আপনার প্রামাণ্য বিবরণসমূহ প্রবেশ করুন" msgctxt "IDS_SUB_SAVE_EXTERNAL_STYLE_FILE" msgid "Save custom style" -msgstr "নির্ধারণকৃত ধরনটি সেইভ করি" +msgstr "ব্যক্তি-নির্ধারিত ধরনটি সেইভ করি" msgctxt "IDS_CONTENT_EDUCATION_SCIENCE" msgid "Education/Science/Factual topics" -msgstr "শিক্ষা/বিজ্ঞান/তথ্যমূলক বিষয়সমূহ" +msgstr "শিক্ষা/বিজ্ঞান/বাস্তববাদী আলোচ্য বিষয়সমূহ" msgctxt "IDS_PPAGEADVANCED_HIDE_WINDOWED" msgid "Hides controls and panels also in windowed mode." -msgstr "কন্ট্রোল এবং প্যানেলসমূহ উইন্ডো'ড মুডেও লুকিয়ে যাওয়া সক্রিয়করণ।" +msgstr "উইন্ডো'ড মুডেও কন্ট্রোল এবং প্যানেলসমূহ লুকিয়ে যাওয়া সক্রিয়করণ।" msgctxt "IDS_PPAGEADVANCED_BLOCK_VSFILTER" msgid "Prevent external subtitle renderer to be loaded when internal is in use." -msgstr "আভ্যন্তরীণ সাবটাইটেল ফিল্টার ব্যবহার হতে থাকলে বাহিরস্থ সাবটাইটেল রেনডারার লোড করা বিরত করণ।" +msgstr "আভ্যন্তরীণ সাবটাইটেল ফিল্টার ব্যবহার হতে থাকলে বাহিরস্থ সাবটাইটেল রেনডারার লোড করা প্রতিরোধ করণ।" msgctxt "IDS_PPAGEADVANCED_COL_NAME" msgid "Name" @@ -1283,7 +1283,7 @@ msgstr "মান" msgctxt "IDS_PPAGEADVANCED_RECENT_FILES_NUMBER" msgid "Maximum number of files shown in the \"Recent files\" menu and for which the position is potentially saved." -msgstr "\"সাম্প্রতিক ফাইলসমূহ\" মেন্যুতে সর্বোচ্চ যতটি ফাইল প্রদর্শন করা হবে এবং যেগুলোর অবস্থানকাল সম্ভাব্যরূপে স্মৃতিতে সংরক্ষিত হবে।" +msgstr "\"সাম্প্রতিক ফাইলসমূহ\" মেন্যুতে সর্বোচ্চ যতটি ফাইল প্রদর্শন করা হবে এবং সম্ভাব্য যেগুলোর অবস্থানকাল স্মৃতিতে সংরক্ষিত হবে।" msgctxt "IDS_PPAGEADVANCED_FILE_POS_LONGER" msgid "Remember file position only for files longer than N minutes." @@ -1295,11 +1295,11 @@ msgstr "অডিও ফাইলসমূহের জন্যও ফাইল msgctxt "IDS_AFTER_PLAYBACK_DO_NOTHING" msgid "Do Nothing" -msgstr "কিছুই না করা" +msgstr "কোন কিছু করি না" msgctxt "IDS_AFTER_PLAYBACK_PLAY_NEXT" msgid "Play next file in the folder" -msgstr "ফোল্ডারে থাকা পরবর্তী ফাইলটি চালনা" +msgstr "ফোল্ডারের পরবর্তী ফাইলটি প্লে করি" msgctxt "IDS_AFTER_PLAYBACK_REWIND" msgid "Rewind current file" @@ -1327,19 +1327,19 @@ msgstr "বৈশিষ্ট্যগুণ (%):" msgctxt "IDS_PPAGEADVANCED_COVER_SIZE_LIMIT" msgid "Maximum size (NxNpx) of a cover-art loaded in the audio only mode." -msgstr "" +msgstr "শুধুমাত্র অডিও মুডে লোডকৃত কভার-আর্টের সর্বোচ্চ সাইজ (NxNপিক্সেল)" msgctxt "IDS_SUBTITLE_DELAY_STEP_TOOLTIP" msgid "The subtitle delay will be decreased/increased by this value each time the corresponding hotkeys are used (%s/%s)." -msgstr "" +msgstr "সংশ্লিষ্ট হট্‌কী (%s/%s) ব্যবহারে সাবটাইটেলের বিলম্বন, এই মান দ্বারা প্রত্যেক বার হ্রাস/বৃদ্ধি পাবে।" msgctxt "IDS_HOTKEY_NOT_DEFINED" msgid "" -msgstr "" +msgstr "<নির্ধারণ করা হয় নি>" msgctxt "IDS_NAVIGATION_WATCH" msgid "Watch" -msgstr "" +msgstr "পর্যবেক্ষণ করি" msgctxt "IDS_NAVIGATION_MOVE_UP" msgid "Move Up" @@ -1351,26 +1351,46 @@ msgstr "নিচে নামাই" msgctxt "IDS_NAVIGATION_SORT" msgid "Sort by LCN" -msgstr "" +msgstr "LCN অনুযায়ী সাজাই" msgctxt "IDS_NAVIGATION_REMOVE_ALL" msgid "Remove all" -msgstr "" +msgstr "সবগুলো অপসারণ করি" msgctxt "IDS_REMOVE_CHANNELS_QUESTION" msgid "Are you sure you want to remove all channels from the list?" -msgstr "" +msgstr "আপনি কি নিশ্চিত যে তালিকা থেকে সবগুলো চ্যানেল অপসারণ করতে চান?" msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" msgid "No information available" -msgstr "" +msgstr "কোন তথ্যাদি পাওয়া যায় নি" msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" msgid "Please wait, analysis in progress..." -msgstr "" +msgstr "অনুগ্রহপূর্বক অপেক্ষা করুন, বিশ্লেষণ প্রক্রিয়া চলমান রয়েছে..." msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" +msgstr "AR %d:%d" + +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "ফাইলে নিবন্ধন করা সক্রিয়করণ।(বন্ধ করে পুনরায় চালনা করতে হবে)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" msgstr "" msgctxt "IDS_AG_OPEN_DEVICE" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "বন্ধ করি" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "ফ্রেমের পদক্ষেপ" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "পিছনের দিকে ফ্রেমের পদক্ষেপ" msgctxt "IDS_AG_GO_TO" @@ -1475,11 +1495,11 @@ msgstr "প্রতিলিপি সেইভ করি" msgctxt "IDS_FASTSEEK_LATEST" msgid "Latest keyframe" -msgstr "সর্বশেষ কীফ্রেম" +msgstr "আগের কীফ্রেমে" msgctxt "IDS_FASTSEEK_NEAREST" msgid "Nearest keyframe" -msgstr "নিকটবর্তী কীফ্রেম" +msgstr "নিকটবর্তী কীফ্রেমে" msgctxt "IDS_HOOKS_FAILED" msgid "MPC-HC encountered a problem during initialization. DVD playback may not work correctly. This might be caused by some incompatibilities with certain security tools.\n\nDo you want to report this issue?" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "থাম্ব্‌নেইলসমূহ সফলভাবে সেইভ হয়েছে" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "ভিডিও স্ট্রিম(&V)" +msgid "&Video Track" +msgstr "ভিডিও ট্র্যাক(&V)" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1539,11 +1559,11 @@ msgstr "সেটিংসমূহ পুনর্বিন্যাস কর msgctxt "IDS_RESET_SETTINGS_WARNING" msgid "Are you sure you want to restore MPC-HC to its default settings?\nBe warned that ALL your current settings will be lost!" -msgstr "আপনি কি নিশ্চিত যে MPC-HCকে ডিফল্ট সেটিংসমূহে ফিরিয়ে আনতে চান?\nএই বিষয়ে সতর্ক করা হচ্ছে যে আপনার বর্তমানে থাকা সকল সেটিংসমূহ হারিয়ে যাবে!" +msgstr "আপনি কি নিশ্চিত যে MPC-HCকে ডিফল্ট সেটিংসমূহে পূর্বাবস্থায় ফিরিয়ে আনতে চান?\nএই বিষয়ে সতর্ক করা হচ্ছে যে আপনার বর্তমানে থাকা সকল সেটিংসমূহ হারিয়ে যাবে!" msgctxt "IDS_RESET_SETTINGS_MUTEX" msgid "Please close all instances of MPC-HC so that the default settings can be restored." -msgstr "অনুগ্রহপূর্বক অন্যান্য সকল চালনাকৃত MPC-HC বন্ধ করুন যাতে MPC-HCকে ডিফল্ট সেটিংসমূহে ফিরিয়ে আনা যায়।" +msgstr "অনুগ্রহপূর্বক অন্যান্য সকল চালনাকৃত MPC-HC বন্ধ করুন যাতে MPC-HCকে ডিফল্ট সেটিংসমূহে পূর্বাবস্থায় ফিরিয়ে আনা যায়।" msgctxt "IDS_EXPORT_SETTINGS" msgid "Export settings" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "সাবটাইটেলের অবস্থান ডানে সরাই" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "ডিসপ্লে বৃত্তান্ত" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "শুরুতে লাফিয়ে যাই" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "সাবটাইটেল::অন্যান্য" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "বর্ডারসমূহ লুকিয়ে রাখি(&B)" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "শুধুমাত্র ফ্রেম" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "ক্যাপশন আর মেন্যু প্রদর্শন(&W)" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "মেন্যু লুকিয়ে রাখি(&M)" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "অ্যাডভান্সড্‌" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "ন্যূনতম পরিবেশন" @@ -1727,7 +1779,7 @@ msgstr "সাবটাইটেল(সমূহ) ডাউনলোড হচ msgctxt "IDS_SUBDL_DLG_PARSING" msgid "Parsing list..." -msgstr "তালিকা পার্সিং করা হচ্ছে..." +msgstr "তালিকাটি সমন্বয় সাধিত হচ্ছে..." msgctxt "IDS_SUBDL_DLG_NOT_FOUND" msgid "No subtitles found." @@ -1779,7 +1831,7 @@ msgstr "অতিবাহিত আর অবশিষ্ট সময় প্ msgctxt "IDS_UPDATE_DELAY_ERROR_TITLE" msgid "Invalid delay" -msgstr "বিলম্বনটি সঠিক নয়" +msgstr "বিলম্বন সময়টি অগ্রহণযোগ্য" msgctxt "IDS_UPDATE_DELAY_ERROR_MSG" msgid "Please enter a number between 1 and 365." @@ -1831,7 +1883,7 @@ msgstr "ভলিউম কমাই" msgctxt "IDS_AG_VOLUME_MUTE" msgid "Volume Mute" -msgstr "ভলিউম শব্দহীন করি" +msgstr "ভলিউম নিঃশব্দ করি" msgctxt "IDS_MPLAYERC_63" msgid "DVD Title Menu" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "বস্‌ কী" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "প্লেয়ার মেন্যু (ছোট)" +msgid "Player Menu" +msgstr "প্লেয়ার মেন্যু" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "প্লেয়ার মেন্যু (বড়ো)" +msgid "Player Menu (full)" +msgstr "প্লেয়ার মেন্যু (সম্পূর্ণ)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "সাবটাইটেল চালু/বন্ধ করি (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "অবশিষ্ট সময়" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2051,7 +2103,7 @@ msgstr "আঁকা হয়েছে: %d, বাদ গেছে: %d" msgctxt "IDS_AG_FRAMES" msgid "Frames" -msgstr "ফ্রেমসমূহ" +msgstr "ফ্রেম" msgctxt "IDS_AG_BUFFERS" msgid "Buffers" @@ -2067,7 +2119,7 @@ msgstr "ক্যামেরা অ্যাঙ্গেল: %02lu/%02lu, %lux% msgctxt "IDS_MAINFRM_11" msgid "%s, %s %u Hz %d bits %d %s" -msgstr "" +msgstr "%s, %s %u Hz %d bits %d %s" msgctxt "IDS_ADD_TO_PLAYLIST" msgid "Add to MPC-HC Playlist" @@ -2079,7 +2131,7 @@ msgstr "MPC-HC দ্বারা প্লে করি" msgctxt "IDS_CANNOT_CHANGE_FORMAT" msgid "MPC-HC has not enough privileges to change files formats associations. Please click on the \"Run as administrator\" button." -msgstr "" +msgstr "ফাইলের ধরনসমূহের সম্পৃক্ততা পরিবর্তনের জন্য যথেষ্ট অধিকার MPC-HCএর নেই। অনুগ্রহপূর্বক \"Run as administrator\" বাটনে ক্লিক করুন।" msgctxt "IDS_APP_DESCRIPTION" msgid "MPC-HC is an extremely light-weight, open source media player for Windows. It supports all common video and audio file formats available for playback. We are 100% spyware free, there are no advertisements or toolbars." @@ -2107,15 +2159,15 @@ msgstr "DVD: কপি-প্রোটেক্ট ব্যর্থ হয়ে msgctxt "IDS_MAINFRM_18" msgid "DVD: Invalid DVD 1.x Disc" -msgstr "DVD: DVD 1.x ডিস্কটি সঠিক নয়" +msgstr "DVD: DVD 1.x ডিস্কটি অগ্রহণযোগ্য" msgctxt "IDS_MAINFRM_19" msgid "DVD: Invalid Disc Region" -msgstr "DVD: ডিস্কের অঞ্চলগত বিন্যাস সঠিক নয়" +msgstr "DVD: ডিস্কের অঞ্চলগত বিন্যাসটি অগ্রহণযোগ্য" msgctxt "IDS_MAINFRM_20" msgid "DVD: Low Parental Level" -msgstr "DVD: নিচু অভিভাবকীয় মূল্যায়ন" +msgstr "DVD: নিম্নমানের অভিভাবকীয় মূল্যায়ন" msgctxt "IDS_MAINFRM_21" msgid "DVD: Macrovision Fail" @@ -2159,7 +2211,7 @@ msgstr "ছবির প্রস্থ" msgctxt "IDS_PPSDB_URLCORRECT" msgid "The URL appears to be correct!" -msgstr "URLটি সঠিক বলেই প্রতীয়মান হচ্ছে!" +msgstr "URLটি সঠিক বলেই মনে হচ্ছে!" msgctxt "IDS_PPSDB_PROTOCOLERR" msgid "Protocol version mismatch, please upgrade your player or choose a different address!" @@ -2243,7 +2295,7 @@ msgstr "ম্যামরি শেষ, আরো কিছু ম্যাম msgctxt "IDS_THUMBNAILS_INVALID_FORMAT" msgid "Invalid image format, cannot create thumbnails out of %d bpp dibs." -msgstr "ছবির ফাইলের ধরনটি সঠিক নয়, %d bpp dibs থেকে বেশিতে থাম্ব্‌নেইলসমূহ তৈরি করা যাচ্ছে না।" +msgstr "ছবির ফাইলের ধরনটি অগ্রহণযোগ্য, %d bpp dibs থেকে বেশিতে থাম্ব্‌নেইলসমূহ তৈরি করা যাচ্ছে না।" msgctxt "IDS_THUMBNAILS_INFO_FILESIZE" msgid "File Size: %s (%s bytes)\\N" @@ -2255,7 +2307,7 @@ msgstr "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}ফাইলের সাই msgctxt "IDS_THUMBNAIL_TOO_SMALL" msgid "The thumbnails would be too small, impossible to create the file.\n\nTry lowering the number of thumbnails or increasing the total size." -msgstr "থাম্ব্‌নেইলসমূহ আকারে খুব ছোট হবে, ফাইলটি তৈরি করা যাচ্ছে না।\n\nথাম্ব্‌নেইলসমূহের সংখ্যা কমিয়ে অথবা সম্পূর্ণ সাইজ বাড়িয়ে চেষ্টা করুন।" +msgstr "থাম্ব্‌নেইলসমূহ আকারে খুব ছোট হবে, ফাইলটি তৈরি করা যাচ্ছে না।\n\nথাম্ব্‌নেইলসমূহের সংখ্যা কমিয়ে অথবা সম্পূর্ণ সাইজটি বাড়িয়ে চেষ্টা করুন।" msgctxt "IDS_CANNOT_LOAD_SUB" msgid "To load subtitles you have to change the video renderer type and reopen the file.\n- DirectShow: VMR-7/VMR-9 (renderless), EVR (CP), Sync, madVR or Haali\n- RealMedia: Special renderer for RealMedia, or open it through DirectShow\n- QuickTime: DX7 or DX9 renderer for QuickTime\n- ShockWave: n/a" @@ -2283,10 +2335,10 @@ msgstr "পরিচ্ছেদ %d" msgctxt "IDS_AG_OUT_OF_MEMORY" msgid "Out of memory" -msgstr "ম্যামরি শেষ" +msgstr "পর্যাপ্ত ম্যামরি নেই" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" msgstr "সমস্যা: IEএর জন্য Flash প্লেয়ার প্রয়োজন" msgctxt "IDS_MAINFRM_78" @@ -2299,11 +2351,11 @@ msgstr "ফিল্টার গ্রাফের অবজেক্ট তৈ msgctxt "IDS_MAINFRM_81" msgid "Invalid argument" -msgstr "আর্গুমেন্টটি সঠিক নয়" +msgstr "আর্গুমেন্টটি অগ্রহণযোগ্য" msgctxt "IDS_MAINFRM_82" msgid "Opening aborted" -msgstr "চালনা বন্ধ করা হয়েছে" +msgstr "চালনা রহিত করা হয়েছে" msgctxt "IDS_MAINFRM_83" msgid "Failed to render the file" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "ক্যাপশন অ্যান্ড মেন্যু নিয়ন্ত্রণ" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "সীকার নিয়ন্ত্রণ" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2367,7 +2419,7 @@ msgstr "কন্ট্রোল নিয়ন্ত্রণ" msgctxt "IDS_MAINFRM_84" msgid "Invalid file name" -msgstr "ফাইলের নামটি সঠিক নয়" +msgstr "ফাইলের নামটি অগ্রহণযোগ্য" msgctxt "IDS_MAINFRM_86" msgid "Cannot connect the filters" @@ -2383,7 +2435,7 @@ msgstr "ফাইলটি রেনডার করা যাচ্ছে ন msgctxt "IDS_MAINFRM_89" msgid "Invalid file format" -msgstr "ফাইলের ধরনটি সঠিক নয়" +msgstr "ফাইলের ধরনটি অগ্রহণযোগ্য" msgctxt "IDS_MAINFRM_90" msgid "File not found" @@ -2431,11 +2483,11 @@ msgstr "শব্দ" msgctxt "IDS_MAINFRM_114" msgid "%s was not found, please insert media containing this file." -msgstr "%s খুঁজে পাওয়া যায় নি, এই ফাইলটি ধারণকৃত মিডিয়া প্রবেশ করান।" +msgstr "%s খুঁজে পাওয়া যায় নি, এই ফাইলটি অন্তর্ভুক্তকৃত মিডিয়া প্রবেশ করান।" msgctxt "IDS_AG_ABORTED" msgid "Aborted" -msgstr "বন্ধ করা হয়েছে" +msgstr "রহিত করা হয়েছে" msgctxt "IDS_MAINFRM_116" msgid "&Properties..." @@ -2447,7 +2499,7 @@ msgstr " (পিন) প্রোপার্টিস..." msgctxt "IDS_AG_UNKNOWN_STREAM" msgid "Unknown Stream" -msgstr "স্ত্রিমটি অপরিচিত" +msgstr "স্ট্রিমটি অপরিচিত" msgctxt "IDS_AG_UNKNOWN" msgid "Unknown %u" @@ -2491,7 +2543,7 @@ msgstr "MPC-HC D3D ফুলস্ক্রীন" msgctxt "IDS_MAINFRM_137" msgid "Unknown format" -msgstr "ধরনটি অপরিচিত" +msgstr "অপরিচিত ধরন" msgctxt "IDS_MAINFRM_138" msgid "Sub shift: %ld ms" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "ভলিউমের উন্নতিসাধন সর্বোচ্চ" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "ব্যবহারবিধি: mpc-hc.exe \"pathname\" [নির্দেশনাসমূহ]\n\n\"pathname\"\tযে মূল ফাইল বা ডিরেক্টরি লোড করা হবে (ওয়াইল্ডকার্ড ক্যারেক্টারসমূহ\n\t\tব্যবহার করা যাবে, সাধারণ ইনপুটটি \"-\" চিহ্ন দ্বারা সূচিত করুন)\n/dub \"dubname\"\tঅতিরিক্ত অডিও ফাইল লোড করণ\n/dubdelay \"file\"\tঅতিরিক্ত অডিও ফাইল XXms সময়ের স্থানান্তর করে লোড করণ\n\t\t(যদি ফাইলটিতে \"...DELAY XXms...\" থেকে থাকে)\n/d3dfs\t\tD3D ফুলস্ক্রীন মুডে রেনডার করা শুরু করণ\n/sub \"subname\"\tঅতিরিক্ত সাবটাইটেল ফাইল লোড করণ\n/filter \"filtername\"\tডাইনামিক লিঙ্ক লাইব্রেরি থেকে DirectShow ফিল্টারসমূহ লোড\n\t\tকরণ (ওয়াইল্ডকার্ড ক্যারেক্টারসমূহ ব্যবহার করা যাবে)\n/dvd\t\tDVD মুডে চালনা করণ, \"pathname\" হবে dvd ফোল্ডারটি (ঐচ্ছিক)\n/dvdpos T#C\tটাইটেল T এর পরিচ্ছেদ C থেকে প্লেব্যাক শুরু করণ\n/dvdpos T#hh:mm\tটাইটেল T এর অবস্থানকাল hh:mm:ss থেকে প্লেব্যাক শুরু করণ\n/cd\t\tcd বা (s)vcd এর সকল ট্র্যাকসমূহ লোড করণ, \"pathname\" হবে ড্রাইভের\n\t\tঠিকানাটি (ঐচ্ছিক)\n/device\t\tডিফল্ট ভিডিও ডিভাইসটি চালনা করণ\n/open\t\tফাইলটি চালনা করণ, স্বয়ংক্রিয়ভাবে প্লেব্যাক শুরু করবে না\n/play\t\tপ্লেয়ারটি চালনার সাথে সাথেই ফাইলটি প্লে করা শুরু করণ\n/close\t\tপ্লেব্যাক শেষে প্লেয়ারটি বন্ধ করণ (শুধুমাত্র কাজ করবে যখন /play\n\t\tনির্দেশনাটির সাথে ব্যবহার করা হবে)\n/shutdown\tপ্লেব্যাক শেষে অপারেটিং সিস্টেমটি শাটডাউন করণ\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tফুল-স্ক্রীন মুডে চালনা করণ\n/minimized\tমিনিমাইজড্‌ মুডে চালনা করণ\n/new\t\tনতুন আরেকটি প্লেয়ার ব্যবহার\n/add\t\t\"pathname\" প্লেলিস্টে যোগ করণ, /open আর /play এর সাথে একত্রে\n\t\tব্যবহার করা যাবে\n/regvid\t\tভিডিও ফাইলসমূহের সাথে সংশ্লিষ্টতা স্থাপন\n/regaud\t\tঅডিও ফাইলসমূহের সাথে সংশ্লিষ্টতা স্থাপন\n/regpl\t\tপ্লেলিস্ট ফাইলসমূহের সাথে সংশ্লিষ্টতা স্থাপন\n/regall\t\tসমর্থন করে এমন সকল ফাইলসমূহের সাথে সংশ্লিষ্টতা স্থাপন\n/unregall\t\tসকল ফাইলসমূহের সাথে সংশ্লিষ্টতা অপসারণ\n/start ms\t\t\"ms\" (= মিলিসেকেন্ড) থেকে প্লে শুরু করণ\n/startpos hh:mm:ss\thh:mm:ss অবস্থানকাল থেকে প্লে শুরু করণ\n/fixedsize w,h\tউইন্ডোর সাইজ নির্দিষ্টকরণSet a fixed window size\n/monitor N\tমনিটর Nএ প্লেয়ার চালনা করণ, যেখানে Nএর মান ১ থেকে শুরু হয়\n/audiorenderer N\tঅডিও রেনডারার N ব্যবহার শুরু করণ, যেখানে Nএর মান ১\n\t\tথেকে শুরু হয় (বিস্তারিত দেখুন \"Output\" সেটিংসমূহে)\n/shaderpreset \"Pr\"\t\"Pr\" শেইডার প্রিসেট ব্যবহার শুরু করণ\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tডিফল্ট সেটিংসমূহে পুনর্বিন্যাস করণ\n/help /h /?\tকমান্ড লাইনের নির্দেশনাসমূহ সম্পর্কে সহায়িকা প্রদর্শন\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "ব্যবহারবিধি: mpc-hc.exe \"pathname\" [নির্দেশনাসমূহ]\n\n\"pathname\"\\tযে মূল ফাইল বা ডিরেক্টরি লোড করা হবে (ওয়াইল্ডকার্ড ক্যারেক্টারসমূহ\n\\t\\tব্যবহার করা যাবে, সাধারণ ইনপুটটি \"-\" চিহ্ন দ্বারা সূচিত করুন)\n/dub \"dubname\"\\tঅতিরিক্ত অডিও ফাইল লোড করণ\n/dubdelay \"file\"\\tঅতিরিক্ত অডিও ফাইল XXms সময়ের স্থানান্তর করে লোড করণ\n\\t\\t(যদি ফাইলটিতে \"...DELAY XXms...\" থেকে থাকে)\n/d3dfs\\t\\tD3D ফুলস্ক্রীন মুডে রেনডার করা শুরু করণ\n/sub \"subname\"\\tঅতিরিক্ত সাবটাইটেল ফাইল লোড করণ\n/filter \"filtername\"\\tডাইনামিক লিঙ্ক লাইব্রেরি থেকে DirectShow ফিল্টারসমূহ লোড\n\\t\\tকরণ (ওয়াইল্ডকার্ড ক্যারেক্টারসমূহ ব্যবহার করা যাবে)\n/dvd\\t\\tDVD মুডে চালনা করণ, \"pathname\" হবে dvd ফোল্ডারটি (ঐচ্ছিক)\n/dvdpos T#C\\tটাইটেল T এর পরিচ্ছেদ C থেকে প্লেব্যাক শুরু করণ\n/dvdpos T#hh:mm\\tটাইটেল T এর অবস্থানকাল hh:mm:ss থেকে প্লেব্যাক শুরু করণ\n/cd\\t\\tcd বা (s)vcd এর সকল ট্র্যাকসমূহ লোড করণ, \"pathname\" হবে ড্রাইভের\n\\t\\tঠিকানাটি (ঐচ্ছিক)\n/device\\t\\tডিফল্ট ভিডিও ডিভাইসটি চালনা করণ\n/open\\t\\tফাইলটি চালনা করণ, স্বয়ংক্রিয়ভাবে প্লেব্যাক শুরু করবে না\n/play\\t\\tপ্লেয়ারটি চালনার সাথে সাথেই ফাইলটি প্লে করা শুরু করণ\n/close\\t\\tপ্লেব্যাক শেষে প্লেয়ারটি বন্ধ করণ (শুধুমাত্র কাজ করবে যখন /play\n\\t\\tনির্দেশনাটির সাথে ব্যবহার করা হবে)\n/shutdown\\tপ্লেব্যাক শেষে অপারেটিং সিস্টেমটি শাটডাউন করণ\n/standby\\t\\tপ্লেব্যাক শেষে অপারেটিং সিস্টেমটি স্লিপ করণ\n/hibernate\\tপ্লেব্যাক শেষে অপারেটিং সিস্টেমটি হাইবারনেট করণ\n/logoff\\t\\tপ্লেব্যাক শেষে অপারেটিং সিস্টেমটি লগ অফ করণ\n/lock\\t\\tপ্লেব্যাক শেষে কম্পিউটারটি লক করণ\n/monitoroff\\tপ্লেব্যাক শেষে মনিটর বন্ধ করণ\n/playnext\\t\\tপ্লেব্যাক শেষে ফোল্ডারের পরবর্তী ফাইলটি চালনা করণ\n/fullscreen\\tফুল-স্ক্রীন মুডে চালনা করণ\n/minimized\\tমিনিমাইজড্‌ মুডে চালনা করণ\n/new\\t\\tনতুন আরেকটি প্লেয়ার ব্যবহার\n/add\\t\\t\"pathname\" প্লেলিস্টে যোগ করণ, /open আর /play এর সাথে একত্রে\n\\t\\tব্যবহার করা যাবে\n/randomize\\tপ্লেলিস্টটি এলোমেলোভাবে সাজান\n/regvid\\t\\tভিডিও ফাইলসমূহের সাথে সম্পৃক্ততা স্থাপন\n/regaud\\t\\tঅডিও ফাইলসমূহের সাথে সম্পৃক্ততা স্থাপন\n/regpl\\t\\tপ্লেলিস্ট ফাইলসমূহের সাথে সম্পৃক্ততা স্থাপন\n/regall\\t\\tসমর্থন করে এমন সকল ফাইলসমূহের সাথে সম্পৃক্ততা স্থাপন\n/unregall\\t\\tসকল ফাইলসমূহের সাথে সম্পৃক্ততা অপসারণ\n/start ms\\t\\t\"ms\" (= মিলিসেকেন্ড) থেকে প্লে শুরু করণ\n/startpos hh:mm:ss\\thh:mm:ss অবস্থানকাল থেকে প্লে শুরু করণ\n/fixedsize w,h\\tউইন্ডোর সাইজ নির্দিষ্টকরণSet a fixed window size\n/monitor N\\tমনিটর Nএ প্লেয়ার চালনা করণ, যেখানে Nএর মান ১ থেকে শুরু হয়\n/audiorenderer N\\tঅডিও রেনডারার N ব্যবহার শুরু করণ, যেখানে Nএর মান ১\n\\t\\tথেকে শুরু হয় (বিস্তারিত দেখুন \"আউটপুট\" সেটিংসমূহে)\n/shaderpreset \"Pr\"\\t\"Pr\" শেইডার প্রিসেট ব্যবহার শুরু করণ\n/pns \"name\"\\tব্যবহার করার জন্যে প্যানঅ্যান্ডস্ক্যান প্রিসেটের নাম নির্দেশিত করণ\n/iconsassoc\\tফাইলের ধরনের আইকন সমূহ পুনরায় সম্পৃক্ত করণ\n/nofocus\\t\\tMPC-HCকে ব্যাকগ্রাউন্ডে চালনা করণ\n/webport N\\tনির্দেশিত পোর্টে ওয়েব ইন্টারফেস চালনা করণ\n/debug\\t\\tOSDতে ডিবাগ তথ্যাদি প্রদর্শন\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\\tMPC-HCকে স্লেইভ হিসেবে ব্যবহার\n/reset\\t\\tডিফল্ট সেটিংসমূহে পূর্বাবস্থায় পরিবর্তন\n/help /h /?\\tকমান্ড লাইনের নির্দেশনাসমূহ সম্পর্কে সহায়িকা প্রদর্শন\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "উপরে পিছনে ডানে" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "ডিসপ্লে বৃত্তান্ত পুনর্বিন্যাস করি" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "সাবটাইটেল::Misc" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "বর্ডারসমূহ লুকিয়ে রাখি(&B)" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "শুধুমাত্র ফ্রেম" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "ক্যাপশন আর মেন্যু প্রদর্শন(&W)" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "মেন্যু লুকিয়ে রাখি(&M)" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "অ্যাডভান্সড্‌" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "সীকবারের উপরে" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "সীকবারের নিচে" msgctxt "IDS_VIDEO_STREAM" @@ -2739,7 +2763,7 @@ msgstr "ভিডিও: %s" msgctxt "IDS_APPLY" msgid "Apply" -msgstr "কার্যকর করি" +msgstr "প্রয়োগ করি" msgctxt "IDS_CLEAR" msgid "Clear" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Other Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Playlist" @@ -3015,11 +3043,11 @@ msgstr "অ্যাসপেক্ট রেশিও" msgctxt "IDS_ARS_WASAPI_MODE" msgid "Use WASAPI (restart playback)" -msgstr "WASAPI ব্যবহার (পুনরায় প্লেব্যাক করুন)" +msgstr "WASAPI ব্যবহার (বন্ধ করে পুনরায় প্লেব্যাক করুন)" msgctxt "IDS_ARS_MUTE_FAST_FORWARD" msgid "Mute on fast forward" -msgstr "শব্দহীন ভাবে দ্রুত সামনে যাওয়া" +msgstr "নিঃশব্দে দ্রুত সামনে অগ্রসর" msgctxt "IDS_ARS_SOUND_DEVICE" msgid "Sound Device:" @@ -3035,11 +3063,11 @@ msgstr "VSync: বন্ধ করা হল" msgctxt "IDS_OSD_RS_ACCURATE_VSYNC_ON" msgid "Accurate VSync: On" -msgstr "যথোপযোগী VSync: চালু করা হল" +msgstr "নিখুঁত VSync: চালু করা হল" msgctxt "IDS_OSD_RS_ACCURATE_VSYNC_OFF" msgid "Accurate VSync: Off" -msgstr "যথোপযোগী VSync: বন্ধ করা হল" +msgstr "নিখুঁত VSync: বন্ধ করা হল" msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_ON" msgid "Synchronize Video to Display: On" @@ -3279,15 +3307,15 @@ msgstr "জূম: স্বয়ংক্রিয়" msgctxt "IDS_CUSTOM_CHANNEL_MAPPING" msgid "Toggle custom channel mapping" -msgstr "নির্ধারণযোগ্য চ্যানেল বিন্যাস নিয়ন্ত্রণ" +msgstr "ব্যক্তি-নির্ধারিত চ্যানেল বিন্যাস নিয়ন্ত্রণ" msgctxt "IDS_OSD_CUSTOM_CH_MAPPING_ON" msgid "Custom channel mapping: On" -msgstr "নির্ধারণযোগ্য চ্যানেল বিন্যাস: চালু করা হল" +msgstr "ব্যক্তি-নির্ধারিত চ্যানেল বিন্যাস: চালু করা হল" msgctxt "IDS_OSD_CUSTOM_CH_MAPPING_OFF" msgid "Custom channel mapping: Off" -msgstr "নির্ধারণযোগ্য চ্যানেল বিন্যাস: বন্ধ করা হল" +msgstr "ব্যক্তি-নির্ধারিত চ্যানেল বিন্যাস: বন্ধ করা হল" msgctxt "IDS_NORMALIZE" msgid "Toggle normalization" @@ -3315,27 +3343,27 @@ msgstr "ভলিউম পুনর্বৃদ্ধি: বন্ধ কর msgctxt "IDS_SIZE_UNIT_BYTES" msgid "bytes" -msgstr "" +msgstr "বাইট" msgctxt "IDS_SIZE_UNIT_K" msgid "KB" -msgstr "KB" +msgstr "কিলো বাইট" msgctxt "IDS_SIZE_UNIT_M" msgid "MB" -msgstr "MB" +msgstr "মেগাবাইট" msgctxt "IDS_SIZE_UNIT_G" msgid "GB" -msgstr "GB" +msgstr "গিগাবাইট" msgctxt "IDS_SPEED_UNIT_K" msgid "KB/s" -msgstr "KB/s" +msgstr "কিলোবাইট/সেকন্ড" msgctxt "IDS_SPEED_UNIT_M" msgid "MB/s" -msgstr "MB/s" +msgstr "মেগাবাইট/সেকন্ড" msgctxt "IDS_BDA_ERROR_CREATE_TUNER" msgid "Could not create the tuner." @@ -3363,18 +3391,18 @@ msgstr "ডিমাল্টিপ্লেক্সারটি তৈরি msgctxt "IDS_GOTO_ERROR_PARSING_TIME" msgid "Error parsing the entered time!" -msgstr "প্রবেশকৃত সময়টি পার্সিং করণে সমস্যা হয়েছে!" +msgstr "প্রবেশকৃত সময়টি সমন্বয় সাধনে সমস্যা হয়েছে!" msgctxt "IDS_GOTO_ERROR_PARSING_TEXT" msgid "Error parsing the entered text!" -msgstr "প্রবেশকৃত টেক্সট্‌টি পার্সিং করণে সমস্যা হয়েছে!" +msgstr "প্রবেশকৃত টেক্সট্‌টি সমন্বয় সাধনে সমস্যা হয়েছে!" msgctxt "IDS_GOTO_ERROR_PARSING_FPS" msgid "Error parsing the entered frame rate!" -msgstr "প্রবেশকৃত ফ্রেম রেটটি পার্সিং করণে সমস্যা হয়েছে!" +msgstr "প্রবেশকৃত ফ্রেম রেটটি সমন্বয় সাধনে সমস্যা হয়েছে!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "ফ্রেমের পদক্ষেপ নেয়া যাচ্ছে না, ভিন্ন ভিডিও রেনডারার চেষ্টা করে দেখুন।" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3463,9 +3491,9 @@ msgstr "এই ধরনটি ইতিমধ্যে তালিকাতে msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." -msgstr "নতুন সেটিংসমূহ পরীক্ষা করার আগে সেগুলো কার্যকর করতে হবে।" +msgstr "নতুন সেটিংসমূহ পরীক্ষা করার আগে সেগুলো প্রয়োগ করতে হবে।" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "প্লেব্যাকের পরে: প্রোগ্রাম বন্ধ করি" @@ -3495,11 +3523,11 @@ msgstr "প্লেব্যাকের পরে: মনিটর বন্ msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" msgid "After Playback: Play next file in the folder" -msgstr "" +msgstr "প্লেব্যাকের পরে: ফোল্ডারের পরবর্তী ফাইলটি প্লে করি" msgctxt "IDS_AFTERPLAYBACK_DONOTHING" msgid "After Playback: Do nothing" -msgstr "" +msgstr "প্লেব্যাকের পরে: কোন কিছু করি না" msgctxt "IDS_OSD_BRIGHTNESS" msgid "Brightness: %s" @@ -3519,7 +3547,7 @@ msgstr "রঙের তীব্রতা: %s" msgctxt "IDS_OSD_RESET_COLOR" msgid "Color settings restored" -msgstr "রঙের সেটিংসমূহ পুনর্বিন্যাস করা হয়েছে" +msgstr "রঙের সেটিংসমূহ পূর্বাবস্থায় ফিরিয়ে আনা হয়েছে" msgctxt "IDS_OSD_NO_COLORCONTROL" msgid "Color control is not supported" @@ -3531,11 +3559,11 @@ msgstr "উজ্জ্বলতা বৃদ্ধি করি" msgctxt "IDS_LANG_PREF_EXAMPLE" msgid "Enter your preferred languages here.\nFor example, type: \"eng jap swe\"" -msgstr "এখানে আপনার পছন্দনীয় ভাষাসমূহ প্রবেশ করুন।\nউদাহরণস্বরূপ, প্রবেশ করতে পারেন: \"eng jap swe\"" +msgstr "আপনার পছন্দনীয় ভাষাসমূহ এখানে প্রবেশ করুন।\nউদাহরণস্বরূপ, প্রবেশ করতে পারেন: \"ben eng jap swe\"" msgctxt "IDS_OVERRIDE_EXT_SPLITTER_CHOICE" msgid "External splitters can have their own language preference options thus MPC-HC default behavior is not to change their initial choice.\nEnable this option if you want MPC-HC to control external splitters." -msgstr "বাহিরস্থ স্প্লিটারসমূহের নিজস্ব পছন্দনীয় ভাষার অপশন থাকতে পারে, সেটাহলে MPC-HCএর ডিফল্ট আচরণ সেগুলোর প্রাথমিক পছন্দ পরিবর্তন করবে না।\nMPC-HC দ্বারা বাহিরস্থ স্প্লিটারসমূহ নিয়ন্ত্রণ করতে চাইলে এই অপশনটি সক্রিয় করুন।" +msgstr "বাহিরস্থ স্প্লিটারসমূহের নিজস্ব পছন্দনীয় ভাষার অপশন থাকতে পারে, সেটার জন্য MPC-HCএর ডিফল্ট আচরণ সেসবের প্রাথমিক পছন্দ পরিবর্তন করে না।\nMPC-HC দ্বারা বাহিরস্থ স্প্লিটারসমূহ নিয়ন্ত্রণ করতে চাইলে এই অপশনটি সক্রিয় করুন।" msgctxt "IDS_NAVIGATE_BD_PLAYLISTS" msgid "&Blu-Ray playlists" @@ -3559,23 +3587,23 @@ msgstr "চ্যানেলসমূহ(&C)" msgctxt "IDC_FASTSEEK_CHECK" msgid "If \"latest keyframe\" is selected, seek to the first keyframe before the actual seek point.\nIf \"nearest keyframe\" is selected, seek to the first keyframe before or after the seek point depending on which is the closest." -msgstr "" +msgstr "যদি \"আগের কীফ্রেমে\" নির্ধারণ করা হয়ে থাকে, নির্দিষ্ট সীককৃত অবস্থানের আগের প্রথম কীফ্রেমে সীক করবে।\nযদি \"নিকটবর্তী কীফ্রেমে\" নির্ধারণ করা হয়ে থাকে, নির্দিষ্ট সীককৃত অবস্থানের আগের বা পরের প্রথম কীফ্রেমে সীক করবে, নির্ভর করবে কোনটা অপেক্ষাকৃত কাছে।" msgctxt "IDC_ASSOCIATE_ALL_FORMATS" msgid "Associate with all formats" -msgstr "" +msgstr "সকল ধরনের ফাইলের সাথে সম্পৃক্ততা" msgctxt "IDC_ASSOCIATE_VIDEO_FORMATS" msgid "Associate with video formats only" -msgstr "" +msgstr "শুধুমাত্র ভিডিও ফাইলসমূহের সাথে সম্পৃক্ততা" msgctxt "IDC_ASSOCIATE_AUDIO_FORMATS" msgid "Associate with audio formats only" -msgstr "" +msgstr "শুধুমাত্র অডিও ফাইলসমূহের সাথে সম্পৃক্ততা" msgctxt "IDC_CLEAR_ALL_ASSOCIATIONS" msgid "Clear all associations" -msgstr "" +msgstr "সকল সম্পৃক্ততা অপসারণ করি" msgctxt "IDS_FILTER_SETTINGS_CAPTION" msgid "Settings" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ca.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ca.dialogs.po index 76535df0551..c0067cb5559 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ca.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ca.dialogs.po @@ -1,17 +1,18 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Adolfo Jayme Barrientos, 2015 +# Adolfo Jayme Barrientos, 2015 # Adolfo Jayme Barrientos, 2014 # papu , 2014-2015 # papu , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2015-01-23 09:11+0000\n" -"Last-Translator: Adolfo Jayme Barrientos\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-31 14:58+0000\n" +"Last-Translator: papu \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/mpc-hc/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -77,7 +78,7 @@ msgstr "Enregistra" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK2" msgid "Enable built-in audio switcher filter (requires restart)" -msgstr "Activar interruptor del filtre d'àudio intern (requereix inicialitzar)" +msgstr "Activa l'interruptor del filtre d'àudio intern (cal que inicialitzeu)" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK5" msgid "Normalize" @@ -101,7 +102,7 @@ msgstr "Augment:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK3" msgid "Down-sample to 44100 Hz" -msgstr "Resamplejar a 44100 Hz" +msgstr "Redueix el mostreig a 44100 Hz" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK4" msgid "Audio time shift (ms):" @@ -109,19 +110,19 @@ msgstr "Desplaçament de l'àudio (ms):" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK1" msgid "Enable custom channel mapping" -msgstr "Activar assignació de canal personalitzat" +msgstr "Activa l' assignació de canal personalitzat" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Configuració dels altaveus" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" -msgstr "Canals d'entrada:" +msgstr "canals d’entrada:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Premeu Maj en fer clic a les opcions per aplicar-les al moment" +msgid "Hold shift for immediate changes when clicking something" +msgstr "Manteniu la techa shift en fer clic a les opcions per aplicar-les al moment" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -161,11 +162,11 @@ msgstr "Escriu el camí del fitxer multimèdia (a Internet o al ordinador) y el msgctxt "IDD_OPEN_DLG_IDC_STATIC" msgid "Open:" -msgstr "Obrir:" +msgstr "Obre:" msgctxt "IDD_OPEN_DLG_IDC_BUTTON1" msgid "Browse..." -msgstr "Explorar..." +msgstr "Explora..." msgctxt "IDD_OPEN_DLG_IDC_STATIC1" msgid "Dub:" @@ -173,7 +174,7 @@ msgstr "Doblatge:" msgctxt "IDD_OPEN_DLG_IDC_BUTTON2" msgid "Browse..." -msgstr "Explorar..." +msgstr "Explora..." msgctxt "IDD_OPEN_DLG_IDOK" msgid "OK" @@ -185,7 +186,7 @@ msgstr "Cancel·la" msgctxt "IDD_OPEN_DLG_IDC_CHECK1" msgid "Add to playlist without opening" -msgstr "Afegir a la Llista de reproducció sense obrir" +msgstr "Afegeix a la Llista de reproducció sense obrir" msgctxt "IDD_ABOUTBOX_CAPTION" msgid "About" @@ -205,7 +206,7 @@ msgstr "Traducció al català per l’Enric, l’Adolf i altres" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "Build information" -msgstr "Informació de Compilació" +msgstr "Informació de compilació" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "Version:" @@ -233,7 +234,7 @@ msgstr "Nom:" msgctxt "IDD_ABOUTBOX_IDC_BUTTON1" msgid "Copy to clipboard" -msgstr "Copiar al porta-retalls" +msgstr "Copia al porta-retalls" msgctxt "IDD_ABOUTBOX_IDOK" msgid "OK" @@ -245,11 +246,11 @@ msgstr "Opcions d’obertura" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO1" msgid "Use the same player for each media file" -msgstr "Usar el mateix reproductor per a cada arxiu de mitjans que es reprodueixi" +msgstr "Usa el mateix reproductor per a cada fitxer de mitjans que es reprodueixi" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO2" msgid "Open a new player for each media file played" -msgstr "Obrir un nou reproductor per cada arxiu de mitjans que es reprodueixi" +msgstr "Obre un nou reproductor per cada fitxer de mitjans que es reprodueixi" msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" msgid "Language" @@ -261,15 +262,15 @@ msgstr "Barra del títol" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO3" msgid "Display full path" -msgstr "Mostrar el camí complet" +msgstr "Visualitza el camí complet" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO4" msgid "File name only" -msgstr "Només el nom de l'arxiu" +msgstr "Només el nom del fitxer" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO5" msgid "Don't prefix anything" -msgstr "No mostrar res" +msgstr "No mostris res" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK13" msgid "Replace file name with title" @@ -285,23 +286,23 @@ msgstr "Icona a la safata del sistema" msgctxt "IDD_PPAGEPLAYER_IDC_SHOW_OSD" msgid "Show OSD (requires restart)" -msgstr "Mostrar OSD (requereix inicialitzar)" +msgstr "Mostra OSD (cal que inicialitzeu)" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK4" msgid "Limit window proportions on resize" -msgstr "Limitar proporcions finestra al canviar tamany" +msgstr "Limita les proporcions de la finestra al canviar tamany" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK12" msgid "Snap to desktop edges" -msgstr "Ajustar a les vores de l'escriptori" +msgstr "Ajusta a les vores de l'escriptori" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK8" msgid "Store settings in .ini file" -msgstr "Desar la configuració a un arxiu .ini" +msgstr "Desa els paràmetres a un fitxer .ini" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK10" msgid "Disable \"Open Disc\" menu" -msgstr "Desactivar el menú \"Obrir Disc\"" +msgstr "Inhabilita el menú «Obre el disc»" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK9" msgid "Process priority above normal" @@ -309,7 +310,7 @@ msgstr "Més prioritat pel procés" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK14" msgid "Enable cover-art support" -msgstr "Activar suport de l'art de les portades" +msgstr "Activa el suport de l'art de les portades" msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" msgid "History" @@ -317,43 +318,43 @@ msgstr "Historial" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK1" msgid "Keep history of recently opened files" -msgstr "Mantenir l'historial dels arxius oberts" +msgstr "Manté l'historial dels fitxers oberts" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK2" msgid "Remember last playlist" -msgstr "Recordar l'última llista de reproducció" +msgstr "Recorda l'última llista de reproducció" msgctxt "IDD_PPAGEPLAYER_IDC_FILE_POS" msgid "Remember File position" -msgstr "Recordar la posició de l'arxiu" +msgstr "Recorda la posició del fitxer" msgctxt "IDD_PPAGEPLAYER_IDC_DVD_POS" msgid "Remember DVD position" -msgstr "Recordar la posició del DVD" +msgstr "Recorda la posició del DVD" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK6" msgid "Remember last window position" -msgstr "Recordar posició de la finestra" +msgstr "Recorda la posició de la finestra" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK7" msgid "Remember last window size" -msgstr "Recordar tamany de la finestra" +msgstr "Recorda el tamany de la finestra" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK11" msgid "Remember last Pan-n-Scan Zoom" -msgstr "Recordar l'últim Zoom de Pan-n-Scan" +msgstr "Recorda l'últim Zoom de Pan-n-Scan" msgctxt "IDD_PPAGEDVD_IDC_STATIC" msgid "\"Open DVD/BD\" behavior" -msgstr "Comportament de \"Llençar un DVD/BD\"" +msgstr "Comportament de \"Llença un DVD/BD\"" msgctxt "IDD_PPAGEDVD_IDC_RADIO1" msgid "Prompt for location" -msgstr "Preguntar per la ubicació" +msgstr "Pregunta per la ubicació" msgctxt "IDD_PPAGEDVD_IDC_RADIO2" msgid "Always open the default location:" -msgstr "Sembre obrir la ubicació per defecte:" +msgstr "Sembre obre la ubicació per defecte:" msgctxt "IDD_PPAGEDVD_IDC_STATIC" msgid "Preferred language for DVD Navigator and the external OGM Splitter" @@ -413,7 +414,7 @@ msgstr "Reproducció" msgctxt "IDD_PPAGEPLAYBACK_IDC_RADIO1" msgid "Play" -msgstr "Reproduir" +msgstr "Reprodueix" msgctxt "IDD_PPAGEPLAYBACK_IDC_RADIO2" msgid "Repeat forever" @@ -421,7 +422,7 @@ msgstr "Repetir per sempre" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC1" msgid "time(s)" -msgstr "cop(vegades)" +msgstr "cops" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "After Playback" @@ -457,11 +458,11 @@ msgstr "Àudio:" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK4" msgid "Allow overriding external splitter choice" -msgstr "Anul·lar opcions de maquinari forà (splitter)" +msgstr "Anul·la les opcions de maquinari forà o splitter" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Open settings" -msgstr "Ajustos d'inici" +msgstr "Paràmetres d’obertura" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK7" msgid "Use worker thread to construct the filter graph" @@ -469,7 +470,7 @@ msgstr "Ajuda en la construcció del Filter Graph" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK6" msgid "Report pins which fail to render" -msgstr "Reportar conectors que no volen funcionar" +msgstr "Reporta els conectors que no volen funcionar" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK2" msgid "Auto-load audio files" @@ -477,7 +478,7 @@ msgstr "Carga automàtica d'àudio" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK3" msgid "Use the built-in subtitle renderer" -msgstr "Usar el processador de subtítols incorporat" +msgstr "Usa el processador de subtítols incorporat" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Control" @@ -525,11 +526,11 @@ msgstr "ms" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Texture settings (open the video again to see the changes)" -msgstr "Opcions de textura (es necessari reobrir l'arxiu perque tingui efecta)" +msgstr "Opcions de textura (es necessari reobrir el fitxer perque tingui efecte)" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Sub pictures to buffer:" -msgstr "Nombre de pre càrrega de subtítols:" +msgstr "Nombre de subtítols a la memòria intermèdia:" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Maximum texture resolution:" @@ -541,19 +542,19 @@ msgstr "Mai permetre animacions als subtítols" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC5" msgid "Render at" -msgstr "Renderitzar a" +msgstr "" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC6" msgid "% of the animation" -msgstr "% de la animació" +msgstr "" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC7" msgid "Animate at" -msgstr "Animacions a" +msgstr "Animació al" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC8" msgid "% of the video frame rate" -msgstr "% del fotograma de vídeo" +msgstr "% de les imatges per segon del vídeo" msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_ALLOW_DROPPING_SUBPIC" msgid "Allow dropping some subpictures if the queue is running late" @@ -565,19 +566,19 @@ msgstr "Format del rendetirzador" msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_SUB_AR_COMPENSATION" msgid "Apply aspect ratio compensation for anamorphic videos" -msgstr "Aplicar la compensació de la relació d'aspecte per als vídeos anamòrfics" +msgstr "Aplica la compensació de la relació d'aspecte per als vídeos anamòrfics" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Warning" msgstr "Advertència" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "Si actives l'antialiasing a pantalla completa en les opcions de la tarja gràfica, els subtítols no es veuran millor i exigirant força cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Si actives l'antialiasing a pantalla completa en les opcions de la tarja gràfica, els subtítols no es veuran millor i exigirant força CPU." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" -msgstr "Extensions d'arxiu" +msgstr "Extensions de fitxer" msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON2" msgid "Default" @@ -597,7 +598,7 @@ msgstr "Utilitzeu les icones del format específic" msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON1" msgid "Run as &administrator" -msgstr "Executar com a &administrador" +msgstr "Executa com a &administrador" msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON7" msgid "Set as &default program" @@ -677,19 +678,19 @@ msgstr "Mostra el títol \"En reproducció\" en els missatges d'estat d'ànim de msgctxt "IDD_PPAGETWEAKS_IDC_CHECK6" msgid "Prevent minimizing the player when in fullscreen on a non default monitor" -msgstr "Prevenir MINIMITZAR des de pantalla completa al monitor secundari" +msgstr "Evita de MINIMITZAR quan s'està en pantalla completa al monitor secundari" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK_WIN7" msgid "Use Windows 7 Taskbar features" -msgstr "Usar característiques de la barra de tasques del Win7" +msgstr "Usa les característiques de la barra de tasques del Win7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "Obrir el fitxer de la carpeta següent/anterior amb \"Skip back/forward\" quan només hi ha un element de llista de reproducció" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Obre el fitxer de la carpeta següent/anterior amb \"Skip back/forward\" quan només hi ha un element de llista de reproducció" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Usar la descripció emergent de temps:" +msgid "Show time tooltip:" +msgstr "Usa la descripció emergent de temps:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -697,19 +698,19 @@ msgstr "Estil del OSD:" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK_LCD" msgid "Enable Logitech LCD support (experimental)" -msgstr "Activar suport LCD per teclat Logitech (experimental)" +msgstr "Activa el suport LCD per teclat Logitech (experimental)" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK3" msgid "Auto-hide the mouse pointer during playback in windowed mode" -msgstr "Amagar automàticament el punter del ratolí durant la reproducció en mode de finestra" +msgstr "Amaga automàticament el punter del ratolí durant la reproducció en mode de finestra" msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON1" msgid "Add Filter..." -msgstr "Afegir Filtre..." +msgstr "Afegeix un filtre…" msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON2" msgid "Remove" -msgstr "Eliminar" +msgstr "Elimina" msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_RADIO1" msgid "Prefer" @@ -717,7 +718,7 @@ msgstr "Preferir" msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_RADIO2" msgid "Block" -msgstr "Bloquejar" +msgstr "Bloqueja" msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_RADIO3" msgid "Set merit:" @@ -737,7 +738,7 @@ msgstr "Afegeix un Tipus..." msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON6" msgid "Add Sub Type..." -msgstr "Afegir Subtipus..." +msgstr "Afegeix el Subtipus..." msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON7" msgid "Delete" @@ -793,7 +794,7 @@ msgstr "Descripció:" msgctxt "IDD_FAVADD_CAPTION" msgid "Add Favorite" -msgstr "Afegir a Favorits" +msgstr "Afegeix una Adreça d'Interès" msgctxt "IDD_FAVADD_IDC_STATIC" msgid "Choose a name for your shortcut:" @@ -801,7 +802,7 @@ msgstr "Escull un nom per la drecera de teclat:" msgctxt "IDD_FAVADD_IDC_CHECK1" msgid "Remember position" -msgstr "Recordar posició" +msgstr "Recorda la posició" msgctxt "IDD_FAVADD_IDCANCEL" msgid "Cancel" @@ -817,7 +818,7 @@ msgstr "Unitat relativa" msgctxt "IDD_FAVORGANIZE_CAPTION" msgid "Organize Favorites" -msgstr "Organitzar Favorits" +msgstr "Organitzeu les Adreces d'Interès" msgctxt "IDD_FAVORGANIZE_IDC_BUTTON1" msgid "Rename" @@ -881,7 +882,7 @@ msgstr "Zoom: 0.2 -> 3.0" msgctxt "IDD_PPAGEACCELTBL_IDC_CHECK2" msgid "Global Media Keys" -msgstr "Tecles multimèdia globals" +msgstr "Tecles Multimèdia globals" msgctxt "IDD_PPAGEACCELTBL_IDC_BUTTON1" msgid "Select All" @@ -889,7 +890,7 @@ msgstr "Selecciona-ho tot" msgctxt "IDD_PPAGEACCELTBL_IDC_BUTTON2" msgid "Reset Selected" -msgstr "Inicialitzar Selecció" +msgstr "Inicialitza la Selecció" msgctxt "IDD_MEDIATYPES_DLG_CAPTION" msgid "Warning" @@ -965,7 +966,7 @@ msgstr "Trieu un filtre" msgctxt "IDD_ADDREGFILTER_IDC_BUTTON1" msgid "Browse..." -msgstr "Explorar..." +msgstr "Explora..." msgctxt "IDD_ADDREGFILTER_IDOK" msgid "OK" @@ -1045,7 +1046,7 @@ msgstr "Posició subtítols relativa a la imatge" msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" msgid "Colors && Transparency" -msgstr "Colors i Transparència" +msgstr "Colors i transparència" msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" msgid "0%" @@ -1069,7 +1070,7 @@ msgstr "Contorn" msgctxt "IDD_PPAGESUBSTYLE_IDC_CHECK1" msgid "Link alpha channels" -msgstr "Vincular canals alfa" +msgstr "Vincula els canals alfa" msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_STATIC" msgid "If you would like to use the stand-alone versions of these filters or another replacement, disable them here." @@ -1085,7 +1086,7 @@ msgstr "Filtres de Transformació" msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_STATIC" msgid "Internal LAV Filters settings" -msgstr "Configuració els LAV Filters interns" +msgstr "Configuració dels LAV Filters interns" msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_SPLITTER_CONF" msgid "Splitter" @@ -1109,7 +1110,7 @@ msgstr "Extern:" msgctxt "IDD_PPAGELOGO_IDC_BUTTON2" msgid "Browse..." -msgstr "Explorar..." +msgstr "Explora..." msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "DirectShow Video" @@ -1129,7 +1130,7 @@ msgstr "Renderitzador d'Àudio" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "VMR-7/VMR-9 (renderless) and EVR (CP) settings" -msgstr "VMR-7/VMR-9 (sense res) and EVR (CP) settings" +msgstr "Configuració del VMR-7/VMR-9 (sense renderitzar) i del EVR (CP)" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "Surface:" @@ -1141,7 +1142,7 @@ msgstr "Interpolació:" msgctxt "IDD_PPAGEOUTPUT_IDC_D3D9DEVICE" msgid "Select D3D9 Render Device" -msgstr "Seleccionar dispositiu de D3D9" +msgstr "Selecciona el dispositiu de D3D9" msgctxt "IDD_PPAGEOUTPUT_IDC_RESETDEVICE" msgid "Reinitialize when changing display" @@ -1165,7 +1166,7 @@ msgstr "Mesclador YUV" msgctxt "IDD_PPAGEOUTPUT_IDC_EVR_BUFFERS_TXT" msgid "EVR Buffers:" -msgstr "Buffers de l'EVR:" +msgstr "Memòria intermèdia de l'EVR:" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "DXVA" @@ -1185,43 +1186,43 @@ msgstr "Shaders" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "Rotation" -msgstr "Rotació" +msgstr "Gir" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "* External filters (such as VSFilter) can display subtitles on all renderers." -msgstr "* Filtres externs (com VSFilter) poden mostrar subtítols en tots els renderitzadors." +msgstr "* Els filtres externs (com VSFilter) poden mostrar subtítols en tots els renderitzadors." msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK1" msgid "Listen on port:" -msgstr "Escoltar al port" +msgstr "Port que rep les conexions:" msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC1" msgid "Launch in web browser..." -msgstr "Llençar dins del navegador..." +msgstr "Llença dins del navegador web..." msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK3" msgid "Enable compression" -msgstr "Activar compresió" +msgstr "Activa la compresió" msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK5" msgid "Allow access from localhost only" -msgstr "Permitir acces només des del host local" +msgstr "Permet l'accés només des del host local" msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK2" msgid "Print debug information" -msgstr "Imprimir informació de depuració" +msgstr "Imprimeix la informació de depuració" msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK4" msgid "Serve pages from:" -msgstr "Servir pàginas des de:" +msgstr "Serveix les pàginas des de:" msgctxt "IDD_PPAGEWEBSERVER_IDC_BUTTON1" msgid "Browse..." -msgstr "Explorar..." +msgstr "Explora..." msgctxt "IDD_PPAGEWEBSERVER_IDC_BUTTON2" msgid "Deploy..." -msgstr "Desplegar..." +msgstr "Desplega..." msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC" msgid "Default page:" @@ -1229,19 +1230,19 @@ msgstr "Pàgina per defecte:" msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC" msgid "CGI handlers: (.ext1=path1;.ext2=path2;...)" -msgstr "Gestors de CGI: (.ext1=ruta1;.ext2=ruta2;...)" +msgstr "Gestors del CGI: (.ext1=ruta1;.ext2=ruta2;...)" msgctxt "IDD_SUBTITLEDL_DLG_CAPTION" msgid "Subtitles available online" -msgstr "Subtítols disponibles en línea" +msgstr "Subtítols disponibles en línia" msgctxt "IDD_SUBTITLEDL_DLG_IDOK" msgid "Download && Open" -msgstr "Descarregar i Obrir" +msgstr "Baixa i obre’ls" msgctxt "IDD_SUBTITLEDL_DLG_IDC_CHECK1" msgid "Replace currently loaded subtitles" -msgstr "Remplaçar els subtítols actuals" +msgstr "Reemplaça els subtítols actuals" msgctxt "IDD_FILEPROPRES_IDC_BUTTON1" msgid "Save As..." @@ -1269,7 +1270,7 @@ msgstr "Saturació" msgctxt "IDD_PPAGEMISC_IDC_RESET" msgid "Reset" -msgstr "Inicialitzar" +msgstr "Inicialitza" msgctxt "IDD_PPAGEMISC_IDC_STATIC" msgid "Update check" @@ -1277,10 +1278,10 @@ msgstr "Comprovació d’actualitzacions" msgctxt "IDD_PPAGEMISC_IDC_CHECK1" msgid "Enable automatic update check" -msgstr "Activar comprovació automàtica d'actualitzacions" +msgstr "Activa la comprovació automàtica d'actualitzacions" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" +msgid "Check every:" msgstr "Comprovar cada:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" @@ -1293,15 +1294,15 @@ msgstr "Gestió de configuracions" msgctxt "IDD_PPAGEMISC_IDC_RESET_SETTINGS" msgid "Reset" -msgstr "Inicialitzar" +msgstr "Inicialitza" msgctxt "IDD_PPAGEMISC_IDC_EXPORT_SETTINGS" msgid "Export" -msgstr "Exportar" +msgstr "Exporta" msgctxt "IDD_PPAGEMISC_IDC_EXPORT_KEYS" msgid "Export keys" -msgstr "Exp. Dreceres Teclat" +msgstr "Exporta les Dreceres" msgctxt "IDD_TUNER_SCAN_CAPTION" msgid "Tuner scan" @@ -1313,7 +1314,7 @@ msgstr "Inici" msgctxt "IDD_TUNER_SCAN_IDCANCEL" msgid "Cancel" -msgstr "Cancel.lar" +msgstr "Cancel·la" msgctxt "IDD_TUNER_SCAN_IDC_STATIC" msgid "Freq. Start" @@ -1345,7 +1346,7 @@ msgstr "Q" msgctxt "IDD_TUNER_SCAN_IDC_CHECK_OFFSET" msgid "Use an offset" -msgstr "Usar un desajustament(offset)" +msgstr "Usa un desajustament \"offset\"" msgctxt "IDD_PPAGECAPTURE_IDC_STATIC" msgid "Default Device" @@ -1381,7 +1382,7 @@ msgstr "Configuració digital (BDA)" msgctxt "IDD_PPAGECAPTURE_IDC_STATIC4" msgid "Network Provider" -msgstr "Proveedor" +msgstr "Proveïdor de xarxa" msgctxt "IDD_PPAGECAPTURE_IDC_STATIC5" msgid "Tuner" @@ -1405,19 +1406,19 @@ msgstr "Aturar el \"filtre graph\"" msgctxt "IDD_PPAGESYNC_IDC_SYNCVIDEO" msgid "Sync video to display" -msgstr "Sincronitzar el vídeo a la pantalla" +msgstr "Sincronitza el vídeo a la pantalla" msgctxt "IDD_PPAGESYNC_IDC_STATIC1" msgid "Frequency adjustment:" -msgstr "Ajustar freqüència:" +msgstr "Ajusta la freqüència:" msgctxt "IDD_PPAGESYNC_IDC_SYNCDISPLAY" msgid "Sync display to video" -msgstr "Sincronitzar la pantalla al vídeo" +msgstr "Sincronitza la pantalla al vídeo" msgctxt "IDD_PPAGESYNC_IDC_STATIC2" msgid "Frequency adjustment:" -msgstr "Ajustar freqüència:" +msgstr "Ajusta la freqüència:" msgctxt "IDD_PPAGESYNC_IDC_STATIC3" msgid "lines" @@ -1429,7 +1430,7 @@ msgstr "columnes" msgctxt "IDD_PPAGESYNC_IDC_SYNCNEAREST" msgid "Present at nearest VSync" -msgstr "Presentar al Vsync més proper" +msgstr "Presenta a la Vsync més propera" msgctxt "IDD_PPAGESYNC_IDC_STATIC5" msgid "Target sync offset:" @@ -1457,11 +1458,11 @@ msgstr "Els canvis tindran efecte després de tencar i reiniciar la reproducció msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK1" msgid "Launch files in fullscreen" -msgstr "Executar arxius a pantalla completa" +msgstr "Executa fitxers a pantalla completa" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK4" msgid "Hide controls in fullscreen" -msgstr "Amaga controls en pantalla completa" +msgstr "Amaga els controls en pantalla completa" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC1" msgid "ms" @@ -1469,11 +1470,11 @@ msgstr "ms" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK6" msgid "Hide docked panels" -msgstr "Amaga panells acoblats" +msgstr "Amaga els panells acoblats" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK5" msgid "Exit fullscreen at the end of playback" -msgstr "Sortir de la pantalla completa en acabar" +msgstr "Surt de la pantalla completa en acabar" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC" msgid "Fullscreen monitor" @@ -1481,7 +1482,7 @@ msgstr "Monitor a Pantalla completa" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK2" msgid "Use autochange fullscreen monitor mode" -msgstr "Usar mode de monitor a pantalla completa automàtic" +msgstr "Usa el mode de monitor a pantalla completa automàtic" msgctxt "IDD_PPAGEFULLSCREEN_IDC_BUTTON1" msgid "Add" @@ -1501,11 +1502,11 @@ msgstr "Avall" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK3" msgid "Apply default monitor mode on fullscreen exit" -msgstr "Aplicar visualització per defecte del monitor en sortir de la pantalla completa" +msgstr "Aplica la visualització per defecte del monitor en sortir de la pantalla completa" msgctxt "IDD_PPAGEFULLSCREEN_IDC_RESTORERESCHECK" msgid "Restore resolution on program exit" -msgstr "Restaurar la resolució en sortir" +msgstr "Restaura la resolució en sortir" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC" msgid "Delay" @@ -1525,7 +1526,7 @@ msgstr "Sintonitzar" msgctxt "IDD_PPAGESUBMISC_IDC_CHECK1" msgid "Prefer forced and/or default subtitles tracks" -msgstr "Preferir pistes de subtítols forçats i/o per defecte" +msgstr "Prefereix pistes de subtítols forçats per defecte" msgctxt "IDD_PPAGESUBMISC_IDC_CHECK2" msgid "Prefer external subtitles over embedded subtitles" @@ -1533,7 +1534,7 @@ msgstr "Subtítols externs per defecte si hi són" msgctxt "IDD_PPAGESUBMISC_IDC_CHECK3" msgid "Ignore embedded subtitles" -msgstr "No carregar subtítols encastats" +msgstr "Ignora els subtítols encastats" msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" msgid "Autoload paths" @@ -1541,7 +1542,7 @@ msgstr "Camins de càrrega automàtica" msgctxt "IDD_PPAGESUBMISC_IDC_BUTTON1" msgid "Reset" -msgstr "Inicialitzar" +msgstr "Inicialitza" msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" msgid "Online database" @@ -1573,31 +1574,31 @@ msgstr "&Ignora aquesta actualització" msgctxt "IDD_PPAGESHADERS_IDC_STATIC" msgid "Shaders contain special effects which can be added to the video rendering process." -msgstr "Els \"shaders\" contenen efectes especials que es poden afegir al procés de processament de vídeo." +msgstr "Els \"shaders o pixel shaders o P.S\" contenen efectes especials que es poden afegir al procés de renderització del vídeo." msgctxt "IDD_PPAGESHADERS_IDC_BUTTON12" msgid "Add shader file" -msgstr "Afegir arxiu shader" +msgstr "Afegeix un fitxer P.S" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON13" msgid "Remove" -msgstr "Eliminar" +msgstr "Elimina" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON1" msgid "Add to pre-resize" -msgstr "Afegir al pre-redimensionament" +msgstr "Afegeix al pre-redimensionament" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON2" msgid "Add to post-resize" -msgstr "Afegir al post-redimensionament" +msgstr "Afegeix al post-redimensionament" msgctxt "IDD_PPAGESHADERS_IDC_STATIC" msgid "Shader presets" -msgstr "Preestablir els Shaders" +msgstr "Preestableix els P.S" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON3" msgid "Load" -msgstr "Carregar" +msgstr "Carrega" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON4" msgid "Save" @@ -1609,11 +1610,11 @@ msgstr "Suprimeix" msgctxt "IDD_PPAGESHADERS_IDC_STATIC" msgid "Active pre-resize shaders" -msgstr "Activar pre-redimenionament dels shaders" +msgstr "Activa el pre-redimenionament dels shaders" msgctxt "IDD_PPAGESHADERS_IDC_STATIC" msgid "Active post-resize shaders" -msgstr "Activar post-redimensionament dels shaders" +msgstr "Activa el post-redimensionament dels shaders" msgctxt "IDD_DEBUGSHADERS_DLG_CAPTION" msgid "Debug Shaders" @@ -1621,7 +1622,7 @@ msgstr "Depuració dels Shaders..." msgctxt "IDD_DEBUGSHADERS_DLG_IDC_STATIC" msgid "Debug Information" -msgstr "Informació de Depuració" +msgstr "Informació de depuració" msgctxt "IDD_DEBUGSHADERS_DLG_IDC_RADIO1" msgid "PS 2.0" @@ -1641,7 +1642,7 @@ msgstr "PS 3.0" msgctxt "IDD_PPAGEADVANCED_IDC_STATIC" msgid "Advanced Settings, do not edit unless you know what you are doing." -msgstr "Configuració avançada, no ho editi a menys que sàpiga el que està fent." +msgstr "Configuració avançada, no la editeu sino sabeu el que esteu fent." msgctxt "IDD_PPAGEADVANCED_IDC_RADIO1" msgid "True" @@ -1667,3 +1668,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "D’acord" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Informe de Fallades" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Ho sentim molt sembla que el MPC-HC ha fallat. :(\nPer ajudar-nos a diagnosticar i solucionar el problema, s'enviarà un informe d'error. Pot proporcionar informació addicional si ho desitja." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Correu Electrònic:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "La seva adreça de correu electrònic és opcional i només s'utilitzarà si els desenvolupadors han de posar-se en contacte amb vostè per obtenir més informació." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Descripció del problema( useu només l'Anglès):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "D’acord" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ca.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ca.menus.po index 22769aac739..97eba656753 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ca.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ca.menus.po @@ -1,17 +1,18 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Adolfo Jayme Barrientos, 2015 +# Adolfo Jayme Barrientos, 2015 # Adolfo Jayme Barrientos, 2014 -# papu , 2014 +# papu , 2014-2015 # papu , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2015-01-10 11:00+0000\n" -"Last-Translator: Adolfo Jayme Barrientos\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-26 21:50+0000\n" +"Last-Translator: papu \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/mpc-hc/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,15 +38,15 @@ msgstr "Obre un &DVD/BD…" msgctxt "ID_FILE_OPENDEVICE" msgid "Open De&vice..." -msgstr "Obrir Dis&positiu..." +msgstr "Obre el Dis&positiu..." msgctxt "ID_FILE_OPENDIRECTORY" msgid "Open Dir&ectory..." -msgstr "Obrir Di&rectori..." +msgstr "Obre un Di&rectori..." msgctxt "ID_FILE_OPENDISC" msgid "O&pen Disc" -msgstr "Obrir Di&sc" +msgstr "Obre un Di&sc" msgctxt "ID_RECENT_FILES" msgid "Recent &Files" @@ -57,23 +58,23 @@ msgstr "&Tanca" msgctxt "ID_FILE_SAVE_COPY" msgid "&Save a Copy..." -msgstr "&Desar una còpia..." +msgstr "&Desa una còpia..." msgctxt "ID_FILE_SAVE_IMAGE" msgid "Save &Image..." -msgstr "Desar &Imatge..." +msgstr "Desa una &Imatge..." msgctxt "ID_FILE_SAVE_THUMBNAILS" msgid "Save &Thumbnails..." -msgstr "Desar &Miniatures..." +msgstr "Desa les &Miniatures..." msgctxt "ID_FILE_LOAD_SUBTITLE" msgid "&Load Subtitle..." -msgstr "Cargar &Subtítol..." +msgstr "Carga el &Subtítol..." msgctxt "ID_FILE_SAVE_SUBTITLE" msgid "Save S&ubtitle..." -msgstr "Desar S&ubtítol..." +msgstr "Desa el S&ubtítol..." msgctxt "POPUP" msgid "Subtitle Data&base" @@ -85,7 +86,7 @@ msgstr "&Cerca…" msgctxt "ID_FILE_ISDB_UPLOAD" msgid "&Upload..." -msgstr "Pu&jar..." +msgstr "Pen&ja..." msgctxt "ID_FILE_ISDB_DOWNLOAD" msgid "&Download..." @@ -105,7 +106,7 @@ msgstr "&Visualitza" msgctxt "ID_VIEW_CAPTIONMENU" msgid "Caption&&Menu" -msgstr "Capçalera &i Menú" +msgstr "Menú &i llegenda" msgctxt "ID_VIEW_SEEKER" msgid "See&k Bar" @@ -121,7 +122,7 @@ msgstr "&Informació" msgctxt "ID_VIEW_STATISTICS" msgid "&Statistics" -msgstr "Es&tatístiques" +msgstr "Es&tadístiques" msgctxt "ID_VIEW_STATUS" msgid "St&atus" @@ -145,7 +146,7 @@ msgstr "&Navegació" msgctxt "ID_VIEW_DEBUGSHADERS" msgid "&Debug Shaders" -msgstr "&Depuració de Shaders" +msgstr "&Depuració dels Shaders" msgctxt "POPUP" msgid "&Presets..." @@ -199,13 +200,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Prova de &Pipelleig" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Mostrar Estadístiques" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Visualitza les Estadístiques" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Visualitza el T&emps Actual" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Temps Restant" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Mostra el &Nom del Fixer" msgctxt "POPUP" msgid "&Output Range" @@ -233,11 +238,11 @@ msgstr "P&antalla completa D3D amb GUI" msgctxt "ID_VIEW_HIGHCOLORRESOLUTION" msgid "10-bit &RGB Output" -msgstr "So&rtida RGB 10-bits" +msgstr "So&rtida a RGB 10-bits" msgctxt "ID_VIEW_FORCEINPUTHIGHCOLORRESOLUTION" msgid "Force 10-bit RGB &Input" -msgstr "For&çar Entrada RGB 10-bits" +msgstr "For&ça l'Entrada a RGB 10-bits" msgctxt "ID_VIEW_FULLFLOATINGPOINTPROCESSING" msgid "&Full Floating Point Processing" @@ -249,11 +254,11 @@ msgstr "Processa&ment en coma flotant parcial" msgctxt "ID_VIEW_DISABLEDESKTOPCOMPOSITION" msgid "Disable desktop composition (&Aero)" -msgstr "Desactivar &Composició de l'escriptori(Aero)" +msgstr "Desactiva la &Composició de l'escriptori(Aero)" msgctxt "ID_VIEW_ENABLEFRAMETIMECORRECTION" msgid "Enable Frame Time &Correction" -msgstr "Activar correcció temporal de &fotograma" +msgstr "Activa la Correcció Temporal de &Fotograma" msgctxt "POPUP" msgid "&Color Management" @@ -261,7 +266,7 @@ msgstr "&Gestió de Colors" msgctxt "ID_VIEW_CM_ENABLE" msgid "&Enable" -msgstr "&Activar" +msgstr "&Activa" msgctxt "POPUP" msgid "&Input Type" @@ -285,7 +290,7 @@ msgstr "SDTV &PAL" msgctxt "POPUP" msgid "Ambient &Light" -msgstr "&Llum ambiental" +msgstr "&Llum d'Ambient" msgctxt "ID_VIEW_CM_AMBIENTLIGHT_BRIGHT" msgid "&Bright (2.2 Gamma)" @@ -297,7 +302,7 @@ msgstr "&Tènue (2.35 Gamma)" msgctxt "ID_VIEW_CM_AMBIENTLIGHT_DARK" msgid "D&ark (2.4 Gamma)" -msgstr "&Fosca (2.4 Gamma)" +msgstr "&Fosc (2.4 Gamma)" msgctxt "POPUP" msgid "&Rendering Intent" @@ -337,11 +342,11 @@ msgstr "VSync &Alternativa" msgctxt "ID_VIEW_VSYNCOFFSET_DECREASE" msgid "&Decrease VSync Offset" -msgstr "&Disminuir compensació de vsync" +msgstr "&Disminuieix la compensació del vsync" msgctxt "ID_VIEW_VSYNCOFFSET_INCREASE" msgid "&Increase VSync Offset" -msgstr "&Augmentar compensació de vsync" +msgstr "&Augmenta la Compensació del Vsync" msgctxt "POPUP" msgid "&GPU Control" @@ -349,31 +354,31 @@ msgstr "Control de la &GPU" msgctxt "ID_VIEW_FLUSHGPU_BEFOREVSYNC" msgid "Flush GPU &before VSync" -msgstr "Buidar GPU &abans de VSync" +msgstr "Buida la GPU &abans de la VSync" msgctxt "ID_VIEW_FLUSHGPU_AFTERPRESENT" msgid "Flush GPU &after Present" -msgstr "Buidar GPU &després de Present" +msgstr "Buida la GPU &després de Present" msgctxt "ID_VIEW_FLUSHGPU_WAIT" msgid "&Wait for flushes" -msgstr "Esperar el &buidatge" +msgstr "Espera al &buidat" msgctxt "POPUP" msgid "R&eset" -msgstr "Re&inicialitzar" +msgstr "Re&inicialitza" msgctxt "ID_VIEW_RESET_DEFAULT" msgid "Reset to &default renderer settings" -msgstr "Reinicialitzar ajustos &per defecte del renderitzador" +msgstr "Reinicialitza els ajustos &per defecte del renderitzador" msgctxt "ID_VIEW_RESET_OPTIMAL" msgid "Reset to &optimal renderer settings" -msgstr "Reinicialitzar ajustos òpti&ms del renderitzador" +msgstr "Reinicialitza els ajustos òpti&ms del renderitzador" msgctxt "POPUP" msgid "Video &Frame" -msgstr "&Finestra de Vídeo" +msgstr "&Finestra del Vídeo" msgctxt "ID_VIEW_VF_HALF" msgid "&Half Size" @@ -385,11 +390,11 @@ msgstr "Tamany &Original" msgctxt "ID_VIEW_VF_DOUBLE" msgid "&Double Size" -msgstr "&Doble del Tamany" +msgstr "&Tamany Doble" msgctxt "ID_VIEW_VF_STRETCH" msgid "&Stretch To Window" -msgstr "&Ajustar a la finestra" +msgstr "&Ajusta a la finestra" msgctxt "ID_VIEW_VF_FROMINSIDE" msgid "Touch Window From &Inside" @@ -409,11 +414,11 @@ msgstr "Tocar finestra des de F&ora" msgctxt "ID_VIEW_VF_KEEPASPECTRATIO" msgid "&Keep Aspect Ratio" -msgstr "Ma&ntenir Relació d'Aspecte(AR)" +msgstr "Ma&nté la Relació d'Aspecte o AR" msgctxt "POPUP" msgid "Override &Aspect Ratio" -msgstr "&Forçar Relació d'Aspecte Específica" +msgstr "&Força la Relació d'Aspecte Específica" msgctxt "ID_ASPECTRATIO_SOURCE" msgid "&Default" @@ -441,7 +446,7 @@ msgstr "185:100" msgctxt "ID_VIEW_VF_COMPMONDESKARDIFF" msgid "&Correct Monitor/Desktop AR Diff" -msgstr "Corregir &Relació d'Aspecte Diff al Monitor/Escriptori" +msgstr "Corregeix la diferència de &Relació d'Aspecte del Monitor/Escriptori" msgctxt "POPUP" msgid "Pa&n&&Scan" @@ -449,51 +454,51 @@ msgstr "Pan&&S&can" msgctxt "ID_VIEW_INCSIZE" msgid "&Increase Size" -msgstr "&Augmentar Tamany" +msgstr "&Augmenta el Tamany" msgctxt "ID_VIEW_DECSIZE" msgid "&Decrease Size" -msgstr "&Disminuir Tamany" +msgstr "&Disminueix el Tamany" msgctxt "ID_VIEW_INCWIDTH" msgid "I&ncrease Width" -msgstr "Au&gmentar Amplada" +msgstr "Au&gmenta l''Amplada" msgctxt "ID_VIEW_DECWIDTH" msgid "D&ecrease Width" -msgstr "Dis&minuir Amplada" +msgstr "Dis&minueix l'Amplada" msgctxt "ID_VIEW_INCHEIGHT" msgid "In&crease Height" -msgstr "Augmentar Al&çada" +msgstr "Augmenta l'Al&çada" msgctxt "ID_VIEW_DECHEIGHT" msgid "Decre&ase Height" -msgstr "Dismi&nuir Alçada" +msgstr "Dismi&nueix l'Alçada" msgctxt "ID_PANSCAN_MOVERIGHT" msgid "Move &Right" -msgstr "Moure ca&p a la Dreta" +msgstr "Mou ca&p a la Dreta" msgctxt "ID_PANSCAN_MOVELEFT" msgid "Move &Left" -msgstr "Moure cap a l'Es&querra" +msgstr "Mou cap a l'Es&querra" msgctxt "ID_PANSCAN_MOVEUP" msgid "Move &Up" -msgstr "Mo&ure cap Amunt" +msgstr "Mo&u cap Amunt" msgctxt "ID_PANSCAN_MOVEDOWN" msgid "Move &Down" -msgstr "Moure cap A&vall" +msgstr "Mou cap A&vall" msgctxt "ID_PANSCAN_CENTER" msgid "Cen&ter" -msgstr "Centra&r" +msgstr "Centr&a" msgctxt "ID_VIEW_RESET" msgid "Re&set" -msgstr "R&einiciar" +msgstr "R&einicia" msgctxt "POPUP" msgid "On &Top" @@ -513,7 +518,7 @@ msgstr "&Durant la reproducció" msgctxt "ID_ONTOP_WHILEPLAYINGVIDEO" msgid "While Playing &Video" -msgstr "Durant la reproducció de &vídeo" +msgstr "Durant la reproducció de &Vídeo" msgctxt "ID_VIEW_OPTIONS" msgid "&Options..." @@ -525,7 +530,7 @@ msgstr "&Reprodueix" msgctxt "ID_PLAY_PLAYPAUSE" msgid "&Play/Pause" -msgstr "&Reprodueix/pausa" +msgstr "&Reprodueix/Pausa" msgctxt "ID_PLAY_STOP" msgid "&Stop" @@ -533,19 +538,19 @@ msgstr "&Atura" msgctxt "ID_PLAY_FRAMESTEP" msgid "F&rame Step" -msgstr "Avançar un &Fotograma" +msgstr "Avança un &Fotograma" msgctxt "ID_PLAY_DECRATE" msgid "&Decrease Rate" -msgstr "Au&gmentar Velocitat" +msgstr "Au&gmenta la Velocitat" msgctxt "ID_PLAY_INCRATE" msgid "&Increase Rate" -msgstr "&Disminuir Velocitat" +msgstr "&Disminueix la Velocitat" msgctxt "ID_PLAY_RESETRATE" msgid "R&eset Rate" -msgstr "Re&iniciar Velocitat" +msgstr "Re&inicia la Velocitat" msgctxt "ID_FILTERS" msgid "&Filters" @@ -556,16 +561,16 @@ msgid "S&haders" msgstr "S&haders" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "Àu&dio" +msgid "&Audio Track" +msgstr "Pista d' &Àudio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Su&btítols" +msgid "Su&btitle Track" +msgstr "Pista de Su&títols" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Vídeo S&tream" +msgid "&Video Track" +msgstr "Pista de &Vídeo" msgctxt "POPUP" msgid "&Volume" @@ -587,21 +592,33 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Després de la Re&producció" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "No facis &res" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Reprodueix el fitxer &següent dins la carpeta" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Apaga el &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" -msgstr "&Tancar " +msgstr "&Tanca" msgctxt "ID_AFTERPLAYBACK_STANDBY" msgid "&Stand By" -msgstr "&En espera" +msgstr "&En Espera" msgctxt "ID_AFTERPLAYBACK_HIBERNATE" msgid "&Hibernate" -msgstr "&Hibernar" +msgstr "&Hiberna" msgctxt "ID_AFTERPLAYBACK_SHUTDOWN" msgid "Shut&down" -msgstr "&Apagar" +msgstr "&Apaga" msgctxt "ID_AFTERPLAYBACK_LOGOFF" msgid "Log &Off" @@ -609,19 +626,11 @@ msgstr "&Finalitza la sessió" msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" -msgstr "&Bloquejar l'ordinador" - -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Apagar el &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Reprodueix l'arxiu &següent dins la carpeta" +msgstr "&Bloqueja l'ordinador" msgctxt "POPUP" msgid "&Navigate" -msgstr "Na&vegar" +msgstr "Na&vega" msgctxt "ID_NAVIGATE_SKIPBACK" msgid "&Previous" @@ -633,7 +642,7 @@ msgstr "&Següent" msgctxt "ID_NAVIGATE_GOTO" msgid "&Go To..." -msgstr "A&nar a..." +msgstr "V&és a..." msgctxt "ID_NAVIGATE_TITLEMENU" msgid "&Title Menu" @@ -661,7 +670,7 @@ msgstr "Menú dels &Capítols" msgctxt "ID_FAVORITES" msgid "F&avorites" -msgstr "&Favorits" +msgstr "&Adreces d'Interès" msgctxt "POPUP" msgid "&Help" @@ -673,7 +682,7 @@ msgstr "&Lloc web" msgctxt "ID_HELP_CHECKFORUPDATE" msgid "Check for &updates" -msgstr "Verificar &actualitzacions" +msgstr "Verifica les &actualitzacions" msgctxt "ID_HELP_SHOWCOMMANDLINESWITCHES" msgid "&Command Line Switches" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ca.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ca.strings.po index 613b5058908..664fc1660aa 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ca.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ca.strings.po @@ -1,17 +1,19 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Adolfo Jayme Barrientos, 2014-2015 +# Adolfo Jayme Barrientos, 2015 # Adolfo Jayme Barrientos, 2014 -# papu , 2014 +# Katabi Oka, 2015 +# papu , 2014-2015 # papu , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2015-01-23 09:01+0000\n" -"Last-Translator: Adolfo Jayme Barrientos\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-31 14:58+0000\n" +"Last-Translator: papu \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/mpc-hc/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,7 +43,7 @@ msgstr "Capítol" msgctxt "IDS_CONTROLS_COMPLETING" msgid "Completing..." -msgstr "completant..." +msgstr "S’està completant…" msgctxt "IDS_AUTOPLAY_PLAYVIDEO" msgid "Play Video" @@ -69,7 +71,7 @@ msgstr "Estil per &defecte" msgctxt "IDS_FAVFILES" msgid "Files" -msgstr "Arxius" +msgstr "Fitxers" msgctxt "IDS_FAVDVDS" msgid "DVDs" @@ -121,7 +123,7 @@ msgstr "Si l' objectiu del renderitzador es deixa sense definir, els subtítols msgctxt "IDS_PPAGE_CAPTURE_FG0" msgid "Never (fastest approach)" -msgstr "Mai(mètode més ràpid)" +msgstr "Mai (mètode més ràpid)" msgctxt "IDS_PPAGE_CAPTURE_FG1" msgid "Only when switching different video types (default)" @@ -185,11 +187,11 @@ msgstr "GB/s" msgctxt "IDS_FILE_FAV_ADDED" msgid "File added to favorites" -msgstr "Fitxer afegit als favorits" +msgstr "Fitxer afegit a les adreces d'interès" msgctxt "IDS_DVD_FAV_ADDED" msgid "DVD added to favorites" -msgstr "DVD afegit a favorits" +msgstr "DVD afegit a les Adreces d'Interès" msgctxt "IDS_CAPTURE_SETTINGS" msgid "Capture Settings" @@ -253,11 +255,11 @@ msgstr "En viu" msgctxt "IDS_CAPTURE_ERROR_VID_FILTER" msgid "Can't add video capture filter to the graph" -msgstr "No es pot afegir el filtre de captació de vídeo al graph." +msgstr "No es pot afegir el filtre de captura de vídeo al graph." msgctxt "IDS_CAPTURE_ERROR_AUD_FILTER" msgid "Can't add audio capture filter to the graph" -msgstr "No es pot afegir el filtra de captació d'audio al graph." +msgstr "No es pot afegir el filtre de captura d'audio al graph." msgctxt "IDS_CAPTURE_ERROR_DEVICE" msgid "Could not open capture device." @@ -273,11 +275,11 @@ msgstr "Edita l'editor de llistes" msgctxt "IDS_GOTO_ERROR_INVALID_TIME" msgid "The entered time is greater than the file duration." -msgstr "El temps introduït és major que la durada de l'arxiu." +msgstr "El temps introduït és major que la durada de l'fitxer." msgctxt "IDS_MISSING_ICONS_LIB" msgid "The icons library \"mpciconlib.dll\" is missing.\nThe player's default icon will be used for file associations.\nPlease, reinstall MPC-HC to get \"mpciconlib.dll\"." -msgstr "Manca la llibreria d'icones \"mpciconlib.dll\".\nS'usaran les icones del reproductor per defecte per l'associació d'arxius.\nSisplau, instal·li el MPC-HC per obtenir el \"mpciconlib.dll\"." +msgstr "Manca la llibreria d'icones \"mpciconlib.dll\".\nS'usaran les icones del reproductor per defecte per l'associació dels fitxers.\nSisplau, instal·li el MPC-HC per obtenir el \"mpciconlib.dll\"." msgctxt "IDS_SUBDL_DLG_FILENAME_COL" msgid "File" @@ -325,15 +327,15 @@ msgstr "Llista de reproducció" msgctxt "IDS_PPAGE_FS_CLN_ON_OFF" msgid "On/Off" -msgstr "Encès/Apagat" +msgstr "Activat/Desactivat" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Des de fps" +msgid "From FPS" +msgstr "Des de FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Cap a fps" +msgid "To FPS" +msgstr "Cap a FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -341,7 +343,7 @@ msgstr "Mode de Pantalla (Hz)" msgctxt "IDS_PPAGE_FS_DEFAULT" msgid "Default" -msgstr "Per Defecte" +msgstr "Per defecte" msgctxt "IDS_PPAGE_FS_OTHER" msgid "Other" @@ -417,7 +419,7 @@ msgstr "D&uplicar" msgctxt "IDS_SUBRESYNC_RESET" msgid "&Reset" -msgstr "&Inicialitzar" +msgstr "&Inicialitza" msgctxt "IDS_MPLAYERC_104" msgid "Subtitle Delay -" @@ -461,7 +463,7 @@ msgstr "Filtres Interns::Commutador de l'Àudio" msgctxt "IDD_PPAGEEXTERNALFILTERS" msgid "External Filters" -msgstr "Filtres Externs" +msgstr "Filtres externs" msgctxt "IDD_PPAGESHADERS" msgid "Playback::Shaders" @@ -473,15 +475,15 @@ msgstr "Canvia Àudio" msgctxt "IDS_ICONS_REASSOC_DLG_TITLE" msgid "New version of the icon library" -msgstr "Nova versió de les icones de la biblioteca" +msgstr "Versió actualitzada de la biblioteca d’icones" msgctxt "IDS_ICONS_REASSOC_DLG_INSTR" msgid "Do you want to reassociate the icons?" -msgstr "Vols tornar a associar icones?" +msgstr "Voleu tornar a associar les icones?" msgctxt "IDS_ICONS_REASSOC_DLG_CONTENT" msgid "This will fix the icons being incorrectly displayed after an update of the icon library.\nThe file associations will not be modified, only the corresponding icons will be refreshed." -msgstr "Això solucionarà les icones que es mostren incorrectament després de l'actualització de les icones de la biblioteca.\nLes associacions d'arxius no seran modificats, només les icones corresponents s'actualitzaran." +msgstr "Això solucionarà les icones que es mostren incorrectament després de l'actualització de les icones de la biblioteca.\nLes associacions dels fitxer no seran modificades, només les icones s'actualitzaran." msgctxt "IDS_PPAGE_OUTPUT_OLDRENDERER" msgid "Old Video Renderer" @@ -601,7 +603,7 @@ msgstr "Aquet es el renderitzador predeterminat per Windows 9x/Me/2K. Depenent d msgctxt "IDC_DSOVERLAYMIXER" msgid "Always renders in overlay. Generally only YUV formats are allowed, but they are presented directly without any color conversion to RGB. This is the fastest rendering method of all and the only where you can be sure about fullscreen video mirroring to tv-out activating." -msgstr "Sempre renderitzador amb Overlay. Generalment només es permeten els formats YUV, però es presenten directament sense cap conversió de color a RGB. Aquesta manera de renderitzat es el més ràpid i l'únic on pots estar segur sobre el Video Mirroring a pantalla completa quant actives la sortida de TV." +msgstr "Sempre renderitzador amb Overlay. Generalment només es permeten els formats YUV, però es presenten directament sense cap conversió de color a RGB. Aquesta manera de renderitzat és la més ràpida i l'únic on pots estar segur sobre el Video Mirroring a pantalla completa en activar la sortida de TV." msgctxt "IDC_DSVMR7WIN" msgid "The default renderer of Windows XP. Very stable and just a little slower than the Overlay mixer. Uses DirectDraw and runs in Overlay when it can." @@ -613,19 +615,19 @@ msgstr "Només disponible si tens instal·lat DirectX 9. Té les mateixes habili msgctxt "IDC_DSVMR7REN" msgid "Same as the VMR-7 (windowed), but with the Allocator-Presenter plugin of MPC-HC for subtitling. Overlay video mirroring WILL NOT work. \"True Color\" desktop color space recommended." -msgstr "El mateix que VMR-7 (de finestra), però amb el plugin \"Allocator-Presenter\" de MPC per el subtitulat. El mirall de l'Overlay NO funcionarà. Es recomana la profunditat de color de l'escriptori \"Color Verdader\"." +msgstr "El mateix que VMR-7 (de finestra), però amb el plugin \"Asignador-Presentador\" del MPC pel subtitulat. El mirall de l'Overlay NO funcionarà. Es recomana la profunditat de color de l'escriptori \"Color Verdader\"." msgctxt "IDC_DSVMR9REN" msgid "Same as the VMR-9 (windowed), but with the Allocator-Presenter plugin of MPC-HC for subtitling. Overlay video mirroring MIGHT work. \"True Color\" desktop color space recommended. Recommended for Windows XP." -msgstr "El mateix que VMR-9 (de finestra), però amb el plugin \"Allocator-Presenter\" de MPC per el subtitulat. El mirall de l'Overlay POTSER funcionarà. Es recomana la profunditat de color de l'escriptori \"Color Verdader\"." +msgstr "El mateix que VMR-9 (de finestra), però amb el plugin \"Asignador-Presentador\" del MPC pel subtitulat. El mirall de l'Overlay POTSER funcionarà. Es recomana la profunditat de color de l'escriptori \"Color Verdader\"." msgctxt "IDC_DSDXR" msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer." msgstr "Igual que VMR-9 (sense res), pero usa un redimensionador real de dues passades." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Conecta a cualsevol tipus de mitjà de vídeo i manda les mostres a cap lloc. Utilitza'l quant no necesitis veure el vídeo, i vulguis evitar l'ús no necessari de la cpu." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Conecta a cualsevol tipus de mitjà de vídeo i manda les mostres a cap lloc. Utilitza'l quant no necesitis veure el vídeo, i vulguis evitar l'ús no necessari de la CPU." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -637,11 +639,11 @@ msgstr "Nomès disponible a Vista o posterior o per XP amb com a mínim .NET Fra msgctxt "IDC_DSEVR_CUSTOM" msgid "Same as the EVR, but with the Allocator-Presenter of MPC-HC for subtitling and postprocessing. Recommended for Windows Vista or later." -msgstr "Igual que EVR, pero amb Asignació-Presentació del MPC-HC per subtitulat y postprocessament. Recomanat per Vindows Vista o posterior." +msgstr "Igual que EVR, pero amb l' Asignació-Presentació del MPC-HC pel subtitulat i postprocessament. Recomanat per Vindows Vista o posterior." msgctxt "IDC_DSMADVR" msgid "High-quality renderer, requires a GPU that supports D3D9 or later." -msgstr "Renderitzador d'alta qualitat, requereix una GPU amb suport D3D9 o posterior." +msgstr "Renderitzador d'alta qualitat, cal una GPU amb suport D3D9 o posterior." msgctxt "IDC_DSSYNC" msgid "Same as the EVR (CP), but offers several options to synchronize the video frame rate with the display refresh rate to eliminate skipped or duplicated video frames." @@ -653,11 +655,11 @@ msgstr "Renderitzat propi real. Els scripts SMIL funcionaran, però la interacci msgctxt "IDC_RMDX7" msgid "The output of Real's engine rendered by the DX7-based Allocator-Presenter of VMR-7 (renderless)." -msgstr "La sortida del motor Real serà renderitzat per el \"Allocator-Presenter\" basat en DX7 de VMR-7 (sense res)." +msgstr "La sortida del motor Real serà renderitzat per l' \"Asignador-Presentador\" basat en DX7 de VMR-7 (sense renderitzar)." msgctxt "IDC_RMDX9" msgid "The output of Real's engine rendered by the DX9-based Allocator-Presenter of VMR-9 (renderless)." -msgstr "La sortida del motor Real serà renderitzat per el \"Allocator-Presenter\" basat en DX9 de VMR-9 (sense res)." +msgstr "La sortida del motor Real serà renderitzat per l' \"Asignador-Presentador\" basat en DX9 del VMR-9 (sense renderitzar)." msgctxt "IDC_QTSYSDEF" msgid "QuickTime's own renderer. Gets a little slow when its video area is resized or partially covered by another window. When Overlay is not available it likes to fall back to GDI." @@ -665,11 +667,11 @@ msgstr "El renderitzador propi del Quictime, es torna una mica lent quant l'àre msgctxt "IDC_QTDX7" msgid "The output of QuickTime's engine rendered by the DX7-based Allocator-Presenter of VMR-7 (renderless)." -msgstr "La Sortida del motor de QuickTime será renderitzat per el \"Allocator-Presenter\" basat en DX7 de VMR-7 (sense res)." +msgstr "La Sortida del motor de QuickTime será renderitzat pel \"Allocator-Presenter\" basat en DX7 del VMR-7 (sense renderitzar)." msgctxt "IDC_QTDX9" msgid "The output of QuickTime's engine rendered by the DX9-based Allocator-Presenter of VMR-9 (renderless)." -msgstr "La Sortida del motor de QuickTime será renderitzat per el \"Allocator-Presenter\" basat en DX9 de VMR-9 (sense res)." +msgstr "La Sortida del motor de QuickTime será renderitzat per l \"Allocator-Presenter\" basat en DX9 del VMR-9 (sense renderitzar)." msgctxt "IDC_REGULARSURF" msgid "Video surface will be allocated as a regular offscreen surface." @@ -761,7 +763,7 @@ msgstr "Per visualitzar un recurs incrustat en el seu navegador has d'habilitar msgctxt "IDS_DOWNLOAD_SUBS" msgid "Download subtitles" -msgstr "Descarregar Subtítols" +msgstr "Descarrega els Subtítols" msgctxt "IDS_SUBFILE_DELAY" msgid "Delay (ms):" @@ -781,11 +783,11 @@ msgstr "No es troven fitxers multimèdia a l'arxiu" msgctxt "IDS_RFS_COMPRESSED" msgid "Compressed files are not supported" -msgstr "Els arxius comprimits no són compatibles" +msgstr "Els fitxers comprimits no són compatibles" msgctxt "IDS_RFS_ENCRYPTED" msgid "Encrypted files are not supported" -msgstr "Els arxius xifrats no són compatibles" +msgstr "Els fitxers no són compatibles" msgctxt "IDS_RFS_MISSING_VOLS" msgid "Couldn't find all archive volumes" @@ -817,19 +819,19 @@ msgstr "Redueix el tearing(esquinçament de la imatge) però impedeix que la bar msgctxt "IDC_DSVMR9ALTERNATIVEVSYNC" msgid "Reduces tearing by bypassing the default VSync built into D3D." -msgstr "Redueix el tearing(esquinçament de la imatge) passant per alt el VSync incoporat per defecta al D3D." +msgstr "Redueix l'esquinçament de la imatge o \"tearing\" ignorant el VSync predeterminat del D3D." msgctxt "IDS_SRC_VTS" msgid "Open VTS_xx_0.ifo to load VTS_xx_x.vob files in one piece" -msgstr "Obre VTS_xx_0.ifo per cargar tots els arxius VTS_xx_x.vob de cop" +msgstr "Obre VTS_xx_0.ifo per cargar tots els fitxers VTS_xx_x.vob de cop" msgctxt "IDS_SRC_RFS" msgid "Based on RARFileSource, doesn't support compressed files" -msgstr "Basat en RARFileSource, no és pas compatible amb arxius comprimits" +msgstr "Basat en RARFileSource, no és pas compatible amb fitxers comprimits" msgctxt "IDS_INTERNAL_LAVF" msgid "Uses LAV Filters" -msgstr "Utilitza LAV Filters" +msgstr "Utilitza els LAV Filters" msgctxt "IDS_INTERNAL_LAVF_WMV" msgid "Uses LAV Filters. Disabled by default since Microsoft filters are usually more stable for those formats.\nIf you choose to use the internal filters, enable them for both source and decoding to have a better playback experience." @@ -857,7 +859,7 @@ msgstr "En augmentar el nombre de subimatges de la memòria intermèdia s'hauria msgctxt "IDC_BUTTON_EXT_SET" msgid "After clicking this button, the checked state of the format group will reflect the actual file association for MPC-HC. A newly added extension will usually make it grayed, so don't forget to check it again before closing this dialog!" -msgstr "Després de fer clic aquet botó, l'estat de comprobació del format del grup reflexarà las associacions d'arxiu actuale pel MPC. Una extensión recent agregada es motrarà en gris, no oblidis de maracar-la de nou abans de tencar aquet cuadre de diàleg" +msgstr "Després de fer clic aquet botó, l'estat de comprobació del format del grup reflexarà las associacions del fitxer actual pel MPC. Una extensión recent agregada es motrarà en gris, no oblidis de maracar-la de nou abans de tencar aquet cuadre de diàleg" msgctxt "IDC_CHECK_ALLOW_DROPPING_SUBPIC" msgid "Disabling this option will prevent the subtitles from blinking but it may cause the video renderer to skip some video frames." @@ -881,7 +883,7 @@ msgstr "Pas\nPas" msgctxt "ID_PLAY_DECRATE" msgid "Decrease speed\nDecrease speed" -msgstr "Disminuir Velocitat\nDisminuir Velocitat" +msgstr "Disminueix la Velocitat\nDisminueix la Velocitat" msgctxt "ID_PLAY_INCRATE" msgid "Increase speed\nIncrease speed" @@ -891,7 +893,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Silencia" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Habilita el so" @@ -929,7 +931,7 @@ msgstr "&No" msgctxt "IDS_SUBRESYNC_DECREASE" msgid "&Decrease" -msgstr "&Decrèixer" +msgstr "&Disminueix" msgctxt "IDS_SUBRESYNC_INCREASE" msgid "&Increase" @@ -941,7 +943,7 @@ msgstr "Opcions" msgctxt "IDS_SHADERS_SELECT" msgid "&Select Shaders..." -msgstr "&Seleccionar Shaders..." +msgstr "&Selecciona Shaders..." msgctxt "IDS_SHADERS_DEBUG" msgid "&Debug Shaders..." @@ -949,11 +951,11 @@ msgstr "&Depuració dels Shaders..." msgctxt "IDS_FAVORITES_ADD" msgid "&Add to Favorites..." -msgstr "&Afegir a Favorits..." +msgstr "&Afegiu a les Adreces d'Interès..." msgctxt "IDS_FAVORITES_ORGANIZE" msgid "&Organize Favorites..." -msgstr "&Organizar Favorits..." +msgstr "&Organitzeu les Adreces d'Interès..." msgctxt "IDS_PLAYLIST_SHUFFLE" msgid "Shuffle" @@ -985,7 +987,7 @@ msgstr "&Neteja la llista" msgctxt "IDS_RECENT_FILES_QUESTION" msgid "Are you sure that you want to delete recent files list?" -msgstr "Esteu segur que voleu suprimir la llista d' arxius recents?" +msgstr "Esteu segur que voleu suprimir la llista dels fitxer recents?" msgctxt "IDS_AG_EDL_SAVE" msgid "EDL save" @@ -993,7 +995,7 @@ msgstr "EDL: Estalviar" msgctxt "IDS_AG_ENABLEFRAMETIMECORRECTION" msgid "Enable Frame Time Correction" -msgstr "Activar Correcció de Temps en Fotogrames" +msgstr "Activa la Correcció de Temps de Fotograma" msgctxt "IDS_AG_TOGGLE_EDITLISTEDITOR" msgid "Toggle EDL window" @@ -1053,7 +1055,7 @@ msgstr "Parat" msgctxt "IDS_CONTROLS_BUFFERING" msgid "Buffering... (%d%%)" -msgstr "Emmagatzemant a la Memòria intermèdia... (%d%%)" +msgstr "Emmagatzemant a la memòria intermèdia… (%d %%)" msgctxt "IDS_CONTROLS_CAPTURING" msgid "Capturing..." @@ -1065,11 +1067,11 @@ msgstr "S’està obrint…" msgctxt "IDS_CONTROLS_CLOSED" msgid "Closed" -msgstr "Tencant" +msgstr "Tancat" msgctxt "IDS_SUBTITLES_OPTIONS" msgid "&Options..." -msgstr "&Opcions..." +msgstr "&Opcions…" msgctxt "IDS_SUBTITLES_STYLES" msgid "&Styles..." @@ -1081,11 +1083,11 @@ msgstr "&Recargar" msgctxt "IDS_SUBTITLES_ENABLE" msgid "&Enable" -msgstr "&Activar" +msgstr "&Activa" msgctxt "IDS_PANSCAN_EDIT" msgid "&Edit..." -msgstr "Editar..." +msgstr "&Edita…" msgctxt "IDS_INFOBAR_TITLE" msgid "Title" @@ -1137,11 +1139,11 @@ msgstr "Ratolí a Pantalla Completa" msgctxt "IDS_AG_APP_COMMAND" msgid "App Command" -msgstr "Comandament d'App" +msgstr "Ordre de l’aplicació" msgctxt "IDS_AG_MEDIAFILES" msgid "Media files (all types)" -msgstr "Arxius de mitjans (tots els tipus)" +msgstr "Fitxers multimèdia (tots els tipus)" msgctxt "IDS_AG_ALLFILES" msgid "All files (*.*)|*.*|" @@ -1157,7 +1159,7 @@ msgstr "Desconegut" msgctxt "IDS_MPLAYERC_0" msgid "Quick Open File" -msgstr "Obrir Arxiu Ràpid" +msgstr "Obre Fitxer Ràpid" msgctxt "IDS_AG_OPEN_FILE" msgid "Open File" @@ -1169,15 +1171,15 @@ msgstr "Obre un DVD o BD" msgctxt "IDS_MAINFRM_POST_SHADERS_FAILED" msgid "Failed to set post-resize shaders" -msgstr "Error en establir post-redimensionament dels shaders" +msgstr "Error en establir post-redimensionament dels P.S" msgctxt "IDS_MAINFRM_BOTH_SHADERS_FAILED" msgid "Failed to set both pre-resize and post-resize shaders" -msgstr "Error en establir ambdos pre i post redimensionament dels shaders" +msgstr "Error en establir ambdos pre i post redimensionament dels P.S" msgctxt "IDS_DEBUGSHADERS_FIRSTRUN_MSG" msgid "Shaders are recompiled automatically when the corresponding files are modified." -msgstr "Els shaders es tornen a compilar automàticament quan els arxius corresponents es modifiquen." +msgstr "Els shaders es tornen a compilar automàticament quan els fitxers corresponents es modifiquen." msgctxt "IDS_SHADER_DLL_ERR_0" msgid "Cannot load %s, pixel shaders will not work." @@ -1205,11 +1207,11 @@ msgstr "%s" msgctxt "IDS_RECORD_START" msgid "Record" -msgstr "Gravar" +msgstr "Enregistra" msgctxt "IDS_RECORD_STOP" msgid "Stop" -msgstr "Parar" +msgstr "Atura" msgctxt "IDS_BALANCE" msgid "L = R" @@ -1285,27 +1287,27 @@ msgstr "Valor" msgctxt "IDS_PPAGEADVANCED_RECENT_FILES_NUMBER" msgid "Maximum number of files shown in the \"Recent files\" menu and for which the position is potentially saved." -msgstr "Màxim nombre d' arxius a mostrar al menú \"Archius recents\" i per al cual es guarda potencialment la posició." +msgstr "Màxim nombre de fitxers per mostrar al menú \"Fitxers recents\" i per als que es guarda potencialment la posició." msgctxt "IDS_PPAGEADVANCED_FILE_POS_LONGER" msgid "Remember file position only for files longer than N minutes." -msgstr "Recordar la posició d'arxiu només per a arxius de més de N minuts." +msgstr "Recorda la posició del fitxer només pels que durint més de N minuts." msgctxt "IDS_PPAGEADVANCED_FILE_POS_AUDIO" msgid "Remember file position also for audio files." -msgstr "Recordar la posició d'arxiu també per a arxius d'àudio." +msgstr "Recorda també la posició per a fitxers d'àudio." msgctxt "IDS_AFTER_PLAYBACK_DO_NOTHING" msgid "Do Nothing" -msgstr "No fer res" +msgstr "No facis Res" msgctxt "IDS_AFTER_PLAYBACK_PLAY_NEXT" msgid "Play next file in the folder" -msgstr "Reprodueix l'arxiu següent dins la carpeta" +msgstr "Reprodueix el fitxer següent dins la carpeta" msgctxt "IDS_AFTER_PLAYBACK_REWIND" msgid "Rewind current file" -msgstr "Rebobina l'arxiu actual" +msgstr "Rebobina el fitxer actual" msgctxt "IDS_AFTER_PLAYBACK_CLOSE" msgid "Close" @@ -1317,7 +1319,7 @@ msgstr "Surt" msgctxt "IDS_AFTER_PLAYBACK_MONITOROFF" msgid "Turn off the monitor" -msgstr "Apagar el monitor" +msgstr "Apaga el monitor" msgctxt "IDS_IMAGE_JPEG_QUALITY" msgid "JPEG Image" @@ -1341,7 +1343,7 @@ msgstr "" msgctxt "IDS_NAVIGATION_WATCH" msgid "Watch" -msgstr "" +msgstr "Veure" msgctxt "IDS_NAVIGATION_MOVE_UP" msgid "Move Up" @@ -1369,12 +1371,32 @@ msgstr "No hi ha informació disponible" msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" msgid "Please wait, analysis in progress..." -msgstr "Si us plau esperi, l'anàlisi en curs ..." +msgstr "Espereu-vos, l’anàlisi és en curs…" msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "RA %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Activa el registre a un fitxer (cal reiniciar)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Temps Restant" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Alta precisió" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Després de la Reproducció:Rebobina el fitxer actual" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Després de la Reproducció:Tanca" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Obre un dispositiu" @@ -1424,11 +1446,11 @@ msgid "Stop" msgstr "Atura" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Avançar un Fotograma" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Retrocedir un Fotograma" msgctxt "IDS_AG_GO_TO" @@ -1489,15 +1511,15 @@ msgstr "MPC-HC ha trobat un problema durant la inicialització. La reproducció msgctxt "IDS_PPAGEFULLSCREEN_SHOWNEVER" msgid "Never show" -msgstr "No mostrar mai" +msgstr "No mostris mai" msgctxt "IDS_PPAGEFULLSCREEN_SHOWMOVED" msgid "Show when moving the cursor, hide after:" -msgstr "Mostra quan es mou el cursor, amagar-se després:" +msgstr "Visualitzar en moure el cursor, amaga després:" msgctxt "IDS_PPAGEFULLSCREEN_SHOHHOVERED" msgid "Show when hovering control, hide after:" -msgstr "Mostra al voleiar el control, amagar-se després:" +msgstr "Visualitza en voleiar el control, amaga després:" msgctxt "IDS_MAINFRM_PRE_SHADERS_FAILED" msgid "Failed to set pre-resize shaders" @@ -1505,11 +1527,11 @@ msgstr "Error en establir pre-redimensionament dels shaders" msgctxt "IDS_OSD_RS_FT_CORRECTION_ON" msgid "Frame Time Correction: On" -msgstr "Activar correcció temporal de fotograma: On" +msgstr "Activa la Correcció Temporal de Fotograma: On" msgctxt "IDS_OSD_RS_FT_CORRECTION_OFF" msgid "Frame Time Correction: Off" -msgstr "Activar correcció temporal de fotograma: Off" +msgstr "Correcció Temporal de Fotograma: Desactivat" msgctxt "IDS_OSD_RS_TARGET_VSYNC_OFFSET" msgid "Target VSync Offset: %.1f" @@ -1528,8 +1550,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniatures desades amb èxit" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Vídeo S&tream" +msgid "&Video Track" +msgstr "Pista de &Vídeo" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1549,7 +1571,7 @@ msgstr "Si us plau, tanqueu totes les instàncies del MPC-HC perquè la configur msgctxt "IDS_EXPORT_SETTINGS" msgid "Export settings" -msgstr "Exportar configuracions" +msgstr "Exporta les configuracions" msgctxt "IDS_EXPORT_SETTINGS_WARNING" msgid "Some changes have not been saved yet.\nDo you want to save them before exporting?" @@ -1569,11 +1591,11 @@ msgstr "Error de BDA" msgctxt "IDS_AG_DECREASE_RATE" msgid "Decrease Rate" -msgstr "Disminuir Velocitat" +msgstr "Disminueix la Velocitat" msgctxt "IDS_AG_RESET_RATE" msgid "Reset Rate" -msgstr "Inicialitzar Velocitat" +msgstr "Inicialitza la Velocitat" msgctxt "IDS_MPLAYERC_21" msgid "Audio Delay +10 ms" @@ -1621,15 +1643,15 @@ msgstr "Següent" msgctxt "IDS_AG_PREVIOUS" msgid "Previous" -msgstr "Previ" +msgstr "Anterior" msgctxt "IDS_AG_NEXT_FILE" msgid "Next File" -msgstr "Arxiu Següent" +msgstr "Fitxer següent" msgctxt "IDS_AG_PREVIOUS_FILE" msgid "Previous File" -msgstr "Arxiu Anterior" +msgstr "Fitxer Anterior" msgctxt "IDS_MPLAYERC_99" msgid "Toggle Direct3D fullscreen" @@ -1637,11 +1659,11 @@ msgstr "Commutar el Direct3D a Pantalla completa" msgctxt "IDS_MPLAYERC_100" msgid "Goto Prev Subtitle" -msgstr "Anar a Subtítol Previ" +msgstr "Vés al Subtítol Previ" msgctxt "IDS_MPLAYERC_101" msgid "Goto Next Subtitle" -msgstr "Anar a Subtítol Següent" +msgstr "Vés al Subtítol Següent" msgctxt "IDS_MPLAYERC_102" msgid "Shift Subtitle Left" @@ -1651,13 +1673,45 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Moure Subtítol cap a la Dreta" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Mostrar Estadisticas" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" -msgstr "Anar al Començament" +msgstr "Vés al Començament" + +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Mostra el Nom del Fixer" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Visualitza les Estadístiques del Renderitzador" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Reinicia les Estadístiques del Renderitzador" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Subtítols::Més Opcions" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Amaga les &vores" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Només Fotograma(frame)" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Mostra el Menú &&Llegenda" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Amaga el &Menú" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avançat" msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" @@ -1729,7 +1783,7 @@ msgstr "Decarregant subtítols, esperi sisplau." msgctxt "IDS_SUBDL_DLG_PARSING" msgid "Parsing list..." -msgstr "Anàlisi de la llista..." +msgstr "S’està analitzant la llista…" msgctxt "IDS_SUBDL_DLG_NOT_FOUND" msgid "No subtitles found." @@ -1877,7 +1931,7 @@ msgstr "Menu Avall DVD" msgctxt "IDS_MPLAYERC_73" msgid "DVD Menu Activate" -msgstr "Menu Activar DVD" +msgstr "Activa Menú del DVD" msgctxt "IDS_AG_DVD_MENU_BACK" msgid "DVD Menu Back" @@ -1892,12 +1946,12 @@ msgid "Boss key" msgstr "Tecla Enxampar" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menú del Reproductor (curt)" +msgid "Player Menu" +msgstr "Menú del reproductor" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menú del Reproductor (llarg)" +msgid "Player Menu (full)" +msgstr "Menú del reproductor (sencer)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1975,9 +2029,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Subtítols Activats/Desactivats (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Temps Restant" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Visualitza el Temps Actual" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -1985,7 +2039,7 @@ msgstr "Selecciona el Directori" msgctxt "IDS_FAVORITES_QUICKADDFAVORITE" msgid "Quick add favorite" -msgstr "Addició ràpida de favorits" +msgstr "Addició ràpida a les Adreces d'Interès" msgctxt "IDS_DVB_CHANNEL_NUMBER" msgid "N" @@ -2073,19 +2127,19 @@ msgstr "%s, %s %u Hz %d bits %d %s" msgctxt "IDS_ADD_TO_PLAYLIST" msgid "Add to MPC-HC Playlist" -msgstr "Afegir a la Llista de Reprodució de MPC" +msgstr "Afegeix a la llista del MPC-HC" msgctxt "IDS_OPEN_WITH_MPC" msgid "Play with MPC-HC" -msgstr "Reproduir amb MPC" +msgstr "Reprodueix amb MPC-HC" msgctxt "IDS_CANNOT_CHANGE_FORMAT" msgid "MPC-HC has not enough privileges to change files formats associations. Please click on the \"Run as administrator\" button." -msgstr "MPC-HC no té suficientes privilegis per canviar les associacions del tipus d'arxiu. Sisplau faci click al botó \"Executar com a administrador\"." +msgstr "MPC-HC no té suficientes privilegis per canviar les associacions del fitxer. Sisplau faci click al botó \"Executar com a administrador\"." msgctxt "IDS_APP_DESCRIPTION" msgid "MPC-HC is an extremely light-weight, open source media player for Windows. It supports all common video and audio file formats available for playback. We are 100% spyware free, there are no advertisements or toolbars." -msgstr "MPC-HC és un el reproductor multimèdia de codi obert per a Windows, molt lleuger. És compatible amb tots els formats d'arxius d'àudio i vídeo més comuns disponibles per reproduir-se. És 100% lliure de spyware, no hi ha anuncis o qualsevol altre tipus de publicitat." +msgstr "MPC-HC és un el reproductor multimèdia de codi obert per a Windows, molt lleuger. És compatible amb tots els formats de fitxers d'àudio i vídeo més comuns disponibles per reproduir-se. És 100% lliure de spyware, no hi ha anuncis o qualsevol altre tipus de publicitat." msgctxt "IDS_MAINFRM_12" msgid "channel" @@ -2133,7 +2187,7 @@ msgstr "DVD: Disc i Decodificador de Regions Incompatibles" msgctxt "IDS_D3DFS_WARNING" msgid "This option is designed to avoid tearing. However, it will also prevent MPC-HC from displaying the context menu and any dialog box during playback.\n\nDo you really want to activate this option?" -msgstr "Aqueta opció es per eliminar el pipelleig, però evita que MPC-HC mostri el menú contextual i caixes de diàleg mentre reprodueix.\n\nEstas segur vols activar aquesta opció?" +msgstr "Aquesta opció és per eliminar el pipelleig, però evita que MPC-HC mostri el menú contextual i caixes de diàleg mentre reprodueix.\n\nEstas segur vols activar aquesta opció?" msgctxt "IDS_MAINFRM_139" msgid "Sub delay: %ld ms" @@ -2149,7 +2203,7 @@ msgstr "El nom conté caràcters no suportats (utilitza només A-Z, 0-9)" msgctxt "IDS_THUMB_ROWNUMBER" msgid "Rows:" -msgstr "Arxius:" +msgstr "Files:" msgctxt "IDS_THUMB_COLNUMBER" msgid "Columns:" @@ -2161,7 +2215,7 @@ msgstr "Amplada de la imatge" msgctxt "IDS_PPSDB_URLCORRECT" msgid "The URL appears to be correct!" -msgstr "La URL sembla correcta!" +msgstr "L’URL sembla correcte!" msgctxt "IDS_PPSDB_PROTOCOLERR" msgid "Protocol version mismatch, please upgrade your player or choose a different address!" @@ -2169,7 +2223,7 @@ msgstr "Versió del protocol diferent, actualitza el teu reproductor o escull un msgctxt "IDS_AG_ASPECT_RATIO" msgid "Aspect Ratio" -msgstr "Relació d'Aspecte" +msgstr "Relació d’aspecte" msgctxt "IDS_MAINFRM_37" msgid ", Total: %ld, Dropped: %ld" @@ -2177,19 +2231,19 @@ msgstr ", Total: %ld, Perduts: %ld" msgctxt "IDS_MAINFRM_38" msgid ", Size: %I64d KB" -msgstr ", Tamany: %I64dKB" +msgstr ", mida: %I64d KB" msgctxt "IDS_MAINFRM_39" msgid ", Size: %I64d MB" -msgstr ", Tamany: %I64dMB" +msgstr ", mida: %I64d MB" msgctxt "IDS_MAINFRM_40" msgid ", Free: %I64d KB" -msgstr ", Lliure: %I64dKB" +msgstr ", disponible: %I64d KB" msgctxt "IDS_MAINFRM_41" msgid ", Free: %I64d MB" -msgstr ", Lliure: %I64dMB" +msgstr ", disponible: %I64d MB" msgctxt "IDS_MAINFRM_42" msgid ", Free V/A Buffers: %03d/%03d" @@ -2201,7 +2255,7 @@ msgstr "Error" msgctxt "IDS_SUBTITLE_STREAM_OFF" msgid "Subtitle: off" -msgstr "Subtítol: Apagat" +msgstr "Subtítol: Activat" msgctxt "IDS_SUBTITLE_STREAM" msgid "Subtitle: %s" @@ -2217,7 +2271,7 @@ msgstr " carregat amb èxit" msgctxt "IDS_ALL_FILES_FILTER" msgid "All files (*.*)|*.*||" -msgstr "Tots els arxius (*.*)|*.*||" +msgstr "Tots els fitxer (*.*)|*.*||" msgctxt "IDS_GETDIB_FAILED" msgid "GetDIB failed, hr = %08x" @@ -2229,11 +2283,11 @@ msgstr "GetCurrentImage ha fallat, hr = %08x" msgctxt "IDS_SCREENSHOT_ERROR" msgid "Cannot create file" -msgstr "No es pot crear l'Arxiu" +msgstr "No es pot crear el fitxer" msgctxt "IDS_THUMBNAILS_NO_DURATION" msgid "Cannot create thumbnails for files with no duration" -msgstr "No es poden crear miniatures pels arxius sense duració" +msgstr "No es poden crear miniatures pels fitxers sense cap duració" msgctxt "IDS_THUMBNAILS_NO_FRAME_SIZE" msgid "Failed to get video frame size" @@ -2249,15 +2303,15 @@ msgstr "Format d'Imatge invàlid, no es poden crear les miniatures de %d bpp dib msgctxt "IDS_THUMBNAILS_INFO_FILESIZE" msgid "File Size: %s (%s bytes)\\N" -msgstr "Tamany de l'Arxiu: %s (%s bytes)\\N" +msgstr "Tamany del Fitxer: %s (%s bytes)\\N" msgctxt "IDS_THUMBNAILS_INFO_HEADER" msgid "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}File Name: %s\\N%sResolution: %dx%d %s\\NDuration: %02d:%02d:%02d" -msgstr "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}Nom de l' Arxiu: %s\\N%sResolució: %dx%d %s\\NDuració: %02d:%02d:%02d" +msgstr "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}Nom del Fitxer: %s\\N%sResolució: %dx%d %s\\NDuració: %02d:%02d:%02d" msgctxt "IDS_THUMBNAIL_TOO_SMALL" msgid "The thumbnails would be too small, impossible to create the file.\n\nTry lowering the number of thumbnails or increasing the total size." -msgstr "Les miniatures serien massa petites, no es possible de crear l'arxiu.\n\nProveu reduir el nombre de miniatures o augmentar la mida total." +msgstr "Les miniatures serien massa petites, no es possible de crear el fitxer.\n\nProveu de reduir el nombre de miniatures o augmentar la mida total." msgctxt "IDS_CANNOT_LOAD_SUB" msgid "To load subtitles you have to change the video renderer type and reopen the file.\n- DirectShow: VMR-7/VMR-9 (renderless), EVR (CP), Sync, madVR or Haali\n- RealMedia: Special renderer for RealMedia, or open it through DirectShow\n- QuickTime: DX7 or DX9 renderer for QuickTime\n- ShockWave: n/a" @@ -2265,7 +2319,7 @@ msgstr "Per carregar subtítols has de canviar el tipus de processador de vídeo msgctxt "IDS_SUBTITLE_FILES_FILTER" msgid "Subtitle files" -msgstr "Arxius de subtítols" +msgstr "Fitxers de subtítols" msgctxt "IDS_MAINFRM_68" msgid "Aspect Ratio: %ld:%ld" @@ -2288,8 +2342,8 @@ msgid "Out of memory" msgstr "Sense memòria" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Error: es necessita el Flash pel IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Error: es necessita el Flash pel Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2301,15 +2355,15 @@ msgstr "Fallada al crear l' objecte del esquema de filtres" msgctxt "IDS_MAINFRM_81" msgid "Invalid argument" -msgstr "Argument invàlid" +msgstr "L’argument no és vàlid" msgctxt "IDS_MAINFRM_82" msgid "Opening aborted" -msgstr "Opertura abortada" +msgstr "S’ha interromput l’obertura" msgctxt "IDS_MAINFRM_83" msgid "Failed to render the file" -msgstr "Fallada en renderizar l' arxiu" +msgstr "Fallada en renderizar el fitxer" msgctxt "IDS_PPSDB_BADURL" msgid "Bad URL, could not locate subtitle database there!" @@ -2337,15 +2391,15 @@ msgstr "Actual" msgctxt "IDS_MPC_CRASH" msgid "MPC-HC terminated unexpectedly. To help us fix this problem, please send this file \"%s\" to our bug tracker.\n\nDo you want to open the folder containing the minidump file and visit the bug tracker now?" -msgstr "MPC-HC ha acabat inesperadament. Per ajudar-nos a solucionar aquest problema, si us plau, envieu aquest fitxer \"%s\" al nostre bug tracker.\n\nVoleu ara obrir la carpeta que conté l'arxiu \"minidump\" i visitar el \"bug tracker\" per informar de l'error?" +msgstr "MPC-HC ha acabat inesperadament. Per ajudar-nos a solucionar aquest problema, si us plau, envieu aquest fitxer \"%s\" al nostre bug tracker.\n\nVoleu ara obrir la carpeta que conté el fitxer \"minidump\" i visitar el \"bug tracker\" per informar de l'error?" msgctxt "IDS_MPC_MINIDUMP_FAIL" msgid "Failed to create dump file to \"%s\" (error %u)" -msgstr "Ha fallat la creació de l' arxiu de volcat a '%s' (error %u)" +msgstr "Ha fallat la creació del fitxer de volcat a '%s' (error %u)" msgctxt "IDS_MAINFRM_DIR_TITLE" msgid "Select Directory" -msgstr "Seleccioni Directori" +msgstr "Trieu una carpeta" msgctxt "IDS_MAINFRM_DIR_CHECK" msgid "Include subdirectories" @@ -2360,7 +2414,7 @@ msgid "Toggle Caption&Menu" msgstr "Commutar Menú de &Llegenda" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Commutar Seeker" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2381,11 +2435,11 @@ msgstr "No es pot cargar cap filtre font" msgctxt "IDS_MAINFRM_88" msgid "Cannot render the file" -msgstr "No es pot renderitzar l'arxiu" +msgstr "No es pot renderitzar el fitxer" msgctxt "IDS_MAINFRM_89" msgid "Invalid file format" -msgstr "Format de l'arxiu invàlid" +msgstr "El format del fitxer no és vàlid" msgctxt "IDS_MAINFRM_90" msgid "File not found" @@ -2433,7 +2487,7 @@ msgstr "So" msgctxt "IDS_MAINFRM_114" msgid "%s was not found, please insert media containing this file." -msgstr "No s'ha trobat %s, sisplau inserti el mitjà que conté aquest arxiu.." +msgstr "No s'ha trobat %s, sisplau inserti el suport que conté aquest fitxer.." msgctxt "IDS_AG_ABORTED" msgid "Aborted" @@ -2461,15 +2515,15 @@ msgstr "VSync" msgctxt "IDS_MAINFRM_121" msgid " (Director Comments 1)" -msgstr " (Comentaris del Director N° 1)" +msgstr " (Comentaris del director, 1)" msgctxt "IDS_MAINFRM_122" msgid " (Director Comments 2)" -msgstr " (Comentaris del Director N° 2)" +msgstr " (Comentaris del director, 2)" msgctxt "IDS_DVD_SUBTITLES_ENABLE" msgid "Enable DVD subtitles" -msgstr "Habilitar subtítols del DVD" +msgstr "Habilita els subtítols del DVD" msgctxt "IDS_AG_ANGLE" msgid "Angle %u" @@ -2485,7 +2539,7 @@ msgstr "Desactivat" msgctxt "IDS_AG_VSYNCOFFSET_DECREASE" msgid "Decrease VSync Offset" -msgstr "Disminuir desajustament del Vsync" +msgstr "Disminueix el desajustament del Vsync" msgctxt "IDS_MAINFRM_136" msgid "MPC-HC D3D Fullscreen" @@ -2505,7 +2559,7 @@ msgstr "Augmentar guany del volum" msgctxt "IDS_VOLUME_BOOST_DEC" msgid "Volume boost decrease" -msgstr "Disminuir guany del volum" +msgstr "Disminueix guany del volum" msgctxt "IDS_VOLUME_BOOST_MIN" msgid "Volume boost Min" @@ -2516,8 +2570,8 @@ msgid "Volume boost Max" msgstr "Guany de volum màxim" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Ús: mpc-hc.exe \"camí\" [switches]\n\n\"camí\"\t\tL'arxiu o directori principal a cargar-se\n(comodins permesos, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tfile ambtains \"...DELAY XXms...\")\n/d3dfs\t\tstart rendering in D3D Mode a Pantalla completa\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary. (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playing\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tRegister Vídeo formats\n/regaud\t\tRegister audio formats\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tUnregister Vídeo formats\n/start ms\t\tStart playing at \"ms\" (= milliseambds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet fixed window size\n/monitor N\tStart on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tMostra l' ajuda de la línea de comandaments(no traduït)\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "NO TRADUÏT! - Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\nallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tfile contains \"...DELAY XXms...\")\n/d3dfs\t\tstart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary. (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playing\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tRegister Vídeo formats\n/regaud\t\tRegister audio formats\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tUnregister Vídeo formats\n/start ms\t\tStart playing at \"ms\" (= milliseambds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet fixed window size\n/monitor N\tStart on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tMostra l' ajuda de la línea de comandaments\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2581,7 +2635,7 @@ msgstr "VidFrm Afora" msgctxt "IDS_AG_PNS_RESET" msgid "PnS Reset" -msgstr "Inicialitzar PnS" +msgstr "Inicialitza el PnS" msgctxt "IDS_AG_PNS_ROTATEX_P" msgid "PnS Rotate X+" @@ -2601,7 +2655,7 @@ msgstr "VidFrm Commutar Zoom" msgctxt "IDS_ENABLE_ALL_FILTERS" msgid "&Enable all filters" -msgstr "&Activar tots els filtres" +msgstr "&Activa tots els filtres" msgctxt "IDS_NAVIGATE_TUNERSCAN" msgid "Tuner scan" @@ -2621,11 +2675,11 @@ msgstr "No hi ha cap més mitjà a la carpeta actual." msgctxt "IDS_FIRST_IN_FOLDER" msgid "The first file of the folder is already loaded." -msgstr "El primer arxiu de la carpeta ja està carregat." +msgstr "El primer fitxer de la carpeta ja està carregat." msgctxt "IDS_LAST_IN_FOLDER" msgid "The last file of the folder is already loaded." -msgstr "L'últim arxiu de la carpeta ja està carregat." +msgstr "L'últim fitxer de la carpeta ja està carregat." msgctxt "IDS_FRONT_LEFT" msgid "Front Left" @@ -2699,40 +2753,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Dalt Darrere Dreta" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Inicialitzar Estadistiques de Visualització" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Subtítols::Més Opcions" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Amagar vores" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Només Fotograma(frame)" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Mostrar Menú &&Llegenda" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Amagar Menú" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avançat" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Per sobra la barra de cerca" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Per sota la barra de cerca" msgctxt "IDS_VIDEO_STREAM" @@ -2769,19 +2795,19 @@ msgstr "&Inhabilita tots els filtres" msgctxt "IDS_ENABLE_AUDIO_FILTERS" msgid "Enable all audio decoders" -msgstr "Activar tots els descodificadors d'àudio" +msgstr "Activa tots els descodificadors d'àudio" msgctxt "IDS_DISABLE_AUDIO_FILTERS" msgid "Disable all audio decoders" -msgstr "Desactivar tots els descodificadors d'àudio" +msgstr "Desactiva tots els descodificadors d'àudio" msgctxt "IDS_ENABLE_VIDEO_FILTERS" msgid "Enable all video decoders" -msgstr "Activar tots els descodificadors de vídeo" +msgstr "Activa tots els descodificadors de vídeo" msgctxt "IDS_DISABLE_VIDEO_FILTERS" msgid "Disable all video decoders" -msgstr "Desactivar totos els descodificadors de vídeo" +msgstr "Desactiva totos els descodificadors de vídeo" msgctxt "IDS_STRETCH_TO_WINDOW" msgid "Stretch To Window" @@ -2809,7 +2835,7 @@ msgstr "Àudio: %s" msgctxt "IDS_AG_REOPEN" msgid "Reopen File" -msgstr "Reobrir Arxiu" +msgstr "Reobrir Fitxer" msgctxt "IDS_MFMT_AVI" msgid "AVI" @@ -2900,8 +2926,8 @@ msgid "Other Audio" msgstr "Altre Àudio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "So AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2911,6 +2937,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "So DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2975,33 +3021,17 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" -msgstr "Llista de Reproducció" +msgstr "Llista de reproducció" msgctxt "IDS_MFMT_BDPLS" msgid "Blu-ray playlist" -msgstr "Blu-ray playlist" +msgstr "Llista de reproducció Blu-ray" msgctxt "IDS_MFMT_RAR" msgid "RAR Archive" -msgstr "RAR Archive" +msgstr "Arxiu RAR" msgctxt "IDS_DVB_CHANNEL_FPS" msgid "FPS" @@ -3013,11 +3043,11 @@ msgstr "Resolució" msgctxt "IDS_DVB_CHANNEL_ASPECT_RATIO" msgid "Aspect Ratio" -msgstr "Relació d'Aspecte" +msgstr "Relació d’aspecte" msgctxt "IDS_ARS_WASAPI_MODE" msgid "Use WASAPI (restart playback)" -msgstr "Usar mode WASAPI (rependre la reproducció)" +msgstr "Usa el mode WASAPI (rependre la reproducció)" msgctxt "IDS_ARS_MUTE_FAST_FORWARD" msgid "Mute on fast forward" @@ -3025,7 +3055,7 @@ msgstr "Mutis amb l'avanç ràpid" msgctxt "IDS_ARS_SOUND_DEVICE" msgid "Sound Device:" -msgstr "Controlador de so:" +msgstr "Dispositiu de so:" msgctxt "IDS_OSD_RS_VSYNC_ON" msgid "VSync: On" @@ -3041,31 +3071,31 @@ msgstr "VSync Precisa: On" msgctxt "IDS_OSD_RS_ACCURATE_VSYNC_OFF" msgid "Accurate VSync: Off" -msgstr "VSync Precisa: Off" +msgstr "VSync Precisa: Desactivat" msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_ON" msgid "Synchronize Video to Display: On" -msgstr "Sincronitzar el vídeo a la pantalla: On" +msgstr "Sincronitza el vídeo a la pantalla: On" msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_OFF" msgid "Synchronize Video to Display: Off" -msgstr "Sincronitzar el vídeo a la pantalla: Off" +msgstr "Sincronitza el vídeo a la pantalla: Desactivat" msgctxt "IDS_OSD_RS_SYNC_TO_VIDEO_ON" msgid "Synchronize Display to Video: On" -msgstr "Sincronitzar la pantalla al vídeo: On" +msgstr "Sincronitza la pantalla al vídeo: On" msgctxt "IDS_OSD_RS_SYNC_TO_VIDEO_OFF" msgid "Synchronize Display to Video: Off" -msgstr "Sincronitzar la pantalla al vídeo: Off" +msgstr "Sincronitza la pantalla al vídeo: Desactivat" msgctxt "IDS_OSD_RS_PRESENT_NEAREST_ON" msgid "Present at Nearest VSync: On" -msgstr "Presentar al Vsync més proper: On" +msgstr "Presenta a la Vsync més propera: On" msgctxt "IDS_OSD_RS_PRESENT_NEAREST_OFF" msgid "Present at Nearest VSync: Off" -msgstr "Presentar al Vsync més proper: Off" +msgstr "Presenta a la Vsync més propera: Desactivat" msgctxt "IDS_OSD_RS_COLOR_MANAGEMENT_ON" msgid "Color Management: On" @@ -3073,7 +3103,7 @@ msgstr "Gestió de Colors: On" msgctxt "IDS_OSD_RS_COLOR_MANAGEMENT_OFF" msgid "Color Management: Off" -msgstr "Gestió de Colors: Off" +msgstr "Gestió de Colors: Desactivat" msgctxt "IDS_OSD_RS_INPUT_TYPE_AUTO" msgid "Input Type: Auto-Detect" @@ -3125,27 +3155,27 @@ msgstr "Rang de Sortida: %s" msgctxt "IDS_OSD_RS_FLUSH_BEF_VSYNC_ON" msgid "Flush GPU before VSync: On" -msgstr "Buidar GPU Abans de VSync: On" +msgstr "Buida la GPU abans de la VSync: On" msgctxt "IDS_OSD_RS_FLUSH_BEF_VSYNC_OFF" msgid "Flush GPU before VSync: Off" -msgstr "Buidar GPU Abans de VSync: Off" +msgstr "Buida la GPU abans de la VSync: Desactivat" msgctxt "IDS_OSD_RS_FLUSH_AFT_PRES_ON" msgid "Flush GPU after Present: On" -msgstr "Buidar GPU després de Present: On" +msgstr "Buida la GPU després de la Presentaciót: On" msgctxt "IDS_OSD_RS_FLUSH_AFT_PRES_OFF" msgid "Flush GPU after Present: Off" -msgstr "Buidar GPU després de Present: Off" +msgstr "Buida la GPU després de la Presentació: Desactivat" msgctxt "IDS_OSD_RS_WAIT_ON" msgid "Wait for GPU Flush: On" -msgstr "Esperar el buidatge: On" +msgstr "Espera el buidat de la GPU: On" msgctxt "IDS_OSD_RS_WAIT_OFF" msgid "Wait for GPU Flush: Off" -msgstr "Esperar el buidatge: Off" +msgstr "Espera el buidat de la GPU: Desactivat" msgctxt "IDS_OSD_RS_D3D_FULLSCREEN_ON" msgid "D3D Fullscreen: On" @@ -3153,15 +3183,15 @@ msgstr "Pantalla completa D3D: On" msgctxt "IDS_OSD_RS_D3D_FULLSCREEN_OFF" msgid "D3D Fullscreen: Off" -msgstr "Pantalla completa D3D: Off" +msgstr "Pantalla completa D3D: Desactivat" msgctxt "IDS_OSD_RS_NO_DESKTOP_COMP_ON" msgid "Disable desktop composition: On" -msgstr "Desactivar composició de l'escriptori: On" +msgstr "Desactiva la composició de l'escriptori: On" msgctxt "IDS_OSD_RS_NO_DESKTOP_COMP_OFF" msgid "Disable desktop composition: Off" -msgstr "Desactivar composició de l'escriptori: Off" +msgstr "Desactivaa la composició de l'escriptori: Desactivat" msgctxt "IDS_OSD_RS_ALT_VSYNC_ON" msgid "Alternative VSync: On" @@ -3169,7 +3199,7 @@ msgstr "VSync Alternativa: On" msgctxt "IDS_OSD_RS_ALT_VSYNC_OFF" msgid "Alternative VSync: Off" -msgstr "VSync Alternativa: Off" +msgstr "VSync Alternativa: Desactivat" msgctxt "IDS_OSD_RS_RESET_DEFAULT" msgid "Renderer settings reset to default" @@ -3185,7 +3215,7 @@ msgstr "Pantalla completa D3D amb GUI: On" msgctxt "IDS_OSD_RS_D3D_FS_GUI_SUPP_OFF" msgid "D3D Fullscreen GUI Support: Off" -msgstr "Pantalla completa D3D amb GUI: Off" +msgstr "Pantalla completa D3D amb GUI: Desactivat" msgctxt "IDS_OSD_RS_10BIT_RBG_OUT_ON" msgid "10-bit RGB Output: On" @@ -3193,15 +3223,15 @@ msgstr "Sortida RGB 10-bits: On" msgctxt "IDS_OSD_RS_10BIT_RBG_OUT_OFF" msgid "10-bit RGB Output: Off" -msgstr "Sortida RGB 10-bits: Off" +msgstr "Sortida a RGB 10-bits: Desactivat" msgctxt "IDS_OSD_RS_10BIT_RBG_IN_ON" msgid "Force 10-bit RGB Input: On" -msgstr "Forçar Entrada RGB 10-bits: On" +msgstr "Força l'Entrada a RGB 10-bits: Actiu" msgctxt "IDS_OSD_RS_10BIT_RBG_IN_OFF" msgid "Force 10-bit RGB Input: Off" -msgstr "Forçar Entrada RGB 10-bits: Off" +msgstr "Força l'Entrada a RGB 10-bits: Desactivat" msgctxt "IDS_OSD_RS_FULL_FP_PROCESS_ON" msgid "Full Floating Point Processing: On" @@ -3209,7 +3239,7 @@ msgstr "Processament en coma flotant complet: On" msgctxt "IDS_OSD_RS_FULL_FP_PROCESS_OFF" msgid "Full Floating Point Processing: Off" -msgstr "Processament en coma flotant complet: Off" +msgstr "Processament en coma flotant complet: Desactivat" msgctxt "IDS_OSD_RS_HALF_FP_PROCESS_ON" msgid "Half Floating Point Processing: On" @@ -3217,11 +3247,11 @@ msgstr "Processament en coma flotant parcial: On" msgctxt "IDS_OSD_RS_HALF_FP_PROCESS_OFF" msgid "Half Floating Point Processing: Off" -msgstr "Processament en coma flotant parcial: Off" +msgstr "Processament en coma flotant parcial: Desactivat" msgctxt "IDS_BRIGHTNESS_DEC" msgid "Brightness decrease" -msgstr "Disminuir la Brillantor" +msgstr "Disminueix la Brillantor" msgctxt "IDS_CONTRAST_INC" msgid "Contrast increase" @@ -3229,7 +3259,7 @@ msgstr "Augmentar el Contrast" msgctxt "IDS_CONTRAST_DEC" msgid "Contrast decrease" -msgstr "Disminuir el Contrast" +msgstr "Disminueix el Contrast" msgctxt "IDS_HUE_INC" msgid "Hue increase" @@ -3237,7 +3267,7 @@ msgstr "Augmentar Tint" msgctxt "IDS_HUE_DEC" msgid "Hue decrease" -msgstr "Disminuir Tint" +msgstr "Disminueix el Tint" msgctxt "IDS_SATURATION_INC" msgid "Saturation increase" @@ -3245,7 +3275,7 @@ msgstr "Augmentar Saturació" msgctxt "IDS_SATURATION_DEC" msgid "Saturation decrease" -msgstr "Disminuir Saturació" +msgstr "Disminueix la Saturació" msgctxt "IDS_RESET_COLOR" msgid "Reset color settings" @@ -3301,7 +3331,7 @@ msgstr "Normalitzar" msgctxt "IDS_OSD_NORMALIZE_OFF" msgid "Normalization: Off" -msgstr "Normalització: Activada" +msgstr "Normalització: Desactivat" msgctxt "IDS_REGAIN_VOLUME" msgid "Toggle regain volume" @@ -3313,7 +3343,7 @@ msgstr "Recuperar volum: On" msgctxt "IDS_OSD_REGAIN_VOLUME_OFF" msgid "Regain volume: Off" -msgstr "Recuperar volum: Off" +msgstr "Recuperar volum: Desactivat" msgctxt "IDS_SIZE_UNIT_BYTES" msgid "bytes" @@ -3376,24 +3406,24 @@ msgid "Error parsing the entered frame rate!" msgstr "Error en analitzar la velocitat de fotogrames entrat!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "No es pot usar el desplaçament imatge a imatge, provi un altre renderitzador de vídeo." msgctxt "IDS_SCREENSHOT_ERROR_REAL" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for RealMedia.\nSelect one of the DirectX renderers for RealMedia in MPC-HC's output options and reopen the file." -msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb el renderitzador de vídeo per defecte pel RealMedia.\nSelecioni un dels renders DirectX pel RealMedia en les opciones de sortida del MPC i torna a obrir l'arxiu." +msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb el renderitzador de vídeo per defecte pel RealMedia.\nSelecioni un dels renders DirectX pel RealMedia en les opciones de sortida del MPC i torna a obrir el fitxer." msgctxt "IDS_SCREENSHOT_ERROR_QT" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for QuickTime.\nSelect one of the DirectX renderers for QuickTime in MPC-HC's output options and reopen the file." -msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb el renderitzador de vídeo per defecte pel QuickTime.\nSelecioni un dels renders DirectX pel QuickTime en les opciones de sortida del MPC i torna a obrir l'arxiu." +msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb el renderitzador de vídeo per defecte pel QuickTime.\nSelecioni un dels renders DirectX pel QuickTime en les opciones de sortida del MPC i torna a obrir el fitxer." msgctxt "IDS_SCREENSHOT_ERROR_SHOCKWAVE" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work for Shockwave files." -msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb els arxius Shockwave." +msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb els fitxers Shockwave." msgctxt "IDS_SCREENSHOT_ERROR_OVERLAY" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the Overlay Mixer video renderer.\nChange the video renderer in MPC's output options and reopen the file." -msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb el renderitzador de vídeo Overlay Mixer.\nCanvia el renderitzador de vídeo en les opciones de sortida del MPC i torna a obrir l'arxiu." +msgstr "Les funcions \"Desar Imatge\" i \"Desar Miniatures\" no funcionen amb el renderitzador de vídeo Overlay Mixer.\nCanvia el renderitzador de vídeo en les opciones de sortida del MPC i torna a obrir el fitxer." msgctxt "IDS_SUBDL_DLG_CONNECT_ERROR" msgid "Cannot connect to the online subtitles database." @@ -3449,11 +3479,11 @@ msgstr "No s'ha trovat el pin de captació d'audio." msgctxt "IDS_CAPTURE_ERROR_OUT_FILE" msgid "Error initializing the output file." -msgstr "Error al inicialitzar l'arxiu de sortida." +msgstr "Error al inicialitzar el fitxer de sortida." msgctxt "IDS_CAPTURE_ERROR_AUD_OUT_FILE" msgid "Error initializing the audio output file." -msgstr "Error al inicialitzar l'arxiu de sortida de l'audio." +msgstr "Error al inicialitzarel fitxer de sortida de l'audio." msgctxt "IDS_SUBRESYNC_TIME_FORMAT" msgid "The correct time format is [-]hh:mm:ss.ms (e.g. 01:23:45.678)." @@ -3467,9 +3497,9 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Cal aplicar la nova configuració abans de provar-la." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" -msgstr "Després de la reproducció: Sortir" +msgstr "Després de la reproducció: Surt" msgctxt "IDS_AFTERPLAYBACK_STANDBY" msgid "After Playback: Stand By" @@ -3481,27 +3511,27 @@ msgstr "Després de la reproducció: Hibernació" msgctxt "IDS_AFTERPLAYBACK_SHUTDOWN" msgid "After Playback: Shutdown" -msgstr "Després de la reproducció: Apagar l'equip" +msgstr "Després de la reproducció: Apaga l'equip" msgctxt "IDS_AFTERPLAYBACK_LOGOFF" msgid "After Playback: Log Off" -msgstr "Després de la reproducció: Finalitzar sessió" +msgstr "Després de la Reproducció: Finalitza la sessió" msgctxt "IDS_AFTERPLAYBACK_LOCK" msgid "After Playback: Lock" -msgstr "Després de la reproducció: Bloquejar" +msgstr "Després de la reproducció: Bloqueja" msgctxt "IDS_AFTERPLAYBACK_MONITOROFF" msgid "After Playback: Turn off the monitor" -msgstr "Després de reproducció: Apagar el monitor" +msgstr "Després de reproducció: Apaga el monitor" msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" msgid "After Playback: Play next file in the folder" -msgstr "Després de la reproducció: Reproduir el seguent arxiu dins la carperta" +msgstr "Després de la Reproducció: Reprodueix el seguent fitxer dins la carperta" msgctxt "IDS_AFTERPLAYBACK_DONOTHING" msgid "After Playback: Do nothing" -msgstr "Després de la reproducció: No fer res" +msgstr "Després de la reproducció: No facis res" msgctxt "IDS_OSD_BRIGHTNESS" msgid "Brightness: %s" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.cs.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.cs.dialogs.po index f663a83d0fe..e44e253f621 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.cs.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.cs.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# khagaroth, 2013-2014 +# khagaroth, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-26 09:38+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-18 14:24+0000\n" "Last-Translator: khagaroth\n" "Language-Team: Czech (http://www.transifex.com/projects/p/mpc-hc/language/cs/)\n" "MIME-Version: 1.0\n" @@ -109,16 +109,16 @@ msgid "Enable custom channel mapping" msgstr "Povolit vlastní přiřazení zvukových kanálů" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Nastavení reproduktorů pro " +msgid "Speaker configuration for" +msgstr "Nastavení reproduktorů pro" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "vstupní kanály:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Pokud při kliknutí myší podržíte Shift, změny se projeví okamžitě " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Pokud při kliknutí myší podržíte Shift, změny se projeví okamžitě" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -569,7 +569,7 @@ msgid "Warning" msgstr "Varování" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Pokud změníte polohu titulků a zapnete full-screen antialiasing, titulky určitě nebudou vypadat lépe, zato však zaberou veškerý výkon vašeho procesoru." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -681,11 +681,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Aktivovat funkce pro panel úloh Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Pokud je v playlistu jen jen jedna položka, otevřít pomocí příkazů 'Skočit zpět/vpřed' předchozí/následující soubor v adresáři" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Zobrazit v popisku čas:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Povolit automatickou kontrolu aktualizací" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Odstup mezi kontrolami:" +msgid "Check every:" +msgstr "Kontrolovat každých:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Oznámení chyby" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Omlouváme se, zdá se že došlo k selhání MPC-HC :(\n\nPro usnadnění odhalení a opravy chyby bude zasláno hlášení o chybě. Pokud chcete, můžete před odesláním poskytnou dodatečné informace." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Zadání e-mailové adresy je nepovinné a adresa bude použita pouze pokud vás bude vývojář potřebovat kontaktovat z důvodu doplnění nebo upřesnění poskytnutých informací." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Popis problému (použijte angličtinu):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.cs.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.cs.menus.po index e017154d962..985ffb0fb68 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.cs.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.cs.menus.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # kasper93, 2013 -# khagaroth, 2013-2014 +# khagaroth, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 16:00+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 15:31+0000\n" "Last-Translator: khagaroth\n" "Language-Team: Czech (http://www.transifex.com/projects/p/mpc-hc/language/cs/)\n" "MIME-Version: 1.0\n" @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Test &trhání" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Statistika zobrazení" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "Zobrazit statistiku" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Zbývající čas" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Zobrazit aktuální čas" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Zobrazit název souboru" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "Shadery" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "Zvuk" +msgid "&Audio Track" +msgstr "&Zvuková stopa" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Titulky" +msgid "Su&btitle Track" +msgstr "&Titulková stopa" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Video" +msgid "&Video Track" +msgstr "&Video stopa" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "P&o přehrání" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Žádná akce" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Přehrát &další soubor v adresáři" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Vypnout &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Zavřít přehrávač" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Uzamknout počítač" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Vypnout &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Přehrát &další soubor v adresáři" - msgctxt "POPUP" msgid "&Navigate" msgstr "Přejí&t" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.cs.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.cs.strings.po index 52db4e64a56..6e7cba2b1ff 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.cs.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.cs.strings.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Jan Košata , 2014 -# khagaroth, 2013-2014 +# khagaroth, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-02 09:10+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 15:31+0000\n" "Last-Translator: khagaroth\n" "Language-Team: Czech (http://www.transifex.com/projects/p/mpc-hc/language/cs/)\n" "MIME-Version: 1.0\n" @@ -326,12 +326,12 @@ msgid "On/Off" msgstr "Zap/Vyp" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Od fps" +msgid "From FPS" +msgstr "Od FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Do fps" +msgid "To FPS" +msgstr "Do FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Stejný jako VMR-9 (renderless), ale pro změnu velikosti používá dvouprůchodový bikubický filtr." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Připojí se k jakémukoliv typu videa a začne všechny vstupní vzorky zahazovat. Použijte ho pokud nepotřebujete video zobrazit a chcete ušetřit výkon procesoru." msgctxt "IDC_DSNULL_UNCOMP" @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Ztlumit" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Zrušit ztlumení" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "PS %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Povolit záznam protokolu do souboru (vyžaduje restart)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Zbývající čas" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Vysoká přesnost" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Po přehrání: Na začátek aktuálního souboru" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Po přehrání: Zavřít" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Otevřít zařízení" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Zastavit" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "O snímek vpřed" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "O snímek zpět" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniatury úspěšně uloženy" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Video s&topa" +msgid "&Video Track" +msgstr "&Video stopa" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Posunout titulky doprava" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Zobrazit statistiku" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Přejít na začátek" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Zobrazit název souboru" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Zobrazit statistiku rendereru" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Obnovit statistiku rendereru" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Titulky::Ostatní" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Skrýt okraje" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Pouze rámeček s videem" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Zobrazit titulek a nabídky" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Skrýt nabídku" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Pokročilé" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Minimální zobrazení" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Boss klávesa" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Nabídka přehrávače (krátká)" +msgid "Player Menu" +msgstr "Nabídka přehrávače" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Nabídka přehrávače (dlouhá)" +msgid "Player Menu (full)" +msgstr "Nabídka přehrávače (rozšířená)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Zapnout/Vypnout titulky (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Zbývající čas" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Zobrazit aktuální čas" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Nedostatek paměti" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Chyba: Vyžadován Flash plugin pro IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Chyba: Vyžadován Flash plugin pro Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Zobrazit/Skrýt záhlaví a hlavní nabídku" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Zobrazit/Skrýt panel hledání" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Zesílení - maximální" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Použití: mpc-hc.exe \"cesta\" [parametry]\n\n\"cesta\"\t\tSoubor nebo adresář, který má být otevřen\n\t\t(povoleny masky, \"-\" označuje standardní vstup)\n/dub \"soubor\"\tNačte soubor se zvukovou stopou\n/dubdelay \"soubor\"\tNačte soubor se zvukovou stopou posunutou o XXms\n\t\t(pokud název souboru obsahuje \"...DELAY XXms...\")\n/d3dfs\t\tSpustí vykreslování v D3D fullscreen režimu\n/sub \"soubor\"\tNačte soubor s titulky\n/filter \"soubor\"\tNačte DirectShow filtr (*.ax nebo *.dll, povoleny\n\t\tmasky)\n/dvd\t\tSpustí MPC-HC v DVD režimu, volitelný parametr\n\t\t\"cesta\" určuje DVD adresář\n/dvdpos T#K\tSpustí přehrávání titulu T, kapitoly K\n/dvdpos T#hh:mm\tSpustí přehrávání titulu T, pozice hh:mm:ss\n/cd\t\tNačte všechny stopy AudioCD/(S)VCD, volitelný\n\t\tparametr \"cesta\" udává písmeno CD mechaniky\n/device\t\tOtevře výchozí video zařízení\n/open\t\tNačte soubor, ale nespustí přehrávání\n/play\t\tNačte soubor a přehraje ho\n/close\t\tPo ukončení přehrávání zavře přehrávač (funkční\n\t\tjen v kombinaci s /play)\n/shutdown\tPo ukončení přehrávání vypne počítač\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tSpustí přehrávač v režimu na celou obrazovku\n/minimized\tSpustí přehrávač minimalizovaný\n/new\t\tOtevře novou instanci MPC-HC\n/add\t\tPřidá \"cestu\" do playlistu, může být kombinován\n\t\ts /open a /play\n/regvid\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tpodporované video formáty\n/regaud\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tpodporované zvukové formáty\n/regpl\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tpodporované seznamy stop\n/regall\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tvšechny podporované formáty\n/unregall\t\tZruší asociaci MPC-HC se všemi formáty\n\t\t(včetně playlistů)\n/start ms\t\tSpustí přehrávání od zadané pozice\n\t\t(ms = milisekundy)\n/startpos hh:mm:ss\tSpustí přehrávání od pozice hh:mm:ss\n/fixedsize w,h\tSpustí přehrávač se zadanou velikostí okna\n/monitor N\tSpustí přehrávání na monitoru N, kde N\n\t\tzačíná od 1\n/audiorenderer N\tPoužije audiorenderer N, kde N začíná od 1\n\t\t(viz nastavení \"Výstup\")\n/shaderpreset \"Př\"\tPoužije předvolbu shaderů \"Př\"\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tObnoví výchozí nastavení\n/help /h /?\tZobrazí tento dialog\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Použití: mpc-hc.exe \"cesta\" [parametry]\n\n\"cesta\"\t\tSoubor nebo adresář, který má být otevřen\n\t\t(povoleny masky, \"-\" označuje standardní vstup)\n/dub \"soubor\"\tNačte soubor se zvukovou stopou\n/dubdelay \"soubor\"\tNačte soubor se zvukovou stopou posunutou\n\t\to XXms (pokud název souboru obsahuje\n\t\t\"...DELAY XXms...\")\n/d3dfs\t\tSpustí vykreslování v D3D fullscreen režimu\n/sub \"soubor\"\tNačte soubor s titulky\n/filter \"soubor\"\tNačte DirectShow filtr (*.ax nebo *.dll, povoleny\n\t\tmasky)\n/dvd\t\tSpustí MPC-HC v DVD režimu, volitelný parametr\n\t\t\"cesta\" určuje DVD adresář\n/dvdpos T#K\tSpustí přehrávání titulu T, kapitoly K\n/dvdpos T#hh:mm\tSpustí přehrávání titulu T, pozice hh:mm:ss\n/cd\t\tNačte všechny stopy AudioCD/(S)VCD, volitelný\n\t\tparametr \"cesta\" udává písmeno CD mechaniky\n/device\t\tOtevře výchozí video zařízení\n/open\t\tNačte soubor, ale nespustí přehrávání\n/play\t\tNačte soubor a přehraje ho\n/close\t\tPo ukončení přehrávání zavře přehrávač (funkční\n\t\tjen v kombinaci s /play)\n/shutdown\tPo ukončení přehrávání vypne počítač\n/standby\t\tPo přehrání přepne systém do úsporného režimu\n/hibernate\tPo přehrání přepne systém do režimu hibernace\n/logoff\t\tPo přehrání odhlásí aktuálně přihlášeného uživatele\n/lock\t\tPo přehrání uzamkne aktivní uživatelský účet\n/monitoroff\tPo přehrání vypne obrazovku\n/playnext\t\tPo přehrání otevře další soubor v adresáři\n/fullscreen\tSpustí přehrávač v režimu na celou obrazovku\n/minimized\tSpustí přehrávač minimalizovaný\n/new\t\tOtevře novou instanci MPC-HC\n/add\t\tPřidá \"cestu\" do playlistu, může být kombinován\n\t\ts /open a /play\n/randomize⇥Náhodně seřadí seznam stop\n/regvid\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tpodporované video formáty\n/regaud\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tpodporované zvukové formáty\n/regpl\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tpodporované seznamy stop\n/regall\t\tNastaví MPC-HC jako výchozí přehrávač pro\n\t\tvšechny podporované formáty\n/unregall\t\tZruší asociaci MPC-HC se všemi formáty\n\t\t(včetně playlistů)\n/start ms\t\tSpustí přehrávání od zadané pozice\n\t\t(ms = milisekundy)\n/startpos hh:mm:ss\tSpustí přehrávání od pozice hh:mm:ss\n/fixedsize w,h\tSpustí přehrávač se zadanou velikostí okna\n/monitor N\tSpustí přehrávání na monitoru N, kde N\n\t\tzačíná od 1\n/audiorenderer N\tPoužije audiorenderer N, kde N začíná od 1\n\t\t(viz nastavení \"Výstup\")\n/shaderpreset \"Př\"\tPoužije předvolbu shaderů \"Př\"\n/pns \"název\"\tPoužije předvolbu Pan&Scan určitého názvu\n/iconsassoc\tZnovu přiřadí ikony formátů souborů\n/nofocus\t\tSpustí MPC-HC v pozadí\n/webport N\tSpustí webové rozhraní na zadaném portu\n/debug\t\tZobrazí ladicí informace v OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tPoužije MPC-HC jako podřízený proces\n/reset\t\tObnoví výchozí nastavení\n/help /h /?\tZobrazí tento dialog\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Horní zadní pravý" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Obnovit statistiku zobrazení" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Titulky::Ostatní" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Skrýt okraje" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Pouze rámeček s videem" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Zobrazit titulek a nabídky" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Skrýt nabídku" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Pokročilé" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Nad panelem hledání" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Pod panelem hledání" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Ostatní zvukové formáty" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Seznam stop" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Při analýze zadané snímkové frekvence došlo k chybě!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Pohyb po snímcích není podporován, zkuste použít jiný video renderer." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Než budete moci nová nastavení vyzkoušet, musíte je aplikovat." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Po přehrání: Zavřít přehrávač" @@ -3495,7 +3523,7 @@ msgstr "Po přehrání: Vypnout monitor" msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" msgid "After Playback: Play next file in the folder" -msgstr "Po přehráni: Přehrát další soubor v adresáři" +msgstr "Po přehrání: Přehrát další soubor v adresáři" msgctxt "IDS_AFTERPLAYBACK_DONOTHING" msgid "After Playback: Do nothing" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.da.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.da.dialogs.po new file mode 100644 index 00000000000..39ab70fc227 --- /dev/null +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.da.dialogs.po @@ -0,0 +1,1695 @@ +# MPC-HC - Strings extracted from dialogs +# Copyright (C) 2002 - 2013 see Authors.txt +# This file is distributed under the same license as the MPC-HC package. +# Translators: +# Jatyrael , 2014 +# Xebika , 2014-2015 +# Jatyrael , 2014 +# scootergrisen, 2015 +# Stoffi, 2014-2015 +# Xebika , 2014 +msgid "" +msgstr "" +"Project-Id-Version: MPC-HC\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-20 01:31+0000\n" +"Last-Translator: scootergrisen\n" +"Language-Team: Danish (http://www.transifex.com/projects/p/mpc-hc/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgctxt "IDD_SELECTMEDIATYPE_CAPTION" +msgid "Select Media Type" +msgstr "Vælg medietype" + +msgctxt "IDD_SELECTMEDIATYPE_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_SELECTMEDIATYPE_IDCANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDD_CAPTURE_DLG_IDC_STATIC1" +msgid "Video" +msgstr "Video" + +msgctxt "IDD_CAPTURE_DLG_IDC_BUTTON1" +msgid "Set" +msgstr "Anvend" + +msgctxt "IDD_CAPTURE_DLG_IDC_STATIC" +msgid "Audio" +msgstr "Lyd" + +msgctxt "IDD_CAPTURE_DLG_IDC_STATIC" +msgid "Output" +msgstr "Output" + +msgctxt "IDD_CAPTURE_DLG_IDC_CHECK1" +msgid "Record Video" +msgstr "Indspil video" + +msgctxt "IDD_CAPTURE_DLG_IDC_CHECK2" +msgid "Preview" +msgstr "Forhåndsvis" + +msgctxt "IDD_CAPTURE_DLG_IDC_CHECK3" +msgid "Record Audio" +msgstr "Indspil lyd" + +msgctxt "IDD_CAPTURE_DLG_IDC_CHECK4" +msgid "Preview" +msgstr "Forhåndsvis" + +msgctxt "IDD_CAPTURE_DLG_IDC_STATIC" +msgid "V/A Buffers:" +msgstr "V/A buffere:" + +msgctxt "IDD_CAPTURE_DLG_IDC_CHECK5" +msgid "Audio to wav" +msgstr "Lyd til wav" + +msgctxt "IDD_CAPTURE_DLG_IDC_BUTTON2" +msgid "Record" +msgstr "Indspil" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK2" +msgid "Enable built-in audio switcher filter (requires restart)" +msgstr "Aktivér indbygget lyd-omskifter filter (kræver genstart)" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK5" +msgid "Normalize" +msgstr "Normaliser" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC4" +msgid "Max amplification:" +msgstr "Største forstærkning:" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC5" +msgid "%" +msgstr "%" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK6" +msgid "Regain volume" +msgstr "Genvind lydstyrke" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC6" +msgid "Boost:" +msgstr "Forstærk:" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK3" +msgid "Down-sample to 44100 Hz" +msgstr "Down-sample til 44100 Hz" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK4" +msgid "Audio time shift (ms):" +msgstr "Forskydelse af lyd (ms):" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK1" +msgid "Enable custom channel mapping" +msgstr "Aktivér brugerdefineret kanalkort" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" +msgid "Speaker configuration for" +msgstr "Højtaleropsætning til" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" +msgid "input channels:" +msgstr "indgangskanaler:" + +msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" +msgid "Hold shift for immediate changes when clicking something" +msgstr "Hold skift-knappen nede mens du klikker, for at foretage ændringer med det samme" + +msgctxt "IDD_GOTO_DLG_CAPTION" +msgid "Go To..." +msgstr "Gå til..." + +msgctxt "IDD_GOTO_DLG_IDC_STATIC" +msgid "Enter a timecode using the format [hh:]mm:ss.ms to jump to a specified time. You do not need to enter the separators explicitly." +msgstr "Indtast en tidskode med formatet [tt:]mm:ss.ms for at gå til et bestemt tidspunkt. Du behøver ikke indtaste separatorerne eksplicit." + +msgctxt "IDD_GOTO_DLG_IDC_STATIC" +msgid "Time" +msgstr "Tid" + +msgctxt "IDD_GOTO_DLG_IDC_OK1" +msgid "Go!" +msgstr "Gå!" + +msgctxt "IDD_GOTO_DLG_IDC_STATIC" +msgid "Enter two numbers to jump to a specified frame, the first is the frame number, the second is the frame rate." +msgstr "Indtast to tal for at gå til et bestemt billede, det første er billednummeret, det andet er billedhastigheden." + +msgctxt "IDD_GOTO_DLG_IDC_STATIC" +msgid "Frame" +msgstr "Billede" + +msgctxt "IDD_GOTO_DLG_IDC_OK2" +msgid "Go!" +msgstr "Gå!" + +msgctxt "IDD_OPEN_DLG_CAPTION" +msgid "Open" +msgstr "Åbn" + +msgctxt "IDD_OPEN_DLG_IDC_STATIC" +msgid "Type the address of a movie or audio file (on the Internet or your computer) and the player will open it for you." +msgstr "Indtast adressen til en film- eller lydfil (på internettet eller din computer) og afspilleren vil åbne den for dig." + +msgctxt "IDD_OPEN_DLG_IDC_STATIC" +msgid "Open:" +msgstr "Åbn:" + +msgctxt "IDD_OPEN_DLG_IDC_BUTTON1" +msgid "Browse..." +msgstr "Gennemse..." + +msgctxt "IDD_OPEN_DLG_IDC_STATIC1" +msgid "Dub:" +msgstr "Dub:" + +msgctxt "IDD_OPEN_DLG_IDC_BUTTON2" +msgid "Browse..." +msgstr "Gennemse..." + +msgctxt "IDD_OPEN_DLG_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_OPEN_DLG_IDCANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDD_OPEN_DLG_IDC_CHECK1" +msgid "Add to playlist without opening" +msgstr "Føj til spilleliste uden at åbne" + +msgctxt "IDD_ABOUTBOX_CAPTION" +msgid "About" +msgstr "Om" + +msgctxt "IDD_ABOUTBOX_IDC_AUTHORS_LINK" +msgid "Copyright © 2002-2015 see Authors.txt" +msgstr "Copyright © 2002-2015 se Authors.txt" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "This program is freeware and released under the GNU General Public License." +msgstr "Dette program er freeware og udgivet under GNU General Public License." + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "English translation made by MPC-HC Team" +msgstr "Dansk oversættelse af dansk MPC-HC team" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "Build information" +msgstr "Build-oplysninger" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "Version:" +msgstr "Version:" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "Compiler:" +msgstr "Compiler:" + +msgctxt "IDD_ABOUTBOX_IDC_LAVFILTERS_VERSION" +msgid "Not used" +msgstr "Ikke brugt" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "Build date:" +msgstr "Build dato:" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "Operating system" +msgstr "Styresystem" + +msgctxt "IDD_ABOUTBOX_IDC_STATIC" +msgid "Name:" +msgstr "Navn:" + +msgctxt "IDD_ABOUTBOX_IDC_BUTTON1" +msgid "Copy to clipboard" +msgstr "Kopiér til udklipsholder" + +msgctxt "IDD_ABOUTBOX_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" +msgid "Open options" +msgstr "Åbn indstillinger" + +msgctxt "IDD_PPAGEPLAYER_IDC_RADIO1" +msgid "Use the same player for each media file" +msgstr "Brug den samme afspiller til alle mediefiler" + +msgctxt "IDD_PPAGEPLAYER_IDC_RADIO2" +msgid "Open a new player for each media file played" +msgstr "Åbn en ny afspiller til hver afspillet mediefil" + +msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" +msgid "Language" +msgstr "Sprog" + +msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" +msgid "Title bar" +msgstr "Titellinje" + +msgctxt "IDD_PPAGEPLAYER_IDC_RADIO3" +msgid "Display full path" +msgstr "Vis hele stien" + +msgctxt "IDD_PPAGEPLAYER_IDC_RADIO4" +msgid "File name only" +msgstr "Kun filnavn" + +msgctxt "IDD_PPAGEPLAYER_IDC_RADIO5" +msgid "Don't prefix anything" +msgstr "Ingen præfiks" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK13" +msgid "Replace file name with title" +msgstr "Erstat filnavn med titel" + +msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" +msgid "Other" +msgstr "Andre" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK3" +msgid "Tray icon" +msgstr "Proceslinje ikon" + +msgctxt "IDD_PPAGEPLAYER_IDC_SHOW_OSD" +msgid "Show OSD (requires restart)" +msgstr "Vis OSD (kræver genstart)" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK4" +msgid "Limit window proportions on resize" +msgstr "Lås vinduesformat ved størrelsesændring" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK12" +msgid "Snap to desktop edges" +msgstr "Fastgør til kanten af skrivebord" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK8" +msgid "Store settings in .ini file" +msgstr "Gem indstillinger i .ini-fil" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK10" +msgid "Disable \"Open Disc\" menu" +msgstr "Aktivér \"Åbn disk\" menu" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK9" +msgid "Process priority above normal" +msgstr "Proces-prioritet over normal" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK14" +msgid "Enable cover-art support" +msgstr "Aktivér cover-art understøttelse" + +msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" +msgid "History" +msgstr "Historik" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK1" +msgid "Keep history of recently opened files" +msgstr "Bevar historik af senest åbnede filer" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK2" +msgid "Remember last playlist" +msgstr "Husk sidste spilleliste" + +msgctxt "IDD_PPAGEPLAYER_IDC_FILE_POS" +msgid "Remember File position" +msgstr "Husk filplacering" + +msgctxt "IDD_PPAGEPLAYER_IDC_DVD_POS" +msgid "Remember DVD position" +msgstr "Husk DVD placering" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK6" +msgid "Remember last window position" +msgstr "Husk sidste vinduesplacering" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK7" +msgid "Remember last window size" +msgstr "Husk den sidste vinduestørrelse" + +msgctxt "IDD_PPAGEPLAYER_IDC_CHECK11" +msgid "Remember last Pan-n-Scan Zoom" +msgstr "Husk sidste pan-og-scan zoom" + +msgctxt "IDD_PPAGEDVD_IDC_STATIC" +msgid "\"Open DVD/BD\" behavior" +msgstr "\"Åbn DVD/BD\" opførsel" + +msgctxt "IDD_PPAGEDVD_IDC_RADIO1" +msgid "Prompt for location" +msgstr "Spørg efter placering" + +msgctxt "IDD_PPAGEDVD_IDC_RADIO2" +msgid "Always open the default location:" +msgstr "Åbn altid standardplaceringen:" + +msgctxt "IDD_PPAGEDVD_IDC_STATIC" +msgid "Preferred language for DVD Navigator and the external OGM Splitter" +msgstr "Foretrukket sprog til DVD-navigator og den eksterne OGM-splitter" + +msgctxt "IDD_PPAGEDVD_IDC_RADIO3" +msgid "Menu" +msgstr "Menu" + +msgctxt "IDD_PPAGEDVD_IDC_RADIO4" +msgid "Audio" +msgstr "Lyd" + +msgctxt "IDD_PPAGEDVD_IDC_RADIO5" +msgid "Subtitles" +msgstr "Undertekster" + +msgctxt "IDD_PPAGEDVD_IDC_STATIC" +msgid "Additional settings" +msgstr "Yderligere indstillinger" + +msgctxt "IDD_PPAGEDVD_IDC_CHECK2" +msgid "Allow closed captions in \"Line 21 Decoder\"" +msgstr "Tillad undertekster i \"Line 21 Decoder\"" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Audio" +msgstr "Lyd" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Volume" +msgstr "Lydstyrke" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Min" +msgstr "Min" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Max" +msgstr "Max" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC_BALANCE" +msgid "Balance" +msgstr "Balance" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "L" +msgstr "V" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "R" +msgstr "H" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Playback" +msgstr "Afspilning" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_RADIO1" +msgid "Play" +msgstr "Afspil" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_RADIO2" +msgid "Repeat forever" +msgstr "Gentag uendeligt" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC1" +msgid "time(s)" +msgstr "gang(e)" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "After Playback" +msgstr "Efter afspilning" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Output" +msgstr "Output" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK5" +msgid "Auto-zoom:" +msgstr "Auto-zoom:" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC2" +msgid "Auto fit factor:" +msgstr "Automatisk tilpasningsfaktor:" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC3" +msgid "%" +msgstr "%" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Default track preference" +msgstr "Standard spor-indstilling" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Subtitles:" +msgstr "Undertekster:" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Audio:" +msgstr "Lyd:" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK4" +msgid "Allow overriding external splitter choice" +msgstr "Tillad tilsidesættelse af ekstern splitter valg" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Open settings" +msgstr "Åbn indstillinger" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK7" +msgid "Use worker thread to construct the filter graph" +msgstr "Brug arbejdstråd til at bygge filtergrafen" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK6" +msgid "Report pins which fail to render" +msgstr "Rapportér pins, der ikke kan rendere" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK2" +msgid "Auto-load audio files" +msgstr "Automatisk indlæsning af lydfiler" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK3" +msgid "Use the built-in subtitle renderer" +msgstr "Brug den indbyggede undertekst-renderer" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Control" +msgstr "Styring" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Volume step:" +msgstr "Lydstyrke trin:" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "%" +msgstr "%" + +msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" +msgid "Speed step:" +msgstr "Hastighed trin:" + +msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK3" +msgid "Override placement" +msgstr "Tilsidesæt placering" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC1" +msgid "Horizontal:" +msgstr "Vandret:" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC2" +msgid "%" +msgstr "%" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC3" +msgid "Vertical:" +msgstr "Lodret:" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC4" +msgid "%" +msgstr "%" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "Delay step" +msgstr "Forsinkelse trin" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "ms" +msgstr "ms" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "Texture settings (open the video again to see the changes)" +msgstr "Strukturindstillinger (genåbn videoen for at se ændringerne)" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "Sub pictures to buffer:" +msgstr "Undertekst-billeder til buffer:" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "Maximum texture resolution:" +msgstr "Maksimal strukturopløsning:" + +msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_NO_SUB_ANIM" +msgid "Never animate the subtitles" +msgstr "Animér aldrig underteksterne" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC5" +msgid "Render at" +msgstr "Render ved" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC6" +msgid "% of the animation" +msgstr "% af animationen" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC7" +msgid "Animate at" +msgstr "Animér ved" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC8" +msgid "% of the video frame rate" +msgstr "% af videoens billedhastighed" + +msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_ALLOW_DROPPING_SUBPIC" +msgid "Allow dropping some subpictures if the queue is running late" +msgstr "Tillad tab af nogle undertekst-billeder hvis køen er forsinket" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "Renderer Layout" +msgstr "Renderer layout" + +msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_SUB_AR_COMPENSATION" +msgid "Apply aspect ratio compensation for anamorphic videos" +msgstr "Anvend kompensation af højde-bredde-forhold ved anamorfiske videoer" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "Warning" +msgstr "Advarsel" + +msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Hvis du tilsidesætter og aktivere fuldskærm antialiasing i grafikkortets indstillinger, kommer underteksterne ikke til at se bedre ud, men der bruges betydeligt flere CPU-ressourcer." + +msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" +msgid "File extensions" +msgstr "Filtyper" + +msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON2" +msgid "Default" +msgstr "Standard" + +msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON_EXT_SET" +msgid "Set" +msgstr "Anvend" + +msgctxt "IDD_PPAGEFORMATS_IDC_STATIC3" +msgid "Association" +msgstr "Tilknytning" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK8" +msgid "Use the format-specific icons" +msgstr "Brug de format-specifikke ikoner" + +msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON1" +msgid "Run as &administrator" +msgstr "Kør som &administrator" + +msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON7" +msgid "Set as &default program" +msgstr "Indstil som &standardprogram" + +msgctxt "IDD_PPAGEFORMATS_IDC_STATIC" +msgid "Real-Time Streaming Protocol handler (for rtsp://... URLs)" +msgstr "Realtid streame protokol handler (til rtsp://... URL'er)" + +msgctxt "IDD_PPAGEFORMATS_IDC_RADIO1" +msgid "RealMedia" +msgstr "RealMedia" + +msgctxt "IDD_PPAGEFORMATS_IDC_RADIO2" +msgid "QuickTime" +msgstr "QuickTime" + +msgctxt "IDD_PPAGEFORMATS_IDC_RADIO3" +msgid "DirectShow" +msgstr "DirectShow" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK5" +msgid "Check file extension first" +msgstr "Undersøg først filtype" + +msgctxt "IDD_PPAGEFORMATS_IDC_STATIC" +msgid "Explorer Context Menu" +msgstr "Stifinder genvejsmenu" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK6" +msgid "Directory" +msgstr "Mappe" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK7" +msgid "File(s)" +msgstr "Fil(er)" + +msgctxt "IDD_PPAGEFORMATS_IDC_STATIC1" +msgid "Autoplay" +msgstr "Automatisk afspilning" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK1" +msgid "Video" +msgstr "Video" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK2" +msgid "Music" +msgstr "Musik" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK4" +msgid "DVD" +msgstr "DVD" + +msgctxt "IDD_PPAGEFORMATS_IDC_CHECK3" +msgid "Audio CD" +msgstr "Lyd CD" + +msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" +msgid "Jump distances (small, medium, large in ms)" +msgstr "\"Gå til\"-afstande (lille, medium, stor i ms)" + +msgctxt "IDD_PPAGETWEAKS_IDC_BUTTON1" +msgid "Default" +msgstr "Standard" + +msgctxt "IDD_PPAGETWEAKS_IDC_FASTSEEK_CHECK" +msgid "Fast seek (on keyframe)" +msgstr "Hurtig søgning (efter keyframe)" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK2" +msgid "Show chapter marks in seek bar" +msgstr "Vis kapitel-mærker i søgelinje" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK4" +msgid "Display \"Now Playing\" information in Skype's mood message" +msgstr "Vis \"Spiller nu\" oplysninger i Skype's stemningsmeddelelse" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK6" +msgid "Prevent minimizing the player when in fullscreen on a non default monitor" +msgstr "Forhindre minimering af afspilleren i fuldskærm-tilstand på en ikke-standard monitor" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK_WIN7" +msgid "Use Windows 7 Taskbar features" +msgstr "Brug Windows 7 proceslinje funktioner" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Åbn næste/forrige fil i mappe ved \"Spring tilbage/fremad\" når der kun er ét element i spillelisten" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" +msgid "Show time tooltip:" +msgstr "Vis værktøjstip om tid:" + +msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" +msgid "OSD font:" +msgstr "OSD skrifttype:" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK_LCD" +msgid "Enable Logitech LCD support (experimental)" +msgstr "Aktivér understøttelse af Logitech LCD (eksperimental)" + +msgctxt "IDD_PPAGETWEAKS_IDC_CHECK3" +msgid "Auto-hide the mouse pointer during playback in windowed mode" +msgstr "Skjul automatisk musemarkøren under afspilning i vindue-tilstand" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON1" +msgid "Add Filter..." +msgstr "Tilføj filter..." + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON2" +msgid "Remove" +msgstr "Fjern" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_RADIO1" +msgid "Prefer" +msgstr "Foretræk" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_RADIO2" +msgid "Block" +msgstr "Blokér" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_RADIO3" +msgid "Set merit:" +msgstr "Angiv værdi:" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON3" +msgid "Up" +msgstr "Op" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON4" +msgid "Down" +msgstr "Ned" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON5" +msgid "Add Media Type..." +msgstr "Tilføj medietype..." + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON6" +msgid "Add Sub Type..." +msgstr "Tilføj undertype..." + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON7" +msgid "Delete" +msgstr "Slet" + +msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON8" +msgid "Reset List" +msgstr "Nulstil liste" + +msgctxt "IDD_FILEPROPDETAILS_IDC_STATIC" +msgid "Type:" +msgstr "Type:" + +msgctxt "IDD_FILEPROPDETAILS_IDC_STATIC" +msgid "Size:" +msgstr "Størrelse:" + +msgctxt "IDD_FILEPROPDETAILS_IDC_STATIC" +msgid "Media length:" +msgstr "Medie varighed:" + +msgctxt "IDD_FILEPROPDETAILS_IDC_STATIC" +msgid "Video size:" +msgstr "Video størrelse:" + +msgctxt "IDD_FILEPROPDETAILS_IDC_STATIC" +msgid "Created:" +msgstr "Oprettet:" + +msgctxt "IDD_FILEPROPCLIP_IDC_STATIC" +msgid "Clip:" +msgstr "Klip:" + +msgctxt "IDD_FILEPROPCLIP_IDC_STATIC" +msgid "Author:" +msgstr "Forfatter:" + +msgctxt "IDD_FILEPROPCLIP_IDC_STATIC" +msgid "Copyright:" +msgstr "Copyright:" + +msgctxt "IDD_FILEPROPCLIP_IDC_STATIC" +msgid "Rating:" +msgstr "Klassificering:" + +msgctxt "IDD_FILEPROPCLIP_IDC_STATIC" +msgid "Location:" +msgstr "Placering:" + +msgctxt "IDD_FILEPROPCLIP_IDC_STATIC" +msgid "Description:" +msgstr "Beskrivelse:" + +msgctxt "IDD_FAVADD_CAPTION" +msgid "Add Favorite" +msgstr "Tilføj favorit" + +msgctxt "IDD_FAVADD_IDC_STATIC" +msgid "Choose a name for your shortcut:" +msgstr "Vælg et navn til din genvej:" + +msgctxt "IDD_FAVADD_IDC_CHECK1" +msgid "Remember position" +msgstr "Husk placering" + +msgctxt "IDD_FAVADD_IDCANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDD_FAVADD_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_FAVADD_IDC_CHECK2" +msgid "Relative drive" +msgstr "Relativt drev" + +msgctxt "IDD_FAVORGANIZE_CAPTION" +msgid "Organize Favorites" +msgstr "Håndter favoritter" + +msgctxt "IDD_FAVORGANIZE_IDC_BUTTON1" +msgid "Rename" +msgstr "Omdøb" + +msgctxt "IDD_FAVORGANIZE_IDC_BUTTON3" +msgid "Move Up" +msgstr "Flyt op" + +msgctxt "IDD_FAVORGANIZE_IDC_BUTTON4" +msgid "Move Down" +msgstr "Flyt ned" + +msgctxt "IDD_FAVORGANIZE_IDC_BUTTON2" +msgid "Delete" +msgstr "Slet" + +msgctxt "IDD_FAVORGANIZE_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_PNSPRESET_DLG_CAPTION" +msgid "Pan&Scan Presets" +msgstr "Panorering og &scanning forudindstillinger" + +msgctxt "IDD_PNSPRESET_DLG_IDC_BUTTON2" +msgid "New" +msgstr "Ny" + +msgctxt "IDD_PNSPRESET_DLG_IDC_BUTTON3" +msgid "Delete" +msgstr "Slet" + +msgctxt "IDD_PNSPRESET_DLG_IDC_BUTTON4" +msgid "Up" +msgstr "Op" + +msgctxt "IDD_PNSPRESET_DLG_IDC_BUTTON5" +msgid "Down" +msgstr "Ned" + +msgctxt "IDD_PNSPRESET_DLG_IDC_BUTTON1" +msgid "&Set" +msgstr "&Anvend" + +msgctxt "IDD_PNSPRESET_DLG_IDCANCEL" +msgid "&Cancel" +msgstr "&Annuller" + +msgctxt "IDD_PNSPRESET_DLG_IDOK" +msgid "&Save" +msgstr "&Gem" + +msgctxt "IDD_PNSPRESET_DLG_IDC_STATIC" +msgid "Pos: 0.0 -> 1.0" +msgstr "Placering: 0.0 -> 1.0" + +msgctxt "IDD_PNSPRESET_DLG_IDC_STATIC" +msgid "Zoom: 0.2 -> 3.0" +msgstr "Zoom: 0.2 -> 3.0" + +msgctxt "IDD_PPAGEACCELTBL_IDC_CHECK2" +msgid "Global Media Keys" +msgstr "Globale medienøgler" + +msgctxt "IDD_PPAGEACCELTBL_IDC_BUTTON1" +msgid "Select All" +msgstr "Markér alle" + +msgctxt "IDD_PPAGEACCELTBL_IDC_BUTTON2" +msgid "Reset Selected" +msgstr "Nulstil markerede" + +msgctxt "IDD_MEDIATYPES_DLG_CAPTION" +msgid "Warning" +msgstr "Advarsel" + +msgctxt "IDD_MEDIATYPES_DLG_IDC_STATIC1" +msgid "MPC-HC could not render some of the pins in the graph, you may not have the needed codecs or filters installed on the system." +msgstr "MPC-HC kunne ikke rendere nogle af pinsene i grafen, du har muligvis ikke installeret de nødvendige codecs eller filtre på systemet." + +msgctxt "IDD_MEDIATYPES_DLG_IDC_STATIC2" +msgid "The following pin(s) failed to find a connectable filter:" +msgstr "De følgende pin(s) fandt ikke et filter der kan forbindes til:" + +msgctxt "IDD_MEDIATYPES_DLG_IDOK" +msgid "Close" +msgstr "Luk" + +msgctxt "IDD_SAVE_DLG_CAPTION" +msgid "Saving..." +msgstr "Gemmer..." + +msgctxt "IDD_SAVE_DLG_IDCANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDD_SAVETEXTFILEDIALOGTEMPL_IDC_STATIC1" +msgid "Encoding:" +msgstr "Indkodning:" + +msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_STATIC1" +msgid "Encoding:" +msgstr "Indkodning:" + +msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_STATIC" +msgid "Delay:" +msgstr "Forsinkelse:" + +msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_STATIC" +msgid "ms" +msgstr "ms" + +msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_CHECK1" +msgid "Save custom style" +msgstr "Gem brugerdefineret typografi" + +msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" +msgid "JPEG quality:" +msgstr "JPEG kvalitet:" + +msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" +msgid "Thumbnails:" +msgstr "Miniaturer:" + +msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" +msgid "rows" +msgstr "rækker" + +msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" +msgid "columns" +msgstr "kolonner" + +msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" +msgid "Image width:" +msgstr "Billedbredde:" + +msgctxt "IDD_SAVETHUMBSDIALOGTEMPL_IDC_STATIC" +msgid "pixels" +msgstr "pixels" + +msgctxt "IDD_ADDREGFILTER_CAPTION" +msgid "Select Filter" +msgstr "Vælg filter" + +msgctxt "IDD_ADDREGFILTER_IDC_BUTTON1" +msgid "Browse..." +msgstr "Gennemse..." + +msgctxt "IDD_ADDREGFILTER_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_ADDREGFILTER_IDCANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Font" +msgstr "Skrifttype" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_BUTTON1" +msgid "Font" +msgstr "Skrifttype" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Spacing" +msgstr "Mellemrum" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Angle (z,°)" +msgstr "Vinkel (z,°)" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Scale (x,%)" +msgstr "Skalér (x,%)" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Scale (y,%)" +msgstr "Skalér (y,%)" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Border Style" +msgstr "Kant typografi" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_RADIO1" +msgid "Outline" +msgstr "Omrids" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_RADIO2" +msgid "Opaque box" +msgstr "Synlig boks" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Width" +msgstr "Bredde" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Shadow" +msgstr "Skygge" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Screen Alignment && Margins" +msgstr "Skærmjustering og margener" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Left" +msgstr "Venstre" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Right" +msgstr "Højre" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Top" +msgstr "Top" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Bottom" +msgstr "Bund" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_CHECK_RELATIVETO" +msgid "Position subtitles relative to the video frame" +msgstr "Placer undertekster i forhold til videobilledet" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Colors && Transparency" +msgstr "Farver og transparens" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "0%" +msgstr "0%" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "100%" +msgstr "100%" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Primary" +msgstr "Primær" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Secondary" +msgstr "Sekundær" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" +msgid "Outline" +msgstr "Omrids" + +msgctxt "IDD_PPAGESUBSTYLE_IDC_CHECK1" +msgid "Link alpha channels" +msgstr "Lås gennemsigtighed" + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_STATIC" +msgid "If you would like to use the stand-alone versions of these filters or another replacement, disable them here." +msgstr "Hvis du ønsker at bruge selvstændige udgaver af disse filtre, eller andre erstatninger, så deaktivér dem her." + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_STATIC" +msgid "Source Filters" +msgstr "Kilde filtre" + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_STATIC" +msgid "Transform Filters" +msgstr "Transformering filtre" + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_STATIC" +msgid "Internal LAV Filters settings" +msgstr "Interne LAV Filters indstillinger" + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_SPLITTER_CONF" +msgid "Splitter" +msgstr "Splitter" + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_VIDEO_DEC_CONF" +msgid "Video decoder" +msgstr "Video-dekoder" + +msgctxt "IDD_PPAGEINTERNALFILTERS_IDC_AUDIO_DEC_CONF" +msgid "Audio decoder" +msgstr "Lyd-dekoder" + +msgctxt "IDD_PPAGELOGO_IDC_RADIO1" +msgid "Internal:" +msgstr "Intern:" + +msgctxt "IDD_PPAGELOGO_IDC_RADIO2" +msgid "External:" +msgstr "Ekstern:" + +msgctxt "IDD_PPAGELOGO_IDC_BUTTON2" +msgid "Browse..." +msgstr "Gennemse..." + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "DirectShow Video" +msgstr "DirectShow Video" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "RealMedia Video" +msgstr "RealMedia Video" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "QuickTime Video" +msgstr "QuickTime Video" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Audio Renderer" +msgstr "Lyd-renderer" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "VMR-7/VMR-9 (renderless) and EVR (CP) settings" +msgstr "VMR-7/VMR-9 (renderless) og EVR (CP) indstillinger" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Surface:" +msgstr "Overflade:" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Resizer:" +msgstr "Gensampling:" + +msgctxt "IDD_PPAGEOUTPUT_IDC_D3D9DEVICE" +msgid "Select D3D9 Render Device" +msgstr "Vælg D3D9 rendere enhed" + +msgctxt "IDD_PPAGEOUTPUT_IDC_RESETDEVICE" +msgid "Reinitialize when changing display" +msgstr "Initialiser igen ved ændring af visning" + +msgctxt "IDD_PPAGEOUTPUT_IDC_FULLSCREEN_MONITOR_CHECK" +msgid "D3D Fullscreen" +msgstr "D3D fuldskærm" + +msgctxt "IDD_PPAGEOUTPUT_IDC_DSVMR9ALTERNATIVEVSYNC" +msgid "Alternative VSync" +msgstr "Alternativ lodret synk." + +msgctxt "IDD_PPAGEOUTPUT_IDC_DSVMR9LOADMIXER" +msgid "VMR-9 Mixer Mode" +msgstr "VMR-9 mixer-tilstand" + +msgctxt "IDD_PPAGEOUTPUT_IDC_DSVMR9YUVMIXER" +msgid "YUV Mixing" +msgstr "YUV mixing" + +msgctxt "IDD_PPAGEOUTPUT_IDC_EVR_BUFFERS_TXT" +msgid "EVR Buffers:" +msgstr "EVR buffere:" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "DXVA" +msgstr "DXVA" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Subtitles *" +msgstr "Undertekster *" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Screenshot" +msgstr "Skærmbillede" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Shaders" +msgstr "Shadere" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "Rotation" +msgstr "Rotation" + +msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" +msgid "* External filters (such as VSFilter) can display subtitles on all renderers." +msgstr "* Eksterne filtre (såsom VSFilter) kan vise undertekster på alle renderere." + +msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK1" +msgid "Listen on port:" +msgstr "Lyt på port:" + +msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC1" +msgid "Launch in web browser..." +msgstr "Åbn i webbrowser..." + +msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK3" +msgid "Enable compression" +msgstr "Aktivér komprimering" + +msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK5" +msgid "Allow access from localhost only" +msgstr "Tillad kun adgang fra localhost" + +msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK2" +msgid "Print debug information" +msgstr "Vis fejlfindingsoplysninger" + +msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK4" +msgid "Serve pages from:" +msgstr "Vis sider fra:" + +msgctxt "IDD_PPAGEWEBSERVER_IDC_BUTTON1" +msgid "Browse..." +msgstr "Gennemse..." + +msgctxt "IDD_PPAGEWEBSERVER_IDC_BUTTON2" +msgid "Deploy..." +msgstr "Installer..." + +msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC" +msgid "Default page:" +msgstr "Standardside:" + +msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC" +msgid "CGI handlers: (.ext1=path1;.ext2=path2;...)" +msgstr "CGI handlere: (.filtype1=sti1;.filtype2=sti2;...)" + +msgctxt "IDD_SUBTITLEDL_DLG_CAPTION" +msgid "Subtitles available online" +msgstr "Undertekster tilgængelige online" + +msgctxt "IDD_SUBTITLEDL_DLG_IDOK" +msgid "Download && Open" +msgstr "Download og åbn" + +msgctxt "IDD_SUBTITLEDL_DLG_IDC_CHECK1" +msgid "Replace currently loaded subtitles" +msgstr "Erstat nuværende indlæste undertekster" + +msgctxt "IDD_FILEPROPRES_IDC_BUTTON1" +msgid "Save As..." +msgstr "Gem som..." + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Color controls (for VMR-9, EVR and madVR)" +msgstr "Farveindstillinger (til VMR-9, EVR og madVR)" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Brightness" +msgstr "Lysstyrke" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Contrast" +msgstr "Kontrast" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Hue" +msgstr "Farvetone" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Saturation" +msgstr "Mætning" + +msgctxt "IDD_PPAGEMISC_IDC_RESET" +msgid "Reset" +msgstr "Nulstil" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Update check" +msgstr "Søg efter opdatering" + +msgctxt "IDD_PPAGEMISC_IDC_CHECK1" +msgid "Enable automatic update check" +msgstr "Aktivér automatisk søgning efter opdatering" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC5" +msgid "Check every:" +msgstr "Kontrollér hver:" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC6" +msgid "day(s)" +msgstr "dag(e)" + +msgctxt "IDD_PPAGEMISC_IDC_STATIC" +msgid "Settings management" +msgstr "Håndtering af indstillinger" + +msgctxt "IDD_PPAGEMISC_IDC_RESET_SETTINGS" +msgid "Reset" +msgstr "Nulstil" + +msgctxt "IDD_PPAGEMISC_IDC_EXPORT_SETTINGS" +msgid "Export" +msgstr "Eksportér" + +msgctxt "IDD_PPAGEMISC_IDC_EXPORT_KEYS" +msgid "Export keys" +msgstr "Eksportér nøgler" + +msgctxt "IDD_TUNER_SCAN_CAPTION" +msgid "Tuner scan" +msgstr "Tuner scanning" + +msgctxt "IDD_TUNER_SCAN_ID_START" +msgid "Start" +msgstr "Start" + +msgctxt "IDD_TUNER_SCAN_IDCANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDD_TUNER_SCAN_IDC_STATIC" +msgid "Freq. Start" +msgstr "Frekv. start" + +msgctxt "IDD_TUNER_SCAN_IDC_STATIC" +msgid "Bandwidth" +msgstr "Båndbredde" + +msgctxt "IDD_TUNER_SCAN_IDC_STATIC" +msgid "Freq. End" +msgstr "Frekv. slut" + +msgctxt "IDD_TUNER_SCAN_IDC_CHECK_IGNORE_ENCRYPTED" +msgid "Ignore encrypted channels" +msgstr "Ignorer krypterede kanaler" + +msgctxt "IDD_TUNER_SCAN_ID_SAVE" +msgid "Save" +msgstr "Gem" + +msgctxt "IDD_TUNER_SCAN_IDC_STATIC" +msgid "S" +msgstr "S" + +msgctxt "IDD_TUNER_SCAN_IDC_STATIC" +msgid "Q" +msgstr "Q" + +msgctxt "IDD_TUNER_SCAN_IDC_CHECK_OFFSET" +msgid "Use an offset" +msgstr "Anvend udligning" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC" +msgid "Default Device" +msgstr "Standardenhed" + +msgctxt "IDD_PPAGECAPTURE_IDC_RADIO1" +msgid "Analog" +msgstr "Analog" + +msgctxt "IDD_PPAGECAPTURE_IDC_RADIO2" +msgid "Digital" +msgstr "Digital" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC" +msgid "Analog settings" +msgstr "Analoge indstillinger" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC1" +msgid "Video" +msgstr "Video" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC2" +msgid "Audio" +msgstr "Lyd" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC3" +msgid "Country" +msgstr "Land" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC" +msgid "Digital settings (BDA)" +msgstr "Digitale indstillinger (BDA)" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC4" +msgid "Network Provider" +msgstr "Netværksudbyder" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC5" +msgid "Tuner" +msgstr "Tuner" + +msgctxt "IDD_PPAGECAPTURE_IDC_STATIC6" +msgid "Receiver" +msgstr "Modtager" + +msgctxt "IDD_PPAGECAPTURE_IDC_PPAGECAPTURE_ST10" +msgid "Channel switching approach:" +msgstr "Kanal skift tilgang:" + +msgctxt "IDD_PPAGECAPTURE_IDC_PPAGECAPTURE_ST11" +msgid "Rebuild filter graph" +msgstr "Genopbyg filtergraf" + +msgctxt "IDD_PPAGECAPTURE_IDC_PPAGECAPTURE_ST12" +msgid "Stop filter graph" +msgstr "Stop filtergrafen" + +msgctxt "IDD_PPAGESYNC_IDC_SYNCVIDEO" +msgid "Sync video to display" +msgstr "Synkroniser video til billede" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC1" +msgid "Frequency adjustment:" +msgstr "Frekvensjustering:" + +msgctxt "IDD_PPAGESYNC_IDC_SYNCDISPLAY" +msgid "Sync display to video" +msgstr "Synkroniser billede til video" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC2" +msgid "Frequency adjustment:" +msgstr "Frekvensjustering:" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC3" +msgid "lines" +msgstr "linjer" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC4" +msgid "columns" +msgstr "kolonner" + +msgctxt "IDD_PPAGESYNC_IDC_SYNCNEAREST" +msgid "Present at nearest VSync" +msgstr "Til stede ved nærmeste lodret synkronisering" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC5" +msgid "Target sync offset:" +msgstr "Målret synk. forskydning:" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC6" +msgid "ms" +msgstr "ms" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC7" +msgid "Control limits:" +msgstr "Tolerance:" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC8" +msgid "+/-" +msgstr "+/-" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC9" +msgid "ms" +msgstr "ms" + +msgctxt "IDD_PPAGESYNC_IDC_STATIC10" +msgid "Changes take effect after the playback has been closed and restarted." +msgstr "Ændringerne træder i kraft efter afspilningen er blevet lukket eller genstartet." + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK1" +msgid "Launch files in fullscreen" +msgstr "Start filer i fuldskærm" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK4" +msgid "Hide controls in fullscreen" +msgstr "Skjul kontrolelementer i fuldskærm" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC1" +msgid "ms" +msgstr "ms" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK6" +msgid "Hide docked panels" +msgstr "Skjul forankret paneler" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK5" +msgid "Exit fullscreen at the end of playback" +msgstr "Afslut fuldskærm når afspilning er færdig" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC" +msgid "Fullscreen monitor" +msgstr "Fuldskærm monitor" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK2" +msgid "Use autochange fullscreen monitor mode" +msgstr "Brug automatisk skift af fuldskærm monitor-tilstand" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_BUTTON1" +msgid "Add" +msgstr "Tilføj" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_BUTTON2" +msgid "Del" +msgstr "Slet" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_BUTTON3" +msgid "Up" +msgstr "Op" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_BUTTON4" +msgid "Down" +msgstr "Ned" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK3" +msgid "Apply default monitor mode on fullscreen exit" +msgstr "Anvend standard monitor-tilstand ved afslutning af fuldskærm" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_RESTORERESCHECK" +msgid "Restore resolution on program exit" +msgstr "Genskab opløsning ved lukning af program" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC" +msgid "Delay" +msgstr "Forsinkelse" + +msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC2" +msgid "s" +msgstr "s" + +msgctxt "IDD_NAVIGATION_DLG_IDC_NAVIGATION_INFO" +msgid "Info" +msgstr "Info" + +msgctxt "IDD_NAVIGATION_DLG_IDC_NAVIGATION_SCAN" +msgid "Scan" +msgstr "Scan" + +msgctxt "IDD_PPAGESUBMISC_IDC_CHECK1" +msgid "Prefer forced and/or default subtitles tracks" +msgstr "Foretræk tvunget og/eller standard undertekster-spor" + +msgctxt "IDD_PPAGESUBMISC_IDC_CHECK2" +msgid "Prefer external subtitles over embedded subtitles" +msgstr "Foretræk eksterne-undertekster over indlejrede-undertekster" + +msgctxt "IDD_PPAGESUBMISC_IDC_CHECK3" +msgid "Ignore embedded subtitles" +msgstr "Ignorerer indlejrede-undertekster" + +msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" +msgid "Autoload paths" +msgstr "Automatisk indlæsning af stier" + +msgctxt "IDD_PPAGESUBMISC_IDC_BUTTON1" +msgid "Reset" +msgstr "Nulstil" + +msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" +msgid "Online database" +msgstr "Online database" + +msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" +msgid "Base URL of the online subtitle database:" +msgstr "URL-rodadresse til online database med undertekster:" + +msgctxt "IDD_PPAGESUBMISC_IDC_BUTTON2" +msgid "Test" +msgstr "Test" + +msgctxt "IDD_UPDATE_DIALOG_CAPTION" +msgid "Update Checker" +msgstr "Søgning efter opdatering" + +msgctxt "IDD_UPDATE_DIALOG_IDC_UPDATE_DL_BUTTON" +msgid "&Download now" +msgstr "&Download nu" + +msgctxt "IDD_UPDATE_DIALOG_IDC_UPDATE_LATER_BUTTON" +msgid "Remind me &later" +msgstr "Påmind mig &senere" + +msgctxt "IDD_UPDATE_DIALOG_IDC_UPDATE_IGNORE_BUTTON" +msgid "&Ignore this update" +msgstr "&Ignorer denne opdatering" + +msgctxt "IDD_PPAGESHADERS_IDC_STATIC" +msgid "Shaders contain special effects which can be added to the video rendering process." +msgstr "Shadere indeholder specielle effekter, der kan tilsættes videorenderingsprocessen." + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON12" +msgid "Add shader file" +msgstr "Tilføj shader-fil" + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON13" +msgid "Remove" +msgstr "Fjern" + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON1" +msgid "Add to pre-resize" +msgstr "Føj til før-størrelsesændring" + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON2" +msgid "Add to post-resize" +msgstr "Føj til efter-størrelsesændring" + +msgctxt "IDD_PPAGESHADERS_IDC_STATIC" +msgid "Shader presets" +msgstr "Shader forudindstillinger" + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON3" +msgid "Load" +msgstr "Indlæs" + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON4" +msgid "Save" +msgstr "Gem" + +msgctxt "IDD_PPAGESHADERS_IDC_BUTTON5" +msgid "Delete" +msgstr "Slet" + +msgctxt "IDD_PPAGESHADERS_IDC_STATIC" +msgid "Active pre-resize shaders" +msgstr "Aktive før-størrelsesændring shadere" + +msgctxt "IDD_PPAGESHADERS_IDC_STATIC" +msgid "Active post-resize shaders" +msgstr "Aktive efter-størrelsesændring shadere" + +msgctxt "IDD_DEBUGSHADERS_DLG_CAPTION" +msgid "Debug Shaders" +msgstr "Fejlfind af shadere" + +msgctxt "IDD_DEBUGSHADERS_DLG_IDC_STATIC" +msgid "Debug Information" +msgstr "Fejlfindingsoplysninger" + +msgctxt "IDD_DEBUGSHADERS_DLG_IDC_RADIO1" +msgid "PS 2.0" +msgstr "PS 2.0" + +msgctxt "IDD_DEBUGSHADERS_DLG_IDC_RADIO2" +msgid "PS 2.0b" +msgstr "PS 2.0b" + +msgctxt "IDD_DEBUGSHADERS_DLG_IDC_RADIO3" +msgid "PS 2.0a" +msgstr "PS 2.0a" + +msgctxt "IDD_DEBUGSHADERS_DLG_IDC_RADIO4" +msgid "PS 3.0" +msgstr "PS 3.0" + +msgctxt "IDD_PPAGEADVANCED_IDC_STATIC" +msgid "Advanced Settings, do not edit unless you know what you are doing." +msgstr "Avancerede indstillinger, undlad at redigere med mindre du ved hvad du gør." + +msgctxt "IDD_PPAGEADVANCED_IDC_RADIO1" +msgid "True" +msgstr "Sand" + +msgctxt "IDD_PPAGEADVANCED_IDC_RADIO2" +msgid "False" +msgstr "Falsk" + +msgctxt "IDD_PPAGEADVANCED_IDC_BUTTON1" +msgid "Default" +msgstr "Standard" + +msgctxt "IDD_SAVEIMAGEDIALOGTEMPL_IDC_STATIC" +msgid "JPEG quality:" +msgstr "JPEG kvalitet:" + +msgctxt "IDD_CMD_LINE_HELP_CAPTION" +msgid "Command line help" +msgstr "Kommandolinje hjælp" + +msgctxt "IDD_CMD_LINE_HELP_IDOK" +msgid "OK" +msgstr "OK" + +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Fejlrapportering" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Vi beklager, men MPC-HC er holdt op med at virke. :(\n\nFor at hjælpe os med at diagnostisere problemet, vil en fejlrapport blive sendt. Du kan tilføje yderligere oplysninger hvis du vil." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Din e-mail-adresse er valgfri og vil kun blive brugt i tilfælde hvor udviklerne har brug for yderligere oplysninger fra dig." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Beskrivelse af problemet (skriv kun på engelsk):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.da.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.da.menus.po new file mode 100644 index 00000000000..0bca2596c0d --- /dev/null +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.da.menus.po @@ -0,0 +1,700 @@ +# MPC-HC - Strings extracted from menus +# Copyright (C) 2002 - 2013 see Authors.txt +# This file is distributed under the same license as the MPC-HC package. +# Translators: +# Jatyrael , 2014 +# Xebika , 2015 +# scootergrisen, 2015 +msgid "" +msgstr "" +"Project-Id-Version: MPC-HC\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 21:10+0000\n" +"Last-Translator: scootergrisen\n" +"Language-Team: Danish (http://www.transifex.com/projects/p/mpc-hc/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgctxt "POPUP" +msgid "&File" +msgstr "&Filer" + +msgctxt "ID_FILE_OPENQUICK" +msgid "&Quick Open File..." +msgstr "&Åbn fil hurtigt..." + +msgctxt "ID_FILE_OPENMEDIA" +msgid "&Open File..." +msgstr "&Åbn fil..." + +msgctxt "ID_FILE_OPENDVDBD" +msgid "Open &DVD/BD..." +msgstr "Åbn &DVD/BD..." + +msgctxt "ID_FILE_OPENDEVICE" +msgid "Open De&vice..." +msgstr "Åbn &enhed..." + +msgctxt "ID_FILE_OPENDIRECTORY" +msgid "Open Dir&ectory..." +msgstr "Åbn &mappe..." + +msgctxt "ID_FILE_OPENDISC" +msgid "O&pen Disc" +msgstr "Å&bn disk" + +msgctxt "ID_RECENT_FILES" +msgid "Recent &Files" +msgstr "Seneste &filer" + +msgctxt "ID_FILE_CLOSE_AND_RESTORE" +msgid "&Close" +msgstr "&Luk" + +msgctxt "ID_FILE_SAVE_COPY" +msgid "&Save a Copy..." +msgstr "&Gem en kopi..." + +msgctxt "ID_FILE_SAVE_IMAGE" +msgid "Save &Image..." +msgstr "Gem b&illede..." + +msgctxt "ID_FILE_SAVE_THUMBNAILS" +msgid "Save &Thumbnails..." +msgstr "Gem &miniaturer..." + +msgctxt "ID_FILE_LOAD_SUBTITLE" +msgid "&Load Subtitle..." +msgstr "&Indlæs undertekst..." + +msgctxt "ID_FILE_SAVE_SUBTITLE" +msgid "Save S&ubtitle..." +msgstr "Gem u&ndertekst..." + +msgctxt "POPUP" +msgid "Subtitle Data&base" +msgstr "U&ndertekst-database" + +msgctxt "ID_FILE_ISDB_SEARCH" +msgid "&Search..." +msgstr "&Søg..." + +msgctxt "ID_FILE_ISDB_UPLOAD" +msgid "&Upload..." +msgstr "&Upload..." + +msgctxt "ID_FILE_ISDB_DOWNLOAD" +msgid "&Download..." +msgstr "&Download..." + +msgctxt "ID_FILE_PROPERTIES" +msgid "P&roperties" +msgstr "E&genskaber" + +msgctxt "ID_FILE_EXIT" +msgid "E&xit" +msgstr "A&fslut" + +msgctxt "POPUP" +msgid "&View" +msgstr "&Vis" + +msgctxt "ID_VIEW_CAPTIONMENU" +msgid "Caption&&Menu" +msgstr "Titel- og menulinje" + +msgctxt "ID_VIEW_SEEKER" +msgid "See&k Bar" +msgstr "&Søgelinje" + +msgctxt "ID_VIEW_CONTROLS" +msgid "&Controls" +msgstr "Kont&rolelementer" + +msgctxt "ID_VIEW_INFORMATION" +msgid "&Information" +msgstr "&Oplysninger" + +msgctxt "ID_VIEW_STATISTICS" +msgid "&Statistics" +msgstr "&Statistik" + +msgctxt "ID_VIEW_STATUS" +msgid "St&atus" +msgstr "St&atus" + +msgctxt "ID_VIEW_SUBRESYNC" +msgid "Su&bresync" +msgstr "Un&dertekst gensynk." + +msgctxt "ID_VIEW_PLAYLIST" +msgid "Pla&ylist" +msgstr "&Spilleliste" + +msgctxt "ID_VIEW_CAPTURE" +msgid "Captu&re" +msgstr "Opta&g" + +msgctxt "ID_VIEW_NAVIGATION" +msgid "Na&vigation" +msgstr "Na&vigation" + +msgctxt "ID_VIEW_DEBUGSHADERS" +msgid "&Debug Shaders" +msgstr "&Fejlfind shadere" + +msgctxt "POPUP" +msgid "&Presets..." +msgstr "&Forudindstillinger..." + +msgctxt "ID_VIEW_PRESETS_MINIMAL" +msgid "&Minimal" +msgstr "&Minimal" + +msgctxt "ID_VIEW_PRESETS_COMPACT" +msgid "&Compact" +msgstr "&Kompakt" + +msgctxt "ID_VIEW_PRESETS_NORMAL" +msgid "&Normal" +msgstr "&Standard" + +msgctxt "ID_VIEW_FULLSCREEN" +msgid "F&ull Screen" +msgstr "F&uldskærm" + +msgctxt "POPUP" +msgid "&Zoom" +msgstr "&Zoom" + +msgctxt "ID_VIEW_ZOOM_50" +msgid "&50%" +msgstr "&50%" + +msgctxt "ID_VIEW_ZOOM_100" +msgid "&100%" +msgstr "&100%" + +msgctxt "ID_VIEW_ZOOM_200" +msgid "&200%" +msgstr "&200%" + +msgctxt "ID_VIEW_ZOOM_AUTOFIT" +msgid "Auto &Fit" +msgstr "Automatisk &tilpasning" + +msgctxt "ID_VIEW_ZOOM_AUTOFIT_LARGER" +msgid "Auto Fit (&Larger Only)" +msgstr "Automatisk tilpasning (&Kun større)" + +msgctxt "POPUP" +msgid "R&enderer Settings" +msgstr "R&endererindstillinger" + +msgctxt "ID_VIEW_TEARING_TEST" +msgid "&Tearing Test" +msgstr "&Iturivningstest" + +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Vis statistik" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Vis nuværende t&id" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Vis &filnavn" + +msgctxt "POPUP" +msgid "&Output Range" +msgstr "&Outputområde" + +msgctxt "ID_VIEW_EVROUTPUTRANGE_0_255" +msgid "&0 - 255" +msgstr "&0 - 255" + +msgctxt "ID_VIEW_EVROUTPUTRANGE_16_235" +msgid "&16 - 235" +msgstr "&16 - 235" + +msgctxt "POPUP" +msgid "&Presentation" +msgstr "&Præsentation" + +msgctxt "ID_VIEW_D3DFULLSCREEN" +msgid "D3D Fullscreen &Mode" +msgstr "D3D fuldskær&m-tilstand" + +msgctxt "ID_VIEW_FULLSCREENGUISUPPORT" +msgid "D3D Fullscreen &GUI Support" +msgstr "D3D fuldskærm &GUI understøttelse" + +msgctxt "ID_VIEW_HIGHCOLORRESOLUTION" +msgid "10-bit &RGB Output" +msgstr "10-bit &RGB output" + +msgctxt "ID_VIEW_FORCEINPUTHIGHCOLORRESOLUTION" +msgid "Force 10-bit RGB &Input" +msgstr "Gennemtving 10-bit RGB &input" + +msgctxt "ID_VIEW_FULLFLOATINGPOINTPROCESSING" +msgid "&Full Floating Point Processing" +msgstr "&Fuld flydende kommatal bearbejdning" + +msgctxt "ID_VIEW_HALFFLOATINGPOINTPROCESSING" +msgid "&Half Floating Point Processing" +msgstr "&Halv flydende kommatal bearbejdning" + +msgctxt "ID_VIEW_DISABLEDESKTOPCOMPOSITION" +msgid "Disable desktop composition (&Aero)" +msgstr "Deaktivér skrivebordsopbygning (&Aero)" + +msgctxt "ID_VIEW_ENABLEFRAMETIMECORRECTION" +msgid "Enable Frame Time &Correction" +msgstr "Aktivér &korrigering af billedtid " + +msgctxt "POPUP" +msgid "&Color Management" +msgstr "&Farvehåndtering" + +msgctxt "ID_VIEW_CM_ENABLE" +msgid "&Enable" +msgstr "&Aktivér" + +msgctxt "POPUP" +msgid "&Input Type" +msgstr "&Input type" + +msgctxt "ID_VIEW_CM_INPUT_AUTO" +msgid "&Auto-Detect" +msgstr "&Automatisk" + +msgctxt "ID_VIEW_CM_INPUT_HDTV" +msgid "&HDTV" +msgstr "&HDTV" + +msgctxt "ID_VIEW_CM_INPUT_SDTV_NTSC" +msgid "SDTV &NTSC" +msgstr "SDTV &NTSC" + +msgctxt "ID_VIEW_CM_INPUT_SDTV_PAL" +msgid "SDTV &PAL" +msgstr "SDTV &PAL" + +msgctxt "POPUP" +msgid "Ambient &Light" +msgstr "Omgivende &lys" + +msgctxt "ID_VIEW_CM_AMBIENTLIGHT_BRIGHT" +msgid "&Bright (2.2 Gamma)" +msgstr "&Lyst (2.2 gamma)" + +msgctxt "ID_VIEW_CM_AMBIENTLIGHT_DIM" +msgid "&Dim (2.35 Gamma)" +msgstr "Ne&dtonet (2.35 gamma)" + +msgctxt "ID_VIEW_CM_AMBIENTLIGHT_DARK" +msgid "D&ark (2.4 Gamma)" +msgstr "M&ørkt (2.4 gamma)" + +msgctxt "POPUP" +msgid "&Rendering Intent" +msgstr "&Renderingsformål" + +msgctxt "ID_VIEW_CM_INTENT_PERCEPTUAL" +msgid "&Perceptual" +msgstr "&Sanselig" + +msgctxt "ID_VIEW_CM_INTENT_RELATIVECOLORIMETRIC" +msgid "&Relative Colorimetric" +msgstr "&Relativ farvemåling" + +msgctxt "ID_VIEW_CM_INTENT_SATURATION" +msgid "&Saturation" +msgstr "&Mætning" + +msgctxt "ID_VIEW_CM_INTENT_ABSOLUTECOLORIMETRIC" +msgid "&Absolute Colorimetric" +msgstr "&Absolut farvemåling" + +msgctxt "POPUP" +msgid "&VSync" +msgstr "&Lodret synkronisering" + +msgctxt "ID_VIEW_VSYNC" +msgid "&VSync" +msgstr "&Lodret synkronisering" + +msgctxt "ID_VIEW_VSYNCACCURATE" +msgid "&Accurate VSync" +msgstr "&Præcis lodret synkronisering" + +msgctxt "ID_VIEW_ALTERNATIVEVSYNC" +msgid "A<ernative VSync" +msgstr "A<ernativ lodret synkronisering" + +msgctxt "ID_VIEW_VSYNCOFFSET_DECREASE" +msgid "&Decrease VSync Offset" +msgstr "&Forskyd lodret synkronisering -" + +msgctxt "ID_VIEW_VSYNCOFFSET_INCREASE" +msgid "&Increase VSync Offset" +msgstr "&Forskyd lodret synkronisering +" + +msgctxt "POPUP" +msgid "&GPU Control" +msgstr "&GPU styring" + +msgctxt "ID_VIEW_FLUSHGPU_BEFOREVSYNC" +msgid "Flush GPU &before VSync" +msgstr "Tøm GPU &før lodret synkronisering" + +msgctxt "ID_VIEW_FLUSHGPU_AFTERPRESENT" +msgid "Flush GPU &after Present" +msgstr "Tøm GPU &efter præsentation" + +msgctxt "ID_VIEW_FLUSHGPU_WAIT" +msgid "&Wait for flushes" +msgstr "&Vent på tømninger" + +msgctxt "POPUP" +msgid "R&eset" +msgstr "N&ulstil" + +msgctxt "ID_VIEW_RESET_DEFAULT" +msgid "Reset to &default renderer settings" +msgstr "Nulstil til &standard rendererindstillinger" + +msgctxt "ID_VIEW_RESET_OPTIMAL" +msgid "Reset to &optimal renderer settings" +msgstr "Nulstil til &optimale rendererindstillinger" + +msgctxt "POPUP" +msgid "Video &Frame" +msgstr "Video&billede" + +msgctxt "ID_VIEW_VF_HALF" +msgid "&Half Size" +msgstr "&Halv størrelse" + +msgctxt "ID_VIEW_VF_NORMAL" +msgid "&Normal Size" +msgstr "&Normal størrelse" + +msgctxt "ID_VIEW_VF_DOUBLE" +msgid "&Double Size" +msgstr "&Dobbelt størrelse" + +msgctxt "ID_VIEW_VF_STRETCH" +msgid "&Stretch To Window" +msgstr "&Stræk til vindue" + +msgctxt "ID_VIEW_VF_FROMINSIDE" +msgid "Touch Window From &Inside" +msgstr "Rør vindue &indefra" + +msgctxt "ID_VIEW_VF_ZOOM1" +msgid "Zoom &1" +msgstr "Zoom &1" + +msgctxt "ID_VIEW_VF_ZOOM2" +msgid "Zoom &2" +msgstr "Zoom &2" + +msgctxt "ID_VIEW_VF_FROMOUTSIDE" +msgid "Touch Window From &Outside" +msgstr "Rør vindue &udefra" + +msgctxt "ID_VIEW_VF_KEEPASPECTRATIO" +msgid "&Keep Aspect Ratio" +msgstr "&Bevar højde-bredde-forhold" + +msgctxt "POPUP" +msgid "Override &Aspect Ratio" +msgstr "Tilsidesæt &højde-bredde-forhold" + +msgctxt "ID_ASPECTRATIO_SOURCE" +msgid "&Default" +msgstr "&Standard" + +msgctxt "ID_ASPECTRATIO_4_3" +msgid "&4:3" +msgstr "&4:3" + +msgctxt "ID_ASPECTRATIO_5_4" +msgid "&5:4" +msgstr "&5:4" + +msgctxt "ID_ASPECTRATIO_16_9" +msgid "&16:9" +msgstr "&16:9" + +msgctxt "ID_ASPECTRATIO_235_100" +msgid "&235:100" +msgstr "&235:100" + +msgctxt "ID_ASPECTRATIO_185_100" +msgid "1&85:100" +msgstr "1&85:100" + +msgctxt "ID_VIEW_VF_COMPMONDESKARDIFF" +msgid "&Correct Monitor/Desktop AR Diff" +msgstr "&Korrigér monitor/skrivebord højde-bredde-forskelle" + +msgctxt "POPUP" +msgid "Pa&n&&Scan" +msgstr "Pa&norering og scanning" + +msgctxt "ID_VIEW_INCSIZE" +msgid "&Increase Size" +msgstr "&Større" + +msgctxt "ID_VIEW_DECSIZE" +msgid "&Decrease Size" +msgstr "&Mindre" + +msgctxt "ID_VIEW_INCWIDTH" +msgid "I&ncrease Width" +msgstr "B&reddere" + +msgctxt "ID_VIEW_DECWIDTH" +msgid "D&ecrease Width" +msgstr "S&mallere" + +msgctxt "ID_VIEW_INCHEIGHT" +msgid "In&crease Height" +msgstr "Hø&jere" + +msgctxt "ID_VIEW_DECHEIGHT" +msgid "Decre&ase Height" +msgstr "Laver&e" + +msgctxt "ID_PANSCAN_MOVERIGHT" +msgid "Move &Right" +msgstr "Flyt til &højre" + +msgctxt "ID_PANSCAN_MOVELEFT" +msgid "Move &Left" +msgstr "Flyt til &venstre" + +msgctxt "ID_PANSCAN_MOVEUP" +msgid "Move &Up" +msgstr "Flyt &op" + +msgctxt "ID_PANSCAN_MOVEDOWN" +msgid "Move &Down" +msgstr "Flyt &ned" + +msgctxt "ID_PANSCAN_CENTER" +msgid "Cen&ter" +msgstr "Cent&reret" + +msgctxt "ID_VIEW_RESET" +msgid "Re&set" +msgstr "Nu&lstil" + +msgctxt "POPUP" +msgid "On &Top" +msgstr "Øvers&t" + +msgctxt "ID_ONTOP_DEFAULT" +msgid "&Default" +msgstr "&Standard" + +msgctxt "ID_ONTOP_ALWAYS" +msgid "&Always" +msgstr "&Altid" + +msgctxt "ID_ONTOP_WHILEPLAYING" +msgid "While &Playing" +msgstr "Under &afspilning" + +msgctxt "ID_ONTOP_WHILEPLAYINGVIDEO" +msgid "While Playing &Video" +msgstr "Under afspilning af &video" + +msgctxt "ID_VIEW_OPTIONS" +msgid "&Options..." +msgstr "&Indstillinger..." + +msgctxt "POPUP" +msgid "&Play" +msgstr "&Afspil" + +msgctxt "ID_PLAY_PLAYPAUSE" +msgid "&Play/Pause" +msgstr "&Afspil/Pause" + +msgctxt "ID_PLAY_STOP" +msgid "&Stop" +msgstr "&Stop" + +msgctxt "ID_PLAY_FRAMESTEP" +msgid "F&rame Step" +msgstr "Billed&trin" + +msgctxt "ID_PLAY_DECRATE" +msgid "&Decrease Rate" +msgstr "&Langsommere" + +msgctxt "ID_PLAY_INCRATE" +msgid "&Increase Rate" +msgstr "&Hurtigere" + +msgctxt "ID_PLAY_RESETRATE" +msgid "R&eset Rate" +msgstr "N&ulstil hastighed" + +msgctxt "ID_FILTERS" +msgid "&Filters" +msgstr "&Filtre" + +msgctxt "ID_SHADERS" +msgid "S&haders" +msgstr "S&hadere" + +msgctxt "ID_AUDIOS" +msgid "&Audio Track" +msgstr "&Lydspor" + +msgctxt "ID_SUBTITLES" +msgid "Su&btitle Track" +msgstr "&Undertekstspor" + +msgctxt "ID_VIDEO_STREAMS" +msgid "&Video Track" +msgstr "&Videospor" + +msgctxt "POPUP" +msgid "&Volume" +msgstr "&Lydstyrke" + +msgctxt "ID_VOLUME_UP" +msgid "&Up" +msgstr "&Op" + +msgctxt "ID_VOLUME_DOWN" +msgid "&Down" +msgstr "&Ned" + +msgctxt "ID_VOLUME_MUTE" +msgid "&Mute" +msgstr "&Mute" + +msgctxt "POPUP" +msgid "Af&ter Playback" +msgstr "Ef&ter afspilning" + +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Gør in&tet" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Afspil &næste fil i mappen" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Sluk &monitoren" + +msgctxt "ID_AFTERPLAYBACK_EXIT" +msgid "&Exit" +msgstr "&Afslut" + +msgctxt "ID_AFTERPLAYBACK_STANDBY" +msgid "&Stand By" +msgstr "&Standby" + +msgctxt "ID_AFTERPLAYBACK_HIBERNATE" +msgid "&Hibernate" +msgstr "&Dvale" + +msgctxt "ID_AFTERPLAYBACK_SHUTDOWN" +msgid "Shut&down" +msgstr "&Luk" + +msgctxt "ID_AFTERPLAYBACK_LOGOFF" +msgid "Log &Off" +msgstr "Log &af" + +msgctxt "ID_AFTERPLAYBACK_LOCK" +msgid "&Lock" +msgstr "&Lås" + +msgctxt "POPUP" +msgid "&Navigate" +msgstr "&Naviger" + +msgctxt "ID_NAVIGATE_SKIPBACK" +msgid "&Previous" +msgstr "&Forrige" + +msgctxt "ID_NAVIGATE_SKIPFORWARD" +msgid "&Next" +msgstr "&Næste" + +msgctxt "ID_NAVIGATE_GOTO" +msgid "&Go To..." +msgstr "&Gå til..." + +msgctxt "ID_NAVIGATE_TITLEMENU" +msgid "&Title Menu" +msgstr "&Titelmenu" + +msgctxt "ID_NAVIGATE_ROOTMENU" +msgid "&Root Menu" +msgstr "&Hovedmenu" + +msgctxt "ID_NAVIGATE_SUBPICTUREMENU" +msgid "&Subtitle Menu" +msgstr "&Undertekstmenu" + +msgctxt "ID_NAVIGATE_AUDIOMENU" +msgid "&Audio Menu" +msgstr "&Lydmenu" + +msgctxt "ID_NAVIGATE_ANGLEMENU" +msgid "An&gle Menu" +msgstr "Vi&nkelmenu" + +msgctxt "ID_NAVIGATE_CHAPTERMENU" +msgid "&Chapter Menu" +msgstr "&Kapitelmenu" + +msgctxt "ID_FAVORITES" +msgid "F&avorites" +msgstr "F&avoritter" + +msgctxt "POPUP" +msgid "&Help" +msgstr "&Hjælp" + +msgctxt "ID_HELP_HOMEPAGE" +msgid "&Home Page" +msgstr "&Hjemmeside" + +msgctxt "ID_HELP_CHECKFORUPDATE" +msgid "Check for &updates" +msgstr "Søg efter &opdateringer" + +msgctxt "ID_HELP_SHOWCOMMANDLINESWITCHES" +msgid "&Command Line Switches" +msgstr "&Kommandolinjeparametre" + +msgctxt "ID_HELP_TOOLBARIMAGES" +msgid "Download &Toolbar Images" +msgstr "Hent &værktøjslinjebilleder" + +msgctxt "ID_HELP_DONATE" +msgid "&Donate" +msgstr "&Donér" + +msgctxt "ID_HELP_ABOUT" +msgid "&About..." +msgstr "&Om..." + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.da.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.da.strings.po new file mode 100644 index 00000000000..af6d82a0bcf --- /dev/null +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.da.strings.po @@ -0,0 +1,3612 @@ +# MPC-HC - Strings extracted from string tables +# Copyright (C) 2002 - 2013 see Authors.txt +# This file is distributed under the same license as the MPC-HC package. +# Translators: +# Jatyrael , 2015 +# Xebika , 2015 +# scootergrisen, 2015 +msgid "" +msgstr "" +"Project-Id-Version: MPC-HC\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-30 21:10+0000\n" +"Last-Translator: scootergrisen\n" +"Language-Team: Danish (http://www.transifex.com/projects/p/mpc-hc/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgctxt "IDS_INFOBAR_LOCATION" +msgid "Location" +msgstr "Placering" + +msgctxt "IDS_INFOBAR_VIDEO" +msgid "Video" +msgstr "Video" + +msgctxt "IDS_INFOBAR_AUDIO" +msgid "Audio" +msgstr "Lyd" + +msgctxt "IDS_INFOBAR_SUBTITLES" +msgid "Subtitles" +msgstr "Undertekster" + +msgctxt "IDS_INFOBAR_CHAPTER" +msgid "Chapter" +msgstr "Kapitel" + +msgctxt "IDS_CONTROLS_COMPLETING" +msgid "Completing..." +msgstr "Gennemfører..." + +msgctxt "IDS_AUTOPLAY_PLAYVIDEO" +msgid "Play Video" +msgstr "Afspil video" + +msgctxt "IDS_AUTOPLAY_PLAYMUSIC" +msgid "Play Music" +msgstr "Afspil Musik" + +msgctxt "IDS_AUTOPLAY_PLAYAUDIOCD" +msgid "Play Audio CD" +msgstr "Afspil lyd CD" + +msgctxt "IDS_AUTOPLAY_PLAYDVDMOVIE" +msgid "Play DVD Movie" +msgstr "Afspil DVD film" + +msgctxt "IDS_PROPSHEET_PROPERTIES" +msgid "Properties" +msgstr "Egenskaber" + +msgctxt "IDS_SUBTITLES_DEFAULT_STYLE" +msgid "&Default Style" +msgstr "&Standardtypografi" + +msgctxt "IDS_FAVFILES" +msgid "Files" +msgstr "Filer" + +msgctxt "IDS_FAVDVDS" +msgid "DVDs" +msgstr "DVD'er" + +msgctxt "IDS_INFOBAR_CHANNEL" +msgid "Channel" +msgstr "Kanal" + +msgctxt "IDS_INFOBAR_TIME" +msgid "Time" +msgstr "Tid" + +msgctxt "IDS_STATSBAR_SYNC_OFFSET" +msgid "Sync Offset" +msgstr "Synk. forskydning" + +msgctxt "IDS_STATSBAR_SYNC_OFFSET_FORMAT" +msgid "avg: %d ms, dev: %d ms" +msgstr "gennemsnit: %d ms, afvigelse: %d ms" + +msgctxt "IDS_STATSBAR_JITTER" +msgid "Jitter" +msgstr "Jitter" + +msgctxt "IDS_STATSBAR_BITRATE" +msgid "Bitrate" +msgstr "Bitrate" + +msgctxt "IDS_STATSBAR_BITRATE_AVG_CUR" +msgid "(avg/cur)" +msgstr "(gennemsnit/aktuelt)" + +msgctxt "IDS_STATSBAR_SIGNAL" +msgid "Signal" +msgstr "Signal" + +msgctxt "IDS_STATSBAR_SIGNAL_FORMAT" +msgid "Strength: %d dB, Quality: %ld%%" +msgstr "Styrke: %d dB, Kvalitet: %ld%%" + +msgctxt "IDS_SUBTITLES_STYLES_CAPTION" +msgid "Styles" +msgstr "Typografi" + +msgctxt "IDS_TEXT_SUB_RENDERING_TARGET" +msgid "If the rendering target is left undefined, SSA/ASS subtitles will be rendered relative to the video frame while all other text subtitles will be rendered relative to the window." +msgstr "Hvis renderingsdestinationen er udefineret, vil SSA/ASS-undertekster blive rendereret i forhold til videobilledet, mens alle andre tekst-undertekster vil blive rendereret i forhold til vinduet." + +msgctxt "IDS_PPAGE_CAPTURE_FG0" +msgid "Never (fastest approach)" +msgstr "Aldrig (hurtigste fremgangsmåde)" + +msgctxt "IDS_PPAGE_CAPTURE_FG1" +msgid "Only when switching different video types (default)" +msgstr "Kun når der skiftes forskellige videotyper (standard)" + +msgctxt "IDS_PPAGE_CAPTURE_FG2" +msgid "Always (slowest option)" +msgstr "Altid (langsomst)" + +msgctxt "IDS_PPAGE_CAPTURE_FGDESC0" +msgid "Not supported by some devices. Two video decoders always present in the filter graph." +msgstr "Understøttes ikke af alle enheder. To video-dekodere er altid tilstede i filtergrafen." + +msgctxt "IDS_PPAGE_CAPTURE_FGDESC1" +msgid "Fast except when switching between different video streams. Only one video decoder present in the filter graph." +msgstr "Hurtig, undtagen når der skiftes mellem forskellige video-stream. Der er kun én video-dekoder tilstede i filtergrafen." + +msgctxt "IDS_PPAGE_CAPTURE_FGDESC2" +msgid "Not recommended. Only for testing purposes." +msgstr "Anbefales ikke. Kun til testformål." + +msgctxt "IDS_PPAGE_CAPTURE_SFG0" +msgid "Never if possible (fastest, but not supported by most filters)" +msgstr "Aldrig hvis det er muligt (hurtigste, men understøttes ikke af de fleste filtre)" + +msgctxt "IDS_PPAGE_CAPTURE_SFG1" +msgid "Only when switching different video types (default)" +msgstr "Kun når der skiftes forskellige videotyper (standard)" + +msgctxt "IDS_PPAGE_CAPTURE_SFG2" +msgid "Always (may be required by some devices)" +msgstr "Altid (kan være påkrævet af nogle enheder)" + +msgctxt "IDS_INFOBAR_PARENTAL_RATING" +msgid "Parental rating" +msgstr "Forældreklassifikation" + +msgctxt "IDS_PARENTAL_RATING" +msgid "%d+" +msgstr "%d+" + +msgctxt "IDS_NO_PARENTAL_RATING" +msgid "Not rated" +msgstr "Ikke klassificeret" + +msgctxt "IDS_INFOBAR_CONTENT" +msgid "Content" +msgstr "Indhold" + +msgctxt "IDS_CONTENT_MOVIE_DRAMA" +msgid "Movie/Drama" +msgstr "Film/Drama" + +msgctxt "IDS_CONTENT_NEWS_CURRENTAFFAIRS" +msgid "News/Current affairs" +msgstr "Nyheder/Aktuelle begivenheder" + +msgctxt "IDS_SPEED_UNIT_G" +msgid "GB/s" +msgstr "GB/s" + +msgctxt "IDS_FILE_FAV_ADDED" +msgid "File added to favorites" +msgstr "Filen blev føjet til favoritter" + +msgctxt "IDS_DVD_FAV_ADDED" +msgid "DVD added to favorites" +msgstr "DVD føjet til favoritter" + +msgctxt "IDS_CAPTURE_SETTINGS" +msgid "Capture Settings" +msgstr "Indspilningsindstillinger" + +msgctxt "IDS_NAVIGATION_BAR" +msgid "Navigation Bar" +msgstr "Navigationslinje" + +msgctxt "IDS_SUBRESYNC_CAPTION" +msgid "Subresync" +msgstr "Undertekst gensynk." + +msgctxt "IDS_SUBRESYNC_CLN_TIME" +msgid "Time" +msgstr "Tid" + +msgctxt "IDS_SUBRESYNC_CLN_END" +msgid "End" +msgstr "Slut" + +msgctxt "IDS_SUBRESYNC_CLN_PREVIEW" +msgid "Preview" +msgstr "Forhåndsvis" + +msgctxt "IDS_SUBRESYNC_CLN_VOB_ID" +msgid "Vob ID" +msgstr "Vob ID" + +msgctxt "IDS_SUBRESYNC_CLN_CELL_ID" +msgid "Cell ID" +msgstr "Celle ID" + +msgctxt "IDS_SUBRESYNC_CLN_FORCED" +msgid "Forced" +msgstr "Tvunget" + +msgctxt "IDS_SUBRESYNC_CLN_TEXT" +msgid "Text" +msgstr "Tekst" + +msgctxt "IDS_SUBRESYNC_CLN_STYLE" +msgid "Style" +msgstr "Typografi" + +msgctxt "IDS_SUBRESYNC_CLN_FONT" +msgid "Font" +msgstr "Skrifttype" + +msgctxt "IDS_DVD_NAV_SOME_PINS_ERROR" +msgid "Failed to render some of the pins of the DVD Navigator filter" +msgstr "Rendering af nogle pins i DVD navigationsfilteret mislykkedes" + +msgctxt "IDS_DVD_INTERFACES_ERROR" +msgid "Failed to query the needed interfaces for DVD playback" +msgstr "Kunne ikke forespørge de nødvendige grænseflader til DVD-afspilning" + +msgctxt "IDS_CAPTURE_LIVE" +msgid "Live" +msgstr "Direkte" + +msgctxt "IDS_CAPTURE_ERROR_VID_FILTER" +msgid "Can't add video capture filter to the graph" +msgstr "Kan ikke føje videoindspilningsfilter til grafen" + +msgctxt "IDS_CAPTURE_ERROR_AUD_FILTER" +msgid "Can't add audio capture filter to the graph" +msgstr "Kan ikke føje lydindspilningsfilter til grafen" + +msgctxt "IDS_CAPTURE_ERROR_DEVICE" +msgid "Could not open capture device." +msgstr "Kunne ikke åbne indspilningsenhed." + +msgctxt "IDS_INVALID_PARAMS_ERROR" +msgid "Can't open, invalid input parameters" +msgstr "Kan ikke åbne, ugyldige input parametre" + +msgctxt "IDS_EDIT_LIST_EDITOR" +msgid "Edit List Editor" +msgstr "Rediger list-editor" + +msgctxt "IDS_GOTO_ERROR_INVALID_TIME" +msgid "The entered time is greater than the file duration." +msgstr "Den indtastede tid er større end filens varighed." + +msgctxt "IDS_MISSING_ICONS_LIB" +msgid "The icons library \"mpciconlib.dll\" is missing.\nThe player's default icon will be used for file associations.\nPlease, reinstall MPC-HC to get \"mpciconlib.dll\"." +msgstr "Ikon-biblioteket \"mpciconlib.dll\" mangler.\nAfspillerens standard-ikon vil blive brugt ved filtilknytninger.\nGeninstaller venligst MPC-HC for at få \"mpciconlib.dll\"." + +msgctxt "IDS_SUBDL_DLG_FILENAME_COL" +msgid "File" +msgstr "Fil" + +msgctxt "IDS_SUBDL_DLG_LANGUAGE_COL" +msgid "Language" +msgstr "Sprog" + +msgctxt "IDS_SUBDL_DLG_FORMAT_COL" +msgid "Format" +msgstr "Format" + +msgctxt "IDS_SUBDL_DLG_DISC_COL" +msgid "Disc" +msgstr "Disk" + +msgctxt "IDS_SUBDL_DLG_TITLES_COL" +msgid "Title(s)" +msgstr "Titler" + +msgctxt "IDS_SUBRESYNC_CLN_CHARSET" +msgid "CharSet" +msgstr "Tegnsæt" + +msgctxt "IDS_SUBRESYNC_CLN_UNICODE" +msgid "Unicode" +msgstr "Unicode" + +msgctxt "IDS_SUBRESYNC_CLN_LAYER" +msgid "Layer" +msgstr "Lag" + +msgctxt "IDS_SUBRESYNC_CLN_ACTOR" +msgid "Actor" +msgstr "Skuespiller" + +msgctxt "IDS_SUBRESYNC_CLN_EFFECT" +msgid "Effect" +msgstr "Effekt" + +msgctxt "IDS_PLAYLIST_CAPTION" +msgid "Playlist" +msgstr "Spilleliste" + +msgctxt "IDS_PPAGE_FS_CLN_ON_OFF" +msgid "On/Off" +msgstr "Til/Fra" + +msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" +msgid "From FPS" +msgstr "Fra FPS" + +msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" +msgid "To FPS" +msgstr "Til FPS" + +msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" +msgid "Display mode (Hz)" +msgstr "Skærm-tilstand (Hz)" + +msgctxt "IDS_PPAGE_FS_DEFAULT" +msgid "Default" +msgstr "Standard" + +msgctxt "IDS_PPAGE_FS_OTHER" +msgid "Other" +msgstr "Andre" + +msgctxt "IDS_PPAGE_OUTPUT_SYS_DEF" +msgid "System Default" +msgstr "Systemstandard" + +msgctxt "IDS_GRAPH_INTERFACES_ERROR" +msgid "Failed to query the needed interfaces for playback" +msgstr "Kunne ikke forespørge de nødvendige grænseflader til afspilning" + +msgctxt "IDS_GRAPH_TARGET_WND_ERROR" +msgid "Could not set target window for graph notification" +msgstr "Kunne ikke angive destinationsvindue til graf-notifikation" + +msgctxt "IDS_DVD_NAV_ALL_PINS_ERROR" +msgid "Failed to render all pins of the DVD Navigator filter" +msgstr "Kunne ikke rendere alle pins i DVD navigationsfilteret" + +msgctxt "IDS_PLAYLIST_OPEN" +msgid "&Open" +msgstr "&Åbn" + +msgctxt "IDS_PLAYLIST_ADD" +msgid "A&dd" +msgstr "T&ilføj" + +msgctxt "IDS_PLAYLIST_REMOVE" +msgid "&Remove" +msgstr "&Fjern" + +msgctxt "IDS_PLAYLIST_CLEAR" +msgid "C&lear" +msgstr "R&yd" + +msgctxt "IDS_PLAYLIST_COPYTOCLIPBOARD" +msgid "&Copy to clipboard" +msgstr "&Kopiér til udklipsholder" + +msgctxt "IDS_PLAYLIST_SAVEAS" +msgid "&Save As..." +msgstr "&Gem som..." + +msgctxt "IDS_PLAYLIST_SORTBYLABEL" +msgid "Sort by &label" +msgstr "Sortér efter &etiket" + +msgctxt "IDS_PLAYLIST_SORTBYPATH" +msgid "Sort by &path" +msgstr "Sortér efter &sti" + +msgctxt "IDS_PLAYLIST_RANDOMIZE" +msgid "R&andomize" +msgstr "&Tilfældig rækkefølge" + +msgctxt "IDS_PLAYLIST_RESTORE" +msgid "R&estore" +msgstr "G&endan" + +msgctxt "IDS_SUBRESYNC_SEPARATOR" +msgid "&Separator" +msgstr "&Separator" + +msgctxt "IDS_SUBRESYNC_DELETE" +msgid "&Delete" +msgstr "&Slet" + +msgctxt "IDS_SUBRESYNC_DUPLICATE" +msgid "D&uplicate" +msgstr "D&uplikere" + +msgctxt "IDS_SUBRESYNC_RESET" +msgid "&Reset" +msgstr "&Nulstil" + +msgctxt "IDS_MPLAYERC_104" +msgid "Subtitle Delay -" +msgstr "Undertekst forsinkelse -" + +msgctxt "IDS_MPLAYERC_105" +msgid "Subtitle Delay +" +msgstr "Undertekst forsinkelse +" + +msgctxt "IDS_FILE_SAVE_THUMBNAILS" +msgid "Save thumbnails" +msgstr "Gem miniaturer" + +msgctxt "IDD_PPAGEPLAYBACK" +msgid "Playback" +msgstr "Afspilning" + +msgctxt "IDD_PPAGEPLAYER" +msgid "Player" +msgstr "Afspiller" + +msgctxt "IDD_PPAGEDVD" +msgid "Playback::DVD/OGM" +msgstr "Afspilning::DVD/OGM" + +msgctxt "IDD_PPAGESUBTITLES" +msgid "Subtitles" +msgstr "Undertekster" + +msgctxt "IDD_PPAGEFORMATS" +msgid "Player::Formats" +msgstr "Afspiller::Formater" + +msgctxt "IDD_PPAGETWEAKS" +msgid "Tweaks" +msgstr "Finjusteringer" + +msgctxt "IDD_PPAGEAUDIOSWITCHER" +msgid "Internal Filters::Audio Switcher" +msgstr "Interne filtre::Lyd-omskifter" + +msgctxt "IDD_PPAGEEXTERNALFILTERS" +msgid "External Filters" +msgstr "Eksterne filtre" + +msgctxt "IDD_PPAGESHADERS" +msgid "Playback::Shaders" +msgstr "Afspilning::Shadere" + +msgctxt "IDS_AUDIOSWITCHER" +msgid "Audio Switcher" +msgstr "Lyd-omskifter" + +msgctxt "IDS_ICONS_REASSOC_DLG_TITLE" +msgid "New version of the icon library" +msgstr "Ny version af ikon-biblioteket" + +msgctxt "IDS_ICONS_REASSOC_DLG_INSTR" +msgid "Do you want to reassociate the icons?" +msgstr "Vil du tilknytte ikonerne igen?" + +msgctxt "IDS_ICONS_REASSOC_DLG_CONTENT" +msgid "This will fix the icons being incorrectly displayed after an update of the icon library.\nThe file associations will not be modified, only the corresponding icons will be refreshed." +msgstr "Dette vil rette de ikoner som bliver vist forkert efter en opdatering af ikon-biblioteket.\nFiltilknytningerne bliver ikke ændret, kun de tilhørende ikoner bliver genopfrisket." + +msgctxt "IDS_PPAGE_OUTPUT_OLDRENDERER" +msgid "Old Video Renderer" +msgstr "Old Video Renderer" + +msgctxt "IDS_PPAGE_OUTPUT_OVERLAYMIXER" +msgid "Overlay Mixer Renderer" +msgstr "Overlay Mixer Renderer" + +msgctxt "IDS_PPAGE_OUTPUT_VMR7WINDOWED" +msgid "Video Mixing Renderer 7 (windowed)" +msgstr "Video Mixing Renderer 7 (windowed)" + +msgctxt "IDS_PPAGE_OUTPUT_VMR9WINDOWED" +msgid "Video Mixing Renderer 9 (windowed)" +msgstr "Video Mixing Renderer 9 (windowed)" + +msgctxt "IDS_PPAGE_OUTPUT_VMR7RENDERLESS" +msgid "Video Mixing Renderer 7 (renderless)" +msgstr "Video Mixing Renderer 7 (renderless)" + +msgctxt "IDS_PPAGE_OUTPUT_VMR9RENDERLESS" +msgid "Video Mixing Renderer 9 (renderless)" +msgstr "Video Mixing Renderer 9 (renderless)" + +msgctxt "IDS_PPAGE_OUTPUT_EVR" +msgid "Enhanced Video Renderer" +msgstr "Enhanced Video Renderer" + +msgctxt "IDS_PPAGE_OUTPUT_EVR_CUSTOM" +msgid "Enhanced Video Renderer (custom presenter)" +msgstr "Enhanced Video Renderer (custom presenter)" + +msgctxt "IDS_PPAGE_OUTPUT_DXR" +msgid "Haali Video Renderer" +msgstr "Haali Video Renderer" + +msgctxt "IDS_PPAGE_OUTPUT_NULL_COMP" +msgid "Null (anything)" +msgstr "Null (anything)" + +msgctxt "IDS_PPAGE_OUTPUT_NULL_UNCOMP" +msgid "Null (uncompressed)" +msgstr "Null (uncompressed)" + +msgctxt "IDS_PPAGE_OUTPUT_MADVR" +msgid "madVR" +msgstr "madVR" + +msgctxt "IDD_PPAGEACCELTBL" +msgid "Player::Keys" +msgstr "Afspiller::Genvejstaster" + +msgctxt "IDD_PPAGESUBSTYLE" +msgid "Subtitles::Default Style" +msgstr "Undertekster::Standardtypografi" + +msgctxt "IDD_PPAGEINTERNALFILTERS" +msgid "Internal Filters" +msgstr "Interne filtre" + +msgctxt "IDD_PPAGELOGO" +msgid "Player::Logo" +msgstr "Afspiller::Logo" + +msgctxt "IDD_PPAGEOUTPUT" +msgid "Playback::Output" +msgstr "Afspilning::Output" + +msgctxt "IDD_PPAGEWEBSERVER" +msgid "Player::Web Interface" +msgstr "Afspiller::Webgrænseflade" + +msgctxt "IDD_PPAGESUBDB" +msgid "Subtitles::Database" +msgstr "Undertekster::Database" + +msgctxt "IDD_FILEPROPRES" +msgid "Resources" +msgstr "Ressourcer" + +msgctxt "IDD_PPAGEMISC" +msgid "Miscellaneous" +msgstr "Diverse" + +msgctxt "IDD_FILEMEDIAINFO" +msgid "MediaInfo" +msgstr "Medieinfo" + +msgctxt "IDD_PPAGECAPTURE" +msgid "Playback::Capture" +msgstr "Afspilning::Indspil" + +msgctxt "IDD_PPAGESYNC" +msgid "Playback::Sync Renderer Settings" +msgstr "Afspilning::Sync Rendererindstillinger" + +msgctxt "IDD_PPAGEFULLSCREEN" +msgid "Playback::Fullscreen" +msgstr "Afspilning::Fuldskærm" + +msgctxt "IDD_FILEPROPDETAILS" +msgid "Details" +msgstr "Detaljer" + +msgctxt "IDD_FILEPROPCLIP" +msgid "Clip" +msgstr "Klip" + +msgctxt "IDC_DSSYSDEF" +msgid "Default video renderer filter for DirectShow. Others will fall back to this one when they can't be loaded for some reason. On Windown XP this is the same as VMR-7 (windowed)." +msgstr "Standard video-renderer filter til DirectShow. Andre vil falde tilbage til denne når de ikke kan benyttes. På Windows XP er denne det samme som VMR-7 (windowed)." + +msgctxt "IDC_DSOLD" +msgid "This is the default renderer of Windows 9x/me/2k. Depending on the visibility of the video window and your video card's abilities, it will switch between GDI, DirectDraw, Overlay rendering modes dynamically." +msgstr "Dette er standard renderer på Windows 9x/me/2k. Afhængig af synligheden af video-vinduet og dit grafikkorts formåen, vil det dynamisk skifte mellem renderingstilstandende GDI, DirectDraw og Overlay." + +msgctxt "IDC_DSOVERLAYMIXER" +msgid "Always renders in overlay. Generally only YUV formats are allowed, but they are presented directly without any color conversion to RGB. This is the fastest rendering method of all and the only where you can be sure about fullscreen video mirroring to tv-out activating." +msgstr "Renderer altid i Overlay. Generelt er kun YUV-formater tilladt, men de vises direkte uden konvertering til RGB. Dette er den hurtigste renderingsmetode af alle og den eneste hvor du kan være sikker på fuldskærm videospejlning til TV-out aktivering." + +msgctxt "IDC_DSVMR7WIN" +msgid "The default renderer of Windows XP. Very stable and just a little slower than the Overlay mixer. Uses DirectDraw and runs in Overlay when it can." +msgstr "Standard renderer i Windows XP. Meget stabil og kun lidt langsommere end den Overlay mixer. Bruger DirectDraw og køre i Overlay når den kan." + +msgctxt "IDC_DSVMR9WIN" +msgid "Only available if you have DirectX 9 installed. Has the same abilities as VMR-7 (windowed), but it will never use Overlay rendering and because of this it may be a little slower than VMR-7 (windowed)." +msgstr "Kun tilgængelig hvis du har DirectX 9 installeret. Har samme muligheder som VMR-7 (windowed), men den vil aldrig bruge Overlay-rendering og kan derfor være en smule langsommere end VMR-7 (windowed)." + +msgctxt "IDC_DSVMR7REN" +msgid "Same as the VMR-7 (windowed), but with the Allocator-Presenter plugin of MPC-HC for subtitling. Overlay video mirroring WILL NOT work. \"True Color\" desktop color space recommended." +msgstr "Samme som VMR-7 (windowed), men med allokationspræsentation-plugin'et fra MPC-HC til undertekster. Overlay videospejling VIL IKKE virke. Skrivebord-farverum med \"Ægte farver\" anbefales." + +msgctxt "IDC_DSVMR9REN" +msgid "Same as the VMR-9 (windowed), but with the Allocator-Presenter plugin of MPC-HC for subtitling. Overlay video mirroring MIGHT work. \"True Color\" desktop color space recommended. Recommended for Windows XP." +msgstr "Samme som VMR-9 (windowed), men med allokationspræsentation-plugin'et fra MPC-HC til undertekster. Overlay videospejling VIL MÅSKE virke. Skrivebord-farverum med \"Ægte farver\" anbefales. Anbefales til Windows XP." + +msgctxt "IDC_DSDXR" +msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer." +msgstr "Samme som VMR-9 (renderless), men bruger ægte bi-kubisk gensampling." + +msgctxt "IDC_DSNULL_COMP" +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Forbinder til en hvilken som helst video-lignende medietype og sender ikke de indkommende bidder nogen steder hen. Brug den når du ikke har brug for visning af videoen og gerne vil undgå unødig brug af CPU-ressourcerne." + +msgctxt "IDC_DSNULL_UNCOMP" +msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." +msgstr "Samme som den normale Null-renderer, men den her vil kun forbinde til ukomprimerede typer." + +msgctxt "IDC_DSEVR" +msgid "Only available on Vista or later or on XP with at least .NET Framework 3.5 installed." +msgstr "Kun tilgængelige i Vista eller senere, eller i XP med minimum .NET Framework 3.5 installeret." + +msgctxt "IDC_DSEVR_CUSTOM" +msgid "Same as the EVR, but with the Allocator-Presenter of MPC-HC for subtitling and postprocessing. Recommended for Windows Vista or later." +msgstr "Samme som EVR, men med allokationspræsentationen fra MPC-HC til undertekster og efterbearbejdning. Anbefales til Windows Vista eller senere." + +msgctxt "IDC_DSMADVR" +msgid "High-quality renderer, requires a GPU that supports D3D9 or later." +msgstr "Høj-kvalitets renderer, kræver en GPU som understøtter D3D9 eller senere." + +msgctxt "IDC_DSSYNC" +msgid "Same as the EVR (CP), but offers several options to synchronize the video frame rate with the display refresh rate to eliminate skipped or duplicated video frames." +msgstr "Samme som EVR (CP), men tilbyder en del indstillinger til at synkronisere billedhastigheden med skærmens opdateringshastighed for at forhindre oversprungne eller dobbelte videobilleder." + +msgctxt "IDC_RMSYSDEF" +msgid "Real's own renderer. SMIL scripts will work, but interaction not likely. Uses DirectDraw and runs in Overlay when it can." +msgstr "Real's egen renderer. SMIL scripts vil virker, men interaktion vil formodentligt ikke virke. Bruger DirectDraw og køre i Overlay når den kan." + +msgctxt "IDC_RMDX7" +msgid "The output of Real's engine rendered by the DX7-based Allocator-Presenter of VMR-7 (renderless)." +msgstr "Output fra Real's motor rendereret af den DX7-baseret allokationspræsentation fra VMR-7 (renderless)." + +msgctxt "IDC_RMDX9" +msgid "The output of Real's engine rendered by the DX9-based Allocator-Presenter of VMR-9 (renderless)." +msgstr "Output fra Real's motor rendereret af den DX9-baseret allokationspræsentation fra VMR-9 (renderless)." + +msgctxt "IDC_QTSYSDEF" +msgid "QuickTime's own renderer. Gets a little slow when its video area is resized or partially covered by another window. When Overlay is not available it likes to fall back to GDI." +msgstr "QuickTime's egen renderer. Bliver lidt langsom når videoens område ændre størrelse eller delvist dækket af andre vinduer. Den kan godt lide at falde tilbage til GDI når Overlay ikke er tilgængelig." + +msgctxt "IDC_QTDX7" +msgid "The output of QuickTime's engine rendered by the DX7-based Allocator-Presenter of VMR-7 (renderless)." +msgstr "Output fra QuickTime's motor rendereret af den DX7-baseret allokationspræsentation fra VMR-7 (renderless)." + +msgctxt "IDC_QTDX9" +msgid "The output of QuickTime's engine rendered by the DX9-based Allocator-Presenter of VMR-9 (renderless)." +msgstr "Output fra QuickTime's motor rendereret af den DX9-baseret allokationspræsentation fra VMR-9 (renderless)." + +msgctxt "IDC_REGULARSURF" +msgid "Video surface will be allocated as a regular offscreen surface." +msgstr "Video-overflade vil blive allokeret som en almindelig overflade uden for skærmbilledet." + +msgctxt "IDC_AUDRND_COMBO" +msgid "MPC Audio Renderer is broken, do not use." +msgstr "MPC Audio Renderer er i stykker, undlad at benytte den." + +msgctxt "IDS_PPAGE_OUTPUT_SYNC" +msgid "Sync Renderer" +msgstr "Sync Renderer" + +msgctxt "IDS_MPC_BUG_REPORT_TITLE" +msgid "MPC-HC - Reporting a bug" +msgstr "MPC-HC - Rapportér en bug" + +msgctxt "IDS_MPC_BUG_REPORT" +msgid "MPC-HC just crashed but this build was compiled without debug information.\nIf you want to report this bug, you should first try an official build.\n\nDo you want to visit the download page now?" +msgstr "MPC-HC er lige gået ned, men denne build blev kompileret uden fejlfindingsoplysninger.\nHvis du vil rapportere denne fejl, skal du først prøve en officielle build.\n\nVil du besøge download-siden nu?" + +msgctxt "IDS_PPAGE_OUTPUT_SURF_OFFSCREEN" +msgid "Regular offscreen plain surface" +msgstr "Almindelig simpel overflade uden for skærmbilledet" + +msgctxt "IDS_PPAGE_OUTPUT_SURF_2D" +msgid "2D surfaces" +msgstr "2D overflader" + +msgctxt "IDS_PPAGE_OUTPUT_SURF_3D" +msgid "3D surfaces (recommended)" +msgstr "3D overflader (anbefalet)" + +msgctxt "IDS_PPAGE_OUTPUT_RESIZE_NN" +msgid "Nearest neighbor" +msgstr "Nærmeste nabo" + +msgctxt "IDS_PPAGE_OUTPUT_RESIZER_BILIN" +msgid "Bilinear" +msgstr "Bi-lineær" + +msgctxt "IDS_PPAGE_OUTPUT_RESIZER_BIL_PS" +msgid "Bilinear (PS 2.0)" +msgstr "Bi-lineær (PS 2.0)" + +msgctxt "IDS_PPAGE_OUTPUT_RESIZER_BICUB1" +msgid "Bicubic A=-0.60 (PS 2.0)" +msgstr "Bi-kubisk A=-0.60 (PS 2.0)" + +msgctxt "IDS_PPAGE_OUTPUT_RESIZER_BICUB2" +msgid "Bicubic A=-0.75 (PS 2.0)" +msgstr "Bi-kubisk A=-0.75 (PS 2.0)" + +msgctxt "IDS_PPAGE_OUTPUT_RESIZER_BICUB3" +msgid "Bicubic A=-1.00 (PS 2.0)" +msgstr "Bi-kubisk A=-1.00 (PS 2.0)" + +msgctxt "IDS_PPAGE_OUTPUT_UNAVAILABLE" +msgid "**unavailable**" +msgstr "**ikke tilgængelig**" + +msgctxt "IDS_PPAGE_OUTPUT_UNAVAILABLEMSG" +msgid "The selected renderer is not installed." +msgstr "Den valgte renderer er ikke installeret." + +msgctxt "IDS_PPAGE_OUTPUT_AUD_NULL_COMP" +msgid "Null (anything)" +msgstr "Null (anything)" + +msgctxt "IDS_PPAGE_OUTPUT_AUD_NULL_UNCOMP" +msgid "Null (uncompressed)" +msgstr "Null (uncompressed)" + +msgctxt "IDS_PPAGE_OUTPUT_AUD_MPC_HC_REND" +msgid "MPC-HC Audio Renderer" +msgstr "MPC-HC Audio Renderer" + +msgctxt "IDS_EMB_RESOURCES_VIEWER_NAME" +msgid "Name" +msgstr "Navn" + +msgctxt "IDS_EMB_RESOURCES_VIEWER_TYPE" +msgid "MIME Type" +msgstr "MIME type" + +msgctxt "IDS_EMB_RESOURCES_VIEWER_INFO" +msgid "In order to view an embedded resource in your browser you have to enable the web interface.\n\nUse the \"Save As\" button if you only want to save the information." +msgstr "For at kunne vise en indlejret ressource i din browser skal du aktivere webgrænsefladen.\n\nBrug \"Gem som\" knappen hvis du kun ønsker at gemme oplysningerne." + +msgctxt "IDS_DOWNLOAD_SUBS" +msgid "Download subtitles" +msgstr "Download undertekster" + +msgctxt "IDS_SUBFILE_DELAY" +msgid "Delay (ms):" +msgstr "Forsinkelse (ms):" + +msgctxt "IDS_SPEEDSTEP_AUTO" +msgid "Auto" +msgstr "Auto" + +msgctxt "IDS_EXPORT_SETTINGS_NO_KEYS" +msgid "There are no customized keys to export." +msgstr "Der er ingen brugerdefinerede nøgler at eksportere." + +msgctxt "IDS_RFS_NO_FILES" +msgid "No media files found in the archive" +msgstr "Ingen mediefiler fundet i arkivet" + +msgctxt "IDS_RFS_COMPRESSED" +msgid "Compressed files are not supported" +msgstr "Komprimeret filer understøttes ikke" + +msgctxt "IDS_RFS_ENCRYPTED" +msgid "Encrypted files are not supported" +msgstr "Krypteret filer understøttes ikke" + +msgctxt "IDS_RFS_MISSING_VOLS" +msgid "Couldn't find all archive volumes" +msgstr "Kunne ikke finde alle arkiv volumener" + +msgctxt "IDC_TEXTURESURF2D" +msgid "Video surface will be allocated as a texture but still the 2d functions will be used to copy and stretch it onto the backbuffer. Requires a video card which can allocate 32-bit, RGBA, non-power-of-two sized textures and at least in the resolution of the video." +msgstr "Videooverflade vil blive allokeret som en struktur men anden funktionerne vil stadig blive brugt til at kopiere og strække den over backbufferen. Kræver et grafikkort der kan allokere 32-bit, RGBA, ikke-potens-af-to struktur størrelser og minimum i videoens opløsning." + +msgctxt "IDC_TEXTURESURF3D" +msgid "Video surface will be allocated as a texture and drawn as two triangles in 3d. Antialiasing turned on at the display settings may have a bad effect on the rendering speed." +msgstr "Videooverflade vil blive allokeret som en struktur og tegnet som to trekanter i 3D. Når antialiasing er slået til i grafikkortindstillingerne kan det have en negativ indvirkning på renderingshastigheden." + +msgctxt "IDC_DX9RESIZER_COMBO" +msgid "If there is no Pixel Shader 2.0 support, simple bilinear is used automatically." +msgstr "Der er ingen understøttelse af Pixel Shader 2.0, enkel bi-lineær bruges automatisk." + +msgctxt "IDC_DSVMR9LOADMIXER" +msgid "Puts VMR-9 (renderless) into mixer mode, this means most of the controls on its property page will work and it will use a separate worker thread to renderer frames." +msgstr "Sætter VMR-9 (renderless) i mixer-tilstand, hvilket betyder at de fleste styringsmuligheder på egenskaber-siden vil virke og den vil bruge en separat arbejdstråd til at rendere billeder." + +msgctxt "IDC_DSVMR9YUVMIXER" +msgid "Improves performance at the cost of some compatibility of the renderer." +msgstr "Forbedre ydelsen på bekostning af nogen kompatibilitet for rendereren." + +msgctxt "IDC_FULLSCREEN_MONITOR_CHECK" +msgid "Reduces tearing but prevents the toolbar from being shown." +msgstr "Reducer iturivning men forhindre værktøjslinjen i at blive vist." + +msgctxt "IDC_DSVMR9ALTERNATIVEVSYNC" +msgid "Reduces tearing by bypassing the default VSync built into D3D." +msgstr "Reducere iturivning ved at omgå standard lodret synkroniseringen indbygget i D3D." + +msgctxt "IDS_SRC_VTS" +msgid "Open VTS_xx_0.ifo to load VTS_xx_x.vob files in one piece" +msgstr "Åbn VTS_xx_0.ifo for at indlæse VTS_xx_x.vob filer i ét stykke" + +msgctxt "IDS_SRC_RFS" +msgid "Based on RARFileSource, doesn't support compressed files" +msgstr "Baseret på RARFileSource, understøtter ikke komprimeret filer" + +msgctxt "IDS_INTERNAL_LAVF" +msgid "Uses LAV Filters" +msgstr "Bruger LAV Filters" + +msgctxt "IDS_INTERNAL_LAVF_WMV" +msgid "Uses LAV Filters. Disabled by default since Microsoft filters are usually more stable for those formats.\nIf you choose to use the internal filters, enable them for both source and decoding to have a better playback experience." +msgstr "Bruger LAV Filters. Deaktiveret som standard, da Microsoft filtre generelt er mere stabile til de formater.\nHvis du vælger at bruge de interne filtre, så aktivér dem til både kilde og afkodning for at få en bedre afspilningsoplevelse." + +msgctxt "IDS_AG_TOGGLE_NAVIGATION" +msgid "Toggle Navigation Bar" +msgstr "Navigationslinje til/fra" + +msgctxt "IDS_AG_VSYNCACCURATE" +msgid "Accurate VSync" +msgstr "Præcis lodret synkronisering" + +msgctxt "IDC_CHECK_RELATIVETO" +msgid "If the rendering target is left undefined, it will be inherited from the default style." +msgstr "Hvis renderingsdestinationen er udefineret, vil det blive nedarvet fra standardtypografien." + +msgctxt "IDC_CHECK_NO_SUB_ANIM" +msgid "Disallow subtitle animation. Enabling this option will lower CPU usage. You can use it if you experience flashing subtitles." +msgstr "Deaktiver animation af undertekst. CPU-forbruget vil blive mindre hvis denne indstilling slås til. Du kan bruge den hvis du oplever blinkende undertekster." + +msgctxt "IDC_SUBPIC_TO_BUFFER" +msgid "Increasing the number of buffered subpictures should in general improve the rendering performance at the cost of a higher video RAM usage on the GPU." +msgstr "Et større antal mellemlageret undertekst-billeder bør generelt forbedre renderingsydelsen på bekostning af et højere forbrug af video-RAM på GPU'en." + +msgctxt "IDC_BUTTON_EXT_SET" +msgid "After clicking this button, the checked state of the format group will reflect the actual file association for MPC-HC. A newly added extension will usually make it grayed, so don't forget to check it again before closing this dialog!" +msgstr "Efter klik på denne knap, vil markeringerne i format-gruppen vise de faktiske filtilknytninger til MPC-HC. En nyligt tilføjet udvidelse vil typisk gøre den grålig, så husk at markere den igen før denne dialogboks lukkes!" + +msgctxt "IDC_CHECK_ALLOW_DROPPING_SUBPIC" +msgid "Disabling this option will prevent the subtitles from blinking but it may cause the video renderer to skip some video frames." +msgstr "Deaktiveres denne indstilling vil det forhindre undertekster i at blinke, men det kan få video-rendereren til at springe nogle billeder over." + +msgctxt "ID_PLAY_PLAY" +msgid "Play\nPlay" +msgstr "Afspil\nAfspil" + +msgctxt "ID_PLAY_PAUSE" +msgid "Pause\nPause" +msgstr "Pause\nPause" + +msgctxt "ID_PLAY_STOP" +msgid "Stop\nStop" +msgstr "Stop\nStop" + +msgctxt "ID_PLAY_FRAMESTEP" +msgid "Step\nStep" +msgstr "Trin\nTrin" + +msgctxt "ID_PLAY_DECRATE" +msgid "Decrease speed\nDecrease speed" +msgstr "Langsommere\nLangsommere" + +msgctxt "ID_PLAY_INCRATE" +msgid "Increase speed\nIncrease speed" +msgstr "Hurtigere\nHurtigere" + +msgctxt "ID_VOLUME_MUTE" +msgid "Mute" +msgstr "Mute" + +msgctxt "ID_VOLUME_MUTE_OFF" +msgid "Unmute" +msgstr "Slå lyden til" + +msgctxt "ID_VOLUME_MUTE_DISABLED" +msgid "No audio" +msgstr "Ingen lyd" + +msgctxt "ID_NAVIGATE_SKIPBACK" +msgid "Skip back\nSkip back" +msgstr "Spring tilbage\nSpring tilbage" + +msgctxt "ID_NAVIGATE_SKIPFORWARD" +msgid "Skip forward\nSkip forward" +msgstr "Spring fremad\nSpring fremad" + +msgctxt "IDS_SUBRESYNC_ORIGINAL" +msgid "&Original" +msgstr "&Original" + +msgctxt "IDS_SUBRESYNC_CURRENT" +msgid "&Current" +msgstr "&Aktuel" + +msgctxt "IDS_SUBRESYNC_EDIT" +msgid "&Edit" +msgstr "&Rediger" + +msgctxt "IDS_SUBRESYNC_YES" +msgid "&Yes" +msgstr "&Ja" + +msgctxt "IDS_SUBRESYNC_NO" +msgid "&No" +msgstr "&Nej" + +msgctxt "IDS_SUBRESYNC_DECREASE" +msgid "&Decrease" +msgstr "&Formindsk" + +msgctxt "IDS_SUBRESYNC_INCREASE" +msgid "&Increase" +msgstr "&Forøg" + +msgctxt "IDS_OPTIONS_CAPTION" +msgid "Options" +msgstr "Indstillinger" + +msgctxt "IDS_SHADERS_SELECT" +msgid "&Select Shaders..." +msgstr "&Vælg shadere..." + +msgctxt "IDS_SHADERS_DEBUG" +msgid "&Debug Shaders..." +msgstr "&Fejlfind shadere..." + +msgctxt "IDS_FAVORITES_ADD" +msgid "&Add to Favorites..." +msgstr "&Føj til favoritter..." + +msgctxt "IDS_FAVORITES_ORGANIZE" +msgid "&Organize Favorites..." +msgstr "&Håndter favoritter..." + +msgctxt "IDS_PLAYLIST_SHUFFLE" +msgid "Shuffle" +msgstr "Bland" + +msgctxt "IDS_PLAYLIST_SHOWFOLDER" +msgid "Open file location" +msgstr "Åbn filplacering" + +msgctxt "IDS_CONTROLS_CLOSING" +msgid "Closing..." +msgstr "Lukker..." + +msgctxt "IDS_CONTROLS_PLAYING" +msgid "Playing" +msgstr "Afspiller" + +msgctxt "IDS_CONTROLS_PAUSED" +msgid "Paused" +msgstr "Pauset" + +msgctxt "IDS_AG_EDL_NEW_CLIP" +msgid "EDL new clip" +msgstr "EDL nyt klip" + +msgctxt "IDS_RECENT_FILES_CLEAR" +msgid "&Clear list" +msgstr "&Ryd liste" + +msgctxt "IDS_RECENT_FILES_QUESTION" +msgid "Are you sure that you want to delete recent files list?" +msgstr "Er du sikker på at du vil slette listen over seneste filer?" + +msgctxt "IDS_AG_EDL_SAVE" +msgid "EDL save" +msgstr "EDL gem" + +msgctxt "IDS_AG_ENABLEFRAMETIMECORRECTION" +msgid "Enable Frame Time Correction" +msgstr "Aktivér korrigering af billedtid" + +msgctxt "IDS_AG_TOGGLE_EDITLISTEDITOR" +msgid "Toggle EDL window" +msgstr "EDL vindue til/fra" + +msgctxt "IDS_AG_EDL_IN" +msgid "EDL set In" +msgstr "EDL sæt ind" + +msgctxt "IDS_AG_EDL_OUT" +msgid "EDL set Out" +msgstr "EDL sæt ud" + +msgctxt "IDS_AG_PNS_ROTATEX_M" +msgid "PnS Rotate X-" +msgstr "PnS roter X-" + +msgctxt "IDS_AG_PNS_ROTATEY_P" +msgid "PnS Rotate Y+" +msgstr "PnS roter Y+" + +msgctxt "IDS_AG_PNS_ROTATEY_M" +msgid "PnS Rotate Y-" +msgstr "PnS roter Y-" + +msgctxt "IDS_AG_PNS_ROTATEZ_P" +msgid "PnS Rotate Z+" +msgstr "PnS roter Z+" + +msgctxt "IDS_AG_PNS_ROTATEZ_M" +msgid "PnS Rotate Z-" +msgstr "PnS roter Z-" + +msgctxt "IDS_AG_TEARING_TEST" +msgid "Tearing Test" +msgstr "Iturivningstest" + +msgctxt "IDS_SCALE_16_9" +msgid "Scale to 16:9 TV,%.3f,%.3f,%.3f,%.3f" +msgstr "Skalér til 16:9 TV,%.3f,%.3f,%.3f,%.3f" + +msgctxt "IDS_SCALE_WIDESCREEN" +msgid "Zoom To Widescreen,%.3f,%.3f,%.3f,%.3f" +msgstr "Zoom til widescreen,%.3f,%.3f,%.3f,%.3f" + +msgctxt "IDS_SCALE_ULTRAWIDE" +msgid "Zoom To Ultra-Widescreen,%.3f,%.3f,%.3f,%.3f" +msgstr "Zoom til ultra-widescreen,%.3f,%.3f,%.3f,%.3f" + +msgctxt "IDS_PLAYLIST_HIDEFS" +msgid "Hide on Fullscreen" +msgstr "Skjul i fuldskærm" + +msgctxt "IDS_CONTROLS_STOPPED" +msgid "Stopped" +msgstr "Stoppet" + +msgctxt "IDS_CONTROLS_BUFFERING" +msgid "Buffering... (%d%%)" +msgstr "Gemmer i buffer... (%d%%)" + +msgctxt "IDS_CONTROLS_CAPTURING" +msgid "Capturing..." +msgstr "Indspilning..." + +msgctxt "IDS_CONTROLS_OPENING" +msgid "Opening..." +msgstr "Åbner..." + +msgctxt "IDS_CONTROLS_CLOSED" +msgid "Closed" +msgstr "Lukket" + +msgctxt "IDS_SUBTITLES_OPTIONS" +msgid "&Options..." +msgstr "&Indstillinger..." + +msgctxt "IDS_SUBTITLES_STYLES" +msgid "&Styles..." +msgstr "&Typografi..." + +msgctxt "IDS_SUBTITLES_RELOAD" +msgid "&Reload" +msgstr "&Genindlæs" + +msgctxt "IDS_SUBTITLES_ENABLE" +msgid "&Enable" +msgstr "&Aktivér" + +msgctxt "IDS_PANSCAN_EDIT" +msgid "&Edit..." +msgstr "&Rediger..." + +msgctxt "IDS_INFOBAR_TITLE" +msgid "Title" +msgstr "Titel" + +msgctxt "IDS_INFOBAR_AUTHOR" +msgid "Author" +msgstr "Forfatter" + +msgctxt "IDS_INFOBAR_COPYRIGHT" +msgid "Copyright" +msgstr "Copyright" + +msgctxt "IDS_INFOBAR_RATING" +msgid "Rating" +msgstr "Klassificering" + +msgctxt "IDS_INFOBAR_DESCRIPTION" +msgid "Description" +msgstr "Beskrivelse" + +msgctxt "IDS_INFOBAR_DOMAIN" +msgid "Domain" +msgstr "Område" + +msgctxt "IDS_AG_CLOSE" +msgid "Close" +msgstr "Luk" + +msgctxt "IDS_AG_NONE" +msgid "None" +msgstr "Ingen" + +msgctxt "IDS_AG_COMMAND" +msgid "Command" +msgstr "Kommando" + +msgctxt "IDS_AG_KEY" +msgid "Key" +msgstr "Tast" + +msgctxt "IDS_AG_MOUSE" +msgid "Mouse Windowed" +msgstr "Mus i vindue" + +msgctxt "IDS_AG_MOUSE_FS" +msgid "Mouse Fullscreen" +msgstr "Mus i fuldskærm" + +msgctxt "IDS_AG_APP_COMMAND" +msgid "App Command" +msgstr "App kommando" + +msgctxt "IDS_AG_MEDIAFILES" +msgid "Media files (all types)" +msgstr "Mediefiler (alle typer)" + +msgctxt "IDS_AG_ALLFILES" +msgid "All files (*.*)|*.*|" +msgstr "Alle filer (*.*)|*.*|" + +msgctxt "IDS_AG_AUDIOFILES" +msgid "Audio files (all types)" +msgstr "Lydfiler (alle typer)" + +msgctxt "IDS_AG_NOT_KNOWN" +msgid "Not known" +msgstr "Ukendt" + +msgctxt "IDS_MPLAYERC_0" +msgid "Quick Open File" +msgstr "Åbn fil hurtigt" + +msgctxt "IDS_AG_OPEN_FILE" +msgid "Open File" +msgstr "Åbn fil" + +msgctxt "IDS_AG_OPEN_DVD" +msgid "Open DVD/BD" +msgstr "Åbn DVD/BD" + +msgctxt "IDS_MAINFRM_POST_SHADERS_FAILED" +msgid "Failed to set post-resize shaders" +msgstr "Anvendelse af efter-størrelsesændring shadere mislykkedes" + +msgctxt "IDS_MAINFRM_BOTH_SHADERS_FAILED" +msgid "Failed to set both pre-resize and post-resize shaders" +msgstr "Anvendelse af både før-størrelsesændring og efter-størrelsesændring shadere mislykkedes" + +msgctxt "IDS_DEBUGSHADERS_FIRSTRUN_MSG" +msgid "Shaders are recompiled automatically when the corresponding files are modified." +msgstr "Shadere genkompileres automatisk når de tilsvarende filer ændres." + +msgctxt "IDS_SHADER_DLL_ERR_0" +msgid "Cannot load %s, pixel shaders will not work." +msgstr "Kan ikke indlæs %s, pixel shadere vil ikke virke." + +msgctxt "IDS_SHADER_DLL_ERR_1" +msgid "Cannot find necessary function entry points in %s, pixel shaders will not work." +msgstr "Kan ikke finde funktionsindgangspunkt i %s, pixel shadere vil ikke virke." + +msgctxt "IDS_OSD_SHADERS_PRESET" +msgid "Shader preset: %s" +msgstr "Shader forudindstilling: %s" + +msgctxt "IDS_AG_SHADERS_PRESET_NEXT" +msgid "Next Shader Preset" +msgstr "Næste shader forudindstilling" + +msgctxt "IDS_AG_SHADERS_PRESET_PREV" +msgid "Prev Shader Preset" +msgstr "Forrige shader forudindstilling" + +msgctxt "IDS_STRING_COLON" +msgid "%s:" +msgstr "%s:" + +msgctxt "IDS_RECORD_START" +msgid "Record" +msgstr "Indspil" + +msgctxt "IDS_RECORD_STOP" +msgid "Stop" +msgstr "Stop" + +msgctxt "IDS_BALANCE" +msgid "L = R" +msgstr "V = H" + +msgctxt "IDS_BALANCE_L" +msgid "L +%d%%" +msgstr "V +%d%%" + +msgctxt "IDS_BALANCE_R" +msgid "R +%d%%" +msgstr "H +%d%%" + +msgctxt "IDS_VOLUME" +msgid "%d%%" +msgstr "%d%%" + +msgctxt "IDS_BOOST" +msgid "+%d%%" +msgstr "+%d%%" + +msgctxt "IDS_PLAYLIST_ADDFOLDER" +msgid "Add containing folder" +msgstr "Tilføj overordnet mappe" + +msgctxt "IDS_HW_INDICATOR" +msgid "[H/W]" +msgstr "[H/W]" + +msgctxt "IDS_TOOLTIP_SOFTWARE_DECODING" +msgid "Software Decoding" +msgstr "Software-dekodning" + +msgctxt "IDS_STATSBAR_PLAYBACK_RATE" +msgid "Playback rate" +msgstr "Afspilningshastighed" + +msgctxt "IDS_FILTERS_COPY_TO_CLIPBOARD" +msgid "&Copy filters list to clipboard" +msgstr "&Kopiér filterliste til udklipsholder" + +msgctxt "IDS_CREDENTIALS_SERVER" +msgid "Enter server credentials" +msgstr "Indtast serverens legitimationsoplysninger" + +msgctxt "IDS_CREDENTIALS_CONNECT" +msgid "Enter your credentials to connect" +msgstr "Indtast dine legitimationsoplysninger for at oprette forbindelse" + +msgctxt "IDS_SUB_SAVE_EXTERNAL_STYLE_FILE" +msgid "Save custom style" +msgstr "Gem brugerdefineret typografi" + +msgctxt "IDS_CONTENT_EDUCATION_SCIENCE" +msgid "Education/Science/Factual topics" +msgstr "Uddannelse/Videnskab/Faktuelle emner" + +msgctxt "IDS_PPAGEADVANCED_HIDE_WINDOWED" +msgid "Hides controls and panels also in windowed mode." +msgstr "Skjul kontrolelementer og paneler, også i vindue-tilstand." + +msgctxt "IDS_PPAGEADVANCED_BLOCK_VSFILTER" +msgid "Prevent external subtitle renderer to be loaded when internal is in use." +msgstr "Forhindre eksterne undertekst-renderer i at blive indlæst når interne er i brug." + +msgctxt "IDS_PPAGEADVANCED_COL_NAME" +msgid "Name" +msgstr "Navn" + +msgctxt "IDS_PPAGEADVANCED_COL_VALUE" +msgid "Value" +msgstr "Værdi" + +msgctxt "IDS_PPAGEADVANCED_RECENT_FILES_NUMBER" +msgid "Maximum number of files shown in the \"Recent files\" menu and for which the position is potentially saved." +msgstr "Højeste antal filer i \"Seneste filer\" menuen og for hvilke placeringen potentielt er gemt." + +msgctxt "IDS_PPAGEADVANCED_FILE_POS_LONGER" +msgid "Remember file position only for files longer than N minutes." +msgstr "Husk kun filplacering for filer der er længere end N minutter." + +msgctxt "IDS_PPAGEADVANCED_FILE_POS_AUDIO" +msgid "Remember file position also for audio files." +msgstr "Husk også filplacering for lydfiler." + +msgctxt "IDS_AFTER_PLAYBACK_DO_NOTHING" +msgid "Do Nothing" +msgstr "Gør intet" + +msgctxt "IDS_AFTER_PLAYBACK_PLAY_NEXT" +msgid "Play next file in the folder" +msgstr "Afspil næste fil i mappen" + +msgctxt "IDS_AFTER_PLAYBACK_REWIND" +msgid "Rewind current file" +msgstr "Spol filen tilbage" + +msgctxt "IDS_AFTER_PLAYBACK_CLOSE" +msgid "Close" +msgstr "Luk" + +msgctxt "IDS_AFTER_PLAYBACK_EXIT" +msgid "Exit" +msgstr "Afslut" + +msgctxt "IDS_AFTER_PLAYBACK_MONITOROFF" +msgid "Turn off the monitor" +msgstr "Sluk monitoren" + +msgctxt "IDS_IMAGE_JPEG_QUALITY" +msgid "JPEG Image" +msgstr "JPEG billede" + +msgctxt "IDS_IMAGE_QUALITY" +msgid "Quality (%):" +msgstr "Kvalitet (%):" + +msgctxt "IDS_PPAGEADVANCED_COVER_SIZE_LIMIT" +msgid "Maximum size (NxNpx) of a cover-art loaded in the audio only mode." +msgstr "Maksimal størrelse (NxNpx) af et cover-art indlæst i kun-lyd-tilstanden." + +msgctxt "IDS_SUBTITLE_DELAY_STEP_TOOLTIP" +msgid "The subtitle delay will be decreased/increased by this value each time the corresponding hotkeys are used (%s/%s)." +msgstr "Undertekstens forsinkelse vil blive forøget/formindsket med denne værdi hver gang genvejstasten bruges (%s/%s)." + +msgctxt "IDS_HOTKEY_NOT_DEFINED" +msgid "" +msgstr "" + +msgctxt "IDS_NAVIGATION_WATCH" +msgid "Watch" +msgstr "Se" + +msgctxt "IDS_NAVIGATION_MOVE_UP" +msgid "Move Up" +msgstr "Flyt op" + +msgctxt "IDS_NAVIGATION_MOVE_DOWN" +msgid "Move Down" +msgstr "Flyt ned" + +msgctxt "IDS_NAVIGATION_SORT" +msgid "Sort by LCN" +msgstr "Sortér efter LCN" + +msgctxt "IDS_NAVIGATION_REMOVE_ALL" +msgid "Remove all" +msgstr "Fjern alle" + +msgctxt "IDS_REMOVE_CHANNELS_QUESTION" +msgid "Are you sure you want to remove all channels from the list?" +msgstr "Er du sikker på at du vil fjerne alle kanalerne fra listen?" + +msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" +msgid "No information available" +msgstr "Der findes ingen oplysninger" + +msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" +msgid "Please wait, analysis in progress..." +msgstr "Vent venligst, undersøger..." + +msgctxt "IDS_ASPECT_RATIO_FMT" +msgid "AR %d:%d" +msgstr "AR %d:%d" + +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Aktiverer logning til fil (kræver genstart)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Resterende tid" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Høj præcision" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Efter afspilning: Spol filen tilbage" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Efter afspilning: Luk" + +msgctxt "IDS_AG_OPEN_DEVICE" +msgid "Open Device" +msgstr "Åbn enhed" + +msgctxt "IDS_AG_SAVE_AS" +msgid "Save As" +msgstr "Gem som" + +msgctxt "IDS_AG_SAVE_IMAGE" +msgid "Save Image" +msgstr "Gem billede" + +msgctxt "IDS_MPLAYERC_6" +msgid "Save Image (auto)" +msgstr "Gem billede (automatisk)" + +msgctxt "IDS_OSD_IMAGE_SAVED" +msgid "Image saved successfully" +msgstr "Billedet blev gemt" + +msgctxt "IDS_AG_LOAD_SUBTITLE" +msgid "Load Subtitle" +msgstr "Indlæs undertekst" + +msgctxt "IDS_AG_SAVE_SUBTITLE" +msgid "Save Subtitle" +msgstr "Gem undertekst" + +msgctxt "IDS_AG_PROPERTIES" +msgid "Properties" +msgstr "Egenskaber" + +msgctxt "IDS_AG_EXIT" +msgid "Exit" +msgstr "Afslut" + +msgctxt "IDS_AG_PLAYPAUSE" +msgid "Play/Pause" +msgstr "Afspil/Pause" + +msgctxt "IDS_AG_PLAY" +msgid "Play" +msgstr "Afspil" + +msgctxt "IDS_AG_STOP" +msgid "Stop" +msgstr "Stop" + +msgctxt "IDS_AG_FRAMESTEP" +msgid "Frame-step" +msgstr "Billedtrin" + +msgctxt "IDS_MPLAYERC_16" +msgid "Frame-step back" +msgstr "Billedtrin tilbage" + +msgctxt "IDS_AG_GO_TO" +msgid "Go To" +msgstr "Gå til" + +msgctxt "IDS_AG_INCREASE_RATE" +msgid "Increase Rate" +msgstr "Hurtigere" + +msgctxt "IDS_CONTENT_SHOW_GAMESHOW" +msgid "Show/Game show" +msgstr "Show/Underholdningsprogram" + +msgctxt "IDS_CONTENT_SPORTS" +msgid "Sports" +msgstr "Sport" + +msgctxt "IDS_CONTENT_CHILDREN_YOUTH_PROG" +msgid "Children's/Youth programmes" +msgstr "Børn/Unge-programmer" + +msgctxt "IDS_CONTENT_MUSIC_BALLET_DANCE" +msgid "Music/Ballet/Dance" +msgstr "Musik/Ballet/Dans" + +msgctxt "IDS_CONTENT_MUSIC_ART_CULTURE" +msgid "Arts/Culture" +msgstr "Kunst/Kultur" + +msgctxt "IDS_CONTENT_SOCIAL_POLITICAL_ECO" +msgid "Social/Political issues/Economics" +msgstr "Social/Politiske emner/Økonomi" + +msgctxt "IDS_CONTENT_LEISURE" +msgid "Leisure hobbies" +msgstr "Fritidsaktiviteter" + +msgctxt "IDS_FILE_RECYCLE" +msgid "Move to Recycle Bin" +msgstr "Flyt til papirkurv" + +msgctxt "IDS_AG_SAVE_COPY" +msgid "Save a Copy" +msgstr "Gem en kopi" + +msgctxt "IDS_FASTSEEK_LATEST" +msgid "Latest keyframe" +msgstr "Seneste keyframe" + +msgctxt "IDS_FASTSEEK_NEAREST" +msgid "Nearest keyframe" +msgstr "Nærmeste keyframe" + +msgctxt "IDS_HOOKS_FAILED" +msgid "MPC-HC encountered a problem during initialization. DVD playback may not work correctly. This might be caused by some incompatibilities with certain security tools.\n\nDo you want to report this issue?" +msgstr "Der opstod en fejl under initialisering af MPC-HC. DVD-afspilning vil måske ikke virke korrekt. Det kan skyldes nogen inkompatibilitet med bestemte sikkerhedsværktøjer.\n\nVil du rapportere dette problem?" + +msgctxt "IDS_PPAGEFULLSCREEN_SHOWNEVER" +msgid "Never show" +msgstr "Vis aldrig" + +msgctxt "IDS_PPAGEFULLSCREEN_SHOWMOVED" +msgid "Show when moving the cursor, hide after:" +msgstr "Vis mens markøren flyttes, skjul herefter:" + +msgctxt "IDS_PPAGEFULLSCREEN_SHOHHOVERED" +msgid "Show when hovering control, hide after:" +msgstr "Vis mens markøren holdes over kontrolelementerne, skjul herefter:" + +msgctxt "IDS_MAINFRM_PRE_SHADERS_FAILED" +msgid "Failed to set pre-resize shaders" +msgstr "Anvendelse af før-størrelsesændring shadere mislykkedes" + +msgctxt "IDS_OSD_RS_FT_CORRECTION_ON" +msgid "Frame Time Correction: On" +msgstr "Korrigering af billedtid: Til" + +msgctxt "IDS_OSD_RS_FT_CORRECTION_OFF" +msgid "Frame Time Correction: Off" +msgstr "Korrigering af billedtid: Fra" + +msgctxt "IDS_OSD_RS_TARGET_VSYNC_OFFSET" +msgid "Target VSync Offset: %.1f" +msgstr "Målret forskydning af lodret synkronisering: %.1f" + +msgctxt "IDS_OSD_RS_VSYNC_OFFSET" +msgid "VSync Offset: %d" +msgstr "Forskyd lodret synkronisering: %d" + +msgctxt "IDS_OSD_SPEED" +msgid "Speed: %.2lfx" +msgstr "Hastighed: %.2lfx" + +msgctxt "IDS_OSD_THUMBS_SAVED" +msgid "Thumbnails saved successfully" +msgstr "Miniaturer blev gemt" + +msgctxt "IDS_MENU_VIDEO_STREAM" +msgid "&Video Track" +msgstr "&Videospor" + +msgctxt "IDS_MENU_VIDEO_ANGLE" +msgid "Video Ang&le" +msgstr "Video vin&kel" + +msgctxt "IDS_RESET_SETTINGS" +msgid "Reset settings" +msgstr "Nulstil indstillinger" + +msgctxt "IDS_RESET_SETTINGS_WARNING" +msgid "Are you sure you want to restore MPC-HC to its default settings?\nBe warned that ALL your current settings will be lost!" +msgstr "Er du sikker på at du vil gendanne MPC-HC til sine standardindstillinger?\nBemærk at ALLE dine indstillinger vil gå tabt!" + +msgctxt "IDS_RESET_SETTINGS_MUTEX" +msgid "Please close all instances of MPC-HC so that the default settings can be restored." +msgstr "Luk venligst alle forekomster af MPC-HC så standardindstillingerne kan gendannes." + +msgctxt "IDS_EXPORT_SETTINGS" +msgid "Export settings" +msgstr "Eksportér indstillinger" + +msgctxt "IDS_EXPORT_SETTINGS_WARNING" +msgid "Some changes have not been saved yet.\nDo you want to save them before exporting?" +msgstr "Nogle ændringer er endnu ikke blevet gemt.\nVil du gemme dem, før eksport?" + +msgctxt "IDS_EXPORT_SETTINGS_SUCCESS" +msgid "The settings have been successfully exported." +msgstr "Indstillingerne er blevet eksporteret." + +msgctxt "IDS_EXPORT_SETTINGS_FAILED" +msgid "The export failed! This can happen when you don't have the correct rights." +msgstr "Eksport mislykkedes! Dette kan ske når du ikke har de nødvendige rettigheder." + +msgctxt "IDS_BDA_ERROR" +msgid "BDA Error" +msgstr "BDA fejl" + +msgctxt "IDS_AG_DECREASE_RATE" +msgid "Decrease Rate" +msgstr "Langsommere" + +msgctxt "IDS_AG_RESET_RATE" +msgid "Reset Rate" +msgstr "Nulstil hastighed" + +msgctxt "IDS_MPLAYERC_21" +msgid "Audio Delay +10 ms" +msgstr "Lydforsinkelse +10 ms" + +msgctxt "IDS_MPLAYERC_22" +msgid "Audio Delay -10 ms" +msgstr "Lydforsinkelse -10 ms" + +msgctxt "IDS_MPLAYERC_23" +msgid "Jump Forward (small)" +msgstr "Gå fremad (lille)" + +msgctxt "IDS_MPLAYERC_24" +msgid "Jump Backward (small)" +msgstr "Gå tilbage (lille)" + +msgctxt "IDS_MPLAYERC_25" +msgid "Jump Forward (medium)" +msgstr "Gå fremad (medium)" + +msgctxt "IDS_MPLAYERC_26" +msgid "Jump Backward (medium)" +msgstr "Gå tilbage (medium)" + +msgctxt "IDS_MPLAYERC_27" +msgid "Jump Forward (large)" +msgstr "Gå fremad (stor)" + +msgctxt "IDS_MPLAYERC_28" +msgid "Jump Backward (large)" +msgstr "Gå tilbage (stor)" + +msgctxt "IDS_MPLAYERC_29" +msgid "Jump Forward (keyframe)" +msgstr "Gå fremad (keyframe)" + +msgctxt "IDS_MPLAYERC_30" +msgid "Jump Backward (keyframe)" +msgstr "Gå tilbage (keyframe)" + +msgctxt "IDS_AG_NEXT" +msgid "Next" +msgstr "Næste" + +msgctxt "IDS_AG_PREVIOUS" +msgid "Previous" +msgstr "Forrige" + +msgctxt "IDS_AG_NEXT_FILE" +msgid "Next File" +msgstr "Næste fil" + +msgctxt "IDS_AG_PREVIOUS_FILE" +msgid "Previous File" +msgstr "Forrige fil" + +msgctxt "IDS_MPLAYERC_99" +msgid "Toggle Direct3D fullscreen" +msgstr "Direct3D fuldskærm til/fra" + +msgctxt "IDS_MPLAYERC_100" +msgid "Goto Prev Subtitle" +msgstr "Gå til forrige undertekst" + +msgctxt "IDS_MPLAYERC_101" +msgid "Goto Next Subtitle" +msgstr "Gå til næste undertekst" + +msgctxt "IDS_MPLAYERC_102" +msgid "Shift Subtitle Left" +msgstr "Flyt undertekst til venstre" + +msgctxt "IDS_MPLAYERC_103" +msgid "Shift Subtitle Right" +msgstr "Flyt undertekst til højre" + +msgctxt "IDS_AG_SEEKSET" +msgid "Jump to Beginning" +msgstr "Gå til begyndelsen" + +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Vis filnavn" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Vis rendererstatistik" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Nulstil rendererstatistik" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Undertekster::Diverse" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Skjul &kanter" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Kun ra&mme" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Vi&s titel- og menulinje" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Skjul &menulinje" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avanceret" + +msgctxt "IDS_AG_VIEW_MINIMAL" +msgid "View Minimal" +msgstr "Vis minimal" + +msgctxt "IDS_AG_VIEW_COMPACT" +msgid "View Compact" +msgstr "Vis kompakt" + +msgctxt "IDS_AG_VIEW_NORMAL" +msgid "View Normal" +msgstr "Vis standard" + +msgctxt "IDS_AG_FULLSCREEN" +msgid "Fullscreen" +msgstr "Fuldskærm" + +msgctxt "IDS_MPLAYERC_39" +msgid "Fullscreen (w/o res.change)" +msgstr "Fuldskærm (uden ændring af opløsning)" + +msgctxt "IDS_AG_ZOOM_AUTO_FIT" +msgid "Zoom Auto Fit" +msgstr "Zoom automatisk tilpasning" + +msgctxt "IDS_AG_VIDFRM_HALF" +msgid "VidFrm Half" +msgstr "VidRam halv" + +msgctxt "IDS_AG_VIDFRM_NORMAL" +msgid "VidFrm Normal" +msgstr "VidRam standard" + +msgctxt "IDS_AG_VIDFRM_DOUBLE" +msgid "VidFrm Double" +msgstr "VidRam dobbelt" + +msgctxt "IDS_AG_ALWAYS_ON_TOP" +msgid "Always On Top" +msgstr "Altid øverst" + +msgctxt "IDS_AG_PNS_INC_SIZE" +msgid "PnS Inc Size" +msgstr "PnS større" + +msgctxt "IDS_AG_PNS_INC_WIDTH" +msgid "PnS Inc Width" +msgstr "PnS bredere" + +msgctxt "IDS_MPLAYERC_47" +msgid "PnS Inc Height" +msgstr "PnS højere" + +msgctxt "IDS_AG_PNS_DEC_SIZE" +msgid "PnS Dec Size" +msgstr "PnS mindre" + +msgctxt "IDS_AG_PNS_DEC_WIDTH" +msgid "PnS Dec Width" +msgstr "PnS smallere" + +msgctxt "IDS_MPLAYERC_50" +msgid "PnS Dec Height" +msgstr "PnS lavere" + +msgctxt "IDS_SUBDL_DLG_DOWNLOADING" +msgid "Downloading subtitle(s), please wait." +msgstr "Downloader undertekst(er), vent venligst." + +msgctxt "IDS_SUBDL_DLG_PARSING" +msgid "Parsing list..." +msgstr "Fortolker liste..." + +msgctxt "IDS_SUBDL_DLG_NOT_FOUND" +msgid "No subtitles found." +msgstr "Ingen undertekster fundet." + +msgctxt "IDS_SUBDL_DLG_SUBS_AVAIL" +msgid "%d subtitle(s) available." +msgstr "%d tilgængelige undertekst(er)." + +msgctxt "IDS_UPDATE_CONFIG_AUTO_CHECK" +msgid "Do you want to check periodically for MPC-HC updates?\n\nThis feature can be disabled later from the Miscellaneous options page." +msgstr "Vil du periodisk søge efter opdateringer til MPC-HC?\n\nFunktionen kan deaktiveres senere på siden med Diverse indstillinger." + +msgctxt "IDS_ZOOM_50" +msgid "50%" +msgstr "50%" + +msgctxt "IDS_ZOOM_100" +msgid "100%" +msgstr "100%" + +msgctxt "IDS_ZOOM_200" +msgid "200%" +msgstr "200%" + +msgctxt "IDS_ZOOM_AUTOFIT" +msgid "Auto Fit" +msgstr "Automatisk tilpasning" + +msgctxt "IDS_ZOOM_AUTOFIT_LARGER" +msgid "Auto Fit (Larger Only)" +msgstr "Automatisk tilpasning (kun større)" + +msgctxt "IDS_AG_ZOOM_AUTO_FIT_LARGER" +msgid "Zoom Auto Fit (Larger Only)" +msgstr "Zoom automatisk tilpasning (Kun større)" + +msgctxt "IDS_OSD_ZOOM_AUTO_LARGER" +msgid "Zoom: Auto (Larger Only)" +msgstr "Zoom: Automatisk (Kun større)" + +msgctxt "IDS_TOOLTIP_EXPLORE_TO_FILE" +msgid "Double click to open file location" +msgstr "Dobbeltklik for at åbne filplacering" + +msgctxt "IDS_TOOLTIP_REMAINING_TIME" +msgid "Toggle between elapsed and remaining time" +msgstr "Skift mellem forløbet tid og resterende tid" + +msgctxt "IDS_UPDATE_DELAY_ERROR_TITLE" +msgid "Invalid delay" +msgstr "Ugyldig forsinkelse" + +msgctxt "IDS_UPDATE_DELAY_ERROR_MSG" +msgid "Please enter a number between 1 and 365." +msgstr "Indtast et tal mellem 1 og 365." + +msgctxt "IDS_AG_PNS_CENTER" +msgid "PnS Center" +msgstr "PnS center" + +msgctxt "IDS_AG_PNS_LEFT" +msgid "PnS Left" +msgstr "PnS venstre" + +msgctxt "IDS_AG_PNS_RIGHT" +msgid "PnS Right" +msgstr "PnS højre" + +msgctxt "IDS_AG_PNS_UP" +msgid "PnS Up" +msgstr "PnS op" + +msgctxt "IDS_AG_PNS_DOWN" +msgid "PnS Down" +msgstr "PnS ned" + +msgctxt "IDS_AG_PNS_UPLEFT" +msgid "PnS Up/Left" +msgstr "PnS op/venstre" + +msgctxt "IDS_AG_PNS_UPRIGHT" +msgid "PnS Up/Right" +msgstr "PnS op/højre" + +msgctxt "IDS_AG_PNS_DOWNLEFT" +msgid "PnS Down/Left" +msgstr "PnS ned/venstre" + +msgctxt "IDS_MPLAYERC_59" +msgid "PnS Down/Right" +msgstr "PnS ned/højre" + +msgctxt "IDS_AG_VOLUME_UP" +msgid "Volume Up" +msgstr "Lydstyrke op" + +msgctxt "IDS_AG_VOLUME_DOWN" +msgid "Volume Down" +msgstr "Lydstyrke ned" + +msgctxt "IDS_AG_VOLUME_MUTE" +msgid "Volume Mute" +msgstr "Lydstyrke mute" + +msgctxt "IDS_MPLAYERC_63" +msgid "DVD Title Menu" +msgstr "DVD titelmenu" + +msgctxt "IDS_AG_DVD_ROOT_MENU" +msgid "DVD Root Menu" +msgstr "DVD hovedmenu" + +msgctxt "IDS_MPLAYERC_65" +msgid "DVD Subtitle Menu" +msgstr "DVD undertekstmenu" + +msgctxt "IDS_MPLAYERC_66" +msgid "DVD Audio Menu" +msgstr "DVD lydmenu" + +msgctxt "IDS_MPLAYERC_67" +msgid "DVD Angle Menu" +msgstr "DVD vinkelmenu" + +msgctxt "IDS_MPLAYERC_68" +msgid "DVD Chapter Menu" +msgstr "DVD kapitelmenu" + +msgctxt "IDS_AG_DVD_MENU_LEFT" +msgid "DVD Menu Left" +msgstr "DVD menu venstre" + +msgctxt "IDS_MPLAYERC_70" +msgid "DVD Menu Right" +msgstr "DVD menu højre" + +msgctxt "IDS_AG_DVD_MENU_UP" +msgid "DVD Menu Up" +msgstr "DVD menu op" + +msgctxt "IDS_AG_DVD_MENU_DOWN" +msgid "DVD Menu Down" +msgstr "DVD menu ned" + +msgctxt "IDS_MPLAYERC_73" +msgid "DVD Menu Activate" +msgstr "DVD menu aktivér" + +msgctxt "IDS_AG_DVD_MENU_BACK" +msgid "DVD Menu Back" +msgstr "DVD menu tilbage" + +msgctxt "IDS_MPLAYERC_75" +msgid "DVD Menu Leave" +msgstr "DVD menu forlad" + +msgctxt "IDS_AG_BOSS_KEY" +msgid "Boss key" +msgstr "Chef tast" + +msgctxt "IDS_MPLAYERC_77" +msgid "Player Menu" +msgstr "Afspillermenu" + +msgctxt "IDS_MPLAYERC_78" +msgid "Player Menu (full)" +msgstr "Afspillermenu (fuld)" + +msgctxt "IDS_AG_FILTERS_MENU" +msgid "Filters Menu" +msgstr "Filtre menu" + +msgctxt "IDS_AG_OPTIONS" +msgid "Options" +msgstr "Indstillinger" + +msgctxt "IDS_AG_NEXT_AUDIO" +msgid "Next Audio" +msgstr "Næste lyd" + +msgctxt "IDS_AG_PREV_AUDIO" +msgid "Prev Audio" +msgstr "Forrige lyd" + +msgctxt "IDS_AG_NEXT_SUBTITLE" +msgid "Next Subtitle" +msgstr "Næste undertekst" + +msgctxt "IDS_AG_PREV_SUBTITLE" +msgid "Prev Subtitle" +msgstr "Forrige undertekst" + +msgctxt "IDS_MPLAYERC_85" +msgid "On/Off Subtitle" +msgstr "Slå undertekst til/fra" + +msgctxt "IDS_MPLAYERC_86" +msgid "Reload Subtitles" +msgstr "Genindlæs undertekster" + +msgctxt "IDS_MPLAYERC_87" +msgid "Next Audio (OGM)" +msgstr "Næste lyd (OGM)" + +msgctxt "IDS_MPLAYERC_88" +msgid "Prev Audio (OGM)" +msgstr "Forrige lyd (OGM)" + +msgctxt "IDS_MPLAYERC_89" +msgid "Next Subtitle (OGM)" +msgstr "Næste undertekst (OGM)" + +msgctxt "IDS_MPLAYERC_90" +msgid "Prev Subtitle (OGM)" +msgstr "Forrige undertekst (OGM)" + +msgctxt "IDS_MPLAYERC_91" +msgid "Next Angle (DVD)" +msgstr "Næste vinkel (DVD)" + +msgctxt "IDS_MPLAYERC_92" +msgid "Prev Angle (DVD)" +msgstr "Forrige vinkel (DVD)" + +msgctxt "IDS_MPLAYERC_93" +msgid "Next Audio (DVD)" +msgstr "Næste lyd (DVD)" + +msgctxt "IDS_MPLAYERC_94" +msgid "Prev Audio (DVD)" +msgstr "Forrige lyd (DVD)" + +msgctxt "IDS_MPLAYERC_95" +msgid "Next Subtitle (DVD)" +msgstr "Næste undertekst (DVD)" + +msgctxt "IDS_MPLAYERC_96" +msgid "Prev Subtitle (DVD)" +msgstr "Forrige undertekst (DVD)" + +msgctxt "IDS_MPLAYERC_97" +msgid "On/Off Subtitle (DVD)" +msgstr "Til/Fra undertekst (DVD)" + +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Vis nuværende tid" + +msgctxt "IDS_PPAGEWEBSERVER_0" +msgid "Select the directory" +msgstr "Vælg mappen" + +msgctxt "IDS_FAVORITES_QUICKADDFAVORITE" +msgid "Quick add favorite" +msgstr "Tilføj favorit hurtigt" + +msgctxt "IDS_DVB_CHANNEL_NUMBER" +msgid "N" +msgstr "N" + +msgctxt "IDS_DVB_CHANNEL_NAME" +msgid "Name" +msgstr "Navn" + +msgctxt "IDS_DVB_CHANNEL_FREQUENCY" +msgid "Frequency" +msgstr "Frekvens" + +msgctxt "IDS_DVB_CHANNEL_ENCRYPTION" +msgid "Encrypted" +msgstr "Krypteret" + +msgctxt "IDS_DVB_CHANNEL_ENCRYPTED" +msgid "Yes" +msgstr "Ja" + +msgctxt "IDS_DVB_CHANNEL_NOT_ENCRYPTED" +msgid "No" +msgstr "Nej" + +msgctxt "IDS_DVB_CHANNEL_START_SCAN" +msgid "Start" +msgstr "Start" + +msgctxt "IDS_DVB_CHANNEL_STOP_SCAN" +msgid "Stop" +msgstr "Stop" + +msgctxt "IDS_DVB_TVNAV_SEERADIO" +msgid "Radio stations" +msgstr "Radio-stationer" + +msgctxt "IDS_DVB_TVNAV_SEETV" +msgid "TV stations" +msgstr "TV-stationer" + +msgctxt "IDS_DVB_CHANNEL_FORMAT" +msgid "Format" +msgstr "Format" + +msgctxt "IDS_MAINFRM_2" +msgid "Focus lost to: %s - %s" +msgstr "Fokus tabt til: %s - %s" + +msgctxt "IDS_AG_SUBTITLES_SAVED" +msgid "Subtitles saved" +msgstr "Undertekster gemt" + +msgctxt "IDS_MAINFRM_4" +msgid "Cannot save subtitles" +msgstr "Kan ikke gemmer undertekster" + +msgctxt "IDS_AG_FRAMERATE" +msgid "Frame rate" +msgstr "Billedhastighed" + +msgctxt "IDS_MAINFRM_6" +msgid "drawn: %d, dropped: %d" +msgstr "tegnet: %d, tabt: %d" + +msgctxt "IDS_AG_FRAMES" +msgid "Frames" +msgstr "Billeder" + +msgctxt "IDS_AG_BUFFERS" +msgid "Buffers" +msgstr "Buffere" + +msgctxt "IDS_MAINFRM_9" +msgid "Volume: %02lu/%02lu, Title: %02lu/%02lu, Chapter: %02lu/%02lu" +msgstr "Volumen: %02lu/%02lu, Titel: %02lu/%02lu, Kapitel: %02lu/%02lu" + +msgctxt "IDS_MAINFRM_10" +msgid "Angle: %02lu/%02lu, %lux%lu %lu Hz %lu:%lu" +msgstr "Vinkel: %02lu/%02lu, %lux%lu %lu Hz %lu:%lu" + +msgctxt "IDS_MAINFRM_11" +msgid "%s, %s %u Hz %d bits %d %s" +msgstr "%s, %s %u Hz %d bits %d %s" + +msgctxt "IDS_ADD_TO_PLAYLIST" +msgid "Add to MPC-HC Playlist" +msgstr "Føj til MPC-HC spilleliste" + +msgctxt "IDS_OPEN_WITH_MPC" +msgid "Play with MPC-HC" +msgstr "Afspil med MPC-HC" + +msgctxt "IDS_CANNOT_CHANGE_FORMAT" +msgid "MPC-HC has not enough privileges to change files formats associations. Please click on the \"Run as administrator\" button." +msgstr "MPC-HC har ikke nok tilladelser til at ændre tilknytninger af filformater. Klik venligst på \"Kør som administrator\" knappen." + +msgctxt "IDS_APP_DESCRIPTION" +msgid "MPC-HC is an extremely light-weight, open source media player for Windows. It supports all common video and audio file formats available for playback. We are 100% spyware free, there are no advertisements or toolbars." +msgstr "MPC-HC er en ekstremt-letvægt, open source medieafspiller til Windows. Den kan afspille alle de mest anvendte video- og lydfil formater. Vi er 100% spyware fri og der er ingen reklamer eller værktøjslinjer." + +msgctxt "IDS_MAINFRM_12" +msgid "channel" +msgstr "kanal" + +msgctxt "IDS_MAINFRM_13" +msgid "channels" +msgstr "kanaler" + +msgctxt "IDS_AG_TITLE" +msgid "Title %u" +msgstr "Titel %u" + +msgctxt "IDS_MAINFRM_16" +msgid "DVD: Unexpected error" +msgstr "DVD: Uventet fejl" + +msgctxt "IDS_MAINFRM_17" +msgid "DVD: Copy-Protect Fail" +msgstr "DVD: Kopi-beskyttelse fejl" + +msgctxt "IDS_MAINFRM_18" +msgid "DVD: Invalid DVD 1.x Disc" +msgstr "DVD: Ugyldig DVD 1.x disk" + +msgctxt "IDS_MAINFRM_19" +msgid "DVD: Invalid Disc Region" +msgstr "DVD: Ugyldig disk-region" + +msgctxt "IDS_MAINFRM_20" +msgid "DVD: Low Parental Level" +msgstr "DVD: Lavt forældre niveau" + +msgctxt "IDS_MAINFRM_21" +msgid "DVD: Macrovision Fail" +msgstr "DVD: Macrovision mislykkedes" + +msgctxt "IDS_MAINFRM_22" +msgid "DVD: Incompatible System And Decoder Regions" +msgstr "DVD: Inkompatibelt system og dekoder-regioner" + +msgctxt "IDS_MAINFRM_23" +msgid "DVD: Incompatible Disc And Decoder Regions" +msgstr "DVD: Inkompatibel disk og dekoder-regioner" + +msgctxt "IDS_D3DFS_WARNING" +msgid "This option is designed to avoid tearing. However, it will also prevent MPC-HC from displaying the context menu and any dialog box during playback.\n\nDo you really want to activate this option?" +msgstr "Denne indstilling er designet til at undgå iturivning. Det forhindre dog også MPC-HC i at vise genvejsmenuen og dialogbokse under afspilning.\n\nEr du sikker på at du vil aktivere denne indstilling?" + +msgctxt "IDS_MAINFRM_139" +msgid "Sub delay: %ld ms" +msgstr "Undertekst forsinkelse: %ld ms" + +msgctxt "IDS_AG_TITLE2" +msgid "Title: %02d/%02d" +msgstr "Titel: %02d/%02d" + +msgctxt "IDS_REALVIDEO_INCOMPATIBLE" +msgid "Filename contains unsupported characters (use only A-Z, 0-9)" +msgstr "Filnavn indeholder tegn som ikke er understøttet (brug kun A-Z, 0-9)" + +msgctxt "IDS_THUMB_ROWNUMBER" +msgid "Rows:" +msgstr "Rækker:" + +msgctxt "IDS_THUMB_COLNUMBER" +msgid "Columns:" +msgstr "Kolonner:" + +msgctxt "IDS_THUMB_IMAGE_WIDTH" +msgid "Image width" +msgstr "Billedbredde" + +msgctxt "IDS_PPSDB_URLCORRECT" +msgid "The URL appears to be correct!" +msgstr "URL'en ser ud til at være korrekt!" + +msgctxt "IDS_PPSDB_PROTOCOLERR" +msgid "Protocol version mismatch, please upgrade your player or choose a different address!" +msgstr "Uoverensstemmelse i protokol-version, opdater venligst din afspiller eller vælg en anden adresse!" + +msgctxt "IDS_AG_ASPECT_RATIO" +msgid "Aspect Ratio" +msgstr "Højde-bredde-forhold" + +msgctxt "IDS_MAINFRM_37" +msgid ", Total: %ld, Dropped: %ld" +msgstr ", total: %ld, tabt: %ld" + +msgctxt "IDS_MAINFRM_38" +msgid ", Size: %I64d KB" +msgstr ", størrelse: %I64d KB" + +msgctxt "IDS_MAINFRM_39" +msgid ", Size: %I64d MB" +msgstr ", størrelse: %I64d MB" + +msgctxt "IDS_MAINFRM_40" +msgid ", Free: %I64d KB" +msgstr ", Ledig: %I64d KB" + +msgctxt "IDS_MAINFRM_41" +msgid ", Free: %I64d MB" +msgstr ", Ledig: %I64d MB" + +msgctxt "IDS_MAINFRM_42" +msgid ", Free V/A Buffers: %03d/%03d" +msgstr ", Ledig V/A buffere: %03d/%03d" + +msgctxt "IDS_AG_ERROR" +msgid "Error" +msgstr "Fejl" + +msgctxt "IDS_SUBTITLE_STREAM_OFF" +msgid "Subtitle: off" +msgstr "Undertekst: fra" + +msgctxt "IDS_SUBTITLE_STREAM" +msgid "Subtitle: %s" +msgstr "Undertekst: %s" + +msgctxt "IDS_MAINFRM_46" +msgid "Select the path for the DVD/BD:" +msgstr "Vælg stien til DVD/BD:" + +msgctxt "IDS_SUB_LOADED_SUCCESS" +msgid " loaded successfully" +msgstr " indlæst med succes" + +msgctxt "IDS_ALL_FILES_FILTER" +msgid "All files (*.*)|*.*||" +msgstr "Alle filer (*.*)|*.*||" + +msgctxt "IDS_GETDIB_FAILED" +msgid "GetDIB failed, hr = %08x" +msgstr "GetDIB mislykkedes, hr = %08x" + +msgctxt "IDS_GETCURRENTIMAGE_FAILED" +msgid "GetCurrentImage failed, hr = %08x" +msgstr "GetCurrentImage mislykkedes, hr = %08x" + +msgctxt "IDS_SCREENSHOT_ERROR" +msgid "Cannot create file" +msgstr "Kan ikke oprette filen" + +msgctxt "IDS_THUMBNAILS_NO_DURATION" +msgid "Cannot create thumbnails for files with no duration" +msgstr "Kan ikke oprette miniaturer fra filer uden varighed" + +msgctxt "IDS_THUMBNAILS_NO_FRAME_SIZE" +msgid "Failed to get video frame size" +msgstr "Kunne ikke finde videoens billedstørrelse" + +msgctxt "IDS_OUT_OF_MEMORY" +msgid "Out of memory, go buy some more!" +msgstr "Ikke mere hukommelse, køb noget mere!" + +msgctxt "IDS_THUMBNAILS_INVALID_FORMAT" +msgid "Invalid image format, cannot create thumbnails out of %d bpp dibs." +msgstr "Ugyldig billedformat, kan ikke oprette miniaturer ud af %d bpp dibs." + +msgctxt "IDS_THUMBNAILS_INFO_FILESIZE" +msgid "File Size: %s (%s bytes)\\N" +msgstr "Filstørrelse: %s (%s bytes)\\N" + +msgctxt "IDS_THUMBNAILS_INFO_HEADER" +msgid "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}File Name: %s\\N%sResolution: %dx%d %s\\NDuration: %02d:%02d:%02d" +msgstr "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}Filnavn: %s\\N%sOpløsning: %dx%d %s\\NVarighed: %02d:%02d:%02d" + +msgctxt "IDS_THUMBNAIL_TOO_SMALL" +msgid "The thumbnails would be too small, impossible to create the file.\n\nTry lowering the number of thumbnails or increasing the total size." +msgstr "Miniaturerne ville blive for små, umuligt at oprette filen.\n\nPrøv at mindske antallet af miniaturer eller øge den samlede størrelse." + +msgctxt "IDS_CANNOT_LOAD_SUB" +msgid "To load subtitles you have to change the video renderer type and reopen the file.\n- DirectShow: VMR-7/VMR-9 (renderless), EVR (CP), Sync, madVR or Haali\n- RealMedia: Special renderer for RealMedia, or open it through DirectShow\n- QuickTime: DX7 or DX9 renderer for QuickTime\n- ShockWave: n/a" +msgstr "For at indlæse undertekster skal du skifte video-renderer typen og genåbne filen.\n- DirectShow: VMR-7/VMR-9 (renderless), EVR (CP), Sync, madVR eller Haali\n- RealMedia: Speciel renderer til RealMedia, eller åbn den gennem DirectShow\n- QuickTime: DX7 eller DX9 renderer til QuickTime\n- ShockWave: ikke tilgængelig" + +msgctxt "IDS_SUBTITLE_FILES_FILTER" +msgid "Subtitle files" +msgstr "Undertekst-filer" + +msgctxt "IDS_MAINFRM_68" +msgid "Aspect Ratio: %ld:%ld" +msgstr "Højde-bredde-forhold: %ld:%ld" + +msgctxt "IDS_MAINFRM_69" +msgid "Aspect Ratio: Default" +msgstr "Højde-bredde-forhold: Standard" + +msgctxt "IDS_MAINFRM_70" +msgid "Audio delay: %I64d ms" +msgstr "Lydforsinkelse: %I64d ms" + +msgctxt "IDS_AG_CHAPTER" +msgid "Chapter %d" +msgstr "Kapitel %d" + +msgctxt "IDS_AG_OUT_OF_MEMORY" +msgid "Out of memory" +msgstr "Ikke mere hukommelse" + +msgctxt "IDS_MAINFRM_77" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Fejl: Adobe Flash Player til Internet Explorer er påkrævet" + +msgctxt "IDS_MAINFRM_78" +msgid "QuickTime not yet supported for X64 (apple library not available)" +msgstr "QuickTime er endnu ikke understøttet til X64 (apple-bibliotek er ikke tilgængelig)" + +msgctxt "IDS_MAINFRM_80" +msgid "Failed to create the filter graph object" +msgstr "Oprettelsen af filtergraf objektet mislykkedes" + +msgctxt "IDS_MAINFRM_81" +msgid "Invalid argument" +msgstr "Ugyldig argument" + +msgctxt "IDS_MAINFRM_82" +msgid "Opening aborted" +msgstr "Åbning afbrudt" + +msgctxt "IDS_MAINFRM_83" +msgid "Failed to render the file" +msgstr "Kunne ikke rendere filen" + +msgctxt "IDS_PPSDB_BADURL" +msgid "Bad URL, could not locate subtitle database there!" +msgstr "Forkert URL, der blev ikke fundet en database med undertekster!" + +msgctxt "IDS_AG_CHAPTER2" +msgid "Chapter: " +msgstr "Kapitel: " + +msgctxt "IDS_VOLUME_OSD" +msgid "Vol: %d%%" +msgstr "Lydstyrke: %d%%" + +msgctxt "IDS_BOOST_OSD" +msgid "Boost: +%u%%" +msgstr "Forstærk: +%u%%" + +msgctxt "IDS_BALANCE_OSD" +msgid "Balance: %s" +msgstr "Balance: %s" + +msgctxt "IDS_FULLSCREENMONITOR_CURRENT" +msgid "Current" +msgstr "Aktuel" + +msgctxt "IDS_MPC_CRASH" +msgid "MPC-HC terminated unexpectedly. To help us fix this problem, please send this file \"%s\" to our bug tracker.\n\nDo you want to open the folder containing the minidump file and visit the bug tracker now?" +msgstr "MPC-HC lukkede uventet. Send venligst denne fil \"%s\" til vores bug-sporing, for at hjælpe os med at rette dette problem.\n\nØnsker du at åbne mappen med minidump-filen og besøge bug-sporeren nu?" + +msgctxt "IDS_MPC_MINIDUMP_FAIL" +msgid "Failed to create dump file to \"%s\" (error %u)" +msgstr "Forsøg på at oprette dump-fil til \"%s\" mislykkedes (fejl %u)" + +msgctxt "IDS_MAINFRM_DIR_TITLE" +msgid "Select Directory" +msgstr "Vælg mappe" + +msgctxt "IDS_MAINFRM_DIR_CHECK" +msgid "Include subdirectories" +msgstr "Medtag undermapper" + +msgctxt "IDS_AG_PAUSE" +msgid "Pause" +msgstr "Pause" + +msgctxt "IDS_AG_TOGGLE_CAPTION" +msgid "Toggle Caption&Menu" +msgstr "Titel- og &menulinje til/fra" + +msgctxt "IDS_AG_TOGGLE_SEEKER" +msgid "Toggle Seek Bar" +msgstr "Søgelinje til/fra" + +msgctxt "IDS_AG_TOGGLE_CONTROLS" +msgid "Toggle Controls" +msgstr "Kontrolelementer til/fra" + +msgctxt "IDS_MAINFRM_84" +msgid "Invalid file name" +msgstr "Ugyldigt filnavn" + +msgctxt "IDS_MAINFRM_86" +msgid "Cannot connect the filters" +msgstr "Kan ikke forbinde filtrene" + +msgctxt "IDS_MAINFRM_87" +msgid "Cannot load any source filter" +msgstr "Kan ikke indlæse nogen kildefiltre" + +msgctxt "IDS_MAINFRM_88" +msgid "Cannot render the file" +msgstr "Kan ikke rendere filen" + +msgctxt "IDS_MAINFRM_89" +msgid "Invalid file format" +msgstr "Ugyldigt filformat" + +msgctxt "IDS_MAINFRM_90" +msgid "File not found" +msgstr "Filen blev ikke fundet" + +msgctxt "IDS_MAINFRM_91" +msgid "Unknown file type" +msgstr "Ukendt filtype" + +msgctxt "IDS_MAINFRM_92" +msgid "Unsupported stream" +msgstr "Ikke understøttede stream" + +msgctxt "IDS_MAINFRM_93" +msgid "Cannot find DVD directory" +msgstr "Kan ikke finde DVD-mappe" + +msgctxt "IDS_MAINFRM_94" +msgid "Can't create the DVD Navigator filter" +msgstr "Kan ikke oprette DVD navigationsfilteret" + +msgctxt "IDS_AG_FAILED" +msgid "Failed" +msgstr "Fejlede" + +msgctxt "IDS_MAINFRM_96" +msgid "Can't create video capture filter" +msgstr "Kan ikke oprette videoindspilningsfilter" + +msgctxt "IDS_MAINFRM_98" +msgid "No capture filters" +msgstr "Ingen indspilningsfiltre" + +msgctxt "IDS_MAINFRM_99" +msgid "Can't create capture graph builder object" +msgstr "Kan ikke oprette indspilningsgraf bygger objekt" + +msgctxt "IDS_MAINFRM_108" +msgid "Couldn't open any device" +msgstr "Kunne ikke åbne nogen enhed" + +msgctxt "IDS_AG_SOUND" +msgid "Sound" +msgstr "Lyd" + +msgctxt "IDS_MAINFRM_114" +msgid "%s was not found, please insert media containing this file." +msgstr "%s blev ikke fundet, indsæt venligst mediet med denne fil." + +msgctxt "IDS_AG_ABORTED" +msgid "Aborted" +msgstr "Afbrudt" + +msgctxt "IDS_MAINFRM_116" +msgid "&Properties..." +msgstr "&Egenskaber..." + +msgctxt "IDS_MAINFRM_117" +msgid " (pin) properties..." +msgstr " (pin) egenskaber..." + +msgctxt "IDS_AG_UNKNOWN_STREAM" +msgid "Unknown Stream" +msgstr "Ukendt stream" + +msgctxt "IDS_AG_UNKNOWN" +msgid "Unknown %u" +msgstr "Ukendt %u" + +msgctxt "IDS_AG_VSYNC" +msgid "VSync" +msgstr "Lodret synkronisering" + +msgctxt "IDS_MAINFRM_121" +msgid " (Director Comments 1)" +msgstr " (Instruktør kommentar 1)" + +msgctxt "IDS_MAINFRM_122" +msgid " (Director Comments 2)" +msgstr " (Instruktør kommentar 2)" + +msgctxt "IDS_DVD_SUBTITLES_ENABLE" +msgid "Enable DVD subtitles" +msgstr "Aktivér DVD-undertekster" + +msgctxt "IDS_AG_ANGLE" +msgid "Angle %u" +msgstr "Vinkel %u" + +msgctxt "IDS_AG_VSYNCOFFSET_INCREASE" +msgid "Increase VSync Offset" +msgstr "Forskyd lodret synkronisering +" + +msgctxt "IDS_AG_DISABLED" +msgid "Disabled" +msgstr "Deaktiveret" + +msgctxt "IDS_AG_VSYNCOFFSET_DECREASE" +msgid "Decrease VSync Offset" +msgstr "Forskyd lodret synkronisering -" + +msgctxt "IDS_MAINFRM_136" +msgid "MPC-HC D3D Fullscreen" +msgstr "MPC-HC D3D fuldskærm" + +msgctxt "IDS_MAINFRM_137" +msgid "Unknown format" +msgstr "Ukendt format" + +msgctxt "IDS_MAINFRM_138" +msgid "Sub shift: %ld ms" +msgstr "Undertekst forskydning: %ld ms" + +msgctxt "IDS_VOLUME_BOOST_INC" +msgid "Volume boost increase" +msgstr "Lydstyrke forstærk +" + +msgctxt "IDS_VOLUME_BOOST_DEC" +msgid "Volume boost decrease" +msgstr "Lydstyrke forstærk -" + +msgctxt "IDS_VOLUME_BOOST_MIN" +msgid "Volume boost Min" +msgstr "Lydstyrke forstærk minimum" + +msgctxt "IDS_VOLUME_BOOST_MAX" +msgid "Volume boost Max" +msgstr "Lydstyrke forstærk maksimum" + +msgctxt "IDS_USAGE" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Anvendelse: mpc-hc.exe \"stinavn\" [parametre]\n\n\"stinavn\"\t\tHovedfilen eller mappen der skal indlæses\n\t\t(jokertegn er tilladt, \"-\" vælger standardinput)\n/dub \"dubnavn\"\tIndlæser en ekstra lydfil\n/dubdelay \"fil\"\tIndlæser en ekstra lydfil forskudt med XXms (hvis\n\t\tfilen indeholder \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering i D3D fuldskærm-tilstand\n/sub \"filnavn\"\tIndlæser en ekstra undertekstfil\n/filter \"filternavn\"\tIndlæser DirectShow-filtre fra et dynamisk linket\n\t\tbibliotek (jokertegn er tilladt)\n/dvd\t\tKør i DVD-tilstand, \"stinavn\" betyder\n\t\tDVD-mappen (valgfri)\n/dvdpos T#C\tStart afspilning ved titel T, kapitel C\n/dvdpos T#hh:mm\tStart afspilning ved titel T, tidspunkt hh:mm:ss\n/cd\t\tIndlæs alle spor fra en lyd-CD eller (S)VCD,\n\t\t\"stinavn\" betyder drevstien (valgfri)\n/device\t\tÅbn standard videoenheden\n/open\t\tÅbn filen, start ikke afspilning automatisk\n/play\t\tStart afspilning af filen så snart afspilleren er\n\t\tstartet\n/close\t\tLuk afspilleren når afspilning er slut (virker kun når\n\t\t/play bruges)\n/shutdown\tLuk styresystem når afspilning er slut\n/standby\t\tSæt styresystem i slumre når afspilning er slut\n/hibernate\tSæt styresystem i dvale når afspilning er slut\n/logoff\t\tLog af når afspilning er slut\n/lock\t\tLås arbejdsstation når afspilning er slut\n/monitoroff\tSluk skærmen når afspilning er slut\n/playnext\t\tÅbn næste fil i mappen når afspilning er slut\n/fullscreen\tStart i fuldskærm\n/minimized\tStart minimeret\n/new\t\tÅbn en ny forekomst af afspilleren\n/add\t\tTilføj \"stinavn\" til spilleliste, kan kombineres\n\t\tmed /open og /play\n/randomize\tTilfældig rækkefølge i spilleliste\n/regvid\t\tOpret filtilknytninger til videofiler\n/regaud\t\tOpret filtilknytninger til lydfiler\n/regpl\t\tOpret filtilknytninger til spillelistefiler\n/regall\t\tOpret filtilknytninger til alle understøttede filtyper\n/unregall\t\tFjern alle filtilknytninger\n/start ms\t\tStart afspilning ved \"ms\" (= millisekunder)\n/startpos\t\thh:mm:ss\tStart afspilning ved tidspunkt hh:mm:ss\n/fixedsize w,h\tBrug fast vinduesstørrelse\n/monitor N\tStart afspilning på skærm N, hvor N starter fra 1\n/audiorenderer N\tStart med lyd-rendereren N, hvor N starter fra 1\n\t\t(se \"Output\" indstillinger)\n/shaderpreset \"Pr\"\tStart med \"Pr\" shader forudindstilling\n/pns \"navn\"\tVælg panorering og scanning forudindstilling\n/iconsassoc\tTilknyt format-ikoner igen\n/nofocus\t\tÅbn MPC-HC i baggrunden\n/webport N\tStart webgrænsefladen på den valgte port\n/debug\t\tVis fejlfindingsoplysninger i OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tBrug MPC-HC som slave\n/reset\t\tGendan standardindstillinger\n/help /h /?\tVis hjælp til kommandolinjeparametre\n" + +msgctxt "IDS_UNKNOWN_SWITCH" +msgid "Unrecognized switch(es) found in command line string: \n\n" +msgstr "Ukendte parametre i kommandolinje streng: \n\n" + +msgctxt "IDS_AG_TOGGLE_INFO" +msgid "Toggle Information" +msgstr "Oplysninger til/fra" + +msgctxt "IDS_AG_TOGGLE_STATS" +msgid "Toggle Statistics" +msgstr "Statistik til/fra" + +msgctxt "IDS_AG_TOGGLE_STATUS" +msgid "Toggle Status" +msgstr "Status til/fra" + +msgctxt "IDS_AG_TOGGLE_SUBRESYNC" +msgid "Toggle Subresync Bar" +msgstr "Undertekst gensynk.linje til/fra" + +msgctxt "IDS_AG_TOGGLE_PLAYLIST" +msgid "Toggle Playlist Bar" +msgstr "Spillelistelinje til/fra" + +msgctxt "IDS_AG_TOGGLE_CAPTURE" +msgid "Toggle Capture Bar" +msgstr "Indspilningslinje til/fra" + +msgctxt "IDS_AG_TOGGLE_DEBUGSHADERS" +msgid "Toggle Debug Shaders" +msgstr "Fejlfind shadere til/fra" + +msgctxt "IDS_AG_ZOOM_50" +msgid "Zoom 50%" +msgstr "Zoom 50%" + +msgctxt "IDS_AG_ZOOM_100" +msgid "Zoom 100%" +msgstr "Zoom 100%" + +msgctxt "IDS_AG_ZOOM_200" +msgid "Zoom 200%" +msgstr "Zoom 200%" + +msgctxt "IDS_AG_NEXT_AR_PRESET" +msgid "Next AR Preset" +msgstr "Næste højde-bredde-forudindstilling" + +msgctxt "IDS_AG_VIDFRM_STRETCH" +msgid "VidFrm Stretch" +msgstr "VidRam stræk" + +msgctxt "IDS_AG_VIDFRM_INSIDE" +msgid "VidFrm Inside" +msgstr "VidRam indefra" + +msgctxt "IDS_AG_VIDFRM_OUTSIDE" +msgid "VidFrm Outside" +msgstr "VidRam udefra" + +msgctxt "IDS_AG_PNS_RESET" +msgid "PnS Reset" +msgstr "PnS nulstil" + +msgctxt "IDS_AG_PNS_ROTATEX_P" +msgid "PnS Rotate X+" +msgstr "PnS roter X+" + +msgctxt "IDS_AG_VIDFRM_ZOOM1" +msgid "VidFrm Zoom 1" +msgstr "VidRam zoom 1" + +msgctxt "IDS_AG_VIDFRM_ZOOM2" +msgid "VidFrm Zoom 2" +msgstr "VidRam zoom 2" + +msgctxt "IDS_AG_VIDFRM_SWITCHZOOM" +msgid "VidFrm Switch Zoom" +msgstr "VidRam skift zoom" + +msgctxt "IDS_ENABLE_ALL_FILTERS" +msgid "&Enable all filters" +msgstr "&Aktivér alle filtre" + +msgctxt "IDS_NAVIGATE_TUNERSCAN" +msgid "Tuner scan" +msgstr "Tuner scanning" + +msgctxt "IDS_SUBTITLES_ERROR" +msgid "Subtitles are not loaded or unsupported renderer." +msgstr "Undertekster er ikke indlæst eller ikke understøttet renderer." + +msgctxt "IDS_LOGO_AUTHOR" +msgid "Author unknown. Contact us if you made this logo!" +msgstr "Ukendt forfatter. Kontakt os hvis du har lavet dette logo!" + +msgctxt "IDS_NO_MORE_MEDIA" +msgid "No more media in the current folder." +msgstr "Ikke flere medier i den aktuelle mappe." + +msgctxt "IDS_FIRST_IN_FOLDER" +msgid "The first file of the folder is already loaded." +msgstr "Den første fil fra mappen er allerede indlæst." + +msgctxt "IDS_LAST_IN_FOLDER" +msgid "The last file of the folder is already loaded." +msgstr "Den sidste fil fra mappen er allerede indlæst." + +msgctxt "IDS_FRONT_LEFT" +msgid "Front Left" +msgstr "Front Left" + +msgctxt "IDS_FRONT_RIGHT" +msgid "Front Right" +msgstr "Front Right" + +msgctxt "IDS_FRONT_CENTER" +msgid "Front Center" +msgstr "Front Center" + +msgctxt "IDS_LOW_FREQUENCY" +msgid "Low Frequency" +msgstr "Low Frequency" + +msgctxt "IDS_BACK_LEFT" +msgid "Back Left" +msgstr "Back Left" + +msgctxt "IDS_BACK_RIGHT" +msgid "Back Right" +msgstr "Back Right" + +msgctxt "IDS_FRONT_LEFT_OF_CENTER" +msgid "Front Left of Center" +msgstr "Front Left of Center" + +msgctxt "IDS_FRONT_RIGHT_OF_CENTER" +msgid "Front Right of Center" +msgstr "Front Right of Center" + +msgctxt "IDS_BACK_CENTER" +msgid "Back Center" +msgstr "Back Center" + +msgctxt "IDS_SIDE_LEFT" +msgid "Side Left" +msgstr "Side Left" + +msgctxt "IDS_SIDE_RIGHT" +msgid "Side Right" +msgstr "Side Right" + +msgctxt "IDS_TOP_CENTER" +msgid "Top Center" +msgstr "Top Center" + +msgctxt "IDS_TOP_FRONT_LEFT" +msgid "Top Front Left" +msgstr "Top Front Left" + +msgctxt "IDS_TOP_FRONT_CENTER" +msgid "Top Front Center" +msgstr "Top Front Center" + +msgctxt "IDS_TOP_FRONT_RIGHT" +msgid "Top Front Right" +msgstr "Top Front Right" + +msgctxt "IDS_TOP_BACK_LEFT" +msgid "Top Back Left" +msgstr "Top Back Left" + +msgctxt "IDS_TOP_BACK_CENTER" +msgid "Top Back Center" +msgstr "Top Back Center" + +msgctxt "IDS_TOP_BACK_RIGHT" +msgid "Top Back Right" +msgstr "Top Back Right" + +msgctxt "IDS_TIME_TOOLTIP_ABOVE" +msgid "Above seek bar" +msgstr "Over søgelinje" + +msgctxt "IDS_TIME_TOOLTIP_BELOW" +msgid "Below seek bar" +msgstr "Under søgelinje" + +msgctxt "IDS_VIDEO_STREAM" +msgid "Video: %s" +msgstr "Video: %s" + +msgctxt "IDS_APPLY" +msgid "Apply" +msgstr "Anvend" + +msgctxt "IDS_CLEAR" +msgid "Clear" +msgstr "Ryd" + +msgctxt "IDS_CANCEL" +msgid "Cancel" +msgstr "Annuller" + +msgctxt "IDS_THUMB_THUMBNAILS" +msgid "Layout" +msgstr "Layout" + +msgctxt "IDS_THUMB_PIXELS" +msgid "Pixels:" +msgstr "Pixels:" + +msgctxt "IDS_TEXTFILE_ENC" +msgid "Encoding:" +msgstr "Indkodning:" + +msgctxt "IDS_DISABLE_ALL_FILTERS" +msgid "&Disable all filters" +msgstr "&Deaktivér alle filtre" + +msgctxt "IDS_ENABLE_AUDIO_FILTERS" +msgid "Enable all audio decoders" +msgstr "Aktivér alle lyd-dekodere" + +msgctxt "IDS_DISABLE_AUDIO_FILTERS" +msgid "Disable all audio decoders" +msgstr "Deaktivér alle lyd-dekodere" + +msgctxt "IDS_ENABLE_VIDEO_FILTERS" +msgid "Enable all video decoders" +msgstr "Aktivér alle video-dekodere" + +msgctxt "IDS_DISABLE_VIDEO_FILTERS" +msgid "Disable all video decoders" +msgstr "Deaktivér alle video-dekodere" + +msgctxt "IDS_STRETCH_TO_WINDOW" +msgid "Stretch To Window" +msgstr "Stræk til vindue" + +msgctxt "IDS_TOUCH_WINDOW_FROM_INSIDE" +msgid "Touch Window From Inside" +msgstr "Rør vindue indefra" + +msgctxt "IDS_ZOOM1" +msgid "Zoom 1" +msgstr "Zoom 1" + +msgctxt "IDS_ZOOM2" +msgid "Zoom 2" +msgstr "Zoom 2" + +msgctxt "IDS_TOUCH_WINDOW_FROM_OUTSIDE" +msgid "Touch Window From Outside" +msgstr "Rør vindue udefra" + +msgctxt "IDS_AUDIO_STREAM" +msgid "Audio: %s" +msgstr "Lyd: %s" + +msgctxt "IDS_AG_REOPEN" +msgid "Reopen File" +msgstr "Genåbn fil" + +msgctxt "IDS_MFMT_AVI" +msgid "AVI" +msgstr "AVI" + +msgctxt "IDS_MFMT_MPEG" +msgid "MPEG" +msgstr "MPEG" + +msgctxt "IDS_MFMT_MPEGTS" +msgid "MPEG-TS" +msgstr "MPEG-TS" + +msgctxt "IDS_MFMT_DVDVIDEO" +msgid "DVD-Video" +msgstr "DVD-Video" + +msgctxt "IDS_MFMT_MKV" +msgid "Matroska" +msgstr "Matroska" + +msgctxt "IDS_MFMT_WEBM" +msgid "WebM" +msgstr "WebM" + +msgctxt "IDS_MFMT_MP4" +msgid "MP4" +msgstr "MP4" + +msgctxt "IDS_MFMT_MOV" +msgid "QuickTime Movie" +msgstr "QuickTime Movie" + +msgctxt "IDS_MFMT_3GP" +msgid "3GP" +msgstr "3GP" + +msgctxt "IDS_MFMT_3G2" +msgid "3G2" +msgstr "3G2" + +msgctxt "IDS_MFMT_FLV" +msgid "Flash Video" +msgstr "Flash Video" + +msgctxt "IDS_MFMT_OGM" +msgid "Ogg Media" +msgstr "Ogg Media" + +msgctxt "IDS_MFMT_RM" +msgid "Real Media" +msgstr "Real Media" + +msgctxt "IDS_MFMT_RT" +msgid "Real Script" +msgstr "Real Script" + +msgctxt "IDS_MFMT_WMV" +msgid "Windows Media Video" +msgstr "Windows Media Video" + +msgctxt "IDS_MFMT_BINK" +msgid "Smacker/Bink Video" +msgstr "Smacker/Bink Video" + +msgctxt "IDS_MFMT_FLIC" +msgid "FLIC Animation" +msgstr "FLIC Animation" + +msgctxt "IDS_MFMT_DSM" +msgid "DirectShow Media" +msgstr "DirectShow Media" + +msgctxt "IDS_MFMT_IVF" +msgid "Indeo Video Format" +msgstr "Indeo Video Format" + +msgctxt "IDS_MFMT_OTHER" +msgid "Other" +msgstr "Andre" + +msgctxt "IDS_MFMT_SWF" +msgid "Shockwave Flash" +msgstr "Shockwave Flash" + +msgctxt "IDS_MFMT_OTHER_AUDIO" +msgid "Other Audio" +msgstr "Anden lyd" + +msgctxt "IDS_MFMT_AC3" +msgid "AC-3" +msgstr "AC-3" + +msgctxt "IDS_MFMT_AIFF" +msgid "AIFF" +msgstr "AIFF" + +msgctxt "IDS_MFMT_ALAC" +msgid "Apple Lossless" +msgstr "Apple Lossless" + +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + +msgctxt "IDS_MFMT_AMR" +msgid "AMR" +msgstr "AMR" + +msgctxt "IDS_MFMT_APE" +msgid "Monkey's Audio" +msgstr "Monkey's lyd" + +msgctxt "IDS_MFMT_AU" +msgid "AU/SND" +msgstr "AU/SND" + +msgctxt "IDS_MFMT_CDA" +msgid "Audio CD track" +msgstr "Audio CD track" + +msgctxt "IDS_MFMT_FLAC" +msgid "FLAC" +msgstr "FLAC" + +msgctxt "IDS_MFMT_M4A" +msgid "MPEG-4 Audio" +msgstr "MPEG-4 Audio" + +msgctxt "IDS_MFMT_MIDI" +msgid "MIDI" +msgstr "MIDI" + +msgctxt "IDS_MFMT_MKA" +msgid "Matroska audio" +msgstr "Matroska audio" + +msgctxt "IDS_MFMT_MP3" +msgid "MP3" +msgstr "MP3" + +msgctxt "IDS_MFMT_MPA" +msgid "MPEG audio" +msgstr "MPEG audio" + +msgctxt "IDS_MFMT_MPC" +msgid "Musepack" +msgstr "Musepack" + +msgctxt "IDS_MFMT_OFR" +msgid "OptimFROG" +msgstr "OptimFROG" + +msgctxt "IDS_MFMT_OGG" +msgid "Ogg Vorbis" +msgstr "Ogg Vorbis" + +msgctxt "IDS_MFMT_RA" +msgid "Real Audio" +msgstr "Real Audio" + +msgctxt "IDS_MFMT_TAK" +msgid "TAK" +msgstr "TAK" + +msgctxt "IDS_MFMT_TTA" +msgid "True Audio" +msgstr "True Audio" + +msgctxt "IDS_MFMT_PLS" +msgid "Playlist" +msgstr "Spilleliste" + +msgctxt "IDS_MFMT_BDPLS" +msgid "Blu-ray playlist" +msgstr "Blu-ray spilleliste" + +msgctxt "IDS_MFMT_RAR" +msgid "RAR Archive" +msgstr "RAR-arkiv" + +msgctxt "IDS_DVB_CHANNEL_FPS" +msgid "FPS" +msgstr "FPS" + +msgctxt "IDS_DVB_CHANNEL_RESOLUTION" +msgid "Resolution" +msgstr "Opløsning" + +msgctxt "IDS_DVB_CHANNEL_ASPECT_RATIO" +msgid "Aspect Ratio" +msgstr "Højde-bredde-forhold" + +msgctxt "IDS_ARS_WASAPI_MODE" +msgid "Use WASAPI (restart playback)" +msgstr "Brug WASAPI (genstart afspilning)" + +msgctxt "IDS_ARS_MUTE_FAST_FORWARD" +msgid "Mute on fast forward" +msgstr "Mute ved hurtig afspilning" + +msgctxt "IDS_ARS_SOUND_DEVICE" +msgid "Sound Device:" +msgstr "Lydenhed:" + +msgctxt "IDS_OSD_RS_VSYNC_ON" +msgid "VSync: On" +msgstr "Lodret synkronisering: Til" + +msgctxt "IDS_OSD_RS_VSYNC_OFF" +msgid "VSync: Off" +msgstr "Lodret synkronisering: Fra" + +msgctxt "IDS_OSD_RS_ACCURATE_VSYNC_ON" +msgid "Accurate VSync: On" +msgstr "Præcis lodret synkronisering: Til" + +msgctxt "IDS_OSD_RS_ACCURATE_VSYNC_OFF" +msgid "Accurate VSync: Off" +msgstr "Præcis lodret synkronisering: Fra" + +msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_ON" +msgid "Synchronize Video to Display: On" +msgstr "Synkroniser video til billede: Til" + +msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_OFF" +msgid "Synchronize Video to Display: Off" +msgstr "Synkroniser video til billede: Fra" + +msgctxt "IDS_OSD_RS_SYNC_TO_VIDEO_ON" +msgid "Synchronize Display to Video: On" +msgstr "Synkroniser billede til video: Til" + +msgctxt "IDS_OSD_RS_SYNC_TO_VIDEO_OFF" +msgid "Synchronize Display to Video: Off" +msgstr "Synkroniser billede til video: Fra" + +msgctxt "IDS_OSD_RS_PRESENT_NEAREST_ON" +msgid "Present at Nearest VSync: On" +msgstr "Til stede ved nærmeste lodret synkronisering: Til" + +msgctxt "IDS_OSD_RS_PRESENT_NEAREST_OFF" +msgid "Present at Nearest VSync: Off" +msgstr "Til stede ved nærmeste lodret synkronisering: Fra" + +msgctxt "IDS_OSD_RS_COLOR_MANAGEMENT_ON" +msgid "Color Management: On" +msgstr "Farvehåndtering: Til" + +msgctxt "IDS_OSD_RS_COLOR_MANAGEMENT_OFF" +msgid "Color Management: Off" +msgstr "Farvehåndtering: Fra" + +msgctxt "IDS_OSD_RS_INPUT_TYPE_AUTO" +msgid "Input Type: Auto-Detect" +msgstr "Input type: Automatisk" + +msgctxt "IDS_OSD_RS_INPUT_TYPE_HDTV" +msgid "Input Type: HDTV" +msgstr "Input type: HDTV" + +msgctxt "IDS_OSD_RS_INPUT_TYPE_SD_NTSC" +msgid "Input Type: SDTV NTSC" +msgstr "Input type: SDTV NTSC" + +msgctxt "IDS_OSD_RS_INPUT_TYPE_SD_PAL" +msgid "Input Type: SDTV PAL" +msgstr "Input type: SDTV PAL" + +msgctxt "IDS_OSD_RS_AMBIENT_LIGHT_BRIGHT" +msgid "Ambient Light: Bright (2.2 Gamma)" +msgstr "Omgivende lys: Lyst (2.2 gamma)" + +msgctxt "IDS_OSD_RS_AMBIENT_LIGHT_DIM" +msgid "Ambient Light: Dim (2.35 Gamma)" +msgstr "Omgivende lys: Nedtonet (2.35 gamma)" + +msgctxt "IDS_OSD_RS_AMBIENT_LIGHT_DARK" +msgid "Ambient Light: Dark (2.4 Gamma)" +msgstr "Omgivende lys: Mørkt (2.4 gamma)" + +msgctxt "IDS_OSD_RS_REND_INTENT_PERCEPT" +msgid "Rendering Intent: Perceptual" +msgstr "Renderingsformål: Sanselig" + +msgctxt "IDS_OSD_RS_REND_INTENT_RELATIVE" +msgid "Rendering Intent: Relative Colorimetric" +msgstr "Renderingsformål: Relativ farvemåling" + +msgctxt "IDS_OSD_RS_REND_INTENT_SATUR" +msgid "Rendering Intent: Saturation" +msgstr "Renderingsformål: Mætning" + +msgctxt "IDS_OSD_RS_REND_INTENT_ABSOLUTE" +msgid "Rendering Intent: Absolute Colorimetric" +msgstr "Renderingsformål: Absolut farvemåling" + +msgctxt "IDS_OSD_RS_OUTPUT_RANGE" +msgid "Output Range: %s" +msgstr "Outputområde: %s" + +msgctxt "IDS_OSD_RS_FLUSH_BEF_VSYNC_ON" +msgid "Flush GPU before VSync: On" +msgstr "Tøm GPU før lodret synkronisering: Til" + +msgctxt "IDS_OSD_RS_FLUSH_BEF_VSYNC_OFF" +msgid "Flush GPU before VSync: Off" +msgstr "Tøm GPU før lodret synkronisering: Fra" + +msgctxt "IDS_OSD_RS_FLUSH_AFT_PRES_ON" +msgid "Flush GPU after Present: On" +msgstr "Tøm GPU efter præsentation: Til" + +msgctxt "IDS_OSD_RS_FLUSH_AFT_PRES_OFF" +msgid "Flush GPU after Present: Off" +msgstr "Tøm GPU efter præsentation: Fra" + +msgctxt "IDS_OSD_RS_WAIT_ON" +msgid "Wait for GPU Flush: On" +msgstr "Vent på tømning af GPU: Til" + +msgctxt "IDS_OSD_RS_WAIT_OFF" +msgid "Wait for GPU Flush: Off" +msgstr "Vent på tømning af GPU: fra" + +msgctxt "IDS_OSD_RS_D3D_FULLSCREEN_ON" +msgid "D3D Fullscreen: On" +msgstr "D3D fuldskærm: Til" + +msgctxt "IDS_OSD_RS_D3D_FULLSCREEN_OFF" +msgid "D3D Fullscreen: Off" +msgstr "D3D fuldskærm: Fra" + +msgctxt "IDS_OSD_RS_NO_DESKTOP_COMP_ON" +msgid "Disable desktop composition: On" +msgstr "Deaktivér skrivebordsopbygning: Til" + +msgctxt "IDS_OSD_RS_NO_DESKTOP_COMP_OFF" +msgid "Disable desktop composition: Off" +msgstr "Deaktivér skrivebordsopbygning: Fra" + +msgctxt "IDS_OSD_RS_ALT_VSYNC_ON" +msgid "Alternative VSync: On" +msgstr "Alternativ lodret synkronisering: Til" + +msgctxt "IDS_OSD_RS_ALT_VSYNC_OFF" +msgid "Alternative VSync: Off" +msgstr "Alternativ lodret synkronisering: Fra" + +msgctxt "IDS_OSD_RS_RESET_DEFAULT" +msgid "Renderer settings reset to default" +msgstr "Rendererindstillinger nulstillet til standard" + +msgctxt "IDS_OSD_RS_RESET_OPTIMAL" +msgid "Renderer settings reset to optimal" +msgstr "Rendererindstillinger nulstillet til optimal" + +msgctxt "IDS_OSD_RS_D3D_FS_GUI_SUPP_ON" +msgid "D3D Fullscreen GUI Support: On" +msgstr "D3D fuldskærm GUI understøttelse: Til" + +msgctxt "IDS_OSD_RS_D3D_FS_GUI_SUPP_OFF" +msgid "D3D Fullscreen GUI Support: Off" +msgstr "D3D fuldskærm GUI understøttelse: Fra" + +msgctxt "IDS_OSD_RS_10BIT_RBG_OUT_ON" +msgid "10-bit RGB Output: On" +msgstr "10-bit RGB output: Til" + +msgctxt "IDS_OSD_RS_10BIT_RBG_OUT_OFF" +msgid "10-bit RGB Output: Off" +msgstr "10-bit RGB output: Fra" + +msgctxt "IDS_OSD_RS_10BIT_RBG_IN_ON" +msgid "Force 10-bit RGB Input: On" +msgstr "Gennemtving 10-bit RGB input: Til" + +msgctxt "IDS_OSD_RS_10BIT_RBG_IN_OFF" +msgid "Force 10-bit RGB Input: Off" +msgstr "Gennemtving 10-bit RGB input: Fra" + +msgctxt "IDS_OSD_RS_FULL_FP_PROCESS_ON" +msgid "Full Floating Point Processing: On" +msgstr "Fuld flydende kommatal bearbejdning: Til" + +msgctxt "IDS_OSD_RS_FULL_FP_PROCESS_OFF" +msgid "Full Floating Point Processing: Off" +msgstr "Fuld flydende kommatal bearbejdning: Fra" + +msgctxt "IDS_OSD_RS_HALF_FP_PROCESS_ON" +msgid "Half Floating Point Processing: On" +msgstr "Halv flydende kommatal bearbejdning: Til" + +msgctxt "IDS_OSD_RS_HALF_FP_PROCESS_OFF" +msgid "Half Floating Point Processing: Off" +msgstr "Halv flydende kommatal bearbejdning: Fra" + +msgctxt "IDS_BRIGHTNESS_DEC" +msgid "Brightness decrease" +msgstr "Mørkere" + +msgctxt "IDS_CONTRAST_INC" +msgid "Contrast increase" +msgstr "Kontrast +" + +msgctxt "IDS_CONTRAST_DEC" +msgid "Contrast decrease" +msgstr "Kontrast -" + +msgctxt "IDS_HUE_INC" +msgid "Hue increase" +msgstr "Farvetone +" + +msgctxt "IDS_HUE_DEC" +msgid "Hue decrease" +msgstr "Farvetone -" + +msgctxt "IDS_SATURATION_INC" +msgid "Saturation increase" +msgstr "Mætning +" + +msgctxt "IDS_SATURATION_DEC" +msgid "Saturation decrease" +msgstr "Mætning -" + +msgctxt "IDS_RESET_COLOR" +msgid "Reset color settings" +msgstr "Nulstil farveindstillinger" + +msgctxt "IDS_USING_LATEST_STABLE" +msgid "\nYou are already using the latest stable version." +msgstr "\nDu bruger allerede den seneste stabile version." + +msgctxt "IDS_USING_NEWER_VERSION" +msgid "Your current version is v%s.\n\nThe latest stable version is v%s." +msgstr "Din nuværende version er v%s.\n\nDen seneste stabile version er v%s." + +msgctxt "IDS_NEW_UPDATE_AVAILABLE" +msgid "MPC-HC v%s is now available. You are using v%s.\n\nDo you want to visit MPC-HC's website to download it?" +msgstr "MPC-HC v%s er nu tilgængelig. Du bruger v%s.\n\nØnsker du at besøge MPC-HC's hjemmeside for at hente den?" + +msgctxt "IDS_UPDATE_ERROR" +msgid "Update server not found.\n\nPlease check your internet connection or try again later." +msgstr "Opdateringsserver ikke fundet.\n\nKontroller din internetforbindelse eller prøv igen senere." + +msgctxt "IDS_UPDATE_CLOSE" +msgid "&Close" +msgstr "&Luk" + +msgctxt "IDS_OSD_ZOOM" +msgid "Zoom: %.0lf%%" +msgstr "Zoom: %.0lf%%" + +msgctxt "IDS_OSD_ZOOM_AUTO" +msgid "Zoom: Auto" +msgstr "Zoom: Automatisk" + +msgctxt "IDS_CUSTOM_CHANNEL_MAPPING" +msgid "Toggle custom channel mapping" +msgstr "Brugerdefineret kanalkort til/fra" + +msgctxt "IDS_OSD_CUSTOM_CH_MAPPING_ON" +msgid "Custom channel mapping: On" +msgstr "Brugerdefineret kanalkort: Til" + +msgctxt "IDS_OSD_CUSTOM_CH_MAPPING_OFF" +msgid "Custom channel mapping: Off" +msgstr "Brugerdefineret kanalkort: Fra" + +msgctxt "IDS_NORMALIZE" +msgid "Toggle normalization" +msgstr "Normalisering til/fra" + +msgctxt "IDS_OSD_NORMALIZE_ON" +msgid "Normalization: On" +msgstr "Normalisering: Til" + +msgctxt "IDS_OSD_NORMALIZE_OFF" +msgid "Normalization: Off" +msgstr "Normalisering: Fra" + +msgctxt "IDS_REGAIN_VOLUME" +msgid "Toggle regain volume" +msgstr "Genvind lydstyrke til/fra" + +msgctxt "IDS_OSD_REGAIN_VOLUME_ON" +msgid "Regain volume: On" +msgstr "Genvind lydstyrke: Til" + +msgctxt "IDS_OSD_REGAIN_VOLUME_OFF" +msgid "Regain volume: Off" +msgstr "Genvind lydstyrke: Fra" + +msgctxt "IDS_SIZE_UNIT_BYTES" +msgid "bytes" +msgstr "bytes" + +msgctxt "IDS_SIZE_UNIT_K" +msgid "KB" +msgstr "KB" + +msgctxt "IDS_SIZE_UNIT_M" +msgid "MB" +msgstr "MB" + +msgctxt "IDS_SIZE_UNIT_G" +msgid "GB" +msgstr "GB" + +msgctxt "IDS_SPEED_UNIT_K" +msgid "KB/s" +msgstr "KB/s" + +msgctxt "IDS_SPEED_UNIT_M" +msgid "MB/s" +msgstr "MB/s" + +msgctxt "IDS_BDA_ERROR_CREATE_TUNER" +msgid "Could not create the tuner." +msgstr "Kunne ikke oprette tuneren." + +msgctxt "IDS_BDA_ERROR_CREATE_RECEIVER" +msgid "Could not create the receiver." +msgstr "Kunne ikke oprette modtageren." + +msgctxt "IDS_BDA_ERROR_CONNECT_NW_TUNER" +msgid "Could not connect the network and the tuner." +msgstr "Kunne ikke oprette forbindelse mellem netværket og tuneren." + +msgctxt "IDS_BDA_ERROR_CONNECT_TUNER_REC" +msgid "Could not connect the tuner and the receiver." +msgstr "Kunne ikke forbinde tuneren og modtageren." + +msgctxt "IDS_BDA_ERROR_CONNECT_TUNER" +msgid "Could not connect the tuner." +msgstr "Kunne ikke forbinde tuneren." + +msgctxt "IDS_BDA_ERROR_DEMULTIPLEXER" +msgid "Could not create the demultiplexer." +msgstr "Kunne ikke oprette demultiplekseren." + +msgctxt "IDS_GOTO_ERROR_PARSING_TIME" +msgid "Error parsing the entered time!" +msgstr "Fejl ved fortolkning af den indtastede tid!" + +msgctxt "IDS_GOTO_ERROR_PARSING_TEXT" +msgid "Error parsing the entered text!" +msgstr "Fejl ved fortolkning af den indtastede tekst!" + +msgctxt "IDS_GOTO_ERROR_PARSING_FPS" +msgid "Error parsing the entered frame rate!" +msgstr "Fejl ved fortolkning af den indtastede billedhastighed!" + +msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" +msgid "Cannot frame-step, try a different video renderer." +msgstr "Kan ikke foretage billedtrin, prøv en anden video-renderer." + +msgctxt "IDS_SCREENSHOT_ERROR_REAL" +msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for RealMedia.\nSelect one of the DirectX renderers for RealMedia in MPC-HC's output options and reopen the file." +msgstr "\"Gem billede\" og \"Gem miniaturer\" virker ikke med standard video-rendereren til RealMedia.\nVælg en af DirectX-rendererne til RealMedia i MPC-HC's outputindstillinger og åbn filen på ny." + +msgctxt "IDS_SCREENSHOT_ERROR_QT" +msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for QuickTime.\nSelect one of the DirectX renderers for QuickTime in MPC-HC's output options and reopen the file." +msgstr "\"Gem billede\" og \"Gem miniaturer\" virker ikke med standard video-rendereren til QuickTime.\nVælg en af DirectX-rendererne til QuickTime i MPC-HC's outputindstillinger og åbn filen på ny." + +msgctxt "IDS_SCREENSHOT_ERROR_SHOCKWAVE" +msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work for Shockwave files." +msgstr "\"Gem billede\" og \"Gem miniaturer\" virker ikke på Shockwave-filer." + +msgctxt "IDS_SCREENSHOT_ERROR_OVERLAY" +msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the Overlay Mixer video renderer.\nChange the video renderer in MPC's output options and reopen the file." +msgstr "\"Gem billede\" og \"Gem miniaturer\" virker ikke med Overlay Mixer video-rendereren.\nVælg en anden video-renderer i MPC's outputindstillinger og åbn filen på ny." + +msgctxt "IDS_SUBDL_DLG_CONNECT_ERROR" +msgid "Cannot connect to the online subtitles database." +msgstr "Kan ikke oprette forbindelse til online databasen med undertekster." + +msgctxt "IDS_MB_SHOW_EDL_EDITOR" +msgid "Do you want to activate the EDL editor?" +msgstr "Vil du aktivere EDL-editoren?" + +msgctxt "IDS_CAPTURE_ERROR" +msgid "Capture Error" +msgstr "Fejl ved indspilning" + +msgctxt "IDS_CAPTURE_ERROR_VIDEO" +msgid "video" +msgstr "video" + +msgctxt "IDS_CAPTURE_ERROR_AUDIO" +msgid "audio" +msgstr "lyd" + +msgctxt "IDS_CAPTURE_ERROR_ADD_BUFFER" +msgid "Can't add the %s buffer filter to the graph." +msgstr "Kan ikke tilføje %s buffer filteret til grafen." + +msgctxt "IDS_CAPTURE_ERROR_CONNECT_BUFF" +msgid "Can't connect the %s buffer filter to the graph." +msgstr "Kan ikke forbinde %s buffer filteret til grafen." + +msgctxt "IDS_CAPTURE_ERROR_ADD_ENCODER" +msgid "Can't add the %s encoder filter to the graph." +msgstr "Kan ikke tilføj %s indkodningsfilteret til grafen." + +msgctxt "IDS_CAPTURE_ERROR_CONNECT_ENC" +msgid "Can't connect the %s encoder filter to the graph." +msgstr "Kan ikke forbinde %s indkodningsfilteret til grafen." + +msgctxt "IDS_CAPTURE_ERROR_COMPRESSION" +msgid "Can't set the compression format on the %s encoder filter." +msgstr "Kan ikke anvende komprimeringsformatet på %s indkodningsfilteret." + +msgctxt "IDS_CAPTURE_ERROR_MULTIPLEXER" +msgid "Can't connect the %s stream to the multiplexer filter." +msgstr "Kan ikke forbinde %s streamet til multiplekserfilteret." + +msgctxt "IDS_CAPTURE_ERROR_VID_CAPT_PIN" +msgid "No video capture pin was found." +msgstr "Der blev ikke fundet nogen videoindspilning pin." + +msgctxt "IDS_CAPTURE_ERROR_AUD_CAPT_PIN" +msgid "No audio capture pin was found." +msgstr "Der blev ikke fundet nogen lydindspilning pin." + +msgctxt "IDS_CAPTURE_ERROR_OUT_FILE" +msgid "Error initializing the output file." +msgstr "Fejl ved initialisering af output-fil." + +msgctxt "IDS_CAPTURE_ERROR_AUD_OUT_FILE" +msgid "Error initializing the audio output file." +msgstr "Fejl ved initialisering af lyd output-fil." + +msgctxt "IDS_SUBRESYNC_TIME_FORMAT" +msgid "The correct time format is [-]hh:mm:ss.ms (e.g. 01:23:45.678)." +msgstr "Det korrekte tidsformat er [-]hh:mm:ss.ms (f.eks. 01:23:45.678)." + +msgctxt "IDS_EXTERNAL_FILTERS_ERROR_MT" +msgid "This type is already in the list!" +msgstr "Denne type findes allerede i listen!" + +msgctxt "IDS_WEBSERVER_ERROR_TEST" +msgid "You need to apply the new settings before testing them." +msgstr "Du skal anvende de nye indstillinger før du kan teste dem." + +msgctxt "IDS_AFTERPLAYBACK_EXIT" +msgid "After Playback: Exit" +msgstr "Efter afspilning: Afslut" + +msgctxt "IDS_AFTERPLAYBACK_STANDBY" +msgid "After Playback: Stand By" +msgstr "Efter afspilning: Standby" + +msgctxt "IDS_AFTERPLAYBACK_HIBERNATE" +msgid "After Playback: Hibernate" +msgstr "Efter afspilning: Dvale" + +msgctxt "IDS_AFTERPLAYBACK_SHUTDOWN" +msgid "After Playback: Shutdown" +msgstr "Efter afspilning: Luk" + +msgctxt "IDS_AFTERPLAYBACK_LOGOFF" +msgid "After Playback: Log Off" +msgstr "Efter afspilning: Log af" + +msgctxt "IDS_AFTERPLAYBACK_LOCK" +msgid "After Playback: Lock" +msgstr "Efter afspilning: Lås" + +msgctxt "IDS_AFTERPLAYBACK_MONITOROFF" +msgid "After Playback: Turn off the monitor" +msgstr "Efter afspilning: Sluk monitoren" + +msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" +msgid "After Playback: Play next file in the folder" +msgstr "Efter afspilning: Afspil næste fil i mappen" + +msgctxt "IDS_AFTERPLAYBACK_DONOTHING" +msgid "After Playback: Do nothing" +msgstr "Efter afspilning: Gør ingenting" + +msgctxt "IDS_OSD_BRIGHTNESS" +msgid "Brightness: %s" +msgstr "Lysstyrke: %s" + +msgctxt "IDS_OSD_CONTRAST" +msgid "Contrast: %s" +msgstr "Kontrast: %s" + +msgctxt "IDS_OSD_HUE" +msgid "Hue: %s°" +msgstr "Farvetone: %s°" + +msgctxt "IDS_OSD_SATURATION" +msgid "Saturation: %s" +msgstr "Mætning: %s" + +msgctxt "IDS_OSD_RESET_COLOR" +msgid "Color settings restored" +msgstr "Farveindstillinger genskabt" + +msgctxt "IDS_OSD_NO_COLORCONTROL" +msgid "Color control is not supported" +msgstr "Farvestyring er ikke understøttet" + +msgctxt "IDS_BRIGHTNESS_INC" +msgid "Brightness increase" +msgstr "Lysere" + +msgctxt "IDS_LANG_PREF_EXAMPLE" +msgid "Enter your preferred languages here.\nFor example, type: \"eng jap swe\"" +msgstr "Indtast dine foretrukne sprog her.\nSkriv for eksempel: \"eng jap swe\"" + +msgctxt "IDS_OVERRIDE_EXT_SPLITTER_CHOICE" +msgid "External splitters can have their own language preference options thus MPC-HC default behavior is not to change their initial choice.\nEnable this option if you want MPC-HC to control external splitters." +msgstr "Eksterne splittere kan have deres egne sprogindstillinger og så bestemmer MPC-HC's standardindstilling ikke deres indledende valg.\nAktivér denne indstilling hvis du ønsker at MPC-HC skal have kontrol over eksterne splittere." + +msgctxt "IDS_NAVIGATE_BD_PLAYLISTS" +msgid "&Blu-Ray playlists" +msgstr "&Blu-Ray spilleliste" + +msgctxt "IDS_NAVIGATE_PLAYLIST" +msgid "&Playlist" +msgstr "&Spilleliste" + +msgctxt "IDS_NAVIGATE_CHAPTERS" +msgid "&Chapters" +msgstr "&Kapitler" + +msgctxt "IDS_NAVIGATE_TITLES" +msgid "&Titles" +msgstr "&Titler" + +msgctxt "IDS_NAVIGATE_CHANNELS" +msgid "&Channels" +msgstr "&Kanaler" + +msgctxt "IDC_FASTSEEK_CHECK" +msgid "If \"latest keyframe\" is selected, seek to the first keyframe before the actual seek point.\nIf \"nearest keyframe\" is selected, seek to the first keyframe before or after the seek point depending on which is the closest." +msgstr "Hvis \"seneste keyframe\" er valgt, så søg til den første keyframe før selve søgepunktet.\nHvis \"nærmeste keyframe\" er valgt, så søg til den første keyframe før eller efter søgepunktet afhængig af hvilken der er tættest." + +msgctxt "IDC_ASSOCIATE_ALL_FORMATS" +msgid "Associate with all formats" +msgstr "Tilknyt alle formater" + +msgctxt "IDC_ASSOCIATE_VIDEO_FORMATS" +msgid "Associate with video formats only" +msgstr "Tilknyt kun video-formater" + +msgctxt "IDC_ASSOCIATE_AUDIO_FORMATS" +msgid "Associate with audio formats only" +msgstr "Tilknyt kun lyd-formater" + +msgctxt "IDC_CLEAR_ALL_ASSOCIATIONS" +msgid "Clear all associations" +msgstr "Fjern alle tilknytninger" + +msgctxt "IDS_FILTER_SETTINGS_CAPTION" +msgid "Settings" +msgstr "Indstillinger" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.de.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.de.dialogs.po index 29876f000ee..39a9ea59396 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.de.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.de.dialogs.po @@ -1,18 +1,18 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Gaugg_Markus, 2014 # Gaugg_Markus, 2014 -# Luan , 2014 +# Luan , 2014-2015 # Luan , 2014 # Luan , 2014 # M T , 2013-2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-16 15:41+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-27 18:10+0000\n" "Last-Translator: Luan \n" "Language-Team: German (http://www.transifex.com/projects/p/mpc-hc/language/de/)\n" "MIME-Version: 1.0\n" @@ -79,7 +79,7 @@ msgstr "&Aufnahme" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK2" msgid "Enable built-in audio switcher filter (requires restart)" -msgstr "Internen Audio-Switcher aktivieren (Neustart notwendig)" +msgstr "Internen Audio-Switcher aktivieren (Neustart erforderlich)" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK5" msgid "Normalize" @@ -114,7 +114,7 @@ msgid "Enable custom channel mapping" msgstr "Benutzerdefinierte Kanalzuordnung aktivieren" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Anzahl der Eingangskanäle:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -122,7 +122,7 @@ msgid "input channels:" msgstr " " msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Um Änderungen umgehend zu übernehmen, bei der Auswahl bitte \"Shift\" drücken." msgctxt "IDD_GOTO_DLG_CAPTION" @@ -131,7 +131,7 @@ msgstr "Gehe zu" msgctxt "IDD_GOTO_DLG_IDC_STATIC" msgid "Enter a timecode using the format [hh:]mm:ss.ms to jump to a specified time. You do not need to enter the separators explicitly." -msgstr "Um die Wiedergabe an einer bestimmten Stelle fortzusetzen, bitte einen Zeitcode im Format \"[hh:]mm:ss.ms\" angeben." +msgstr "Um die Wiedergabe an einer bestimmten Position fortzusetzen, bitte einen Zeitcode im Format \"[hh:]mm:ss.ms\" angeben." msgctxt "IDD_GOTO_DLG_IDC_STATIC" msgid "Time" @@ -287,7 +287,7 @@ msgstr "Taskleistensymbol anzeigen" msgctxt "IDD_PPAGEPLAYER_IDC_SHOW_OSD" msgid "Show OSD (requires restart)" -msgstr "OSD anzeigen (Neustart notwendig)" +msgstr "OSD anzeigen (Neustart erforderlich)" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK4" msgid "Limit window proportions on resize" @@ -527,7 +527,7 @@ msgstr "ms" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Texture settings (open the video again to see the changes)" -msgstr "Untertitel-Textur (Neuladen des Videos notwendig)" +msgstr "Untertitel-Textur (Neuladen des Videos erforderlich)" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Sub pictures to buffer:" @@ -574,7 +574,7 @@ msgid "Warning" msgstr "Hinweis" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Wird hier \"Untertitelposition anpassen\" zusammen mit Vollbild-Antialiasing in den Einstellungen der Grafikkarte aktiviert, bleibt die Bildqualität unverändert. Dabei steigt die CPU-Auslastung aber deutlich an." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -686,12 +686,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows-Taskbarfunktionen verwenden (ab Windows 7)" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Nächste Ordnerdatei bei nur einem Eintrag in der Wiedergabeliste durch \"Vorwärts/Rückwärts springen\" öffnen" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Zeit-Tooltip verwenden:" +msgid "Show time tooltip:" +msgstr "Zeit-Tooltip anzeigen:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -899,7 +899,7 @@ msgstr "Warnung" msgctxt "IDD_MEDIATYPES_DLG_IDC_STATIC1" msgid "MPC-HC could not render some of the pins in the graph, you may not have the needed codecs or filters installed on the system." -msgstr "Einige Filtergraphen-Pins konnten nicht verbunden werden. Möglicherweise sind notwendige Codecs oder Filter nicht installiert." +msgstr "Einige Filtergraphen-Pins konnten nicht verbunden werden. Möglicherweise sind die nötigen Codecs oder Filter nicht installiert." msgctxt "IDD_MEDIATYPES_DLG_IDC_STATIC2" msgid "The following pin(s) failed to find a connectable filter:" @@ -1282,7 +1282,7 @@ msgid "Enable automatic update check" msgstr "Automatische Update-Prüfung aktivieren" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" +msgid "Check every:" msgstr "Tagesintervall:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" @@ -1669,3 +1669,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Fehlerberichterstattung" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "MPC-HC leider unerwartet beendet. Zur näheren Bestimmung und Lösung des Problems wurde ein Fehlerbericht zum Versand vorbereitet. Dazu sind weitere Angaben möglich." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-Mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Die Angabe der E-Mail-Adresse ist optional und dient ausschließlich zur Kontaktaufnahme, falls weitere Informationen erforderlich sind." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Problembeschreibung (englisch):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.de.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.de.menus.po index 869bb89414a..eee50760cf5 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.de.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.de.menus.po @@ -1,17 +1,17 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # JellyFrog, 2014 # JellyFrog, 2014 -# Luan , 2014 +# Luan , 2014-2015 # Luan , 2014 # M T , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-15 20:30+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 10:40+0000\n" "Last-Translator: Luan \n" "Language-Team: German (http://www.transifex.com/projects/p/mpc-hc/language/de/)\n" "MIME-Version: 1.0\n" @@ -174,15 +174,15 @@ msgstr "&Zoom" msgctxt "ID_VIEW_ZOOM_50" msgid "&50%" -msgstr "&50%" +msgstr "&50 %" msgctxt "ID_VIEW_ZOOM_100" msgid "&100%" -msgstr "&100%" +msgstr "&100 %" msgctxt "ID_VIEW_ZOOM_200" msgid "&200%" -msgstr "&200%" +msgstr "&200 %" msgctxt "ID_VIEW_ZOOM_AUTOFIT" msgid "Auto &Fit" @@ -200,13 +200,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Tearing-Test" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" msgstr "&Anzeigestatistik" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Restzeitanzeige" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "&Wiedergabezeit" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "&Namensanzeige" msgctxt "POPUP" msgid "&Output Range" @@ -557,15 +561,15 @@ msgid "S&haders" msgstr "S&hader" msgctxt "ID_AUDIOS" -msgid "&Audio" +msgid "&Audio Track" msgstr "A&udiospur" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" +msgid "Su&btitle Track" msgstr "Unter&titelspur" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" +msgid "&Video Track" msgstr "Videos&pur" msgctxt "POPUP" @@ -588,17 +592,29 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Nach Wieder&gabe" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "&Keine Aktion" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "&Nächste Ordnerdatei öffnen" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "B&ildschirm ausschalten" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Programm beenden" msgctxt "ID_AFTERPLAYBACK_STANDBY" msgid "&Stand By" -msgstr "&Energie sparen (falls verfügbar)" +msgstr "&Energie sparen" msgctxt "ID_AFTERPLAYBACK_HIBERNATE" msgid "&Hibernate" -msgstr "&Ruhezustand (falls verfügbar)" +msgstr "&Ruhezustand" msgctxt "ID_AFTERPLAYBACK_SHUTDOWN" msgid "Shut&down" @@ -612,14 +628,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Computer &sperren" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "B&ildschirm ausschalten" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "&Nächste Ordnerdatei öffnen" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigation" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.de.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.de.strings.po index 79ea1c58998..b4e2722c39b 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.de.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.de.strings.po @@ -1,10 +1,10 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: +# Gaugg_Markus, 2014-2015 # Gaugg_Markus, 2014 -# Gaugg_Markus, 2014 -# Luan , 2014 +# Luan , 2014-2015 # Luan , 2014 # Luan , 2014 # M T , 2013-2014 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-16 15:51+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-30 10:40+0000\n" "Last-Translator: Luan \n" "Language-Team: German (http://www.transifex.com/projects/p/mpc-hc/language/de/)\n" "MIME-Version: 1.0\n" @@ -189,11 +189,11 @@ msgstr "GB/s" msgctxt "IDS_FILE_FAV_ADDED" msgid "File added to favorites" -msgstr "Datei zu Favoriten hinzugefügt" +msgstr "Datei zu Favoriten hinzugefügt." msgctxt "IDS_DVD_FAV_ADDED" msgid "DVD added to favorites" -msgstr "DVD zu Favoriten hinzugefügt" +msgstr "DVD zu Favoriten hinzugefügt." msgctxt "IDS_CAPTURE_SETTINGS" msgid "Capture Settings" @@ -249,7 +249,7 @@ msgstr "Rendering einiger DVD-Navigator-Filter-Pins fehlgeschlagen" msgctxt "IDS_DVD_INTERFACES_ERROR" msgid "Failed to query the needed interfaces for DVD playback" -msgstr "Abfrage der DVD-Wiedergabe-Interfaces fehlgeschlagen" +msgstr "Interface-Abfrage für DVD-Wiedergabe fehlgeschlagen" msgctxt "IDS_CAPTURE_LIVE" msgid "Live" @@ -257,15 +257,15 @@ msgstr "Live" msgctxt "IDS_CAPTURE_ERROR_VID_FILTER" msgid "Can't add video capture filter to the graph" -msgstr "Videoaufnahme-Filter konnte dem Filtergraphen nicht hinzugefügt werden" +msgstr "Kann Videoaufnahme-Filter zum Filtergraphen nicht hinzufügen" msgctxt "IDS_CAPTURE_ERROR_AUD_FILTER" msgid "Can't add audio capture filter to the graph" -msgstr "Audioaufnahme-Filter konnte dem Filtergraphen nicht hinzugefügt werden" +msgstr "Kann Audioaufnahme-Filter zum Filtergraphen nicht hinzufügen" msgctxt "IDS_CAPTURE_ERROR_DEVICE" msgid "Could not open capture device." -msgstr "Aufnahmegerät konnte nicht geöffnet werden" +msgstr "Kann Aufnahmegerät nicht öffnen" msgctxt "IDS_INVALID_PARAMS_ERROR" msgid "Can't open, invalid input parameters" @@ -277,11 +277,11 @@ msgstr "List-Editor bearbeiten" msgctxt "IDS_GOTO_ERROR_INVALID_TIME" msgid "The entered time is greater than the file duration." -msgstr "Die angegebene Zeit überschreitet die Laufzeit der Mediendatei." +msgstr "Die angegebene Position überschreitet die Laufzeit der Mediendatei." msgctxt "IDS_MISSING_ICONS_LIB" msgid "The icons library \"mpciconlib.dll\" is missing.\nThe player's default icon will be used for file associations.\nPlease, reinstall MPC-HC to get \"mpciconlib.dll\"." -msgstr "Icon-Bibliothek \"mpciconlib.dll\" nicht gefunden.\nDiese wird für die Darstellung der Dateizuordnung benötigt.\nUm die Datei wiederherzustellen, kann der MPC-HC neu installiert werden." +msgstr "Icon-Bibliothek \"mpciconlib.dll\" nicht gefunden. Bitte den MPC-HC neu installieren, um die Darstellung der Dateizuordnung wiederherzustellen." msgctxt "IDS_SUBDL_DLG_FILENAME_COL" msgid "File" @@ -332,11 +332,11 @@ msgid "On/Off" msgstr "Ein/Aus" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Von (fps)" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "Bis (fps)" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -357,11 +357,11 @@ msgstr "System-Standard" msgctxt "IDS_GRAPH_INTERFACES_ERROR" msgid "Failed to query the needed interfaces for playback" -msgstr "Abfrage der Wiedergabe-Interfaces fehlgeschlagen" +msgstr "Interface-Abfrage für Wiedergabe fehlgeschlagen" msgctxt "IDS_GRAPH_TARGET_WND_ERROR" msgid "Could not set target window for graph notification" -msgstr "Zielfenster für Filtergraph-Benachrichtigung konnte nicht eingerichtet werden" +msgstr "Kann Zielfenster für Filtergraph-Benachrichtigung nicht einrichten" msgctxt "IDS_DVD_NAV_ALL_PINS_ERROR" msgid "Failed to render all pins of the DVD Navigator filter" @@ -485,7 +485,7 @@ msgstr "Icons neu zuordnen?" msgctxt "IDS_ICONS_REASSOC_DLG_CONTENT" msgid "This will fix the icons being incorrectly displayed after an update of the icon library.\nThe file associations will not be modified, only the corresponding icons will be refreshed." -msgstr "Diese Neuzuordnung behebt Darstellungsfehler der Icons, deren Bibliothek aktualisiert wurde.\nDabei bleibt die zuvor festgelegte Dateizuordnung aber unverändert." +msgstr "Die Neuzuordnung der Icons behebt Darstellungsfehler, die durch eine Aktualisierung der Icon-Bibliothek verursacht wurden. Dabei bleiben zuvor festgelegte Dateizuordnungen aber unverändert." msgctxt "IDS_PPAGE_OUTPUT_OLDRENDERER" msgid "Old Video Renderer" @@ -628,7 +628,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Bietet im Unterschied zum VMR-9 einen echten bikubischen Zwei-Pass-Resizer." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Verbindet sich mit allen Videotypen, um den eingehenden Stream zu verwerfen. Soll die CPU entlasten, falls keine Videoausgabe benötigt wird." msgctxt "IDC_DSNULL_UNCOMP" @@ -693,7 +693,7 @@ msgstr "Fehler melden" msgctxt "IDS_MPC_BUG_REPORT" msgid "MPC-HC just crashed but this build was compiled without debug information.\nIf you want to report this bug, you should first try an official build.\n\nDo you want to visit the download page now?" -msgstr "MPC-HC unerwartet beendet. Zur Meldung des Problems bitte eine offizielle Programmversion mit Debug-Information verwenden.\n\nDiese Version jetzt herunterladen?" +msgstr "MPC-HC unerwartet beendet. Zur Meldung des Problems bitte eine offizielle Version mit Debug-Information verwenden.\n\nDiese Programmversion jetzt herunterladen?" msgctxt "IDS_PPAGE_OUTPUT_SURF_OFFSCREEN" msgid "Regular offscreen plain surface" @@ -761,7 +761,7 @@ msgstr "MIME-Typ" msgctxt "IDS_EMB_RESOURCES_VIEWER_INFO" msgid "In order to view an embedded resource in your browser you have to enable the web interface.\n\nUse the \"Save As\" button if you only want to save the information." -msgstr "Um eingebettete Ressourcen im Browser anzuzeigen, muss das Web-Interface aktiviert werden.\n\nZum Speichern der Information bitte den Button \"Speichern unter\" verwenden." +msgstr "Zur Anzeige eingebetteter Ressourcen im Browser muss das Web-Interface aktiviert werden. Um nur die Information zu speichern, bitte den Button \"Speichern unter\" verwenden." msgctxt "IDS_DOWNLOAD_SUBS" msgid "Download subtitles" @@ -893,15 +893,15 @@ msgstr "Tempo erhöhen\nTempo erhöhen" msgctxt "ID_VOLUME_MUTE" msgid "Mute" -msgstr "Stummschaltung ein" +msgstr "Ton aus" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" -msgstr "Stummschaltung aus" +msgstr "Ton ein" msgctxt "ID_VOLUME_MUTE_DISABLED" msgid "No audio" -msgstr "Kein Audio" +msgstr "Kein Audiosignal" msgctxt "ID_NAVIGATE_SKIPBACK" msgid "Skip back\nSkip back" @@ -1037,15 +1037,15 @@ msgstr "Tearing-Test (ein/aus)" msgctxt "IDS_SCALE_16_9" msgid "Scale to 16:9 TV,%.3f,%.3f,%.3f,%.3f" -msgstr "Skalierung nach 16:9,%.3f,%.3f,%.3f,%.3f" +msgstr "Skalierung für 16:9-Anzeige,%.3f,%.3f,%.3f,%.3f" msgctxt "IDS_SCALE_WIDESCREEN" msgid "Zoom To Widescreen,%.3f,%.3f,%.3f,%.3f" -msgstr "Zoom zu Breitbild,%.3f,%.3f,%.3f,%.3f" +msgstr "Zoom für Widescreen,%.3f,%.3f,%.3f,%.3f" msgctxt "IDS_SCALE_ULTRAWIDE" msgid "Zoom To Ultra-Widescreen,%.3f,%.3f,%.3f,%.3f" -msgstr "Zoom zu Ultra-Breitbild,%.3f,%.3f,%.3f,%.3f" +msgstr "Zoom für Ultra-Widescreen,%.3f,%.3f,%.3f,%.3f" msgctxt "IDS_PLAYLIST_HIDEFS" msgid "Hide on Fullscreen" @@ -1181,15 +1181,15 @@ msgstr "Shader-Einrichtung für Pre-Resize und Post-Resize fehlgeschlagen" msgctxt "IDS_DEBUGSHADERS_FIRSTRUN_MSG" msgid "Shaders are recompiled automatically when the corresponding files are modified." -msgstr "Shader werden bei Änderung zugehöriger Dateien automatisch neu kompiliert." +msgstr "Shader werden bei Änderung der zugehörigen Dateien automatisch neu kompiliert." msgctxt "IDS_SHADER_DLL_ERR_0" msgid "Cannot load %s, pixel shaders will not work." -msgstr "%s konnte nicht geladen werden, Shader bleiben inaktiv" +msgstr "Kann %s nicht laden, Shader bleiben inaktiv" msgctxt "IDS_SHADER_DLL_ERR_1" msgid "Cannot find necessary function entry points in %s, pixel shaders will not work." -msgstr "Funktionseinsprung in %s nicht gefunden, Shader bleiben inaktiv" +msgstr "Kann Funktionseinsprünge in %s nicht finden, Shader bleiben inaktiv" msgctxt "IDS_OSD_SHADERS_PRESET" msgid "Shader preset: %s" @@ -1297,7 +1297,7 @@ msgstr "Merkt sich die Wiedergabeposition nur für Dateien länger als N Minuten msgctxt "IDS_PPAGEADVANCED_FILE_POS_AUDIO" msgid "Remember file position also for audio files." -msgstr "Merkt sich die Wiedergabeposition auch bei Audio-Dateien." +msgstr "Merkt sich die Wiedergabeposition auch bei Audiodateien." msgctxt "IDS_AFTER_PLAYBACK_DO_NOTHING" msgid "Do Nothing" @@ -1313,7 +1313,7 @@ msgstr "Zum Anfang springen" msgctxt "IDS_AFTER_PLAYBACK_CLOSE" msgid "Close" -msgstr "Wiedergabe schließen" +msgstr "Medien schließen" msgctxt "IDS_AFTER_PLAYBACK_EXIT" msgid "Exit" @@ -1369,7 +1369,7 @@ msgstr "Wirklich alle Sender von der Liste entfernen?" msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" msgid "No information available" -msgstr "Keine Informationen verfügbar" +msgstr "Keine Information verfügbar" msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" msgid "Please wait, analysis in progress..." @@ -1379,6 +1379,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Aktiviert die Dateiprotokollierung (Neustart erforderlich)." + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Restlaufzeit" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Hohe Genauigkeit" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Nach Wiedergabe: Zum Anfang springen" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Nach Wiedergabe: Medien schließen" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Gerät öffnen" @@ -1428,11 +1448,11 @@ msgid "Stop" msgstr "Stopp" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Einzelbild vor" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Einzelbild zurück" msgctxt "IDS_AG_GO_TO" @@ -1532,7 +1552,7 @@ msgid "Thumbnails saved successfully" msgstr "Miniaturansichten erfolgreich gespeichert." msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" +msgid "&Video Track" msgstr "Videos&pur" msgctxt "IDS_MENU_VIDEO_ANGLE" @@ -1545,7 +1565,7 @@ msgstr "Programm-Einstellungen zurücksetzen" msgctxt "IDS_RESET_SETTINGS_WARNING" msgid "Are you sure you want to restore MPC-HC to its default settings?\nBe warned that ALL your current settings will be lost!" -msgstr "Alle aktuellen Einstellungen gehen verloren!\nEinstellungen wirklich auf Standard-Einstellungen zurücksetzen?" +msgstr "Alle aktuellen Einstellungen gehen verloren!\n\nEinstellungen wirklich auf Standard-Einstellungen zurücksetzen?" msgctxt "IDS_RESET_SETTINGS_MUTEX" msgid "Please close all instances of MPC-HC so that the default settings can be restored." @@ -1565,7 +1585,7 @@ msgstr "Einstellungen erfolgreich gesichert." msgctxt "IDS_EXPORT_SETTINGS_FAILED" msgid "The export failed! This can happen when you don't have the correct rights." -msgstr "Sicherung fehlgeschlagen. Möglicherweise fehlen nötige Zugriffsrechte." +msgstr "Sicherung fehlgeschlagen! Möglicherweise fehlen die dafür nötigen Zugriffsrechte." msgctxt "IDS_BDA_ERROR" msgid "BDA Error" @@ -1655,14 +1675,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Untertitelverschiebung (+100 ms)" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Anzeigestatistik (ein/aus)" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Zum Anfang springen" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "Namensanzeige" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "Anzeigestatistik (ein/aus)" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "Anzeigestatistik zurücksetzen" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Untertitel::Sonstiges" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Fensterrahmen aus&blenden" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Titelleiste aus&blenden" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Fensterelemente ein&blenden" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Menüleiste aus&blenden" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Erweitert" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Fenster-Profil: Minimal" @@ -1737,7 +1789,7 @@ msgstr "Analysiere..." msgctxt "IDS_SUBDL_DLG_NOT_FOUND" msgid "No subtitles found." -msgstr "Keine Untertitel gefunden" +msgstr "Keinen Untertitel gefunden" msgctxt "IDS_SUBDL_DLG_SUBS_AVAIL" msgid "%d subtitle(s) available." @@ -1745,7 +1797,7 @@ msgstr "%d Untertitel verfügbar" msgctxt "IDS_UPDATE_CONFIG_AUTO_CHECK" msgid "Do you want to check periodically for MPC-HC updates?\n\nThis feature can be disabled later from the Miscellaneous options page." -msgstr "Wahlweise kann bei Verfügbarkeit einer aktualisierten Programmversion ein Hinweis erfolgen. Diese Einstellung ist in den Optionen auch später jederzeit wieder änderbar.\n\nAutomatische Update-Prüfung jetzt aktivieren?" +msgstr "Neue Programmversionen können über ein Hinweisfenster umgehend heruntergeladen werden. Die dazu hier getroffene Einstellung lässt sich später jederzeit ändern.\n\nAutomatische Update-Prüfung jetzt aktivieren?" msgctxt "IDS_ZOOM_50" msgid "50%" @@ -1896,12 +1948,12 @@ msgid "Boss key" msgstr "Cheftaste" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Player-Kontextmenü (lang)" +msgid "Player Menu" +msgstr "Player-Kontextmenü (reduziert)" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Player-Kontextmenü (kurz)" +msgid "Player Menu (full)" +msgstr "Player-Kontextmenü (komplett)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1979,9 +2031,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "DVD: Untertitel (ein/aus)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Restzeitanzeige (ein/aus)" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "Wiedergabezeit (ein/aus)" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2149,7 +2201,7 @@ msgstr "Titel: %02d/%02d" msgctxt "IDS_REALVIDEO_INCOMPATIBLE" msgid "Filename contains unsupported characters (use only A-Z, 0-9)" -msgstr "Bitte nur die Zeichen A-Z und 0-9 verwenden." +msgstr "Dateiname enthält andere Zeichen als A-Z und 0-9" msgctxt "IDS_THUMB_ROWNUMBER" msgid "Rows:" @@ -2169,7 +2221,7 @@ msgstr "URL erfolgreich getestet." msgctxt "IDS_PPSDB_PROTOCOLERR" msgid "Protocol version mismatch, please upgrade your player or choose a different address!" -msgstr "Protokollversionen stimmen nicht überein. Bitte Programm aktualisieren oder eine alternative Adresse verwenden." +msgstr "Protokollversionen stimmen nicht überein. Bitte den Player aktualisieren oder eine alternative Adresse verwenden." msgctxt "IDS_AG_ASPECT_RATIO" msgid "Aspect Ratio" @@ -2225,11 +2277,11 @@ msgstr "Alle Dateien (*.*)|*.*||" msgctxt "IDS_GETDIB_FAILED" msgid "GetDIB failed, hr = %08x" -msgstr "GetDIB fehlgeschlagen. (hr = %08x)" +msgstr "GetDIB fehlgeschlagen, hr = %08x." msgctxt "IDS_GETCURRENTIMAGE_FAILED" msgid "GetCurrentImage failed, hr = %08x" -msgstr "GetCurrentImage fehlgeschlagen. (hr = %08x)" +msgstr "GetCurrentImage fehlgeschlagen, hr = %08x." msgctxt "IDS_SCREENSHOT_ERROR" msgid "Cannot create file" @@ -2245,7 +2297,7 @@ msgstr "Erkennung der Videobildgröße fehlgeschlagen." msgctxt "IDS_OUT_OF_MEMORY" msgid "Out of memory, go buy some more!" -msgstr "Zu wenig Speicher verfügbar." +msgstr "Zu wenig Arbeitsspeicher verfügbar!" msgctxt "IDS_THUMBNAILS_INVALID_FORMAT" msgid "Invalid image format, cannot create thumbnails out of %d bpp dibs." @@ -2261,7 +2313,7 @@ msgstr "{\\an7\\1c&H000000&\\fs16\\b0\\bord0\\shad0}Dateiname: %s\\N%sAuflösung msgctxt "IDS_THUMBNAIL_TOO_SMALL" msgid "The thumbnails would be too small, impossible to create the file.\n\nTry lowering the number of thumbnails or increasing the total size." -msgstr "Miniaturansichten können in dieser geringen Größe nicht erstellt werden.\n\nBitte die Anzahl der Miniaturansichten verringern oder deren Gesamtgröße erhöhen." +msgstr "Miniaturansichten können in dieser geringen Größe nicht erstellt werden. Bitte die Anzahl der Miniaturansichten verringern oder deren Gesamtgröße erhöhen." msgctxt "IDS_CANNOT_LOAD_SUB" msgid "To load subtitles you have to change the video renderer type and reopen the file.\n- DirectShow: VMR-7/VMR-9 (renderless), EVR (CP), Sync, madVR or Haali\n- RealMedia: Special renderer for RealMedia, or open it through DirectShow\n- QuickTime: DX7 or DX9 renderer for QuickTime\n- ShockWave: n/a" @@ -2289,15 +2341,15 @@ msgstr "Kapitel %d" msgctxt "IDS_AG_OUT_OF_MEMORY" msgid "Out of memory" -msgstr "Zu wenig Speicher verfügbar" +msgstr "Zu wenig Arbeitsspeicher verfügbar" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Flash Player für Internet Explorer wird benötigt" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Adobe Flash Player für Internet Explorer wird benötigt." msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" -msgstr "QuickTime wird in 64-Bit-Umgebung nicht unterstützt" +msgstr "QuickTime wird in 64-Bit-Umgebung nicht unterstützt." msgctxt "IDS_MAINFRM_80" msgid "Failed to create the filter graph object" @@ -2364,7 +2416,7 @@ msgid "Toggle Caption&Menu" msgstr "Ansicht: Fensterelemente (ein/aus)" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Ansicht: Zeitleiste (ein/aus)" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2377,15 +2429,15 @@ msgstr "Dateiname unzulässig" msgctxt "IDS_MAINFRM_86" msgid "Cannot connect the filters" -msgstr "Filter konnten nicht verbunden werden" +msgstr "Kann Filter nicht verbinden" msgctxt "IDS_MAINFRM_87" msgid "Cannot load any source filter" -msgstr "Quellen-Filter konnten nicht geladen werden" +msgstr "Kann Quellen-Filter nicht laden" msgctxt "IDS_MAINFRM_88" msgid "Cannot render the file" -msgstr "Datei konnte nicht gerendert werden" +msgstr "Kann Datei nicht rendern" msgctxt "IDS_MAINFRM_89" msgid "Invalid file format" @@ -2405,31 +2457,31 @@ msgstr "Stream wird nicht unterstützt" msgctxt "IDS_MAINFRM_93" msgid "Cannot find DVD directory" -msgstr "DVD-Verzeichnis nicht gefunden" +msgstr "Kann DVD-Verzeichnis nicht finden" msgctxt "IDS_MAINFRM_94" msgid "Can't create the DVD Navigator filter" -msgstr "DVD-Navigator-Filter konnte nicht erstellt werden" +msgstr "Kann DVD-Navigator-Filter nicht erstellen" msgctxt "IDS_AG_FAILED" msgid "Failed" -msgstr "Fehler" +msgstr "Fehlgeschlagen" msgctxt "IDS_MAINFRM_96" msgid "Can't create video capture filter" -msgstr "Videoaufnahme-Filter konnte nicht erstellt werden" +msgstr "Kann Videoaufnahme-Filter nicht erstellen" msgctxt "IDS_MAINFRM_98" msgid "No capture filters" -msgstr "Kein Aufnahme-Filter gefunden" +msgstr "Kein Aufnahme-Filter verfügbar" msgctxt "IDS_MAINFRM_99" msgid "Can't create capture graph builder object" -msgstr "Aufnahme-Graph-Builder-Objekt konnte nicht erstellt werden" +msgstr "Kann Aufnahmegraph-Builder-Objekt nicht erstellen" msgctxt "IDS_MAINFRM_108" msgid "Couldn't open any device" -msgstr "Gerät konnte nicht geöffnet werden" +msgstr "Kann kein Gerät öffnen" msgctxt "IDS_AG_SOUND" msgid "Sound" @@ -2437,11 +2489,11 @@ msgstr "Audio" msgctxt "IDS_MAINFRM_114" msgid "%s was not found, please insert media containing this file." -msgstr "%s auf verfügbaren Medien nicht gefunden" +msgstr "%s nicht gefunden. Bitte zugehöriges Medium verfügbar machen." msgctxt "IDS_AG_ABORTED" msgid "Aborted" -msgstr "Abbruch" +msgstr "Abgebrochen" msgctxt "IDS_MAINFRM_116" msgid "&Properties..." @@ -2520,8 +2572,8 @@ msgid "Volume boost Max" msgstr "Tonverstärkung: +300 % (max)" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Aufruf: mpc-hc.exe \"Pfadname\" [Optionen]\n\n\"Pfadname\"\tGibt Mediendatei oder Verzeichnis an.\n\t\t(Wildcards sind möglich. Standardeingabe kann\n\t\tals \"-\" angegeben werden.)\n/dub \"Datei\"\tÖffnet zusätzliche Audiodatei.\n/dubdelay \"Datei\"\tÖffnet zusätzliche Audiodatei, deren Wiedergabe\n\t\tum X ms versetzt wird. (Dateiname muss\n\t\t\"DELAY Xms\" enthalten.)\n/d3dfs\t\tStartet Player im Direct3D-Vollbildmodus.\n/sub \"Datei\"\tÖffnet zusätzliche Untertiteldatei.\n/filter \"F\"\t\tLädt DirectShow-Filter \"F\" aus\n\t\tLaufzeitbibliothek. (Wildcards sind möglich.)\n/dvd\t\tStartet Player im DVD-Modus. (DVD-Verzeichnis\n\t\tkann als \"Pfadname\" angegeben werden.)\n/dvdpos T#C\tStartet DVD-Wiedergabe bei Titel T, Kapitel C.\n/dvdpos T#P\tStartet DVD-Wiedergabe bei Titel T, Position P\n\t\t(hh:mm:ss).\n/cd\t\tÖffnet Audio-CD oder (S)VCD. (Laufwerk kann\n\t\tals \"Pfadname\" angegeben werden.)\n/device\t\tÖffnet Gerät.\n/open\t\tÖffnet Mediendatei und pausiert Wiedergabe.\n/play\t\tÖffnet Mediendatei und startet Wiedergabe.\n/close\t\tBeendet Player (nach Wiedergabe) (in\n\t\tKombination mit \"/play\").\n/shutdown\tFährt Computer herunter (nach Wiedergabe).\n/standby\t\tSpart Energie (nach Wiedergabe).\n/hibernate\tWechselt in Ruhezustand (nach Wiedergabe).\n/logoff\t\tMeldet Benutzer ab (nach Wiedergabe).\n/lock\t\tSperrt Computer (nach Wiedergabe).\n/monitoroff\tSchaltet Bildschirm aus (nach Wiedergabe).\n/playnext\t\tÖffnet nächste Ordnerdatei (nach Wiedergabe).\n/fullscreen\tStartet Player im Vollbild.\n/minimized\tStartet Player minimiert.\n/new\t\tÖffnet Mediendatei mit neuem Player.\n/add\t\tFügt \"Pfadname\" zur Wiedergabeliste hinzu\n\t\t(in Kombination mit \"/open\" oder \"/play\").\n/regvid\t\tRegistriert alle Videoformate.\n/regaud\t\tRegistriert alle Audioformate.\n/regpl\t\tRegistriert alle Wiedergabelisten.\n/regall\t\tRegistriert alle Medienformate.\n/unregall\t\tDeregistriert alle Medienformate.\n/start X\t\tStartet Wiedergabe bei X ms.\n/startpos P\tStartet Wiedergabe bei Position P (hh:mm:ss).\n/fixedsize W,H\tFixiert Fenstergröße bei Breite W und Höhe H.\n/monitor N\tStartet Player auf Monitor N (wobei N > 0).\n/audiorenderer N\tLädt Audio-Renderer N (wobei N > 0, siehe\n\t\tAusgabe-Optionen).\n/shaderpreset \"P\"\tLädt Shader-Profil \"P\".\n/pns \"P\"\t\tLädt Pan&Scan-Profil \"P\".\n/iconsassoc\tOrdnet Format-Icons neu zu.\n/nofocus\t\tStartet Player im Hintergrund.\n/webport N\tVerwendet Web-Interface mit Portnummer N.\n/debug\t\tZeigt Debug-Information im OSD an.\n/nominidump\tErstellt keine Minidump-Datei.\n/slave \"T\"\t\tÖffnet Mediendatei mit gestartetem Player,\n\t\tversehen mit Fenstertitel \"T\".\n/reset\t\tSetzt alle Programm-Einstellungen zurück.\n/help /h /?\tZeigt diese Hilfe an.\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Aufruf: mpc-hc.exe \"Pfadname\" [Optionen]\n\n\"Pfadname\"\tGibt Mediendatei oder Verzeichnis an\n\t\t(Wildcards sind möglich, Standardeingabe kann\n\t\tals \"-\" angegeben werden).\n/dub \"Datei\"\tÖffnet zusätzliche Audiodatei.\n/dubdelay \"Datei\"\tÖffnet zusätzliche Audiodatei, deren Wiedergabe\n\t\tum X ms versetzt wird (Dateiname muss\n\t\t\"DELAY Xms\" enthalten).\n/d3dfs\t\tStartet Player im Direct3D-Vollbildmodus.\n/sub \"Datei\"\tÖffnet zusätzliche Untertiteldatei.\n/filter \"F\"\t\tLädt DirectShow-Filter \"F\" aus Laufzeitbibliothek\n\t\t(Wildcards sind möglich).\n/dvd\t\tStartet Player im DVD-Modus (DVD-Verzeichnis\n\t\tkann als \"Pfadname\" angegeben werden).\n/dvdpos T#C\tStartet DVD-Wiedergabe bei Titel T, Kapitel C.\n/dvdpos T#P\tStartet DVD-Wiedergabe bei Titel T, Position P\n\t\t(hh:mm:ss).\n/cd\t\tÖffnet Audio-CD oder (S)VCD (Laufwerk kann\n\t\tals \"Pfadname\" angegeben werden).\n/device\t\tÖffnet Gerät.\n/open\t\tÖffnet Mediendatei und pausiert Wiedergabe.\n/play\t\tÖffnet Mediendatei und startet Wiedergabe.\n/close\t\tBeendet Player (nach Wiedergabe) (in\n\t\tKombination mit \"/play\").\n/shutdown\tFährt Computer herunter (nach Wiedergabe).\n/standby\t\tSpart Energie (nach Wiedergabe).\n/hibernate\tWechselt in Ruhezustand (nach Wiedergabe).\n/logoff\t\tMeldet Benutzer ab (nach Wiedergabe).\n/lock\t\tSperrt Computer (nach Wiedergabe).\n/monitoroff\tSchaltet Bildschirm aus (nach Wiedergabe).\n/playnext\t\tÖffnet nächste Ordnerdatei (nach Wiedergabe).\n/fullscreen\tStartet Player im Vollbild.\n/minimized\tStartet Player minimiert.\n/new\t\tÖffnet Mediendatei mit neuem Player.\n/add\t\tFügt \"Pfadname\" zur Wiedergabeliste hinzu\n\t\t(in Kombination mit \"/open\" oder \"/play\").\n/randomize\tSortiert Wiedergabeliste nach Zufall.\n/regvid\t\tRegistriert alle Videoformate.\n/regaud\t\tRegistriert alle Audioformate.\n/regpl\t\tRegistriert alle Wiedergabelisten.\n/regall\t\tRegistriert alle Medienformate.\n/unregall\t\tDeregistriert alle Medienformate.\n/start X\t\tStartet Wiedergabe bei X ms.\n/startpos P\tStartet Wiedergabe bei Position P (hh:mm:ss).\n/fixedsize W,H\tFixiert Fenstergröße bei Breite W und Höhe H.\n/monitor N\tStartet Player auf Monitor N (wobei N > 0).\n/audiorenderer N\tLädt Audio-Renderer N (wobei N > 0, siehe\n\t\tAusgabe-Optionen).\n/shaderpreset \"P\"\tLädt Shader-Profil \"P\".\n/pns \"P\"\t\tLädt Pan&Scan-Profil \"P\".\n/iconsassoc\tOrdnet Format-Icons neu zu.\n/nofocus\t\tStartet Player im Hintergrund.\n/webport N\tVerwendet Web-Interface mit Portnummer N.\n/debug\t\tZeigt Debug-Information im OSD an.\n/nocrashreporter\tDeaktiviert Fehlerberichterstattung.\n/slave \"T\"\t\tÖffnet Mediendatei mit gestartetem Player,\n\t\tversehen mit Fenstertitel \"T\".\n/reset\t\tSetzt alle Programm-Einstellungen zurück.\n/help /h /?\tZeigt diese Hilfe an.\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2617,19 +2669,19 @@ msgstr "Untertitel nicht geladen oder werden vom Renderer nicht unterstützt." msgctxt "IDS_LOGO_AUTHOR" msgid "Author unknown. Contact us if you made this logo!" -msgstr "Verfasser unbekannt. Als Autor kontaktieren Sie uns bitte." +msgstr "Autor unbekannt. Als Verfasser bitte melden!" msgctxt "IDS_NO_MORE_MEDIA" msgid "No more media in the current folder." -msgstr "Keine weitere Mediendatei im Ordner." +msgstr "Keine weitere Ordnerdatei verfügbar." msgctxt "IDS_FIRST_IN_FOLDER" msgid "The first file of the folder is already loaded." -msgstr "Erste Mediendatei im Ordner bereits geladen." +msgstr "Erste Ordnerdatei bereits geöffnet." msgctxt "IDS_LAST_IN_FOLDER" msgid "The last file of the folder is already loaded." -msgstr "Letzte Mediendatei im Ordner bereits geladen." +msgstr "Letzte Ordnerdatei bereits geöffnet." msgctxt "IDS_FRONT_LEFT" msgid "Front Left" @@ -2703,40 +2755,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Oben-hinten-rechts (TpBR)" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Anzeigestatistik zurücksetzen" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Untertitel::Sonstiges" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Fensterrahmen aus&blenden" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Titelleiste aus&blenden" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Fensterelemente ein&blenden" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Menü aus&blenden" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Erweitert" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Über der Zeitleiste" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Unter der Zeitleiste" msgctxt "IDS_VIDEO_STREAM" @@ -2904,8 +2928,8 @@ msgid "Other Audio" msgstr "Andere Audioformate" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2915,6 +2939,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless Audio Codec" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2979,22 +3023,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "The True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Wiedergabelisten" @@ -3269,7 +3297,7 @@ msgstr "MPC-HC %s ist verfügbar. Zurzeit wird noch Version %s verwendet.\n\nAkt msgctxt "IDS_UPDATE_ERROR" msgid "Update server not found.\n\nPlease check your internet connection or try again later." -msgstr "Update-Server nicht gefunden.\n\nBitte die Internetverbindung prüfen oder später erneut versuchen." +msgstr "Update-Server nicht erreichbar. Bitte die Internetverbindung prüfen oder später erneut versuchen." msgctxt "IDS_UPDATE_CLOSE" msgid "&Close" @@ -3380,16 +3408,16 @@ msgid "Error parsing the entered frame rate!" msgstr "Parser-Fehler bei angegebener Bildrate." msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Einzelbildschaltung nicht möglich. Bitte einen anderen Video-Renderer verwenden." msgctxt "IDS_SCREENSHOT_ERROR_REAL" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for RealMedia.\nSelect one of the DirectX renderers for RealMedia in MPC-HC's output options and reopen the file." -msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" können mit dem Standard-Renderer von RealMedia nicht verwendet werden.\nBitte einen VMR-Renderer für RealMedia-Video in den Ausgabe-Optionen wählen und die Mediendatei erneut öffnen." +msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" können mit dem Standard-Renderer von RealMedia nicht verwendet werden. Bitte einen VMR-Renderer für RealMedia-Video in den Ausgabe-Optionen wählen und die Mediendatei erneut öffnen." msgctxt "IDS_SCREENSHOT_ERROR_QT" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for QuickTime.\nSelect one of the DirectX renderers for QuickTime in MPC-HC's output options and reopen the file." -msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" können mit dem Standard-Renderer von QuickTime nicht verwendet werden.\nBitte einen VMR-Renderer für QuickTime-Video in den Ausgabe-Optionen wählen und die Mediendatei erneut öffnen." +msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" können mit dem Standard-Renderer von QuickTime nicht verwendet werden. Bitte einen VMR-Renderer für QuickTime-Video in den Ausgabe-Optionen wählen und die Mediendatei erneut öffnen." msgctxt "IDS_SCREENSHOT_ERROR_SHOCKWAVE" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work for Shockwave files." @@ -3397,11 +3425,11 @@ msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" k msgctxt "IDS_SCREENSHOT_ERROR_OVERLAY" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the Overlay Mixer video renderer.\nChange the video renderer in MPC's output options and reopen the file." -msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" können mit dem Overlay-Mixer nicht verwendet werden.\nBitte einen geeigneten Video-Renderer in den Ausgabe-Optionen wählen und die Mediendatei erneut öffnen." +msgstr "Die Funktionen \"Bild speichern\" und \"Miniaturansichten speichern\" können mit dem Overlay-Mixer nicht verwendet werden. Bitte einen geeigneten Video-Renderer in den Ausgabe-Optionen wählen und die Mediendatei erneut öffnen." msgctxt "IDS_SUBDL_DLG_CONNECT_ERROR" msgid "Cannot connect to the online subtitles database." -msgstr "Verbindung zur Untertiteldatenbank fehlgeschlagen" +msgstr "Kann Verbindung zur Untertiteldatenbank nicht herstellen" msgctxt "IDS_MB_SHOW_EDL_EDITOR" msgid "Do you want to activate the EDL editor?" @@ -3425,31 +3453,31 @@ msgstr "Puffer-Filter %s konnte zum Filtergraphen nicht hinzugefügt werden." msgctxt "IDS_CAPTURE_ERROR_CONNECT_BUFF" msgid "Can't connect the %s buffer filter to the graph." -msgstr "Puffer-Filter %s konnte mit dem Filtergraphen nicht verbunden werden." +msgstr "Puffer-Filter %s konnte mit Filtergraphen nicht verbunden werden." msgctxt "IDS_CAPTURE_ERROR_ADD_ENCODER" msgid "Can't add the %s encoder filter to the graph." -msgstr "Encoder-Filter %s konnte dem Filtergraphen nicht hinzugefügt werden." +msgstr "Encoder-Filter %s konnte zum Filtergraphen nicht hinzugefügt werden." msgctxt "IDS_CAPTURE_ERROR_CONNECT_ENC" msgid "Can't connect the %s encoder filter to the graph." -msgstr "Encoder-Filter %s konnte mit dem Filtergraphen nicht verbunden werden." +msgstr "Encoder-Filter %s konnte mit Filtergraphen nicht verbunden werden." msgctxt "IDS_CAPTURE_ERROR_COMPRESSION" msgid "Can't set the compression format on the %s encoder filter." -msgstr "Kompressionsformat konnte auf den Encoder-Filter %s nicht angewandt werden." +msgstr "Kompressionsformat konnte auf Encoder-Filter %s nicht angewandt werden." msgctxt "IDS_CAPTURE_ERROR_MULTIPLEXER" msgid "Can't connect the %s stream to the multiplexer filter." -msgstr "Stream %s konnte mit dem Multiplexer-Filter nicht verbunden werden." +msgstr "Stream %s konnte mit Multiplexer-Filter nicht verbunden werden." msgctxt "IDS_CAPTURE_ERROR_VID_CAPT_PIN" msgid "No video capture pin was found." -msgstr "Kein Videoaufnahme-Pin gefunden." +msgstr "Keinen Videoaufnahme-Pin gefunden." msgctxt "IDS_CAPTURE_ERROR_AUD_CAPT_PIN" msgid "No audio capture pin was found." -msgstr "Kein Audioaufnahme-Pin gefunden." +msgstr "Keinen Audioaufnahme-Pin gefunden." msgctxt "IDS_CAPTURE_ERROR_OUT_FILE" msgid "Error initializing the output file." @@ -3469,19 +3497,19 @@ msgstr "Typ in der Liste bereits vermerkt." msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." -msgstr "Bitte bisher nicht gespeicherte Einstellungen übernehmen." +msgstr "Bitte bisher nicht gespeicherte Einstellungen zuvor übernehmen." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Nach Wiedergabe: Programm beenden" msgctxt "IDS_AFTERPLAYBACK_STANDBY" msgid "After Playback: Stand By" -msgstr "Nach Wiedergabe: Energie sparen (falls verfügbar)" +msgstr "Nach Wiedergabe: Energie sparen" msgctxt "IDS_AFTERPLAYBACK_HIBERNATE" msgid "After Playback: Hibernate" -msgstr "Nach Wiedergabe: Ruhezustand (falls verfügbar)" +msgstr "Nach Wiedergabe: Ruhezustand" msgctxt "IDS_AFTERPLAYBACK_SHUTDOWN" msgid "After Playback: Shutdown" @@ -3565,7 +3593,7 @@ msgstr "&Sender" msgctxt "IDC_FASTSEEK_CHECK" msgid "If \"latest keyframe\" is selected, seek to the first keyframe before the actual seek point.\nIf \"nearest keyframe\" is selected, seek to the first keyframe before or after the seek point depending on which is the closest." -msgstr "Verwendet bei \"Mit näherem Keyframe\" richtungsunabhängig den nächstgelegenen Keyframe.\nAlternativ springt der Suchlauf bei \"Mit letztem Keyframe\" immer zum vorherigen Keyframe zurück." +msgstr "Verwendet bei \"Mit näherem Keyframe\" richtungsunabhängig den nächstgelegenen Keyframe. Alternativ springt der Suchlauf bei \"Mit letztem Keyframe\" immer zum vorherigen Keyframe zurück." msgctxt "IDC_ASSOCIATE_ALL_FORMATS" msgid "Associate with all formats" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.dialogs.pot b/src/mpc-hc/mpcresources/PO/mpc-hc.dialogs.pot index 78c6a1be32a..4202fab67b4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.dialogs.pot +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.dialogs.pot @@ -1,10 +1,10 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -106,7 +106,7 @@ msgid "Enable custom channel mapping" msgstr "" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -114,7 +114,7 @@ msgid "input channels:" msgstr "" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -566,7 +566,7 @@ msgid "Warning" msgstr "" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -678,11 +678,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1274,7 +1274,7 @@ msgid "Enable automatic update check" msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" +msgid "Check every:" msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" @@ -1661,3 +1661,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.el.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.el.dialogs.po index dc2ce9301fa..4aa2a4d25b1 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.el.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.el.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# geogeo.gr , 2013-2014 +# geogeo.gr , 2013-2015 # firespin , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-27 06:10+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-31 14:42+0000\n" "Last-Translator: geogeo.gr \n" "Language-Team: Greek (http://www.transifex.com/projects/p/mpc-hc/language/el/)\n" "MIME-Version: 1.0\n" @@ -110,15 +110,15 @@ msgid "Enable custom channel mapping" msgstr "Ενεργοποίηση προσαρμοσμένης αντιστοίχισης καναλιών" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Διαμόρφωση ηχείων για " +msgid "Speaker configuration for" +msgstr "Διαμόρφωση ηχείων για" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "κανάλια εισόδου:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Κρατήστε πατημένο το πλήκτρο shift για άμεσες αλλαγές όταν κάνετε κλικ σε κάτι" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Προειδοποίηση" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Εάν παρακάμψετε κι ενεργοποιήσετε την εξομάλυνση γραφικών πλήρους οθόνης κάπου στις ρυθμίσεις της κάρτας γραφικών σας, οι υπότιτλοι δεν πρόκειται να φανούν καλύτερα, αλλά σίγουρα θα τρώνε από τον επεξεργαστή σας." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Χρήση χαρακτηριστικών Γραμμής εργασίας των Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Άνοιγμα του επόμενου/προηγούμ. αρχείου στο φάκελο, στην επιλογή «Παράβλεψη επόμενου/προηγούμ. αρχείου», όταν υπάρχει μόνο ένα στοιχείο στη λίστα αναπ/γωγής" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Χρήση συμβουλής χρόνου:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Ενεργοποίηση αυτόματου ελέγχου ενημερώσεων" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Περίοδος μεταξύ ελέγχων:" +msgid "Check every:" +msgstr "Έλεγχος κάθε:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "Εντάξει" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Αναφορά κατάρρευσης" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Λυπούμαστε, φαίνεται πως το MPC-HC μόλις κατέρρευσε. :(\n\nΓια να μας βοηθήσετε να διαγνώσουμε και να διορθώσουμε το πρόβλημα, θα σταλεί μια αναφορά σφάλματος. Μπορείτε, εάν θέλετε, να παρέχετε πρόσθετες πληροφορίες." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Email:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Η διεύθυνση του ηλεκτρονικού σας ταχυδρομείου είναι προαιρετική και θα χρησιμοποιηθεί μόνο αν οι προγραμματιστές πρέπει να επικοινωνήσουν μαζί σας για περισσότερες πληροφορίες." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Περιγραφή προβλήματος (μόνο στα Αγγλικά):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "Εντάξει" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.el.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.el.menus.po index 30bf9d23172..5180d066d6d 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.el.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.el.menus.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# geogeo.gr , 2014 +# geogeo.gr , 2014-2015 # firespin , 2014 # kasper93, 2013 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 06:10+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-31 14:42+0000\n" "Last-Translator: geogeo.gr \n" "Language-Team: Greek (http://www.transifex.com/projects/p/mpc-hc/language/el/)\n" "MIME-Version: 1.0\n" @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Δοκιμή σχισίματος" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Εμφάνιση στατιστικών" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "Πρ&οβολή στατιστικών" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Χρόνος που απομένει" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Προβολή τρέχοντος &χρόνου" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Εμφάνιση ονόματος &αρχείου" msgctxt "POPUP" msgid "&Output Range" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "&Σκιάσεις" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "Ή&χος" +msgid "&Audio Track" +msgstr "Κανάλι Ή&χου" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Υπότιτλοι" +msgid "Su&btitle Track" +msgstr "Κανάλι &Υποτίτλων" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Ροή &βίντεο" +msgid "&Video Track" +msgstr "Κανάλι &Βίντεο" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Μετά την αναπαραγωγή" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Καμία ενέρ&γεια" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Αναπ/γωγή &επόμενου αρχείου στο φάκελο" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Απενεργοποίηση &οθόνης" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Έξοδος" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Κλείδωμα" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Απενεργοποίηση &οθόνης" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Αναπ/γωγή &επόμενου αρχείου στο φάκελο" - msgctxt "POPUP" msgid "&Navigate" msgstr "Πε&ριήγηση" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.el.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.el.strings.po index a4d5bcc2f2b..b7a455655f9 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.el.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.el.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# geogeo.gr , 2013-2014 +# geogeo.gr , 2013-2015 # firespin , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-13 22:50+0000\n" -"Last-Translator: firespin \n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-31 05:30+0000\n" +"Last-Translator: geogeo.gr \n" "Language-Team: Greek (http://www.transifex.com/projects/p/mpc-hc/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,12 +326,12 @@ msgid "On/Off" msgstr "Ναι/Όχι" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Από fps" +msgid "From FPS" +msgstr "Από FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "έως fps" +msgid "To FPS" +msgstr "έως FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Ίδιο με το VMR-9 (χωρίς απόδοση), Αλλά χρησιμοποιεί μια πραγματικά δικυβική διπλού περάσματος αλλαγή μεγέθους." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Συνδέεται με οποιονδήποτε τύπο πολυμέσων βίντεο και στέλνει τα εισερχόμενα δείγματα στο πουθενά. Χρησιμοποιήστε το όταν δεν χρειάζεστε την εμφάνιση του βίντεο και θέλετε να εξοικονομήσετε επεξεργαστική ισχύ." msgctxt "IDC_DSNULL_UNCOMP" @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Σίγαση" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Διακοπή σίγασης" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Ενεργοποίηση καταγραφής σε αρχείο (απαιτεί επανεκκίνηση)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Χρόνος που απομένει" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Υψηλή ακρίβεια" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Μετά την αναπαραγωγή: Επαναφορά τρέχοντος αρχείου" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Μετά την αναπαραγωγή: Κλείσιμο" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Άνοιγμα συσκευής" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Διακοπή" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Βήμα καρέ" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Βήμα καρέ πίσω" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Οι μικρογραφίες αποθηκεύτηκαν επιτυχώς" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "&Ροή βίντεο" +msgid "&Video Track" +msgstr "Κανάλι &Βίντεο" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Μετατόπιση υπότιτλου δεξιά" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Εμφάνιση στατιστικών" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Μετάβαση στην αρχή" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Εμφάνιση ονόματος αρχείου" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Προβολή Στατιστικών Απόδοσης" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Μηδενισμός Στατιστικών Απόδοσης" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Υπότιτλοι::Διάφορα" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Απόκρυψη περιθωρίων" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Κάδρο μόνο" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Εμφάνιση Λεζάντας && Μενού" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Απόκρυψη μενού" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Προηγμένες" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Λιτή προβολή" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Πλήκτρο αφεντικού" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Μενού αναπαραγωγού (σύντομο)" +msgid "Player Menu" +msgstr "Μενού αναπαραγωγής" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Μενού αναπαραγωγού (ευρύ)" +msgid "Player Menu (full)" +msgstr "Μενού αναπαραγωγής (πλήρες)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Απ-Ενεργοποίηση υποτίτλων (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Χρόνος που απομένει" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Προβολή τρέχοντος χρόνου" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2131,7 +2183,7 @@ msgstr "DVD: Μη συμβατές περιοχές δίσκου και αποκ msgctxt "IDS_D3DFS_WARNING" msgid "This option is designed to avoid tearing. However, it will also prevent MPC-HC from displaying the context menu and any dialog box during playback.\n\nDo you really want to activate this option?" -msgstr "" +msgstr "Αυτή η επιλογή σχεδιάστηκε για την αποφυγή σπασίματος. Ωστόσο, θα αποτρέψει επίσης το MPC-HC από την εμφάνιση του μενού περιβάλλοντος και κάθε πλαισίου διαλόγου κατά την αναπαραγωγή.\n\nΘέλετε πραγματικά να ενεργοποιήσετε αυτή την επιλογή;" msgctxt "IDS_MAINFRM_139" msgid "Sub delay: %ld ms" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Ανεπαρκής μνήμη" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Σφάλμα: Απαιτείται το Flash player για IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Σφάλμα: Απαιτείται το Adobe Flash Player για Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Εναλλαγή σε λεζάντα & μενού" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Εναλλαγή σε γραμμή αναζήτησης" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Μέγιστη ώθηση έντασης" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Χρήση: mpc-hc.exe \"κατάλογος\" [παράμετροι]\n\n\"κατάλογος\"\tΤο κύριο αρχείο ή ο κατάλογος που θα φορτωθεί\n\t\t(επιτρέπονται τα μπαλαντέρ \"-\" υποδηλώνει τυπική είσοδο)\n/dub \"αρχείο ήχου\"\tΦόρτωση ενός πρόσθετου αρχείου ήχου\n/dubdelay \"αρχείο\"\tΦόρτωση ενός πρόσθετου αρχείου ήχου μετατοπισμένο με XXms\n\t\t(εάν το αρχείο περιέχει \"...DELAY XXms...\")\n/d3dfs\t\tΕκκίνηση απόδοσης σε λειτουργία D3D πλήρους οθόνης\n/sub \"όνομα υπότιτλων\"\tΦόρτωση ενός πρόσθετου αρχείου υποτίτλων\n/filter \"όνομα φίλτρου\"\tΦόρτωση φίλτρων DirectShow από ένα dll\n\t\t(επιτρέπονται τα μπαλαντέρ)\n/dvd\t\tΕκτέλεση σε λειτουργία DVD. Ως \"κατάλογος\" εννοείται\n\t\tο φάκελος του DVD (προαιρετικά)\n/dvdpos T#C\tΈναρξη αναπαραγωγής στον τίτλο T, κεφάλαιο C\n/dvdpos T#hh:mm\tΈναρξη αναπαραγωγής στον τίτλο T, θέση hh:mm:ss\n/cd\t\tΦόρτωση όλων των κομματιών από ένα CD ή (S)VCD.\n\t\tΩς \"κατάλογος\" εννοείται της συσκευής οδήγησης (προαιρετικά)\n/device\t\tΆνοιγμα της προεπιλεγμένης συσκευής βίντεο\n/open\t\tΆνοιγμα του αρχείου χωρίς αυτόματη έναρξη αναπαραγωγής\n/play\t\tΈναρξη αναπαραγωγής του αρχείου με την εκκίνηση του\n\t\tπρογράμματος αναπαραγωγής\n/close\t\tΚλείσιμο του προγράμματος μετά την αναπαραγωγή\n\t\t(δουλεύει μόνο όταν χρησιμοποιείται με το /play)\n/shutdown\tΤερματισμός του συστήματος μετά την αναπαραγωγή\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tΈκκίνηση σε λειτουργία πλήρους οθόνης\n/minimized\tΈκκίνηση σε ελαχιστοποιημένη λειτουργία\n/new\t\tΕκκινεί μια νέα παρουσία του MPC-HC\n/add\t\tΠροσθήκη του \"κατάλογος\" στη λίστα αναπαραγωγής.\n\t\tΜπορεί να συνδυαστεί με /open και /play\n/regvid\t\tΔημιουργεί συσχετίσεις για αρχεία βίντεο\n/regaud\t\tΔημιουργεί συσχετίσεις για αρχεία ήχου\n/regpl\t\tΔημιουργεί συσχετίσεις για αρχεία λίστας αναπαραγωγής\n/regall\t\tΔημιουργεί συσχετίσεις αρχείων\n\t\tγια όλους τους υποστηριζόμενους τύπους αρχείων\n/unregall\t\tΚαταργεί όλες τις συσχετίσεις αρχείων\n/start ms\t\tΈναρξη αναπαραγωγής στα \"ms\" (= χιλιοστά δευτερολέπτου)\n/startpos hh:mm:ss\tΈναρξη αναπαραγωγής στη θέση hh:mm:ss\n/fixedsize w,h\tΟρίζει το μέγεθος ενός σταθερού παραθύρου\n/monitor N\tΕκκίνηση του MPC-HC στην οθόνη N (όπου το N ξεκινά από 1)\n/audiorenderer N\tΈναρξη απόδοσης ήχου με χρήση του N (όπου το N ξεκινά από 1)\n\t\t(βλέπε ρυθμίσεις \"Έξοδος\")\n/shaderpreset \"Pr\"\tΈναρξη με χρήση της προρύθμισης σκίασης \"Pr\"\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tΕπαναφορά προεπιλεγμένων ρυθμίσεων\n/help /h /?\tΕμφάνιση βοήθειας σχετικά με τις παραμέτρους της γραμμής εντολών\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Χρήση: mpc-hc.exe \"κατάλογος\" [παράμετροι]\n\n\"κατάλογος\"\tΤο κύριο αρχείο ή ο κατάλογος που θα φορτωθεί\n\t\t(επιτρέπονται τα μπαλαντέρ \"-\" υποδηλώνει τυπική είσοδο)\n/dub \"αρχείο ήχου\"\tΦόρτωση ενός πρόσθετου αρχείου ήχου\n/dubdelay \"αρχείο\"\tΦόρτωση ενός πρόσθετου αρχείου ήχου μετατοπισμένο με XXms\n\t\t(εάν το αρχείο περιέχει \"...DELAY XXms...\")\n/d3dfs\t\tΕκκίνηση απόδοσης σε λειτουργία D3D πλήρους οθόνης\n/sub \"όνομα υπότιτλων\"\tΦόρτωση ενός πρόσθετου αρχείου υποτίτλων\n/filter \"όνομα φίλτρου\"\tΦόρτωση φίλτρων DirectShow από ένα dll\n\t\t(επιτρέπονται τα μπαλαντέρ)\n/dvd\t\tΕκτέλεση σε λειτουργία DVD. Ως \"κατάλογος\" εννοείται\n\t\tο φάκελος του DVD (προαιρετικά)\n/dvdpos T#C\tΈναρξη αναπαραγωγής στον τίτλο T, κεφάλαιο C\n/dvdpos T#hh:mm\tΈναρξη αναπαραγωγής στον τίτλο T, θέση hh:mm:ss\n/cd\t\tΦόρτωση όλων των κομματιών από ένα CD ή (S)VCD.\n\t\tΩς \"κατάλογος\" εννοείται της συσκευής οδήγησης (προαιρετικά)\n/device\t\tΆνοιγμα της προεπιλεγμένης συσκευής βίντεο\n/open\t\tΆνοιγμα του αρχείου χωρίς αυτόματη έναρξη αναπαραγωγής\n/play\t\tΈναρξη αναπαραγωγής του αρχείου με την εκκίνηση του\n\t\tπρογράμματος αναπαραγωγής\n/close\t\tΚλείσιμο του προγράμματος μετά την αναπαραγωγή\n\t\t(δουλεύει μόνο όταν χρησιμοποιείται με το /play)\n/shutdown\tΤερματισμός του συστήματος μετά την αναπαραγωγή\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tΈκκίνηση σε λειτουργία πλήρους οθόνης\n/minimized\tΈκκίνηση σε ελαχιστοποιημένη λειτουργία\n/new\t\tΕκκινεί μια νέα παρουσία του MPC-HC\n/add\t\tΠροσθήκη του \"κατάλογος\" στη λίστα αναπαραγωγής.\n\t\tΜπορεί να συνδυαστεί με /open και /play\n/randomize\tRandomize the playlist\n/regvid\t\tΔημιουργεί συσχετίσεις για αρχεία βίντεο\n/regaud\t\tΔημιουργεί συσχετίσεις για αρχεία ήχου\n/regpl\t\tΔημιουργεί συσχετίσεις για αρχεία λίστας αναπαραγωγής\n/regall\t\tΔημιουργεί συσχετίσεις αρχείων\n\t\tγια όλους τους υποστηριζόμενους τύπους αρχείων\n/unregall\t\tΚαταργεί όλες τις συσχετίσεις αρχείων\n/start ms\t\tΈναρξη αναπαραγωγής στα \"ms\" (= χιλιοστά δευτερολέπτου)\n/startpos hh:mm:ss\tΈναρξη αναπαραγωγής στη θέση hh:mm:ss\n/fixedsize w,h\tΟρίζει το μέγεθος ενός σταθερού παραθύρου\n/monitor N\tΕκκίνηση του MPC-HC στην οθόνη N (όπου το N ξεκινά από 1)\n/audiorenderer N\tΈναρξη απόδοσης ήχου με χρήση του N (όπου το N ξεκινά από 1)\n\t\t(βλέπε ρυθμίσεις \"Έξοδος\")\n/shaderpreset \"Pr\"\tΈναρξη με χρήση της προρύθμισης σκίασης \"Pr\"\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tΕπαναφορά προεπιλεγμένων ρυθμίσεων\n/help /h /?\tΕμφάνιση βοήθειας σχετικά με τις παραμέτρους της γραμμής εντολών\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Μπροστά πάνω δεξιά" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Επαναφορά προβολής στατιστικών" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Υπότιτλοι::Διάφορα" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Απόκρυψη περιθωρίων" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Κάδρο μόνο" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Εμφάνιση Λεζάντας && Μενού" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Απόκρυψη μενού" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Προηγμένες" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Πάνω από γραμμή αναζήτησης" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Κάτω από γραμμή αναζήτησης" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Άλλο αρχείο ήχου" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Λίστα αναπαραγωγής" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Σφάλμα ανάλυσης του ρυθμού καρέ που έχει εισαχθεί!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Δεν είναι δυνατό το βήμα καρέ.\nΔοκιμάστε μια διαφορετική απόδοση βίντεο." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Πρέπει να κάνετε εφαρμογή των νέων ρυθμίσεων πριν από τη δοκιμή τους." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Μετά την αναπαραγωγή: Έξοδος" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.dialogs.po index 43ccfd226e4..38dd936345f 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Sir_Burpalot , 2013-2014 +# Sir_Burpalot , 2013-2015 # Underground78, 2013 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-08 03:46+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-18 11:24+0000\n" "Last-Translator: Sir_Burpalot \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/mpc-hc/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -110,16 +110,16 @@ msgid "Enable custom channel mapping" msgstr "Enable custom channel mapping" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Speaker configuration for " +msgid "Speaker configuration for" +msgstr "Speaker configuration for" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "input channels:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Hold shift for immediate changes when clicking something" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -570,8 +570,8 @@ msgid "Warning" msgstr "Warning" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -682,12 +682,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Use Windows 7 Taskbar features" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Use time tooltip:" +msgid "Show time tooltip:" +msgstr "Show time tooltip:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Enable automatic update check" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Delay between each check:" +msgid "Check every:" +msgstr "Check every:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Crash reporter" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Email:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Your email address is optional and will only be used if the developers need to contact you for more information." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Problem description (use English only):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.menus.po index f0f462b3353..98c545ce373 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Sir_Burpalot , 2013-2014 +# Sir_Burpalot , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-08 03:46+0000\n" +"POT-Creation-Date: 2015-05-15 16:53:42+0000\n" +"PO-Revision-Date: 2015-05-18 11:24+0000\n" "Last-Translator: Sir_Burpalot \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/mpc-hc/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Tearing Test" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Display Statistics" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Remaining Time" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Display Current T&ime" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Show &File Name" msgctxt "POPUP" msgid "&Output Range" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "S&haders" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "&Audio Track" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Su&btitles" +msgid "Su&btitle Track" +msgstr "Su&btitle Track" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Video Stream" +msgid "&Video Track" +msgstr "&Video Track" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Af&ter Playback" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Play &next file in the folder" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Turn off the &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Exit" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Lock" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Turn off the &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Play &next file in the folder" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigate" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.strings.po index ecdfdcbb9c9..a22311d4530 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.strings.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Sir_Burpalot , 2013-2014 +# Sir_Burpalot , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-06 13:39+0000\n" +"POT-Creation-Date: 2015-05-15 16:53:42+0000\n" +"PO-Revision-Date: 2015-05-18 11:24+0000\n" "Last-Translator: Sir_Burpalot \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/mpc-hc/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -325,12 +325,12 @@ msgid "On/Off" msgstr "On/Off" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "From fps" +msgid "From FPS" +msgstr "From FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "To fps" +msgid "To FPS" +msgstr "To FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -621,8 +621,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Mute" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Unmute" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Enables logging to file (requires restart)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Remaining time" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "High precision" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Open Device" @@ -1421,12 +1441,12 @@ msgid "Stop" msgstr "Stop" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" -msgstr "Framestep" +msgid "Frame-step" +msgstr "Frame-step" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" -msgstr "Framestep back" +msgid "Frame-step back" +msgstr "Frame-step back" msgctxt "IDS_AG_GO_TO" msgid "Go To" @@ -1525,8 +1545,8 @@ msgid "Thumbnails saved successfully" msgstr "Thumbnails saved successfully" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "&Video Stream" +msgid "&Video Track" +msgstr "&Video Track" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Shift Subtitle Right" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Display Stats" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Jump to Beginning" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Show File Name" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Display Renderer Statistics" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Reset Renderer Statistics" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Subtitles::Misc" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Hide &borders" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Fra&me Only" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Sho&w Caption&&Menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Hide &Menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Advanced" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "View Minimal" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "Boss key" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Player Menu (short)" +msgid "Player Menu" +msgstr "Player Menu" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Player Menu (long)" +msgid "Player Menu (full)" +msgstr "Player Menu (full)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "On/Off Subtitle (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Remaining Time" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Display Current Time" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "Out of memory" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Error: Flash player for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Error: Adobe Flash Player for Internet Explorer is required" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,8 +2409,8 @@ msgid "Toggle Caption&Menu" msgstr "Toggle Caption&Menu" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" -msgstr "Toggle Seeker" +msgid "Toggle Seek Bar" +msgstr "Toggle Seek Bar" msgctxt "IDS_AG_TOGGLE_CONTROLS" msgid "Toggle Controls" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "Volume boost Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimised mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimised mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomise the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,41 +2748,13 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Top Back Right" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Reset Display Stats" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Subtitles::Misc" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Hide &borders" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Frame Only" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Sho&w Caption&&Menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Hide &Menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Advanced" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" -msgstr "Above seekbar" +msgid "Above seek bar" +msgstr "Above seek bar" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" -msgstr "Below seekbar" +msgid "Below seek bar" +msgstr "Below seek bar" msgctxt "IDS_VIDEO_STREAM" msgid "Video: %s" @@ -2897,8 +2921,8 @@ msgid "Other Audio" msgstr "Other Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Playlist" @@ -3373,8 +3401,8 @@ msgid "Error parsing the entered frame rate!" msgstr "Error parsing the entered frame rate!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." -msgstr "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." +msgstr "Cannot frame-step, try a different video renderer." msgctxt "IDS_SCREENSHOT_ERROR_REAL" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for RealMedia.\nSelect one of the DirectX renderers for RealMedia in MPC-HC's output options and reopen the file." @@ -3464,7 +3492,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "You need to apply the new settings before testing them." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "After Playback: Exit" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.es.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.es.dialogs.po index 4688ac64f0e..80968314951 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.es.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.es.dialogs.po @@ -1,19 +1,20 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Adolfo Jayme Barrientos , 2014 -# Adolfo Jayme Barrientos , 2014 -# Ernesto Avilés Vzqz , 2013 -# Ernesto Avilés Vzqz , 2014 +# Adolfo Jayme Barrientos, 2014-2015 +# Adolfo Jayme Barrientos, 2015 +# Adolfo Jayme Barrientos, 2014 +# Ernesto Avilés Vázquez , 2013 +# Ernesto Avilés Vázquez , 2014 # squallmx , 2014 -# strel, 2014 +# strel, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-01 22:46+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-17 23:41+0000\n" +"Last-Translator: strel\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mpc-hc/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -114,7 +115,7 @@ msgid "Enable custom channel mapping" msgstr "Activar asignación de canales personalizada" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Configuración de altavoces para" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -122,7 +123,7 @@ msgid "input channels:" msgstr "canales de entrada:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Mantenga presionada Mayús para aplicar los cambios de inmediato" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -574,7 +575,7 @@ msgid "Warning" msgstr "Advertencia" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Si activa el modo de suavizado a pantalla completa en la configuración de la tarjeta de vídeo, se incrementará el uso de la CPU sin mejoras de calidad visual de los subtítulos." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -686,11 +687,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Utilizar funciones de la barra de tareas de Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Saltar al archivo anterior/siguiente en la carpeta en «Saltar siguiente/anterior» cuando solo hay un archivo en la lista de reproducción" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Burbuja de tiempo:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -795,7 +796,7 @@ msgstr "Descripción:" msgctxt "IDD_FAVADD_CAPTION" msgid "Add Favorite" -msgstr "Agregar a Favoritos" +msgstr "Añadir a Favoritos" msgctxt "IDD_FAVADD_IDC_STATIC" msgid "Choose a name for your shortcut:" @@ -1231,7 +1232,7 @@ msgstr "Página predeterminada:" msgctxt "IDD_PPAGEWEBSERVER_IDC_STATIC" msgid "CGI handlers: (.ext1=path1;.ext2=path2;...)" -msgstr "Tratantes de CGI: (.ext1=ruta1;.ext2=ruta2;…)" +msgstr "Manejadores de CGI: (.ext1=ruta1;.ext2=ruta2;…)" msgctxt "IDD_SUBTITLEDL_DLG_CAPTION" msgid "Subtitles available online" @@ -1282,8 +1283,8 @@ msgid "Enable automatic update check" msgstr "Activar búsqueda automática de actualizaciones" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Retardo entre cada comprobación:" +msgid "Check every:" +msgstr "Comprobar cada:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1511,7 +1512,7 @@ msgstr "Restaurar resolución al salir" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC" msgid "Delay" -msgstr "Retraso" +msgstr "Retardo" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC2" msgid "s" @@ -1669,3 +1670,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "Aceptar" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Informe de fallo" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Lo sentimos, parece que MPC-HC acaba de caerse. :(\n\nPara ayudarnos a diagnosticar y reparar el problema, se enviará un informe de fallo. Puede proporcionar información adicional si quiere." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Correo electrónico:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Su direccion de correo electrónico es opcional y sólo se usará si los desarrolladores necesitan contactar con usted para recabar más información." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Descripción del problema (use sólo inglés):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "Aceptar" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.es.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.es.menus.po index c275d4b1b33..75aa68f32c0 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.es.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.es.menus.po @@ -1,18 +1,18 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Adolfo Jayme Barrientos , 2014 -# Adolfo Jayme Barrientos , 2014 +# Adolfo Jayme Barrientos, 2014 +# Adolfo Jayme Barrientos, 2014 # JellyFrog, 2013 # squallmx , 2014 -# strel, 2014 +# strel, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 16:10+0000\n" -"Last-Translator: Adolfo Jayme Barrientos \n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 15:15+0000\n" +"Last-Translator: strel\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mpc-hc/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -200,13 +200,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Prueba de efecto &peine" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" msgstr "&Mostrar estadísticas" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Tiempo &restante" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Mostrar &hora actual" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Mostrar nombre de archi&vo" msgctxt "POPUP" msgid "&Output Range" @@ -557,16 +561,16 @@ msgid "S&haders" msgstr "S&haders" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "Pista de &audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Su&btítulos" +msgid "Su&btitle Track" +msgstr "Pista de su&btítulos" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Flujo de &vídeo" +msgid "&Video Track" +msgstr "Pista de &vídeo" msgctxt "POPUP" msgid "&Volume" @@ -588,7 +592,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "&Tras la reproducción" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "No hacer na&da" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Reproducir &siguiente archivo en la carpeta" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Apagar el &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Salir " @@ -612,14 +628,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Bloquear" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Apagar el &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Reproducir &siguiente archivo en la carpeta" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navegar" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.es.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.es.strings.po index 755ed94adcb..ceb14c28a74 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.es.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.es.strings.po @@ -1,22 +1,23 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Adolfo Jayme Barrientos , 2014-2015 -# Adolfo Jayme Barrientos , 2014 -# Ernesto Avilés Vzqz , 2013 +# Adolfo Jayme Barrientos, 2014-2015 +# Adolfo Jayme Barrientos, 2015 +# Adolfo Jayme Barrientos, 2014 +# Ernesto Avilés Vázquez , 2013 # fdelacruz , 2014 # Johan Ramirez , 2014 # Johan Ramirez , 2014 # Alpha120 , 2014 # squallmx , 2014 -# strel, 2014 +# strel, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2015-01-10 11:00+0000\n" -"Last-Translator: Adolfo Jayme Barrientos \n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 15:15+0000\n" +"Last-Translator: strel\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mpc-hc/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -333,12 +334,12 @@ msgid "On/Off" msgstr "Activado/desactivado" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "De fps" +msgid "From FPS" +msgstr "De FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "A fps" +msgid "To FPS" +msgstr "A FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -629,8 +630,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Igual que VMR-9 (sin renderizador), pero usa un redimensionador bicúbico de dos pasadas real. " msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Conecta a cualquier tipo de medio de video y manda las muestras a ningún lado. Utilízalo cuando no necesitas ver el video, y quieres evitar el uso de cpu innecesario." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Funciona con cualquier tipo de vídeo e impide el envío de las muestras entrantes. Úselo si no necesita ver el vídeo y quiere evitar el uso innecesario de la CPU." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -896,7 +897,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Silenciar" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Activar sonido" @@ -1182,7 +1183,7 @@ msgstr "Fallido al configurar ambas sombras pre y post-redimensionadas" msgctxt "IDS_DEBUGSHADERS_FIRSTRUN_MSG" msgid "Shaders are recompiled automatically when the corresponding files are modified." -msgstr "Sombras serán recompiladas automáticamente cuando los archivos correspondientes se modifican." +msgstr "Los sombreadores se recompilan automáticamente al modificar los archivos correspondientes." msgctxt "IDS_SHADER_DLL_ERR_0" msgid "Cannot load %s, pixel shaders will not work." @@ -1374,12 +1375,32 @@ msgstr "No hay información disponible" msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" msgid "Please wait, analysis in progress..." -msgstr "Por favor espere, análisis en marcha..." +msgstr "Espere, análisis en marcha…" msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "RdA %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Activa el registro de eventos en un archivo (Requiere reinicio)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Tiempo restante" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Alta precisión " + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Tras la reproducción: Rebobinar el archivo actual" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Tras la reproducción: Cerrar" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Abrir un dispositivo" @@ -1429,11 +1450,11 @@ msgid "Stop" msgstr "Detener" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Avanzar un cuadro" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Retroceder un cuadro" msgctxt "IDS_AG_GO_TO" @@ -1533,8 +1554,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniaturas guardadas satisfactoriamente" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "&Transmisión de vídeo" +msgid "&Video Track" +msgstr "Pista de &vídeo" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1656,14 +1677,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Mover Sub a la Derecha" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Mostrar Estadisticas" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Saltar al comienzo" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "Sobreimpresión: Mostrar nombre del archivo" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "Sobreimpresión: Mostrar estadísticas del renderizador" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "Sobreimpresión: Restablecer estadísticas del renderizador" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Subtítulos::Misc" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Hide borders" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Solo el cuadro" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Show Caption&&Menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Hide Menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avanzado" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Modo mínimo" @@ -1897,12 +1950,12 @@ msgid "Boss key" msgstr "Tecla del jefe" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menú del reproductor (corto)" +msgid "Player Menu" +msgstr "Menú del reproductor" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menú del reproductor (largo)" +msgid "Player Menu (full)" +msgstr "Menú del reproductor (completo)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1980,9 +2033,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Activar/desactivar subtítulos (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Tiempo restante" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "Sobreimpresión: Mostrar hora actual" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2293,8 +2346,8 @@ msgid "Out of memory" msgstr "Memoria agotada" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Error: se necesita el reproductor Flash para IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Error: se necesita el reproductor Flash para Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2365,7 +2418,7 @@ msgid "Toggle Caption&Menu" msgstr "Alternar Menú de &Captura" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Mostrar/ocultar barra de navegación" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2521,8 +2574,8 @@ msgid "Volume boost Max" msgstr "Aumento de Volumen Maximo" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Uso: mpc-hc.exe \"ruta\" [parámetros]\n\n\"ruta\"\tEl fichero o directorio principal a cargarse (comodines\n\t\tpermitidos, \"-\" denota entrada estandar)\n/dub \"nombredeaudiodedoblaje\"\tCarga un fichero de audio adicional\n/dubdelay \"fichero\"\tCarga un fichero de audio adicional desplazado XXms (si\n\t\tel fichero contiene \"...DELAY XXms...\")\n/d3dfs\t\tInicia el renderizado en modo D3D a pantalla completa\n/sub \"nombredesubtítulo\"\tCarga un fichero de subtítulos adicional\n/filter \"nombredefiltro\"\tCarga filtros DirectShow desde una (.dll) biblioteca de vínculos\n\t\tdinámicos (comodines permitidos)\n/dvd\t\tEjecuta en modo DVD, \"ruta\" significa la carpeta de\n\t\tDVD (opcional)\n/dvdpos T#C\tInicia la reproducción en el título T, capítulo C\n/dvdpos T#hh:mm\tInicia la reproducción en el título T, posición hh:mm:ss\n/cd\t\tCarga todas las pistas de un CD de audio o S(VCD),\n\t\t\"ruta\" significa la ruta de la unidad (opcional)\n/device\t\tAbre el dispositivo de vídeo predeterminado\n/open\t\tAbre el fichero, no inicia automáticamente la reproducción\n/play\t\tComienza a reproducir el fichero tan pronto como el reproductor sea\n\t\tcargado\n/close\t\tCierra el reproductor después de la reproducción (sólo funciona cuando\n\t\tse usa con /play)\n/shutdown\tCierra el sistema operativo después de la reproducción\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tSe inicia en modo pantalla-completa\n/minimized\tSe inicia en modo minimizado\n/new\t\tUsa una nueva instancia del reproductor\n/add\t\tAñade \"ruta\" a la lista de reproducción, puede combinarse\n\t\tcon /open y /play\n/regvid\t\tCrea asociaciones de fichero para ficheros de vídeos\n/regaud\t\tCrea asociaciones de fichero para ficheros de audio\n/regpl\t\tCrea asociaciones de fichero para ficheros de tipo lista de reproducción\n/regall\t\tCrea asociaciones de fichero para todos los tipos de fichero soportados\n/unregall\t\tElimina todas las asociaciones de fichero\n/start ms\t\tSe inicia reproduciendo desde \"ms\" (= milisegundos)\n/startpos hh:mm:ss\tSe inicia reproduciendo desde la posición hh:mm:ss\n/fixedsize w,h\tEstablece un tamaño fijo de ventana\n/monitor N\tInicia el reproductor en el monitor N, donde N comienza a contar desde 1\n/audiorenderer N\tSe inicia usando el renderizador de audio N, donde N comienza a contar desde 1\n\t\t(vea las configuraciones de \"Salida\")\n/shaderpreset \"Pr\"\tSe inicia usando los preajustes \"Pr\" del sombreador\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestablece las configuraciones por defecto\n/help /h /?\tMuestra la ayuda de parámetros de línea de comandos\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Uso: mpc-hc.exe \"ruta\" [parámetros]\n\n\"ruta\"\tEl archivo o directorio principal a cargar (comodines\n\t\tpermitidos, \"-\" denota entrada estandar)\n/dub \"nombredeaudiodedoblaje\"\tCarga un archivo de audio adicional\n/dubdelay \"fichero\"\tCarga un archivo de audio adicional desplazado XXms (si\n\t\tel fichero contiene \"...DELAY XXms...\")\n/d3dfs\t\tInicia el renderizado en modo D3D a pantalla completa\n/sub \"nombredesubtítulo\"\tCarga un archivo de subtítulos adicional\n/filter \"nombredefiltro\"\tCarga filtros DirectShow desde una (.dll) biblioteca de vínculos\n\t\tdinámicos (comodines permitidos)\n/dvd\t\tEjecuta en modo DVD, \"ruta\" significa la carpeta de\n\t\tDVD (opcional)\n/dvdpos T#C\tInicia la reproducción en el título T, capítulo C\n/dvdpos T#hh:mm\tInicia la reproducción en el título T, posición hh:mm:ss\n/cd\t\tCarga todas las pistas de un CD de audio o S(VCD),\n\t\t\"ruta\" significa la ruta de la unidad (opcional)\n/device\t\tAbre el dispositivo de vídeo predeterminado\n/open\t\tAbre el archivo, no inicia automáticamente la reproducción\n/play\t\tComienza a reproducir el archivo tan pronto como el reproductor se\n\t\tcargue\n/close\t\tCierra el reproductor tras la reproducción (sólo funciona cuando\n\t\tse usa con /play)\n/shutdown\tCierra el sistema operativo tras la reproducción\n/standby\t\tPone el sistema operativo en modo suspensión tras la reproducción\n/hibernate\tHiberna el sistema operativo tras la reproducción\n/logoff\t\tCierra sesión del sistema tras la reproducción\n/lock\t\tBloquea el equipo tras la reproducción\n/monitoroff\tApaga el monitor tras la reproducción\n/playnext\t\tAbre el siguiente archivo en la carpeta tras la reproducción\n/fullscreen\tSe inicia en modo pantalla-completa\n/minimized\tSe inicia en modo minimizado\n/new\t\tUsa una nueva instancia del reproductor\n/add\t\tAñade la \"ruta\" a la lista de reproducción, puede combinarse\n\t\tcon /open y /play\n/randomize\tAleatoriza la lista de reproducción\n/regvid\t\tCrea asociaciones de archivo para archivos de vídeo\n/regaud\t\tCrea asociaciones de archivo para archivos de audio\n/regpl\t\tCrea asociaciones de archivo para archivos de tipo lista de reproducción\n/regall\t\tCrea asociaciones de archivo para todos los tipos de archivo soportados\n/unregall\t\tElimina todas las asociaciones de archivo\n/start ms\t\tSe inicia reproduciendo desde \"ms\" (= milisegundos)\n/startpos hh:mm:ss\tSe inicia reproduciendo desde la posición hh:mm:ss\n/fixedsize w,h\tEstablece un tamaño fijo de ventana\n/monitor N\tInicia el reproductor en el monitor N, donde N comienza a contar desde 1\n/audiorenderer N\tSe inicia usando el renderizador de audio N, donde N comienza a contar desde 1\n\t\t(vea las configuraciones de \"Salida\")\n/shaderpreset \"Pr\"\tSe inicia usando los preajustes \"Pr\" del sombreador\n/pns \"name\"\tEspecifica el nombre de la preconfiguración Pan&Scan (cambio del encuadre) a usar\n/iconsassoc\tReasocia los iconos de formatos\n/nofocus\t\tAbre MPC-HC en segundo plano\n/webport N\tInicia la interfaz web en el puerto especificado\n/debug\t\tMuestra información de depuración sobreimpresionada\n/nocrashreporter\tDeshabilita el informe de fallo\n/slave \"hWnd\"\tUsa MPC-HC como esclavo\n/reset\t\tRestablece las configuraciones por defecto\n/help /h /?\tMuestra la ayuda de parámetros de línea de comandos\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2704,40 +2757,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Encima Detrás Der." -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Restablecer estadísticas de visualización" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Subtítulos::Misc" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Hide borders" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Solo el cuadro" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Show Caption&&Menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Hide Menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avanzado" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Sobre la barra de desplazamiento" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Bajo la barra de desplazamiento" msgctxt "IDS_VIDEO_STREAM" @@ -2905,8 +2930,8 @@ msgid "Other Audio" msgstr "Otro audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2916,6 +2941,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Audio de Windows Media" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Códec de audio Opus" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2980,22 +3025,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Audio de Windows Media" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Códec de audio Opus" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Lista de reproducción" @@ -3381,7 +3410,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Error al analizar la velocidad de cuadro introducido" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "No se puede enmarcar paso, pruebe con un render de vídeo diferente." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3472,7 +3501,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Necesita aplicar la configuración nueva antes de probarla." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Después de la reproducción: salir" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.eu.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.eu.dialogs.po index e9910261052..5e3f830dba0 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.eu.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.eu.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Xabier Aramendi , 2013-2014 +# Xabier Aramendi , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-18 18:34+0000\n" "Last-Translator: Xabier Aramendi \n" "Language-Team: Basque (http://www.transifex.com/projects/p/mpc-hc/language/eu/)\n" "MIME-Version: 1.0\n" @@ -109,16 +109,16 @@ msgid "Enable custom channel mapping" msgstr "Gaitu norbere bide mapaketa" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Hotsgorailu itxurapena " +msgid "Speaker configuration for" +msgstr "Hotsgorailu itxurapena" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "Sarrera bideak:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Sakatu \"aldatu\" tekla berehalako aldaketarako zerbait klikatzerakoan " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Sakatu \"aldatu\" tekla berehalako aldaketarako zerbait klikatzerakoan" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -569,8 +569,8 @@ msgid "Warning" msgstr "Kontuz" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "Ezeztatzen baduzu eta gaitu ikusleiho-osoko hertzlehunketa zure bideo txartelaren ezarpenetan, azpidatziak ez dira hobeto ikusiko baina zure cpu-a jango dute." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Ezeztatzen baduzu eta gaitu ikusleiho-osoko hertzlehunketa zure bideo txartelaren ezarpenetan, azpidatziak ez dira hobeto ikusiko baina zihurrenik zure CPU-a jango du." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -681,12 +681,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Erabili Windows 7 Eginkizun-barra ezaugarriak" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "Ireki agiritegiko hurrengo/aurreko agiria 'Jauzi atzera/aurrera' irakur-zerrendan gai bakarra dagoenean" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Ireki agiritegiko hurrengo/aurreko agiria \"Jauzi atzera/aurrera\"-n irakur-zerrendan gai bakarra dagoenean" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Denbora tresnaburua:" +msgid "Show time tooltip:" +msgstr "Erakutsi denbora oharra:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Gaitu berezgaitasunezko eguneraketa egiaztapena" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Atzerap. egiazt. artean:" +msgid "Check every:" +msgstr "Egiaztapen epea:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "Ongi" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Matxura jakinarazpena" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Sentitzen dugu, MPC-HC matxuratu egin dela dirudi. :(\n\nArazoa ezagutzen eta zuzentzen laguntzeko, akats jakinarazpen bat bidaliko da. Argibide gehiagarriak eman ditzakezu nahi baduzu." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Post@:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Zure posta helbidea aukerazkoa da eta garatzaileek argibide gehiagorako zurekin harremanetan jartzeko behar badute bakarrik erabiliko da." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Arazoaren azalpena (erabili Ingelera bakarrik):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "Ongi" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.eu.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.eu.menus.po index 210b0151f32..635e93c7321 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.eu.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.eu.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Xabier Aramendi , 2013-2014 +# Xabier Aramendi , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 15:40+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 21:32+0000\n" "Last-Translator: Xabier Aramendi \n" "Language-Team: Basque (http://www.transifex.com/projects/p/mpc-hc/language/eu/)\n" "MIME-Version: 1.0\n" @@ -142,7 +142,7 @@ msgstr "&Nabigazioa" msgctxt "ID_VIEW_DEBUGSHADERS" msgid "&Debug Shaders" -msgstr "&Garbiketa Itzalak" +msgstr "Garbike&ta Itzalak" msgctxt "POPUP" msgid "&Presets..." @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Hauspen Azterketa" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Erakutsi Estatistikak" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "Erakutsi &Estatistikak" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Gelditzen den Denbora" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Erakutsi Oraingo &Denbora" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Erakutsi &Agiri Izena" msgctxt "POPUP" msgid "&Output Range" @@ -510,7 +514,7 @@ msgstr "Irakurtzerakoan" msgctxt "ID_ONTOP_WHILEPLAYINGVIDEO" msgid "While Playing &Video" -msgstr "Bideoa Irakurtzerakoan" +msgstr "Bi&deoa Irakurtzerakoan" msgctxt "ID_VIEW_OPTIONS" msgid "&Options..." @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "It&zalak" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audioa" +msgid "&Audio Track" +msgstr "&Audio Bidea" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Az&pidatziak" +msgid "Su&btitle Track" +msgstr "Az&pidatzia Bidea" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Bi&deo Jarioa" +msgid "&Video Track" +msgstr "Bi&deo Bidea" msgctxt "POPUP" msgid "&Volume" @@ -584,9 +588,21 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Irakurri &Ondoren" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "E&z egin ezer" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Irakurri &agiritegiko hurrengoa" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Itzali &monitorea" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" -msgstr "Irten" +msgstr "I&rten" msgctxt "ID_AFTERPLAYBACK_STANDBY" msgid "&Stand By" @@ -598,7 +614,7 @@ msgstr "Neguratu" msgctxt "ID_AFTERPLAYBACK_SHUTDOWN" msgid "Shut&down" -msgstr "I&tzali" +msgstr "Itzali" msgctxt "ID_AFTERPLAYBACK_LOGOFF" msgid "Log &Off" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Blokeatu" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Itzali &monitorea" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Irakurri &agiritegiko hurrengoa" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Nabigatu" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.eu.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.eu.strings.po index 487d8b095df..3d5926cee16 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.eu.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.eu.strings.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Xabier Aramendi , 2013-2014 +# Xabier Aramendi , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-01 16:30+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-30 21:32+0000\n" "Last-Translator: Xabier Aramendi \n" "Language-Team: Basque (http://www.transifex.com/projects/p/mpc-hc/language/eu/)\n" "MIME-Version: 1.0\n" @@ -325,11 +325,11 @@ msgid "On/Off" msgstr "Eraginda/Etenda" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "fs-kotik " msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "fs-kora" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -621,8 +621,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "VMR-9 (aurkezgabe) bezalakoa, baina egizko bi-urratseko birneurriratzaile bikubikoa erabiltzen du." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Edozein bideo-erako multimedia motarekn elkartzen da eta barrurako laginak inora ez bidaliko ditu. Erabili bideo erakuspenik behar ez duzunean eta cpu-a gordetzea nahi duzunean alperrik lan egitetik." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Edozein bideo-erako multimedia motarekn elkartzen da eta barrurako laginak inora ez bidaliko ditu. Erabili bideo erakuspenik behar ez duzunean eta CPU-a gordetzea nahi duzunean alperrik lan egitetik." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Mututu" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Desmututu" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "IM %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Agirira oharreratzea gaitzen du (beharrezkoa berrabiaraztea)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Gelditzen den denbora" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Zehaztasun handia" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Irakurri Ondoren: Atzerabildu agiria" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Irakurri Ondoren: Itxi" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Ireki Gailua" @@ -1421,11 +1441,11 @@ msgid "Stop" msgstr "Gelditu" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Frame-urratsa" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Frame-urratsa atzera" msgctxt "IDS_AG_GO_TO" @@ -1525,8 +1545,8 @@ msgid "Thumbnails saved successfully" msgstr "Txikirudiak ongi gorde dira" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "&Bideo Jarioa" +msgid "&Video Track" +msgstr "&Bideo Bidea" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Aldatu Azpidatzia Eskuinera" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Erakutsi Estatistikak" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Jauzi Hasierara" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "IGE: Erakutsi Agiri Izena" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "IGE: Erakutsi Aurkezle Estatistikak" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "IGE: Berrezarri Aurkezle Estatistikak" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Azpidatziak::Askotarikoa" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Ezkutatu hertzak\tKtrl+0" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "&Framea Bakarrik" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Erakutsi Harpen-Menua\tKtrl+0" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Ezkutatu &Menua\tKtrl+0" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Aurreratua" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Ikusi Txikien" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "Tekla nagusia" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Irakurgailu Menua (laburra)" +msgid "Player Menu" +msgstr "Irakurgailu Menua" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Irakurgailu Menua (luzea)" +msgid "Player Menu (full)" +msgstr "Irakurgailu Menua (osoa)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Eragin/Eten Azpidatzia (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Gelditzen den Denbora" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "IGE: Erakutsi Oraingo Denbora" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "Oroimenetik kanpo" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Akatsa: IE-rako Flash irakurgailua beharrezkoa da" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Akatsa: Beharrezkoa da Internet Explorer-rako Flash irakurgailua" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,7 +2409,7 @@ msgid "Toggle Caption&Menu" msgstr "Aldatu Harpena eta Menua" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Aldatu Bilatzailea" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "Bolumen bultzada Gehiena" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Erabilpena: mpc-hc.exe \"helburu-izena\" [aldagailuak]\n\n\"pathname\"\tGertatzeko agiri edo zuzenbide nagusia\n\t\t(ordezhizkiak ahal dira, \"-\"-k sarrera estandarra adierazten du)\n/dub \"dubname\"\tGertatu audio agiri gehigarri bat\n/dubdelay \"file\"\tGertatu audio agiri gehigarri bat XXsm aldatuta\n\t\t(baldin agiriak baditu \"...ATZERAPENA XXsM...\")\n/d3dfs\t\tHasi aurkezpena D3D ikusleiho-osoko moduan\n/sub \"subname\"\tGertatu azpidatzi agiri gehigarri bat\n/filter \"filtername\"\tGertatu DirectShow iragazkiak lotura dinamiko\n\t\tliburutegi batetik (ordezhizkiak ahal dira)\n/dvd\t\tEkin dvd moduan, \"helburu-izena\" esanahi du\n\t\tdvd agiritegia (aukerazkoa)\n/dvdpos T#C\tHasi irakurketa I izenburuan, A atalean\n/dvdpos T#hh:mm\tHasi irakurketa I izenburuan, kokapena oo:mn:sg\n/cd\t\tGertatu cd edo (s)vcd audio bide guztiak,\n\t\t\"helburu-izena\" esanahi du gidagailu helburua\n\t\t(aukerazkoa)\n/device\t\tIreki berezko bideo gailua\n/open\t\tIreki agiria, ez hasi irakurketa berezgaitasunez\n/play\t\tHasi agiriaren irakurketa irakurgailua abiaraziz\n\t\tbezain laister\n/close\t\tItxi irakurgailua irakurketaren ondoren\n\t\t(bakarrik lan egiten du /irakurri erabiltzen denean)\n/shutdown\tItzali sistema eragilea irakurketaren ondoren\n/standby\t\tJarri sistema eragilea egonean irakurketaren ondoren\n/hibernate\tNeguratu sistema eragilea irakurketaren ondoren\n/logoff\t\tAmaitu saioa irakurketaren ondoren\n/lock\t\tBlokeatu langunea irakurketaren ondoren\n/monitoroff\tItzali monitorea irakurketaren ondoren\n/playnext\t\tIreki agiritegiko hurrengo agiria irakurketaren ondoren\n/fullscreen\tHasi ikusleiho-osoko moduan\n/minimized\tHasi txikien moduan\n/new\t\tErabili irakurgailuaren eskabide berri bat\n/add\t\tGehitu \"helburu-izena\" irakur-zerrendara,\n\t\tnahastu daiteke /ireki eta /irakurrirekin\n/regvid\t\tSortu agiri elkarketak bideo agirientzat\n/regaud\t\tSortu agiri elkarketak audio agirientzat\n/regpl\t\tSortu agiri elkarketak irakur-zerrendentzat\n/regall\t\tSortu agiri elkarketak sostengatutako\n\t\tagiri mota guztientzat\n/unregall\t\tKendu agiri elkarketa guztiak\n/start ms\t\tHasi irakurketa \"sm\" (= segundumilaenetan)\n/startpos hh:mm:ss\tHasi irakurketa kokapen honetan oo:mn:sg\n/fixedsize w,h\tEzarri zuzendutako leiho neurria\n/monitor N\tHasi irakurketa N monitorean,\n\t\tnon N hasten den 1-etik\n/audiorenderer N\tHasi N audio-aurkezlea erabiliz,\n\t\tnon N hasten den 1-etik (ikusi \"Irteera\" ezarpenak)\n/shaderpreset \"Pr\"\tHasi \"Pr\" itzal aurrezarpena erabiliz\n/pns \"name\"\tAdierazi erabiltzeko Pan-Scan aurrezarpen izena\n/iconsassoc\tBerrelkartu heuskarri ikurrak\n/nofocus\t\tIreki MPC-HC barrenean\n/webport N\tHasi web interfazea adierazitako atakan\n/debug\t\tErakutsi garbiketa argibideak IGE-n\n/nominidump\tEzgaitu minidump sortzea\n/slave \"hWnd\"\tErabili MPC-HC esklabu bezala\n/reset\t\tBerrezarri berezko ezarpenak\n/help /h /?\tErakutsi komando lerro aldaketa laguntza\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Erabilpena: mpc-hc.exe \"helburu-izena\" [aldagailuak]\n\n\"pathname\"\tGertatzeko agiri edo zuzenbide nagusia\n\t\t(ordezhizkiak ahal dira, \"-\"-k sarrera estandarra adierazten du)\n/dub \"dubname\"\tGertatu audio agiri gehigarri bat\n/dubdelay \"file\"\tGertatu audio agiri gehigarri bat XXsm aldatuta\n\t\t(baldin agiriak baditu \"...ATZERAPENA XXsM...\")\n/d3dfs\t\tHasi aurkezpena D3D ikusleiho-osoko moduan\n/sub \"subname\"\tGertatu azpidatzi agiri gehigarri bat\n/filter \"filtername\"\tGertatu DirectShow iragazkiak lotura dinamiko\n\t\tliburutegi batetik (ordezhizkiak ahal dira)\n/dvd\t\tEkin dvd moduan, \"helburu-izena\" esanahi du\n\t\tdvd agiritegia (aukerazkoa)\n/dvdpos T#C\tHasi irakurketa I izenburuan, A atalean\n/dvdpos T#hh:mm\tHasi irakurketa I izenburuan, kokapena oo:mn:sg\n/cd\t\tGertatu cd edo (s)vcd audio bide guztiak,\n\t\t\"helburu-izena\" esanahi du gidagailu helburua\n\t\t(aukerazkoa)\n/device\t\tIreki berezko bideo gailua\n/open\t\tIreki agiria, ez hasi irakurketa berezgaitasunez\n/play\t\tHasi agiriaren irakurketa irakurgailua abiaraziz\n\t\tbezain laister\n/close\t\tItxi irakurgailua irakurketaren ondoren\n\t\t(bakarrik lan egiten du /irakurri erabiltzen denean)\n/shutdown\tItzali sistema eragilea irakurketaren ondoren\n/standby\t\tJarri sistema eragilea egonean irakurketaren ondoren\n/hibernate\tNeguratu sistema eragilea irakurketaren ondoren\n/logoff\t\tAmaitu saioa irakurketaren ondoren\n/lock\t\tBlokeatu langunea irakurketaren ondoren\n/monitoroff\tItzali monitorea irakurketaren ondoren\n/playnext\t\tIreki agiritegiko hurrengo agiria irakurketaren ondoren\n/fullscreen\tHasi ikusleiho-osoko moduan\n/minimized\tHasi txikien moduan\n/new\t\tErabili irakurgailuaren eskabide berri bat\n/add\t\tGehitu \"helburu-izena\" irakur-zerrendara,\n\t\tnahastu daiteke /ireki eta /irakurrirekin\n/randomize\tRandomize the playlist\n/regvid\t\tSortu agiri elkarketak bideo agirientzat\n/regaud\t\tSortu agiri elkarketak audio agirientzat\n/regpl\t\tSortu agiri elkarketak irakur-zerrendentzat\n/regall\t\tSortu agiri elkarketak sostengatutako\n\t\tagiri mota guztientzat\n/unregall\t\tKendu agiri elkarketa guztiak\n/start ms\t\tHasi irakurketa \"sm\" (= segundumilaenetan)\n/startpos hh:mm:ss\tHasi irakurketa kokapen honetan oo:mn:sg\n/fixedsize w,h\tEzarri zuzendutako leiho neurria\n/monitor N\tHasi irakurketa N monitorean,\n\t\tnon N hasten den 1-etik\n/audiorenderer N\tHasi N audio-aurkezlea erabiliz,\n\t\tnon N hasten den 1-etik (ikusi \"Irteera\" ezarpenak)\n/shaderpreset \"Pr\"\tHasi \"Pr\" itzal aurrezarpena erabiliz\n/pns \"name\"\tAdierazi erabiltzeko Pan-Scan aurrezarpen izena\n/iconsassoc\tBerrelkartu heuskarri ikurrak\n/nofocus\t\tIreki MPC-HC barrenean\n/webport N\tHasi web interfazea adierazitako atakan\n/debug\t\tErakutsi garbiketa argibideak IGE-n\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tErabili MPC-HC esklabu bezala\n/reset\t\tBerrezarri berezko ezarpenak\n/help /h /?\tErakutsi komando lerro aldaketa laguntza\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,41 +2748,13 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Goi Atze Eskuinean" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Berrezarri Erakutsi Estatistikak" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Azpidatziak::Askotarikoa" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Ezkutatu hertzak\tKtrl+0" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Framea Bakarrik\tKtrl+0" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Erakutsi Harpen-Menua\tKtrl+0" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Ezkutatu &Menua\tKtrl+0" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Aurreratua" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" -msgstr "Bilaketabarra gainean" +msgid "Above seek bar" +msgstr "Bilaketa barra gainean" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" -msgstr "Bilaketabarra azpian" +msgid "Below seek bar" +msgstr "Bilaketa barra azpian" msgctxt "IDS_VIDEO_STREAM" msgid "Video: %s" @@ -2897,8 +2921,8 @@ msgid "Other Audio" msgstr "Bestelako Audioa" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Galeragabe" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audioa" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Kodeka" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audioa" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audioa" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Kodeka" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Irakur-zerrenda" @@ -3373,7 +3401,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Akatsa sartutako frame neurria aztertzerakoan!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Ezinezkoa frame urratsa, saiatu beste bideo aurkezle batekin." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,9 +3492,9 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Ezarpen berriak ezarri behar dituzu aztertu aurretik." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" -msgstr "Irakurketa Ondoren: Irten" +msgstr "Irakurri Ondoren: Irten" msgctxt "IDS_AFTERPLAYBACK_STANDBY" msgid "After Playback: Stand By" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.fi.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.fi.dialogs.po index f8005187819..c1059b5dcd6 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.fi.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.fi.dialogs.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: Khaida \n" +"PO-Revision-Date: 2015-01-12 18:41+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Finnish (http://www.transifex.com/projects/p/mpc-hc/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -111,7 +111,7 @@ msgid "Enable custom channel mapping" msgstr "Käytä yksilöllistä kanavakartoitusta" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Kaiutinmäärittely" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -119,7 +119,7 @@ msgid "input channels:" msgstr "Sisääntulokanavat" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Pidä vaihto-näppäin pohjassa tehdäksesi muutokset heti klikattaessa" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -571,7 +571,7 @@ msgid "Warning" msgstr "Varoitus" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Jos pakotat ja otat käyttöön kokoruututilan antialiasoinnin näytönohjaimesi asetuksissa, tekstitykset eivät näy yhtään paremmin mutta syövät prosessoritehoa." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -683,11 +683,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Käytä Windows 7 tehtäväpalkkiominaisuuksia" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Avaa kansion seuraava/edellinen tiedosto toiminnossa \"Takaisin/eteenpäin\", kun toistolistassa on vain yksi nimike." msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Käytä aika-työkaluvihjettä:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1279,8 +1279,8 @@ msgid "Enable automatic update check" msgstr "Salli päivitysten automaattinen tarkistus" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Tarkistusten väliaika:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1666,3 +1666,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.fi.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.fi.menus.po index 269731dbea1..fd2a73165af 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.fi.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.fi.menus.po @@ -2,14 +2,15 @@ # Copyright (C) 2002 - 2015 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: +# Pallerå, 2015 # phewi , 2014 # Raimo K. Talvio, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-04 09:11+0000\n" -"Last-Translator: phewi \n" +"PO-Revision-Date: 2015-02-08 14:31+0000\n" +"Last-Translator: Pallerå\n" "Language-Team: Finnish (http://www.transifex.com/projects/p/mpc-hc/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -197,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Pikatesti" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "Näytä tilastot" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Aika jäljellä" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -515,7 +520,7 @@ msgstr "toistettaessa videota" msgctxt "ID_VIEW_OPTIONS" msgid "&Options..." -msgstr "Vaihtoehdot" +msgstr "Asetukset" msgctxt "POPUP" msgid "&Play" @@ -554,16 +559,16 @@ msgid "S&haders" msgstr "Varjostimet" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "Audio" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Tekstitykset" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Videostriimi" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Toiston jälkeen" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Toista seuraava tiedosto kansiosta" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Sulje näyttö" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Poistu" @@ -609,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Lukitse" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Sulje näyttö" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Toista seuraava tiedosto kansiosta" - msgctxt "POPUP" msgid "&Navigate" msgstr "Navigoi" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.fi.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.fi.strings.po index b6496d882a0..d8830151d0d 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.fi.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.fi.strings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-04 09:31+0000\n" -"Last-Translator: phewi \n" +"PO-Revision-Date: 2015-02-08 14:31+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Finnish (http://www.transifex.com/projects/p/mpc-hc/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,11 +326,11 @@ msgid "On/Off" msgstr "Päällä/pois" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Kehysnopeudesta" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "kehysnopeuteen" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Sama kuin VMR-9 (muuntamaton), mutta käyttää true two-pass bicubic-koon muuttajaa." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Yhdistää mihin tahansa videon omaiseen mediatyyppiin eikä lähetä tulonäytettä minnekään- Käytä, kun et tarvitse videonäyttöä ja haluat säästää CPU:ta tarpeettomattomalta käytöltä." msgctxt "IDC_DSNULL_UNCOMP" @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Vaimenna" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Poista vaimennus" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "Kuvasuhde %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Avaa laite" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Pysäytä" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Kehysaskel" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Kehysaskel taakse" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Pienoiskuvien tallennus onnistui" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Videovirta" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Siirrä tekstitystä oikeaan" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Näytä tilastot" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Hyppää alkuun" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Tekstitykset::Sekal" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Kätke &rajat" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Vain kehys" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Näytä Caption&&Valikko" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Kätke &valikko" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Kehittynyt" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Näytä pienenä" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Pomo-näppäin" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Soittimen valikko (lyhyt)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Soittimen valikko (pitkä)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Tekstitys päällä/pois (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Jäljellä oleva aika" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Muisti lopussa" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Virhe: IE:n Flash player vaaditaan" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Virhe: Internet Explorer:n Adobe Flash Player vaaditaan" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Tekstitysvalikko päällä/pois" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Etsintä päällä/pois" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Äänenvoimakkuuden vahvistus Max." msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Käyttö: mpc-hc.exe \"pathname\" [switsit]\n\n\"pathname\"\tLadattava tiedosto tai hakemisto\n\t\t(villit kortit sallittu, \"-\" tarkoittaa oletussyöttöä)\n/dub \"dubname\"\tLataa lisäaudiotiedoston\n/dubdelay \"file\"\tLataa XX ms viivästetyn lisäaudiotiedoston\n\t\t(jos tiedosto sisältää \"...DELAY XXms...\")\n/d3dfs\t\tAloittaa muunnon D3D kokoruututilassa\n/sub \"subname\"\tLataa lisätekstitystiedoston\n/filter \"filtername\"\tLataa -suotimet dynaamisesta linkkikirjastosta\n\t\t(villit kortit sallittu)\n/dvd\t\tToimii DVD-tilassa, \"pathname\" tarkoittaa\n\t\tkansiota (valinnainen)\n/dvdpos T#C\tAlkaa toiston nimikkeestä T,\n\t\tkappaleesta C\n/dvdpos T#hh:mm\tAlkaa toiston nimikkeestä T,\n\t\tsijainnista hh:mm:ss\n/cd\t\tLataa kaikki audio-CD:n tai (s)vcd:n raidat\n\t\t\"pathname\" tarkoittaa aseman polkua (valinnainen)\n/device\t\tAvaa oletusvideolaitteen\n/open\t\tAvaa tiedoston, ei aloita toistoa automaattisesti\n/play\t\tAloittaa toiston heti kun soitin on käynnistetty\n/close\t\tSulkee soittimen toiston jälkeen (toimii vain \n\t\tyhdessä /play:n kanssa)\n/shutdown\tSulkee käyttöjärjestelmän toiston jälkeen\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tKäynnistys kokonäyttö-tilassa\n/minimized\tKäynnistys minimitilassa\n/new\t\tKäyttää toista soittimen instanssia\n/add\t\tLisää \"pathname\" toistolistaan, voidaan\n\t\tkäyttää yhdessä /open ja /play kanssa\n/regvid\t\tLuo tiedostokytkennän videotietostoille \n/regaud\t\tLuo tiedostokytkennän audiotietostoille\n/regpl\t\tLuo tiedostokytkennän soittoluettelotiedostoille\n/regall\t\tLuo tiedostokytkennän kaikille tuetuille tiedostotyypeille\n/unregall\t\tPoistaa kaikki tiedostokytkennät\n/start ms\t\tAloittaa toiston kohdasta \"ms\" (= millisekuntia)\n/startpos hh:mm:ss\tAloittaa toiston kohdasta hh:mm:ss\n/fixedsize w,h\tAsettaa kiinteän ikkunakoon\n/monitor N\tKäynnistää soittimen näyttö N:llä, \n\t\tjossa N aloittaa 1:stä\n/audiorenderer N\tKäynnistää käyttäen audiomuunnin\n\t\tN:ää, jossa N alkaa 1:stä (katso \"Output\"-asetukset)\n/shaderpreset \"Pr\"\tKäynnistä käyttäen \"Pr\" varjostin-asetuksia\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPalauttaa oletusasetukset\n/help /h /?\tNäyttää komentorivin svitsien ohjeen\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Käyttö: mpc-hc.exe \"pathname\" [switsit]\n\n\"pathname\"\tLadattava tiedosto tai hakemisto\n\t\t(villit kortit sallittu, \"-\" tarkoittaa oletussyöttöä)\n/dub \"dubname\"\tLataa lisäaudiotiedoston\n/dubdelay \"file\"\tLataa XX ms viivästetyn lisäaudiotiedoston\n\t\t(jos tiedosto sisältää \"...DELAY XXms...\")\n/d3dfs\t\tAloittaa muunnon D3D kokoruututilassa\n/sub \"subname\"\tLataa lisätekstitystiedoston\n/filter \"filtername\"\tLataa -suotimet dynaamisesta linkkikirjastosta\n\t\t(villit kortit sallittu)\n/dvd\t\tToimii DVD-tilassa, \"pathname\" tarkoittaa\n\t\tkansiota (valinnainen)\n/dvdpos T#C\tAlkaa toiston nimikkeestä T,\n\t\tkappaleesta C\n/dvdpos T#hh:mm\tAlkaa toiston nimikkeestä T,\n\t\tsijainnista hh:mm:ss\n/cd\t\tLataa kaikki audio-CD:n tai (s)vcd:n raidat\n\t\t\"pathname\" tarkoittaa aseman polkua (valinnainen)\n/device\t\tAvaa oletusvideolaitteen\n/open\t\tAvaa tiedoston, ei aloita toistoa automaattisesti\n/play\t\tAloittaa toiston heti kun soitin on käynnistetty\n/close\t\tSulkee soittimen toiston jälkeen (toimii vain \n\t\tyhdessä /play:n kanssa)\n/shutdown\tSulkee käyttöjärjestelmän toiston jälkeen\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tKäynnistys kokonäyttö-tilassa\n/minimized\tKäynnistys minimitilassa\n/new\t\tKäyttää toista soittimen instanssia\n/add\t\tLisää \"pathname\" toistolistaan, voidaan\n\t\tkäyttää yhdessä /open ja /play kanssa\n/randomize\tRandomize the playlist\n/regvid\t\tLuo tiedostokytkennän videotietostoille \n/regaud\t\tLuo tiedostokytkennän audiotietostoille\n/regpl\t\tLuo tiedostokytkennän soittoluettelotiedostoille\n/regall\t\tLuo tiedostokytkennän kaikille tuetuille tiedostotyypeille\n/unregall\t\tPoistaa kaikki tiedostokytkennät\n/start ms\t\tAloittaa toiston kohdasta \"ms\" (= millisekuntia)\n/startpos hh:mm:ss\tAloittaa toiston kohdasta hh:mm:ss\n/fixedsize w,h\tAsettaa kiinteän ikkunakoon\n/monitor N\tKäynnistää soittimen näyttö N:llä, \n\t\tjossa N aloittaa 1:stä\n/audiorenderer N\tKäynnistää käyttäen audiomuunnin\n\t\tN:ää, jossa N alkaa 1:stä (katso \"Output\"-asetukset)\n/shaderpreset \"Pr\"\tKäynnistä käyttäen \"Pr\" varjostin-asetuksia\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPalauttaa oletusasetukset\n/help /h /?\tNäyttää komentorivin svitsien ohjeen\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "YläTakaOikea" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Nollaa näyttötilastot" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Tekstitykset::Sekal" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Kätke &rajat" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Vain kehys" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Näytä Caption&&Valikko" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Kätke &valikko" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Kehittynyt" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Etsintäpalkin yläpuolella" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Etsintäpalkin alapuolella" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Muu audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Häviötön" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AM´R" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Soittolista" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Virhe jäsennettäessä annettua kehysnopeutta!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Kehystä ei voi askeltaa, yritä eri videomuuntimella." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Sinun on otettava uudet asetukset käyttöön ennen niiden testaamista." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Toiston jälkeen: Lopeta" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.fr.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.fr.dialogs.po index 3660b1f4fec..a782edc17e3 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.fr.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.fr.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Underground78, 2013-2014 +# Underground78, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-11 11:21+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-18 19:16+0000\n" "Last-Translator: Underground78\n" "Language-Team: French (http://www.transifex.com/projects/p/mpc-hc/language/fr/)\n" "MIME-Version: 1.0\n" @@ -109,7 +109,7 @@ msgid "Enable custom channel mapping" msgstr "Activer la répartition personnalisée des canaux" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Configuration des hauts-parleurs pour" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -117,8 +117,8 @@ msgid "input channels:" msgstr "canaux en entrée :" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Maintenez la touche Maj. en cliquant pour que la modification soit immédiate " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Maintenez la touche Maj. en cliquant pour que la modification soit immédiate" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -569,7 +569,7 @@ msgid "Warning" msgstr "Attention" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Si vous activez l'anticrénelage en mode plein écran dans les paramètres de votre carte vidéo, cela n'améliorera pas l'affichage des sous-titres mais consommera davantage de ressources système." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -681,12 +681,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Utilisation des fonctionnalités de la barre des tâches de Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "Ouvrir le fichier suivant/précédent dans le dossier lorsque \"Fichier suivant/précédent\" est utilisé alors qu'il n'y a qu'un seul élément dans la liste de lecture" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Ouvrir le fichier précédent/suivant dans le dossier lorsque \"Fichier précédent/suivant\" est utilisé alors qu'il n'y a qu'un seul élément dans la liste de lecture" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Utiliser l'infobulle temporelle :" +msgid "Show time tooltip:" +msgstr "Afficher l'infobulle temporelle :" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Activer la recherche automatique des mises à jour" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Délai entre chaque vérification :" +msgid "Check every:" +msgstr "Vérifier tous les :" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Rapporteur de plantage" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Désolé, il semblerait que MPC-HC vienne de planter. :(\n\nPour nous aider à diagnostiquer et à corriger le problème, un rapport de bug va être envoyé. Vous pouvez fournir des informations complémentaires si vous le souhaitez." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-mail :" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Votre adresse électronique est optionnelle et sera utilisée uniquement si les développeurs ont besoin de vous contacter pour un supplément d'information." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Description du problème (obligatoirement en anglais) :" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.fr.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.fr.menus.po index 24f54174c89..c423e576544 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.fr.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.fr.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Underground78, 2013-2014 +# Underground78, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-11 11:11+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 17:11+0000\n" "Last-Translator: Underground78\n" "Language-Team: French (http://www.transifex.com/projects/p/mpc-hc/language/fr/)\n" "MIME-Version: 1.0\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Test de &tearing" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" msgstr "&Afficher les statistiques" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Durée restante" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Afficher l'&indicateur de temps" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Afficher le nom de &fichier" msgctxt "POPUP" msgid "&Output Range" @@ -553,15 +557,15 @@ msgid "S&haders" msgstr "&Effets vidéo" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "Piste &audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Sous-titres" +msgid "Su&btitle Track" +msgstr "Piste de &sous-titres" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" +msgid "&Video Track" msgstr "Piste &vidéo" msgctxt "POPUP" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "&En fin de lecture" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "&Ne rien faire" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Lire le fichier &suivant dans le répertoire" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Éteindre l'&écran" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Quitter le programme" @@ -602,20 +618,12 @@ msgstr "&Arrêter l'ordinateur" msgctxt "ID_AFTERPLAYBACK_LOGOFF" msgid "Log &Off" -msgstr "Fermer la &session" +msgstr "&Fermer la session" msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Verrouiller la session" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Éteindre l'&écran" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Lire le fichier &suivant dans le répertoire" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigation" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.fr.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.fr.strings.po index fb0ee7e9d3b..ac1a319aa08 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.fr.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.fr.strings.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Underground78, 2013-2014 +# Underground78, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-11 11:31+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 17:11+0000\n" "Last-Translator: Underground78\n" "Language-Team: French (http://www.transifex.com/projects/p/mpc-hc/language/fr/)\n" "MIME-Version: 1.0\n" @@ -325,11 +325,11 @@ msgid "On/Off" msgstr "Activé" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "IPS d'origine" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "IPS cible" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -621,7 +621,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Identique à VMR-9 (sans rendu), mais utilise un vrai redimensionnement bicubique en deux temps." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Se connecte à n'importe quel type de média vidéo mais n'envoie les données entrantes nul part. Utilisez le quand vous n'avez pas besoin de l'affichage vidéo et que vous voulez économiser des ressources processeur en évitant du travail inutile." msgctxt "IDC_DSNULL_UNCOMP" @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Muet" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Activer le son" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Sauvegarder le journal des événements dans un fichier (redémarrage nécessaire)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Temps restant" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Haute précision" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "En fin de lecture : Rembobiner le fichier" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "En fin de lecture : Fermer le fichier" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Ouvrir un périphérique" @@ -1421,11 +1441,11 @@ msgid "Stop" msgstr "Arrêter" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Image suivante" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Image précédente" msgctxt "IDS_AG_GO_TO" @@ -1525,7 +1545,7 @@ msgid "Thumbnails saved successfully" msgstr "Miniatures sauvegardées avec succès" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" +msgid "&Video Track" msgstr "Piste &vidéo" msgctxt "IDS_MENU_VIDEO_ANGLE" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Décalage à droite des sous-titres" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Statistiques d'affichage" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Revenir au début" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD : Afficher le nom de fichier" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD : Afficher les statistiques du moteur de rendu" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD : Réinitialiser les statistiques du moteur de rendu" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Sous-titres::Divers" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Cacher les &bordures" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "&Bordures uniquement" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Afficher le &titre et le menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Cacher le &menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Réglages expert" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Vue minimale" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "\"Boss key\"" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Afficher le menu (court) du lecteur" +msgid "Player Menu" +msgstr "Menu du lecteur" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Afficher le menu (long) du lecteur" +msgid "Player Menu (full)" +msgstr "Menu du lecteur (complet)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Activer/Désactiver les sous-titres (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Afficher le temps restant" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD : Afficher l'indicateur de temps" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "Mémoire insuffisante" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Erreur : le lecteur Flash pour IE est requis" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Erreur : Adobe Flash Player pour Internet Explorer est requis" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,7 +2409,7 @@ msgid "Toggle Caption&Menu" msgstr "Afficher le titre et le menu" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Afficher la barre de recherche" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "Amplification du volume maximale" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Utilisation : mpc-hc.exe \"chemin du fichier\" [options]\n\n\"chemin du fichier\"\tFichier principal ou répertoire à charger (jokers\n\t\tautorisés, \"-\" désigne l'entrée standard)\n/dub \"fichier audio\"\tCharge un fichier audio supplémentaire\n/dubdelay \"fichier\"\tCharge un fichier audio avec décalage de XXms (si\n\t\tle nom contient \"...DELAY XXms...\")\n/d3dfs\t\tLance l'affichage en mode plein écran D3D (réduit le\n\t\t\"tearing\")\n/sub \"fichier ST\"\tCharge un fichier de sous-titres\n/filter \"nom\"\tCharge un filtre DirectShow à partir d'une DLL\n\t\t(jokers autorisés)\n/dvd\t\tDémarre en mode DVD (il est possible de fournir le\n\t\tnom du répertoire)\n/dvdpos T#C\tDémarre la lecture du titre T, à partir du chapitre C\n/dvdpos T#hh:mm\tDémarre la lecture du titre T, à partir de la position hh:mm:ss\n/cd\t\tCharge toutes les pistes d'un CD audio ou d'un (S)Vcd\n/device\t\tOuvre le périphérique vidéo par défaut\n/open\t\tOuvre le fichier et met MPC-HC en pause\n/play\t\tOuvre le fichier et commence la lecture\n/close\t\tQuitte automatiquement après la lecture\n/shutdown\tÉteint la machine après la lecture\n/standby\t\tMet la machine en veille après la lecture\n/hibernate\tMet la machine en veille prolongée après la lecture\n/logoff\t\tDéconnecte la session après la lecture\n/lock\t\tVerrouille la session après la lecture\n/monitoroff\tÉteint l'écran après la lecture\n/playnext\t\tOuvre le fichier suivant dans le répertoire après la lecture\n/fullscreen\tDémarre en plein écran\n/minimized\tDémarre en mode minimisé\n/new\t\tDémarre une nouvelle instance de MPC-HC\n/add\t\tAjoute un fichier à la playlist\n/regvid\t\tAssocie les formats vidéo à MPC-HC\n/regaud\t\tAssocie les formats audio à MPC-HC\n/regpl\t\tAssocie les listes de lecture à MPC-HC\n/regall\t\tAssocie tous les fichiers supportés à MPC-HC\n/unregall\t\tSupprime l'association des fichiers à MPC-HC\n/start ms\t\tDémarre la lecture à \"ms\" (millisecondes)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize L,H\tFixe la taille de la fenêtre vidéo à LxH\n/monitor N\tDémarre MPC-HC sur l'écran N (N à partir de 1)\n/audiorenderer N\tUtiliser le moteur de rendu audio N, où N commence à partir de 1\n\t\t(cf. \"Sortie audio\" dans les options)\n/shaderpreset \"Pr\"\tUtiliser la présélection d'effets vidéo \"Pr\"\n/pns \"nom\"\tSpécifie la présélection \"Pan & Scan\" à utiliser\n/iconsassoc\tRéassocie les icônes spécifiques aux formats\n/nofocus\t\tDémarre MPC-HC en arrière-plan\n/webport N\tDémarre l'interface web sur le port spécifié\n/debug\t\tAffiche des informations de débogage via l'OSD\n/nominidump\tDésactive la création de minidump\n/slave \"hWnd\"\tDémarre MPC-HC en mode \"esclave\"\n/reset\t\tRestaure les paramètres par défaut\n/help /h /?\tAffiche l'aide pour les options de la ligne de commande\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Utilisation : mpc-hc.exe \"chemin du fichier\" [options]\n\n\"chemin du fichier\"\tFichier principal ou répertoire à charger (jokers\n\t\tautorisés, \"-\" désigne l'entrée standard)\n/dub \"fichier audio\"\tCharge un fichier audio supplémentaire\n/dubdelay \"fichier\"\tCharge un fichier audio avec décalage de XXms (si\n\t\tle nom contient \"...DELAY XXms...\")\n/d3dfs\t\tLance l'affichage en mode plein écran D3D (réduit le\n\t\t\"tearing\")\n/sub \"fichier ST\"\tCharge un fichier de sous-titres\n/filter \"nom\"\tCharge un filtre DirectShow à partir d'une DLL\n\t\t(jokers autorisés)\n/dvd\t\tDémarre en mode DVD (il est possible de fournir le\n\t\tnom du répertoire)\n/dvdpos T#C\tDémarre la lecture du titre T, à partir du chapitre C\n/dvdpos T#hh:mm\tDémarre la lecture du titre T, à partir de la position hh:mm:ss\n/cd\t\tCharge toutes les pistes d'un CD audio ou d'un (S)Vcd\n/device\t\tOuvre le périphérique vidéo par défaut\n/open\t\tOuvre le fichier et met MPC-HC en pause\n/play\t\tOuvre le fichier et commence la lecture\n/close\t\tQuitte automatiquement après la lecture\n/shutdown\tÉteint la machine après la lecture\n/standby\t\tMet la machine en veille après la lecture\n/hibernate\tMet la machine en veille prolongée après la lecture\n/logoff\t\tDéconnecte la session après la lecture\n/lock\t\tVerrouille la session après la lecture\n/monitoroff\tÉteint l'écran après la lecture\n/playnext\t\tOuvre le fichier suivant dans le répertoire après la lecture\n/fullscreen\tDémarre en plein écran\n/minimized\tDémarre en mode minimisé\n/new\t\tDémarre une nouvelle instance de MPC-HC\n/add\t\tAjoute un fichier à la playlist\n/randomize\tTrie aléatoirement la liste de lecture\n/regvid\t\tAssocie les formats vidéo à MPC-HC\n/regaud\t\tAssocie les formats audio à MPC-HC\n/regpl\t\tAssocie les listes de lecture à MPC-HC\n/regall\t\tAssocie tous les fichiers supportés à MPC-HC\n/unregall\t\tSupprime l'association des fichiers à MPC-HC\n/start ms\t\tDémarre la lecture à \"ms\" (millisecondes)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize L,H\tFixe la taille de la fenêtre vidéo à LxH\n/monitor N\tDémarre MPC-HC sur l'écran N (N à partir de 1)\n/audiorenderer N\tUtiliser le moteur de rendu audio N, où N commence à partir de 1\n\t\t(cf. \"Sortie audio\" dans les options)\n/shaderpreset \"Pr\"\tUtiliser la présélection d'effets vidéo \"Pr\"\n/pns \"nom\"\tSpécifie la présélection \"Pan & Scan\" à utiliser\n/iconsassoc\tRéassocie les icônes spécifiques aux formats\n/nofocus\t\tDémarre MPC-HC en arrière-plan\n/webport N\tDémarre l'interface web sur le port spécifié\n/debug\t\tAffiche des informations de débogage via l'OSD\n/nocrashreporter\tDésactive le rapporteur de plantage\n/slave \"hWnd\"\tDémarre MPC-HC en mode \"esclave\"\n/reset\t\tRestaure les paramètres par défaut\n/help /h /?\tAffiche l'aide pour les options de la ligne de commande\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,40 +2748,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Haut arrière droit" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Remise à zéro des statistiques d'affichage" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Sous-titres::Divers" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Cacher les &bordures" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Bordures uniquement" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Afficher le &titre et le menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Cacher le &menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Réglages expert" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Au-dessus de la barre de lecture" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Au-dessous de la barre de lecture" msgctxt "IDS_VIDEO_STREAM" @@ -2897,8 +2921,8 @@ msgid "Other Audio" msgstr "Autres formats audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Fichier audio Windows Media" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Fichier audio Windows Media" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Liste de lecture" @@ -3373,7 +3401,7 @@ msgid "Error parsing the entered frame rate!" msgstr "L'analyse du débit d'images entré a échoué !" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Impossible d'utiliser le déplacement image par image, réessayez avec un autre moteur de rendu vidéo." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,7 +3492,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Il est nécessaire d'appliquer les changements avant de pouvoir les tester." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "En fin de lecture : Quitter le programme" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.gl.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.gl.dialogs.po index 1f667b2ecc2..1403a21e8cf 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.gl.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.gl.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Rubén , 2014 +# Rubén , 2014-2015 # Toño Calo , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-23 18:52+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-27 14:16+0000\n" "Last-Translator: Rubén \n" "Language-Team: Galician (http://www.transifex.com/projects/p/mpc-hc/language/gl/)\n" "MIME-Version: 1.0\n" @@ -110,7 +110,7 @@ msgid "Enable custom channel mapping" msgstr "Activar mapeo de canles personalizado" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Axustes dos altofalantes para" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -118,7 +118,7 @@ msgid "input channels:" msgstr "Canles de entrada:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Presiona a tecla \"shift\" para aplicar os cambios de inmediato" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -155,7 +155,7 @@ msgstr "Abrir" msgctxt "IDD_OPEN_DLG_IDC_STATIC" msgid "Type the address of a movie or audio file (on the Internet or your computer) and the player will open it for you." -msgstr "Escribe a ruta do filme ou ficheiro de audio (en Internet ou no teu ordenador) e o reproductor abrirao por ti." +msgstr "Escribe a ruta do filme ou ficheiro de audio (en Internet ou no teu ordenador) e o reprodutor abrirao por ti." msgctxt "IDD_OPEN_DLG_IDC_STATIC" msgid "Open:" @@ -243,11 +243,11 @@ msgstr "Opcións de apertura" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO1" msgid "Use the same player for each media file" -msgstr "Usar o mesmo reproductor para cada ficheiro de medios que se reproduza" +msgstr "Usar o mesmo reprodutor para cada ficheiro de medios que se reproduza" msgctxt "IDD_PPAGEPLAYER_IDC_RADIO2" msgid "Open a new player for each media file played" -msgstr "Abrir un novo reproductor para cada ficheiro de medios que se reproduza" +msgstr "Abrir un novo reprodutor para cada ficheiro de medios que se reproduza" msgctxt "IDD_PPAGEPLAYER_IDC_STATIC" msgid "Language" @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Aviso" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Se activas o modo de antialiasing a pantalla completa na configuración da súa tarxeta gráfica, os subtítulos non lucirán mellor e esixirán forza ao CPU." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Utilizar características da barra de tarefas de Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Saltar ao ficheiro anterior/seguinte no cartafol en \"Saltar seguinte/anterior\" cando só hai un ficheiro na lista de reprodución" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Usar tooltip de tempo:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Activar comprobación automática de actualizacións" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Demora entre cada comprobación:" +msgid "Check every:" +msgstr "Comprobar cada:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "De acordo" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Informe de fallo" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Sentimolo, semella que MPC-HC acaba de caer. :(\n\nPara axudarnos a diagnosticar e reparar o problema, enviarase un informe de fallo. Pode proporcionar información adicional se quere." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Correo electrónico:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "O seu enderezo de correo electrónico é opcional e só se usará se os desenvolvedores precisan contactar con vostede para recabar máis información." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Descrición do problema (usa só o inglés):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "De acordo" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.gl.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.gl.menus.po index ce680454e5c..0375c619b67 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.gl.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.gl.menus.po @@ -1,13 +1,14 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Rubén , 2014 +# Rubén , 2014-2015 +# Toño Calo , 2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-12-23 18:52+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 14:15+0000\n" "Last-Translator: Rubén \n" "Language-Team: Galician (http://www.transifex.com/projects/p/mpc-hc/language/gl/)\n" "MIME-Version: 1.0\n" @@ -26,7 +27,7 @@ msgstr "Abrir Ficheiro &Rápido" msgctxt "ID_FILE_OPENMEDIA" msgid "&Open File..." -msgstr "&Abrir Ficheiro..." +msgstr "Abrir ficheir&o..." msgctxt "ID_FILE_OPENDVDBD" msgid "Open &DVD/BD..." @@ -34,7 +35,7 @@ msgstr "Abrir &DVD/BD..." msgctxt "ID_FILE_OPENDEVICE" msgid "Open De&vice..." -msgstr "Abrir Dis&positivo..." +msgstr "Abrir dispositi&vo..." msgctxt "ID_FILE_OPENDIRECTORY" msgid "Open Dir&ectory..." @@ -46,11 +47,11 @@ msgstr "A&brir Disco" msgctxt "ID_RECENT_FILES" msgid "Recent &Files" -msgstr "Ficheiros Recentes" +msgstr "&Ficheiros recentes" msgctxt "ID_FILE_CLOSE_AND_RESTORE" msgid "&Close" -msgstr "&Pechar" +msgstr "Pe&char" msgctxt "ID_FILE_SAVE_COPY" msgid "&Save a Copy..." @@ -58,23 +59,23 @@ msgstr "&Gardar unha Copia..." msgctxt "ID_FILE_SAVE_IMAGE" msgid "Save &Image..." -msgstr "Gardar &Imaxe..." +msgstr "Gardar &imaxe..." msgctxt "ID_FILE_SAVE_THUMBNAILS" msgid "Save &Thumbnails..." -msgstr "Gardar &Miniaturas..." +msgstr "Gardar &miniaturas..." msgctxt "ID_FILE_LOAD_SUBTITLE" msgid "&Load Subtitle..." -msgstr "Cargar &Subtítulo..." +msgstr "Cargar subtítu&lo..." msgctxt "ID_FILE_SAVE_SUBTITLE" msgid "Save S&ubtitle..." -msgstr "Gardar S&ubtitulo..." +msgstr "Gardar s&ubtitulo..." msgctxt "POPUP" msgid "Subtitle Data&base" -msgstr "Base de Datos de Subtítulos" +msgstr "&Base de datos de subtítulos" msgctxt "ID_FILE_ISDB_SEARCH" msgid "&Search..." @@ -82,15 +83,15 @@ msgstr "&Procurar..." msgctxt "ID_FILE_ISDB_UPLOAD" msgid "&Upload..." -msgstr "&Subir..." +msgstr "S&ubir..." msgctxt "ID_FILE_ISDB_DOWNLOAD" msgid "&Download..." -msgstr "&Baixar..." +msgstr "&Descargar..." msgctxt "ID_FILE_PROPERTIES" msgid "P&roperties" -msgstr "Pr&opiedades" +msgstr "P&ropiedades" msgctxt "ID_FILE_EXIT" msgid "E&xit" @@ -118,11 +119,11 @@ msgstr "&Información" msgctxt "ID_VIEW_STATISTICS" msgid "&Statistics" -msgstr "&Estatisticas" +msgstr "&Estatísticas" msgctxt "ID_VIEW_STATUS" msgid "St&atus" -msgstr "Es&tado" +msgstr "Est&ado" msgctxt "ID_VIEW_SUBRESYNC" msgid "Su&bresync" @@ -182,31 +183,35 @@ msgstr "&200%" msgctxt "ID_VIEW_ZOOM_AUTOFIT" msgid "Auto &Fit" -msgstr "Auto &Axustar" +msgstr "Axuste &automático" msgctxt "ID_VIEW_ZOOM_AUTOFIT_LARGER" msgid "Auto Fit (&Larger Only)" -msgstr "Auto Axustar (&Se é moi grande)" +msgstr "Axuste automático (se é máis &longo)" msgctxt "POPUP" msgid "R&enderer Settings" -msgstr "Axustes do Renderi&zador" +msgstr "Axustes de proc&esador" msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Proba de &Parpadeo" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Amosar Estadísticas" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Amosar estadísticas" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Amosar &hora actual" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Tempo Restante" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Amosar &nome do ficheiro" msgctxt "POPUP" msgid "&Output Range" -msgstr "&Rango de Saída" +msgstr "Rang&o de saída" msgctxt "ID_VIEW_EVROUTPUTRANGE_0_255" msgid "&0 - 255" @@ -222,19 +227,19 @@ msgstr "&Presentación" msgctxt "ID_VIEW_D3DFULLSCREEN" msgid "D3D Fullscreen &Mode" -msgstr "D3D Modo Pantalla Completa" +msgstr "&Modo pantalla completa D3D" msgctxt "ID_VIEW_FULLSCREENGUISUPPORT" msgid "D3D Fullscreen &GUI Support" -msgstr "&D3D Pantalla Completa con soporte para GUI" +msgstr "Soporte &GUI pantalla completa D3D" msgctxt "ID_VIEW_HIGHCOLORRESOLUTION" msgid "10-bit &RGB Output" -msgstr "&Saída RGB 10-bits" +msgstr "Saída &RGB 10-bit" msgctxt "ID_VIEW_FORCEINPUTHIGHCOLORRESOLUTION" msgid "Force 10-bit RGB &Input" -msgstr "&Forzar entrada RGB 10-bits" +msgstr "Forzar entrada RGB 10-b&it" msgctxt "ID_VIEW_FULLFLOATINGPOINTPROCESSING" msgid "&Full Floating Point Processing" @@ -334,11 +339,11 @@ msgstr "&VSync Alternativa" msgctxt "ID_VIEW_VSYNCOFFSET_DECREASE" msgid "&Decrease VSync Offset" -msgstr "&Disminuir Compensación de Vsync" +msgstr "&Diminuír compensación VSync" msgctxt "ID_VIEW_VSYNCOFFSET_INCREASE" msgid "&Increase VSync Offset" -msgstr "&Incrementar Compensación de Vsync" +msgstr "&Incrementar compensación VSync" msgctxt "POPUP" msgid "&GPU Control" @@ -442,15 +447,15 @@ msgstr "&Corrixir Diferenza de RP Entre Monitor/Escritorio" msgctxt "POPUP" msgid "Pa&n&&Scan" -msgstr "Pan&&S&can" +msgstr "Pa&n&&Scan" msgctxt "ID_VIEW_INCSIZE" msgid "&Increase Size" -msgstr "&Incrementar Tamaño" +msgstr "&Incrementar tamaño" msgctxt "ID_VIEW_DECSIZE" msgid "&Decrease Size" -msgstr "&Disminuir Tamaño" +msgstr "&Diminuír tamaño" msgctxt "ID_VIEW_INCWIDTH" msgid "I&ncrease Width" @@ -534,11 +539,11 @@ msgstr "Avanzar un &Cadro" msgctxt "ID_PLAY_DECRATE" msgid "&Decrease Rate" -msgstr "&Disminuir Velocidade" +msgstr "&Diminuír velocidade" msgctxt "ID_PLAY_INCRATE" msgid "&Increase Rate" -msgstr "&Incrementar Velocidade" +msgstr "&Incrementar velocidade" msgctxt "ID_PLAY_RESETRATE" msgid "R&eset Rate" @@ -553,16 +558,16 @@ msgid "S&haders" msgstr "S&ombreadores" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "Pista de &audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Su&btítulos" +msgid "Su&btitle Track" +msgstr "Pista de su&btítulos" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Secuencia de Vídeo" +msgid "&Video Track" +msgstr "Pista de &vídeo" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "De&spois da Reprodución" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Non facer na&da" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Reproducir o &próximo ficheiro do cartafol" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Apagar o &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Pechar" @@ -608,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Bloquear o ordenador" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Apagar o &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Reproducir o &próximo ficheiro do cartafol" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navegar" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.gl.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.gl.strings.po index 6c2b952efc3..412841cb97c 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.gl.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.gl.strings.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Rubén , 2014 +# Rubén , 2014-2015 # Toño Calo , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-23 18:52+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 14:16+0000\n" "Last-Translator: Rubén \n" "Language-Team: Galician (http://www.transifex.com/projects/p/mpc-hc/language/gl/)\n" "MIME-Version: 1.0\n" @@ -275,7 +275,7 @@ msgstr "O tempo inserido é maior que a duración do ficheiro." msgctxt "IDS_MISSING_ICONS_LIB" msgid "The icons library \"mpciconlib.dll\" is missing.\nThe player's default icon will be used for file associations.\nPlease, reinstall MPC-HC to get \"mpciconlib.dll\"." -msgstr "Non se atopa a biblioteca de iconas \"mpciconlib.dll\".\nA icona predeterminada do reproductor será usada para as asociacións de ficheiros.\nPor favor, reinstale MPC-HC para obter o \"mpciconlib.dll\"." +msgstr "Non se atopa a biblioteca de iconas \"mpciconlib.dll\".\nA icona predeterminada do reprodutor será usada para as asociacións de ficheiros.\nPor favor, reinstale MPC-HC para obter o \"mpciconlib.dll\"." msgctxt "IDS_SUBDL_DLG_FILENAME_COL" msgid "File" @@ -326,12 +326,12 @@ msgid "On/Off" msgstr "Encendido/Apagado" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "De fps" +msgid "From FPS" +msgstr "De FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "A fps" +msgid "To FPS" +msgstr "A FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -435,7 +435,7 @@ msgstr "Reprodución" msgctxt "IDD_PPAGEPLAYER" msgid "Player" -msgstr "Reproductor" +msgstr "Reprodutor" msgctxt "IDD_PPAGEDVD" msgid "Playback::DVD/OGM" @@ -447,7 +447,7 @@ msgstr "Subtítulos" msgctxt "IDD_PPAGEFORMATS" msgid "Player::Formats" -msgstr "Reproductor::Formatos" +msgstr "Reprodutor::Formatos" msgctxt "IDD_PPAGETWEAKS" msgid "Tweaks" @@ -531,7 +531,7 @@ msgstr "madVR" msgctxt "IDD_PPAGEACCELTBL" msgid "Player::Keys" -msgstr "Reproductor::Teclas" +msgstr "Reprodutor::Teclas" msgctxt "IDD_PPAGESUBSTYLE" msgid "Subtitles::Default Style" @@ -543,7 +543,7 @@ msgstr "Filtros Internos" msgctxt "IDD_PPAGELOGO" msgid "Player::Logo" -msgstr "Reproductor::Logo" +msgstr "Reprodutor::Logo" msgctxt "IDD_PPAGEOUTPUT" msgid "Playback::Output" @@ -551,7 +551,7 @@ msgstr "Reprodución::Saída" msgctxt "IDD_PPAGEWEBSERVER" msgid "Player::Web Interface" -msgstr "Reproductor::Interface Web" +msgstr "Reprodutor::Interface Web" msgctxt "IDD_PPAGESUBDB" msgid "Subtitles::Database" @@ -622,8 +622,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Igual que VMR-9 (sen renderizador), pero usa un redimensionador bicúbico de dúas pasadas real." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Conecta a calquera tipo de medio de vídeo e manda as mostras a ningún lado. Utilízao cando non precisas ver o vídeo, e queres evitar o uso de cpu innecesario." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Conecta a calquera tipo de medio de vídeo e manda as mostras a ningún lado. Utilízao cando non precisas ver o vídeo, e queres evitar o uso de CPU innecesario." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Silencio" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Quitar Silencio" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Activa o rexistro de eventos nun ficheiro (require reinicio)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Tempo restante" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Alta precisión" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Tras a reprodución: Rebobinar o ficheiro actual" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Tras a reprodución: Pechar" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Abrir Dispositivo" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Deter" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Avanzar un cadro" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Retroceder un cadro" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniaturas gardadas satisfactoriamente" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Secuencia de &vídeo" +msgid "&Video Track" +msgstr "Pista de &vídeo" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Mover Sub á Dereita" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Amosar Estadisticas" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Saltar ao comezo" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "Sobreimpresión: Amosar nome do ficheiro" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "Sobreimpresión: Amosar estadísticas do renderizador" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "Sobreimpresión: Reiniciar estadísticas do renderizador" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Subtítulos::Outras Opcións" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Agochar &bordos" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Cadro soamente" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Amosar Menú &&Subtítulos" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Agochar &menú" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avanzado" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Modo Mínimo" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Tecla do Xefe" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menú do reproductor (curto)" +msgid "Player Menu" +msgstr "Menú do reprodutor" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menú do reproductor (longo)" +msgid "Player Menu (full)" +msgstr "Menú do reprodutor (completo)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Subtítulos Activados/Desactivados (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Tempo Restante" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "Sobreimpresión: Amosar hora actual" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2083,7 +2135,7 @@ msgstr "MPC-HC non ten suficientes privilexios para cambiar as asociacións de f msgctxt "IDS_APP_DESCRIPTION" msgid "MPC-HC is an extremely light-weight, open source media player for Windows. It supports all common video and audio file formats available for playback. We are 100% spyware free, there are no advertisements or toolbars." -msgstr "MPC-HC é un reproductor de medios de código aberto extremamente lixeiro para Windows. É compatible con todos os formatos comúns de ficheiros de audio e vídeo dispoñibles para a súa reprodución. Estamos 100% libre de spyware, no hai anuncios ou barras de ferramentas." +msgstr "MPC-HC é un reprodutor de medios de código aberto extremamente lixeiro para Windows. É compatible con todos os formatos comúns de ficheiros de audio e vídeo dispoñibles para a súa reprodución. Estamos 100% libre de spyware, no hai anuncios ou barras de ferramentas." msgctxt "IDS_MAINFRM_12" msgid "channel" @@ -2163,7 +2215,7 @@ msgstr "A URL semella correcta!" msgctxt "IDS_PPSDB_PROTOCOLERR" msgid "Protocol version mismatch, please upgrade your player or choose a different address!" -msgstr "Versión do protocolo non compatible, actualiza o teu reproductor ou escolle outro enderezo!" +msgstr "Versión do protocolo non compatible, actualiza o teu reprodutor ou escolle outro enderezo!" msgctxt "IDS_AG_ASPECT_RATIO" msgid "Aspect Ratio" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Falta de memória!" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Erro: Flash para IE non instalado" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Erro: Flash para Internet Explorer non instalado" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Amosar Menú de &Captura" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Amosar Seeker" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Aumento de Volume Maximo" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Uso: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tO ficheiro principal ou directorio vaise cargar (wildcards\n\t\tpermitidos, \"-\" denotes standard input)\n/dub \"dubname\"\tCargar un ficheiro de audio adicional\n/dubdelay \"file\"\tCargar un ficheiro de Audio adicional alterado con XXms (se\n\t\to ficheiro contén \"...DELAY XXms...\")\n/d3dfs\t\tIniciar renderizamento en D3D modo pantalla completa\n/sub \"subname\"\tCargar un ficheiro de subtítulos adicional\n/filter \"filtername\"\tCargar filtros DirectShow dunha ligazón dinámica\n\t\t (wildcards allowed)\n/dvd\t\tExecutar en modo DVD, \"pathname\" significa o cartafol\n\t\tdo dvd (opcional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tCargar todas as pistas dun CD de Audio ou (s)vcd,\n\t\t\"pathname\" significa a ruta do drive (opcional)\n/device\t\tOpen the default video device\n/open\t\tAbrir o ficheiro, non inicia automaticamente a reprodución\n/play\t\tInicia a reprodución do ficheiro cando o reproductor este\n\t\taberto\n/close\t\tPecha o programa despois da reprodución (Só funciona cando é\n\t\tusado con /play)\n/shutdown\tDesliza o sistema operacional despois da reprodución\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tInicia en modo pantalla completa\n/minimized\tInicia en modo minimizado\n/new\t\tUsa o programa nunha nova estancia\n/add\t\tadiciona \"pathname\" á lista de reprodución, pode ser combinada\n\t\tcon /open e con /play\n/regvid\t\tRexistra formatos de vídeo\n/regaud\t\tRexistra formatos de Audio\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tFacer rexistro de todos os formatos de vídeo\n/start ms\t\tInicia a reprodución en \"ms\" (= millisegundos)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tAxusta tamaño fixo da xanela\n/monitor N\tInicia monitoramento N, onde N inicia en 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestaura as configuracións por defecto \n/help /h /?\tAmosa axuda sobre as opcións da liña de comandos\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Uso: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tO ficheiro principal ou directorio vaise cargar (wildcards\n\t\tpermitidos, \"-\" denotes standard input)\n/dub \"dubname\"\tCargar un ficheiro de audio adicional\n/dubdelay \"file\"\tCargar un ficheiro de Audio adicional alterado con XXms (se\n\t\to ficheiro contén \"...DELAY XXms...\")\n/d3dfs\t\tIniciar renderizamento en D3D modo pantalla completa\n/sub \"subname\"\tCargar un ficheiro de subtítulos adicional\n/filter \"filtername\"\tCargar filtros DirectShow dunha ligazón dinámica\n\t\t (wildcards allowed)\n/dvd\t\tExecutar en modo DVD, \"pathname\" significa o cartafol\n\t\tdo dvd (opcional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tCargar todas as pistas dun CD de Audio ou (s)vcd,\n\t\t\"pathname\" significa a ruta do drive (opcional)\n/device\t\tOpen the default video device\n/open\t\tAbrir o ficheiro, non inicia automaticamente a reprodución\n/play\t\tInicia a reprodución do ficheiro cando o reprodutor este\n\t\taberto\n/close\t\tPecha o programa despois da reprodución (Só funciona cando é\n\t\tusado con /play)\n/shutdown\tDesliza o sistema operacional despois da reprodución\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tInicia en modo pantalla completa\n/minimized\tInicia en modo minimizado\n/new\t\tUsa o programa nunha nova estancia\n/add\t\tadiciona \"pathname\" á lista de reprodución, pode ser combinada\n\t\tcon /open e con /play\n/randomize\tRandomize the playlist\n/regvid\t\tRexistra formatos de vídeo\n/regaud\t\tRexistra formatos de Audio\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tFacer rexistro de todos os formatos de vídeo\n/start ms\t\tInicia a reprodución en \"ms\" (= millisegundos)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tAxusta tamaño fixo da xanela\n/monitor N\tInicia monitoramento N, onde N inicia en 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestaura as configuracións por defecto \n/help /h /?\tAmosa axuda sobre as opcións da liña de comandos\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Enriba Detrás Dereito" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Reiniciar Estatísticas" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Subtítulos::Outras Opcións" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Agochar &bordos" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Cadro soamente" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Amosar Menú &&Subtítulos" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Agochar &menú" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avanzado" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Sobre a barra de desprazamento" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Baixo a barra de desprazamento" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Outro Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Lista de reprodución" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Erro ao analizar a taxa de cadros introducida!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Non é posible saltar o cadro, tenteo con procesador de vídeo diferente." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Vostede precisa aplicar as novas configuracións antes de probar." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Despois da reprodución: Pechar ficheiro" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.he.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.he.dialogs.po index e2d83b005b9..74dabe4719e 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.he.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.he.dialogs.po @@ -110,16 +110,16 @@ msgid "Enable custom channel mapping" msgstr "הפעל מיפוי ערוצים מותאם אישית" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "תצורת רמקולים עבור " +msgid "Speaker configuration for" +msgstr "תצורת רמקולים עבור" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "ערוצי קלט:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "החזק את מקש ה-Shift בשביל שינוי מיידי כאשר אתה לוחץ על משהו " +msgid "Hold shift for immediate changes when clicking something" +msgstr "החזק את מקש ה-Shift בשביל שינוי מיידי כאשר אתה לוחץ על משהו" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -570,7 +570,7 @@ msgid "Warning" msgstr "אזהרה" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "אם אתה מבצע מעקף בהגדרות כרטיס המסך ומפעיל את החלקת הקצוות במסך מלא, הכתוביות לא יראו טוב יותר, אך המעבד שלך יעבוד שעות נוספות." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "אפשר שליטה ותצוגה מתקדמת בשורת המשימות של Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "פתח את הקובץ הקודם/הבא בתיקייה בביצוע \"קפיצה אחורה/קדימה\" כאשר יש פריט אחד בלבד ברשימת הניגון" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "השתמש בתיבת זמן מרחפת:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "הפעל בדיקת עדכונים אוטומטית" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "משך זמן בין בדיקה לבדיקה:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "אישור" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.he.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.he.menus.po index dea8f4fcc92..ceb35ccd5a8 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.he.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.he.menus.po @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "בדיקת קריעה" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "הצגת סטטיסטיקה" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "זמן שנותר" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "מצלילים" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "שמע" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "כתוביות" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "זרם וידאו" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "אחרי ניגון" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "צא מנגן" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "נעל" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "ניווט" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.he.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.he.strings.po index 023b8f7b70c..79c202fdd06 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.he.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.he.strings.po @@ -326,11 +326,11 @@ msgid "On/Off" msgstr "פועל/כבוי" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "מפריימים בשנייה" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "לפריימים בשנייה" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "מתחבר לכל סוג מדיה דומה לוידאו וישלח את הדגימות הנכנסות לשום מקום. השתמש בזה כאשר אינך זקוק לתצוגת וידאו ואתה רוצה לחסוך עבודה מיותרת של המעבד." msgctxt "IDC_DSNULL_UNCOMP" @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "השתק" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "ביטול השתקה" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "פתח התקן" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "עצור" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "התקדם בפריים" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "חזור פריים אחורה" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "תמונות ממוזערות נשמרו בהצלחה" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "זרם וידאו" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "הזז כתוביות ימינה" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "הצג סטטיסטיקה" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "קפוץ להתחלה" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "כתוביות::שונות" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "הסתר מסגרת" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "פריים בלבד" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "הצג כותרת ותפריט" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "הסתר תפריט" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "הצגה מינימלית" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "מקש בוס" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "תפריט נגן (קצר)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "תפריט נגן (ארוך)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "הפעל/כבה כתוביות (די.וי.די)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "זמן שנותר" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "אזל כל הזיכרון" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Error: Flash for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Error: Flash for Internet Explorer is required" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "הצג/הסתר כותרת ותפריט" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "הפעל/כבה פס קפיצה" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "המרצת עוצמת שמע מקסימלית" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tfile contains \"...DELAY XXms...\")\n/d3dfs\t\tstart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playing\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched.\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet fixed window size\n/monitor N\tStart on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tfile contains \"...DELAY XXms...\")\n/d3dfs\t\tstart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playing\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched.\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet fixed window size\n/monitor N\tStart on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "אחורי ימני למעלה" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "איפוס סטטיסטיקות תצוגה" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "כתוביות::שונות" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "הסתר מסגרת" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "פריים בלבד" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "הצג כותרת ותפריט" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "הסתר תפריט" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "מעל פס הקפיצה" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "מתחת פס הקפיצה" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "שמע אחר" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "שמע Windows Media" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "שמע Windows Media" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "רשימת ניגון" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "שגיאה בפענוח קצב הפריימים שהוזן!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "אתה צריך להחיל את ההגדרות החדשות לפני שאתה מנסה אותן." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "לאחר הניגון: יציאה" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hr.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hr.dialogs.po index f973cdb7d26..1afe50e2aaf 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hr.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hr.dialogs.po @@ -1,18 +1,18 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# schop , 2014 +# schop , 2014-2015 # iivana24 , 2014 -# streger , 2014 +# streger , 2014-2015 # Ico2005 , 2014 # schop , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-12 12:21+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-30 21:50+0000\n" +"Last-Translator: streger \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/mpc-hc/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -30,7 +30,7 @@ msgstr "U redu" msgctxt "IDD_SELECTMEDIATYPE_IDCANCEL" msgid "Cancel" -msgstr "Otkaži" +msgstr "Odustani" msgctxt "IDD_CAPTURE_DLG_IDC_STATIC1" msgid "Video" @@ -113,7 +113,7 @@ msgid "Enable custom channel mapping" msgstr "Omogući prilagođeno mapiranje kanala" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Konfiguracija zvučnika za" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -121,7 +121,7 @@ msgid "input channels:" msgstr "ulazni kanali:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Držite pritisnutu tipku SHIFT za instantne promjene kada kliknete nešto" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -182,11 +182,11 @@ msgstr "U redu" msgctxt "IDD_OPEN_DLG_IDCANCEL" msgid "Cancel" -msgstr "Otkaži" +msgstr "Odustani" msgctxt "IDD_OPEN_DLG_IDC_CHECK1" msgid "Add to playlist without opening" -msgstr "Dodaj na playlistu (bez pokretanja)" +msgstr "Dodaj na listu izvođenja (bez pokretanja)" msgctxt "IDD_ABOUTBOX_CAPTION" msgid "About" @@ -214,7 +214,7 @@ msgstr "Verzija:" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "Compiler:" -msgstr "Compiler:" +msgstr "Kompajler:" msgctxt "IDD_ABOUTBOX_IDC_LAVFILTERS_VERSION" msgid "Not used" @@ -230,7 +230,7 @@ msgstr "Operacijski sustav" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "Name:" -msgstr "Ime:" +msgstr "Naziv:" msgctxt "IDD_ABOUTBOX_IDC_BUTTON1" msgid "Copy to clipboard" @@ -370,7 +370,7 @@ msgstr "Audio" msgctxt "IDD_PPAGEDVD_IDC_RADIO5" msgid "Subtitles" -msgstr "Podnaslov" +msgstr "Titlovi" msgctxt "IDD_PPAGEDVD_IDC_STATIC" msgid "Additional settings" @@ -450,7 +450,7 @@ msgstr "Preferirani audio zapis" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Subtitles:" -msgstr "Podnaslovi:" +msgstr "Titlovi:" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Audio:" @@ -478,7 +478,7 @@ msgstr "Automatski učitaj audio datoteke" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK3" msgid "Use the built-in subtitle renderer" -msgstr "Koristi ugrađeni render za podnapise" +msgstr "Koristi ugrađeni render za titlove" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Control" @@ -538,7 +538,7 @@ msgstr "Maksimalna razlučivost teksture:" msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_NO_SUB_ANIM" msgid "Never animate the subtitles" -msgstr "Nikad nemoj animirati podnapise." +msgstr "Nikad nemoj animirati titlove." msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC5" msgid "Render at" @@ -573,8 +573,8 @@ msgid "Warning" msgstr "Upozorenje" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "Ako bilo gdje u postavkama grafičke kartice omogućite antialiasing za sliku na cijelom ekranu i date tim postavkama veći prioritet, podnapisi neće bolje izgledati, ali će Vam zasigurno opteretiti procesor." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Ako bilo gdje u postavkama grafičke kartice omogućite antialiasing za sliku na cijelom ekranu i date tim postavkama veći prioritet, titlovi neće bolje izgledati, ali će Vam zasigurno opteretiti procesor." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -602,7 +602,7 @@ msgstr "Pokreni kao &administrator" msgctxt "IDD_PPAGEFORMATS_IDC_BUTTON7" msgid "Set as &default program" -msgstr "Postavi kao &zadani program" +msgstr "Postavi kao za&dani program" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC" msgid "Real-Time Streaming Protocol handler (for rtsp://... URLs)" @@ -674,7 +674,7 @@ msgstr "Prikaži oznake poglavlja u vremenskoj traci" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK4" msgid "Display \"Now Playing\" information in Skype's mood message" -msgstr "Prikaži \"Sada svira\" informacije u poruci raspoloženja na Skypeu" +msgstr "Prikaži \"Sada se izvodi\" informacije u poruci raspoloženja na Skypeu" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK6" msgid "Prevent minimizing the player when in fullscreen on a non default monitor" @@ -685,11 +685,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Koristi značajke Windows 7 programske trake" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Otvori iduću/prethodnu datoteku u mapi pri naredbi \"Odi naprijed/nazad\" kada je samo jedna stavka u playlisti" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Koristi vremenski tooltip:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -806,7 +806,7 @@ msgstr "Zapamti poziciju" msgctxt "IDD_FAVADD_IDCANCEL" msgid "Cancel" -msgstr "Otkaži" +msgstr "Odustani" msgctxt "IDD_FAVADD_IDOK" msgid "OK" @@ -866,7 +866,7 @@ msgstr "&Podesi" msgctxt "IDD_PNSPRESET_DLG_IDCANCEL" msgid "&Cancel" -msgstr "&Otkaži" +msgstr "&Odustani" msgctxt "IDD_PNSPRESET_DLG_IDOK" msgid "&Save" @@ -914,7 +914,7 @@ msgstr "Spremam..." msgctxt "IDD_SAVE_DLG_IDCANCEL" msgid "Cancel" -msgstr "Otkaži" +msgstr "Odustani" msgctxt "IDD_SAVETEXTFILEDIALOGTEMPL_IDC_STATIC1" msgid "Encoding:" @@ -974,7 +974,7 @@ msgstr "U redu" msgctxt "IDD_ADDREGFILTER_IDCANCEL" msgid "Cancel" -msgstr "Otkaži" +msgstr "Odustani" msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" msgid "Font" @@ -1042,7 +1042,7 @@ msgstr "Dno" msgctxt "IDD_PPAGESUBSTYLE_IDC_CHECK_RELATIVETO" msgid "Position subtitles relative to the video frame" -msgstr "Podnapise smjesti relativno u odnosu na video" +msgstr "Titlove smjesti relativno u odnosu na video" msgctxt "IDD_PPAGESUBSTYLE_IDC_STATIC" msgid "Colors && Transparency" @@ -1174,7 +1174,7 @@ msgstr "DXVA" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "Subtitles *" -msgstr "Podnapisi *" +msgstr "Titlovi *" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "Screenshot" @@ -1190,7 +1190,7 @@ msgstr "Rotacija" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "* External filters (such as VSFilter) can display subtitles on all renderers." -msgstr "* Eksterni filtri (poput VSFilter) mogu prikazati podnapise na svim renderima." +msgstr "* Eksterni filtri (poput VSFilter) mogu prikazati titlove na svim renderima." msgctxt "IDD_PPAGEWEBSERVER_IDC_CHECK1" msgid "Listen on port:" @@ -1234,7 +1234,7 @@ msgstr "CGI upravljač: (.ext1=path1;.ext2=path2;...)" msgctxt "IDD_SUBTITLEDL_DLG_CAPTION" msgid "Subtitles available online" -msgstr "Podnapisi dostupni online" +msgstr "Titlovi dostupni online" msgctxt "IDD_SUBTITLEDL_DLG_IDOK" msgid "Download && Open" @@ -1242,7 +1242,7 @@ msgstr "Preuzmi && Otvori" msgctxt "IDD_SUBTITLEDL_DLG_IDC_CHECK1" msgid "Replace currently loaded subtitles" -msgstr "Zamijeni trenutno učitane podnapise" +msgstr "Zamijeni trenutno učitane titlove" msgctxt "IDD_FILEPROPRES_IDC_BUTTON1" msgid "Save As..." @@ -1281,8 +1281,8 @@ msgid "Enable automatic update check" msgstr "Omogući automatsku provjeru nadogradnje" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Razmak između svake provjere:" +msgid "Check every:" +msgstr "Provjeri svakih:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1314,7 +1314,7 @@ msgstr "Započni" msgctxt "IDD_TUNER_SCAN_IDCANCEL" msgid "Cancel" -msgstr "Otkaži" +msgstr "Odustani" msgctxt "IDD_TUNER_SCAN_IDC_STATIC" msgid "Freq. Start" @@ -1526,15 +1526,15 @@ msgstr "Scan" msgctxt "IDD_PPAGESUBMISC_IDC_CHECK1" msgid "Prefer forced and/or default subtitles tracks" -msgstr "Preferiraj forsirana i/ili zadane podnapise" +msgstr "Preferiraj forsirana i/ili zadane titlove" msgctxt "IDD_PPAGESUBMISC_IDC_CHECK2" msgid "Prefer external subtitles over embedded subtitles" -msgstr "Daj prednost vanjskim podnapisima" +msgstr "Daj prednost vanjskim titlovima" msgctxt "IDD_PPAGESUBMISC_IDC_CHECK3" msgid "Ignore embedded subtitles" -msgstr "Ignoriraj ugrađene podnapise" +msgstr "Ignoriraj ugrađene titlove" msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" msgid "Autoload paths" @@ -1546,11 +1546,11 @@ msgstr "Resetiraj" msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" msgid "Online database" -msgstr "Online baza podnapisa" +msgstr "Online baza titlova" msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" msgid "Base URL of the online subtitle database:" -msgstr "Osnovni URL online baze podnapisa" +msgstr "Osnovni URL online baze titlova" msgctxt "IDD_PPAGESUBMISC_IDC_BUTTON2" msgid "Test" @@ -1562,7 +1562,7 @@ msgstr "Provjera nadogradnji" msgctxt "IDD_UPDATE_DIALOG_IDC_UPDATE_DL_BUTTON" msgid "&Download now" -msgstr "&Preuzmi sada" +msgstr "&Preuzmi odmah" msgctxt "IDD_UPDATE_DIALOG_IDC_UPDATE_LATER_BUTTON" msgid "Remind me &later" @@ -1586,11 +1586,11 @@ msgstr "Ukloni" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON1" msgid "Add to pre-resize" -msgstr "Dodaj prije promjene velicine" +msgstr "Dodaj prije promjene veličine" msgctxt "IDD_PPAGESHADERS_IDC_BUTTON2" msgid "Add to post-resize" -msgstr "Dodaj poslije promjene velicine" +msgstr "Dodaj poslije promjene veličine" msgctxt "IDD_PPAGESHADERS_IDC_STATIC" msgid "Shader presets" @@ -1668,3 +1668,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "U redu" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Prijava greške" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Izgleda se MPC-HC srušio, ispričavamo se na tome. :(\n\nOpis bug-a će biti poslan da bi nam pomogao dijagnosticirati i popraviti grešku. Ako želite, možete dodati više informacija u opis." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Email:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Email adresa nije obavezna i biti će korištena samo u slučaju da Vas netko od developera treba kontaktirati za više informacija." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Opis problema (koristite samo engleski):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "U redu" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hr.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hr.menus.po index 26fa03413bf..9a5c24cdaf0 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hr.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hr.menus.po @@ -1,16 +1,16 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# schop , 2014 -# streger , 2014 +# schop , 2014-2015 +# streger , 2014-2015 # Ico2005 , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 08:00+0000\n" -"Last-Translator: schop \n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 21:41+0000\n" +"Last-Translator: streger \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/mpc-hc/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,15 +68,15 @@ msgstr "Spremi &sličice..." msgctxt "ID_FILE_LOAD_SUBTITLE" msgid "&Load Subtitle..." -msgstr "&Učitaj podnapise..." +msgstr "Učitaj tit&love..." msgctxt "ID_FILE_SAVE_SUBTITLE" msgid "Save S&ubtitle..." -msgstr "Spremi p&odnapise..." +msgstr "Spremi titlo&ve..." msgctxt "POPUP" msgid "Subtitle Data&base" -msgstr "Baza pod&napisa" +msgstr "&Baza titlova" msgctxt "ID_FILE_ISDB_SEARCH" msgid "&Search..." @@ -128,7 +128,7 @@ msgstr "St&atus" msgctxt "ID_VIEW_SUBRESYNC" msgid "Su&bresync" -msgstr "Resinkronizacija podnapisa" +msgstr "Resinkronizacija titlova" msgctxt "ID_VIEW_PLAYLIST" msgid "Pla&ylist" @@ -136,7 +136,7 @@ msgstr "Pla&ylist" msgctxt "ID_VIEW_CAPTURE" msgid "Captu&re" -msgstr "&snimak" +msgstr "&Snimak" msgctxt "ID_VIEW_NAVIGATION" msgid "Na&vigation" @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Test razdvajanja" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Status ekrana" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Prikaži statistiku" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Preostalo vrijeme" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Prikaži trenutno &vrijeme" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Prikaži &ime datoteke" msgctxt "POPUP" msgid "&Output Range" @@ -444,7 +448,7 @@ msgstr "&Ispravi razliku omjera slike na monitoru/radnoj površini" msgctxt "POPUP" msgid "Pa&n&&Scan" -msgstr "Raz&vlač&&enje slike" +msgstr "Razvlače&nje slike" msgctxt "ID_VIEW_INCSIZE" msgid "&Increase Size" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "S&haderi" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "&Audio zapis" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Pod&napisi" +msgid "Su&btitle Track" +msgstr "Zap&is podnapisa" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Video traka" +msgid "&Video Track" +msgstr "&Video zapis" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Na&kon reprodukcije" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Ne čini &ništa" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Reproduciraj slijedeću datoteku iz mape" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Isključiti &ekran" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Zatvori program" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Zaključaj korisnika" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Isključiti &ekran" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Reproduciraj slijedeću datoteku iz mape" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Kretanje" @@ -644,7 +652,7 @@ msgstr "&Glavni izbornik" msgctxt "ID_NAVIGATE_SUBPICTUREMENU" msgid "&Subtitle Menu" -msgstr "&Izbor podnapisa" +msgstr "&Izbor titlova" msgctxt "ID_NAVIGATE_AUDIOMENU" msgid "&Audio Menu" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hr.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hr.strings.po index 211a9cc9e77..315adbe0d18 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hr.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hr.strings.po @@ -1,19 +1,19 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# schop , 2014 +# schop , 2014-2015 # iivana24 , 2014 -# streger , 2014 +# streger , 2014-2015 # vBm , 2014 # Underground78, 2014 # Ico2005 , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-14 11:00+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-30 21:41+0000\n" +"Last-Translator: streger \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/mpc-hc/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,7 +35,7 @@ msgstr "Audio" msgctxt "IDS_INFOBAR_SUBTITLES" msgid "Subtitles" -msgstr "Podnapisi" +msgstr "Titlovi" msgctxt "IDS_INFOBAR_CHAPTER" msgid "Chapter" @@ -75,7 +75,7 @@ msgstr "Datoteke" msgctxt "IDS_FAVDVDS" msgid "DVDs" -msgstr "DVDovi" +msgstr "DVD-ovi" msgctxt "IDS_INFOBAR_CHANNEL" msgid "Channel" @@ -95,11 +95,11 @@ msgstr "prosjek: %d ms, odstupanje: %d ms" msgctxt "IDS_STATSBAR_JITTER" msgid "Jitter" -msgstr "Jitter" +msgstr "Treperenje" msgctxt "IDS_STATSBAR_BITRATE" msgid "Bitrate" -msgstr "Bitrate" +msgstr "Brzina prijenosa" msgctxt "IDS_STATSBAR_BITRATE_AVG_CUR" msgid "(avg/cur)" @@ -107,7 +107,7 @@ msgstr "(prosječno/trenutno)" msgctxt "IDS_STATSBAR_SIGNAL" msgid "Signal" -msgstr "signal" +msgstr "Signal" msgctxt "IDS_STATSBAR_SIGNAL_FORMAT" msgid "Strength: %d dB, Quality: %ld%%" @@ -119,7 +119,7 @@ msgstr "Stilovi" msgctxt "IDS_TEXT_SUB_RENDERING_TARGET" msgid "If the rendering target is left undefined, SSA/ASS subtitles will be rendered relative to the video frame while all other text subtitles will be rendered relative to the window." -msgstr "Ako nije zadano odredište renderinga, SSA/ASS podnapisi će biti renderirani relativno u odnosu na video okvir dok će svi ostali podnapisi biti rederirani relativno u odnosu na prozor." +msgstr "Ako nije zadano odredište renderinga, SSA/ASS titlovi će biti renderirani relativno u odnosu na video okvir dok će svi ostali titlovi biti rederirani relativno u odnosu na prozor." msgctxt "IDS_PPAGE_CAPTURE_FG0" msgid "Never (fastest approach)" @@ -203,7 +203,7 @@ msgstr "Navigacijska traka" msgctxt "IDS_SUBRESYNC_CAPTION" msgid "Subresync" -msgstr "Resink. podnapisa" +msgstr "Resink. titlova" msgctxt "IDS_SUBRESYNC_CLN_TIME" msgid "Time" @@ -267,7 +267,7 @@ msgstr "Ne može se otvoriti uređaj za snimanje." msgctxt "IDS_INVALID_PARAMS_ERROR" msgid "Can't open, invalid input parameters" -msgstr "Ne može se otvoriti, nevaljali ulazni parametri" +msgstr "Ne može se otvoriti, krivi ulazni parametri" msgctxt "IDS_EDIT_LIST_EDITOR" msgid "Edit List Editor" @@ -330,12 +330,12 @@ msgid "On/Off" msgstr "Uklj./Isklj." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Od fps" +msgid "From FPS" +msgstr "Od FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Do fps" +msgid "To FPS" +msgstr "Do FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -423,11 +423,11 @@ msgstr "&Resetiraj" msgctxt "IDS_MPLAYERC_104" msgid "Subtitle Delay -" -msgstr "Kašnjenje podnapisa -" +msgstr "Kašnjenje titlova -" msgctxt "IDS_MPLAYERC_105" msgid "Subtitle Delay +" -msgstr "Kašnjenje podnapisa +" +msgstr "Kašnjenje titlova +" msgctxt "IDS_FILE_SAVE_THUMBNAILS" msgid "Save thumbnails" @@ -447,7 +447,7 @@ msgstr "Reprodukcija::DVD/OGM" msgctxt "IDD_PPAGESUBTITLES" msgid "Subtitles" -msgstr "Podnapisi" +msgstr "Titlovi" msgctxt "IDD_PPAGEFORMATS" msgid "Player::Formats" @@ -539,7 +539,7 @@ msgstr "Izvođač::Tipke" msgctxt "IDD_PPAGESUBSTYLE" msgid "Subtitles::Default Style" -msgstr "Podnapisi::Zadani stil" +msgstr "Titlovi::Zadani stil" msgctxt "IDD_PPAGEINTERNALFILTERS" msgid "Internal Filters" @@ -559,7 +559,7 @@ msgstr "Izvođač::Web sučelje" msgctxt "IDD_PPAGESUBDB" msgid "Subtitles::Database" -msgstr "Podnapisi::Baza podataka" +msgstr "Titlovi::Baza podataka" msgctxt "IDD_FILEPROPRES" msgid "Resources" @@ -626,7 +626,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Isti kao VMR-9 (renderless) ali koristi pravi dvoprolazni bikubni mjenjač veličina." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Spaja se na bilo medijski tip sličan videu i šalje dolazeće uzorke nigdje. Koristite ga kad vam ne treba video prikaz i kad želite smanjiti upotrebu CPU-a." msgctxt "IDC_DSNULL_UNCOMP" @@ -763,7 +763,7 @@ msgstr "Kako bi vidjeli ugrađeni resurs u vašem internet pregledniku morate om msgctxt "IDS_DOWNLOAD_SUBS" msgid "Download subtitles" -msgstr "Skini podnapise" +msgstr "Preuzmi titlove" msgctxt "IDS_SUBFILE_DELAY" msgid "Delay (ms):" @@ -863,7 +863,7 @@ msgstr "Nakon klikanja ovog gumba provjereno stanje grupe formata će se odrazit msgctxt "IDC_CHECK_ALLOW_DROPPING_SUBPIC" msgid "Disabling this option will prevent the subtitles from blinking but it may cause the video renderer to skip some video frames." -msgstr "Isključivanjem ove opcije će se spriječiti treptanje podnapisa ali može prouzročit da video render preskoči nekoliko slika." +msgstr "Isključivanjem ove opcije će se spriječiti treptanje titlova ali može prouzročiti da video render preskoči nekoliko slika." msgctxt "ID_PLAY_PLAY" msgid "Play\nPlay" @@ -893,7 +893,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Tišina" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Ukljući zvuk" @@ -1275,7 +1275,7 @@ msgstr "Sakrije upravljačke elemente i dodatne prozore i u windowed modu." msgctxt "IDS_PPAGEADVANCED_BLOCK_VSFILTER" msgid "Prevent external subtitle renderer to be loaded when internal is in use." -msgstr "Spriječi učitavanje eksternih podnapisa ako se koriste interni." +msgstr "Spriječi učitavanje eksternih titlova ako se koriste interni." msgctxt "IDS_PPAGEADVANCED_COL_NAME" msgid "Name" @@ -1377,6 +1377,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Omogući zabilježavanje u datoteku (zahtjeva ponovno pokretanje)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Preostalo vrijeme" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Velika preciznost" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Nakon reprodukcije: Premotaj trenutačnu datoteku" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Nakon reprodukcije: Zatvori" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Otvori uređaj" @@ -1426,11 +1446,11 @@ msgid "Stop" msgstr "stani" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Korak slike" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Korak slike nazad" msgctxt "IDS_AG_GO_TO" @@ -1530,8 +1550,8 @@ msgid "Thumbnails saved successfully" msgstr "Minijature uspješno spremljene" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Video protok" +msgid "&Video Track" +msgstr "&Video zapis" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1603,35 +1623,35 @@ msgstr "Skoči nazad (srednje)" msgctxt "IDS_MPLAYERC_27" msgid "Jump Forward (large)" -msgstr "Preskoci naprijed (large)" +msgstr "Skoči naprijed (puno)" msgctxt "IDS_MPLAYERC_28" msgid "Jump Backward (large)" -msgstr "Skoci nazad (large)" +msgstr "Skoči nazad (puno)" msgctxt "IDS_MPLAYERC_29" msgid "Jump Forward (keyframe)" -msgstr "skoci naprijed (keyframe)" +msgstr "Skoči naprijed (obilježeni trenutak)" msgctxt "IDS_MPLAYERC_30" msgid "Jump Backward (keyframe)" -msgstr "skoci nazad (keyframe)" +msgstr "Skoči nazad (obilježeni trenutak)" msgctxt "IDS_AG_NEXT" msgid "Next" -msgstr "iduci" +msgstr "Idući" msgctxt "IDS_AG_PREVIOUS" msgid "Previous" -msgstr "prethodno" +msgstr "Prethodno" msgctxt "IDS_AG_NEXT_FILE" msgid "Next File" -msgstr "Iduca datoteka" +msgstr "Iduća datoteka" msgctxt "IDS_AG_PREVIOUS_FILE" msgid "Previous File" -msgstr "prethodna datoteka" +msgstr "Prethodna datoteka" msgctxt "IDS_MPLAYERC_99" msgid "Toggle Direct3D fullscreen" @@ -1653,13 +1673,45 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Pomakni titl desno" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Prikazi statistiku" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" -msgstr "Idi na pocetak" +msgstr "Idi na početak" + +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Prikaži ime datoteke" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Prikaži statistike renderera" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Resetiraj statistike renderera" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Titlovi::Razno" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Sakrij &rubove" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Samo okvir" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "P&rikazati natpis&&izbornik" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Sakrij &izbornik" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Napredno" msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" @@ -1727,7 +1779,7 @@ msgstr "PnS smanji visinu" msgctxt "IDS_SUBDL_DLG_DOWNLOADING" msgid "Downloading subtitle(s), please wait." -msgstr "ucitavam titlove, molim pricekajte" +msgstr "Preuzimam titlove, molim pričekajte" msgctxt "IDS_SUBDL_DLG_PARSING" msgid "Parsing list..." @@ -1735,11 +1787,11 @@ msgstr "Lista raščlambe..." msgctxt "IDS_SUBDL_DLG_NOT_FOUND" msgid "No subtitles found." -msgstr "Titlovi nisu pronadjeni" +msgstr "Titlovi nisu pronađeni" msgctxt "IDS_SUBDL_DLG_SUBS_AVAIL" msgid "%d subtitle(s) available." -msgstr "%d pronadjenih titlova" +msgstr "%d pronađenih titlova" msgctxt "IDS_UPDATE_CONFIG_AUTO_CHECK" msgid "Do you want to check periodically for MPC-HC updates?\n\nThis feature can be disabled later from the Miscellaneous options page." @@ -1894,12 +1946,12 @@ msgid "Boss key" msgstr "Glavna tipka" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Izbornik izvođača (kratki)" +msgid "Player Menu" +msgstr "Izbornik izvođača" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Izbornik izvođača (dugi)" +msgid "Player Menu (full)" +msgstr "Izbornik izvođača (potpuni)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1915,23 +1967,23 @@ msgstr "Slijedeći audio" msgctxt "IDS_AG_PREV_AUDIO" msgid "Prev Audio" -msgstr "prethodni audio" +msgstr "Prethodni audio" msgctxt "IDS_AG_NEXT_SUBTITLE" msgid "Next Subtitle" -msgstr "iduci titl" +msgstr "Idući titl" msgctxt "IDS_AG_PREV_SUBTITLE" msgid "Prev Subtitle" -msgstr "prethodni titl" +msgstr "Prethodni titl" msgctxt "IDS_MPLAYERC_85" msgid "On/Off Subtitle" -msgstr "on/off titlovi" +msgstr "Uključi/isključi titlove" msgctxt "IDS_MPLAYERC_86" msgid "Reload Subtitles" -msgstr "ponovno ucitaj titlove" +msgstr "Ponovno učitaj titlove" msgctxt "IDS_MPLAYERC_87" msgid "Next Audio (OGM)" @@ -1943,51 +1995,51 @@ msgstr "Prethodni audio (OGM)" msgctxt "IDS_MPLAYERC_89" msgid "Next Subtitle (OGM)" -msgstr "iduci titl (OGM)" +msgstr "Idući titl (OGM)" msgctxt "IDS_MPLAYERC_90" msgid "Prev Subtitle (OGM)" -msgstr "prethodni titl (OGM)" +msgstr "Prethodni titl (OGM)" msgctxt "IDS_MPLAYERC_91" msgid "Next Angle (DVD)" -msgstr "iduci kut (DVD)" +msgstr "Idući kut (DVD)" msgctxt "IDS_MPLAYERC_92" msgid "Prev Angle (DVD)" -msgstr "prethodni kut (DVD)" +msgstr "Prethodni kut (DVD)" msgctxt "IDS_MPLAYERC_93" msgid "Next Audio (DVD)" -msgstr "iduci audio (DVD)" +msgstr "Idući audio (DVD)" msgctxt "IDS_MPLAYERC_94" msgid "Prev Audio (DVD)" -msgstr "prethodni audio (DVD)" +msgstr "Prethodni audio (DVD)" msgctxt "IDS_MPLAYERC_95" msgid "Next Subtitle (DVD)" -msgstr "iduci titl (DVD)" +msgstr "Idući titl (DVD)" msgctxt "IDS_MPLAYERC_96" msgid "Prev Subtitle (DVD)" -msgstr "prethodni titl (DVD)" +msgstr "Prethodni titl (DVD)" msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" -msgstr "on/off titlovi (DVD)" +msgstr "Uključi/isključi titlove (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "preostalo vrijeme" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Prikaži trenutno vrijeme" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" -msgstr "odaberi mapu" +msgstr "Odaberi mapu" msgctxt "IDS_FAVORITES_QUICKADDFAVORITE" msgid "Quick add favorite" -msgstr "Dodaj na brzinu u favorite" +msgstr "Dodaj na brzinu u omiljene" msgctxt "IDS_DVB_CHANNEL_NUMBER" msgid "N" @@ -2007,23 +2059,23 @@ msgstr "Šifrirano" msgctxt "IDS_DVB_CHANNEL_ENCRYPTED" msgid "Yes" -msgstr "da" +msgstr "Da" msgctxt "IDS_DVB_CHANNEL_NOT_ENCRYPTED" msgid "No" -msgstr "ne" +msgstr "Ne" msgctxt "IDS_DVB_CHANNEL_START_SCAN" msgid "Start" -msgstr "Zapocni" +msgstr "Započni" msgctxt "IDS_DVB_CHANNEL_STOP_SCAN" msgid "Stop" -msgstr "stani" +msgstr "Zaustavi" msgctxt "IDS_DVB_TVNAV_SEERADIO" msgid "Radio stations" -msgstr "radio stanice" +msgstr "Radio stanice" msgctxt "IDS_DVB_TVNAV_SEETV" msgid "TV stations" @@ -2039,15 +2091,15 @@ msgstr "Fokus izgubljen od: %s - %s" msgctxt "IDS_AG_SUBTITLES_SAVED" msgid "Subtitles saved" -msgstr "titlovi sacuvani" +msgstr "Titlovi sačuvani" msgctxt "IDS_MAINFRM_4" msgid "Cannot save subtitles" -msgstr "ne mogu spremiti titlove" +msgstr "Nemoguće spremiti titlove" msgctxt "IDS_AG_FRAMERATE" msgid "Frame rate" -msgstr "frame rate" +msgstr "Brzina slike" msgctxt "IDS_MAINFRM_6" msgid "drawn: %d, dropped: %d" @@ -2055,15 +2107,15 @@ msgstr "prikazano: %d, odbačeno: %d" msgctxt "IDS_AG_FRAMES" msgid "Frames" -msgstr "frames" +msgstr "Slike" msgctxt "IDS_AG_BUFFERS" msgid "Buffers" -msgstr "buffers" +msgstr "Baferi" msgctxt "IDS_MAINFRM_9" msgid "Volume: %02lu/%02lu, Title: %02lu/%02lu, Chapter: %02lu/%02lu" -msgstr "Volume: %02lu/%02lu, Title: %02lu/%02lu, Chapter: %02lu/%02lu." +msgstr "Svezak: %02lu/%02lu, Naslov: %02lu/%02lu, Poglavlje: %02lu/%02lu." msgctxt "IDS_MAINFRM_10" msgid "Angle: %02lu/%02lu, %lux%lu %lu Hz %lu:%lu" @@ -2075,11 +2127,11 @@ msgstr "%s, %s %uHz %dbits %d %s." msgctxt "IDS_ADD_TO_PLAYLIST" msgid "Add to MPC-HC Playlist" -msgstr "dodaj na MPC-HC Playlistu" +msgstr "Dodaj na MPC-HC listu izvođenja" msgctxt "IDS_OPEN_WITH_MPC" msgid "Play with MPC-HC" -msgstr "otvori sa MPC-HC" +msgstr "Otvori sa MPC-HC" msgctxt "IDS_CANNOT_CHANGE_FORMAT" msgid "MPC-HC has not enough privileges to change files formats associations. Please click on the \"Run as administrator\" button." @@ -2099,23 +2151,23 @@ msgstr "kanali" msgctxt "IDS_AG_TITLE" msgid "Title %u" -msgstr "naslov %u" +msgstr "Naslov %u" msgctxt "IDS_MAINFRM_16" msgid "DVD: Unexpected error" -msgstr "DVD: neocekivana greska" +msgstr "DVD: neočekivana greška" msgctxt "IDS_MAINFRM_17" msgid "DVD: Copy-Protect Fail" -msgstr "DVD: copy/protect greska" +msgstr "DVD: greška zaštite kopiranje" msgctxt "IDS_MAINFRM_18" msgid "DVD: Invalid DVD 1.x Disc" -msgstr "DVD: Nevaljani DVD 1.x disk" +msgstr "DVD: Neispravni DVD 1.x disk" msgctxt "IDS_MAINFRM_19" msgid "DVD: Invalid Disc Region" -msgstr "DVD: Nevaljana regija diska" +msgstr "DVD: Neispravna regija diska" msgctxt "IDS_MAINFRM_20" msgid "DVD: Low Parental Level" @@ -2139,7 +2191,7 @@ msgstr "Ova opcija je dizajnirana za izbjegavanje kidanja videa. Međutim, tako msgctxt "IDS_MAINFRM_139" msgid "Sub delay: %ld ms" -msgstr "Kasnjenje titla: %ld ms" +msgstr "Kašnjenje titla: %ld ms" msgctxt "IDS_AG_TITLE2" msgid "Title: %02d/%02d" @@ -2147,7 +2199,7 @@ msgstr "Naslov: %02d/%02d" msgctxt "IDS_REALVIDEO_INCOMPATIBLE" msgid "Filename contains unsupported characters (use only A-Z, 0-9)" -msgstr "Ime datoteke sadrzi nepodrzane znakove (koristite samo A-Z, 0-9)" +msgstr "Ime datoteke sadrži nepodržane znakove (koristite samo A-Z, 0-9)" msgctxt "IDS_THUMB_ROWNUMBER" msgid "Rows:" @@ -2159,11 +2211,11 @@ msgstr "Stupci:" msgctxt "IDS_THUMB_IMAGE_WIDTH" msgid "Image width" -msgstr "Sirina slike" +msgstr "Širina slike" msgctxt "IDS_PPSDB_URLCORRECT" msgid "The URL appears to be correct!" -msgstr "URL adresa je tocna!" +msgstr "URL adresa je točna!" msgctxt "IDS_PPSDB_PROTOCOLERR" msgid "Protocol version mismatch, please upgrade your player or choose a different address!" @@ -2171,7 +2223,7 @@ msgstr "Verzija protokola se ne podudara, molimo nadogradite vaš player ili oda msgctxt "IDS_AG_ASPECT_RATIO" msgid "Aspect Ratio" -msgstr "Aspect ratio" +msgstr "Omjer slike" msgctxt "IDS_MAINFRM_37" msgid ", Total: %ld, Dropped: %ld" @@ -2179,7 +2231,7 @@ msgstr ", Ukupno: %ld, Ispušteno: %ld" msgctxt "IDS_MAINFRM_38" msgid ", Size: %I64d KB" -msgstr ", velicina: %I64dKB" +msgstr ", Veličina: %I64dKB" msgctxt "IDS_MAINFRM_39" msgid ", Size: %I64d MB" @@ -2187,7 +2239,7 @@ msgstr ", Veličina: %I64d MB" msgctxt "IDS_MAINFRM_40" msgid ", Free: %I64d KB" -msgstr ", slobodno %I64KB" +msgstr ", Slobodno %I64KB" msgctxt "IDS_MAINFRM_41" msgid ", Free: %I64d MB" @@ -2199,23 +2251,23 @@ msgstr ", Slobodni V/A bufferi: %03d/%03d" msgctxt "IDS_AG_ERROR" msgid "Error" -msgstr "greska" +msgstr "Greška" msgctxt "IDS_SUBTITLE_STREAM_OFF" msgid "Subtitle: off" -msgstr "titlovi: iskljuceni" +msgstr "Titlovi: isključeni" msgctxt "IDS_SUBTITLE_STREAM" msgid "Subtitle: %s" -msgstr "titlovi: %s" +msgstr "Titlovi: %s" msgctxt "IDS_MAINFRM_46" msgid "Select the path for the DVD/BD:" -msgstr "odaberi putanju za DVD/BD:" +msgstr "Odaberite putanju za DVD/BD:" msgctxt "IDS_SUB_LOADED_SUCCESS" msgid " loaded successfully" -msgstr " uspjesno ucitano" +msgstr "Uspješno učitano" msgctxt "IDS_ALL_FILES_FILTER" msgid "All files (*.*)|*.*||" @@ -2231,11 +2283,11 @@ msgstr "GetCurrentImage greška, hr = %08x" msgctxt "IDS_SCREENSHOT_ERROR" msgid "Cannot create file" -msgstr "Ne mogu kreirati fajl" +msgstr "Nemoguće kreirati datoteku" msgctxt "IDS_THUMBNAILS_NO_DURATION" msgid "Cannot create thumbnails for files with no duration" -msgstr "ne mogu kreirati thumbnailove za datoteke bez trajanja" +msgstr "Nemoguće kreirati thumbnailove za datoteke bez trajanja" msgctxt "IDS_THUMBNAILS_NO_FRAME_SIZE" msgid "Failed to get video frame size" @@ -2243,7 +2295,7 @@ msgstr "Greška pri dohvaćanju veličine okvira videa" msgctxt "IDS_OUT_OF_MEMORY" msgid "Out of memory, go buy some more!" -msgstr "Nema vise memorije, kupi jos!" +msgstr "Nema više memorije, idite i kupite još!" msgctxt "IDS_THUMBNAILS_INVALID_FORMAT" msgid "Invalid image format, cannot create thumbnails out of %d bpp dibs." @@ -2267,7 +2319,7 @@ msgstr "Za pokretanje titlova promijenite tip video prikazivača i ponovno otvor msgctxt "IDS_SUBTITLE_FILES_FILTER" msgid "Subtitle files" -msgstr "Datoteke podnapisa" +msgstr "Datoteke titlova" msgctxt "IDS_MAINFRM_68" msgid "Aspect Ratio: %ld:%ld" @@ -2279,19 +2331,19 @@ msgstr "Omjer: Zadano" msgctxt "IDS_MAINFRM_70" msgid "Audio delay: %I64d ms" -msgstr "Kasnjenje audia: %I64dms" +msgstr "Kašnjenje audia: %I64dms" msgctxt "IDS_AG_CHAPTER" msgid "Chapter %d" -msgstr "poglavlje %d" +msgstr "Poglavlje %d" msgctxt "IDS_AG_OUT_OF_MEMORY" msgid "Out of memory" -msgstr "nedostaje memorije" +msgstr "Nedostaje memorije" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "greska: za IE potreban je flash player" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Greška: za Internet Explorer potreban je Adobe Flash Player" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2319,7 +2371,7 @@ msgstr "Nevaljali URL - ne mogu locirati titlove" msgctxt "IDS_AG_CHAPTER2" msgid "Chapter: " -msgstr "poglavlje" +msgstr "Poglavlje" msgctxt "IDS_VOLUME_OSD" msgid "Vol: %d%%" @@ -2327,15 +2379,15 @@ msgstr "Vol: %d%%." msgctxt "IDS_BOOST_OSD" msgid "Boost: +%u%%" -msgstr "Boost: +%u%%." +msgstr "Pojačanje: +%u%%." msgctxt "IDS_BALANCE_OSD" msgid "Balance: %s" -msgstr "Balance: %s." +msgstr "Balans: %s." msgctxt "IDS_FULLSCREENMONITOR_CURRENT" msgid "Current" -msgstr "tekuci" +msgstr "Trenutni" msgctxt "IDS_MPC_CRASH" msgid "MPC-HC terminated unexpectedly. To help us fix this problem, please send this file \"%s\" to our bug tracker.\n\nDo you want to open the folder containing the minidump file and visit the bug tracker now?" @@ -2347,22 +2399,22 @@ msgstr "Greška pri kreiranju dump datoteke u %s (error %u)" msgctxt "IDS_MAINFRM_DIR_TITLE" msgid "Select Directory" -msgstr "odaberi mapu" +msgstr "Odaberi mapu" msgctxt "IDS_MAINFRM_DIR_CHECK" msgid "Include subdirectories" -msgstr "ukljuci poddirektorije" +msgstr "Uključi podmape" msgctxt "IDS_AG_PAUSE" msgid "Pause" -msgstr "pauziraj" +msgstr "Pauziraj" msgctxt "IDS_AG_TOGGLE_CAPTION" msgid "Toggle Caption&Menu" msgstr "Namjestiti natpis&izbornik" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Namjestiti klizač" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2371,27 +2423,27 @@ msgstr "Namjestiti kontrole" msgctxt "IDS_MAINFRM_84" msgid "Invalid file name" -msgstr "Nevazece ime datoteke" +msgstr "Neispravno ime datoteke" msgctxt "IDS_MAINFRM_86" msgid "Cannot connect the filters" -msgstr "Ne mogu povezati filtere" +msgstr "Nemoguće povezati filtere" msgctxt "IDS_MAINFRM_87" msgid "Cannot load any source filter" -msgstr "Ne može se učitati nijedna izvorišna datoteka" +msgstr "Nemoguće učitati nijednu izvorišnu datoteku" msgctxt "IDS_MAINFRM_88" msgid "Cannot render the file" -msgstr "Ne može se renderirati datoteka" +msgstr "Nemoguće renderirati datoteku" msgctxt "IDS_MAINFRM_89" msgid "Invalid file format" -msgstr "Nevazeci format datoteke" +msgstr "Neispravni format datoteke" msgctxt "IDS_MAINFRM_90" msgid "File not found" -msgstr "Datoteka nije promadjena" +msgstr "Datoteka nije pronađena" msgctxt "IDS_MAINFRM_91" msgid "Unknown file type" @@ -2403,7 +2455,7 @@ msgstr "Nepodržan stream" msgctxt "IDS_MAINFRM_93" msgid "Cannot find DVD directory" -msgstr "Ne mogu pronaci DVD direktorij" +msgstr "Ne mogu pronaći DVD direktorij" msgctxt "IDS_MAINFRM_94" msgid "Can't create the DVD Navigator filter" @@ -2411,11 +2463,11 @@ msgstr "Ne može se kreirati DVD navigacijski filtar" msgctxt "IDS_AG_FAILED" msgid "Failed" -msgstr "Neuspjesno" +msgstr "Neuspješno" msgctxt "IDS_MAINFRM_96" msgid "Can't create video capture filter" -msgstr "Ne mogu dodat Video Capture filter" +msgstr "Nemoguće napraviti filter za snimanje videa" msgctxt "IDS_MAINFRM_98" msgid "No capture filters" @@ -2427,11 +2479,11 @@ msgstr "Nemoguće napraviti stvarajući objekt grafa za snimanje" msgctxt "IDS_MAINFRM_108" msgid "Couldn't open any device" -msgstr "Ne mogu otvorit nikakav uredjaj" +msgstr "Nemoguće otvoriti nijedan uređaj" msgctxt "IDS_AG_SOUND" msgid "Sound" -msgstr "zvuk" +msgstr "Zvuk" msgctxt "IDS_MAINFRM_114" msgid "%s was not found, please insert media containing this file." @@ -2439,7 +2491,7 @@ msgstr "%s nije pronađen, molimo ubacite medij koji sadrži navedenu datoteku." msgctxt "IDS_AG_ABORTED" msgid "Aborted" -msgstr "prekinuto" +msgstr "Prekinuto" msgctxt "IDS_MAINFRM_116" msgid "&Properties..." @@ -2471,7 +2523,7 @@ msgstr " (Komentari redatelja 2)" msgctxt "IDS_DVD_SUBTITLES_ENABLE" msgid "Enable DVD subtitles" -msgstr "Omogući podnapise DVD-a" +msgstr "Omogući titlove DVD-a" msgctxt "IDS_AG_ANGLE" msgid "Angle %u" @@ -2518,8 +2570,8 @@ msgid "Volume boost Max" msgstr "Pojačanje glasnoće max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Korištenje: mpc-hc.exe \"putanja\" [prekidači]\n\n\"putanja\"⇥Glavna datoteka ili mapa za pokrenuti(zamjenski znakovi\n⇥⇥dopušteni, \"-\" označava standardni ulaz)\n/dub \"naziv sinkronizacije\"⇥Pokrenuti dodatnu zvučnu datoteku\n/dubdelay \"datoteka\"⇥Pokrenuti dodatnu audio datoteku pomaknutu\n⇥⇥ za XXms (ako datoteka sadrži \"...POMAK XXms...\")\n/d3dfs⇥⇥Započni izvođenje u D3D načinu punog ekrana\n/sub \"naziv titla\"⇥Pokreni dodatnu titl datoteku\n/filter \"naziv filtera\"⇥Pokreni DirectShow filtere iz knjižnice\n⇥⇥dinamičkog linka (zamjenski znakovi dopušteni)\n/dvd⇥⇥Pokreni u dvd načinu, \"putanja\" znači dvd\n⇥⇥mapa (opcionalno)\n/dvdpos T#C⇥Započeti reprodukciju na nazivu T, poglavlju C\n/dvdpos T#hh:mm⇥Započeti reprodukciju na nazivu T, pozicija hh:mm:ss\n/cd⇥⇥Pokreni sve trake zvučnog cd ili (s)vcd,\n⇥⇥\"putanja\" znači uređaja (opcionalno)\n/device⇥⇥Otvori zadani video uređaj\n/open⇥⇥Otvori datoteku bez automatskog pokretanja reprodukcije\n/play⇥⇥Započeti reprodukciju datoteke čim je izvođač\n⇥⇥pokrenut\n/close⇥⇥Zatvori izvođač nakon reprodukcije (radi samo kad\n⇥⇥se koristi sa /play)\n/shutdown⇥Ugasi operativni sustav nakon reprodukcije\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen⇥Započeti u načinu punog ekrana\n/minimized⇥Započeti u minimaliziranom načinu\n/new⇥⇥Koristiti novu instancu izvođača\n/add⇥⇥Dodati \"putanju\" u listu izvođenja, može biti kombinirano\n⇥⇥sa /open i /play\n/regvid⇥⇥Stvoriti povezanost nastavaka za video datoteke\n/regaud⇥⇥Stvoriti povezanost nastavaka za zvučne datoteke\n/regpl⇥⇥Stvoriti povezanost nastavaka za datoteke lista izvođenja\n/regall⇥⇥Stvoriti povezanost nastavaka za sve podržane datoteke\n/unregall⇥⇥Maknuti sve povezanosti datotečnih nastavaka\n/start ms⇥⇥Započeti reprodukciju u \"ms\" (= milisekundi)\n/startpos hh:mm:ss⇥Započeti reprodukciju na poziciji hh:mm:ss\n/fixedsize w,h⇥Namjestiti fiksiranu veličinu prozora\n/monitor N⇥Započeti izvođač na ekranu N, gdje N počinje od 1\n/audiorenderer N⇥Započeti zvučni izvođač N, gdje N počinje od 1\n⇥⇥(pogledati \"Izlaz\" postavke)\n/shaderpreset \"Pr\"⇥Započeti koristiti \"Pr\" shader postavku\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset⇥⇥Vratiti zadane postavke\n/help /h /?⇥Prikazati pomoć prekidača komandne linije\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Korištenje: mpc-hc.exe \"putanja\" [prekidači]\n\n\"putanja\"⇥Glavna datoteka ili mapa za pokrenuti(zamjenski znakovi\n⇥⇥dopušteni, \"-\" označava standardni ulaz)\n/dub \"naziv sinkronizacije\"⇥Pokrenuti dodatnu zvučnu datoteku\n/dubdelay \"datoteka\"⇥Pokrenuti dodatnu audio datoteku pomaknutu\n⇥⇥ za XXms (ako datoteka sadrži \"...POMAK XXms...\")\n/d3dfs⇥⇥Započni izvođenje u D3D načinu punog ekrana\n/sub \"naziv titla\"⇥Pokreni dodatnu titl datoteku\n/filter \"naziv filtera\"⇥Pokreni DirectShow filtere iz knjižnice\n⇥⇥dinamičkog linka (zamjenski znakovi dopušteni)\n/dvd⇥⇥Pokreni u dvd načinu, \"putanja\" znači dvd\n⇥⇥mapa (opcionalno)\n/dvdpos T#C⇥Započeti reprodukciju na nazivu T, poglavlju C\n/dvdpos T#hh:mm⇥Započeti reprodukciju na nazivu T, pozicija hh:mm:ss\n/cd⇥⇥Pokreni sve trake zvučnog cd ili (s)vcd,\n⇥⇥\"putanja\" znači uređaja (opcionalno)\n/device⇥⇥Otvori zadani video uređaj\n/open⇥⇥Otvori datoteku bez automatskog pokretanja reprodukcije\n/play⇥⇥Započeti reprodukciju datoteke čim je izvođač\n⇥⇥pokrenut\n/close⇥⇥Zatvori izvođač nakon reprodukcije (radi samo kad\n⇥⇥se koristi sa /play)\n/shutdown⇥Ugasi operativni sustav nakon reprodukcije\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen⇥Započeti u načinu punog ekrana\n/minimized⇥Započeti u minimaliziranom načinu\n/new⇥⇥Koristiti novu instancu izvođača\n/add⇥⇥Dodati \"putanju\" u listu izvođenja, može biti kombinirano\n⇥⇥sa /open i /play\n/randomize\tRandomize the playlist\n/regvid⇥⇥Stvoriti povezanost nastavaka za video datoteke\n/regaud⇥⇥Stvoriti povezanost nastavaka za zvučne datoteke\n/regpl⇥⇥Stvoriti povezanost nastavaka za datoteke lista izvođenja\n/regall⇥⇥Stvoriti povezanost nastavaka za sve podržane datoteke\n/unregall⇥⇥Maknuti sve povezanosti datotečnih nastavaka\n/start ms⇥⇥Započeti reprodukciju u \"ms\" (= milisekundi)\n/startpos hh:mm:ss⇥Započeti reprodukciju na poziciji hh:mm:ss\n/fixedsize w,h⇥Namjestiti fiksiranu veličinu prozora\n/monitor N⇥Započeti izvođač na ekranu N, gdje N počinje od 1\n/audiorenderer N⇥Započeti zvučni izvođač N, gdje N počinje od 1\n⇥⇥(pogledati \"Izlaz\" postavke)\n/shaderpreset \"Pr\"⇥Započeti koristiti \"Pr\" shader postavku\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset⇥⇥Vratiti zadane postavke\n/help /h /?⇥Prikazati pomoć prekidača komandne linije\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2611,7 +2663,7 @@ msgstr "Pretraga tjunera" msgctxt "IDS_SUBTITLES_ERROR" msgid "Subtitles are not loaded or unsupported renderer." -msgstr "Podnapisi nisu učitani ili nepodržani od renderera." +msgstr "Titlovi nisu učitani ili nepodržani od renderera." msgctxt "IDS_LOGO_AUTHOR" msgid "Author unknown. Contact us if you made this logo!" @@ -2701,40 +2753,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Vrh nazad desno" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Ponovno namjestiti statistiku prikaza" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Podnapisi::Razno" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Sakrij &rubove" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Samo okvir" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "P&rikazati natpis&&izbornik" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Sakrij &izbornik" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Napredno" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Iznad trake za pomicanje" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Ispod trake za pomicanje" msgctxt "IDS_VIDEO_STREAM" @@ -2751,7 +2775,7 @@ msgstr "Očisti" msgctxt "IDS_CANCEL" msgid "Cancel" -msgstr "Otkazi" +msgstr "Odustani" msgctxt "IDS_THUMB_THUMBNAILS" msgid "Layout" @@ -2902,8 +2926,8 @@ msgid "Other Audio" msgstr "Ostali zvuk" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2913,6 +2937,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2977,29 +3021,13 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" -msgstr "Playlista" +msgstr "Lista izvođenja" msgctxt "IDS_MFMT_BDPLS" msgid "Blu-ray playlist" -msgstr "Blu-ray playlista" +msgstr "Blu-ray lista izvođenja" msgctxt "IDS_MFMT_RAR" msgid "RAR Archive" @@ -3378,7 +3406,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Greška slanja unesene brzine izmjene!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Nemoguć korak slike, pokušajte drukčiji video izvođač." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3399,7 +3427,7 @@ msgstr "Funkcije \"Spremi sliku\" i \"Spremi minijature\" ne rade sa sa Overlay msgctxt "IDS_SUBDL_DLG_CONNECT_ERROR" msgid "Cannot connect to the online subtitles database." -msgstr "Ne može se pristupiti online bazi podnapisa." +msgstr "Ne može se pristupiti online bazi titlova." msgctxt "IDS_MB_SHOW_EDL_EDITOR" msgid "Do you want to activate the EDL editor?" @@ -3469,7 +3497,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Prije testiranja morate prihvatiti nove postavke." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Nakon reprodukcije: izađi" @@ -3543,11 +3571,11 @@ msgstr "Vanjski razdjelnici mogu imati svoje jezične postavke pa je MPC-HC-ovo msgctxt "IDS_NAVIGATE_BD_PLAYLISTS" msgid "&Blu-Ray playlists" -msgstr "&Blu-ray playlista" +msgstr "&Blu-ray lista izvođenja" msgctxt "IDS_NAVIGATE_PLAYLIST" msgid "&Playlist" -msgstr "&Playlista" +msgstr "&Lista izvođenja" msgctxt "IDS_NAVIGATE_CHAPTERS" msgid "&Chapters" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hu.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hu.dialogs.po index 802fa821db5..0a74291069f 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hu.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hu.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Máté , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2015-01-14 22:41+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-30 18:50+0000\n" "Last-Translator: Máté \n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/mpc-hc/language/hu/)\n" "MIME-Version: 1.0\n" @@ -102,22 +102,22 @@ msgstr "Mintavételezés csökkentése 44100 Hz-re" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK4" msgid "Audio time shift (ms):" -msgstr "" +msgstr "Eltolás (ms):" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK1" msgid "Enable custom channel mapping" msgstr "Egyedi csatornaleképezés engedélyezése" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Hangszórók konfigurálása " +msgid "Speaker configuration for" +msgstr "Hangszórók konfigurálása" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "bemeneti csatornához:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Tartsa lenyomva a shift billentyűt a változtatások azonnali érvénybeléptetéséhez" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -514,7 +514,7 @@ msgstr "%" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Delay step" -msgstr "Késleltetés léptéke" +msgstr "Eltolás léptéke" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "ms" @@ -569,7 +569,7 @@ msgid "Warning" msgstr "Figyelmeztetés" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Ha felülbírálva engedélyezi a videokártyája beállításainál a teljes képernyős vonalsimítást, a feliratok akkor sem lesznek szebbek, viszont a processzorát teljesen leterheli vele." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -681,11 +681,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows 7 Tálcafunkciók használata" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Az \"Ugrás előre/vissza\" nyissa meg a mappában a következő/az előző fájlt, ha csak 1 fájl van a lejátszási listában." msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Idő buborék használata:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Frissítések keresése automatikusan" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Keresés gyakorisága:" +msgid "Check every:" +msgstr "Ellenőrzés:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1346,7 +1346,7 @@ msgstr "Használjon eltolást" msgctxt "IDD_PPAGECAPTURE_IDC_STATIC" msgid "Default Device" -msgstr "Alapértelmezett Eszköz" +msgstr "Alapértelmezett eszköz" msgctxt "IDD_PPAGECAPTURE_IDC_RADIO1" msgid "Analog" @@ -1390,7 +1390,7 @@ msgstr "Vevő" msgctxt "IDD_PPAGECAPTURE_IDC_PPAGECAPTURE_ST10" msgid "Channel switching approach:" -msgstr "" +msgstr "Csatornaváltás módja:" msgctxt "IDD_PPAGECAPTURE_IDC_PPAGECAPTURE_ST11" msgid "Rebuild filter graph" @@ -1466,7 +1466,7 @@ msgstr "ms" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK6" msgid "Hide docked panels" -msgstr "" +msgstr "Rögzített panelek elrejtése" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK5" msgid "Exit fullscreen at the end of playback" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Összeomlás jelentő" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Sajnáljuk, úgy tűnik, hogy az MPC-HC összeomlott. :(\n\nHogy segítsen kideríteni és kijavítani a hibát, egy hibajelentés el lesz küldve. Megadhat további információkat is." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Az e-mail cím megadása opcionális, és csak akkor kerül felhasználásra, ha a fejlesztőknek több információra van szükségük." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Probléma leírása (angolul):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hu.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hu.menus.po index 89a298381aa..84d2dff9b3e 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hu.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hu.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Máté , 2014 +# Máté , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-31 14:21+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 15:16+0000\n" "Last-Translator: Máté \n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/mpc-hc/language/hu/)\n" "MIME-Version: 1.0\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Képszétválasztás teszt" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Statisztika megjelenítése" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "Statisztika megjelenítése" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Hátralévő játékidő" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Eltelt idő megjelenítése" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Fájlnév megjelenítése" msgctxt "POPUP" msgid "&Output Range" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "&Árnyékolók" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Hangsáv" +msgid "&Audio Track" +msgstr "Hangsáv" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Feliratok" +msgid "Su&btitle Track" +msgstr "Felirat sáv" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Video S&tream" +msgid "&Video Track" +msgstr "Videó sáv" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Lejátszás után" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Ne csináljon semmit" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Játssza le a mappában következő fájlt" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Kapcsolja ki a monitort" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Bezárás" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Zárolás" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Kapcsolja ki a monitort" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Játssza le a mappában következő fájlt" - msgctxt "POPUP" msgid "&Navigate" msgstr "N&avigálás" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hu.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hu.strings.po index 8eed18f2b22..8fb033690a4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hu.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hu.strings.po @@ -1,14 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Máté , 2014 +# Fridrich Losonszki , 2015 +# Máté , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-02 20:10+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-30 19:00+0000\n" +"Last-Translator: Máté \n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/mpc-hc/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -82,7 +83,7 @@ msgstr "Idő" msgctxt "IDS_STATSBAR_SYNC_OFFSET" msgid "Sync Offset" -msgstr "" +msgstr "Szinkronizáció eltolás" msgctxt "IDS_STATSBAR_SYNC_OFFSET_FORMAT" msgid "avg: %d ms, dev: %d ms" @@ -122,7 +123,7 @@ msgstr "Soha (leggyorsabb)" msgctxt "IDS_PPAGE_CAPTURE_FG1" msgid "Only when switching different video types (default)" -msgstr "" +msgstr "Csak különböző videótípusok váltásakor (alapértelmezett)" msgctxt "IDS_PPAGE_CAPTURE_FG2" msgid "Always (slowest option)" @@ -146,7 +147,7 @@ msgstr "Soha, ha lehetséges (leggyorsabb, de a legtöbb szűrő nem támogatja) msgctxt "IDS_PPAGE_CAPTURE_SFG1" msgid "Only when switching different video types (default)" -msgstr "" +msgstr "Csak különböző videótípusok váltásakor (alapértelmezett)" msgctxt "IDS_PPAGE_CAPTURE_SFG2" msgid "Always (may be required by some devices)" @@ -198,7 +199,7 @@ msgstr "Navigációs sáv" msgctxt "IDS_SUBRESYNC_CAPTION" msgid "Subresync" -msgstr "" +msgstr "Felirat időzítés" msgctxt "IDS_SUBRESYNC_CLN_TIME" msgid "Time" @@ -214,11 +215,11 @@ msgstr "Előnézet" msgctxt "IDS_SUBRESYNC_CLN_VOB_ID" msgid "Vob ID" -msgstr "" +msgstr "Vob ID" msgctxt "IDS_SUBRESYNC_CLN_CELL_ID" msgid "Cell ID" -msgstr "" +msgstr "Cell ID" msgctxt "IDS_SUBRESYNC_CLN_FORCED" msgid "Forced" @@ -250,23 +251,23 @@ msgstr "Élő" msgctxt "IDS_CAPTURE_ERROR_VID_FILTER" msgid "Can't add video capture filter to the graph" -msgstr "" +msgstr "Nem lehet hozzáadni a videó rögzítő szűrőt a grafikonhoz" msgctxt "IDS_CAPTURE_ERROR_AUD_FILTER" msgid "Can't add audio capture filter to the graph" -msgstr "" +msgstr "Nem lehet hozzáadni az audio rögzítő szűrőt a grafikonhoz" msgctxt "IDS_CAPTURE_ERROR_DEVICE" msgid "Could not open capture device." -msgstr "" +msgstr "Nem nyitható meg rögzítő eszköz." msgctxt "IDS_INVALID_PARAMS_ERROR" msgid "Can't open, invalid input parameters" -msgstr "" +msgstr "Nem lehet megnyitni, érvénytelen bemeneti paraméterek" msgctxt "IDS_EDIT_LIST_EDITOR" msgid "Edit List Editor" -msgstr "" +msgstr "Lista Szerkesztő szerkesztése" msgctxt "IDS_GOTO_ERROR_INVALID_TIME" msgid "The entered time is greater than the file duration." @@ -325,11 +326,11 @@ msgid "On/Off" msgstr "Be/Ki" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "FPS-től" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "FPS-ig" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -621,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Minden videószerű médiatípushoz csatlakozni fog és a bejövő mintákat nem küldi ki sehová. Ezt akkor válassza, ha a videómegjelenítésre nincs szüksége és meg szeretné kímélni a processzorát a felesleges munkától." msgctxt "IDC_DSNULL_UNCOMP" @@ -888,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Elnémítás" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Előző hangerő" @@ -982,7 +983,7 @@ msgstr "Lista törlése" msgctxt "IDS_RECENT_FILES_QUESTION" msgid "Are you sure that you want to delete recent files list?" -msgstr "Biztosan törölni szeretnéd a legutóbb megnyitott fájlok listáját?" +msgstr "Biztosan törölni szeretné a legutóbb megnyitott fájlok listáját?" msgctxt "IDS_AG_EDL_SAVE" msgid "EDL save" @@ -1246,7 +1247,7 @@ msgstr "Lejátszási sebesség" msgctxt "IDS_FILTERS_COPY_TO_CLIPBOARD" msgid "&Copy filters list to clipboard" -msgstr "" +msgstr "Szűrő lista másolása a vágólapra" msgctxt "IDS_CREDENTIALS_SERVER" msgid "Enter server credentials" @@ -1358,7 +1359,7 @@ msgstr "Mindegyik eltávolítása" msgctxt "IDS_REMOVE_CHANNELS_QUESTION" msgid "Are you sure you want to remove all channels from the list?" -msgstr "" +msgstr "Biztosan törölni szeretné az összes csatornát a listából?" msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" msgid "No information available" @@ -1372,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Fájlba naplózás engedélyezése (Újraindítást igényel)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Hátralévő idő" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Nagy pontosság" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Lejátszás után: fájl elejére ugrás" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Lejátszás után: Bezárás" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Eszköz megnyitása" @@ -1421,11 +1442,11 @@ msgid "Stop" msgstr "Leállítás" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Léptetés" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Visszaléptetés" msgctxt "IDS_AG_GO_TO" @@ -1525,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Ikonképek mentése sikeres" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Video S&tream" +msgid "&Video Track" +msgstr "Videó sáv" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1562,7 +1583,7 @@ msgstr "Exportálás nem sikerült! Ez akkor történhet, ha nincs megfelelő jo msgctxt "IDS_BDA_ERROR" msgid "BDA Error" -msgstr "" +msgstr "BDA hiba" msgctxt "IDS_AG_DECREASE_RATE" msgid "Decrease Rate" @@ -1648,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Felirat jobbra tolása" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Statisztika megjelenítése" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Ugrás az elejére" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Fájlnév megjelenítése" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Renderelő statisztika megjelenítése" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Renderelő statisztika visszaállítása" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Feliratok::Egyéb" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Ablakszegély elrejtése" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Csak a keret megjelenítése" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Címsor és Menüsor megjelenítése" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Menüsor elrejtése" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Haladó" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Minimális nézet" @@ -1726,7 +1779,7 @@ msgstr "Felirat(ok) letöltése, kérem várjon." msgctxt "IDS_SUBDL_DLG_PARSING" msgid "Parsing list..." -msgstr "" +msgstr "Elemzési lista..." msgctxt "IDS_SUBDL_DLG_NOT_FOUND" msgid "No subtitles found." @@ -1889,12 +1942,12 @@ msgid "Boss key" msgstr "Főnök Gomb" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Lejátszó menü (rövid)" +msgid "Player Menu" +msgstr "Lejátszó menü" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Lejátszó menü (hosszú)" +msgid "Player Menu (full)" +msgstr "Lejátszó menü (teljes)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Felirat Ki-Bekapcsolása (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Hátralévő idő" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Eltelt idő megjelenítése" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2338,8 @@ msgid "Out of memory" msgstr "Elfogyott a memória" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Error: Flash for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Error: Flash for Internet Explorer is required" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Címsor és Menüsor be- és kikapcsolása" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Keresősáv be- és kikapcsolása" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2513,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Hangerő erősítés Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Használat: mpc-hc.exe \"pathname\" [kapcsolók]\n\n\"pathname\"\tA fő betöltendő fájl vagy mappa helye (spec. helyettesítő karakterek \n\t\tengedélyezve, \"-\" denotes standard input)\n/dub \"dubname\"\tBetölt egy külön audió fájlt\n/dubdelay \"file\"\tBetölt egy külön audió fájlt XX ms-al eltolva (ha a\n\t\tfájl tartalmaz \"...DELAY XXms...\")\n/d3dfs\t\tlejátszó indítása D3D teljes képernyős módban\n/sub \"subname\"\tBetölt egy külön felirat fájlt\n/filter \"filtername\"\tDirectShow szűrőket tölt be egy dynamic link\n\t\tlibrary-ból (spec. helyettesítő karakterek tengedélyezve)\n/dvd\t\tDVD módban való futtatás, a \"pathname\" a dvd \n\t\tmappáját jelenti (opcionális)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tBetölti egy audió CD vagy egy (s)vcd összes műsorszámát, a\n\t\t\"pathname\" a meghajtó betűjelét jelenti (opcionális)\n/device\t\tOpen the default video device\n/open\t\tMegnyitja a fájlt, de nem kezdi el automatikusan eljátszani\n/play\t\tKezdje el lejátszani a fájlt, amint a lejátszó\n\t\telindul\n/close\t\tZárja be a lejátszót a műsör befejeződése után (csak a /play kapcsolóval\n\t\tegyütt használható)\n/shutdown\tÁllítsa le a rendszert a műsor lejátszásának befejeződése után\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tIndítás teljes képernyős módban\n/minimized\tMinimalizált formában való indítás\n/new\t\tA lejátszó egy új példányának használata\n/add\t\tA \"pathname\" hozzáadása a lejátszási listához, összekombinálható \n\t\taz /open és /play kapcsolóval\n/regvid\t\tVideó formátumok beregisztrálása\n/regaud\t\tAudió formátumok beregisztrálása\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tVideó formátumok beregisztráltságának megszüntetése\n/start ms\t\tX \"ms\" (= ezredmásodperc) után induljon a lejátszás\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tFix ablakméret beállítása\n/monitor N\tIndítás az N. monitoron, ahol N egytől indul\n/audiorenderer N\tN. audió átalakító használata, ahol N egytől indul\n\t\t(lásd \"Kimenet\" beállítások)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tMegmutatja a parancssori kapcsolókról szóló súgót\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Használat: mpc-hc.exe \"pathname\" [kapcsolók]\n\n\"pathname\"\tA fő betöltendő fájl vagy mappa helye (spec. helyettesítő karakterek \n\t\tengedélyezve, \"-\" denotes standard input)\n/dub \"dubname\"\tBetölt egy külön audió fájlt\n/dubdelay \"file\"\tBetölt egy külön audió fájlt XX ms-al eltolva (ha a\n\t\tfájl tartalmaz \"...DELAY XXms...\")\n/d3dfs\t\tlejátszó indítása D3D teljes képernyős módban\n/sub \"subname\"\tBetölt egy külön felirat fájlt\n/filter \"filtername\"\tDirectShow szűrőket tölt be egy dynamic link\n\t\tlibrary-ból (spec. helyettesítő karakterek tengedélyezve)\n/dvd\t\tDVD módban való futtatás, a \"pathname\" a dvd \n\t\tmappáját jelenti (opcionális)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tBetölti egy audió CD vagy egy (s)vcd összes műsorszámát, a\n\t\t\"pathname\" a meghajtó betűjelét jelenti (opcionális)\n/device\t\tOpen the default video device\n/open\t\tMegnyitja a fájlt, de nem kezdi el automatikusan eljátszani\n/play\t\tKezdje el lejátszani a fájlt, amint a lejátszó\n\t\telindul\n/close\t\tZárja be a lejátszót a műsör befejeződése után (csak a /play kapcsolóval\n\t\tegyütt használható)\n/shutdown\tÁllítsa le a rendszert a műsor lejátszásának befejeződése után\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tIndítás teljes képernyős módban\n/minimized\tMinimalizált formában való indítás\n/new\t\tA lejátszó egy új példányának használata\n/add\t\tA \"pathname\" hozzáadása a lejátszási listához, összekombinálható \n\t\taz /open és /play kapcsolóval\n/randomize\tRandomize the playlist\n/regvid\t\tVideó formátumok beregisztrálása\n/regaud\t\tAudió formátumok beregisztrálása\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tVideó formátumok beregisztráltságának megszüntetése\n/start ms\t\tX \"ms\" (= ezredmásodperc) után induljon a lejátszás\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tFix ablakméret beállítása\n/monitor N\tIndítás az N. monitoron, ahol N egytől indul\n/audiorenderer N\tN. audió átalakító használata, ahol N egytől indul\n\t\t(lásd \"Kimenet\" beállítások)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tMegmutatja a parancssori kapcsolókról szóló súgót\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2634,7 +2687,7 @@ msgstr "Jobb első" msgctxt "IDS_FRONT_CENTER" msgid "Front Center" -msgstr "" +msgstr "Front Közép" msgctxt "IDS_LOW_FREQUENCY" msgid "Low Frequency" @@ -2670,7 +2723,7 @@ msgstr "Jobb Oldalsó" msgctxt "IDS_TOP_CENTER" msgid "Top Center" -msgstr "" +msgstr "Top Közép" msgctxt "IDS_TOP_FRONT_LEFT" msgid "Top Front Left" @@ -2678,7 +2731,7 @@ msgstr "Top Front " msgctxt "IDS_TOP_FRONT_CENTER" msgid "Top Front Center" -msgstr "" +msgstr "Top Front Közép" msgctxt "IDS_TOP_FRONT_RIGHT" msgid "Top Front Right" @@ -2696,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Top Hátsó Jobb" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Képernyő-statisztika alaphelyzetbe állítása" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Feliratok::Egyéb" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Ablakszegély elrejtése" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Csak a keret megjelenítése" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Címsor és Menüsor megjelenítése" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Menüsor elrejtése" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Haladó" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Keresősáv felett" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Keresősáv alatt" msgctxt "IDS_VIDEO_STREAM" @@ -2750,7 +2775,7 @@ msgstr "Mégse" msgctxt "IDS_THUMB_THUMBNAILS" msgid "Layout" -msgstr "" +msgstr "Elrendezés" msgctxt "IDS_THUMB_PIXELS" msgid "Pixels:" @@ -2894,11 +2919,11 @@ msgstr "Shockwave Flash" msgctxt "IDS_MFMT_OTHER_AUDIO" msgid "Other Audio" -msgstr "" +msgstr "Egyéb Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Lejátszási lista" @@ -3258,7 +3287,7 @@ msgstr "Ezt a verziót használja: v%s.\n\nA legfrissebb stabil verzió: v%s." msgctxt "IDS_NEW_UPDATE_AVAILABLE" msgid "MPC-HC v%s is now available. You are using v%s.\n\nDo you want to visit MPC-HC's website to download it?" -msgstr "MPC-HC v%s elérhető. Jelenlegi verzió: v%s\n\nSzeretnéd meglátogatni az MPC-HC oldalát és letölteni az újabb verziót?" +msgstr "MPC-HC v%s elérhető. Jelenlegi verzió: v%s\n\nSzeretné meglátogatni az MPC-HC oldalát és letölteni az újabb verziót?" msgctxt "IDS_UPDATE_ERROR" msgid "Update server not found.\n\nPlease check your internet connection or try again later." @@ -3373,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Alkalmaznia kell az új beállításokat a tesztelésük előtt." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Lejátszás után: Kilépés" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hy.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hy.dialogs.po index cfda97f3aa8..da7d7dd3d39 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hy.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hy.dialogs.po @@ -109,7 +109,7 @@ msgid "Enable custom channel mapping" msgstr "Միացնել ալիքների ընտրված տեղորոշումը" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Սյուների կարագավորում՝" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -117,7 +117,7 @@ msgid "input channels:" msgstr "մտնող ալիքների." msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Սեղմած պահեք shift-ը՝ փոփոխությունները անհապաղ կիրառելու համար" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -569,7 +569,7 @@ msgid "Warning" msgstr "Ուշադրություն" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Եթե փոխեք դիրքը և կարգավորեք տեսաքարտի էկրանային լղոզումը, ապա տողագրերը ավելի լավ չեն երևա, այլ փոխարենը կխլեն մեծ ռեսուրսներ։" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -681,11 +681,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Օգտագործել Windows 7-ի առաջադրանքի վահանակի հնարավորությունները" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Բացել հաջորդ/նախորդ ֆայլը թղթապանակում \"Հետ/Առաջ\"-ի միջոցով, եթե խաղացանկում առկա է մեկ ֆայլ։" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Օգտ. ժամանակի հուշումը" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Միացնել թարմացումների ստուգումը" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Ստուգել յուրաքանչյուր՝" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "ԼԱՎ" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hy.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hy.menus.po index defb2fd0024..1714f423b08 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hy.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hy.menus.po @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Սրընթաց թեստ" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Ցուցադրել վիճակագրությունը" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Մնացած ժամանակը" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "Շ&եյդերներ" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Ձայնը" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Տ&ողագրեր" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Տեսանյութի հ&ոսքը" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Վերարտադրումը ավարտելիս" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Փակել ծրագիրը" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Կողպել" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Կառավարում" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.hy.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.hy.strings.po index 3e8a677f33a..a82a6c29359 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.hy.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.hy.strings.po @@ -325,11 +325,11 @@ msgid "On/Off" msgstr "Միաց./Անջ." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Fps-ից" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "Fps-ից" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -621,7 +621,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Միանում է ցանկացած տեսակի տեսատվյալների և մտնող կադրերը ոչ մի տեղ չի ուղարկում։ Այս եղանակը կարող է օգտակար լինել, եթե անհրաժեշտ է պահպանել ռեսուրսներից միայն ձայնը։" msgctxt "IDC_DSNULL_UNCOMP" @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Անձայն" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Ձայնով" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Բացել սարքը" @@ -1421,11 +1441,11 @@ msgid "Stop" msgstr "Կանգնեցնել" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Կադր-քայլ" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Ետարկել արագությունը" msgctxt "IDS_AG_GO_TO" @@ -1525,8 +1545,8 @@ msgid "Thumbnails saved successfully" msgstr "Մանրապատկերները հաջողությամբ պահպանվեցին" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Տեսանյութի հ&ոսքը" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Շարժել տողագրերը աջ" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Ցուցադրել վիճակագրությունը" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Տողագրերը::Լրացուցիչ" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Թաքցնել եզրագիծը" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Միայն կադրը" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Ցուցադրել &&Ընտրացանկը" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Թաքցնել ընտրացանկը" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Մինիմալ տեսքով" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "Boss Կոճակ" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Վերարտադրիչի ընտրացանկը (կրճատված)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Վերարտադրիչի ընտրացանկը (ամբողջական)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Տողագրերը Միաց/Անջ (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Մնացած ժամանակը" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "Հիշողությունը չի հերիքում" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Սխալ. պահանջվում է Flash կամ IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Սխալ. պահանջվում է Flash կամ Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,7 +2409,7 @@ msgid "Toggle Caption&Menu" msgstr "Միաց/Անջ Ընտրացանկի &վերնագիրը" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Միաց/Անջ Seeker-ը" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "Ձայնը՝ Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Օգտագործվում է. mpc-hc.exe \"ճանապարհը\" [փոխանցիչներ]\n\n\"ճանապարհը\"\tբեռնման ֆայլը կամ թղթապանակը։ \n/dub \"dubname\"\tԲացել լրացուցիչ ձայնային ֆայլ\n/dubdelay \"file\"\tԲացել լրացուցիչ ձայնային ֆայլ՝ XXմվ\n\t\t(եթե ֆայլը ունի \"...DELAY XXms...\")։\n/d3dfs\t\tՍկսել Ամբողջ էկրանով՝ D3D եղանակով։\n/sub \"subname\"\tԲացել լրացուցիչ տողագրեր։\n/filter \"filtername\"\tԲացել DirectShow ֆիլտրեր գրադարանից։\n/dvd\t\tԲացել DVD եղանակով, \"ճանապարհը\" նշանակում է DVD-ի թղթապանակը։\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tԲեռնել Audio CD--ի բոլոր ֆայլերը կամ (S)VCD, \"ճանապարհը\" նշանակում է պնակի ճանապարհը։\n/device\t\tOpen the default video device\n/open\t\tՄիայն Բացել Ֆայլը։\n/play\t\tՍկսել Վերարտադրումը՝ անմիջապես բացելիս։\n/close\t\tՎերարտադրումը ավարտելուց հետո փակել (աշխատում է միայն /play փոխանցիչի հետ)։\n/shutdown\tՎերարտադրումը ավարտելուց հետո անջատել համակարգիչը։\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tԲացել Ամբողջ էկրանով եղանակով։\n/minimized\tԲացել՝ էկրանի ներքևում վիճակում։\n/new\t\tՕգտագործել վերարտադրիչի նոր օրինակ։\n/add\t\tԱվելացնել \"ճանապարհը\" խաղացանկում, կարելի է /open և /play-ի հետ համատեղ։\n/regvid\t\tԳրանցել տեսանյութի տեսակները։\n/regaud\t\tԳրանցել ձայնային տեսակները։\n/regpl\t\tՍտեղծել ֆայլերի ասոցիացումներ խաղացանկի ֆայլերի համար\n/regall\t\tՍտեղծել ֆայլերի ասոցիացումներ ֆայլերի բոլոր աջակցվող տեսակների համարs\n/unregall\t\tՀետգրանցել բոլորը։\n/start ms\t\tՎերարտադրել \"ms\" դիրքից (= միլիվայրկյաններ)։\n/startpos hh:mm:ss\tՍկսել վերարտադրումը՝ hh:mm:ss\n/fixedsize w,h\tՀաստատել պատուհանի ֆիկսված չափ։\n/monitor N\tԲացվում է N մոնիտորի վրա, որտեղ N-ը հաշվվում է 1-ից։\n/audiorenderer N\tՕգտագործել N ցուցադրիչը, որտեղ N-ը հաշվվում է 1-ից\n\t\t(նայեք \"Արտածման\" կարգավորումները)։\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tՎերականգնել հիմնական կարգավորումները\n/help /h /?\tՑուցադրել հուշում\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Օգտագործվում է. mpc-hc.exe \"ճանապարհը\" [փոխանցիչներ]\n\n\"ճանապարհը\"\tբեռնման ֆայլը կամ թղթապանակը։ \n/dub \"dubname\"\tԲացել լրացուցիչ ձայնային ֆայլ\n/dubdelay \"file\"\tԲացել լրացուցիչ ձայնային ֆայլ՝ XXմվ\n\t\t(եթե ֆայլը ունի \"...DELAY XXms...\")։\n/d3dfs\t\tՍկսել Ամբողջ էկրանով՝ D3D եղանակով։\n/sub \"subname\"\tԲացել լրացուցիչ տողագրեր։\n/filter \"filtername\"\tԲացել DirectShow ֆիլտրեր գրադարանից։\n/dvd\t\tԲացել DVD եղանակով, \"ճանապարհը\" նշանակում է DVD-ի թղթապանակը։\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tԲեռնել Audio CD--ի բոլոր ֆայլերը կամ (S)VCD, \"ճանապարհը\" նշանակում է պնակի ճանապարհը։\n/device\t\tOpen the default video device\n/open\t\tՄիայն Բացել Ֆայլը։\n/play\t\tՍկսել Վերարտադրումը՝ անմիջապես բացելիս։\n/close\t\tՎերարտադրումը ավարտելուց հետո փակել (աշխատում է միայն /play փոխանցիչի հետ)։\n/shutdown\tՎերարտադրումը ավարտելուց հետո անջատել համակարգիչը։\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tԲացել Ամբողջ էկրանով եղանակով։\n/minimized\tԲացել՝ էկրանի ներքևում վիճակում։\n/new\t\tՕգտագործել վերարտադրիչի նոր օրինակ։\n/add\t\tԱվելացնել \"ճանապարհը\" խաղացանկում, կարելի է /open և /play-ի հետ համատեղ։\n/randomize\tRandomize the playlist\n/regvid\t\tԳրանցել տեսանյութի տեսակները։\n/regaud\t\tԳրանցել ձայնային տեսակները։\n/regpl\t\tՍտեղծել ֆայլերի ասոցիացումներ խաղացանկի ֆայլերի համար\n/regall\t\tՍտեղծել ֆայլերի ասոցիացումներ ֆայլերի բոլոր աջակցվող տեսակների համարs\n/unregall\t\tՀետգրանցել բոլորը։\n/start ms\t\tՎերարտադրել \"ms\" դիրքից (= միլիվայրկյաններ)։\n/startpos hh:mm:ss\tՍկսել վերարտադրումը՝ hh:mm:ss\n/fixedsize w,h\tՀաստատել պատուհանի ֆիկսված չափ։\n/monitor N\tԲացվում է N մոնիտորի վրա, որտեղ N-ը հաշվվում է 1-ից։\n/audiorenderer N\tՕգտագործել N ցուցադրիչը, որտեղ N-ը հաշվվում է 1-ից\n\t\t(նայեք \"Արտածման\" կարգավորումները)։\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tՎերականգնել հիմնական կարգավորումները\n/help /h /?\tՑուցադրել հուշում\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,40 +2748,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Վերին հետին աջ" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Տողագրերը::Լրացուցիչ" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Թաքցնել եզրագիծը" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Միայն կադրը" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Ցուցադրել &&Ընտրացանկը" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Թաքցնել ընտրացանկը" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Վահանակից ցած" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Վահանակից վեր" msgctxt "IDS_VIDEO_STREAM" @@ -2897,7 +2921,7 @@ msgid "Other Audio" msgstr "" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" +msgid "AC-3" msgstr "" msgctxt "IDS_MFMT_AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Խաղացանկ" @@ -3373,7 +3401,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Մուտքագրված կադրի աստիճանի վերլուծման սխալ։" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Ընտրեք այլ տեսառենդեր։" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,7 +3492,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Նոր կարգավորումները թեստավորելուց առաջ նախ պետք է դրանք պահպանել" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Վերարտադրելուց հետո. Փակել" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.bn.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.bn.strings.po index 648a82029c8..b5857f52a66 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.bn.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.bn.strings.po @@ -2,15 +2,15 @@ # Copyright (C) 2002 - 2014 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# mehzad, 2014 +# Mehedi Hussain, 2014 # mehzad, 2014 # Underground78, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-09-07 09:10+0000\n" -"Last-Translator: Underground78\n" +"PO-Revision-Date: 2015-04-12 14:10+0000\n" +"Last-Translator: Mehedi Hussain\n" "Language-Team: Bengali (http://www.transifex.com/projects/p/mpc-hc/language/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,7 +24,7 @@ msgstr "এর মাধ্যমে আপনার কম্পিউটার msgctxt "Messages_WinVersionTooLowError" msgid "[name] requires Windows XP Service Pack 3 or newer to run." -msgstr "[name] চালানোর জন্য Windows XP Service Pack 3 অথবা ঊর্ধ্বতন সংস্করণ প্রয়োজন।" +msgstr "[NAME] চালানোর জন্য Windows XP Service Pack 3 অথবা ঊর্ধ্বতন সংস্করণ প্রয়োজন।" msgctxt "CustomMessages_comp_mpciconlib" msgid "Icon Library" @@ -40,7 +40,7 @@ msgstr "আপনি কি MPC-HCএর সেটিংসমূহও মু msgctxt "CustomMessages_msg_SetupIsRunningWarning" msgid "MPC-HC setup is already running!" -msgstr "MPC-HCএর সেটআপ ইতিমধ্যে চলমান রয়েছে!" +msgstr "MPC-HCএর সেটআপ প্রক্রিয়া ইতিমধ্যে চলমান রয়েছে!" msgctxt "CustomMessages_msg_simd_sse" msgid "This build of MPC-HC requires a CPU with SSE extension support.\n\nYour CPU does not have those capabilities." @@ -72,11 +72,11 @@ msgstr "সেটিংসমূহ পুনর্বিন্যাস" msgctxt "CustomMessages_types_DefaultInstallation" msgid "Default installation" -msgstr "নির্ধারিত ইনস্টল প্রক্রিয়া" +msgstr "ডিফল্ট ইনস্টল প্রক্রিয়া" msgctxt "CustomMessages_types_CustomInstallation" msgid "Custom installation" -msgstr "নির্ধারণযোগ্য ইনস্টল প্রক্রিয়া" +msgstr "ব্যক্তি-নির্ধারিত ইনস্টল প্রক্রিয়া" msgctxt "CustomMessages_ViewChangelog" msgid "View Changelog" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ca.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ca.strings.po index 5ba8ea96b29..fac1d735d1b 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ca.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ca.strings.po @@ -4,14 +4,14 @@ # Translators: # Adolfo Jayme Barrientos, 2014 # Adolfo Jayme Barrientos, 2014 -# papu , 2014 +# papu , 2014-2015 # papu , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-09-14 21:20+0000\n" -"Last-Translator: Adolfo Jayme Barrientos\n" +"PO-Revision-Date: 2015-04-23 13:02+0000\n" +"Last-Translator: papu \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/mpc-hc/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,7 +25,7 @@ msgstr "Aquest auxiliar instal·larà el [name] al vostre ordinador\n\nEs recoma msgctxt "Messages_WinVersionTooLowError" msgid "[name] requires Windows XP Service Pack 3 or newer to run." -msgstr "[name] requereix Windows XP Service Pack 3 o superior per funcionar." +msgstr "[name] cal Windows XP Service Pack 3 o superior per que funcioni." msgctxt "CustomMessages_comp_mpciconlib" msgid "Icon Library" @@ -45,7 +45,7 @@ msgstr "La instal·lació del MPC-HC ja s’està executant." msgctxt "CustomMessages_msg_simd_sse" msgid "This build of MPC-HC requires a CPU with SSE extension support.\n\nYour CPU does not have those capabilities." -msgstr "Aquesta versió de MPC-HC requereix una CPU amb suport d'extensions SSE.\n\nLa teva CPU no cumpleix aquestes característiques." +msgstr "Aquesta versió de MPC-HC necessita una CPU amb suport d'extensions SSE.\n\nLa teva CPU no cumpleix aquestes característiques." msgctxt "CustomMessages_msg_simd_sse2" msgid "This build of MPC-HC requires a CPU with SSE2 extension support.\n\nYour CPU does not have those capabilities." @@ -53,11 +53,11 @@ msgstr "Aquesta versió de MPC-HC requereix una CPU amb suport d'extensions SSE2 msgctxt "CustomMessages_run_DownloadToolbarImages" msgid "Visit our Wiki page to download toolbar images" -msgstr "Visita la nostra pàgina de Wiki per descarregar imatges per la barra d'eines" +msgstr "Visita la nostra pàgina del Wiki per descarregar imatges per a la barra d'eines" msgctxt "CustomMessages_tsk_AllUsers" msgid "For all users" -msgstr "Per tots els usuaris" +msgstr "Per a tots els usuaris" msgctxt "CustomMessages_tsk_CurrentUser" msgid "For the current user only" @@ -69,7 +69,7 @@ msgstr "Altres tasques:" msgctxt "CustomMessages_tsk_ResetSettings" msgid "Reset settings" -msgstr "Reiniciar preferències" +msgstr "Reiniciar les preferències" msgctxt "CustomMessages_types_DefaultInstallation" msgid "Default installation" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.da.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.da.strings.po new file mode 100644 index 00000000000..73b3f50e541 --- /dev/null +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.da.strings.po @@ -0,0 +1,83 @@ +# MPC-HC - Strings extracted from string tables +# Copyright (C) 2002 - 2014 see Authors.txt +# This file is distributed under the same license as the MPC-HC package. +# Translators: +# Jatyrael , 2014 +# scootergrisen, 2015 +msgid "" +msgstr "" +"Project-Id-Version: MPC-HC\n" +"POT-Creation-Date: 2014-06-17 15:23:34+0000\n" +"PO-Revision-Date: 2015-03-20 21:34+0000\n" +"Last-Translator: scootergrisen\n" +"Language-Team: Danish (http://www.transifex.com/projects/p/mpc-hc/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgctxt "Messages_WelcomeLabel2" +msgid "This will install [name] on your computer.\n\nIt is recommended that you close all other applications before continuing." +msgstr "Dette vil installere [name] på din computer.\n\nDet anbefales, at du lukker alle andre programmer, inden du fortsætter." + +msgctxt "Messages_WinVersionTooLowError" +msgid "[name] requires Windows XP Service Pack 3 or newer to run." +msgstr "[name] kræver Windows XP Service Pack 3 eller nyere for at køre." + +msgctxt "CustomMessages_comp_mpciconlib" +msgid "Icon Library" +msgstr "Ikon-bibliotek" + +msgctxt "CustomMessages_comp_mpcresources" +msgid "Translations" +msgstr "Oversættelser" + +msgctxt "CustomMessages_msg_DeleteSettings" +msgid "Do you also want to delete MPC-HC settings?\n\nIf you plan on installing MPC-HC again then you do not have to delete them." +msgstr "Vil du også slette MPC-HC indstillinger?\n\nHvis du har tænkt dig at installere MPC-HC igen, så behøves du ikke slette dem." + +msgctxt "CustomMessages_msg_SetupIsRunningWarning" +msgid "MPC-HC setup is already running!" +msgstr "MPC-HC installation kører allerede!" + +msgctxt "CustomMessages_msg_simd_sse" +msgid "This build of MPC-HC requires a CPU with SSE extension support.\n\nYour CPU does not have those capabilities." +msgstr "Denne version af MPC-HC kræver en CPU der understøtter SSE-udvidelsen.\n\nDin CPU understøtter det ikke." + +msgctxt "CustomMessages_msg_simd_sse2" +msgid "This build of MPC-HC requires a CPU with SSE2 extension support.\n\nYour CPU does not have those capabilities." +msgstr "Denne version af MPC-HC kræver en CPU der understøtter SSE2-udvidelsen.\n\nDin CPU understøtter det ikke." + +msgctxt "CustomMessages_run_DownloadToolbarImages" +msgid "Visit our Wiki page to download toolbar images" +msgstr "Besøg vores wiki-side for at hente værktøjslinjebilleder" + +msgctxt "CustomMessages_tsk_AllUsers" +msgid "For all users" +msgstr "For alle brugere" + +msgctxt "CustomMessages_tsk_CurrentUser" +msgid "For the current user only" +msgstr "Kun for denne bruger" + +msgctxt "CustomMessages_tsk_Other" +msgid "Other tasks:" +msgstr "Andre opgaver:" + +msgctxt "CustomMessages_tsk_ResetSettings" +msgid "Reset settings" +msgstr "Nulstil indstillinger" + +msgctxt "CustomMessages_types_DefaultInstallation" +msgid "Default installation" +msgstr "Standardinstallation" + +msgctxt "CustomMessages_types_CustomInstallation" +msgid "Custom installation" +msgstr "Brugerdefineret installation" + +msgctxt "CustomMessages_ViewChangelog" +msgid "View Changelog" +msgstr "Vis ændringslog" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.es.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.es.strings.po index 54c780d5d50..a5bccf13d82 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.es.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.es.strings.po @@ -2,14 +2,14 @@ # Copyright (C) 2002 - 2014 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Adolfo Jayme Barrientos , 2014 -# Adolfo Jayme Barrientos , 2014 +# Adolfo Jayme Barrientos, 2014 +# Adolfo Jayme Barrientos, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" "PO-Revision-Date: 2014-10-05 19:20+0000\n" -"Last-Translator: Adolfo Jayme Barrientos \n" +"Last-Translator: Adolfo Jayme Barrientos\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/mpc-hc/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.gl.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.gl.strings.po index 257c8f51261..eec82368ff2 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.gl.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.gl.strings.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the MPC-HC package. # Translators: # Rubén , 2014 -# Toño Calo , 2014 +# Toño Calo , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-12-01 23:04+0000\n" -"Last-Translator: Underground78\n" +"PO-Revision-Date: 2015-02-28 21:20+0000\n" +"Last-Translator: Toño Calo \n" "Language-Team: Galician (http://www.transifex.com/projects/p/mpc-hc/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +19,7 @@ msgstr "" msgctxt "Messages_WelcomeLabel2" msgid "This will install [name] on your computer.\n\nIt is recommended that you close all other applications before continuing." -msgstr "Isto intalará [name] no teu ordenador.\n\nRecomendase que peches todas as aplicacións antes de seguir." +msgstr "Isto instalará [name] no teu ordenador.\n\nRecoméndase que peches todas as aplicacións antes de seguir." msgctxt "Messages_WinVersionTooLowError" msgid "[name] requires Windows XP Service Pack 3 or newer to run." @@ -35,19 +35,19 @@ msgstr "Traducións" msgctxt "CustomMessages_msg_DeleteSettings" msgid "Do you also want to delete MPC-HC settings?\n\nIf you plan on installing MPC-HC again then you do not have to delete them." -msgstr "Tamén queres eliminar os axustes de MPC-HC?\n\nSe te plantexas instalar MPC-HC outra vez entón non o tes que eliminar." +msgstr "Ques eliminar tamén os axustes de MPC-HC?\n\nSe pensas instalar MPC-HC de novo entón non o tes que eliminalos." msgctxt "CustomMessages_msg_SetupIsRunningWarning" msgid "MPC-HC setup is already running!" -msgstr "O instalador de MPC-HC xa está correndo!" +msgstr "O instalador de MPC-HC xa está a ser executado!" msgctxt "CustomMessages_msg_simd_sse" msgid "This build of MPC-HC requires a CPU with SSE extension support.\n\nYour CPU does not have those capabilities." -msgstr "Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE .\n\nO seu CPU non ten estas capacidades." +msgstr "Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE .\n\nA súa CPU non ten estas capacidades." msgctxt "CustomMessages_msg_simd_sse2" msgid "This build of MPC-HC requires a CPU with SSE2 extension support.\n\nYour CPU does not have those capabilities." -msgstr "Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE2 .\n\nO seu CPU non ten estas capacidades." +msgstr "Esta versión de MPC-HC require unha CPU con soporte para a extensión SSE2 .\n\nA súa CPU non ten estas capacidades." msgctxt "CustomMessages_run_DownloadToolbarImages" msgid "Visit our Wiki page to download toolbar images" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.hr.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.hr.strings.po index f6f1dacda4a..1e9a52bcd98 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.hr.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.hr.strings.po @@ -4,12 +4,12 @@ # Translators: # schop , 2014 # iivana24 , 2014 -# streger , 2014 +# streger , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-09-08 12:31+0000\n" +"PO-Revision-Date: 2015-05-29 21:00+0000\n" "Last-Translator: streger \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/mpc-hc/language/hr/)\n" "MIME-Version: 1.0\n" @@ -72,7 +72,7 @@ msgstr "Vrati na početne postavke programa" msgctxt "CustomMessages_types_DefaultInstallation" msgid "Default installation" -msgstr "Standarnda instalacija" +msgstr "Standardna instalacija" msgctxt "CustomMessages_types_CustomInstallation" msgid "Custom installation" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.it.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.it.strings.po index da9f8683236..800e2e8dff8 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.it.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.it.strings.po @@ -2,14 +2,14 @@ # Copyright (C) 2002 - 2014 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Gabrix , 2014 +# Gabrix , 2014 # Kiba_No_Ou , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-09-14 00:31+0000\n" -"Last-Translator: Gabrix \n" +"PO-Revision-Date: 2014-12-01 23:04+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Italian (http://www.transifex.com/projects/p/mpc-hc/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ja.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ja.strings.po index d76a4cc9e01..87e3286b6b0 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ja.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ja.strings.po @@ -2,12 +2,12 @@ # Copyright (C) 2002 - 2014 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# ever_green, 2014 +# ever_green, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-10-12 11:31+0000\n" +"PO-Revision-Date: 2015-03-21 23:10+0000\n" "Last-Translator: ever_green\n" "Language-Team: Japanese (http://www.transifex.com/projects/p/mpc-hc/language/ja/)\n" "MIME-Version: 1.0\n" @@ -22,7 +22,7 @@ msgstr "このプログラムはあなたのコンピュータ上に [name] を msgctxt "Messages_WinVersionTooLowError" msgid "[name] requires Windows XP Service Pack 3 or newer to run." -msgstr "[name] を実行する為には Windows XP Service Pack 3 以降が必要です。" +msgstr "[name] を実行するためには Windows XP Service Pack 3 以降が必要です。" msgctxt "CustomMessages_comp_mpciconlib" msgid "Icon Library" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ko.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ko.strings.po index 82c7d470664..8749b9e9d3b 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ko.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ko.strings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-10-13 10:51+0000\n" -"Last-Translator: Level ASMer \n" +"PO-Revision-Date: 2014-12-01 23:04+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Korean (http://www.transifex.com/projects/p/mpc-hc/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.nl.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.nl.strings.po index 83e6320b0b7..ee76ab80c03 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.nl.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.nl.strings.po @@ -2,7 +2,7 @@ # Copyright (C) 2002 - 2014 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Devrim Yolo , 2014 +# Devrim, 2014 # DennisW, 2014 msgid "" msgstr "" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ro.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ro.strings.po index ef49ff3c370..16c2ffcb235 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ro.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ro.strings.po @@ -2,12 +2,12 @@ # Copyright (C) 2002 - 2014 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Daniel , 2014 +# Daniel , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-06-17 15:23:34+0000\n" -"PO-Revision-Date: 2014-07-07 16:20+0000\n" +"PO-Revision-Date: 2015-05-31 16:51+0000\n" "Last-Translator: Daniel \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/mpc-hc/language/ro/)\n" "MIME-Version: 1.0\n" @@ -18,7 +18,7 @@ msgstr "" msgctxt "Messages_WelcomeLabel2" msgid "This will install [name] on your computer.\n\nIt is recommended that you close all other applications before continuing." -msgstr "Se va instala [name] pe calculatorul dumneavoastră.\n\nEste recomandat să închideţi toate celelalte aplicaţii înainte de a continua." +msgstr "Se va instala [name] pe calculatorul dumneavoastră.\n\nEste recomandat să închideţi toate celelalte aplicații înainte de a continua." msgctxt "Messages_WinVersionTooLowError" msgid "[name] requires Windows XP Service Pack 3 or newer to run." diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ru.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ru.strings.po index cecf79fb9cc..79948abe3ab 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ru.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.installer.ru.strings.po @@ -14,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" msgctxt "Messages_WelcomeLabel2" msgid "This will install [name] on your computer.\n\nIt is recommended that you close all other applications before continuing." diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.it.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.it.dialogs.po index c7d2ed4a272..acd7a25594b 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.it.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.it.dialogs.po @@ -1,16 +1,16 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Gabrix , 2014 +# Gabrix , 2014 # Kiba_No_Ou , 2014 -# Tummarellox , 2014 +# Jacopo Tumminello , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-27 17:50+0000\n" -"Last-Translator: Tummarellox \n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-04-12 02:15+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Italian (http://www.transifex.com/projects/p/mpc-hc/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -111,15 +111,15 @@ msgid "Enable custom channel mapping" msgstr "Attiva la mappatura personalizzata dei canali" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Configura altoparlanti per " +msgid "Speaker configuration for" +msgstr "Configura altoparlanti per" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "canali di input:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Premi Shift per applicare immediatamente i cambiamenti cliccando su un elemento" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -571,8 +571,8 @@ msgid "Warning" msgstr "Attenzione" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "Se imposti l'antialiasing a schermo intero nella tua scheda video, i sottotitoli NON si vedranno meglio, tuttavia la cpu avrà un carico maggiore." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Se imposti l'antialiasing a schermo intero nella tua scheda video, i sottotitoli NON si vedranno meglio, tuttavia la CPU avrà un carico maggiore." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -683,11 +683,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Utilizza le caratteristiche della Taskbar di Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Apri il file precedente/successivo nella cartella con \"Salta indietro/avanti\" quando la playlist contiene un solo elemento" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Visualizza tempo:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1279,8 +1279,8 @@ msgid "Enable automatic update check" msgstr "Abilita controllo automatico aggiornamenti" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Intervallo ricerca:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1666,3 +1666,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.it.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.it.menus.po index 02cf0248c54..6a6ff01a294 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.it.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.it.menus.po @@ -1,15 +1,16 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Gabrix , 2014 +# Gabrix , 2014 # Kiba_No_Ou , 2014 +# Luca Bisaro , 2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-26 22:47+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-04-06 16:31:55+0000\n" +"PO-Revision-Date: 2015-04-19 16:21+0000\n" +"Last-Translator: Luca Bisaro \n" "Language-Team: Italian (http://www.transifex.com/projects/p/mpc-hc/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -197,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Test effetto tearing" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Visualizza statistiche" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Tempo residuo" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +559,16 @@ msgid "S&haders" msgstr "S&haders" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "&Traccia Audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "S&ottotitoli" +msgid "Su&btitle Track" +msgstr "&Traccia Sottotitolo" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "S&tream video" +msgid "&Video Track" +msgstr "&Traccia Video" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Dopo la riproduzione" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Riproduci &il prossimo file nella cartella" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Spegni il &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Chiudi " @@ -609,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Blocca" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Spegni il &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigazione" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.it.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.it.strings.po index 9bd7454542c..e2b7a53ad1d 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.it.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.it.strings.po @@ -1,16 +1,16 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Gabrix , 2014 +# Gabrix , 2014 # Kiba_No_Ou , 2014 -# Tummarellox , 2014 +# Jacopo Tumminello , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-27 17:50+0000\n" -"Last-Translator: Tummarellox \n" +"POT-Creation-Date: 2015-04-15 21:44:52+0000\n" +"PO-Revision-Date: 2015-04-19 16:21+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Italian (http://www.transifex.com/projects/p/mpc-hc/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -327,12 +327,12 @@ msgid "On/Off" msgstr "On/Off" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Dal fps" +msgid "From FPS" +msgstr "Dal FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Al fps" +msgid "To FPS" +msgstr "Al FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -623,7 +623,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Come il VMR-9 (renderless), ma usa un vero resizer bicubico a 2 passaggi." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Si interfaccia a qualsiasi tipo di video e non manda i campioni in entrata da nessuna parte. Utile quando non si ha bisogno di visualizzare il video permettendo di risparmiare lavoro non necessario alla CPU." msgctxt "IDC_DSNULL_UNCOMP" @@ -890,7 +890,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Muto" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Muto Off" @@ -1374,6 +1374,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Apri periferica" @@ -1423,11 +1443,11 @@ msgid "Stop" msgstr "Ferma" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Fotogramma" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Fotogramma indietro" msgctxt "IDS_AG_GO_TO" @@ -1527,8 +1547,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniature salvate con successo" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "S&tream video" +msgid "&Video Track" +msgstr "&Traccia Video" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1650,14 +1670,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Scorri sottotitolo a destra" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Visualizza statistiche" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Salta all'inizio" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Sottotitoli::Misc" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Nascondi bordi" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Solo video" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Menù e intestazioni" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Nascondi menù" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avanzate" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Vista minima" @@ -1891,12 +1943,12 @@ msgid "Boss key" msgstr "Tasto Boss" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menù lettore (compatto)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menù lettore (esteso)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1974,9 +2026,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Sottotitoli On/Off (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Tempo residuo" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2287,8 +2339,8 @@ msgid "Out of memory" msgstr "Memoria insufficiente" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Errore: richiesto Flash per IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Errore: richiesto Flash per Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2359,7 +2411,7 @@ msgid "Toggle Caption&Menu" msgstr "Mostra Titolo&Menù" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Mostra Barra di ricerca" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2515,8 +2567,8 @@ msgid "Volume boost Max" msgstr "Amplificazione volume: massimo" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Utilizzo: mpc-hc.exe \"percorso\" [opzioni]\n\n\"percorso\"\tIl file o cartella principale da caricare\n\t\t(wildcards ammesse, \"-\" denotes standard input)\n/dub \"nomedub\"\tCarica un file audio aggiuntivo\n/dubdelay \"file\"\tCarica un file audio aggiuntivo con ritardo\n\t\tdi XXms (se il file contiene \"...DELAY XXms...\")\n/d3dfs\t\tInizia il rendering in modalità D3D a schermo intero\n/sub \"subname\"\tCarica un file di sottotitoli aggiuntivo\n/filter \"nomefiltro\"\tCarica i filtri DirectShow da una DLL\n\t\t(wildcards ammesse)\n/dvd\t\tAvvia in modalità dvd, \"percorso\" indica la\n\t\tcartella del dvd (opzionale)\n/dvdpos T#C\tInizia riproduzione al titolo T, capitolo C\n/dvdpos T#hh:mm\tInizia riproduzione al titolo T,\n\t\tposizione hh:mm:ss\n/cd\t\tCarica tutte le tracce di un cd audio o (s)vcd;\n\t\t\"percorso\" indica il percorso del drive (opzionale)\n/device\t\tOpen the default video device\n/open\t\tApre il file, senza iniziare la riproduzione\n/play\t\tInizia la riproduzione del file non appena il\n\t\tlettore viene aperto\n/close\t\tChiudi il lettore dopo la riproduzione\n\t\t(funziona solo insieme a /play)\n/shutdown\tSpegni il computer dopo la riproduzione\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tAvvia a schermo intero\n/minimized\tAvvia minimizzato\n/new\t\tUsa una nuova istanza del lettore\n/add\t\tAggiunge \"percorso\" alla playlist, può essere\n\t\tin combinazione con /open e /play\n/regvid\t\tRegistra i formati video\n/regaud\t\tRegistra i formati audio\n/regpl\t\tCrea le associazioni dei file di tipo playlist\n/regall\t\tCrea le associazioni dei file per tutti i formati\n\t\tsupportati\n/unregall\t\tRimuove tutte le associazioni dei file\n/start ms\t\tInizia la riproduzione a \"ms\" (= millisecondi)\n/startpos hh:mm:ss\tInizia la riproduzione alla posizione hh:mm:ss\n/fixedsize w,h\tImposta la dimensione fissa della finestra\n/monitor N\tAvvia nello schermo N, dove N inizia da 1\n/audiorenderer N\tAvvia con renderer audio N, dove N inizia da 1\n\t\t(vedi impostazioni di \"Output\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRipristina le impostazioni predefinite\n/help /h /?\tVisualizza l'aiuto sulle opzioni a riga di comando\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Utilizzo: mpc-hc.exe \"percorso\" [opzioni]\n\n\"percorso\"\tIl file o cartella principale da caricare\n\t\t(wildcards ammesse, \"-\" denotes standard input)\n/dub \"nomedub\"\tCarica un file audio aggiuntivo\n/dubdelay \"file\"\tCarica un file audio aggiuntivo con ritardo\n\t\tdi XXms (se il file contiene \"...DELAY XXms...\")\n/d3dfs\t\tInizia il rendering in modalità D3D a schermo intero\n/sub \"subname\"\tCarica un file di sottotitoli aggiuntivo\n/filter \"nomefiltro\"\tCarica i filtri DirectShow da una DLL\n\t\t(wildcards ammesse)\n/dvd\t\tAvvia in modalità dvd, \"percorso\" indica la\n\t\tcartella del dvd (opzionale)\n/dvdpos T#C\tInizia riproduzione al titolo T, capitolo C\n/dvdpos T#hh:mm\tInizia riproduzione al titolo T,\n\t\tposizione hh:mm:ss\n/cd\t\tCarica tutte le tracce di un cd audio o (s)vcd;\n\t\t\"percorso\" indica il percorso del drive (opzionale)\n/device\t\tOpen the default video device\n/open\t\tApre il file, senza iniziare la riproduzione\n/play\t\tInizia la riproduzione del file non appena il\n\t\tlettore viene aperto\n/close\t\tChiudi il lettore dopo la riproduzione\n\t\t(funziona solo insieme a /play)\n/shutdown\tSpegni il computer dopo la riproduzione\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tAvvia a schermo intero\n/minimized\tAvvia minimizzato\n/new\t\tUsa una nuova istanza del lettore\n/add\t\tAggiunge \"percorso\" alla playlist, può essere\n\t\tin combinazione con /open e /play\n/randomize\tRandomize the playlist\n/regvid\t\tRegistra i formati video\n/regaud\t\tRegistra i formati audio\n/regpl\t\tCrea le associazioni dei file di tipo playlist\n/regall\t\tCrea le associazioni dei file per tutti i formati\n\t\tsupportati\n/unregall\t\tRimuove tutte le associazioni dei file\n/start ms\t\tInizia la riproduzione a \"ms\" (= millisecondi)\n/startpos hh:mm:ss\tInizia la riproduzione alla posizione hh:mm:ss\n/fixedsize w,h\tImposta la dimensione fissa della finestra\n/monitor N\tAvvia nello schermo N, dove N inizia da 1\n/audiorenderer N\tAvvia con renderer audio N, dove N inizia da 1\n\t\t(vedi impostazioni di \"Output\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRipristina le impostazioni predefinite\n/help /h /?\tVisualizza l'aiuto sulle opzioni a riga di comando\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2698,40 +2750,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Superiore posteriore destro" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Resetta Statistiche Display" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Sottotitoli::Misc" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Nascondi bordi" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Solo video" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Menù e intestazioni" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Nascondi menù" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avanzate" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Sopra la barra di ricerca" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Sotto la barra di ricerca" msgctxt "IDS_VIDEO_STREAM" @@ -2899,8 +2923,8 @@ msgid "Other Audio" msgstr "Altro Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2910,6 +2934,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2974,22 +3018,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Playlist" @@ -3375,7 +3403,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Errore nel parsing del frame rate inserito!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Impossibile generare i fotogrammi; tentare con un video renderer differente." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3466,7 +3494,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "È necessario applicare le nuove impostazioni prima di poterle testare." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Dopo la riproduzione: Esci" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ja.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ja.dialogs.po index 7188ddcc8c4..496a2e497d7 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ja.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ja.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # ever_green, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2015-01-23 11:01+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-23 10:20+0000\n" "Last-Translator: ever_green\n" "Language-Team: Japanese (http://www.transifex.com/projects/p/mpc-hc/language/ja/)\n" "MIME-Version: 1.0\n" @@ -102,14 +102,14 @@ msgstr "44100 Hz にダウンサンプリングする" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK4" msgid "Audio time shift (ms):" -msgstr "音声のタイム シフト (ms):" +msgstr "音声のタイム シフト (ミリ秒):" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_CHECK1" msgid "Enable custom channel mapping" msgstr "カスタム チャンネル マッピングを有効にする" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "入力スピーカーの設定:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -117,7 +117,7 @@ msgid "input channels:" msgstr "チャンネル" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Shift キーを押したままクリックすると、即座に変更されます" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -138,7 +138,7 @@ msgstr "移動" msgctxt "IDD_GOTO_DLG_IDC_STATIC" msgid "Enter two numbers to jump to a specified frame, the first is the frame number, the second is the frame rate." -msgstr "フレーム番号、フレーム レートの順で数値を入力し、移動先のフレームを指定してください。" +msgstr "指定したフレームにジャンプするにはフレーム番号、フレーム レートの順に二つの数値を入力してください。" msgctxt "IDD_GOTO_DLG_IDC_STATIC" msgid "Frame" @@ -338,7 +338,7 @@ msgstr "終了時のウィンドウ サイズを記憶する" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK11" msgid "Remember last Pan-n-Scan Zoom" -msgstr "最近使ったパン&スキャンの拡大率を記憶する" +msgstr "終了時のパン&スキャンの拡大率を記憶する" msgctxt "IDD_PPAGEDVD_IDC_STATIC" msgid "\"Open DVD/BD\" behavior" @@ -434,7 +434,7 @@ msgstr "自動拡大:" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC2" msgid "Auto fit factor:" -msgstr "自動調整の拡大率:" +msgstr "自動調整の倍率:" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC3" msgid "%" @@ -462,7 +462,7 @@ msgstr "開くの設定" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK7" msgid "Use worker thread to construct the filter graph" -msgstr "フィルタ グラフの構築にワーカー スレッドを使用する" +msgstr "フィルタ グラフを構築するためにワーカー スレッドを使用する" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK6" msgid "Report pins which fail to render" @@ -482,7 +482,7 @@ msgstr "コントロール" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Volume step:" -msgstr "音量のステップ:" +msgstr "音量調節のステップ:" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "%" @@ -490,7 +490,7 @@ msgstr "%" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Speed step:" -msgstr "再生速度のステップ:" +msgstr "速度調節のステップ:" msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK3" msgid "Override placement" @@ -518,7 +518,7 @@ msgstr "遅延のステップ" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "ms" -msgstr "ms" +msgstr "ミリ秒" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Texture settings (open the video again to see the changes)" @@ -569,7 +569,7 @@ msgid "Warning" msgstr "警告" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "字幕の配置を強制的に指定し、ビデオカードの設定で全画面表示のアンチエイリアスを有効にした場合、CPU を消費するのみで字幕は少しも綺麗になりません。" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -654,7 +654,7 @@ msgstr "音楽 CD" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "Jump distances (small, medium, large in ms)" -msgstr "ジャンプの間隔 (小, 中, 大 : ms 単位)" +msgstr "ジャンプの間隔 (小, 中, 大 : ミリ秒単位)" msgctxt "IDD_PPAGETWEAKS_IDC_BUTTON1" msgid "Default" @@ -670,7 +670,7 @@ msgstr "シーク バーにチャプター マークを表示する" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK4" msgid "Display \"Now Playing\" information in Skype's mood message" -msgstr "「現在再生中」 のファイル情報を Skype のムード メッセージに表示する" +msgstr "「再生中」 のファイル情報を Skype のムード メッセージに表示する" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK6" msgid "Prevent minimizing the player when in fullscreen on a non default monitor" @@ -681,12 +681,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows 7 のタスクバーの機能を使用する" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "再生リスト内に一つの項目のみがある場合、 「前へ/次へ」 でフォルダ内の前/次のファイルを開く" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "再生リスト内に項目が一つしかない場合、 「前に戻る/次に進む」 でフォルダ内の前/次のファイルを開く" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "タイム ツールチップを使用する:" +msgid "Show time tooltip:" +msgstr "タイム ツールチップを表示する:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -926,7 +926,7 @@ msgstr "遅延:" msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_STATIC" msgid "ms" -msgstr "ms" +msgstr "ミリ秒" msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_CHECK1" msgid "Save custom style" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "更新の自動確認を有効にする" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "確認の間隔:" +msgid "Check every:" +msgstr "確認する間隔:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1434,7 +1434,7 @@ msgstr "目標同期オフセット:" msgctxt "IDD_PPAGESYNC_IDC_STATIC6" msgid "ms" -msgstr "ms" +msgstr "ミリ秒" msgctxt "IDD_PPAGESYNC_IDC_STATIC7" msgid "Control limits:" @@ -1446,7 +1446,7 @@ msgstr "+/-" msgctxt "IDD_PPAGESYNC_IDC_STATIC9" msgid "ms" -msgstr "ms" +msgstr "ミリ秒" msgctxt "IDD_PPAGESYNC_IDC_STATIC10" msgid "Changes take effect after the playback has been closed and restarted." @@ -1462,7 +1462,7 @@ msgstr "全画面表示でコントロールを隠す" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC1" msgid "ms" -msgstr "ms" +msgstr "ミリ秒" msgctxt "IDD_PPAGEFULLSCREEN_IDC_CHECK6" msgid "Hide docked panels" @@ -1510,7 +1510,7 @@ msgstr "遅延" msgctxt "IDD_PPAGEFULLSCREEN_IDC_STATIC2" msgid "s" -msgstr "s" +msgstr "秒" msgctxt "IDD_NAVIGATION_DLG_IDC_NAVIGATION_INFO" msgid "Info" @@ -1534,7 +1534,7 @@ msgstr "埋め込まれた字幕を読み込まない" msgctxt "IDD_PPAGESUBMISC_IDC_STATIC" msgid "Autoload paths" -msgstr "字幕ファイルの自動読み込みパスを指定" +msgstr "字幕ファイルの自動読み込みパス" msgctxt "IDD_PPAGESUBMISC_IDC_BUTTON1" msgid "Reset" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "クラッシュ レポート" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "申し訳ございませんが、 MPC-HC がクラッシュしました。\n\nこの問題を診断し、解決しやすくするために、バグ レポートが送信されます。必要に応じて、追加情報を提供することができます。" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "電子メール:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "電子メールのアドレスは任意であり、開発者がより多くの情報を得るために連絡する必要がある場合にのみ使用されます。" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "問題の詳細 (英語のみを使用してください):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ja.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ja.menus.po index 1fa1bec581e..5e3a9778805 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ja.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ja.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# ever_green, 2014 +# ever_green, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-12-28 10:21+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-28 13:50+0000\n" "Last-Translator: ever_green\n" "Language-Team: Japanese (http://www.transifex.com/projects/p/mpc-hc/language/ja/)\n" "MIME-Version: 1.0\n" @@ -102,7 +102,7 @@ msgstr "表示(&V)" msgctxt "ID_VIEW_CAPTIONMENU" msgid "Caption&&Menu" -msgstr "タイトルとメニュー(&M)" +msgstr "タイトル バーとメニュー バー(&M)" msgctxt "ID_VIEW_SEEKER" msgid "See&k Bar" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "テアリング テスト(&T)" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "レンダラ統計情報(&D)" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "統計情報を表示(&D)" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "残り時間(&R)" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "現在の再生時間を表示(&I)" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "ファイル名を表示(&F)" msgctxt "POPUP" msgid "&Output Range" @@ -498,7 +502,7 @@ msgstr "手前に表示(&T)" msgctxt "ID_ONTOP_DEFAULT" msgid "&Default" -msgstr "しない(&D)" +msgstr "標準(&D)" msgctxt "ID_ONTOP_ALWAYS" msgid "&Always" @@ -506,11 +510,11 @@ msgstr "常に(&A)" msgctxt "ID_ONTOP_WHILEPLAYING" msgid "While &Playing" -msgstr "再生中(&P)" +msgstr "再生時(&P)" msgctxt "ID_ONTOP_WHILEPLAYINGVIDEO" msgid "While Playing &Video" -msgstr "ビデオを再生中(&V)" +msgstr "ビデオの再生時(&V)" msgctxt "ID_VIEW_OPTIONS" msgid "&Options..." @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "シェーダ(&H)" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "音声(&A)" +msgid "&Audio Track" +msgstr "音声トラック(&A)" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "字幕(&B)" +msgid "Su&btitle Track" +msgstr "字幕トラック(&B)" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "ビデオ ストリーム(&V)" +msgid "&Video Track" +msgstr "映像トラック(&V)" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "再生終了後の動作(&T)" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "何もしない(&T)" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "フォルダ内を順次再生する(&N)" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "モニタの電源を切る(&M)" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "終了(&E)" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "ロック(&L)" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "モニタの電源を切る(&M)" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "フォルダ内を順次再生する(&N)" - msgctxt "POPUP" msgid "&Navigate" msgstr "操作(&N)" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ja.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ja.strings.po index efe2af28147..d0d85338bd3 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ja.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ja.strings.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # ever_green, 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2015-01-23 14:41+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-28 13:50+0000\n" "Last-Translator: ever_green\n" "Language-Team: Japanese (http://www.transifex.com/projects/p/mpc-hc/language/ja/)\n" "MIME-Version: 1.0\n" @@ -86,7 +86,7 @@ msgstr "同期オフセット" msgctxt "IDS_STATSBAR_SYNC_OFFSET_FORMAT" msgid "avg: %d ms, dev: %d ms" -msgstr "平均: %d ms, 偏差: %d ms" +msgstr "平均: %d ミリ秒, 偏差: %d ミリ秒" msgctxt "IDS_STATSBAR_JITTER" msgid "Jitter" @@ -178,7 +178,7 @@ msgstr "ニュース/時事" msgctxt "IDS_SPEED_UNIT_G" msgid "GB/s" -msgstr "GB/s" +msgstr "GB/秒" msgctxt "IDS_FILE_FAV_ADDED" msgid "File added to favorites" @@ -325,12 +325,12 @@ msgid "On/Off" msgstr "オン/オフ" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "fps から" +msgid "From FPS" +msgstr "FPS から" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "fps へ" +msgid "To FPS" +msgstr "FPS へ" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -621,7 +621,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "VMR-9 (レンダーレス) と同じですが、有効な 2 パス バイキュービック リサイザを使用します。" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "どんな動画のようなメディア タイプにも接続し、入力サンプルをどこにも出力しません。映像の表示が不要で、CPU に無駄な動作をさせたくない場合に使用してください。" msgctxt "IDC_DSNULL_UNCOMP" @@ -762,7 +762,7 @@ msgstr "字幕をダウンロード" msgctxt "IDS_SUBFILE_DELAY" msgid "Delay (ms):" -msgstr "遅延 (ms):" +msgstr "遅延 (ミリ秒):" msgctxt "IDS_SPEEDSTEP_AUTO" msgid "Auto" @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "ミュート" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "ミュート解除" @@ -898,11 +898,11 @@ msgstr "音声なし" msgctxt "ID_NAVIGATE_SKIPBACK" msgid "Skip back\nSkip back" -msgstr "前へ\n前へ" +msgstr "前に戻る\n前に戻る" msgctxt "ID_NAVIGATE_SKIPFORWARD" msgid "Skip forward\nSkip forward" -msgstr "次へ\n次へ" +msgstr "次に進む\n次に進む" msgctxt "IDS_SUBRESYNC_ORIGINAL" msgid "&Original" @@ -1246,7 +1246,7 @@ msgstr "再生速度" msgctxt "IDS_FILTERS_COPY_TO_CLIPBOARD" msgid "&Copy filters list to clipboard" -msgstr "フィルタ リストをクリップボードにコピー" +msgstr "フィルタ リストをクリップボードにコピー(&C)" msgctxt "IDS_CREDENTIALS_SERVER" msgid "Enter server credentials" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "縦横比 %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "ファイルへのログ記録を有効にします (再起動が必要)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "残り時間" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "高精細表示" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "再生終了後: 現在のファイルを巻き戻す" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "再生終了後: 閉じる" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "デバイスを開く" @@ -1421,11 +1441,11 @@ msgid "Stop" msgstr "停止" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "コマ送り" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "コマ戻し" msgctxt "IDS_AG_GO_TO" @@ -1525,12 +1545,12 @@ msgid "Thumbnails saved successfully" msgstr "サムネイルは正常に保存されました" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "ビデオ ストリーム(&V)" +msgid "&Video Track" +msgstr "映像トラック(&V)" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" -msgstr "ビデオ アングル(&L)" +msgstr "映像アングル(&L)" msgctxt "IDS_RESET_SETTINGS" msgid "Reset settings" @@ -1542,7 +1562,7 @@ msgstr "MPC-HC を既定の設定に復元してもよろしいですか?\n現 msgctxt "IDS_RESET_SETTINGS_MUTEX" msgid "Please close all instances of MPC-HC so that the default settings can be restored." -msgstr "既定の設定を復元する為に MPC-HC のすべてのインスタンスを閉じてください。" +msgstr "既定の設定を復元するために MPC-HC のすべてのインスタンスを閉じてください。" msgctxt "IDS_EXPORT_SETTINGS" msgid "Export settings" @@ -1574,11 +1594,11 @@ msgstr "再生速度 標準" msgctxt "IDS_MPLAYERC_21" msgid "Audio Delay +10 ms" -msgstr "音声の遅延 +10 ms" +msgstr "音声の遅延 +10 ミリ秒" msgctxt "IDS_MPLAYERC_22" msgid "Audio Delay -10 ms" -msgstr "音声の遅延 -10 ms" +msgstr "音声の遅延 -10 ミリ秒" msgctxt "IDS_MPLAYERC_23" msgid "Jump Forward (small)" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "字幕を右へ移動" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "レンダラ統計情報" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "先頭にジャンプ" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: ファイル名を表示" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: レンダラ統計情報を表示" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: レンダラ統計情報をリセット" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "字幕::その他" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "境界線を隠す(&B)" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "フレームのみ(&M)" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "タイトル バーとメニュー バーを表示(&W)" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "メニュー バーを隠す(&M)" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "高度な設定" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "最小表示" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "ボス キー" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "プレーヤー メニュー (簡約版)" +msgid "Player Menu" +msgstr "プレーヤー メニュー" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "プレーヤー メニュー (完全版)" +msgid "Player Menu (full)" +msgstr "プレーヤー メニュー (完全)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "字幕のオン/オフ (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "残り時間" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: 現在の再生時間を表示" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2134,7 +2186,7 @@ msgstr "このオプションはテアリングを除去するために設計さ msgctxt "IDS_MAINFRM_139" msgid "Sub delay: %ld ms" -msgstr "字幕の遅延: %ld ms" +msgstr "字幕の遅延: %ld ミリ秒" msgctxt "IDS_AG_TITLE2" msgid "Title: %02d/%02d" @@ -2274,7 +2326,7 @@ msgstr "縦横比: 標準" msgctxt "IDS_MAINFRM_70" msgid "Audio delay: %I64d ms" -msgstr "音声の遅延: %I64d ms" +msgstr "音声の遅延: %I64d ミリ秒" msgctxt "IDS_AG_CHAPTER" msgid "Chapter %d" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "メモリが不足しています" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "エラー: IE 用の Flash player が必要です" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "エラー: Internet Explorer 用の Adobe Flash Player が必要です" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2302,7 +2354,7 @@ msgstr "無効な引数です" msgctxt "IDS_MAINFRM_82" msgid "Opening aborted" -msgstr "ファイルを開きませんでした" +msgstr "開く処理を中止しました" msgctxt "IDS_MAINFRM_83" msgid "Failed to render the file" @@ -2354,10 +2406,10 @@ msgstr "一時停止" msgctxt "IDS_AG_TOGGLE_CAPTION" msgid "Toggle Caption&Menu" -msgstr "タイトルとメニューの表示" +msgstr "タイトル バーとメニュー バーの表示" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "シーク バーの表示" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2494,7 +2546,7 @@ msgstr "不明なファイル形式" msgctxt "IDS_MAINFRM_138" msgid "Sub shift: %ld ms" -msgstr "字幕の移動: %ld ms" +msgstr "字幕のシフト: %ld ミリ秒" msgctxt "IDS_VOLUME_BOOST_INC" msgid "Volume boost increase" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "音量のブースト 最大" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "使用方法: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\t最初のファイルかフォルダが読み込まれる (ワイルドカードの使用可, \"-\" が標準入力を表す)\n/dub \"dubname\"\t追加のオーディオ ファイルを読み込む\n/dubdelay \"file\"\t追加のオーディオ ファイルを XXms シフトして読み込む (ファイルが \"...DELAY XXms...\" を含む場合)\n/d3dfs\t\tDirect3D フルスクリーン モードで起動する\n/sub \"subname\"\t追加の字幕ファイルを読み込む\n/filter \"filtername\"\tDLL から DirectShow フィルタを読み込む (ワイルドカードの使用可)\n/dvd\t\tDVD モードで起動する, \"pathname\" は DVD フォルダを表す (省略可能)\n/dvdpos T#C\tタイトル T のチャプター C から再生を開始する\n/dvdpos T#hh:mm\tタイトル T の hh:mm:ss の位置から再生を開始する\n/cd\t\t音楽 CD または (S)VCD の全トラックを読み込む, \"pathname\" はドライブ パスを指定する (省略可能)\n/device\t\t既定のビデオ デバイスを開く\n/open\t\t自動で再生を開始せずにファイルを開く\n/play\t\tプレーヤーの起動と同時にファイルを再生する\n/close\t\t再生終了後にプレーヤーを終了する (/play の使用時のみ有効)\n/shutdown \t再生終了後に OS をシャットダウンする\n/standby\t\t再生終了後に OS をスタンバイ モードにする\n/hibernate\t\t再生終了後に OS を休止状態にする\n/logoff\t\t再生終了後にログオフする\n/lock\t\t再生終了後にワークステーションをロックする\n/monitoroff\t再生終了後にモニタの電源を切る\n/playnext\t\t再生終了後にフォルダ内の次のファイルを開く\n/fullscreen\t全画面表示モードで起動する\n/minimized\t最小化モードで起動する\n/new\t\t新しいプレーヤーを起動する\n/add\t\t\"pathname\" を再生リストに追加する, /open および /play と同時に使用できる\n/regvid\t\tビデオ ファイルを関連付ける\n/regaud\t\tオーディオ ファイルを関連付ける\n/regpl\t\t再生リスト ファイルを関連付ける\n/regall\t\tサポートされているすべてのファイルの種類を関連付ける\n/unregall\t\tすべてのファイルの関連付けを解除する\n/start ms\t\t\"ms\" (ミリ秒) の位置から再生を開始する\n/startpos hh:mm:ss\thh:mm:ss の位置から再生を開始する\n/fixedsize w,h\tウィンドウ サイズを固定する\n/monitor N\tN 番目 (N は 1 から始まる) のモニタで起動する\n/audiorenderer N\tN 番目 (N は 1 から始まる) のオーディオ レンダラを使用する\n\t\t(\"出力\" 設定を参照)\n/shaderpreset \"Pr\"\t\"Pr\" シェーダ プリセットを使用する\n/pns \"name\"\t使用するパン&スキャンのプリセット名を指定する\n/iconsassoc\tファイル形式のアイコンを再度関連付ける\n/nofocus\t\tバックグラウンドで MPC-HC を開く\n/webport N\t指定したポート上でウェブ インターフェイスを開始する\n/debug\t\tOSD でデバッグ情報を表示する\n/nominidump\tミニダンプの作成を無効にする\n/slave \"hWnd\"\tスレーブとして MPC-HC を使用する\n/reset\t\t既定の設定を復元する\n/help /h /?\tコマンド ライン スイッチのヘルプを表示する\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "使用方法: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\t最初のファイルかフォルダが読み込まれる (ワイルドカードの使用可, \"-\" が標準入力を表す)\n/dub \"dubname\"\t追加のオーディオ ファイルを読み込む\n/dubdelay \"file\"\t追加のオーディオ ファイルを XXms シフトして読み込む (ファイルが \"...DELAY XXms...\" を含む場合)\n/d3dfs\t\tDirect3D フルスクリーン モードで起動する\n/sub \"subname\"\t追加の字幕ファイルを読み込む\n/filter \"filtername\"\tDLL から DirectShow フィルタを読み込む (ワイルドカードの使用可)\n/dvd\t\tDVD モードで起動する, \"pathname\" は DVD フォルダを表す (省略可能)\n/dvdpos T#C\tタイトル T のチャプター C から再生を開始する\n/dvdpos T#hh:mm\tタイトル T の hh:mm:ss の位置から再生を開始する\n/cd\t\t音楽 CD または (S)VCD の全トラックを読み込む, \"pathname\" はドライブ パスを指定する (省略可能)\n/device\t\t既定のビデオ デバイスを開く\n/open\t\t自動で再生を開始せずにファイルを開く\n/play\t\tプレーヤーの起動と同時にファイルを再生する\n/close\t\t再生終了後にプレーヤーを終了する (/play の使用時のみ有効)\n/shutdown \t再生終了後に OS をシャットダウンする\n/standby\t\t再生終了後に OS をスタンバイ モードにする\n/hibernate\t\t再生終了後に OS を休止状態にする\n/logoff\t\t再生終了後にログオフする\n/lock\t\t再生終了後にワークステーションをロックする\n/monitoroff\t再生終了後にモニタの電源を切る\n/playnext\t\t再生終了後にフォルダ内の次のファイルを開く\n/fullscreen\t全画面表示モードで起動する\n/minimized\t最小化モードで起動する\n/new\t\t新しいプレーヤーを起動する\n/add\t\t\"pathname\" を再生リストに追加する, /open および /play と同時に使用できる\n/randomize\t再生リストをランダム化する\n/regvid\t\tビデオ ファイルに関連付ける\n/regaud\t\tオーディオ ファイルに関連付ける\n/regpl\t\t再生リスト ファイルに関連付ける\n/regall\t\tサポートされているすべてのファイルの種類に関連付ける\n/unregall\t\tすべてのファイルの関連付けを解除する\n/start ms\t\t\"ms\" (ミリ秒) の位置から再生を開始する\n/startpos hh:mm:ss\thh:mm:ss の位置から再生を開始する\n/fixedsize w,h\tウィンドウ サイズを固定する\n/monitor N\tN 番目 (N は 1 から始まる) のモニタで起動する\n/audiorenderer N\tN 番目 (N は 1 から始まる) のオーディオ レンダラを使用する\n\t\t(\"出力\" 設定を参照)\n/shaderpreset \"Pr\"\t\"Pr\" シェーダ プリセットを使用する\n/pns \"name\"\t使用するパン&スキャンのプリセット名を指定する\n/iconsassoc\tファイル形式のアイコンを再度関連付ける\n/nofocus\t\tバックグラウンドで MPC-HC を開く\n/webport N\t指定したポート上でウェブ インターフェイスを開始する\n/debug\t\tOSD でデバッグ情報を表示する\n/nocrashreporter\tクラッシュ レポートを無効にする\n/slave \"hWnd\"\tスレーブとして MPC-HC を使用する\n/reset\t\t既定の設定を復元する\n/help /h /?\tコマンド ライン スイッチのヘルプを表示する\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,41 +2748,13 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "トップ リア 右" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "レンダラ統計情報をリセット" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "字幕::その他" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "境界線を隠す(&B)" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "フレームのみ" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "タイトルとメニューを表示する(&W)" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "メニューを隠す(&M)" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "高度な設定" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" -msgstr "シークバーの上に表示" +msgid "Above seek bar" +msgstr "シーク バーより上に" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" -msgstr "シークバーの下に表示" +msgid "Below seek bar" +msgstr "シーク バーより下に" msgctxt "IDS_VIDEO_STREAM" msgid "Video: %s" @@ -2897,8 +2921,8 @@ msgid "Other Audio" msgstr "Other Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Playlist" @@ -3330,11 +3358,11 @@ msgstr "GB" msgctxt "IDS_SPEED_UNIT_K" msgid "KB/s" -msgstr "KB/s" +msgstr "KB/秒" msgctxt "IDS_SPEED_UNIT_M" msgid "MB/s" -msgstr "MB/s" +msgstr "MB/秒" msgctxt "IDS_BDA_ERROR_CREATE_TUNER" msgid "Could not create the tuner." @@ -3373,8 +3401,8 @@ msgid "Error parsing the entered frame rate!" msgstr "入力されたフレーム レートの解析中にエラーが発生しました!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." -msgstr "フレーム ステップできません。別のビデオ レンダラを試してください。" +msgid "Cannot frame-step, try a different video renderer." +msgstr "コマ送りできません。別のビデオ レンダラを試してください。" msgctxt "IDS_SCREENSHOT_ERROR_REAL" msgid "The \"Save Image\" and \"Save Thumbnails\" functions do not work with the default video renderer for RealMedia.\nSelect one of the DirectX renderers for RealMedia in MPC-HC's output options and reopen the file." @@ -3464,7 +3492,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "これらをテストする前に新しい設定を適用してください。" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "再生終了後: 終了" @@ -3494,7 +3522,7 @@ msgstr "再生終了後: モニタの電源を切る" msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" msgid "After Playback: Play next file in the folder" -msgstr "再生終了後: フォルダ内を順次再生する " +msgstr "再生終了後: フォルダ内を順次再生する" msgctxt "IDS_AFTERPLAYBACK_DONOTHING" msgid "After Playback: Do nothing" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ko.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ko.dialogs.po index cb97be7fab9..94683875629 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ko.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ko.dialogs.po @@ -2,13 +2,13 @@ # Copyright (C) 2002 - 2015 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Level ASMer , 2014 +# Level ASMer , 2014-2015 # limeburst , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-02 09:10+0000\n" +"PO-Revision-Date: 2015-01-30 04:00+0000\n" "Last-Translator: Level ASMer \n" "Language-Team: Korean (http://www.transifex.com/projects/p/mpc-hc/language/ko/)\n" "MIME-Version: 1.0\n" @@ -110,15 +110,15 @@ msgid "Enable custom channel mapping" msgstr "사용자정의 채널/스피커배치기능 사용" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "스피커 채널 설정 " +msgid "Speaker configuration for" +msgstr "스피커 채널 설정" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "입력 채널:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Shift키를 누른채로 설정을 변경시키면 즉시 설정이 반영됩니다." msgctxt "IDD_GOTO_DLG_CAPTION" @@ -139,7 +139,7 @@ msgstr "이동" msgctxt "IDD_GOTO_DLG_IDC_STATIC" msgid "Enter two numbers to jump to a specified frame, the first is the frame number, the second is the frame rate." -msgstr "프레임이나 프레임률을 입력하면 위치로 이동하여 재생할수 있습니다.\n예)12345, 20.25 -> 12345프레임 20.25fps" +msgstr "프레임이나 프레임률을 입력하면 위치로 이동하여 재생할수 있습니다.\n예)12345, 20.25 -> 12345프레임 20.25FPS" msgctxt "IDD_GOTO_DLG_IDC_STATIC" msgid "Frame" @@ -570,7 +570,7 @@ msgid "Warning" msgstr "경고" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "만약 비디오카드 설정으로 위치설정 및 전체화면 안티앨리어싱을 설정했다면 자막이 잘 표시되지 않을수도 있습니다." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows 7 작업표시줄기능 사용(작업표시줄에서 컨트롤가능)" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "시간 툴팁 사용:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -923,7 +923,7 @@ msgstr "인코딩:" msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_STATIC" msgid "Delay:" -msgstr "" +msgstr "딜레이:" msgctxt "IDD_SAVESUBTITLESFILEDIALOGTEMPL_IDC_STATIC" msgid "ms" @@ -1183,7 +1183,7 @@ msgstr "셰이더" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "Rotation" -msgstr "" +msgstr "회전" msgctxt "IDD_PPAGEOUTPUT_IDC_STATIC" msgid "* External filters (such as VSFilter) can display subtitles on all renderers." @@ -1278,7 +1278,7 @@ msgid "Enable automatic update check" msgstr "자동으로 업데이트 확인 활성화" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" +msgid "Check every:" msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" @@ -1443,7 +1443,7 @@ msgstr "한계:" msgctxt "IDD_PPAGESYNC_IDC_STATIC8" msgid "+/-" -msgstr "" +msgstr "+/-" msgctxt "IDD_PPAGESYNC_IDC_STATIC9" msgid "ms" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "확인" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ko.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ko.menus.po index 3db821391ca..059209e754e 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ko.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ko.menus.po @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "잔상 테스트 (&T)" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "디스플레이 상태(&D)" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "남은 시간" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "셰이더(&H)" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "오디오(&A)" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "자막(&B)" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "비디오 스트림(&T)" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "재생이 끝나면" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "폴더의 다음 파일을 재생" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "모니터를 끄기" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "파일 닫기 " @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "잠그기" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "모니터를 끄기" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "폴더의 다음 파일을 재생" - msgctxt "POPUP" msgid "&Navigate" msgstr "탐색(&N)" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ko.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ko.strings.po index 77901bb1e6c..9aceae15ae4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ko.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ko.strings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-22 03:50+0000\n" -"Last-Translator: Level ASMer \n" +"PO-Revision-Date: 2014-12-02 20:13+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Korean (http://www.transifex.com/projects/p/mpc-hc/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,11 +326,11 @@ msgid "On/Off" msgstr "켬/끔" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "모든 비디오형식의 샘플을 출력하지 않습니다. 비디오를 출력하지않으면서 CPU가 작동하도록 하려할때 사용합니다." msgctxt "IDC_DSNULL_UNCOMP" @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "음소거" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "음복원" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "장치 열기" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "정지" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "프레임 재생" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "프레임 재생" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "썸네일이 성공적으로 저장되었습니다." msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "비디오 스트림(&T)" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "자막 오른쪽으로" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "디스플레이 상태" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "처음으로 이동" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "자막::기타" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "외곽선 숨기기" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "창 프레임만" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "제목표시줄과 메뉴 보이기" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "메뉴 숨기기" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "고급" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "최소 보기" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Boss 키" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "플레이어 메뉴 (짧게)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "플레이어 메뉴 (길게)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "자막 표시/표시안함 (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "남은 시간" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,7 +2338,7 @@ msgid "Out of memory" msgstr "메모리 없음" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" msgstr "에러: IE를 위한 Flash 기능이 필요합니다." msgctxt "IDS_MAINFRM_78" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "제목표시줄&메뉴 토글" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "탐색바 토글" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "볼륨 부스트 최대" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "사용법: mpc-hc.exe \"경로이름\" [스위치]\n\n\"경로이름\"\t로드할 파일이나 디렉토리. (와일드카드\n\t\t사용가능, \"-\" denotes standard input)\n/dub \"더빙파일\"\t추가적인 오디오 파일\n/dubdelay \"파일\"\tXXms 딜레이된 추가적인 오디오 파일 (\n\t\t파일이 다음을 포함 \"...DELAY XXms...\")\n/d3dfs\t\tD3D 전체화면모드에서 렌더링\n/sub \"자막파일\"\t추가적인 자막파일\n/filter \"필터파일\"\tDLL파일에서 다이렉트쇼 필터를 로드함 (와일드카드사용가능)\n/dvd\t\tdvd재생모드, \"경로이름\" 을 지정했을 경우, DVD 폴더를 의마함 (옵션)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\t오디오CD 또는 (S)VCD의 모든 트랙을 로드함,\n\t\t\"경로이름\" 을 지정했을 경우 드라이브를 의미함 (옵션)\n/device\t\tOpen the default video device\n/open\t\t파일을 열고 재생을 시작하지는 않음\n/play\t\t파일을 열고 재생을 시작함\n/close\t\t재생이 끝나면 플레이어 종료 (/play 스위치를 같이 써야함)\n/shutdown\t재생이 끝나면 시스템 종료\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\t전체화면모드로 재생시작\n/minimized\t최소화모드로 재생시작\n/new\t\t플레이어 창을 하나 더 생성\n/add\t\t재생목록에 지정한 \"경로이름\"을 추가,\n\t\t/open 과 /play 스위치와 같이 사용가능\n/regvid\t\t비디오 파일 확장명을 MPC-HC로 연결\n/regaud\t\t오디오 파일 확장명을 MPC-HC로 연결\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tMPC-HC로 연결했던 확장명 해제\n/start ms\t\t지정한 \"ms\" (= 밀리초)위치에서 재생시작\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\t지정한 가로(w), 세로(h) 크기로 고정\n/monitor N\tN번 모니터에서 시작(N은 1이상이어야함)\n/audiorenderer N\t오디오렌더러 N 번(1부터 시작)을 사용해서 시작\n\t\t(\"출력\" 설정을 참고하세요)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\t명령입력 스위치 옵션을 출력\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "사용법: mpc-hc.exe \"경로이름\" [스위치]\n\n\"경로이름\"\t로드할 파일이나 디렉토리. (와일드카드\n\t\t사용가능, \"-\" denotes standard input)\n/dub \"더빙파일\"\t추가적인 오디오 파일\n/dubdelay \"파일\"\tXXms 딜레이된 추가적인 오디오 파일 (\n\t\t파일이 다음을 포함 \"...DELAY XXms...\")\n/d3dfs\t\tD3D 전체화면모드에서 렌더링\n/sub \"자막파일\"\t추가적인 자막파일\n/filter \"필터파일\"\tDLL파일에서 다이렉트쇼 필터를 로드함 (와일드카드사용가능)\n/dvd\t\tdvd재생모드, \"경로이름\" 을 지정했을 경우, DVD 폴더를 의마함 (옵션)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\t오디오CD 또는 (S)VCD의 모든 트랙을 로드함,\n\t\t\"경로이름\" 을 지정했을 경우 드라이브를 의미함 (옵션)\n/device\t\tOpen the default video device\n/open\t\t파일을 열고 재생을 시작하지는 않음\n/play\t\t파일을 열고 재생을 시작함\n/close\t\t재생이 끝나면 플레이어 종료 (/play 스위치를 같이 써야함)\n/shutdown\t재생이 끝나면 시스템 종료\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\t전체화면모드로 재생시작\n/minimized\t최소화모드로 재생시작\n/new\t\t플레이어 창을 하나 더 생성\n/add\t\t재생목록에 지정한 \"경로이름\"을 추가,\n\t\t/open 과 /play 스위치와 같이 사용가능\n/randomize\tRandomize the playlist\n/regvid\t\t비디오 파일 확장명을 MPC-HC로 연결\n/regaud\t\t오디오 파일 확장명을 MPC-HC로 연결\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tMPC-HC로 연결했던 확장명 해제\n/start ms\t\t지정한 \"ms\" (= 밀리초)위치에서 재생시작\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\t지정한 가로(w), 세로(h) 크기로 고정\n/monitor N\tN번 모니터에서 시작(N은 1이상이어야함)\n/audiorenderer N\t오디오렌더러 N 번(1부터 시작)을 사용해서 시작\n\t\t(\"출력\" 설정을 참고하세요)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\t명령입력 스위치 옵션을 출력\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "위쪽 후면 우측" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "자막::기타" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "외곽선 숨기기" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "창 프레임만" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "제목표시줄과 메뉴 보이기" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "메뉴 숨기기" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "고급" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "탐색바 위에" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "탐색바 아래에" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "기타 오디오" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "재생 목록" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "프레임 레이트를 파싱하는데에 오류가 발생했습니다!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "프레임 단위 이동에 문제가 있으면, 다른 비디오 렌더러를 사용해보세요." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "설정들을 테스트해보려면 설정들을 적용시켜야 합니다." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "재생이 끝나면: 종료" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.menus.pot b/src/mpc-hc/mpcresources/PO/mpc-hc.menus.pot index 7ec9519e7e4..fdeb4f7ef22 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.menus.pot +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.menus.pot @@ -1,10 +1,10 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" +"POT-Creation-Date: 2015-05-30 00:33:30+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -193,12 +193,16 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" msgstr "" msgctxt "POPUP" @@ -550,15 +554,15 @@ msgid "S&haders" msgstr "" msgctxt "ID_AUDIOS" -msgid "&Audio" +msgid "&Audio Track" msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" +msgid "Su&btitle Track" msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" +msgid "&Video Track" msgstr "" msgctxt "POPUP" @@ -581,7 +585,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "" @@ -605,14 +621,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.dialogs.po index b809043a79a..dfdf6f0614b 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# abuyop , 2014 +# abuyop , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-18 18:40+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-27 03:10+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/mpc-hc/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -109,7 +109,7 @@ msgid "Enable custom channel mapping" msgstr "Benarkan pemetaan saluran suai" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Konfigurasi pembesar suara untuk" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -117,7 +117,7 @@ msgid "input channels:" msgstr "saluran input:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Tahan shift untuk perubahan serta-merta bila mengklik sesuatu" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -569,8 +569,8 @@ msgid "Warning" msgstr "Amaran" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "Jika anda batal dan benarkan anti-alias skrin penuh pada tetapan kad video anda, sarikata tidak akan kelihatan lebih baik tetapi ia pasti banyak gunakan cpu anda." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Jika anda batal dan benarkan anti-alias skrin penuh pada tetapan kad video anda, sarikata tidak akan kelihatan lebih baik tetapi ia pasti banyak gunakan CPU anda." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -681,11 +681,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Guna fitur Palang Tugas Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Buka fail berikutnya/terdahulu dalam folder \"Langkau undur/maju\" bila hanya ada satu item dalam senarai main" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Guna tip alat masa:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Benarkan semak kemaskini berautomatik" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Lengah diantara setiap semakan:" +msgid "Check every:" +msgstr "Periksa setiap:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Pelapor kerosakan" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Mohon maaf, kelihatan MPC-HC mengalami kerosakan. :(\n\nUntuk membantu kami membuat diagnosis dan membaiki masalah, satu laporan pepijat akan dihantar. Anda boleh masukkan maklumat tambahan jika mahu." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Emel:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Alamat emel anda adalah pilihan dan akan hanya digunakan jika pembangun mahu menghubungi anda untuk maklumat lanjut." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Keterangan masalah (guna bahasa Inggeris sahaja):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.menus.po index 8988f04c7f4..37498c43cd7 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# abuyop , 2014 +# abuyop , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-29 05:40+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 03:10+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/mpc-hc/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Ujian &Koyakan" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "Stat Papa&ran" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Papar Statistik" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Ma&sa Berbaki" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Papar &Waktu Semasa" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Tunjuk Nama &Fail" msgctxt "POPUP" msgid "&Output Range" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "Pe&lorek" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "Trek &Audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Sa&rikata" +msgid "Su&btitle Track" +msgstr "Trek Sa&rikata" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Strim &Video" +msgid "&Video Track" +msgstr "Trek &Video" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Se&lepas Main Balik" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "&Jangan buat apa-apa" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Main fail &berikutnya di dalam folder" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Matikan &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Keluar" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Kun&ci" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Matikan &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Main fail &berikutnya di dalam folder" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigasi" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.strings.po index 7b522fdb3a9..286066f3e49 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.strings.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# abuyop , 2014 +# abuyop , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-18 18:40+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 03:20+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/mpc-hc/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -325,12 +325,12 @@ msgid "On/Off" msgstr "Hidup/Mati" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Dari fps" +msgid "From FPS" +msgstr "Dari FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Ke fps" +msgid "To FPS" +msgstr "Ke FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -621,8 +621,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Sama seperti VMR-9 (tak diterap), tetapi gunakan pensaiz-semula dwi-kiub dua laluan yang sebenar." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Sambung ke mana-mana jenis media seakan-video dan akan menghantar sampel masuk ke mana-mana tempat. Guna ia bila anda tidak perlu paparan video dan mahu jimatkan cpu dari penggunaan tidak perlu." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Sambung ke mana-mana jenis media seakan-video dan akan menghantar sampel masuk ke mana-mana tempat. Guna ia bila anda tidak perlu paparan video dan mahu jimatkan CPU dari penggunaan tidak perlu." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -888,7 +888,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Senyap" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Suarakan" @@ -1372,6 +1372,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Benarkan mengelog ke fail (perlu mulakan semula)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Masa berbaki" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Kejituan tinggi" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Selepas Main Balik: Mandri fail semasa" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Selepas Main Balik: Tutup" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Buka Peranti" @@ -1421,11 +1441,11 @@ msgid "Stop" msgstr "Henti" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Langkah Bingkai" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Langkah bingkai undur" msgctxt "IDS_AG_GO_TO" @@ -1525,8 +1545,8 @@ msgid "Thumbnails saved successfully" msgstr "Lakaran kenit berjaya disimpan" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Strim &Video" +msgid "&Video Track" +msgstr "Trek &Video" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1648,14 +1668,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Anjak Sarikata ke Kanan" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Papar Stat" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Lompat ke Permulaan" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Tunjuk Nama Fail" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Papar Statistik Penerap" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Tetap Semula Statistik Penerap" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Sarikata::Pelbagai" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Sembunyi s&empadan" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Bingkai Sahaja" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "T&unjuk Menu&&Kapsyen" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Sembunyi &Menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Lanjutan" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Paparan Minimum" @@ -1889,12 +1941,12 @@ msgid "Boss key" msgstr "Kekunci Boss" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menu Pemain (pendek)" +msgid "Player Menu" +msgstr "Menu Pemain" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menu Pemain (panjang)" +msgid "Player Menu (full)" +msgstr "Menu Pemain (penuh)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2024,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Sarikata Hidup/Mati (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Masa Berbaki" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Papar Waktu Semasa" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2337,8 @@ msgid "Out of memory" msgstr "Kehabisan ingatan" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Ralat: Pemain Flash untuk IE diperlukan" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Ralat: Pemain Flash untuk Internet Explorer diperlukan" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,7 +2409,7 @@ msgid "Toggle Caption&Menu" msgstr "Togol Menu&Kapsyen" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Togol Penjangkau" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2513,8 +2565,8 @@ msgid "Volume boost Max" msgstr "Galak volum Maks" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Penggunaan: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tFail atau direktori utama akan dimuatkan (kad liar\n\t\tdibenarkan, \"-\" melibatkan input piawai)\n/dub \"dubname\"\tMuat satu fail audio tambahan\n/dubdelay \"file\"\tMuat fail audio tambahan yang dianjak denga XXms (jika\n\t\tfail mengandungi \"...DELAY XXms...\")\n/d3dfs\t\tMula menerap dalam mod skrin penuh D3D\n/sub \"subname\"\tMuat fail sarikata tambahan\n/filter \"filtername\"\tMuat penapis DirectShow dari pustaka pautan dinamik\n\t\t(kad liar dibenarkan)\n/dvd\t\tJalan dalam mod dvd, \"pathname\" bermaksud folder dvd\n\t\t(pilihan)\n/dvdpos T#C\tMula main balik pada tajuk T, bab C\n/dvdpos T#hh:mm\tMula main balik pada tajuk T, kedudukan hh:mm:ss\n/cd\t\tMuat semua trek cd audio atau (s)vcd,\n\t\t\"pathname\" bermaksud laluan pemacu (pilihan)\n/device\t\tBuka peranti video lalai\n/open\t\tBuka fail, jangan mula main balik secara automatik\n/play\t\tMula memainkan fail sebaik sahaja pemain\n\t\tdilancarkan\n/close\t\tTutup pemain selepas main balik (hanya berfungsi\n\t\tbila digunakan dengan /play)\n/shutdown\tMatikan sistem pengoperasian selepas main balik\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tMula dalam mod skrin-penuh\n/minimized\tMula dalam mod diminimumkan\n/new\t\tGuna kejadian baharu pemain\n/add\t\tTambah \"pathname\" ke senarai main, boleh digabung\n\t\tdengan /open dan /play\n/regvid\t\tCipta perkaitan fail untuk fail video\n/regaud\t\tCipta perkaitan fail untuk fail audio\n/regpl\t\tCipta perkaitan fail untuk fail senarai main\n/regall\t\tCipta perkaitan fail untuk semua jenis fail disokong\n/unregall\t\tBuang semua perkaitan fail\n/start ms\t\tMula bermain pada \"ms\" (= milisaat)\n/startpos hh:mm:ss\tMula bermain pada kedudukan hh:mm:ss\n/fixedsize w,h\tTetakan saiz tetingkap tetap\n/monitor N\tMula pemain pada monitor N, dimana N bermula dari 1\n/audiorenderer N\tMula menggunakan penerap audio N, dimana N bermula dari 1\n\t\t(rujuk tetapan \"Output\")\n/shaderpreset \"Pr\"\tMula menggunakan praset pelorek \"Pr\"\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPulih tetapan lalai\n/help /h /?\tTunjuk bantuan mengenai suis baris perintah\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Penggunaan: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tFail atau direktori utama akan dimuatkan (kad liar\n\t\tdibenarkan, \"-\" melibatkan input piawai)\n/dub \"dubname\"\tMuat satu fail audio tambahan\n/dubdelay \"file\"\tMuat fail audio tambahan yang dianjak denga XXms (jika\n\t\tfail mengandungi \"...DELAY XXms...\")\n/d3dfs\t\tMula menerap dalam mod skrin penuh D3D\n/sub \"subname\"\tMuat fail sarikata tambahan\n/filter \"filtername\"\tMuat penapis DirectShow dari pustaka pautan dinamik\n\t\t(kad liar dibenarkan)\n/dvd\t\tJalan dalam mod dvd, \"pathname\" bermaksud folder dvd\n\t\t(pilihan)\n/dvdpos T#C\tMula main balik pada tajuk T, bab C\n/dvdpos T#hh:mm\tMula main balik pada tajuk T, kedudukan hh:mm:ss\n/cd\t\tMuat semua trek cd audio atau (s)vcd,\n\t\t\"pathname\" bermaksud laluan pemacu (pilihan)\n/device\t\tBuka peranti video lalai\n/open\t\tBuka fail, jangan mula main balik secara automatik\n/play\t\tMula memainkan fail sebaik sahaja pemain\n\t\tdilancarkan\n/close\t\tTutup pemain selepas main balik (hanya berfungsi\n\t\tbila digunakan dengan /play)\n/shutdown\tMatikan sistem pengoperasian selepas main balik\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tMula dalam mod skrin-penuh\n/minimized\tMula dalam mod diminimumkan\n/new\t\tGuna kejadian baharu pemain\n/add\t\tTambah \"pathname\" ke senarai main, boleh digabung\n\t\tdengan /open dan /play\n/randomize\tRandomize the playlist\n/regvid\t\tCipta perkaitan fail untuk fail video\n/regaud\t\tCipta perkaitan fail untuk fail audio\n/regpl\t\tCipta perkaitan fail untuk fail senarai main\n/regall\t\tCipta perkaitan fail untuk semua jenis fail disokong\n/unregall\t\tBuang semua perkaitan fail\n/start ms\t\tMula bermain pada \"ms\" (= milisaat)\n/startpos hh:mm:ss\tMula bermain pada kedudukan hh:mm:ss\n/fixedsize w,h\tTetakan saiz tetingkap tetap\n/monitor N\tMula pemain pada monitor N, dimana N bermula dari 1\n/audiorenderer N\tMula menggunakan penerap audio N, dimana N bermula dari 1\n\t\t(rujuk tetapan \"Output\")\n/shaderpreset \"Pr\"\tMula menggunakan praset pelorek \"Pr\"\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPulih tetapan lalai\n/help /h /?\tTunjuk bantuan mengenai suis baris perintah\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,40 +2748,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Kanan Belakang Atas" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Tetap Semula Stat Paparan" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Sarikata::Pelbagai" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Sembunyi s&empadan" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Bingkai Sahaja" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "T&unjuk Menu&&Kapsyen" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Sembunyi &Menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Lanjutan" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Atas palang jangkau" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Bawah palang jangkau" msgctxt "IDS_VIDEO_STREAM" @@ -2897,8 +2921,8 @@ msgid "Other Audio" msgstr "Audio Lain" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2932,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Tak Hilang Apple" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Audio Media Windows" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Kodeks Audio Opus" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3016,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "Audio True" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Audio Media Windows" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Kodeks Audio Opus" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Senarai Main" @@ -3373,7 +3401,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Ralat menghurai kadar bingkai dimasuki!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Tidak dapat langkah bingkai, cuba penerap video yang lain." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,7 +3492,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Anda perlu laksanakan tetapan baharu sebelum mengunjinya." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Selepas Main Balik: Keluar" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.nl.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.nl.dialogs.po index 4a2475e227c..a7ee1e96580 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.nl.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.nl.dialogs.po @@ -1,17 +1,17 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Dennis Gerritsen , 2014 -# Devrim Yolo , 2013-2014 +# Devrim, 2013-2015 # DennisW, 2014 # rjongejan , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2015-01-12 18:41+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-04-13 17:13+0000\n" +"Last-Translator: Devrim\n" "Language-Team: Dutch (http://www.transifex.com/projects/p/mpc-hc/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -112,16 +112,16 @@ msgid "Enable custom channel mapping" msgstr "Door gebruiker bepaalde kanaal-setup toepassen" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Luidspreker-configuratie voor " +msgid "Speaker configuration for" +msgstr "Luidspreker-configuratie voor" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "ingangskanalen:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Druk op shift tijdens het klikken om de veranderingen direkt door te voeren " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Druk op shift tijdens het klikken om de veranderingen direkt door te voeren" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -572,7 +572,7 @@ msgid "Warning" msgstr "Waaschuwing" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Als u de ondertitelingspositie aanpast en ergens in de instellingen van uw grafische kaart full-screen antialiasing aanzet, zal de ondertiteling er niet beter uitzien, maar de CPU wordt wel zwaar belast." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -673,7 +673,7 @@ msgstr "Geef hoofdstukmarkeringen in zoekbalk weer" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK4" msgid "Display \"Now Playing\" information in Skype's mood message" -msgstr "Laat \"Nu Afpselen\" informatie zien in Skype's stemmingsbericht" +msgstr "Laat \"Nu AFPSelen\" informatie zien in Skype's stemmingsbericht" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK6" msgid "Prevent minimizing the player when in fullscreen on a non default monitor" @@ -684,11 +684,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Gebruik mogelijkheden van Windows 7 Taakbalk " msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Open het volgende/vorige bestand in de bestandsmap op \"Volgende/Vorige\" wanneer er maar een bestand in de afspeellijst staat" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Gebruik tijd tooltip:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1280,8 +1280,8 @@ msgid "Enable automatic update check" msgstr "Automatisch op updates controleren" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Wachttijd tussen elke controle:" +msgid "Check every:" +msgstr "Controleer elke:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1667,3 +1667,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.nl.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.nl.menus.po index 2cd9a084370..2ac8532d615 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.nl.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.nl.menus.po @@ -1,18 +1,18 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Dennis Gerritsen , 2014 -# Devrim Yolo , 2013-2014 +# Devrim, 2013-2015 # DennisW, 2014 # kasper93, 2013 # rjongejan , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-31 08:50+0000\n" -"Last-Translator: DennisW\n" +"POT-Creation-Date: 2015-04-06 16:31:55+0000\n" +"PO-Revision-Date: 2015-04-13 17:22+0000\n" +"Last-Translator: Devrim\n" "Language-Team: Dutch (http://www.transifex.com/projects/p/mpc-hc/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -200,13 +200,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Tearing Test" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Beeld Statistieken" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Resterende T&ijd" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -557,16 +561,16 @@ msgid "S&haders" msgstr "Pixel S&hader" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "&Geluidsspoor" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" +msgid "Su&btitle Track" msgstr "&Ondertiteling" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Video S&tream" +msgid "&Video Track" +msgstr "&Videospoor" msgctxt "POPUP" msgid "&Volume" @@ -588,7 +592,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "&Na weergave" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Speel &volgend bestand af in map" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Schakel de &monitor uit" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Afsluiten" @@ -612,14 +628,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Lock" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Schakel de &monitor uit" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Speel &volgend bestand af in map" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigatie" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.nl.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.nl.strings.po index a01d2eb754e..c1a588eae30 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.nl.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.nl.strings.po @@ -1,18 +1,21 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: +# B512, 2015 # Dennis Gerritsen , 2014 # dragnadh , 2015 # DennisW, 2014 +# B512, 2015 +# Peter Pul, 2015 # rjongejan , 2014 # Tom , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2015-01-22 17:01+0000\n" -"Last-Translator: dragnadh \n" +"POT-Creation-Date: 2015-04-09 21:29:25+0000\n" +"PO-Revision-Date: 2015-04-14 08:02+0000\n" +"Last-Translator: Peter Pul\n" "Language-Team: Dutch (http://www.transifex.com/projects/p/mpc-hc/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +25,7 @@ msgstr "" msgctxt "IDS_INFOBAR_LOCATION" msgid "Location" -msgstr "Lokatie" +msgstr "Locatie" msgctxt "IDS_INFOBAR_VIDEO" msgid "Video" @@ -329,12 +332,12 @@ msgid "On/Off" msgstr "Aan/Uit" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Van fps" +msgid "From FPS" +msgstr "Van FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Tot fps" +msgid "To FPS" +msgstr "Tot FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -625,7 +628,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Verbind met elk video-achtig media type en zal de inkomende signalen in het, grote dan wel kleine, niets zenden. Gebruik dit als geen uitgangssignaal nodig is en de om de CPU te ontlasten." msgctxt "IDC_DSNULL_UNCOMP" @@ -892,7 +895,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Dempen" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Dempen opheffen" @@ -1030,7 +1033,7 @@ msgstr "PnS draaien Z-" msgctxt "IDS_AG_TEARING_TEST" msgid "Tearing Test" -msgstr "" +msgstr "Tearing Test" msgctxt "IDS_SCALE_16_9" msgid "Scale to 16:9 TV,%.3f,%.3f,%.3f,%.3f" @@ -1306,7 +1309,7 @@ msgstr "Speel volgend bestand af" msgctxt "IDS_AFTER_PLAYBACK_REWIND" msgid "Rewind current file" -msgstr "" +msgstr "Huidig bestand terugspoelen" msgctxt "IDS_AFTER_PLAYBACK_CLOSE" msgid "Close" @@ -1338,7 +1341,7 @@ msgstr "" msgctxt "IDS_HOTKEY_NOT_DEFINED" msgid "" -msgstr "" +msgstr "" msgctxt "IDS_NAVIGATION_WATCH" msgid "Watch" @@ -1362,7 +1365,7 @@ msgstr "Verwijder alles" msgctxt "IDS_REMOVE_CHANNELS_QUESTION" msgid "Are you sure you want to remove all channels from the list?" -msgstr "" +msgstr "Weet u zeker dat u alle kanalen van de lijst wilt verwijderen?" msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" msgid "No information available" @@ -1376,6 +1379,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Apparaat openen" @@ -1425,11 +1448,11 @@ msgid "Stop" msgstr "Stoppen" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Frame vooruit" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Frame terug" msgctxt "IDS_AG_GO_TO" @@ -1506,11 +1529,11 @@ msgstr "" msgctxt "IDS_OSD_RS_FT_CORRECTION_ON" msgid "Frame Time Correction: On" -msgstr "" +msgstr "Frame tijdcorrectie: Aan" msgctxt "IDS_OSD_RS_FT_CORRECTION_OFF" msgid "Frame Time Correction: Off" -msgstr "" +msgstr "Frame tijdcorrectie: Uit" msgctxt "IDS_OSD_RS_TARGET_VSYNC_OFFSET" msgid "Target VSync Offset: %.1f" @@ -1529,8 +1552,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniatuurweergaven succesvol opgeslagen" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Video S&tream" +msgid "&Video Track" +msgstr "&Videospoor" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1558,7 +1581,7 @@ msgstr "" msgctxt "IDS_EXPORT_SETTINGS_SUCCESS" msgid "The settings have been successfully exported." -msgstr "" +msgstr "De instellingen zijn succesvol geëxporteerd." msgctxt "IDS_EXPORT_SETTINGS_FAILED" msgid "The export failed! This can happen when you don't have the correct rights." @@ -1652,14 +1675,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Ondertiteling naar rechts" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Statistieken tonen" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Spring naar Begin" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Ondertiteling::Misc" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Hide borders" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Show Caption&&Menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Verberg menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Geavanceerd" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Minimaal Beeld" @@ -1893,12 +1948,12 @@ msgid "Boss key" msgstr "Boss toets" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Weergave Menu (kort)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Weergave Menu (lang)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1926,7 +1981,7 @@ msgstr "Vorige Ondertiteling" msgctxt "IDS_MPLAYERC_85" msgid "On/Off Subtitle" -msgstr "Aan/Uit Ondertiteling" +msgstr "Ondertiteling Aan/Uit" msgctxt "IDS_MPLAYERC_86" msgid "Reload Subtitles" @@ -1976,9 +2031,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "On/Off Ondertiteling (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Resterende Tijd" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2070,7 +2125,7 @@ msgstr "Camerahoek: %02lu/%02lu, %lux%lu %luHz %lu:%lu" msgctxt "IDS_MAINFRM_11" msgid "%s, %s %u Hz %d bits %d %s" -msgstr "" +msgstr "%s, %s %u Hz %d bits %d %s" msgctxt "IDS_ADD_TO_PLAYLIST" msgid "Add to MPC-HC Playlist" @@ -2086,7 +2141,7 @@ msgstr "MPC-HC heeft niet genoeg rechten om bestand associaties te veranderen. K msgctxt "IDS_APP_DESCRIPTION" msgid "MPC-HC is an extremely light-weight, open source media player for Windows. It supports all common video and audio file formats available for playback. We are 100% spyware free, there are no advertisements or toolbars." -msgstr "" +msgstr "MPC-HC is een extreem lichtgewicht, open source media speler voor Windows. Het ondersteunt alle bekende, speelbare video en audio bestandsformaten. Wij zijn 100% spyware vrij, er zijn geen advertenties of werkbalken." msgctxt "IDS_MAINFRM_12" msgid "channel" @@ -2289,8 +2344,8 @@ msgid "Out of memory" msgstr "Te weinig geheugen" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Fout: Flash voor IE vereist" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Fout: Flash voor Internet Explorer vereist" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2361,7 +2416,7 @@ msgid "Toggle Caption&Menu" msgstr "Titel&Menu aan/uit" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Zoeken aan/uit" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2517,8 +2572,8 @@ msgid "Volume boost Max" msgstr "" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Gebruik: mpc-hc.exe \"padnaam\" [parameters]\n\n\"padnaam\"\tHet te laden bestand of map (wildcards\n\t\ttoegestaan, \"-\" denotes standard input)\n/dub \"dubnaam\"\tLaad nog een geluidsbestand\n/dubdelay \"best\"\tLaad nog een geluidsbestand met een\n\t\tverschuiving van XXms\n\t\t (als bestand \"..vertraging XXms..\" heeft)\n/d3dfs\t\tStart renderen in D3D Volledig Scherm modus\n/sub \"ondertitel\"\tLaad nog een ondertitelingsbestand\n/filter \"filternaam\"\tLaad DirectShow filters van een DLL\n\t\t(wildcards toegestaan)\n/dvd\t\tStart in DVD-modus, \"padnaam\" betekent de DVD\n\t\tmap (hoeft niet)\n/dvdpos T#H\tStart afspelen bij titel T, hoofdstuk H\n/dvdpos T#uu:mm\tStart afspelen bij titel T, positie uu:mm:ss\n/cd\t\tLaad alle nummers van een audio cd of (s)vcd\n\t\t\"padnaam\" betekent het stationspad (hoeft niet)\n/device\t\tOpen the default video device\n/open\t\tOpen het bestand zonder automatisch af te spelen\n/play\t\tDirect afspelen, wanneer de speler wordt geopend\n/close\t\tSluit de speler af na afspelen (werkt alleen samen \n\t\tmet /play)\n/shutdown\tWindows afsluiten na afspelen\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in Volldig Scherm modus\n/minimized\tStart geminimaliseerd\n/new\t\tEen nieuwe speler openen\n/add\t\tVoegt \"padnaam\" aan de afspeellijst toe\n\t\tKan gecombineerd worden met /open en /play\n/regvid\t\tMaak bestandskoppelingen voor videobestanden\n/regaud\t\tMaak bestandskoppelingen voor\n\t\tgeluidsbestanden\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tVerwijder alle bestandskoppelingen\n/start ms\t\tStart afspelen op \"ms\" (= milliseconden)\n/startpos uu:mm:ss\tStart afspelen op positie uu:mm:ss\n/fixedsize B,H\tZet venstergrootte op BxH\n/monitor N\tStart op schermmonitor N (N start bij 1)\n/audiorenderer N\tStart met audiorenderer N (N start bij 1)\n\t\t(zie \"Uitgangs\" instellingen)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tToon help over opdrachtprompt parameters\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Gebruik: mpc-hc.exe \"padnaam\" [parameters]\n\n\"padnaam\"\tHet te laden bestand of map (wildcards\n\t\ttoegestaan, \"-\" denotes standard input)\n/dub \"dubnaam\"\tLaad nog een geluidsbestand\n/dubdelay \"best\"\tLaad nog een geluidsbestand met een\n\t\tverschuiving van XXms\n\t\t (als bestand \"..vertraging XXms..\" heeft)\n/d3dfs\t\tStart renderen in D3D Volledig Scherm modus\n/sub \"ondertitel\"\tLaad nog een ondertitelingsbestand\n/filter \"filternaam\"\tLaad DirectShow filters van een DLL\n\t\t(wildcards toegestaan)\n/dvd\t\tStart in DVD-modus, \"padnaam\" betekent de DVD\n\t\tmap (hoeft niet)\n/dvdpos T#H\tStart afspelen bij titel T, hoofdstuk H\n/dvdpos T#uu:mm\tStart afspelen bij titel T, positie uu:mm:ss\n/cd\t\tLaad alle nummers van een audio cd of (s)vcd\n\t\t\"padnaam\" betekent het stationspad (hoeft niet)\n/device\t\tOpen the default video device\n/open\t\tOpen het bestand zonder automatisch af te spelen\n/play\t\tDirect afspelen, wanneer de speler wordt geopend\n/close\t\tSluit de speler af na afspelen (werkt alleen samen \n\t\tmet /play)\n/shutdown\tWindows afsluiten na afspelen\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in Volldig Scherm modus\n/minimized\tStart geminimaliseerd\n/new\t\tEen nieuwe speler openen\n/add\t\tVoegt \"padnaam\" aan de afspeellijst toe\n\t\tKan gecombineerd worden met /open en /play\n/randomize\tRandomize the playlist\n/regvid\t\tMaak bestandskoppelingen voor videobestanden\n/regaud\t\tMaak bestandskoppelingen voor\n\t\tgeluidsbestanden\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tVerwijder alle bestandskoppelingen\n/start ms\t\tStart afspelen op \"ms\" (= milliseconden)\n/startpos uu:mm:ss\tStart afspelen op positie uu:mm:ss\n/fixedsize B,H\tZet venstergrootte op BxH\n/monitor N\tStart op schermmonitor N (N start bij 1)\n/audiorenderer N\tStart met audiorenderer N (N start bij 1)\n\t\t(zie \"Uitgangs\" instellingen)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tToon help over opdrachtprompt parameters\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2700,40 +2755,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Top Back Rechts" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Ondertiteling::Misc" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Hide borders" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Show Caption&&Menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Verberg menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Geavanceerd" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Boven zoekbalk" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Onder zoekbalk" msgctxt "IDS_VIDEO_STREAM" @@ -2901,8 +2928,8 @@ msgid "Other Audio" msgstr "Ander audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2912,6 +2939,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2976,22 +3023,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Afspeellijst" @@ -3046,19 +3077,19 @@ msgstr "Accurate VSync: Uit" msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_ON" msgid "Synchronize Video to Display: On" -msgstr "" +msgstr "Synchroniseer Video met Scherm: Aan" msgctxt "IDS_OSD_RS_SYNC_TO_DISPLAY_OFF" msgid "Synchronize Video to Display: Off" -msgstr "" +msgstr "Synchroniseer Video met Scherm: Uit" msgctxt "IDS_OSD_RS_SYNC_TO_VIDEO_ON" msgid "Synchronize Display to Video: On" -msgstr "" +msgstr "Synchroniseer Scherm met Video: Aan" msgctxt "IDS_OSD_RS_SYNC_TO_VIDEO_OFF" msgid "Synchronize Display to Video: Off" -msgstr "" +msgstr "Synchroniseer Scherm met Video: Uit" msgctxt "IDS_OSD_RS_PRESENT_NEAREST_ON" msgid "Present at Nearest VSync: On" @@ -3122,7 +3153,7 @@ msgstr "" msgctxt "IDS_OSD_RS_OUTPUT_RANGE" msgid "Output Range: %s" -msgstr "" +msgstr "Uitvoer Bereik: %s" msgctxt "IDS_OSD_RS_FLUSH_BEF_VSYNC_ON" msgid "Flush GPU before VSync: On" @@ -3174,11 +3205,11 @@ msgstr "Alternatieve VSync: Uit" msgctxt "IDS_OSD_RS_RESET_DEFAULT" msgid "Renderer settings reset to default" -msgstr "" +msgstr "Reset renderer naar standaard instellingen" msgctxt "IDS_OSD_RS_RESET_OPTIMAL" msgid "Renderer settings reset to optimal" -msgstr "" +msgstr "Reset renderer naar optimale instellingen" msgctxt "IDS_OSD_RS_D3D_FS_GUI_SUPP_ON" msgid "D3D Fullscreen GUI Support: On" @@ -3190,19 +3221,19 @@ msgstr "" msgctxt "IDS_OSD_RS_10BIT_RBG_OUT_ON" msgid "10-bit RGB Output: On" -msgstr "" +msgstr "10-bit RGB Uitvoer: Aan" msgctxt "IDS_OSD_RS_10BIT_RBG_OUT_OFF" msgid "10-bit RGB Output: Off" -msgstr "" +msgstr "10-bit RGB Uitvoer: Uit" msgctxt "IDS_OSD_RS_10BIT_RBG_IN_ON" msgid "Force 10-bit RGB Input: On" -msgstr "" +msgstr "Verplicht 10-bit RGB Invoer: Aan" msgctxt "IDS_OSD_RS_10BIT_RBG_IN_OFF" msgid "Force 10-bit RGB Input: Off" -msgstr "" +msgstr "Verplicht 10-bit RGB Invoer: Uit" msgctxt "IDS_OSD_RS_FULL_FP_PROCESS_ON" msgid "Full Floating Point Processing: On" @@ -3230,7 +3261,7 @@ msgstr "Contrast verhogen" msgctxt "IDS_CONTRAST_DEC" msgid "Contrast decrease" -msgstr "Helderheid verlagen" +msgstr "Contrast verlagen" msgctxt "IDS_HUE_INC" msgid "Hue increase" @@ -3254,7 +3285,7 @@ msgstr "Kleurinstellingen resetten" msgctxt "IDS_USING_LATEST_STABLE" msgid "\nYou are already using the latest stable version." -msgstr "" +msgstr "\nJe gebruikt al de laatste stabiele versie." msgctxt "IDS_USING_NEWER_VERSION" msgid "Your current version is v%s.\n\nThe latest stable version is v%s." @@ -3270,7 +3301,7 @@ msgstr "Update server niet gevonden.\n\nControlleer uw internet verbinding en pr msgctxt "IDS_UPDATE_CLOSE" msgid "&Close" -msgstr "Sl&uiten" +msgstr "&Sluiten" msgctxt "IDS_OSD_ZOOM" msgid "Zoom: %.0lf%%" @@ -3286,11 +3317,11 @@ msgstr "" msgctxt "IDS_OSD_CUSTOM_CH_MAPPING_ON" msgid "Custom channel mapping: On" -msgstr "" +msgstr "Aangepaste kanaalindeling: Aan" msgctxt "IDS_OSD_CUSTOM_CH_MAPPING_OFF" msgid "Custom channel mapping: Off" -msgstr "" +msgstr "Aangepaste kanaalindeling: Uit" msgctxt "IDS_NORMALIZE" msgid "Toggle normalization" @@ -3298,11 +3329,11 @@ msgstr "" msgctxt "IDS_OSD_NORMALIZE_ON" msgid "Normalization: On" -msgstr "" +msgstr "Normalisatie: Aan" msgctxt "IDS_OSD_NORMALIZE_OFF" msgid "Normalization: Off" -msgstr "" +msgstr "Normalisatie: Uit" msgctxt "IDS_REGAIN_VOLUME" msgid "Toggle regain volume" @@ -3377,7 +3408,7 @@ msgid "Error parsing the entered frame rate!" msgstr "" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3398,7 +3429,7 @@ msgstr "" msgctxt "IDS_SUBDL_DLG_CONNECT_ERROR" msgid "Cannot connect to the online subtitles database." -msgstr "" +msgstr "Kan geen verbinding maken met de online ondertitel database." msgctxt "IDS_MB_SHOW_EDL_EDITOR" msgid "Do you want to activate the EDL editor?" @@ -3468,7 +3499,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Je moet de nieuwe instellingen toepassen voordat je ze test. " -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Na weergave: Sluiten" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.pl.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.pl.dialogs.po index c1af6d236dd..b61b0a1daf3 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.pl.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.pl.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# kasper93, 2013-2014 +# kasper93, 2013-2015 # M T , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-27 10:19+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-30 21:41+0000\n" "Last-Translator: kasper93\n" "Language-Team: Polish (http://www.transifex.com/projects/p/mpc-hc/language/pl/)\n" "MIME-Version: 1.0\n" @@ -110,15 +110,15 @@ msgid "Enable custom channel mapping" msgstr "Własne mapowanie kanałów" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Konfiguracja dla " +msgid "Speaker configuration for" +msgstr "Konfiguracja dla" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "kanałów wejściowych:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Aby natychmiastowo wprowadzać zmiany, należy przytrzymać klawisz Shift." msgctxt "IDD_GOTO_DLG_CAPTION" @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Ostrzeżenie" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Włączenie pełnoekranowego antyaliasingu w ustawieniach karty graficznej, nie polepszy jakości napisów, a zwiększy jedynie obciążenie CPU." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,12 +682,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Korzystaj z możliwości paska zadań systemu Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Otwieraj kolejne pliki w folderze podczas nawigacji, gdy na liście odtwarzania znajduje się tylko jeden element" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Używaj dymka z czasem:" +msgid "Show time tooltip:" +msgstr "Pokazuj dymek z czasem:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Włącz automatyczne sprawdzanie aktualizacji" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Sprawdzanie aktualizacji co" +msgid "Check every:" +msgstr "Sprawdzaj co:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Zgłaszanie usterek" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Przepraszamy, wygląda na to, że MPC-HC przestał działać. :(\n\nW celu zdiagnozowania problemu przez nasz zespół, zostanie wysłany raport błędu. Możesz zamieścić dodatkowe informacje, jeżeli chcesz." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Adres e-mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Adres e-mail jest opcjonalny i zostanie użyty przez nasz zespół tylko jeżeli będzie potrzeba uzyskanie dodatkowych informacji na temat problemu." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Opis problemu (w języku angielskim):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.pl.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.pl.menus.po index ff89f360f16..be3d7fb70b4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.pl.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.pl.menus.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# kasper93, 2013-2014 +# kasper93, 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 10:21+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 21:32+0000\n" "Last-Translator: kasper93\n" "Language-Team: Polish (http://www.transifex.com/projects/p/mpc-hc/language/pl/)\n" "MIME-Version: 1.0\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Test szarpania obrazu" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Statystyki odtwarzania" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "Wyświetlaj &statystyki" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Pozostały czas odtwarzania" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Wyświetlaj aktualny &czas" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Pokaż nazwę &pliku" msgctxt "POPUP" msgid "&Output Range" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "Cieniowanie (&Shadery)" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "Ścieżka &dźwiękowa" +msgid "&Audio Track" +msgstr "Ścieżka &audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "N&apisy" +msgid "Su&btitle Track" +msgstr "Ścieżka &napisów" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Strum&ień wideo" +msgid "&Video Track" +msgstr "Ścieżka w&ideo" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "P&o zakończeniu" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Nic nie &rób" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Otwórz &następny plik w folderze" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Wyłącz &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Zamknij program" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Za&blokuj komputer" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Wyłącz &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Otwórz &następny plik w folderze" - msgctxt "POPUP" msgid "&Navigate" msgstr "P&rzejdź" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.pl.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.pl.strings.po index 998ac34e435..f083e9aeff4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.pl.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.pl.strings.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# kasper93, 2013-2014 -# M T , 2013-2014 +# kasper93, 2013-2015 +# M T , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-17 14:10+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-31 13:59+0000\n" "Last-Translator: kasper93\n" "Language-Team: Polish (http://www.transifex.com/projects/p/mpc-hc/language/pl/)\n" "MIME-Version: 1.0\n" @@ -326,11 +326,11 @@ msgid "On/Off" msgstr "Wł./Wył." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Od kl./s" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "Do kl./s" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -622,8 +622,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Działa tak samo jak „VMR-9 (renderless)”, lecz używa prawdziwego dwuprzebiegowego skalowania bicubic." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Podpina się do dowolnego typu video i wysyła przychodzące próbki donikąd. Użycie wskazane, gdy strumień wideo nie musi być wyświetlany, dzięki czemu można zmniejszyć obciążenie CPU." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Podpina się do dowolnego typu wideo i wysyła przychodzące próbki donikąd. Użycie wskazane, gdy strumień wideo nie musi być wyświetlany, dzięki czemu można zmniejszyć obciążenie CPU." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Wycisz" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Wyłącz wyciszenie" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Włącz logowanie do pliku (wymaga restartu)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Pozostały czas" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Wysoka precyzja" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Po zakończeniu odtwarzania: Przewiń plik do początku" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Po zakończeniu odtwarzania: Zamknij plik" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Otwórz urządzenie" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Zatrzymaj odtwarzanie" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Następna klatka" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Poprzednia klatka" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Poprawnie zapisano miniaturki" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Strum&ień wideo" +msgid "&Video Track" +msgstr "Ścieżka w&ideo" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Przesuń napisy w prawo (+100ms)" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Statystyki odtwarzania" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Skocz do początku" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Pokaż nazwę pliku" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Wyświetlaj statystyki renderera" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Resetuj statystyki renderera" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Napisy::Różne" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Ukryj obramowanie" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Tylko &ramka" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Pokaż pasek tytułu i menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Ukryj &menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Zaawansowane" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Widok minimalny" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "„Klawisz szefa” - natychmiast ukrywa odtwarzacz" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Krótkie menu programu" +msgid "Player Menu" +msgstr "Menu odtwarzacza" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Długie menu programu" +msgid "Player Menu (full)" +msgstr "Menu odtwarzacza (pełne)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "DVD: Przełącz wyświetlanie napisów" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Pozostały czas odtwarzania" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Wyświetlaj aktualny czas" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Brak wolnej pamięci" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Błąd: wymagany Flash player dla IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Błąd: wymagany Adobe Flash Player dla przeglądarki Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Przełącz widoczność paska tytułu i menu" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Przełącz widoczność paska postępu" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Maksymalne wzmocnienie głośności" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Użycie: mpc-hc.exe „ścieżka” [parametry]\n\n„ścieżka”\t\tOkreśla plik lub folder do otwarcia (symbole\n\t\twieloznaczne dozwolone, „-” oznacza\n\t\tstandardowe wejście)\n/dub „plik”\tOtwiera dodatkową ścieżkę dźwiękową\n/dubdelay „plik”\tOtwiera dodatkową ścieżkę dźwiękową opóźnioną\n\t\to XX ms jeśli nazwa pliku zawiera ciąg\n\t\t„DELAY XXms”\n/d3dfs\t\tUruchamia odtwarzanie pełnoekranowe w D3D\n/sub „plik”\tWczytuje dodatkowe napisy\n/filter „plik”\tWczytuje filtr DirectShow z biblioteki dll (symbole\n\t\twieloznaczne dozwolone)\n/dvd\t\tOtwiera płytę DVD, „ścieżka” wskazuje folder DVD\n\t\t(opcjonalnie)\n/dvdpos T#C\tUruchamia odtwarzanie tytułu T, rozdział C\n/dvdpos T#hh:mm\tUruchamia odtwarzanie tytułu T, pozycja\n\t\thh:mm:ss\n/cd\t\tOtwiera wszystkie ścieżki CD-Audio lub (s)vcd\n\t\t„Ścieżka” wskazuje literę napędu (opcjonalnie)\n/device\t\tOpen the default video device\n/open\t\tOtwiera plik, nie rozpoczyna odtwarzania\n/play\t\tRozpoczyna odtwarzanie po uruchomieniu\n\t\tprogramu\n/close\t\tKończy program po zakończeniu odtwarzania\n\t\t(działa z parametrem /play)\n/shutdown\tZamyka system operacyjny po zakończeniu\n\t\todtwarzania\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tUruchamia w trybie pełnego ekranu\n/minimized\tUruchamia zminimalizowany\n/new\t\tUruchamia nowe wystąpienie programu\n/add\t\tDodaje „ścieżkę” do listy odtwarzania. Można\n\t\tłączyć z parametrami /open i /play\n/regvid\t\tRejestruje formaty wideo\n/regaud\t\tRejestruje formaty dźwiękowe\n/regpl\t\tRejestruje formaty list odtwarzania\n/regall\t\tRejestruje wszystkie obsługiwane formaty\n/unregall\t\tWyrejestrowuje wszystkie formaty\n/start ms\t\tRozpoczyna odtwarzanie od określonego\n\t\tpołożenia wyrażonego w ms\n/startpos hh:mm:ss\tRozpoczyna odtwarzanie od określonego\n\t\tpołożenia wyrażonego w gg:mm:ss\n/fixedsize x,y\tOkreśla rozmiar okna programu\n/monitor N\tUruchamia na N-tym ekranie, gdzie numer\n\t\tpierwszego ekranu to 1\n/audiorenderer N\tRenderuje dźwięk za pomocą sterownika N,\n\t\tgdzie numer pierwszego sterownika to 1\n\t\t(ustawienia „Strumień wyjściowy”)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPrzywraca ustawienia domyślne\n/help /h /?\tWyświetla listę parametrów wiersza poleceń\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Użycie: mpc-hc.exe „ścieżka” [parametry]\n\n„ścieżka”\t\tOkreśla plik lub folder do otwarcia (symbole\n\t\twieloznaczne dozwolone, „-” oznacza\n\t\tstandardowe wejście)\n/dub „plik”\tOtwiera dodatkową ścieżkę dźwiękową\n/dubdelay „plik”\tOtwiera dodatkową ścieżkę dźwiękową opóźnioną\n\t\to XX ms jeśli nazwa pliku zawiera ciąg\n\t\t„DELAY XXms”\n/d3dfs\t\tUruchamia odtwarzanie pełnoekranowe w D3D\n/sub „plik”\tWczytuje dodatkowe napisy\n/filter „plik”\tWczytuje filtr DirectShow z biblioteki dll (symbole\n\t\twieloznaczne dozwolone)\n/dvd\t\tOtwiera płytę DVD, „ścieżka” wskazuje folder DVD\n\t\t(opcjonalnie)\n/dvdpos T#C\tUruchamia odtwarzanie tytułu T, rozdział C\n/dvdpos T#hh:mm\tUruchamia odtwarzanie tytułu T, pozycja\n\t\thh:mm:ss\n/cd\t\tOtwiera wszystkie ścieżki CD-Audio lub (s)vcd\n\t\t„Ścieżka” wskazuje literę napędu (opcjonalnie)\n/device\t\tOpen the default video device\n/open\t\tOtwiera plik, nie rozpoczyna odtwarzania\n/play\t\tRozpoczyna odtwarzanie po uruchomieniu\n\t\tprogramu\n/close\t\tKończy program po zakończeniu odtwarzania\n\t\t(działa z parametrem /play)\n/shutdown\tZamyka system operacyjny po zakończeniu\n\t\todtwarzania\n/standby\t\tWprowadza system w stan wstrzymania po zakończeniu odtwarzania\n/hibernate\tWprowadza system w stan hibernacji po zakończeniu odtwarzania\n/logoff\t\tWyglogowuje użytownika po zakończeniu odtwarzania\n/lock\t\tBlokuje stacje roboczą po zakończeniu odtwarzania\n/monitoroff\tWyłącza monitor po zakończeniu odtwarzania\n/playnext\t\tOtwiera następny plik w folderze po zakończeniu odtwarzania\n/fullscreen\tUruchamia w trybie pełnego ekranu\n/minimized\tUruchamia zminimalizowany\n/new\t\tUruchamia nowe wystąpienie programu\n/add\t\tDodaje „ścieżkę” do listy odtwarzania. Można\n\t\tłączyć z parametrami /open i /play\n/randomize\tMiesza listę odtwarzania\n/regvid\t\tRejestruje formaty wideo\n/regaud\t\tRejestruje formaty dźwiękowe\n/regpl\t\tRejestruje formaty list odtwarzania\n/regall\t\tRejestruje wszystkie obsługiwane formaty\n/unregall\t\tWyrejestrowuje wszystkie formaty\n/start ms\t\tRozpoczyna odtwarzanie od określonego\n\t\tpołożenia wyrażonego w ms\n/startpos hh:mm:ss\tRozpoczyna odtwarzanie od określonego\n\t\tpołożenia wyrażonego w gg:mm:ss\n/fixedsize x,y\tOkreśla rozmiar okna programu\n/monitor N\tUruchamia na N-tym ekranie, gdzie numer\n\t\tpierwszego ekranu to 1\n/audiorenderer N\tRenderuje dźwięk za pomocą sterownika N,\n\t\tgdzie numer pierwszego sterownika to 1\n\t\t(ustawienia „Strumień wyjściowy”)\n/shaderpreset \"Pr\"\tWybieranie konkretnego profilu shaderów\n/pns \"name\"\tWybieranie konkretnego profilu Pan&Scan\n/iconsassoc\tPrzypisz ponownie ikony do plików\n/nofocus\t\tOtwiera MPC-HC w tle\n/webport N\tUruchamia interfejs internetowy na określonym porcie\n/debug\t\tWyświetla informacje debugowania w OSD\n/nocrashreporter\tWyłącza raportowanie usterek\n/slave \"hWnd\"\tUżyj MPC-HC jako okno zależne\n/reset\t\tPrzywraca ustawienia domyślne\n/help /h /?\tWyświetla listę parametrów wiersza poleceń\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Górny tylny prawy" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Resetuj statystyki wyświetlania" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Napisy::Różne" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Ukryj obramowanie" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Tylko ramka" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Pokaż pasek tytułu i menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Ukryj &menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Zaawansowane" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Ponad paskiem postępu" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Poniżej paska postępu" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Inne audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Lista odtwarzania" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Błąd podczas przetwarzania wprowadzonej liczby klatek na sekundę!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Nie można przejść o klatkę do przodu, proszę spróbować użyć innego renderera obrazu." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,29 +3493,29 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Musisz zastosować nowe ustawienia zanim je przetestujesz." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" -msgstr "Po zakończeniu odtwarzania: Zakończenie programu" +msgstr "Po zakończeniu odtwarzania: Zamknij program" msgctxt "IDS_AFTERPLAYBACK_STANDBY" msgid "After Playback: Stand By" -msgstr "Po zakończeniu odtwarzania: Przejście w stan wstrzymania" +msgstr "Po zakończeniu odtwarzania: Przejdź w stan wstrzymania" msgctxt "IDS_AFTERPLAYBACK_HIBERNATE" msgid "After Playback: Hibernate" -msgstr "Po zakończeniu odtwarzania: Przejście w stan hibernacji" +msgstr "Po zakończeniu odtwarzania: Przejdź w stan hibernacji" msgctxt "IDS_AFTERPLAYBACK_SHUTDOWN" msgid "After Playback: Shutdown" -msgstr "Po zakończeniu odtwarzania: Wyłączenie komputera" +msgstr "Po zakończeniu odtwarzania: Wyłącz komputer" msgctxt "IDS_AFTERPLAYBACK_LOGOFF" msgid "After Playback: Log Off" -msgstr "Po zakończeniu odtwarzania: Wylogowanie użytkownika" +msgstr "Po zakończeniu odtwarzania: Wyloguj użytkownika" msgctxt "IDS_AFTERPLAYBACK_LOCK" msgid "After Playback: Lock" -msgstr "Po zakończeniu odtwarzania: Zablokowanie komputera" +msgstr "Po zakończeniu odtwarzania: Zablokuj komputer" msgctxt "IDS_AFTERPLAYBACK_MONITOROFF" msgid "After Playback: Turn off the monitor" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.dialogs.po index 00da2612340..f75abc422e6 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.dialogs.po @@ -1,8 +1,8 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Alex Luís Silva , 2014 +# Alex Luís Silva , 2014-2015 # Alex Luís Silva , 2014 # Roger Filipe , 2013-2014 # Luis Henrique , 2014 @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-31 05:10+0000\n" +"Last-Translator: Alex Luís Silva \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/mpc-hc/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -115,7 +115,7 @@ msgid "Enable custom channel mapping" msgstr "Ativar o mapeamento de canais personalizado" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Ajustes dos alto-falantes p/" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -123,7 +123,7 @@ msgid "input channels:" msgstr "canais de entrada" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Pressione \"Shift\" ao clicar em algo para aplicar as alterações imediatamente." msgctxt "IDD_GOTO_DLG_CAPTION" @@ -575,7 +575,7 @@ msgid "Warning" msgstr "Aviso" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Se você tiver antisserrilhamento forçado ativado nas configurações de sua placa de vídeo, é bem provável que sua CPU não conseguirá exibir as legendas em tempo real." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -687,11 +687,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Usar os recursos do Windows 7 na barra de tarefas" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Ir para o próximo arquivo ao clicar nos botões de Pular mesmo quando houver apenas um item na lista de reprodução" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Exibir tempo decorrido na barra de progresso:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1283,8 +1283,8 @@ msgid "Enable automatic update check" msgstr "Ativar a checagem de atualizações" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Intervalo entre checagens:" +msgid "Check every:" +msgstr "Verificar a cada:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1670,3 +1670,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Relatório de falha" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Lamentamos, parece que o MPC-HC travou. :(\n\nPara nos ajudar a diagnosticar e corrigir o problema, um relatório de falha será enviado. Você pode fornecer informações adicionais se quiser." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "O seu endereço de e-mail é opcional e só será usado se os desenvolvedores precisarem entrar em contato para mais informações." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Descrição do problema (usar somente Inglês):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.menus.po index 22689a71b9b..d672146e568 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.menus.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Alex Luís Silva , 2014 +# Alex Luís Silva , 2014-2015 # Alex Luís Silva , 2014 # Roger Filipe , 2013-2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 15:00+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-31 05:00+0000\n" "Last-Translator: Alex Luís Silva \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/mpc-hc/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "Teste de tearing" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Mostrar estatísticas" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Exibir estatísticas" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Ex&ibir tempo atual" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Tempo restante" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Mostrar &nome do arquivo" msgctxt "POPUP" msgid "&Output Range" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "S&haders" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Áudio" +msgid "&Audio Track" +msgstr "Faixa de &Áudio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Legendas" +msgid "Su&btitle Track" +msgstr "Faixa de Legenda" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Fluxo de vídeo" +msgid "&Video Track" +msgstr "Faixa de &Vídeo" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Após reprodução" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Não fa&zer nada" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Reproduzir o próximo arquivo na pasta" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Desligar o &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Fechar programa" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Trancar sessão" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Desligar o &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Reproduzir o próximo arquivo na pasta" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navegar" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.strings.po index 0bbe4065b22..dd6f9d654e9 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.strings.po @@ -1,8 +1,8 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Alex Luís Silva , 2014 +# Alex Luís Silva , 2014-2015 # Alex Luís Silva , 2014 # brunoarmanelli , 2014 # Erick Simões , 2014-2015 @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2015-01-03 02:30+0000\n" -"Last-Translator: Erick Simões \n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-31 05:00+0000\n" +"Last-Translator: Alex Luís Silva \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/mpc-hc/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -333,11 +333,11 @@ msgid "On/Off" msgstr "Sim/Não" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Do fps" +msgid "From FPS" +msgstr "Do FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "Para" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -629,7 +629,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Mesmo do VMR-9 (Sem render), mas usa método real de redimensionamento bicubico em 2-pass." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Conecta-se a qualquer tipo de arquivo de vídeo e manda as amostras a nenhum lugar. Utilizá-lo quando não necessitar ver o vídeo, e quiser evitar o uso desnecessário da CPU." msgctxt "IDC_DSNULL_UNCOMP" @@ -896,7 +896,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Mudo" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Cancela mudo" @@ -1380,6 +1380,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "RA %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Habilita o registro em arquivo de log (requer reinicialização)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Tempo restante" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Alta precisão" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Após a reprodução: Rebobinar o arquivo atual" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Após a reprodução: Fechar" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Abrir dispositivo" @@ -1429,11 +1449,11 @@ msgid "Stop" msgstr "Parar" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Avançar um quadro" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Voltar um quadro" msgctxt "IDS_AG_GO_TO" @@ -1533,8 +1553,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniaturas salvas com sucesso" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Faixa de vídeo" +msgid "&Video Track" +msgstr "Faixa de &Vídeo" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1656,14 +1676,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Mover legenda para direita" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Mostrar estatísticas" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Pular ao início" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Mostrar nome do arquivo" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Exibir estatísticas do renderizador" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Redefinir estatísticas do renderizador" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Legendas::Outras Opções" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Esconder bordas" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Quadro somente" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Mostrar legenda&&Menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Esconder menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avançado" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Modo mínimo" @@ -1897,12 +1949,12 @@ msgid "Boss key" msgstr "Tecla Antichefe" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menu do reprodutor (curto)" +msgid "Player Menu" +msgstr "Menu do reprodutor" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menu do reprodutor (longo)" +msgid "Player Menu (full)" +msgstr "Menu do reprodutor (completo)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1980,9 +2032,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Legendas ativadas/desativadas (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Tempo restante" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Exibir tempo atual" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2293,8 +2345,8 @@ msgid "Out of memory" msgstr "Falta de memória!!!" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Erro: Flash para IE não instalado" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Erro: Flash para Internet Explorer não instalado" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2365,7 +2417,7 @@ msgid "Toggle Caption&Menu" msgstr "Mostrar menu de captura" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Mostrar seeker" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2521,8 +2573,8 @@ msgid "Volume boost Max" msgstr "Ganho de volume máximo" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Uso: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tO arquivo principal ou diretório a se carregar (wildcards\n\t\tpermitidos, \"-\" denotes standard input)\n/dub \"dubname\"\tCarregar um arquivo de áudio adicional\n/dubdelay \"file\"\tCarregar um arquivo de Áudio adicional alterado com XXms (se\n\t\to arquivo contém \"...DELAY XXms...\")\n/d3dfs\t\tIniciar rendering em D3D modo tela cheia\n/sub \"subname\"\tCarregar um arquivo de legendas adicional\n/filter \"filtername\"\tCarregar filtros DirectShow de um link dinâmico\n\t\t (wildcards allowed)\n/dvd\t\tExecutar em modo DVD, \"pathname\" significa a pasta\n\t\tdo dvd (opcional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tCarregar todas as faixas de um CD de Áudio ou (s)vcd,\n\t\t\"pathname\" significa o caminho do drive (opcional)\n/device\t\tOpen the default video device\n/open\t\tAbrir o arquivo, não inicia automaticamente a reprodução\n/play\t\tInicia a reprodução do arquivo assim que o tocado estiver\n\t\taberto\n/close\t\tFecha o programa após a reprodução (Só funciona quando\n\t\tusado com /play)\n/shutdown\tDesliga o sistema operacional após a reprodução\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tInicia em modo tela cheia\n/minimized\tInicia em modo minimizado\n/new\t\tUsa o programa em uma nova instância\n/add\t\tadiciona \"pathname\" a lista de reprodução, pode ser combinada\n\t\tcom /open e com /play\n/regvid\t\tRegistra formatos de vídeo\n/regaud\t\tRegistra formatos de Áudio\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tTira o registro de todos os formatos de vídeo\n/start ms\t\tInicia a reprodução em \"ms\" (= millisegundos)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tAjusta tamanho fixo da janela\n/monitor N\tInicia monitoramento N, onde N inicia em 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestaura as configurações padrões\n/help /h /?\tMostra ajuda sobre as opções de linha de comandos\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Uso: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tO arquivo principal ou diretório a se carregar (wildcards\n\t\tpermitidos, \"-\" denotes standard input)\n/dub \"dubname\"\tCarregar um arquivo de áudio adicional\n/dubdelay \"file\"\tCarregar um arquivo de Áudio adicional alterado com XXms (se\n\t\to arquivo contém \"...DELAY XXms...\")\n/d3dfs\t\tIniciar rendering em D3D modo tela cheia\n/sub \"subname\"\tCarregar um arquivo de legendas adicional\n/filter \"filtername\"\tCarregar filtros DirectShow de um link dinâmico\n\t\t (wildcards allowed)\n/dvd\t\tExecutar em modo DVD, \"pathname\" significa a pasta\n\t\tdo dvd (opcional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tCarregar todas as faixas de um CD de Áudio ou (s)vcd,\n\t\t\"pathname\" significa o caminho do drive (opcional)\n/device\t\tOpen the default video device\n/open\t\tAbrir o arquivo, não inicia automaticamente a reprodução\n/play\t\tInicia a reprodução do arquivo assim que o tocado estiver\n\t\taberto\n/close\t\tFecha o programa após a reprodução (Só funciona quando\n\t\tusado com /play)\n/shutdown\tDesliga o sistema operacional após a reprodução\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tInicia em modo tela cheia\n/minimized\tInicia em modo minimizado\n/new\t\tUsa o programa em uma nova instância\n/add\t\tadiciona \"pathname\" a lista de reprodução, pode ser combinada\n\t\tcom /open e com /play\n/randomize\tRandomize the playlist\n/regvid\t\tRegistra formatos de vídeo\n/regaud\t\tRegistra formatos de Áudio\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tTira o registro de todos os formatos de vídeo\n/start ms\t\tInicia a reprodução em \"ms\" (= millisegundos)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tAjusta tamanho fixo da janela\n/monitor N\tInicia monitoramento N, onde N inicia em 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestaura as configurações padrões\n/help /h /?\tMostra ajuda sobre as opções de linha de comandos\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2704,40 +2756,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Topo traseiro direito" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Redefinir estatísticas de exibição" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Legendas::Outras Opções" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Esconder bordas" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Quadro somente" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Mostrar legenda&&Menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Esconder menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avançado" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Acima da barra de progresso" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Abaixo da barra de progresso" msgctxt "IDS_VIDEO_STREAM" @@ -2905,8 +2929,8 @@ msgid "Other Audio" msgstr "Outros Áudios" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2916,6 +2940,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2980,22 +3024,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Lista Reprodução" @@ -3381,7 +3409,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Erro ao tentar processar a taxa de quadros digitada!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Não é possivel pular o quadro, tente processador de vídeo diferente." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3472,7 +3500,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Você precisa aplicar as novas configurações antes de testar." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Após reprodução: Fechar arquivo" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ro.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ro.dialogs.po index 08e63b0f330..4cf7e69e6de 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ro.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ro.dialogs.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Daniel , 2014 -# lordkag , 2014 +# Daniel , 2014-2015 +# lordkag , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-30 20:10+0000\n" +"Last-Translator: lordkag \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/mpc-hc/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +19,7 @@ msgstr "" msgctxt "IDD_SELECTMEDIATYPE_CAPTION" msgid "Select Media Type" -msgstr "Selectează tipul media" +msgstr "Selectați tipul media" msgctxt "IDD_SELECTMEDIATYPE_IDOK" msgid "OK" @@ -110,15 +110,15 @@ msgid "Enable custom channel mapping" msgstr "Activează repartizarea particularizată a canalelor " msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Configurație a difuzoarelor pentru " +msgid "Speaker configuration for" +msgstr "Configurație a difuzoarelor pentru" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "canale de intrare:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Țineți Shift apăsat pentru aplicarea imediată a schimbărilor când dați clic pe ceva" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -195,7 +195,7 @@ msgstr "Drepturi de autor © 2002-2015 vedeți Authors.txt" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "This program is freeware and released under the GNU General Public License." -msgstr "Acesta program este gratuit și distribuit sub licența GNU General Public License." +msgstr "Acest program este gratuit și distribuit sub licența GNU General Public License." msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "English translation made by MPC-HC Team" @@ -339,7 +339,7 @@ msgstr "Ține minte ultima dimensiune a ferestrei" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK11" msgid "Remember last Pan-n-Scan Zoom" -msgstr "Ține minte ultima focalizare a Pan && Scan" +msgstr "Ține minte ultima scalare pentru Pan && Scan" msgctxt "IDD_PPAGEDVD_IDC_STATIC" msgid "\"Open DVD/BD\" behavior" @@ -431,7 +431,7 @@ msgstr "Ieșire" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK5" msgid "Auto-zoom:" -msgstr "Auto-scalare" +msgstr "Scalare automată" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC2" msgid "Auto fit factor:" @@ -451,7 +451,7 @@ msgstr "Subtitrări:" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Audio:" -msgstr "Audio" +msgstr "Audio:" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK4" msgid "Allow overriding external splitter choice" @@ -523,7 +523,7 @@ msgstr "ms" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Texture settings (open the video again to see the changes)" -msgstr "Setările texturei (deschideți fișierul video din nou pentru a vedea schimbările)" +msgstr "Setări textură (deschideți fișierul video din nou pentru a vedea schimbările)" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Sub pictures to buffer:" @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Avertisment" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Dacă suprascrieţi și activați dezimțuire (antialiasing) pentru ecran complet în setările plăcii grafice, subtitrările nu o să arate mai bine, dar cu siguranță se va consuma mai mult din resursele sistemului." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Folosește facilitățile barei de activități Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "Deschide următorul/precedentul fişier din dosar la comenzile „Sari înapoi/înainte” când este un singur element în lista de redare" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Deschide precedentul/următorul fişier din dosar la comenzile „Sari înapoi/înainte” când este un singur element în lista de redare" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Folosește indiciu de timp:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -703,7 +703,7 @@ msgstr "Ascunde automat indicatorul mouse-ului în timpul redării în mod ferea msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON1" msgid "Add Filter..." -msgstr "Adaugă filtru..." +msgstr "Adăugare filtru..." msgctxt "IDD_PPAGEEXTERNALFILTERS_IDC_BUTTON2" msgid "Remove" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Activează verificarea automată a actualizărilor" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Întârziere între verificări:" +msgid "Check every:" +msgstr "Verifică la fiecare:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Raportor picări" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Ne pare rău, se pare că MPC-HC a picat. :(\n\nPentru a ne ajuta să diagnosticăm și să reparăm problema, trebuie trimis un raport de defect. Puteți furniza informații adiționale dacă doriți." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Email:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Adresa dumneavoastră de email este opțională și va fi folosită doar dacă dezvoltatorii au nevoie să vă contacteze." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Descrierea problemei (folosiți doar limba engleză):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ro.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ro.menus.po index 62b24b306f5..48d03524cbc 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ro.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ro.menus.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Daniel , 2014 -# lordkag , 2014 +# Daniel , 2014-2015 +# lordkag , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 16:30+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 19:50+0000\n" "Last-Translator: lordkag \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/mpc-hc/language/ro/)\n" "MIME-Version: 1.0\n" @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Test de rupere (tearing)" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" msgstr "&Statistici de afișare" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Timp &rămas" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Afișează t&impul curent" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Arată nume &fișier" msgctxt "POPUP" msgid "&Output Range" @@ -363,11 +367,11 @@ msgstr "R&esetează" msgctxt "ID_VIEW_RESET_DEFAULT" msgid "Reset to &default renderer settings" -msgstr "Resetează la setări &implicite ale randorului" +msgstr "Resetează la setările &implicite ale randorului" msgctxt "ID_VIEW_RESET_OPTIMAL" msgid "Reset to &optimal renderer settings" -msgstr "Resetează la setări &optime ale randorului" +msgstr "Resetează la setările &optime ale randorului" msgctxt "POPUP" msgid "Video &Frame" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "S&hadere" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio" +msgid "&Audio Track" +msgstr "Pistă &audio" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Su&btitrări" +msgid "Su&btitle Track" +msgstr "Pistă su&btitrare" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Flux &video" +msgid "&Video Track" +msgstr "Pistă &video" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Du&pă redare" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "&Nicio acțiune" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Redă &următorul fișier din dosar" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Închide &monitorul" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Î&nchide programul" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Blochează desktopul" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Închide &monitorul" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Redă &următorul fișier din dosar" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigare" @@ -679,11 +687,11 @@ msgstr "&Comutatoare în linie de comandă" msgctxt "ID_HELP_TOOLBARIMAGES" msgid "Download &Toolbar Images" -msgstr "Descarcă imagini pentru bara de ins&trumente" +msgstr "Descărcare imagini pentru bara de ins&trumente" msgctxt "ID_HELP_DONATE" msgid "&Donate" -msgstr "&Donează" +msgstr "&Donare" msgctxt "ID_HELP_ABOUT" msgid "&About..." diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ro.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ro.strings.po index 60d899c26fd..56a417ad4b0 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ro.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ro.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Daniel , 2014 -# lordkag , 2014 +# Daniel , 2014-2015 +# lordkag , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-01 11:03+0000\n" -"Last-Translator: lordkag \n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-31 17:21+0000\n" +"Last-Translator: Daniel \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/mpc-hc/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -83,7 +83,7 @@ msgstr "Durată" msgctxt "IDS_STATSBAR_SYNC_OFFSET" msgid "Sync Offset" -msgstr "Decalaj Sync" +msgstr "Decalaj sincronizare" msgctxt "IDS_STATSBAR_SYNC_OFFSET_FORMAT" msgid "avg: %d ms, dev: %d ms" @@ -207,7 +207,7 @@ msgstr "Timp" msgctxt "IDS_SUBRESYNC_CLN_END" msgid "End" -msgstr "Sfârşit" +msgstr "Sfârșit" msgctxt "IDS_SUBRESYNC_CLN_PREVIEW" msgid "Preview" @@ -326,12 +326,12 @@ msgid "On/Off" msgstr "Pornit/Oprit" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "De la fps" +msgid "From FPS" +msgstr "De la FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "La fps" +msgid "To FPS" +msgstr "La FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -575,7 +575,7 @@ msgstr "Redare::Captură" msgctxt "IDD_PPAGESYNC" msgid "Playback::Sync Renderer Settings" -msgstr "Redare::Setările Randorului Sync" +msgstr "Redare::Setările randorului Sync" msgctxt "IDD_PPAGEFULLSCREEN" msgid "Playback::Fullscreen" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Asemănător cu VMR-9 (fără randare), dar foloseşte o redimensionare bicubică în doi paşi adevărată." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Se conectează la orice tip de media video și mostrele video nu vor fi trimise niciunde. Folosiți-l când nu aveți nevoie de afișarea video și vreți să salvați procesorul de la o muncă inutilă." msgctxt "IDC_DSNULL_UNCOMP" @@ -851,7 +851,7 @@ msgstr "Dezactivează animația subtitrărilor. Activarea acestei opțiuni va mi msgctxt "IDC_SUBPIC_TO_BUFFER" msgid "Increasing the number of buffered subpictures should in general improve the rendering performance at the cost of a higher video RAM usage on the GPU." -msgstr "Creșterea numărului de imagini subtitrare pentru preîncărcare ar trebui, în general, să îmbunătățească performanța randării, cu costul creșterii memoriei video utilizate de GPU." +msgstr "Creșterea numărului de imagini subtitrare pentru preîncărcare ar trebui, în general, să îmbunătățească performanța randării, cu costul creșterii memoriei video utilizate de placa video." msgctxt "IDC_BUTTON_EXT_SET" msgid "After clicking this button, the checked state of the format group will reflect the actual file association for MPC-HC. A newly added extension will usually make it grayed, so don't forget to check it again before closing this dialog!" @@ -887,11 +887,11 @@ msgstr "Mărește viteză\nMărește viteză" msgctxt "ID_VOLUME_MUTE" msgid "Mute" -msgstr "Silențios" +msgstr "Tăcut" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" -msgstr "Activare sunet" +msgstr "Activează sunet" msgctxt "ID_VOLUME_MUTE_DISABLED" msgid "No audio" @@ -939,11 +939,11 @@ msgstr "Opțiuni" msgctxt "IDS_SHADERS_SELECT" msgid "&Select Shaders..." -msgstr "&Selectare Shadere Pixeli..." +msgstr "&Selectare shadere..." msgctxt "IDS_SHADERS_DEBUG" msgid "&Debug Shaders..." -msgstr "&Depanare Shadere..." +msgstr "&Depanare shadere..." msgctxt "IDS_FAVORITES_ADD" msgid "&Add to Favorites..." @@ -1031,15 +1031,15 @@ msgstr "Test de rupere (tearing)" msgctxt "IDS_SCALE_16_9" msgid "Scale to 16:9 TV,%.3f,%.3f,%.3f,%.3f" -msgstr "Scalează la 16:9 TV,%.3f,%.3f,%.3f,%.3f" +msgstr "Scalează pentru televizor 16:9,%.3f,%.3f,%.3f,%.3f" msgctxt "IDS_SCALE_WIDESCREEN" msgid "Zoom To Widescreen,%.3f,%.3f,%.3f,%.3f" -msgstr "Mărește la Widescreen,%.3f,%.3f,%.3f,%.3f" +msgstr "Scalează pentru ecran lat,%.3f,%.3f,%.3f,%.3f" msgctxt "IDS_SCALE_ULTRAWIDE" msgid "Zoom To Ultra-Widescreen,%.3f,%.3f,%.3f,%.3f" -msgstr "Mărește la Ultra-Widescreen,%.3f,%.3f,%.3f,%.3f" +msgstr "Scalează pentru ecran ultra-lat,%.3f,%.3f,%.3f,%.3f" msgctxt "IDS_PLAYLIST_HIDEFS" msgid "Hide on Fullscreen" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "RA %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Activează jurnalizare în fișier (necesită repornire)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Timp rămas" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Precizie ridicată" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "După redare: Derulează înapoi fișierul curent" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "După redare: Închide" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Deschide dispozitiv" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Oprire" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Cadrul următor" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Cadrul precedent" msgctxt "IDS_AG_GO_TO" @@ -1467,7 +1487,7 @@ msgstr "Activităţi pentru timpul liber" msgctxt "IDS_FILE_RECYCLE" msgid "Move to Recycle Bin" -msgstr "Mută în Coșul de reciclare" +msgstr "Mută în coșul de reciclare" msgctxt "IDS_AG_SAVE_COPY" msgid "Save a Copy" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniaturi salvate cu succes" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Flux &video" +msgid "&Video Track" +msgstr "Pistă &video" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Deplasează subtitrarea la dreapta" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Afișează statistici" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Sari la început" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Arată numele fișierului" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Afișează statistici randor" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Resetează statistici randor" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Subtitrări::Diverse" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Ascunde mar&gini" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Doar cadru video" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "&Arată Titlu && Meniu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Ascunde &meniu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avansat" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Vizualizare minimală" @@ -1679,7 +1731,7 @@ msgstr "Ecran complet (fără schimbare rez.)" msgctxt "IDS_AG_ZOOM_AUTO_FIT" msgid "Zoom Auto Fit" -msgstr "Autopotrivire scalare" +msgstr "Potrivire automată scalare" msgctxt "IDS_AG_VIDFRM_HALF" msgid "VidFrm Half" @@ -1763,7 +1815,7 @@ msgstr "Autopotrivire (doar cele mari)" msgctxt "IDS_AG_ZOOM_AUTO_FIT_LARGER" msgid "Zoom Auto Fit (Larger Only)" -msgstr "Autopotrivire scalare (doar cele mari)" +msgstr "Potrivire automată scalare (doar cele mari)" msgctxt "IDS_OSD_ZOOM_AUTO_LARGER" msgid "Zoom: Auto (Larger Only)" @@ -1831,7 +1883,7 @@ msgstr "Scade Volum" msgctxt "IDS_AG_VOLUME_MUTE" msgid "Volume Mute" -msgstr "Silențios" +msgstr "Tăcut" msgctxt "IDS_MPLAYERC_63" msgid "DVD Title Menu" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Tastă " msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Meniu player (scurt)" +msgid "Player Menu" +msgstr "Meniu player" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Meniu player (lung)" +msgid "Player Menu (full)" +msgstr "Meniu player (complet)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Activare/Dezactivare subtitrare (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Timp rămas" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Afișează ora curentă" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Memorie insuficientă" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Eroare: Este necesar Flash pentru IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Eroare: Este necesar Adobe Flash Player pentru Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Comută meniu și titlu" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Comută bara de căutare" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Amplificare volum maximă" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Utilizare: mpc-hc.exe \"cale\" [comutatoare]\n\n\"cale\"\t\tFișierul principal sau directorul ce trebuie încărcat (metacaractere\n\t\tpermise, \"-\" indică intrare standard)\n/dub \"dublaj\"\tÎncarcă un fișier audio adițional\n/dubdelay \"fișier\"\tÎncarcă un fișier audio adițional decalat cu XXms (dacă\n\t\tfișierul conține \"...DELAY XXms...\")\n/d3dfs\t\tPornește randarea în mod ecran complet D3D\n/sub \"subtitrare\"\tÎncarcă o subtitrare adițională\n/filter \"filtru\"\tÎncarcă filtre DirectShow dintr-o librărie\n\t\tcu încărcare dinamică (metacaractere permise)\n/dvd\t\tRulează în mod DVD, \"cale\" înseamnă dosarul\n\t\tdvd-ului (opțional)\n/dvdpos T#C\tPornește redarea de la titlul T, capitolul C\n/dvdpos T#hh:mm\tPornește redarea de la titlul T, poziția hh:mm:ss\n/cd\t\tÎncarcă toate pistele unui CD audio sau (S)VCD,\n\t\t\"cale\" înseamnă calea unității (opțional)\n/device\t\tDeschide dispozitivul video implicit\n/open\t\tDeschide fișierul, nu porni redarea în mod automat\n/play\t\tÎncepe redarea fișierului imediat ce playerul este lansat\n/close\t\tÎnchide playerul după redare (funcționează doar când\n\t\teste folosit cu /play)\n/shutdown\tÎnchide sistemul după redare\n/standby\t\tIntră în repaus după redare\n/hibernate\tIntră în hibernare după redare\n/logoff\t\tÎnchide sesiunea după redare\n/lock\t\tBlochează desktopul după redare\n/monitoroff\tÎnchide monitorul după redare\n/playnext\t\tRedă următorul fișier din dosar după redare\n/fullscreen\tPornește în modul ecran complet\n/minimized\tPornește în modul minimizat\n/new\t\tFolosește o instanță nouă a playerului\n/add\t\tAdaugă \"cale\" la lista de redare, poate fi combinat\n\t\tcu /open și /play\n/regvid\t\tCreează asocieri de fișiere pentru fișiere video\n/regaud\t\tCreează asocieri de fișiere pentru fișiere audio\n/regpl\t\tCreează asocieri de fișiere pentru fișiere listă de redare\n/regall\t\tCreează asocieri de fișiere pentru toate tipurile de fișiere suportate\n/unregall\t\tElimină toate asocierile de fișiere\n/start ms\t\tPornește redarea la \"ms\" (= milisecunde)\n/startpos hh:mm:ss\tPornește redarea la poziția hh:mm:ss\n/fixedsize L,l\tSetează o dimensiune fixă Lxl pentru fereastră\n/monitor N\tPornește redarea pe monitorul N, unde N începe de la 1\n/audiorenderer N\tPornește folosind randorul audio N, unde N începe de la 1\n\t\t(vedeți setările \"Ieșire\")\n/shaderpreset \"Pr\"\tPornește folosind setarea predefinită \"Pr\" pentru shader\n/pns \"name\"\tSpecifică numele setării predefinite Pan&Scan ce va fi folosită\n/iconsassoc\tReasociază iconițele specifice formatelor\n/nofocus\t\tDeschide MPC-HC în fundal\n/webport N\tPornește interfața web pe portul specificat\n/debug\t\tArată informații de depanare în OSD\n/nominidump\tDezactivează crearea imaginilor de depanare\n/slave \"hWnd\"\tFolosește MPC-HC în modul sclav sau dependent\n/reset\t\tRestaurează setări implicite\n/help /h /?\tArată ajutor pentru comutatoarele din linia de comandă\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Utilizare: mpc-hc.exe \"cale\" [comutatoare]\n\n\"cale\"\t\tFișierul principal sau directorul ce trebuie încărcat (metacaractere\n\t\tpermise, \"-\" indică intrare standard)\n/dub \"dublaj\"\tÎncarcă un fișier audio adițional\n/dubdelay \"fișier\"\tÎncarcă un fișier audio adițional decalat cu XXms (dacă\n\t\tfișierul conține \"...DELAY XXms...\")\n/d3dfs\t\tPornește randarea în mod ecran complet D3D\n/sub \"subtitrare\"\tÎncarcă o subtitrare adițională\n/filter \"filtru\"\tÎncarcă filtre DirectShow dintr-o librărie\n\t\tcu încărcare dinamică (metacaractere permise)\n/dvd\t\tRulează în mod DVD, \"cale\" înseamnă dosarul\n\t\tdvd-ului (opțional)\n/dvdpos T#C\tPornește redarea de la titlul T, capitolul C\n/dvdpos T#hh:mm\tPornește redarea de la titlul T, poziția hh:mm:ss\n/cd\t\tÎncarcă toate pistele unui CD audio sau (S)VCD,\n\t\t\"cale\" înseamnă calea unității (opțional)\n/device\t\tDeschide dispozitivul video implicit\n/open\t\tDeschide fișierul, nu porni redarea în mod automat\n/play\t\tÎncepe redarea fișierului imediat ce playerul este lansat\n/close\t\tÎnchide playerul după redare (funcționează doar când\n\t\teste folosit cu /play)\n/shutdown\tÎnchide sistemul după redare\n/standby\t\tIntră în repaus după redare\n/hibernate\tIntră în hibernare după redare\n/logoff\t\tÎnchide sesiunea după redare\n/lock\t\tBlochează desktopul după redare\n/monitoroff\tÎnchide monitorul după redare\n/playnext\t\tRedă următorul fișier din dosar după redare\n/fullscreen\tPornește în modul ecran complet\n/minimized\tPornește în modul minimizat\n/new\t\tFolosește o instanță nouă a playerului\n/add\t\tAdaugă \"cale\" la lista de redare, poate fi combinat\n\t\tcu /open și /play\n/randomize\tRedă lista aleatoriu\n/regvid\t\tCreează asocieri de fișiere pentru fișiere video\n/regaud\t\tCreează asocieri de fișiere pentru fișiere audio\n/regpl\t\tCreează asocieri de fișiere pentru fișiere listă de redare\n/regall\t\tCreează asocieri de fișiere pentru toate tipurile de fișiere suportate\n/unregall\t\tElimină toate asocierile de fișiere\n/start ms\t\tPornește redarea la \"ms\" (= milisecunde)\n/startpos hh:mm:ss\tPornește redarea la poziția hh:mm:ss\n/fixedsize L,l\tSetează o dimensiune fixă Lxl pentru fereastră\n/monitor N\tPornește redarea pe monitorul N, unde N începe de la 1\n/audiorenderer N\tPornește folosind randorul audio N, unde N începe de la 1\n\t\t(vedeți setările \"Ieșire\")\n/shaderpreset \"Pr\"\tPornește folosind setarea predefinită \"Pr\" pentru shader\n/pns \"nume\"\tSpecifică numele setării predefinite Pan&Scan ce va fi folosită\n/iconsassoc\tReasociază iconițele specifice formatelor\n/nofocus\t\tDeschide MPC-HC în fundal\n/webport N\tPornește interfața web pe portul specificat\n/debug\t\tArată informații de depanare în OSD\n/nocrashreporter\tDezactivează raportorul de defecte\n/slave \"hWnd\"\tFolosește MPC-HC în modul sclav sau dependent\n/reset\t\tRestaurează setări implicite\n/help /h /?\tArată ajutor pentru comutatoarele din linia de comandă\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Dreapta spate sus" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Resetează statisticile de afișare" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Subtitrări::Diverse" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Ascunde mar&gini" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Doar cadru video" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "&Arată Titlu && Meniu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Ascunde &meniu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avansat" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Deasupra barei de căutare" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Sub bara de căutare" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Alt Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Codec Audio Opus" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Codec Audio Opus" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Listă de redare" @@ -3019,7 +3047,7 @@ msgstr "Folosește WASAPI (necesită reponirea redării)" msgctxt "IDS_ARS_MUTE_FAST_FORWARD" msgid "Mute on fast forward" -msgstr "Fără sunet la derulare rapidă înainte" +msgstr "Tăcut la derulare rapidă înainte" msgctxt "IDS_ARS_SOUND_DEVICE" msgid "Sound Device:" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Eroare la analizarea ratei de cadre introduse!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Nu se poate face deplasare cadru cu cadru, încercați un randor video diferit." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Trebuie să aplicați noile setări înainte de a le testa." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "După redare: Închide programul" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ru.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ru.dialogs.po index 92ceeb84dfc..28501809c25 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ru.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ru.dialogs.po @@ -1,23 +1,25 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Alexander Gorishnyak , 2014 -# sayanvd , 2014 +# Arkady Shapkin , 2015 +# Pavel Otchertsov , 2015 +# sayanvd , 2014-2015 # stryaponoff , 2014 # SmilyCarrot , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-01 22:46+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-30 20:50+0000\n" +"Last-Translator: sayanvd \n" "Language-Team: Russian (http://www.transifex.com/projects/p/mpc-hc/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" msgctxt "IDD_SELECTMEDIATYPE_CAPTION" msgid "Select Media Type" @@ -112,16 +114,16 @@ msgid "Enable custom channel mapping" msgstr "Включить пользовательское распределение каналов" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Настройка колонок для " +msgid "Speaker configuration for" +msgstr "Настройка колонок для" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "входных каналов:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Удерживайте shift для немедленного принятия изменений при нажатии " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Удерживайте shift для немедленного принятия изменений при нажатии" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -557,7 +559,7 @@ msgstr "% кадра видео" msgctxt "IDD_PPAGESUBTITLES_IDC_CHECK_ALLOW_DROPPING_SUBPIC" msgid "Allow dropping some subpictures if the queue is running late" -msgstr "Включить выпадение некоторых кадров, при запазывании." +msgstr "Включить выпадение некоторых кадров, при запаздывании." msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" msgid "Renderer Layout" @@ -572,7 +574,7 @@ msgid "Warning" msgstr "Внимание" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Если вы измените положение и задействуете полноэкранное сглаживание в настройках видеокарты, субтитры не будут выглядеть лучше, но будут чрезмерно нагружать процессор." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -684,11 +686,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Использовать возможности таскбара Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Открывать следующий/предыдущий файл в папке через 'Вперед/Назад', когда в плейлисте только один пункт" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Показывать время" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1280,8 +1282,8 @@ msgid "Enable automatic update check" msgstr "Проверять обновления автоматически" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Интервал между проверками:" +msgid "Check every:" +msgstr "Проверять каждые:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1667,3 +1669,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Отчет о сбое" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Сожалеем, но кажется MPC-HC только что потерпел сбой. :(\n\nЧтобы помочь нам диагностировать и устранить проблему, будет отправлен отчет об ошибке. Если желаете, то Вы можете предоставить дополнительную информацию." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Email:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Адрес электронной почты не обязателен, но может быть использован для связи разработчиков с Вами для получения дополнительной информации." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Описание проблемы (только на английском):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ru.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ru.menus.po index 40d8e7511db..4ac43883810 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ru.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ru.menus.po @@ -1,21 +1,21 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# sayanvd , 2014 +# sayanvd , 2014-2015 # SmilyCarrot , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-21 14:11+0000\n" -"Last-Translator: SmilyCarrot \n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-30 20:50+0000\n" +"Last-Translator: sayanvd \n" "Language-Team: Russian (http://www.transifex.com/projects/p/mpc-hc/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" msgctxt "POPUP" msgid "&File" @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Тест дрожания" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" msgstr "&Показать статистику" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Оставшееся время" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Отображение текущего времени" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Показать имя файла" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "&Шейдеры" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Аудио" +msgid "&Audio Track" +msgstr "Дорожка аудио" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "С&убтитры" +msgid "Su&btitle Track" +msgstr "Дорожка с&убтитров" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Поток &видео" +msgid "&Video Track" +msgstr "Дорожка &видео" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "По окончании воспроизведения" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Ничего не делать" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Воспроизвести &следующий файл в папке" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Выключить &монитор" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Закрыть программу" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Блокировать компьютер" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Выключить &монитор" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Воспроизвести &следующий файл в папке" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Навигация" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.ru.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.ru.strings.po index a11c0f35ec6..66946a86319 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.ru.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.ru.strings.po @@ -1,25 +1,27 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Alexander Gorishnyak , 2014 # Arkady Shapkin , 2014 -# sayanvd , 2014 +# Ilya, 2015 +# Pavel Otchertsov , 2015 +# sayanvd , 2014-2015 # stryaponoff , 2014 -# SmilyCarrot , 2014 +# SmilyCarrot , 2014-2015 # Underground78, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-03 11:31+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-30 20:50+0000\n" "Last-Translator: sayanvd \n" "Language-Team: Russian (http://www.transifex.com/projects/p/mpc-hc/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" msgctxt "IDS_INFOBAR_LOCATION" msgid "Location" @@ -330,12 +332,12 @@ msgid "On/Off" msgstr "Вкл/Выкл" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "От (fps)" +msgid "From FPS" +msgstr "От (FPS)" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "До (fps)" +msgid "To FPS" +msgstr "До (FPS)" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -626,7 +628,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "То же, что и VMR-9 (renderless), но использует двухпроходное бикубическое изменения размера." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Подключается к любому типу видеоданных и отсылает входящие кадры в никуда. Режим может пригодиться для сохранения ресурсов процессора в случае, если нужен только звук." msgctxt "IDC_DSNULL_UNCOMP" @@ -893,7 +895,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Отключить звук" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Включить звук" @@ -1267,7 +1269,7 @@ msgstr "Сохранить пользовательский стиль" msgctxt "IDS_CONTENT_EDUCATION_SCIENCE" msgid "Education/Science/Factual topics" -msgstr "" +msgstr "Образование/Наука/Фактические темы" msgctxt "IDS_PPAGEADVANCED_HIDE_WINDOWED" msgid "Hides controls and panels also in windowed mode." @@ -1375,7 +1377,27 @@ msgstr "Пожалуйста, подождите. Идёт анализ..." msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" -msgstr "" +msgstr "Соотношение сторон %d:%d" + +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Включить запись лога в файл (требуется перезапуск)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Оставшееся время" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Высокая точность" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "По окончании воспроизведения: перемотать текущий файл" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "По окончании воспроизведения: закрыть" msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" @@ -1426,11 +1448,11 @@ msgid "Stop" msgstr "Стоп" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Шаг вперед" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Шаг назад" msgctxt "IDS_AG_GO_TO" @@ -1530,8 +1552,8 @@ msgid "Thumbnails saved successfully" msgstr "Миниатюра успешно сохранена" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Поток &видео" +msgid "&Video Track" +msgstr "Дорожка &видео" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1653,14 +1675,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Сдвинуть субтитры вправо" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Показать статистику" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Перейти к началу" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Показать имя файла" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Показать статистику рендера" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Сброс статистики рендера" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Субтитры::Дополнительно" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Скрыть границы" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Только видеокадр" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Показать заголовок и меню" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Скрыть меню" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Расширенный" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Минимальный вид" @@ -1894,11 +1948,11 @@ msgid "Boss key" msgstr "Босс-клавиша" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Меню проигрывателя (сокращенное)" +msgid "Player Menu" +msgstr "Меню проигрывателя" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" +msgid "Player Menu (full)" msgstr "Меню проигрывателя (полное)" msgctxt "IDS_AG_FILTERS_MENU" @@ -1977,9 +2031,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Субтитры Вкл/Откл (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Оставшееся время" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Отображение текущего времени" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2290,8 +2344,8 @@ msgid "Out of memory" msgstr "Не хватает памяти" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Ошибка: требуется Flash для IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Ошибка: требуется Flash для Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2362,7 +2416,7 @@ msgid "Toggle Caption&Menu" msgstr "Вкл/Откл заголовок и меню" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Вкл/Откл полосу прокрутки" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2518,8 +2572,8 @@ msgid "Volume boost Max" msgstr "Усиление громкости - Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Использование: mpc-hc.exe \"путь\" [переключатели]\n\n\"путь\"\t\tФайл или каталог для загрузки (разрешены \n\t\tмаски, \"-\" denotes standard input)\n/dub \"dubname\"\tЗагрузить дополнительный звуковой файл\n/dubdelay \"file\"\tЗагрузить звуковой файл со смещением XXмс\n\t\t(если файл содержит \"...DELAY XXms...\")\n/d3dfs\t\tСтартовать в полноэкранном D3D режиме\n/sub \"subname\"\tЗагрузить дополнительные субтитры\n/filter \"filtername\"\tЗагрузить фильтры DirectShow из библиотеки\n\t\t(разрешены маски)\n/dvd\t\tЗапуск в режиме DVD, \"путь\" означает каталог\n\t\tс DVD (опционально)\n/dvdpos T#C\tНачать воспроизведение с title T, chapter C\n/dvdpos T#hh:mm\tНачать воспроизведение с title T, позиции\n\t\thh:mm:ss\n/cd\t\tЗагрузить все дорожки Audio CD или (S)VCD,\n\t\t\"путь\" означает путь к диску (опционально)\n/device\t\tOpen the default video device\n/open\t\tТолько открыть файл\n/play\t\tНачинать воспроизведение сразу после запуска\n/close\t\tЗакрыть по окончании воспроизведения\n\t\t(работает только с ключем /play)\n/shutdown\tВыключить компьютер по окончании\n\t\tвоспроизведения\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tЗапуск в полноэкранном режиме\n/minimized\tЗапуск в свернутом виде\n/new\t\tИспользовать новую копию проигрывателя\n/add\t\tДобавить \"путь\" в плейлист, можно совместно\n\t\tс ключами /open и /play\n/regvid\t\tРегистрировать видеоформаты\n/regaud\t\tРегистрировать аудиоформаты\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tРазрегистрировать все форматы\n/start ms\t\tВоспроизводить с позиции \"ms\"\n\t\t(миллисекунды)\n/startpos hh:mm:ss\tВоспроизводить с позиции hh:mm:ss\n/fixedsize w,h\tУстановить фиксированный размер окна\n/monitor N\tЗапускаться на мониторе N, где N\n\t\tотсчитывается с 1\n/audiorenderer N\tИспользовать аудиорендер N, где N\n\t\tотсчитывается с 1 (смотрите настройки\n\t\t\"Вывод\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tВостановить настройки по умолчанию\n/help /h /?\tПоказывает эту справку\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Использование: mpc-hc.exe \"путь\" [переключатели]\n\n\"путь\"\t\tФайл или каталог для загрузки (разрешены \n\t\tмаски, \"-\" denotes standard input)\n/dub \"dubname\"\tЗагрузить дополнительный звуковой файл\n/dubdelay \"file\"\tЗагрузить звуковой файл со смещением XXмс\n\t\t(если файл содержит \"...DELAY XXms...\")\n/d3dfs\t\tСтартовать в полноэкранном D3D режиме\n/sub \"subname\"\tЗагрузить дополнительные субтитры\n/filter \"filtername\"\tЗагрузить фильтры DirectShow из библиотеки\n\t\t(разрешены маски)\n/dvd\t\tЗапуск в режиме DVD, \"путь\" означает каталог\n\t\tс DVD (опционально)\n/dvdpos T#C\tНачать воспроизведение с title T, chapter C\n/dvdpos T#hh:mm\tНачать воспроизведение с title T, позиции\n\t\thh:mm:ss\n/cd\t\tЗагрузить все дорожки Audio CD или (S)VCD,\n\t\t\"путь\" означает путь к диску (опционально)\n/device\t\tOpen the default video device\n/open\t\tТолько открыть файл\n/play\t\tНачинать воспроизведение сразу после запуска\n/close\t\tЗакрыть по окончании воспроизведения\n\t\t(работает только с ключем /play)\n/shutdown\tВыключить компьютер по окончании\n\t\tвоспроизведения\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tЗапуск в полноэкранном режиме\n/minimized\tЗапуск в свернутом виде\n/new\t\tИспользовать новую копию проигрывателя\n/add\t\tДобавить \"путь\" в плейлист, можно совместно\n\t\tс ключами /open и /play\n/randomize\tRandomize the playlist\n/regvid\t\tРегистрировать видеоформаты\n/regaud\t\tРегистрировать аудиоформаты\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tРазрегистрировать все форматы\n/start ms\t\tВоспроизводить с позиции \"ms\"\n\t\t(миллисекунды)\n/startpos hh:mm:ss\tВоспроизводить с позиции hh:mm:ss\n/fixedsize w,h\tУстановить фиксированный размер окна\n/monitor N\tЗапускаться на мониторе N, где N\n\t\tотсчитывается с 1\n/audiorenderer N\tИспользовать аудиорендер N, где N\n\t\tотсчитывается с 1 (смотрите настройки\n\t\t\"Вывод\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tВостановить настройки по умолчанию\n/help /h /?\tПоказывает эту справку\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2701,40 +2755,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Верх. задний правый" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Сброс статистики" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Субтитры::Дополнительно" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Скрыть границы" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Только видеокадр" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Показать заголовок и меню" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Скрыть меню" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Расширенный" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "над полосой прокрутки" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "под полосой прокрутки" msgctxt "IDS_VIDEO_STREAM" @@ -2902,8 +2928,8 @@ msgid "Other Audio" msgstr "Прочее аудио" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2913,6 +2939,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless (без потерь)" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2977,22 +3023,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Плейлист" @@ -3378,7 +3408,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Количество кадров в секунду записаны некорректно!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Покадровый просмотр невозможен, попробуйте другой видеорендерер." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3469,7 +3499,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Вы должны применить новые настройки перед их использованием" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "По окончании воспроизведения: закрыть плеер" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sk.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sk.dialogs.po index a8c963d93a1..42895d371c0 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sk.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sk.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Marián Hikaník , 2013-2014 -# Marián Hikaník , 2014 +# Marián Hikaník , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-13 11:39+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-18 10:52+0000\n" "Last-Translator: Marián Hikaník \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/mpc-hc/language/sk/)\n" "MIME-Version: 1.0\n" @@ -110,16 +110,16 @@ msgid "Enable custom channel mapping" msgstr "Zapnúť mapovanie kanálov používateľom" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Konfig. reproduktory na: " +msgid "Speaker configuration for" +msgstr "Konfig. reproduktory na" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "vstupné kanály:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Ak chcete zmeny uplatniť okamžite, pridržte klávesu Shift " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Ak chcete zmeny uplatniť okamžite po kliknutí, pridržte klávesu Shift" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Varovanie" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Ak niekde v nastaveniach svojej grafickej karty zapnete antialiasing v režime pre celú obrazovku, vzhľad titulkov sa o nič nezlepší, zvýši sa však zaťaženie procesora." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Použiť vlastnosti panela úloh Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Ak je v playliste iba jedna položka, otvoriť ďalší/predchádzajúci súbor v priečinku pri príkaze \"Preskočiť dozadu/dopredu\"" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Použiť časový tip:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Zapnúť automatickú kontrolu aktualizácií" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Čas medzi kontrolami:" +msgid "Check every:" +msgstr "Frekvencia kontroly:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Oznamovač zlyhaní" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Ospravedlňujeme sa za nepríjemnosti, ale zdá sa, že program MPC-HC neočakávane zlyhal. :(\n\nAk nám chcete pomôcť objasniť a opraviť vzniknutý problém, môžete nám odoslať záznam o chybe. Môžete pridať aj doplnkové informácie podľa svojho želania." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "E-mail:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Vaša e-mailová adresa nie je povinná a použije sa iba v prípade, že by vás vývojári chceli kontaktovať s cieľom získania podrobnejších informácií." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Opis problému (len v angličtine):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "OK" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sk.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sk.menus.po index d52b83215f4..31e43a84d53 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sk.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sk.menus.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Marián Hikaník , 2013 -# Marián Hikaník , 2014 +# Marián Hikaník , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-30 18:21+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 14:15+0000\n" "Last-Translator: Marián Hikaník \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/mpc-hc/language/sk/)\n" "MIME-Version: 1.0\n" @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Test trhania" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Štatistika zobrazenia" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "Zo&braziť štatistiky" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Zostáva&júci čas" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Zobraz&iť aktuálny čas" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Zobraziť &názov súboru" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "S&hadery" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Zvuk" +msgid "&Audio Track" +msgstr "Zvuková stop&a" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Ti&tulky" +msgid "Su&btitle Track" +msgstr "Stopa s &titulkami" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "S&tream s videom" +msgid "&Video Track" +msgstr "Stopa s &videom" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Po prehra&tí" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "Neuro&biť nič" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Prehrať ď&alší súbor v priečinku" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Vypnúť &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Ukončiť" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "U&zamknúť" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Vypnúť &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Prehrať ď&alší súbor v priečinku" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigácia" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sk.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sk.strings.po index f0ac061d6ea..cc6a4ea91ae 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sk.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sk.strings.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Marián Hikaník , 2013-2014 -# Marián Hikaník , 2014 +# Marián Hikaník , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-01 18:50+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 14:15+0000\n" "Last-Translator: Marián Hikaník \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/mpc-hc/language/sk/)\n" "MIME-Version: 1.0\n" @@ -326,11 +326,11 @@ msgid "On/Off" msgstr "Zap./Vyp." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Od snímok/sek." msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "Do snímok/sek." msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -622,8 +622,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Rovnaké ako VMR-9 (bez vykreslenia), ale používa dvojprechodovú, bikubickú zmenu veľkosti." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Pripája sa k médiu s videom, neodosiela však prichádzajúce vzorky. Môžete ho použiť vtedy, ak nepotrebujete obrazový výstup videa a chcete obmedziť zbytočnú prácu procesora." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Pripája sa k akémukoľvek typu média s videom, neodosiela však prichádzajúce vzorky. Môžete ho použiť vtedy, keď nepotrebujete obrazový výstup videa a chcete obmedziť zbytočnú prácu procesora." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Stlmiť" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Nestlmiť" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "Pomer strán %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Zapne zaznamenávanie do súboru (vyžaduje reštart)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Zostávajúci čas" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Veľká presnosť" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Po prehratí: Vrátiť aktuálny súbor na začiatok" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Po prehratí: Uzatvoriť" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Načítať zo zariadenia" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Stop" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Posunúť o jednu snímku" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Posunúť o jednu snímku dozadu" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Náhľady boli úspešne uložené" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Stream s &videom" +msgid "&Video Track" +msgstr "Stopa s &videom" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Posunúť titulok doprava" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Zobraziť štatistiky" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Preskočiť na začiatok" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Zobraziť názov súboru" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Zobraziť štatistiky vykresľovača" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Reset štatistík vykresľovača" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Titulky::Rôzne" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Skryť o&kraje" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Len sním&ok" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Z&obraziť titulok&&menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Skryť &menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Pokročilé" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Minim. zobrazenie" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Boss key" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menu prehrávača (krátke)" +msgid "Player Menu" +msgstr "Menu prehrávača" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menu prehrávača (dlhé)" +msgid "Player Menu (full)" +msgstr "Menu prehrávača (úplné)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Zapnúť/vypnúť titulky (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Zostávajúci čas" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Zobraziť aktuálny čas" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Nedostatok pamäte" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Chyba: je potrebný Flash player pre IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Chyba: je potrebný Adobe Flash Player pre Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Prepnúť kapitolu&menu" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Prepnúť vyhľadávač" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Zvýraznenie hlasitosti Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Pouzitie: mpc-hc.exe \"cesta\" [prepinace]\n\n\"cesta\"\tHlavny subor alebo priecinok, ktoreho obsah sa nacita (zastupne znaky\n\t\tsu povolene, znakom \"-\" oznacite standardny vstup)\n/dub \"zvukova stopa\"\tNacitat dalsi zvukovy subor\n/dubdelay \"subor\"\t Nacitat dalsi zvukovy subor, oneskoreny o XX ms (ak\n\t\tsubor obsahuje \"...DELAY XXms...\")\n/d3dfs\t\tspustit vykreslovanie v rezime na celu obrazovku D3D\n/sub \"nazov titulkov\"\tNacitat pridavny subor s titulkami\n/filter \"nazov filtra\"\t Nacitat filtre DirectShow z dynamicky prepojenej\n\t\tkniznice (zastupne znaky su povolene)\n/dvd\t\tSpustit v rezime DVD, \"cesta\" oznacuje priecinok na\n\t\tDVD (volitelne)\n/dvdpos T#C\tSpustit prehravanie titulu T, kapitoly C\n/dvdpos T#hh:mm\tSpustit prehravanie titulu T, na pozicii hh:mm:ss\n/cd\t\tNacitat vsetky stopy zvukoveho CD alebo (S)VCD,\n\t\t\"cesta\" - cesta k jednotke (volitelne)\n/device\t\tOtvorit predvolene zariadenie pre video\n/open\t\tOtvorit subor, neprehrat automaticky\n/play\t\tSpustit prehravanie ihned po spusteni \n\t\tprehravaca\n/close\t\tZatvorit prehravac po prehrati (funguje len s prepinacom\n\t\t /play)\n/shutdown\tVypnut operacny system po prehrati\n/standby\t\tPrepnut operacny system do pohotovostneho rezimu pre prehrati\n/hibernate\tPrepnut operacny system do rezimu hibernacie po prehrati\n/logoff\t\tPo prehrati odhlasit\n/lock\t\tPo prehrati uzamknut pocitac\n/monitoroff\tPo prehrati vypnut monitor\n/playnext\t\tPo prehrati otvorit dalsi subor v priecinku\n/fullscreen\tSpustit v rezime na celu obrazovku\n/minimized\tSpustiť minimalizovane\n/new\t\tPouzit novu instanciu prehravaca\n/add\t\tPridat \"cestu\" k playlistu, parameter mozno kombinovat s prepinacmi\n\t\t /open a /play\n/regvid\t\tVytvorit asociacie k suborom s videom\n/regaud\t\tVytvorit asociacie k suborom so zvukom\n/regpl\t\tVytvorit asociacie k suborom playlistov\n/regall\t\tVytvorit asociacie k vsetkym podporovanym suborom\n/unregall\t\tOdstranit vsetky asociacie k suborom\n/start ms\t\tSpustit prehravanie na pozicii v \"ms\" (= milisekundach)\n/startpos hh:mm:ss\tSpustit prehravanie na pozicii hh:mm:ss\n/fixedsize w,h\tNastavit fixnu sirku okna\n/monitor N\tSpustit prehravac na monitore N, pricom cislo N zacina na hodnote 1\n/audiorenderer N\tSpustit s pouzitim vykreslovaca zvuku N, pricom N sa zacina na hodnote 1\n\t\t(pozrite si nastavenia v casti \"Vystup\")\n/shaderpreset \"Pr\"\tSpustit s pouzitim prednastavenia shaderov \"Pr\"\n/pns \"name\"\tUrcit prednastavenia funkcie Pan&Scan ktore sa maju pouzit\n/iconsassoc\tZnovu asociovat ikony formatov\n/nofocus\t\tOtvorit program MPC-HC na pozadi\n/webport N\tSpustit webove rozhranie na specifikovanom porte\n/debug\t\tZobrazit informaciu pre ladenie v OSD\n/nominidump\tVypnut vytvaranie mini-vypisu pamate\n/slave \"hWnd\"\tPouzit MPC-HC ako druhotnu aplikaciu\n/reset\t\tObnovit predvolene nastavenia\n/help /h /?\tZobrazit pomocnika k prepinacom na prikazovom riadku\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Pouzitie: mpc-hc.exe \"cesta\" [prepinace]\n\n\"cesta\"\tHlavny subor alebo priecinok, ktoreho obsah sa nacita (zastupne znaky\n\t\tsu povolene, znakom \"-\" oznacite standardny vstup)\n/dub \"zvukova stopa\"\tNacitat dalsi zvukovy subor\n/dubdelay \"subor\"\t Nacitat dalsi zvukovy subor, oneskoreny o XX ms (ak\n\t\tsubor obsahuje \"...DELAY XXms...\")\n/d3dfs\t\tspustit vykreslovanie v rezime na celu obrazovku D3D\n/sub \"nazov titulkov\"\tNacitat dalsi subor s titulkami\n/filter \"nazov filtra\"\t Nacitat filtre DirectShow z dynamicky prepojenej\n\t\tkniznice (zastupne znaky su povolene)\n/dvd\t\tSpustit v rezime DVD, \"cesta\" oznacuje priecinok na\n\t\tDVD (volitelne)\n/dvdpos T#C\tSpustit prehravanie titulu T, kapitoly C\n/dvdpos T#hh:mm\tSpustit prehravanie titulu T, na pozicii hh:mm:ss\n/cd\t\tNacitat vsetky stopy zvukoveho CD alebo (S)VCD,\n\t\t\"cesta\" - cesta k jednotke (volitelne)\n/device\t\tOtvorit predvolene zariadenie pre video\n/open\t\tOtvorit subor, neprehrat automaticky\n/play\t\tSpustit prehravanie ihned po spusteni \n\t\tprehravaca\n/close\t\tZatvorit prehravac po prehrati (funguje len s prepinacom\n\t\t /play)\n/shutdown\tVypnut operacny system po prehrati\n/standby\t\tPrepnut operacny system do pohotovostneho rezimu pre prehrati\n/hibernate\tPrepnut operacny system do rezimu hibernacie po prehrati\n/logoff\t\tPo prehrati odhlasit\n/lock\t\tPo prehrati uzamknut pocitac\n/monitoroff\tPo prehrati vypnut monitor\n/playnext\t\tPo prehrati otvorit dalsi subor v priecinku\n/fullscreen\tSpustit v rezime na celu obrazovku\n/minimized\tSpustiť minimalizovane\n/new\t\tPouzit novu instanciu prehravaca\n/add\t\tPridat \"cestu\" k playlistu, parameter mozno kombinovat s prepinacmi\n\t\t /open a /play\n/randomize\tNahodne prehravanie v playliste\n/regvid\t\tVytvorit asociacie k suborom s videom\n/regaud\t\tVytvorit asociacie k suborom so zvukom\n/regpl\t\tVytvorit asociacie k suborom playlistov\n/regall\t\tVytvorit asociacie k vsetkym podporovanym suborom\n/unregall\t\tOdstranit vsetky asociacie k suborom\n/start ms\t\tSpustit prehravanie na pozicii v \"ms\" (= milisekundach)\n/startpos hh:mm:ss\tSpustit prehravanie na pozicii hh:mm:ss\n/fixedsize w,h\tNastavit fixnu sirku okna\n/monitor N\tSpustit prehravac na monitore N, pricom cislo N zacina na hodnote 1\n/audiorenderer N\tSpustit s pouzitim vykreslovaca zvuku N, pricom N sa zacina na hodnote 1\n\t\t(pozrite si nastavenia v casti \"Vystup\")\n/shaderpreset \"Pr\"\tSpustit s pouzitim prednastavenia shaderov \"Pr\"\n/pns \"name\"\tUrcit prednastavenia funkcie Pan&Scan ktore sa maju pouzit\n/iconsassoc\tZnovu asociovat ikony formatov\n/nofocus\t\tOtvorit program MPC-HC na pozadi\n/webport N\tSpustit webove rozhranie na specifikovanom porte\n/debug\t\tZobrazit informaciu pre ladenie v OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tPouzit MPC-HC ako druhotnu aplikaciu\n/reset\t\tObnovit predvolene nastavenia\n/help /h /?\tZobrazit pomocnika k prepinacom na prikazovom riadku\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Horný pravý - vzadu" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Obnoviť štatistiku zobrazenia" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Titulky::Rôzne" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Skryť o&kraje" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Len snímok" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Z&obraziť titulok&&menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Skryť &menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Pokročilé" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Nad panelom vyhľadávania" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Pod panelom vyhľadávania" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Iný zvuk" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple - bezstratový" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Kodek Opus Audio" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Kodek Opus Audio" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Playlist" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Chyba pri analyzovaní zadanej rýchlosti snímkovania!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Krokovanie snímkami nie je možné. Skúste použiť iný vykresľovač videa." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Pred otestovaním je potrebné aplikovať nové nastavenia." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Po prehratí: Ukončiť" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sl.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sl.dialogs.po index 542d5c1389a..d19b5f171fe 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sl.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sl.dialogs.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # fubuzz , 2014 -# shvala , 2013-2014 +# shvala , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-31 14:58+0000\n" +"Last-Translator: shvala \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/mpc-hc/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -110,16 +110,16 @@ msgid "Enable custom channel mapping" msgstr "Omogoči preslikavo kanalov po meri" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Konfiguracija zvočnikov za " +msgid "Speaker configuration for" +msgstr "Konfiguracija zvočnikov za" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "vhodne kanale:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Drži shift za takojšnje spremembe ob kliku " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Drži shift za takojšnje spremembe ob kliku" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -455,7 +455,7 @@ msgstr "Zvok:" msgctxt "IDD_PPAGEPLAYBACK_IDC_CHECK4" msgid "Allow overriding external splitter choice" -msgstr "" +msgstr "Dovoli preglasitev izbora zunanjega razdelilnika" msgctxt "IDD_PPAGEPLAYBACK_IDC_STATIC" msgid "Open settings" @@ -570,8 +570,8 @@ msgid "Warning" msgstr "Opozorilo" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "Če preglasiš in omogočiš celozaslonsko glajenje (antialiasing) kjerkoli v nastavitvah videokartice, podnapisi ne bodo izgledali nič bolje, bo pa cpu zelo obremenjen" +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "Če preglasiš in omogočiš celozaslonsko glajenje (antialiasing) kjerkoli v nastavitvah videokartice, podnapisi ne bodo izgledali nič bolje, bo pa CPU zelo obremenjen" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Uporabi značilnosti opravilne vrstice Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Odpri naslednjo/prejšnjo datoteko v imeniku pri \"Preskoči nazaj/naprej\", če je na seznamu predvajanja samo ena postavka" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Uporabi namig o času:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Omogoči samodejno preverjanje za posodobitve" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Zakasnitev med preverjanjem:" +msgid "Check every:" +msgstr "Preveri vsake:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "V redu" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Poročilo o prenehanju delovanja" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "Se opravičujemo, MPC-HC je očitno ravnokar prenehal delovati. :(\n\nV pomoč diagnosticiranju in odpravi težave bo poslano poročilo o hrošču, ki mu lahko pripišete dodatne informacije, če želite." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Epošta:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Vaš epoštni naslov ni obvezen, uporabljen pa bo samo če bodo razvojniki potrebovali stik z vami za dodatne informacije." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Opis težave (uporabljaj samo angleščino):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "V redu" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sl.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sl.menus.po index d1d48e5ece2..f73824a237f 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sl.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sl.menus.po @@ -1,16 +1,16 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # kasper93, 2013-2014 # fubuzz , 2014 -# shvala , 2013 +# shvala , 2013,2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-08-19 21:10:25+0000\n" -"PO-Revision-Date: 2014-09-02 13:11+0000\n" -"Last-Translator: fubuzz \n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-31 14:58+0000\n" +"Last-Translator: shvala \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/mpc-hc/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Test trganja" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "Pr&ikaži statistiko" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "&Prikaži statistiko" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "P&reostali čas" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "Prikaži trenutni &čas" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "Prikaži ime &datoteke" msgctxt "POPUP" msgid "&Output Range" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "&Senčilniki" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Audio pretok" +msgid "&Audio Track" +msgstr "&Zvočni zapis" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Podnapisi" +msgid "Su&btitle Track" +msgstr "Zapis &podnapisov" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Video pretok" +msgid "&Video Track" +msgstr "&Video zapis" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Po predvajanj&u" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "&Ne naredi ničesar" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Predvajaj &naslednjo datoteko v imeniku" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Izklopi &monitor" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Izhod" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Zakleni" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Izklopi &monitor" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Krmarjenje" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sl.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sl.strings.po index acc544df122..23ed7350a26 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sl.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sl.strings.po @@ -1,16 +1,16 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # fubuzz , 2014 -# shvala , 2013-2014 +# shvala , 2013-2015 # Underground78, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-19 22:15:16+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: JellyFrog\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-31 14:58+0000\n" +"Last-Translator: shvala \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/mpc-hc/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -327,12 +327,12 @@ msgid "On/Off" msgstr "Vklj./Izklj." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Od fps" +msgid "From FPS" +msgstr "Od FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Do fps" +msgid "To FPS" +msgstr "Do FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -623,7 +623,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Isto kot VMR-9 (brez izrisovalnika), vendar uporablja pravo bikubično spreminjanje velikosti v dveh prehodih." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Se priključi na katerikoli medij tipa video, vendar ne pošilja naprej nič. Uporabi ko ne potrebujete prikaza slike in želite CPU prihraniti nepotrebno delo." msgctxt "IDC_DSNULL_UNCOMP" @@ -890,7 +890,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Utišaj" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Vključi zvok" @@ -1340,7 +1340,7 @@ msgstr "" msgctxt "IDS_NAVIGATION_WATCH" msgid "Watch" -msgstr "" +msgstr "Opazuj" msgctxt "IDS_NAVIGATION_MOVE_UP" msgid "Move Up" @@ -1352,27 +1352,47 @@ msgstr "Premakni dol" msgctxt "IDS_NAVIGATION_SORT" msgid "Sort by LCN" -msgstr "" +msgstr "Sortiraj po LCN" msgctxt "IDS_NAVIGATION_REMOVE_ALL" msgid "Remove all" -msgstr "" +msgstr "Odstrani vse" msgctxt "IDS_REMOVE_CHANNELS_QUESTION" msgid "Are you sure you want to remove all channels from the list?" -msgstr "" +msgstr "Ste prepričani, da želite odstraniti vse kanale iz seznama?" msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" msgid "No information available" -msgstr "" +msgstr "Informacije niso na voljo" msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" msgid "Please wait, analysis in progress..." -msgstr "" +msgstr "Prosimo počakajte, analiza poteka..." msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" -msgstr "" +msgstr "AR %d:%d" + +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Omogoči beleženje v datoteko (zahteva ponovni zagon) " + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Preostali čas" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Visoka natančnost" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "Po predvajanju prevrti trenutno datoteko" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "Po predvajanju: Zapri" msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" @@ -1423,11 +1443,11 @@ msgid "Stop" msgstr "Stop" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Slike korakoma" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Slike korakoma nazaj" msgctxt "IDS_AG_GO_TO" @@ -1527,8 +1547,8 @@ msgid "Thumbnails saved successfully" msgstr "Predogledne sličice uspešno shranjene" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "&Video pretok" +msgid "&Video Track" +msgstr "&Video zapis" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1650,14 +1670,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Premakni podnapis v desno" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Prikaži stat." - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Skoči na začetek" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: Prikaži ime datoteke" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: Prikaži statistiko izrisovalnika " + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: Ponastavi statistiko izrisovalnika" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Podnapisi::Razno" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "&Skrij okvir" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "&Samo slika" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Prikaži meni in napi&se" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "&Skrij meni" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Napredno" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Minimalni pogled" @@ -1891,12 +1943,12 @@ msgid "Boss key" msgstr "Šef tipka (Boss key)" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Meni predvajalnika (kratek)" +msgid "Player Menu" +msgstr "Meni predvajalnika" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Meni predvajalnika (dolg)" +msgid "Player Menu (full)" +msgstr "Meni predvajalnika (poln)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1974,9 +2026,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Vklj/Izklj podnapis (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Preostali čas" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: Prikaži trenutni čas" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2068,7 +2120,7 @@ msgstr "Kot: %02lu/%02lu, %lux%lu %luHz %lu:%lu" msgctxt "IDS_MAINFRM_11" msgid "%s, %s %u Hz %d bits %d %s" -msgstr "" +msgstr "%s, %s %u Hz %d bitov %d %s" msgctxt "IDS_ADD_TO_PLAYLIST" msgid "Add to MPC-HC Playlist" @@ -2132,7 +2184,7 @@ msgstr "DVD: Nezdružljive regije diska in dekoderja" msgctxt "IDS_D3DFS_WARNING" msgid "This option is designed to avoid tearing. However, it will also prevent MPC-HC from displaying the context menu and any dialog box during playback.\n\nDo you really want to activate this option?" -msgstr "" +msgstr "Ta možnost je načrtovana v izogib trganju. Bo pa poleg tega preprečila MPC-HC, da prikaže priročni meni ali katerokoli drugo pogovorno okno med predvajanjem.\n\nRes želiš aktivirati to možnost?" msgctxt "IDS_MAINFRM_139" msgid "Sub delay: %ld ms" @@ -2287,8 +2339,8 @@ msgid "Out of memory" msgstr "Zmanjkalo pomnilnika" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Napaka: Potreben je Flash predvajalnik za IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Napaka: Potreben je Flash predvajalnik za Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2359,7 +2411,7 @@ msgid "Toggle Caption&Menu" msgstr "Preklopi meni in napise" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Preklopi iskalec" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2515,8 +2567,8 @@ msgid "Volume boost Max" msgstr "Ojačitev glasnosti maks" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Uporaba: mpc-hc.exe \"pot\" [stikala]\n\n\"pot\"\t\tGlavna datoteka ali imenik, ki naj bo naložen\n\t\t(nadomestni znaki dovoljeni)\n/dub \"ime\"\tNaloži dodatno zvočno datoteko\n/dubdelay \"ime\"\tNaloži dodatno zvočno datoteko zamaknjeno za XXms\n\t\t(če datoteka vsebuje \"...DELAY XXms...\")\n/d3dfs\t\tZačni izrisovanje v D3D celozaslonskem načinu\n/sub \"ime\"\tNaloži dodatno datoteko podnapisov\n/filter \"ime filtra\"\tNaloži DirectShow filtre iz dinamično povezane\n\t\tknjižnice (nadomestni znaki dovoljeni)\n/dvd\t\tZaženi v dvd načinu, \"pot\" pomeni dvd\n\t\timenik (opcija)\n/dvdpos T#C\tZačni predvajanje z naslovom T, poglavje C\n/dvdpos T#hh:mm\tZačni predvajanje z naslovom T, pozicijo hh:mm:ss\n/cd\t\tNaloži vse zapise zvočnega CDja ali (s)vcd,\n\t\t\"ime datoteke\" pomeni pot pogona (opcija)\n/open\t\tOdpri datoteko, ne začni samodejno predvajati\n/play\t\tZačni predvajati datoteko takoj ko se predvajalnik\n\t\tzažene\n/close\t\tZapri prevajalnik po predvajanju (deluje samo ko\n\t\tje uporabljen skupaj s /play)\n/shutdown\tZaustavi operacijski sistem po predvajanju\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tZačni v celozaslonskem načinu\n/minimized\tZačni minimirano\n/new\t\tUporabi novo inačico predvajalnika\n/add\t\tDodaj \"pot\" v seznam predvajanja, lahko je\n\t\tkombinirano z /open in /play\n/regvid\t\tUstvari povezave za video datoteke\n/regaud\t\tUstvari povezave za zvočne datoteke\n/regpl\t\tUstvari povezave za datoteke seznama predvajanja\n/regall\t\tustvari povezave za vse podprte vrste datotek\n/unregall\t\tOdstrani vse povezave datotek\n/start ms\t\tZačni predvajanje pri \"ms\" (= milisekund)\n/startpos hh:mm:ss\tZačni predvajanje pri poziciji hh:mm:ss\n/fixedsize w,h\tNastavi okno fiksne velikosti\n/monitor N\tZačni predvajalnik na zaslonu N, N se začne z 1\n/audiorenderer N\tZačni uporabljati zvočni predvajalnik N, N se začne z 1\n\t\t(glej nastavitve \"Izhod\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPonastavi privzete nastavitve\n/help /h /?\tPrikaži pomoč glede stikal ukazne vrstice\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Uporaba: mpc-hc.exe \"pot\" [stikala]\n\n\"pot\"\t\tGlavna datoteka ali imenik, ki naj bo naložen\n\t\t(nadomestni znaki dovoljeni)\n/dub \"ime\"\tNaloži dodatno zvočno datoteko\n/dubdelay \"ime\"\tNaloži dodatno zvočno datoteko zamaknjeno za XXms\n\t\t(če datoteka vsebuje \"...DELAY XXms...\")\n/d3dfs\t\tZačni izrisovanje v D3D celozaslonskem načinu\n/sub \"ime\"\tNaloži dodatno datoteko podnapisov\n/filter \"ime filtra\"\tNaloži DirectShow filtre iz dinamično povezane\n\t\tknjižnice (nadomestni znaki dovoljeni)\n/dvd\t\tZaženi v dvd načinu, \"pot\" pomeni dvd\n\t\timenik (opcija)\n/dvdpos T#C\tZačni predvajanje z naslovom T, poglavje C\n/dvdpos T#hh:mm\tZačni predvajanje z naslovom T, pozicijo hh:mm:ss\n/cd\t\tNaloži vse zapise zvočnega CDja ali (s)vcd,\n\t\t\"ime datoteke\" pomeni pot pogona (opcija)\n/open\t\tOdpri datoteko, ne začni samodejno predvajati\n/play\t\tZačni predvajati datoteko takoj ko se predvajalnik\n\t\tzažene\n/close\t\tZapri prevajalnik po predvajanju (deluje samo ko\n\t\tje uporabljen skupaj s /play)\n/shutdown\tZaustavi operacijski sistem po predvajanju\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tZačni v celozaslonskem načinu\n/minimized\tZačni minimirano\n/new\t\tUporabi novo inačico predvajalnika\n/add\t\tDodaj \"pot\" v seznam predvajanja, lahko je\n\t\tkombinirano z /open in /play\n/randomize\tRandomize the playlist\n/regvid\t\tUstvari povezave za video datoteke\n/regaud\t\tUstvari povezave za zvočne datoteke\n/regpl\t\tUstvari povezave za datoteke seznama predvajanja\n/regall\t\tustvari povezave za vse podprte vrste datotek\n/unregall\t\tOdstrani vse povezave datotek\n/start ms\t\tZačni predvajanje pri \"ms\" (= milisekund)\n/startpos hh:mm:ss\tZačni predvajanje pri poziciji hh:mm:ss\n/fixedsize w,h\tNastavi okno fiksne velikosti\n/monitor N\tZačni predvajalnik na zaslonu N, N se začne z 1\n/audiorenderer N\tZačni uporabljati zvočni predvajalnik N, N se začne z 1\n\t\t(glej nastavitve \"Izhod\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tPonastavi privzete nastavitve\n/help /h /?\tPrikaži pomoč glede stikal ukazne vrstice\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2698,40 +2750,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Zgoraj zadaj desno" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Ponastavi prikazano statistiko" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Podnapisi::Razno" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "&Skrij okvir" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "&Samo slika" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Prikaži meni in napi&se" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "&Skrij meni" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Napredno" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Nad iskalno vrstico" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Pod iskalno vrstico" msgctxt "IDS_VIDEO_STREAM" @@ -2899,8 +2923,8 @@ msgid "Other Audio" msgstr "Drug zvok" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2910,6 +2934,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus zvočni kodek" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2974,22 +3018,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus zvočni kodek" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Seznam predvajanja" @@ -3316,7 +3344,7 @@ msgstr "Ponastavi jakost zvoka: Izklj." msgctxt "IDS_SIZE_UNIT_BYTES" msgid "bytes" -msgstr "" +msgstr "bajtov" msgctxt "IDS_SIZE_UNIT_K" msgid "KB" @@ -3375,7 +3403,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Napaka pri razčlenitvi vnešene hitrosti prikaza slik!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Ne morem korakoma po slikah, poskusi z drugim video izrisovalnikom." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3466,7 +3494,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Uveljaviti morate nove nastavitve, preden jih lahko testirate." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Po predvajanju: Izhod" @@ -3496,11 +3524,11 @@ msgstr "Po predvajanju: Izključi monitor" msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" msgid "After Playback: Play next file in the folder" -msgstr "" +msgstr "Po predvajanju: predvajaj naslednjo datoteko v imeniku" msgctxt "IDS_AFTERPLAYBACK_DONOTHING" msgid "After Playback: Do nothing" -msgstr "" +msgstr "Po predvajanju: ne naredi ničesar" msgctxt "IDS_OSD_BRIGHTNESS" msgid "Brightness: %s" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sr.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sr.dialogs.po index b8b226c7fbc..2546abe551d 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sr.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sr.dialogs.po @@ -2,14 +2,14 @@ # Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Rancher , 2014 +# Rancher , 2014-2015 # vBm , 2014 # vBm , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-11 18:21+0000\n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-03-24 22:12+0000\n" "Last-Translator: Rancher \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/mpc-hc/language/sr/)\n" "MIME-Version: 1.0\n" @@ -111,7 +111,7 @@ msgid "Enable custom channel mapping" msgstr "Мапирање прилагођених канала" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Подешавање звучника за" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -119,7 +119,7 @@ msgid "input channels:" msgstr "улазна канала:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Држите Shift да бисте измене видели одмах након клика." msgctxt "IDD_GOTO_DLG_CAPTION" @@ -152,7 +152,7 @@ msgstr "&Пређи" msgctxt "IDD_OPEN_DLG_CAPTION" msgid "Open" -msgstr "Отвори" +msgstr "Отварање" msgctxt "IDD_OPEN_DLG_IDC_STATIC" msgid "Type the address of a movie or audio file (on the Internet or your computer) and the player will open it for you." @@ -571,7 +571,7 @@ msgid "Warning" msgstr "Упозорење" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Ако негде у поставкама графичке картице омогућите уклањање назубљености у режиму целог екрана, титлови неће изгледати боље, већ ћете само оптеретити процесор." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -683,11 +683,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Функције траке задатака из ОС Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Отвори претходну/следећу датотеку у фасцикли при коришћењу опције „Прескочи уназад/унапред“ када је у плеј-листи само једна датотека" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Прикажи време:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1279,8 +1279,8 @@ msgid "Enable automatic update check" msgstr "Аутоматска потражња ажурирања" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Застој између сваке провере:" +msgid "Check every:" +msgstr "Проверавај сваких:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1666,3 +1666,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "&У реду" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sr.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sr.menus.po index 1adf875fea8..39a596aae81 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sr.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sr.menus.po @@ -1,5 +1,5 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2013 see Authors.txt +# Copyright (C) 2002 - 2015 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Rancher , 2014 @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Тест на цепање слике" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Статистика" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Пр&еостало време" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "Модули за &сенчење" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Звук" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Титлови" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Ток &видео-записа" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "&Након репродукције" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Пусти &следећу датотеку" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Искључи &монитор" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Изађи из програма" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Закључај рачунар" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Искључи &монитор" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Пусти &следећу датотеку" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Навигација" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sr.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sr.strings.po index 07b9edfb735..43064ed57d4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sr.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sr.strings.po @@ -2,14 +2,14 @@ # Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# Rancher , 2014 +# Rancher , 2014-2015 # vBm , 2014 # vBm , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-11 19:52+0000\n" +"POT-Creation-Date: 2015-03-03 21:51:04+0000\n" +"PO-Revision-Date: 2015-03-24 22:12+0000\n" "Last-Translator: Rancher \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/mpc-hc/language/sr/)\n" "MIME-Version: 1.0\n" @@ -327,11 +327,11 @@ msgid "On/Off" msgstr "Укључено/искључено" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Од (FPS)" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "До (FPS)" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -623,7 +623,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Исто као и VMR-9 (без рендера), али користи двопролазни бикубни модул за промену величине." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Повезује се са било којим медијем попут видео-записа и нигде не шаље долазне узорке. Користите када вам није потребан приказ видеа у сврху штење процесорске снаге." msgctxt "IDC_DSNULL_UNCOMP" @@ -890,7 +890,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Искључи звук" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Укључи звук" @@ -1374,6 +1374,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Отвори уређај" @@ -1423,11 +1443,11 @@ msgid "Stop" msgstr "Заустави" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Корак унапред" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Корак уназад" msgctxt "IDS_AG_GO_TO" @@ -1527,8 +1547,8 @@ msgid "Thumbnails saved successfully" msgstr "Сличице су успешно сачуване" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Ток &видео-записа" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1650,14 +1670,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Помери титл удесно" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Статистика" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Пређи на почетак" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Титлови::Разно" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Сакриј &ивице" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Само кадар" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Прикажи &наслов и мени" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Сакриј &мени" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Напредно" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Минимални приказ" @@ -1891,12 +1943,12 @@ msgid "Boss key" msgstr "Главни тастер" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Мени плејера (кратак)" +msgid "Player Menu" +msgstr "Мени плејера" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Мени плејера (дуг)" +msgid "Player Menu (full)" +msgstr "Мени плејера (пун)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1974,13 +2026,13 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Укључи/искључи титл (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Преостало време" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" -msgstr "Изаберите фасциклу" +msgstr "Изабери фасциклу" msgctxt "IDS_FAVORITES_QUICKADDFAVORITE" msgid "Quick add favorite" @@ -2208,11 +2260,11 @@ msgstr "Титл: %s" msgctxt "IDS_MAINFRM_46" msgid "Select the path for the DVD/BD:" -msgstr "Изаберите путању DVD-а/BD-а:" +msgstr "Избор путање DVD-а/BD-а" msgctxt "IDS_SUB_LOADED_SUCCESS" msgid " loaded successfully" -msgstr "успешно учитано" +msgstr " успешно учитано" msgctxt "IDS_ALL_FILES_FILTER" msgid "All files (*.*)|*.*||" @@ -2287,8 +2339,8 @@ msgid "Out of memory" msgstr "Нема меморије" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Грешка: потребан је Flash Player за IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Грешка: потребан је Adobe Flash Player за Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2344,7 +2396,7 @@ msgstr "Не могу да креирам датотеку исписа стањ msgctxt "IDS_MAINFRM_DIR_TITLE" msgid "Select Directory" -msgstr "Изабери фасциклу" +msgstr "Избор фасцикле" msgctxt "IDS_MAINFRM_DIR_CHECK" msgid "Include subdirectories" @@ -2359,7 +2411,7 @@ msgid "Toggle Caption&Menu" msgstr "Укључи/искључи наслов и мени" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Укључи/искључи траку за премотавање" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2515,8 +2567,8 @@ msgid "Volume boost Max" msgstr "Максимално појачање звука" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Употреба: mpc-hc.exe „pathname“ [прекидачи]\n\n„pathname“\tДатотека или фасцикла за отварање (дозвољени су џокери; цртица (-) означава стандардни улаз)\n/dub „dubname“\tУчитајте додатну аудио-датотеку\n/dubdelay „file“\tУчитајте додатну аудио-датотеку уз померање за XX мс (ако датотека садржи „…DELAY XXms…“)\n/d3dfs\t\tПокрени рендеровање у D3D режиму целог екрана\n/sub „subname“\tУчитајте додатну датотеку титла\n/filter „filtername“\tУчитајте филтере DirectShow-а из DLL-а (дозвољени су џокери)\n/dvd\t\tПокрените у режиму DVD-а; „pathname“ означава фасциклу DVD-а (необавезно)\n/dvdpos T#C\tРепродукујте од наслова Н, поглавља П\n/dvdpos T#hh:mm\tРепродукујте од наслова Н, позиције hh:mm:ss\n/cd\t\tУчитајте све записе аудио CD-а или (S)VCD-а;\n\t\t„pathname“ означава путању погонске јединице (необавезно)\n/device\t\tОтворите подразумевани видео-уређај\n/open\t\tОтворите датотеку без покретања репродукције\n/play\t\tЗапочните репродукцију одмах по покретању плејера\n/close\t\tЗатворите плејер након репродукције (ради само у комбинацији са „/play“)\n/shutdown\tИскључите рачунар након репродукције\n/standby\t\tПребаците рачунар у стање приправности након репродукције\n/hibernate\tПребаците рачунар у хибернацију након репродукције\n/logoff\t\tОдјавите се након репродукције\n/lock\t\tЗакључајте рачунар након репродукције\n/monitoroff\tИскључите монитор након репродукције\n/playnext\t\tОтворите следећу датотеку у фасцикли након репродукције\n/fullscreen\tЗапочните у режиму целог екрана\n/minimized\tЗапочните у режиму приказа у прозору\n/new\t\tОтворите нови примерак плејера\n/add\t\tДодајте „pathname“ у плеј-листу; може да се комбинује са „/open“ и „/play“\n/regvid\t\tПовежите програм са датотекама видео-записа\n/regaud\t\tПовежите програм са датотекама аудио-записа\n/regpl\t\tПовежите програм са датотекама плеј-листи\n/regall\t\tПовежите програм са свим подржаним форматима\n/unregall\t\tУклоните повезаност са свим датотекама\n/start ms\t\tЗапочните репродукцију у милисекундама\n/startpos hh:mm:ss\tЗапочните репродукцију на позицији hh:mm:ss\n/fixedsize w,h\tПоставите фиксну величину прозора\n/monitor N\tПокрените плејер на монитору N, где је N – 1 па навише\n/audiorenderer N\tКористите аудио-рендерер N, где је N – 1 па навише\n\t\t(погледајте излазне опције)\n/shaderpreset „Pr“\tКористите шаблон „Pr“ модула за сенчење\n/pns „name“\tИзаберите име шаблона за размеру и положај кадра\n/iconsassoc\tПоново повежите иконе са форматима\n/nofocus\t\tОтворите MPC-HC у позадини\n/webport N\tПокрените веб-интерфејс на наведеном порту\n/debug\t\tПрикажите извод модула за отклањање грешака у OSD-у\n/nominidump\tОнемогућите креирање мини-исписа стања меморије\n/slave „hWnd“\tКористите MPC-HC као роба\n/reset\t\tУспоставите почетне вредности\n/help /h /?\tПрикажите помоћ у вези са прекидачима командне линије\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Употреба: mpc-hc.exe „pathname“ [прекидачи]\n\n„pathname“\tДатотека или фасцикла за отварање (дозвољени су џокери; цртица (-) означава стандардни улаз)\n/dub „dubname“\tУчитајте додатну аудио-датотеку\n/dubdelay „file“\tУчитајте додатну аудио-датотеку уз померање за XX мс (ако датотека садржи „…DELAY XXms…“)\n/d3dfs\t\tПокрени рендеровање у D3D режиму целог екрана\n/sub „subname“\tУчитајте додатну датотеку титла\n/filter „filtername“\tУчитајте филтере DirectShow-а из DLL-а (дозвољени су џокери)\n/dvd\t\tПокрените у режиму DVD-а; „pathname“ означава фасциклу DVD-а (необавезно)\n/dvdpos T#C\tРепродукујте од наслова Н, поглавља П\n/dvdpos T#hh:mm\tРепродукујте од наслова Н, позиције hh:mm:ss\n/cd\t\tУчитајте све записе аудио CD-а или (S)VCD-а;\n\t\t„pathname“ означава путању погонске јединице (необавезно)\n/device\t\tОтворите подразумевани видео-уређај\n/open\t\tОтворите датотеку без покретања репродукције\n/play\t\tЗапочните репродукцију одмах по покретању плејера\n/close\t\tЗатворите плејер након репродукције (ради само у комбинацији са „/play“)\n/shutdown\tИскључите рачунар након репродукције\n/standby\t\tПребаците рачунар у стање приправности након репродукције\n/hibernate\tПребаците рачунар у хибернацију након репродукције\n/logoff\t\tОдјавите се након репродукције\n/lock\t\tЗакључајте рачунар након репродукције\n/monitoroff\tИскључите монитор након репродукције\n/playnext\t\tОтворите следећу датотеку у фасцикли након репродукције\n/fullscreen\tЗапочните у режиму целог екрана\n/minimized\tЗапочните у режиму приказа у прозору\n/new\t\tОтворите нови примерак плејера\n/add\t\tДодајте „pathname“ у плеј-листу; може да се комбинује са „/open“ и „/play“\n/randomize\tRandomize the playlist\n/regvid\t\tПовежите програм са датотекама видео-записа\n/regaud\t\tПовежите програм са датотекама аудио-записа\n/regpl\t\tПовежите програм са датотекама плеј-листи\n/regall\t\tПовежите програм са свим подржаним форматима\n/unregall\t\tУклоните повезаност са свим датотекама\n/start ms\t\tЗапочните репродукцију у милисекундама\n/startpos hh:mm:ss\tЗапочните репродукцију на позицији hh:mm:ss\n/fixedsize w,h\tПоставите фиксну величину прозора\n/monitor N\tПокрените плејер на монитору N, где је N – 1 па навише\n/audiorenderer N\tКористите аудио-рендерер N, где је N – 1 па навише\n\t\t(погледајте излазне опције)\n/shaderpreset „Pr“\tКористите шаблон „Pr“ модула за сенчење\n/pns „name“\tИзаберите име шаблона за размеру и положај кадра\n/iconsassoc\tПоново повежите иконе са форматима\n/nofocus\t\tОтворите MPC-HC у позадини\n/webport N\tПокрените веб-интерфејс на наведеном порту\n/debug\t\tПрикажите извод модула за отклањање грешака у OSD-у\n/nocrashreporter\tDisable the crash reporter\n/slave „hWnd“\tКористите MPC-HC као роба\n/reset\t\tУспоставите почетне вредности\n/help /h /?\tПрикажите помоћ у вези са прекидачима командне линије\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2698,40 +2750,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Врх задњи десни" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Поништи статистику" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Титлови::Разно" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Сакриј &ивице" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Само кадар" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Прикажи &наслов и мени" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Сакриј &мени" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Напредно" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "изнад траке за премотавање" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "испод траке за премотавање" msgctxt "IDS_VIDEO_STREAM" @@ -2899,8 +2923,8 @@ msgid "Other Audio" msgstr "Други аудио-формати" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2910,6 +2934,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2974,22 +3018,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Плеј-листа" @@ -3375,7 +3403,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Грешка приликом обраде наведене учесталости кадрова!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Не могу да премотавам по кадровима. Пробајте други видео-рендерер." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3466,7 +3494,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Потребно је да примените нове поставке пре њиховог тестирања." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Након репродукције: изађи из програма" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.strings.pot b/src/mpc-hc/mpcresources/PO/mpc-hc.strings.pot index b82d9e9b59d..c63729a3e43 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.strings.pot +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.strings.pot @@ -1,10 +1,10 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -322,11 +322,11 @@ msgid "On/Off" msgstr "" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -618,7 +618,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "" msgctxt "IDC_DSNULL_UNCOMP" @@ -885,7 +885,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "" @@ -1369,6 +1369,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "" @@ -1418,11 +1438,11 @@ msgid "Stop" msgstr "" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "" msgctxt "IDS_AG_GO_TO" @@ -1522,7 +1542,7 @@ msgid "Thumbnails saved successfully" msgstr "" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" +msgid "&Video Track" msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" @@ -1645,14 +1665,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "" @@ -1886,11 +1938,11 @@ msgid "Boss key" msgstr "" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" +msgid "Player Menu" msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" +msgid "Player Menu (full)" msgstr "" msgctxt "IDS_AG_FILTERS_MENU" @@ -1969,8 +2021,8 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" @@ -2282,7 +2334,7 @@ msgid "Out of memory" msgstr "" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" msgstr "" msgctxt "IDS_MAINFRM_78" @@ -2354,7 +2406,7 @@ msgid "Toggle Caption&Menu" msgstr "" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2510,7 +2562,7 @@ msgid "Volume boost Max" msgstr "" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" msgstr "" msgctxt "IDS_UNKNOWN_SWITCH" @@ -2693,40 +2745,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "" msgctxt "IDS_VIDEO_STREAM" @@ -2894,7 +2918,7 @@ msgid "Other Audio" msgstr "" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" +msgid "AC-3" msgstr "" msgctxt "IDS_MFMT_AIFF" @@ -2905,6 +2929,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "" @@ -2969,22 +3013,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "" @@ -3370,7 +3398,7 @@ msgid "Error parsing the entered frame rate!" msgstr "" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3461,7 +3489,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sv.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sv.dialogs.po index ce35bfaa873..7d42cbbe524 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sv.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sv.dialogs.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# JellyFrog, 2013-2014 +# JellyFrog, 2013-2015 # Apa , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-12-09 03:30+0000\n" -"Last-Translator: Apa \n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-03-26 23:10+0000\n" +"Last-Translator: JellyFrog\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/mpc-hc/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -110,16 +110,16 @@ msgid "Enable custom channel mapping" msgstr "Aktivera anpassad kanalmappning" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Högtalarkonfigurationen för " +msgid "Speaker configuration for" +msgstr "Högtalarkonfigurationen för" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "ingångskanaler:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Håll in skift för omedelbara förändringar när du klickar på något " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Håll in skift för omedelbara förändringar när du klickar på något" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Varning" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Om du aktiverar helskärmskantutjämning i ditt grafikkorts inställningar kommer undertexter inte se bättre ut, men det kommer troligen att belasta din processor." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Använd Windows 7 aktivitetsfältsfunktioner" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Gör så att \"Framåt/Tillbaka\" öppnar nästa/tidigare fil i mappen när det bara finns en fil i spelningslistan" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Visa tidsverktygstips:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -871,11 +871,11 @@ msgstr "&Spara" msgctxt "IDD_PNSPRESET_DLG_IDC_STATIC" msgid "Pos: 0.0 -> 1.0" -msgstr "Pos: 0.0 -> 1.0" +msgstr "Pos: 0,0 -> 1,0" msgctxt "IDD_PNSPRESET_DLG_IDC_STATIC" msgid "Zoom: 0.2 -> 3.0" -msgstr "Zoom: 0.2 -> 3.0" +msgstr "Zoom: 0,2 -> 3,0" msgctxt "IDD_PPAGEACCELTBL_IDC_CHECK2" msgid "Global Media Keys" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Aktivera automatiskt uppdateringskontroll" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Tid mellan varje kontroll:" +msgid "Check every:" +msgstr "Kolla varje:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "OK" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sv.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sv.menus.po index 02c9553da50..6f5b3073074 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sv.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sv.menus.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the MPC-HC package. # Translators: # kasper93, 2013 -# JellyFrog, 2013-2014 +# JellyFrog, 2013-2015 # Apa , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" "POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-12-09 03:30+0000\n" -"Last-Translator: Apa \n" +"PO-Revision-Date: 2015-03-26 23:21+0000\n" +"Last-Translator: JellyFrog\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/mpc-hc/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Tearingtest" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Visa Statistik" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Återstående Tid" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -288,15 +292,15 @@ msgstr "Omgivnings&ljus" msgctxt "ID_VIEW_CM_AMBIENTLIGHT_BRIGHT" msgid "&Bright (2.2 Gamma)" -msgstr "&Ljust (2.2 Gamma)" +msgstr "&Ljus (2,2 Gamma)" msgctxt "ID_VIEW_CM_AMBIENTLIGHT_DIM" msgid "&Dim (2.35 Gamma)" -msgstr "&Svagt (2.35 Gamma)" +msgstr "&Svag (2,35 Gamma)" msgctxt "ID_VIEW_CM_AMBIENTLIGHT_DARK" msgid "D&ark (2.4 Gamma)" -msgstr "&Mörkt (2.4 Gamma)" +msgstr "&Mörk (2,4 Gamma)" msgctxt "POPUP" msgid "&Rendering Intent" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "S&haders" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Ljud" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Un&dertexter" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "Videos&tröm" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Efter &Uppspelning" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Spela &nästa fil i mappen" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Stäng av &bildskärmen" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Avsluta" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Lås" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Stäng av &bildskärmen" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Spela &nästa fil i mappen" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Navigera" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.sv.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.sv.strings.po index 12fa04c5eed..e996727f7f8 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.sv.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.sv.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# JellyFrog, 2013-2014 +# JellyFrog, 2013-2015 # Apa , 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-09 03:40+0000\n" -"Last-Translator: Apa \n" +"POT-Creation-Date: 2015-03-26 22:39:02+0000\n" +"PO-Revision-Date: 2015-03-27 09:08+0000\n" +"Last-Translator: JellyFrog\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/mpc-hc/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,11 +326,11 @@ msgid "On/Off" msgstr "Aktiverat" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Från FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "Till FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Samma som VMR-9 (renderlös), men använder en äkta tvåstegs-bikubisk omskalare." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Ansluts till vilken videoliknande medietyp som helst, men skickar inte den inkommande datan någonstans. Använd när du inte behöver se videobildrutorna och vill undvika att centralprocessorn arbetar i onödan." msgctxt "IDC_DSNULL_UNCOMP" @@ -889,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Ljud av" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Ljud på" @@ -1143,7 +1143,7 @@ msgstr "Mediefiler (alla typer)" msgctxt "IDS_AG_ALLFILES" msgid "All files (*.*)|*.*|" -msgstr "All filer (*.*)|*.*|" +msgstr "Alla filer (*.*)|*.*|" msgctxt "IDS_AG_AUDIOFILES" msgid "Audio files (all types)" @@ -1373,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "Bildformat %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Öppna Enhet" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Stoppa" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Bild steg" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Bild steg tillbaka" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Miniatyrerna har sparats" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Video S&tream" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Shift Undertext Höger" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Visa Statistik" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Hoppa till början" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Undertexter::Div" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Göm kanter" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Endast Ram" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Visa Rubrik && Meny" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Dölj menyraden" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Avancerat" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Visa Minimal" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Boss-knapp" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Spelarmeny (kort)" +msgid "Player Menu" +msgstr "Spelarmeny" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Spelarmeny (lång)" +msgid "Player Menu (full)" +msgstr "Spelarmeny (full)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "På/Av Undertext (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Återstående tid" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Slut på ledigt minne" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Error: Flash for IE is required" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Error: Flash for Internet Explorer is required" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Växla Rubrik && Meny" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Växla Sök Bar" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Volym-boost Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Användning: mpc-hc.exe \"sökväg\" [växlar]\n\n\"sökväg\"\t\tHuvudfilen eller katalog för att ladda (jokertecken\n\t\tstödjs, \"-\" denotes standard input)\n/dub \"fil\"\t\tLägg till ytterligare en ljudfil\n/dubdelay \"fil\"\tLägg till ytterligare en ljudfil skiftat med XXms (om\n\t\tfilen innehåller \"...DELAY XXms...\")\n/d3dfs\t\tBörja rendering i D3D helskärmsläge\n/sub \"fil\"\t\tLägg till ytterligare en undertextfil\n/filter \"filternamn\"\tLadda DirectShow filter från ett dynamiskt länk\n\t\tbibliotek (jokertecken stödjs)\n/dvd\t\tKör i DVD-läge, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStarta uppspelningen vid titel T, kapitel C\n/dvdpos T#hh:mm\tStarta uppspelningen vid titel T, tid hh:mm:ss\n/cd\t\tLadda alla spår av en ljud-CD eller (S)VCD,\n\t\t\"pathname\" innebär att enhetssökväg (valfritt)\n/device\t\tOpen the default video device\n/open\t\tÖppna filen, börja inte spela automatiskt\n/play\t\tBörja spela filen så fort spelaren\n\t\tstartar\n/close\t\tStäng spelaren efter uppspelningen (fungerar bara när\n\t\tanvänds med /play)\n/shutdown\tStänga av operativsystemet efter uppspelningen\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStarta i fullskärmsläge\n/minimerad\tStarta i minimerat läge\n/ny\t\tAnvänd en ny instans av spelaren\n/add\t\tLägg till \"pathname\" i spelningslista, kan kombineras\n\t\tmed /open och /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tSkapa filassociationer för ljudfiler\n/regpl\t\tSkapa filassociationer för spelningslista\n/regall\t\tSkapa filassociationer för för alla filtyper som stödjs\n/unregall\t\tTa bort alla filassociationer \n/start ms\t\tBörja spela vid \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tBörja spela vid tid hh:mm:ss\n/fixedsize w,h\tSätt fast fönsterstorlek\n/monitor N\tStart på bildskärm N, där N börjar från 1\n/ljudrenderare N\tBörja användaljudrenderare N, där N börjar från 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tÅterställ standardinställningar\n/help /h /?\tVisa hjälp för kommandoradsväxlar\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Användning: mpc-hc.exe \"sökväg\" [växlar]\n\n\"sökväg\"\t\tHuvudfilen eller katalog för att ladda (jokertecken\n\t\tstödjs, \"-\" denotes standard input)\n/dub \"fil\"\t\tLägg till ytterligare en ljudfil\n/dubdelay \"fil\"\tLägg till ytterligare en ljudfil skiftat med XXms (om\n\t\tfilen innehåller \"...DELAY XXms...\")\n/d3dfs\t\tBörja rendering i D3D helskärmsläge\n/sub \"fil\"\t\tLägg till ytterligare en undertextfil\n/filter \"filternamn\"\tLadda DirectShow filter från ett dynamiskt länk\n\t\tbibliotek (jokertecken stödjs)\n/dvd\t\tKör i DVD-läge, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStarta uppspelningen vid titel T, kapitel C\n/dvdpos T#hh:mm\tStarta uppspelningen vid titel T, tid hh:mm:ss\n/cd\t\tLadda alla spår av en ljud-CD eller (S)VCD,\n\t\t\"pathname\" innebär att enhetssökväg (valfritt)\n/device\t\tOpen the default video device\n/open\t\tÖppna filen, börja inte spela automatiskt\n/play\t\tBörja spela filen så fort spelaren\n\t\tstartar\n/close\t\tStäng spelaren efter uppspelningen (fungerar bara när\n\t\tanvänds med /play)\n/shutdown\tStänga av operativsystemet efter uppspelningen\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStarta i fullskärmsläge\n/minimerad\tStarta i minimerat läge\n/ny\t\tAnvänd en ny instans av spelaren\n/add\t\tLägg till \"pathname\" i spelningslista, kan kombineras\n\t\tmed /open och /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tSkapa filassociationer för ljudfiler\n/regpl\t\tSkapa filassociationer för spelningslista\n/regall\t\tSkapa filassociationer för för alla filtyper som stödjs\n/unregall\t\tTa bort alla filassociationer \n/start ms\t\tBörja spela vid \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tBörja spela vid tid hh:mm:ss\n/fixedsize w,h\tSätt fast fönsterstorlek\n/monitor N\tStart på bildskärm N, där N börjar från 1\n/ljudrenderare N\tBörja användaljudrenderare N, där N börjar från 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tÅterställ standardinställningar\n/help /h /?\tVisa hjälp för kommandoradsväxlar\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,41 +2749,13 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Övre bakre höger" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Återställ visningsstatistik" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Undertexter::Div" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Göm kanter" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Endast Ram" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Visa Rubrik && Meny" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Dölj menyraden" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Avancerat" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" -msgstr "Ovanför seekbar" +msgid "Above seek bar" +msgstr "Ovanför seek bar" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" -msgstr "Nedanför seekbar" +msgid "Below seek bar" +msgstr "Nedanför seek bar" msgctxt "IDS_VIDEO_STREAM" msgid "Video: %s" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Annat ljudformat" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Spelningslista" @@ -3091,15 +3119,15 @@ msgstr "Inmatningstyp: SDTV PAL" msgctxt "IDS_OSD_RS_AMBIENT_LIGHT_BRIGHT" msgid "Ambient Light: Bright (2.2 Gamma)" -msgstr "Omgivningsljus: Ljust (2.2 Gamma)" +msgstr "Omgivningsljus: Ljust (2,2 Gamma)" msgctxt "IDS_OSD_RS_AMBIENT_LIGHT_DIM" msgid "Ambient Light: Dim (2.35 Gamma)" -msgstr "Omgivningsljus: Svagt (2.35 Gamma)" +msgstr "Omgivningsljus: Svagt (2,35 Gamma)" msgctxt "IDS_OSD_RS_AMBIENT_LIGHT_DARK" msgid "Ambient Light: Dark (2.4 Gamma)" -msgstr "Omgivningsljus: Mörkt (2.4 Gamma)" +msgstr "Omgivningsljus: Mörkt (2,4 Gamma)" msgctxt "IDS_OSD_RS_REND_INTENT_PERCEPT" msgid "Rendering Intent: Perceptual" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Tolkningsfel av inskriven uppdateringfrekvens!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Kan inte bildstega, försök med en annan videorenderare." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Du måste tillämpa de nya inställningarna innan du testar dem." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Efter Uppspelning: Stäng" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.dialogs.po index 84006570e74..5dd84a71602 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# M. Somsak, 2014 +# M. Somsak, 2014-2015 # M. Somsak, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-26 05:00+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-19 11:29+0000\n" "Last-Translator: M. Somsak\n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/mpc-hc/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -110,7 +110,7 @@ msgid "Enable custom channel mapping" msgstr "ใช้การวางตำแหน่งช่อง ที่กำหนดเอง" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "การกำหนดค่าลำโพงสำหรับ" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -118,7 +118,7 @@ msgid "input channels:" msgstr "ช่องขาเข้า:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "เมื่อคลิกบางอย่าง กดปุ่ม Shift ค้างไว้ด้วยจะเปลี่ยนแปลงโดยทันที" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -570,8 +570,8 @@ msgid "Warning" msgstr "คำเตือน" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." -msgstr "ถ้าคุณฝืนและใช้งานการลดรอยหยักในโหมดเต็มจอบางที่ที่การตั้งค่าการ์ดจอของคุณ ศัพท์บรรยายจะไม่ได้ดูดีขึ้นแต่จะเปลือง cpu ของคุณ" +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." +msgstr "ถ้าคุณฝืนและใช้งานการลดรอยหยักในโหมดเต็มจอบางที่ที่การตั้งค่าการ์ดจอของคุณ ศัพท์บรรยายจะไม่ได้ดูดีขึ้นแต่จะเปลือง CPU ของคุณ" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" msgid "File extensions" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "ใช้คุณลักษณะ Windows 7 Taskbar" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "เปิดไฟล์ ก่อนหน้า/ถัดไป ในโฟลเดอร์ เมื่อเลือก \"ข้ามไปหลัง/ข้ามไปหน้า\" หากมีเพียงรายการเดียวในบัญชีการเล่น" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "ใช้ตัวบอกเวลา:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "ใช้งานการตรวจสอบการอัพเดตอัตโนมัติ" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "ช่วงของการตรวจสอบ:" +msgid "Check every:" +msgstr "ตรวจสอบทุก:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "ตกลง" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "รายงานข้อบกพร่อง" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "ขออภัย, ดูเหมือนว่า MPC-HC เกิดข้อบกพร่อง :(\n\nการายงานบั๊กจะถูกส่งเพื่อช่วยเราวินิจฉัยและแก้ไขปัญหา คุณสามารถให้ข้อมูลเพิ่มเติมได้ถ้าคุณต้องการ" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "อีเมล:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "ที่อยู่อีเมลของคุณอาจไม่จำเป็นต้องให้ แต่มันจะถูกใช้กรณีถ้านักพัฒนาต้องการติดต่อคุณเพื่อขอข้อมูลเพิ่มเติมเท่านั้น" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "บรรยายปัญหา (ใช้ภาษาอังกฤษเท่านั้น):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "ตกลง" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.menus.po index ee47bd1a9d0..95d500816bf 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.menus.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# M. Somsak, 2014 +# M. Somsak, 2014-2015 # M. Somsak, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 01:20+0000\n" -"Last-Translator: M. Somsak\n" +"POT-Creation-Date: 2015-05-15 16:53:42+0000\n" +"PO-Revision-Date: 2015-05-15 18:10+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/mpc-hc/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "ทดสอบการฉีกของ&ภาพ" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "แสดงส&ถิติ" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "เ&วลาที่เหลือ" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "เฉดเ&ดอร์" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "เ&สียง" +msgid "&Audio Track" +msgstr "แทร็คเ&สียง" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "ศัพท์&บรรยาย" +msgid "Su&btitle Track" +msgstr "แทร็คศัพท์&บรรยาย" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "กระแส&วิดีโอ" +msgid "&Video Track" +msgstr "แทร็ค&วิดีโอ" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "หลังเล่น&จบ" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "เล่นไฟล์&ถัดไปในโฟลเดอร์" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "ปิด&จอภาพ" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&ออก" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&ล็อค" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "ปิด&จอภาพ" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "เล่นไฟล์&ถัดไปในโฟลเดอร์" - msgctxt "POPUP" msgid "&Navigate" msgstr "&นำทาง" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.strings.po index f9b787a5c1c..4380b1cd480 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# M. Somsak, 2014 +# M. Somsak, 2014-2015 # M. Somsak, 2014 # M. Somsak, 2014 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-26 21:31:55+0000\n" -"PO-Revision-Date: 2014-10-27 01:20+0000\n" +"POT-Creation-Date: 2015-05-15 16:53:42+0000\n" +"PO-Revision-Date: 2015-05-19 11:29+0000\n" "Last-Translator: M. Somsak\n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/mpc-hc/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -327,12 +327,12 @@ msgid "On/Off" msgstr "เปิด/ปิด" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "จาก fps" +msgid "From FPS" +msgstr "จาก FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "สู่ fps" +msgid "To FPS" +msgstr "สู่ FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -623,8 +623,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "เหมือนกับ VMR-9 (renderless) เว้นแต่ใช้ตัวปรับขนาด true two-pass bicubic" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "เชื่อมต่อกับชนิดสื่อที่คล้ายวิดีโอใดๆก็ตาม และจะไม่ส่งตัวอย่างที่เข้ามาไปยังที่ใด ใช้มันถ้าคุณไม่ต้องการแสดงผลวิดีโอและต้องการประหยัดกำลัง cpu จากการทำงานที่ไม่จำเป็น" +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "เชื่อมต่อกับชนิดสื่อที่คล้ายวิดีโอใดๆก็ตาม และจะไม่ส่งตัวอย่างที่เข้ามาไปยังที่ใด ใช้มันถ้าคุณไม่ต้องการแสดงผลวิดีโอและต้องการประหยัดกำลัง CPU จากการทำงานที่ไม่จำเป็น" msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -890,7 +890,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "เงียบเสียง" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "เปิดเสียง" @@ -1372,6 +1372,26 @@ msgstr "โปรดรอ, การวิเคราะห์กำลัง msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" +msgstr "อัตราส่วนฯ %d:%d" + +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "ใช้งานการจดข้อมูลลงสู่ไฟล์ (ต้องเริ่มใหม่)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "เวลาที่เหลือ" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "แม่นยำสูง" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" msgstr "" msgctxt "IDS_AG_OPEN_DEVICE" @@ -1423,11 +1443,11 @@ msgid "Stop" msgstr "หยุด" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "เดินเฟรม" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "ถอยเฟรม" msgctxt "IDS_AG_GO_TO" @@ -1527,8 +1547,8 @@ msgid "Thumbnails saved successfully" msgstr "รูปย่อถูกบันทึกสำเร็จ" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "กระแส&วิดีโอ" +msgid "&Video Track" +msgstr "แทร็ค&วิดีโอ" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1650,14 +1670,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "ขยับศัพท์บรรยายไปขวา" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "แสดงสถิติ" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "ก้าวไปจุดเริ่มต้น" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: แสดงชื่อไฟล์" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: แสดงสถิติของตัวแปลผล" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: ตั้งค่าสถิติตัวแปลผลใหม่" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "ศัพท์บรรยาย::จิปาถะ" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "ซ่อน&ขอบ" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "เฟรมเท่านั้น" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "แ&สดงข้อความและเมนู" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "ซ่อ&นเมนู" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "ขั้นสูง" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "มุมมองน้อยที่สุด" @@ -1891,12 +1943,12 @@ msgid "Boss key" msgstr "ปุ่มหลบเจ้านาย" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "เมนูเครื่องเล่น (สั้น)" +msgid "Player Menu" +msgstr "เมนูเครื่องเล่น" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "เมนูเครื่องเล่น (ยาว)" +msgid "Player Menu (full)" +msgstr "เมนูเครื่องเล่น (ครบ)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1974,9 +2026,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "เปิด/ปิด ศัพท์บรรยาย (ดีวีดี)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "เวลาที่เหลือ" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: แสดงเวลาปัจจุบัน" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2287,8 +2339,8 @@ msgid "Out of memory" msgstr "หน่วยความจำไม่เพียงพอ" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "ผิดพลาด: ต้องการตัวเล่นแฟลชสำหรับ IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "ผิดพลาด: ต้องการตัวเล่นแฟลชสำหรับ Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2359,7 +2411,7 @@ msgid "Toggle Caption&Menu" msgstr "เปิดปิด ข้อความและเมนู" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "เปิดปิด ตัวเลื่อนหา" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2515,8 +2567,8 @@ msgid "Volume boost Max" msgstr "เสริมความดัง สูงสุด" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "วิธีใช้: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "วิธีใช้: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2698,40 +2750,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "บน หลัง ขวา" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "คืนค่าสถิติแสดงผล" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "ศัพท์บรรยาย::จิปาถะ" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "ซ่อน&ขอบ" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "เฟรมเท่านั้น" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "แ&สดงข้อความและเมนู" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "ซ่อ&นเมนู" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "ขั้นสูง" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "เหนือแถบเลื่อนหา" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "ล่างแถบเลื่อนหา" msgctxt "IDS_VIDEO_STREAM" @@ -2899,8 +2923,8 @@ msgid "Other Audio" msgstr "เสียงอื่นๆ" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2910,6 +2934,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2974,22 +3018,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "บัญชีการเล่น" @@ -3316,7 +3344,7 @@ msgstr "ฟื้นค่าความดัง: ปิด" msgctxt "IDS_SIZE_UNIT_BYTES" msgid "bytes" -msgstr "" +msgstr "ไบต์" msgctxt "IDS_SIZE_UNIT_K" msgid "KB" @@ -3375,7 +3403,7 @@ msgid "Error parsing the entered frame rate!" msgstr "ผิดพลาดในการวิเคราะห์อัตราเฟรมที่ใส่!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "ไม่สามารถเดินเฟรม โปรดลองตัวแปลผลวิดีโอชนิดอื่น" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3466,7 +3494,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "คุณจำเป็นต้องใช้งานการตั้งค่าใหม่ ก่อนจะทดสอบพวกมัน" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "หลังเล่นจบ: ออก" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.tr.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.tr.dialogs.po index 4861ba83ff7..a15d7fae294 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.tr.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.tr.dialogs.po @@ -1,15 +1,16 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Burak , 2013 -# Sinan H., 2014 +# Mesut Aktaş , 2015 +# Sinan H., 2014-2015 # Sinan H., 2013 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-04-18 17:43+0000\n" "Last-Translator: Sinan H.\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/mpc-hc/language/tr/)\n" "MIME-Version: 1.0\n" @@ -111,7 +112,7 @@ msgid "Enable custom channel mapping" msgstr "Özel kanal adreslemesini kullan" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Hoparlör sayısını ve çıkışını :" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -119,7 +120,7 @@ msgid "input channels:" msgstr "kanallı olarak ayarla" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Ayarların hemen geçerli olabilmesi için tıklarken Shift tuşuna basınız" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -571,7 +572,7 @@ msgid "Warning" msgstr "Uyarı" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Ekran kartınızın ayarlarından Tam ekran keskinlik yumuşatması seçeneğini açarsanız, alt yazılar düzgün görülmeyecek ve daha fazla işlemci kullanımına neden olacaktır." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -683,11 +684,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows 7 görev çubuğu özelliklerini kullan" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Oynatma listesinde tek nesne varken \"Geri/ileri git\" tuşuyla önceki/sonraki dosyayı aç" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Süre gösterim yerleşimi:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1279,8 +1280,8 @@ msgid "Enable automatic update check" msgstr "Otomatik güncelleştirmeleri aç" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Güncelleştirme kontrolü :" +msgid "Check every:" +msgstr "Kontrol süresi:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1666,3 +1667,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "Tamam" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.tr.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.tr.menus.po index f8987a47e0b..d14683ac388 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.tr.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.tr.menus.po @@ -1,17 +1,17 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Burak , 2013 -# Devrim Yolo , 2013 +# Devrim, 2013 # kasper93, 2013 -# Sinan H., 2014 +# Sinan H., 2014-2015 # Sinan H., 2013 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-11-26 19:41+0000\n" +"POT-Creation-Date: 2015-04-06 16:31:55+0000\n" +"PO-Revision-Date: 2015-04-18 17:45+0000\n" "Last-Translator: Sinan H.\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/mpc-hc/language/tr/)\n" "MIME-Version: 1.0\n" @@ -200,13 +200,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Kopukluk Testi" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&İstatistikleri Göster" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Kalan Süre" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -557,16 +561,16 @@ msgid "S&haders" msgstr "T&onlamalar" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Ses" +msgid "&Audio Track" +msgstr "&Ses Parçası" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "Al&t Yazılar" +msgid "Su&btitle Track" +msgstr "Al&t Yazı Parçası" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Video Akışı" +msgid "&Video Track" +msgstr "&Video Parçası" msgctxt "POPUP" msgid "&Volume" @@ -588,7 +592,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Oy&natmadan Sonra" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Klasördeki &sıradaki dosyayı yürüt" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "E&kranı kapat" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Kapat " @@ -612,14 +628,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Kilitle" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "E&kranı kapat" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Klasördeki &sıradaki dosyayı yürüt" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Yönetim" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.tr.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.tr.strings.po index 403c84a3b16..c0c7ece014e 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.tr.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.tr.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Burak , 2013 -# Sinan H., 2014 +# Sinan H., 2014-2015 # Sinan H., 2013 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-12-08 16:40+0000\n" +"POT-Creation-Date: 2015-04-15 21:44:52+0000\n" +"PO-Revision-Date: 2015-04-18 17:45+0000\n" "Last-Translator: Sinan H.\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/mpc-hc/language/tr/)\n" "MIME-Version: 1.0\n" @@ -327,12 +327,12 @@ msgid "On/Off" msgstr "Aç/Kapat" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "İlk fps" +msgid "From FPS" +msgstr "İlk FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Son fps" +msgid "To FPS" +msgstr "Son FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -623,8 +623,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "VKI-9 (çevrilmeden) gibidir, ancak gerçek çift-geçişli kübik boyutlandırıcı kullanır." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Her video benzeri medya biçimine bağlanır ve dahili örnekleri bir yere göndermez. Video gösterimine ihtiyaç duymadığınız ve işlemciyi pek az kullanmak istediğiniz durumlarda bu seçeneği seçiniz." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Herhangi bir video benzeri medya biçimine bağlanır ve dahili örnekleri bir yere göndermez. Video gösterimine ihtiyaç duymadığınız ve işlemciyi pek az kullanmak istediğiniz durumlarda bu seçeneği seçiniz." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -890,7 +890,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Sesi Kıs" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Sesi Aç" @@ -1374,6 +1374,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "AR %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Dosya kaydı oluşturur (yeniden başlatma gerektirir)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Kalan süre" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Yüksek hassasiyet" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Aygıt Aç" @@ -1423,11 +1443,11 @@ msgid "Stop" msgstr "Durdur" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Görüntü atlama" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Görüntü atlama (geriye)" msgctxt "IDS_AG_GO_TO" @@ -1527,8 +1547,8 @@ msgid "Thumbnails saved successfully" msgstr "Küçük resim başarıyla kaydedildi" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Video A&kışı" +msgid "&Video Track" +msgstr "&Video Parçası" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1650,14 +1670,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Alt Yazıyı Sağa Kaydır" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "İstatistikleri Görüntüle" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Başa dön" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Alt Yazılar::Diğer" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Kenarları gizle" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Sadece çerçevede" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Başlık && Menü'yü göster" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Menüyü &Gizle" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Gelişmiş" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "En Az Ayrıntı" @@ -1891,12 +1943,12 @@ msgid "Boss key" msgstr "Ana Tuş" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Oynatıcı Menüsü (kısa)" +msgid "Player Menu" +msgstr "Oynatıcı Menüsü" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Oynatıcı Menüsü (uzun)" +msgid "Player Menu (full)" +msgstr "Oynatıcı Menüsü (detaylı)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1974,9 +2026,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Alt Yazıyı Aç/Kapat (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Kalan Süre" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2287,8 +2339,8 @@ msgid "Out of memory" msgstr "Yetersiz hafıza" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Hata: IE için Flash gerekiyor" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Hata: Internet Explorer için Adobe Flash Oynatıcısı gerekiyor" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2359,7 +2411,7 @@ msgid "Toggle Caption&Menu" msgstr "Başlık & Menü'ye Geç" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Aramaya Geç" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2515,8 +2567,8 @@ msgid "Volume boost Max" msgstr "Ses yüksekliği en fazla" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Kullanım: mpc-hc.exe \"konum\" [anahtarlar]\n\n\"yol_adı\"\t\tYüklenecek dosya veya klasör (özel\n\t\tkarakterler desteklenir, \"-\" varsayılan girişi gösterir)\n/dub \"dublaj_adı\"\tHarici bir ses dosyası yüklemek için\n/dubdelay \"dosya\"\tXXms olarak atlanacak harici bir ses dosyası yüklemek\n için (eğer dosya \"...GECİKME_XXms...\" içeriyorsa)\n/d3dfs\t\tTam ekran D3D kipinde oynatmak için\n/sub \"alt_yazı\"\t Harici bir alt yazı kullanmak için\n/filter \"filtre_adı\" Değişken bir bağlantıdan DirectShow süzgeçlerini\n\t\tyüklemek için (karakterler desteklenir)\n/dvd\t\tDVD kipinde çalıştırmak için, \"konum\" DVD klasörünü\n gösterir (seçmeli)\n/dvdpos T#C\tOynatma T başlığının, C bölümünden başlar\n/dvdpos T#ss:dd\t Oynatma T başlığının, ss:dd:ss süresinden başlar\n/cd\t\tSes veya (s)vcd'den tüm parçaları yüklemek için,\n\t\t\"konum\" Sürücü yolunu gösterir (seçmeli)\n/device\t\tVarsayılan video aygıtını açar\n/open\t\tDosya açılır, ancak otomatik olarak oynatılmaz\n/play \t\tOynatıcı açılır açılmaz yürütme \n\t\tbaşlatılır\n/close \t\tYürütmeden sonra oynatıcı kapatılır (sadece /play komutuyla\n\t\t kullanılır)\n/shutdown\t Oynatmadan sonra bilgisayar kapatılır\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen \tTam ekran kipinde başlatılır\n/minimized \tSimge durumunda başlatılır\n/new \t\tYeni bir oynatıcı penceresi kullanılır\n/add \t\t\"konum\" oynatma listesine eklenir, bu komutlarla birlikte\n\t\tkullanılabilir: /open ve /play\n/regvid\t\t Video biçimleri ilişkilendirilir\n/regaud \t\tSes biçimleri ilişkilendirilir\n/regpl\t\tOynatma listesi uygulamayla ilişkilendirilir\n/regall\t\tTüm dosya biçimleri uygulamayla ilişkilendirilir\n/unregall\t\tVideo biçimleri geri alınır\n/start ms \t\tOynatmaya \"ms\" (= mili saniye) sonra başlanılır\n/startpos ss:dd:ss \tOynatmaya ss:dd:ss süresinden başlanılır\n/fixedsize w,h\t Sabit pencere boyutu kullanılır\n/monitor N\tN monitöründe başlatılır; N, 1'den başlar\n/audiorenderer N \tSes çeviricisi N ile başlanılır; N, 1 ile başlar\n\t\t(\"Çıkış\" ayarlarına bakınız)\n/shaderpreset \"Pr\" \tKomut ile \"Pr\" tonlayıcı hazır ayarı kullanılır\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\t Varsayılan ayarlara geri dönülür\n/help /h /? \tKomut satırı anahtarları yardımı görüntülenir\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Kullanım: mpc-hc.exe \"konum\" [anahtarlar]\n\n\"yol_adı\"\t\tYüklenecek dosya veya klasör (özel\n\t\tkarakterler desteklenir, \"-\" varsayılan girişi gösterir)\n/dub \"dublaj_adı\"\tHarici bir ses dosyası yüklemek için\n/dubdelay \"dosya\"\tXXms olarak atlanacak harici bir ses dosyası yüklemek\n için (eğer dosya \"...GECİKME_XXms...\" içeriyorsa)\n/d3dfs\t\tTam ekran D3D kipinde oynatmak için\n/sub \"alt_yazı\"\t Harici bir alt yazı kullanmak için\n/filter \"filtre_adı\" Değişken bir bağlantıdan DirectShow süzgeçlerini\n\t\tyüklemek için (karakterler desteklenir)\n/dvd\t\tDVD kipinde çalıştırmak için, \"konum\" DVD klasörünü\n gösterir (seçmeli)\n/dvdpos T#C\tOynatma T başlığının, C bölümünden başlar\n/dvdpos T#ss:dd\t Oynatma T başlığının, ss:dd:ss süresinden başlar\n/cd\t\tSes veya (s)vcd'den tüm parçaları yüklemek için,\n\t\t\"konum\" Sürücü yolunu gösterir (seçmeli)\n/device\t\tVarsayılan video aygıtını açar\n/open\t\tDosya açılır, ancak otomatik olarak oynatılmaz\n/play \t\tOynatıcı açılır açılmaz yürütme \n\t\tbaşlatılır\n/close \t\tYürütmeden sonra oynatıcı kapatılır (sadece /play komutuyla\n\t\t kullanılır)\n/shutdown\t Oynatmadan sonra bilgisayar kapatılır\n/standby\t\tOynatmadan sonra bilgisayar beklemeye alınır\n/hibernate\tOynatmadan sonra bilgisayar uykuya alınır\n/logoff\t\tOynatmadan sonra oturum kapatılır\n/lock\t\tOynatmadan sonra bilgisayar kilitlenir\n/monitoroff\tOynatmadan sonra ekran kapatılır\n/playnext\t\tOynatmadan sonra klasördeki sıradaki dosyayı yürüt\n/fullscreen \tTam ekran kipinde başlatılır\n/minimized \tSimge durumunda başlatılır\n/new \t\tYeni bir oynatıcı penceresi kullanılır\n/add \t\t\"konum\" oynatma listesine eklenir, bu komutlarla birlikte\n\t\tkullanılabilir: /open ve /play\n/randomize\tOynatma listesini rastgele yürütür\n/regvid\t\t Video biçimleri ilişkilendirilir\n/regaud \t\tSes biçimleri ilişkilendirilir\n/regpl\t\tOynatma listesi uygulamayla ilişkilendirilir\n/regall\t\tTüm dosya biçimleri uygulamayla ilişkilendirilir\n/unregall\t\tVideo biçimleri geri alınır\n/start ms \t\tOynatmaya \"ms\" (= mili saniye) sonra başlanılır\n/startpos ss:dd:ss \tOynatmaya ss:dd:ss süresinden başlanılır\n/fixedsize w,h\t Sabit pencere boyutu kullanılır\n/monitor N\tN monitöründe başlatılır; N, 1'den başlar\n/audiorenderer N \tSes çeviricisi N ile başlanılır; N, 1 ile başlar\n\t\t(\"Çıkış\" ayarlarına bakınız)\n/shaderpreset \"Pr\" \tKomut ile \"Pr\" tonlayıcı hazır ayarı kullanılır\n/pns \"name\"\tKullanılacak Süzme&Tarama varsayılanını ayarlar\n/iconsassoc\tSimgeleri yeniden ilişkilendirir\n/nofocus\t\tUygulamayı arka planda çalıştırır\n/webport N\tİnternet arayüzünü istenen bağlantı noktasında çalıştırır\n/debug\t\tHata ayıklamasını OSD olarak gösterir\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tProgramın ikincil olarak kullanılabilmesini sağlar\n/reset\t\t Varsayılan ayarlara geri dönülür\n/help /h /? \tKomut satırı anahtarları yardımı görüntülenir\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2698,40 +2750,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Üst Arka - Sağ" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Gösterim İstatistiklerini Sıfırla" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Alt Yazılar::Diğer" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Kenarları gizle" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Sadece çerçevede" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Başlık && Menü'yü göster" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Menüyü &Gizle" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Gelişmiş" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Araç çubuğu üzerinde" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Araç çubuğu altında" msgctxt "IDS_VIDEO_STREAM" @@ -2899,8 +2923,8 @@ msgid "Other Audio" msgstr "Other Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2910,6 +2934,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Kayıpsız Apple" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Sesi" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Ses Çözücüsü" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2974,22 +3018,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Sesi" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Ses Çözücüsü" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Oynatma listesi" @@ -3375,7 +3403,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Girilen pencere oranı ayrıştırılamıyor!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Görüntü değiştirilemiyor, lütfen başka bir video karıştırıcısını deneyiniz." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3466,7 +3494,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Önce yeni ayarları uygulamanız gerekmektedir." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Oynatmadan Sonra: Kapat" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.tt.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.tt.dialogs.po index 177b6dfb259..2a276369db5 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.tt.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.tt.dialogs.po @@ -111,16 +111,16 @@ msgid "Enable custom channel mapping" msgstr "Кулланучының каналлар бүлүен кабызырга" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Баганаларны көйләү " +msgid "Speaker configuration for" +msgstr "Баганаларны көйләү" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "кергән канал:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "Басканда үзгәртүләр кичекмәстән кабул ителсен өчен shift төймәсенә басып торыгыз " +msgid "Hold shift for immediate changes when clicking something" +msgstr "Басканда үзгәртүләр кичекмәстән кабул ителсен өчен shift төймәсенә басып торыгыз" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -571,7 +571,7 @@ msgid "Warning" msgstr "Игътибар" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Әгәр сез урынны үзгәртсәгез һәм видеокарта көйләүләрендә тулы экранда тигезләүне кушсагыз, субтитрлар яхшырак күренәчәк, ләкин процессор артык төяләчәк." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -683,11 +683,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Windows 7 аслыгы мөмкинлекләрен кулланырга 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Папкада Киләсе/алдагы файлны 'Алга/Артка' аша, уйнату битендә бер нокта булганда ачарга" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Вакытны күрсәтергә" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1279,8 +1279,8 @@ msgid "Enable automatic update check" msgstr "Яңартуны үзе тикшерү" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Тикшерү аралыгы:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1666,3 +1666,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "Ярар" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.tt.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.tt.menus.po index 5c00919f602..3d8df2262d8 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.tt.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.tt.menus.po @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Калтырауны сынау" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Статистиканы күрсәтергә" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Калган вакыт" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "&Шейдерлар" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Тавыш" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Субтитрлар" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Видео ташкыны" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Уйнату тәмамлангач" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Программаны ябарга" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Санакны тыярга" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Навигация" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.tt.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.tt.strings.po index 832ad3b448d..d23367651c4 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.tt.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.tt.strings.po @@ -329,12 +329,12 @@ msgid "On/Off" msgstr "Каб./Сүн." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Башлап (fps)" +msgid "From FPS" +msgstr "Башлап (FPS)" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Кадәр (fps)" +msgid "To FPS" +msgstr "Кадәр (FPS)" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -625,7 +625,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "То же, что и VMR-9 (renderless), но использует двухпроходное бикубическое изменения размера." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Подключается к любому типу видеоданных и отсылает входящие кадры в никуда. Режим может пригодиться для сохранения ресурсов процессора в случае, если нужен только звук." msgctxt "IDC_DSNULL_UNCOMP" @@ -892,7 +892,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Тавышны сүндерү" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Тавышны кабызырга" @@ -1376,6 +1376,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Җиһазны ачарга..." @@ -1425,11 +1445,11 @@ msgid "Stop" msgstr "Туктату" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Алга адым" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Адым алга" msgctxt "IDS_AG_GO_TO" @@ -1529,8 +1549,8 @@ msgid "Thumbnails saved successfully" msgstr "Миниатюра уңышлы сакланды" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "&Видео ташкыны" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1652,14 +1672,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Субтитрларны уңга шудырырга" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Статистиканы күрсәтергә" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Башка күчү" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Субтитрлар::Өстәмә" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Чикләрне яшерергә" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Видеокадр гына" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Башлам һәм менюны күрсәтергә" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Менюны яшерергә" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Минималь күренеш" @@ -1893,12 +1945,12 @@ msgid "Boss key" msgstr "Босс-төймә" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Уйнаткыч менюсы (кыскартылган)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Уйнаткыч менюсы (тулы)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1976,9 +2028,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Субтитрлар Каб/Сүн (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Калган вакыт" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2289,8 +2341,8 @@ msgid "Out of memory" msgstr "Хәтер җитми" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Хата: IE өчен Flash кирәк" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Хата: Internet Explorer өчен Flash кирәк" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2361,7 +2413,7 @@ msgid "Toggle Caption&Menu" msgstr "Башлам һәм менюны Каб/Сүн" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Әйләндерү тасмасын Каб/Сүн" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2517,8 +2569,8 @@ msgid "Volume boost Max" msgstr "Тавыш көчен арттыру - Max" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Использование: mpc-hc.exe \"путь\" [переключатели]\n\n\"путь\"\t\tФайл или каталог для загрузки (разрешены \n\t\tмаски, \"-\" denotes standard input)\n/dub \"dubname\"\tЗагрузить дополнительный звуковой файл\n/dubdelay \"file\"\tЗагрузить звуковой файл со смещением XXмс\n\t\t(если файл содержит \"...DELAY XXms...\")\n/d3dfs\t\tСтартовать в полноэкранном D3D режиме\n/sub \"subname\"\tЗагрузить дополнительные субтитры\n/filter \"filtername\"\tЗагрузить фильтры DirectShow из библиотеки\n\t\t(разрешены маски)\n/dvd\t\tЗапуск в режиме DVD, \"путь\" означает каталог\n\t\tс DVD (опционально)\n/dvdpos T#C\tНачать воспроизведение с title T, chapter C\n/dvdpos T#hh:mm\tНачать воспроизведение с title T, позиции\n\t\thh:mm:ss\n/cd\t\tЗагрузить все дорожки Audio CD или (S)VCD,\n\t\t\"путь\" означает путь к диску (опционально)\n/device\t\tOpen the default video device\n/open\t\tТолько открыть файл\n/play\t\tНачинать воспроизведение сразу после запуска\n/close\t\tЗакрыть по окончании воспроизведения\n\t\t(работает только с ключем /play)\n/shutdown\tВыключить компьютер по окончании\n\t\tвоспроизведения\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tЗапуск в полноэкранном режиме\n/minimized\tЗапуск в свернутом виде\n/new\t\tИспользовать новую копию проигрывателя\n/add\t\tДобавить \"путь\" в плейлист, можно совместно\n\t\tс ключами /open и /play\n/regvid\t\tРегистрировать видеоформаты\n/regaud\t\tРегистрировать аудиоформаты\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tРазрегистрировать все форматы\n/start ms\t\tВоспроизводить с позиции \"ms\"\n\t\t(миллисекунды)\n/startpos hh:mm:ss\tВоспроизводить с позиции hh:mm:ss\n/fixedsize w,h\tУстановить фиксированный размер окна\n/monitor N\tЗапускаться на мониторе N, где N\n\t\tотсчитывается с 1\n/audiorenderer N\tИспользовать аудиорендер N, где N\n\t\tотсчитывается с 1 (смотрите настройки\n\t\t\"Вывод\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tВостановить настройки по умолчанию\n/help /h /?\tПоказывает эту справку\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Использование: mpc-hc.exe \"путь\" [переключатели]\n\n\"путь\"\t\tФайл или каталог для загрузки (разрешены \n\t\tмаски, \"-\" denotes standard input)\n/dub \"dubname\"\tЗагрузить дополнительный звуковой файл\n/dubdelay \"file\"\tЗагрузить звуковой файл со смещением XXмс\n\t\t(если файл содержит \"...DELAY XXms...\")\n/d3dfs\t\tСтартовать в полноэкранном D3D режиме\n/sub \"subname\"\tЗагрузить дополнительные субтитры\n/filter \"filtername\"\tЗагрузить фильтры DirectShow из библиотеки\n\t\t(разрешены маски)\n/dvd\t\tЗапуск в режиме DVD, \"путь\" означает каталог\n\t\tс DVD (опционально)\n/dvdpos T#C\tНачать воспроизведение с title T, chapter C\n/dvdpos T#hh:mm\tНачать воспроизведение с title T, позиции\n\t\thh:mm:ss\n/cd\t\tЗагрузить все дорожки Audio CD или (S)VCD,\n\t\t\"путь\" означает путь к диску (опционально)\n/device\t\tOpen the default video device\n/open\t\tТолько открыть файл\n/play\t\tНачинать воспроизведение сразу после запуска\n/close\t\tЗакрыть по окончании воспроизведения\n\t\t(работает только с ключем /play)\n/shutdown\tВыключить компьютер по окончании\n\t\tвоспроизведения\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tЗапуск в полноэкранном режиме\n/minimized\tЗапуск в свернутом виде\n/new\t\tИспользовать новую копию проигрывателя\n/add\t\tДобавить \"путь\" в плейлист, можно совместно\n\t\tс ключами /open и /play\n/randomize\tRandomize the playlist\n/regvid\t\tРегистрировать видеоформаты\n/regaud\t\tРегистрировать аудиоформаты\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tРазрегистрировать все форматы\n/start ms\t\tВоспроизводить с позиции \"ms\"\n\t\t(миллисекунды)\n/startpos hh:mm:ss\tВоспроизводить с позиции hh:mm:ss\n/fixedsize w,h\tУстановить фиксированный размер окна\n/monitor N\tЗапускаться на мониторе N, где N\n\t\tотсчитывается с 1\n/audiorenderer N\tИспользовать аудиорендер N, где N\n\t\tотсчитывается с 1 (смотрите настройки\n\t\t\"Вывод\")\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tВостановить настройки по умолчанию\n/help /h /?\tПоказывает эту справку\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2700,40 +2752,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Өске арткы уң" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Статистиканы ташлау" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Субтитрлар::Өстәмә" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Чикләрне яшерергә" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Видеокадр гына" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Башлам һәм менюны күрсәтергә" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Менюны яшерергә" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "әйләндерү тасмасы өстендә" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "әйләндерү тасмасы астында" msgctxt "IDS_VIDEO_STREAM" @@ -2901,8 +2925,8 @@ msgid "Other Audio" msgstr "Башка аудио" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2912,6 +2936,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless (югалтусыз)" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2976,22 +3020,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Уйнату бите" @@ -3377,7 +3405,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Количество кадров в секунду записаны некорректно!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Покадровый просмотр невозможен, попробуйте другой видеорендерер." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3468,7 +3496,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Вы должны применить новые настройки перед их использованием" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "По окончании воспроизведения: закрыть плеер" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.uk.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.uk.dialogs.po index f0650dec721..15142d416f8 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.uk.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.uk.dialogs.po @@ -1,13 +1,13 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# arestarh1986 , 2014 +# arestarh1986 , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-11-02 13:20+0000\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-18 07:01+0000\n" "Last-Translator: arestarh1986 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/mpc-hc/language/uk/)\n" "MIME-Version: 1.0\n" @@ -109,15 +109,15 @@ msgid "Enable custom channel mapping" msgstr "Увімкнути розподіл каналів користувача" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "Налаштування колонок для " +msgid "Speaker configuration for" +msgstr "Налаштування колонок для" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "вхідних каналів:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Утримуйте shift для негайного використання змін при натискуванні" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -569,7 +569,7 @@ msgid "Warning" msgstr "Увага" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Якщо Ви зміните положення та увімкнете повноекранне згладжування в налаштуваннях відеокарти, вигляд субтитрів не покращиться, але навантаження процесора збільшиться." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -681,11 +681,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "Використовувати особливості панелі завдань Windows 7" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "Відкривати попередній/наступний файл в теці при виконанні команд 'Крок назад/вперед' коли лише один файл у списку відтворення" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "Відображати час:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1277,8 +1277,8 @@ msgid "Enable automatic update check" msgstr "Ввімкнути автоматичну перевірку оновлень" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Період між кожною перевіркою:" +msgid "Check every:" +msgstr "Перевіряти кожні:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1664,3 +1664,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "ОК" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "Повідомити про падіння" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "Email:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "Вказання вашої email-адреси є опціональним і розробники вам напишуть лише тоді, коли необхідна додаткова інформація." + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "Описання проблеми (лише англійською):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "ОК" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.uk.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.uk.menus.po index f37fb564fde..cd5bc553694 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.uk.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.uk.menus.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# arestarh1986 , 2014 +# arestarh1986 , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 11:01+0000\n" -"Last-Translator: arestarh1986 \n" +"POT-Creation-Date: 2015-05-15 16:53:42+0000\n" +"PO-Revision-Date: 2015-05-15 18:10+0000\n" +"Last-Translator: Underground78\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/mpc-hc/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -196,13 +196,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Тест дрижання" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Показ статистики" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "Залишок часу" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -553,16 +557,16 @@ msgid "S&haders" msgstr "&Шейдери" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Аудіо" +msgid "&Audio Track" +msgstr "&Аудіодоріжка" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "С&убтитри" +msgid "Su&btitle Track" +msgstr "Доріжка су&бтитрів" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Потік відео" +msgid "&Video Track" +msgstr "&Відеодоріжка" msgctxt "POPUP" msgid "&Volume" @@ -584,7 +588,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "Наприкінці" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "Відтворити &наступний файл у теці" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Вимкнути &монітор" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "Закрити програму" @@ -608,14 +624,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "Заблокувати ПК" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Вимкнути &монітор" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "Відтворити &наступний файл у теці" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Навігація" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.uk.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.uk.strings.po index 7e441ba1611..38bfcac19d2 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.uk.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.uk.strings.po @@ -1,13 +1,14 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: -# arestarh1986 , 2014 +# arestarh1986 , 2014-2015 +# Maksym Kozachenko , 2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-11-02 13:20+0000\n" +"POT-Creation-Date: 2015-05-15 16:53:42+0000\n" +"PO-Revision-Date: 2015-05-18 07:12+0000\n" "Last-Translator: arestarh1986 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/mpc-hc/language/uk/)\n" "MIME-Version: 1.0\n" @@ -325,11 +326,11 @@ msgid "On/Off" msgstr "Ввімк./Вимк." msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" +msgid "From FPS" msgstr "Від (кадри/с)" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" +msgid "To FPS" msgstr "До (кадри/с)" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" @@ -621,8 +622,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Так само як і VMR-9 (renderless), але використовує справжній двопрохідний bicubic масштабувальник." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "Підключається до будь-якого типу відеоданих і відправляє вхідні кадри в нікуди. Може бути корисний для економії ресурсів процесора, якщо потрібен лише звук." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "Підключається до будь-якого медіатипу відеоданих і відправляє вхідні кадри в нікуди. Може бути корисний для економії ресурсів процесора, якщо не потрібне відображення відео." msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -888,7 +889,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Вимкнути звук" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "Ввімкнути звук" @@ -1372,6 +1373,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "Спів. стор. %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Вмикає запис логу у файл (потребує перезапуску)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "Часу залишилося" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "Висока точність" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "Відкрити пристрій" @@ -1421,12 +1442,12 @@ msgid "Stop" msgstr "Стоп" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" -msgstr "Крок вперед" +msgid "Frame-step" +msgstr "На кадр вперед" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" -msgstr "Крок назад" +msgid "Frame-step back" +msgstr "На кадр назад" msgctxt "IDS_AG_GO_TO" msgid "Go To" @@ -1525,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Мініатюри успішно збережено" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Потік в&ідео" +msgid "&Video Track" +msgstr "&Відеодоріжка" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1648,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Зсунути субтитри вправо" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Показати статистику" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Перейти на початок" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Субтитри::Різне" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Приховати межі" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Лише відеок&адр" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "Відобразити заголовок та меню" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Приховати меню" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Розшир. налаштув." + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Мінімальна компоновка" @@ -1889,12 +1942,12 @@ msgid "Boss key" msgstr "Аварійна клавіша" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Меню програвача (скорочене)" +msgid "Player Menu" +msgstr "Меню плеєра" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Меню програвача (повне)" +msgid "Player Menu (full)" +msgstr "Меню плеєра (повне)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1972,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Ввімк./Вимк. субтитри (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Часу залишилося" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2285,8 +2338,8 @@ msgid "Out of memory" msgstr "Недостатньо памяті" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Помилка: Flash необхідний для IE" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Помилка: необхідний Adobe Flash Player для Internet Explorer" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2357,8 +2410,8 @@ msgid "Toggle Caption&Menu" msgstr "Ввімк./Вимк. заголовок і меню" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" -msgstr "Ввімк./Вимк. смуга перемотки" +msgid "Toggle Seek Bar" +msgstr "Ввімк./Вимк. стрічку перемотки" msgctxt "IDS_AG_TOGGLE_CONTROLS" msgid "Toggle Controls" @@ -2513,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Підсилення - Макс." msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Використання: mpc-hc.exe \"шлях\" [перемикачі]\n\n\"шлях\"\tФайл або тека для завантаження (дозволені маски, \"-\" перевизначають стандартне введення)\n/dub \"dubname\"\tЗавантажити додатковий дубляж\n/dubdelay \"file\"\tЗавантажити додатковий дубляж з затримкою XXмс\n(якщо ім'я файлу містить \"...DELAY XXms...\")\n/d3dfs\t\tСтартувати в повноекранному D3D режимі\n/sub \"subname\"\tЗавантажити додаткові субтитри\n/filter \"filtername\"\tЗавантажити фільтри DirectShow з бібліотеки (дозволені маски)\n/dvd\t\tЗапуск в режимі DVD, \"шлях\" вказує на вміст DVD (опціонально)\n/dvdpos T#C\tПочинати відтворення з заголовку T, розділу C\n/dvdpos T#hh:mm\tПочинати відтворення з заголовку T, позиції hh:mm:ss\n/cd\t\tЗавантажити всі доріжки Audio CD або (S)VCD, \"шлях\" вказує на вміст диску (опціонально)\n/device\t\tВідкрити типовий пристрій відображення відео\n/open\t\tЛише відкрити файл, не відтворювати\n/play\t\tПочинати відтворення відразу після запуску\n/close\t\tЗакрити після завершення відтворення (працює лише з /play)\n/shutdown\tВимкнути комп'ютер після завершення відтворення\n/standby\t\tПеревести систему в режим очікування після завершення відтворення\n/hibernate\t\tПеревести систему в режим сну після завершення відтворення\n/logoff\t\tЗавершити сеанс поточного користувача після завершення відтворення\n/lock\t\tЗаблокувати комп'ютер після завершення відтворення\n/monitoroff\tВимкнути монітор після завершення відтворення\n/playnext\t\tВідкрити наступний файл в теці після завершення відтворення\n/fullscreen\t\tЗапуск в повноекранному режимі\n/minimized\tЗапуск в згорнутому вигляді\n/new\t\tЗапускати нову копію програвача\n/add\t\tДодати \"шлях\" в список відтворення, можна спільно з /open та /play\n/regvid\t\tЗареєструвати асоціації відеоформатів\n/regaud\t\tЗареєструвати асоціації аудіоформатів\n/regpl\t\tЗареєструвати асоціації для файлів списків відтворення\n/regall\t\tЗареєструвати асоціації для всіх підтримуваних типів файлів\n/unregall\t\tВідреєструвати асоціації відеоформатів\n/start ms\t\tВідтворювати починаючи з позиції \"ms\" (= мілісекунди)\n/startpos hh:mm:ss\tПочинати відтворення з позиції hh:mm:ss\n/fixedsize w,h\tВстановити фіксований розмір вікна\n/monitor N\tЗапустити на моніторі N, нумерація з 1\n/audiorenderer N\tЗапустити з аудіорендерером N, нумерація з 1\n\t\t(див. \"Вивід\" в налаштуваннях)\n/shaderpreset \"Pr\"\tЗапустити з використанням \"Pr\" профіля шейдерів\n/pns \"name\"\tЗадати пресет \"name\" Pan&Scan\n/iconsassoc\tПовторно асоціювати іконки форматів\n/nofocus\t\tВідкрити MPC-HC у фоні\n/webport N\tЗапустити веб-інтерфейс на вказаному порті\n/debug\t\tВідображати відлагоджувальну інформацію у OSD\n/nominidump\tЗаборонити створення мінідампів\n/slave \"hWnd\"\tВикористовувати MPC-HC іншим вікном з дескриптором \"hWnd\"\n/reset\t\tВідновити типові налаштування\n/help /h /?\tПоказати цю довідку\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Використання: mpc-hc.exe \"шлях\" [перемикачі]\n\n\"шлях\"\tФайл або тека для завантаження (дозволені маски, \"-\" перевизначають стандартне введення)\n/dub \"dubname\"\tЗавантажити додатковий дубляж\n/dubdelay \"file\"\tЗавантажити додатковий дубляж з затримкою XXмс\n(якщо ім'я файлу містить \"...DELAY XXms...\")\n/d3dfs\t\tСтартувати в повноекранному D3D режимі\n/sub \"subname\"\tЗавантажити додаткові субтитри\n/filter \"filtername\"\tЗавантажити фільтри DirectShow з бібліотеки (дозволені маски)\n/dvd\t\tЗапуск в режимі DVD, \"шлях\" вказує на вміст DVD (опціонально)\n/dvdpos T#C\tПочинати відтворення з заголовку T, розділу C\n/dvdpos T#hh:mm\tПочинати відтворення з заголовку T, позиції hh:mm:ss\n/cd\t\tЗавантажити всі доріжки Audio CD або (S)VCD, \"шлях\" вказує на вміст диску (опціонально)\n/device\t\tВідкрити типовий пристрій відображення відео\n/open\t\tЛише відкрити файл, не відтворювати\n/play\t\tПочинати відтворення відразу після запуску\n/close\t\tЗакрити після завершення відтворення (працює лише з /play)\n/shutdown\tВимкнути комп'ютер після завершення відтворення\n/standby\t\tПеревести систему в режим очікування після завершення відтворення\n/hibernate\t\tПеревести систему в режим сну після завершення відтворення\n/logoff\t\tЗавершити сеанс поточного користувача після завершення відтворення\n/lock\t\tЗаблокувати комп'ютер після завершення відтворення\n/monitoroff\tВимкнути монітор після завершення відтворення\n/playnext\t\tВідкрити наступний файл в теці після завершення відтворення\n/fullscreen\t\tЗапуск в повноекранному режимі\n/minimized\tЗапуск в згорнутому вигляді\n/new\t\tЗапускати нову копію програвача\n/add\t\tДодати \"шлях\" в список відтворення, можна спільно з /open та /play\n/randomize\tЗапускати з перемішаними файлами у списку відтворення\n/regvid\t\tЗареєструвати асоціації відеоформатів\n/regaud\t\tЗареєструвати асоціації аудіоформатів\n/regpl\t\tЗареєструвати асоціації для файлів списків відтворення\n/regall\t\tЗареєструвати асоціації для всіх підтримуваних типів файлів\n/unregall\t\tВідмінити реєстрацію асоціацій відеоформатів\n/start ms\t\tВідтворювати починаючи з позиції \"ms\" (= мілісекунди)\n/startpos hh:mm:ss\tПочинати відтворення з позиції hh:mm:ss\n/fixedsize w,h\tВстановити фіксований розмір вікна\n/monitor N\tЗапустити на моніторі N, нумерація з 1\n/audiorenderer N\tЗапустити з аудіорендерером N, нумерація з 1\n\t\t(див. \"Вивід\" в налаштуваннях)\n/shaderpreset \"Pr\"\tЗапустити з використанням \"Pr\" профіля шейдерів\n/pns \"name\"\tЗадати пресет \"name\" Pan&Scan\n/iconsassoc\tПовторно асоціювати іконки форматів\n/nofocus\t\tВідкрити MPC-HC у фоні\n/webport N\tЗапустити веб-інтерфейс на вказаному порті\n/debug\t\tВідображати відлагоджувальну інформацію у OSD\n/nocrashreporter\tЗапустити з вимкненим повідомленням про падіння\n/slave \"hWnd\"\tВикористовувати MPC-HC іншим вікном з дескриптором \"hWnd\"\n/reset\t\tВідновити типові налаштування\n/help /h /?\tПоказати цю довідку\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2696,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Верхній тиловий правий" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Скинути екранну статистику" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Субтитри::Різне" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Приховати межі" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Лише відеокадр" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "Відобразити заголовок та меню" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Приховати меню" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Розшир. налаштув." - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Над стрічкою перемотування" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Під стрічкою перемотування" msgctxt "IDS_VIDEO_STREAM" @@ -2897,8 +2922,8 @@ msgid "Other Audio" msgstr "Інше аудіо" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2908,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2972,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Список відтворення" @@ -3373,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Помилка обробки введеної частоти кадрів!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Покадровий перегляд неможливий, спробуйте інший рендерер відео." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3464,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Вам необхідно застосувати нові налаштування перед тим, як їх тестувати." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Наприкінці відтворення: Закрити програму" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.vi.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.vi.dialogs.po index 361338e59ac..0a801ed4b8c 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.vi.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.vi.dialogs.po @@ -1,14 +1,14 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Dat Luong Anh , 2014 -# TRẦN ANH MINH , 2014 +# TRẦN ANH MINH , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" +"POT-Creation-Date: 2015-03-16 18:09:30+0000\n" +"PO-Revision-Date: 2015-04-12 02:15+0000\n" "Last-Translator: Underground78\n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/mpc-hc/language/vi/)\n" "MIME-Version: 1.0\n" @@ -110,7 +110,7 @@ msgid "Enable custom channel mapping" msgstr "Cho phép lập bản đồ kênh tùy chỉnh" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "Cấu hình loa cho" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -118,7 +118,7 @@ msgid "input channels:" msgstr "Ngõ vào:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "Giữ shift để thay đổi ngay lập tức khi nhấn một cái gì đó" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -199,7 +199,7 @@ msgstr "Chương trình này là phần mềm miễn phí và phát hành theo g msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "English translation made by MPC-HC Team" -msgstr "Được dịch bởi anhminhvks - Trần Anh Minh" +msgstr "Được dịch bởi Trần Anh Minh - anhminhvks" msgctxt "IDD_ABOUTBOX_IDC_STATIC" msgid "Build information" @@ -295,7 +295,7 @@ msgstr "Chụp để cạnh máy tính để bàn" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK8" msgid "Store settings in .ini file" -msgstr "Lưu thiết lập ra tệp .ini" +msgstr "Lưu thiết lập vào tập tin .ini" msgctxt "IDD_PPAGEPLAYER_IDC_CHECK10" msgid "Disable \"Open Disc\" menu" @@ -570,7 +570,7 @@ msgid "Warning" msgstr "Cảnh báo" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "Nếu bạn ghi đè lên và cho phép toàn màn hình chống răng cưa ở đâu đó ở các cài đặt của bo của bạn, phụ đề sẽ không xem xét bất kỳ tốt hơn, nhưng nó chắc chắn sẽ ăn CPU của bạn." msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -667,7 +667,7 @@ msgstr "Nhanh chóng tìm kiếm (trên khung hình)" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK2" msgid "Show chapter marks in seek bar" -msgstr "Dấu cho thấy chương trong seekbar" +msgstr "Dấu cho thấy chương trong seek bar" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK4" msgid "Display \"Now Playing\" information in Skype's mood message" @@ -682,12 +682,12 @@ msgid "Use Windows 7 Taskbar features" msgstr "Sử dụng tính năng Windows 7 Taskbar" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" -msgstr "Mở tập tin trước / sau trong thư mục vào \"Bỏ qua trở lại / về phía trước\" khi chỉ có một mục trong danh sách nhạc" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgstr "Mở tập tin trước/sau trong thư mục theo hướng \"Lùi lại/Tiến tới\" khi chỉ có một mục trong danh sách phát nhạc" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" -msgstr "Sử dụng thời gian tooltip:" +msgid "Show time tooltip:" +msgstr "Hiển thị thời gian tooltip:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" msgid "OSD font:" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "Kích hoạt kiểm tra nâng cấp" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "Sự chậm trễ giữa mỗi lần kiểm tra:" +msgid "Check every:" +msgstr "Kiểm tra mỗi:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "Đồng ý" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.vi.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.vi.menus.po index 9238ed3568f..4a5f1462d5c 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.vi.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.vi.menus.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Dat Luong Anh , 2014 -# TRẦN ANH MINH , 2014 +# TRẦN ANH MINH , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-08-19 21:10:25+0000\n" -"PO-Revision-Date: 2014-08-27 12:31+0000\n" -"Last-Translator: Dat Luong Anh \n" +"POT-Creation-Date: 2015-04-06 16:31:55+0000\n" +"PO-Revision-Date: 2015-04-15 08:18+0000\n" +"Last-Translator: TRẦN ANH MINH \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/mpc-hc/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "&Kiểm tra nhiễu" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "&Hiện thông số" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "&Thời gian còn lại" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "&Bộ đổ bóng" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "&Âm thanh" +msgid "&Audio Track" +msgstr "&Rãnh âm thanh" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "&Phụ đề" +msgid "Su&btitle Track" +msgstr "&Rãnh phụ đề" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "&Hình ảnh" +msgid "&Video Track" +msgstr "&Rãnh hình ảnh" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "&Sau khi phát" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "&Phát tập tin kế tiếp trong thư mục" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "Tắt &màn hình" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "&Thoát" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "&Khoá máy" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "Tắt &màn hình" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "&Điều hướng" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.vi.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.vi.strings.po index ce40550f68f..843841d1ba5 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.vi.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.vi.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # Dat Luong Anh , 2014 -# TRẦN ANH MINH , 2014 +# TRẦN ANH MINH , 2014-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-19 22:15:16+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: JellyFrog\n" +"POT-Creation-Date: 2015-04-09 21:29:25+0000\n" +"PO-Revision-Date: 2015-04-15 08:18+0000\n" +"Last-Translator: TRẦN ANH MINH \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/mpc-hc/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,12 +326,12 @@ msgid "On/Off" msgstr "Bật/Tắt" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "Từ fps" +msgid "From FPS" +msgstr "Từ FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "Đến fps" +msgid "To FPS" +msgstr "Đến FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -622,7 +622,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "Giống như VMR-9 (renderless), nhưng sử dụng một sự thật hai vượt qua bicubic thay đổi kích cỡ." msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "Kết nối với bất kỳ loại phương tiện truyền thông như video và sẽ gửi mẫu đến tới đâu cả. Sử dụng nó khi bạn không cần màn hình hiển thị video và muốn tiết kiệm CPU làm việc không cần thiết." msgctxt "IDC_DSNULL_UNCOMP" @@ -791,7 +791,7 @@ msgstr "Không thể tìm thấy tất cả các khối lưu trữ" msgctxt "IDC_TEXTURESURF2D" msgid "Video surface will be allocated as a texture but still the 2d functions will be used to copy and stretch it onto the backbuffer. Requires a video card which can allocate 32-bit, RGBA, non-power-of-two sized textures and at least in the resolution of the video." -msgstr "Bề mặt video sẽ được phân bổ như một kết cấu nhưng vẫn còn các chức năng 2d sẽ được sử dụng để sao chép và kéo nó vào backbuffer. Đòi hỏi một card video mà có thể phân bổ 32bit, RGBA, không quyền lực-của-hai kết cấu có kích thước và ít nhất ở độ phân giải của video." +msgstr "Bề mặt video sẽ được phân bổ như một kết cấu nhưng các chức năng 2D vẫn sẽ được sử dụng để sao chép và kéo nó vào bộ đệm nền. Yêu cầu card màn hình có thể phân bổ kết cấu cỡ 32bit, RGBA, \"non-power-of-two\" và có độ phân giải tối thiểu bằng độ phân giải của video." msgctxt "IDC_TEXTURESURF3D" msgid "Video surface will be allocated as a texture and drawn as two triangles in 3d. Antialiasing turned on at the display settings may have a bad effect on the rendering speed." @@ -889,9 +889,9 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "Im" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" -msgstr "Bỏ im" +msgstr "Mở tiếng" msgctxt "ID_VOLUME_MUTE_DISABLED" msgid "No audio" @@ -1339,7 +1339,7 @@ msgstr "" msgctxt "IDS_NAVIGATION_WATCH" msgid "Watch" -msgstr "" +msgstr "Xem" msgctxt "IDS_NAVIGATION_MOVE_UP" msgid "Move Up" @@ -1351,26 +1351,46 @@ msgstr "Xuống dưới" msgctxt "IDS_NAVIGATION_SORT" msgid "Sort by LCN" -msgstr "" +msgstr "Sắp xếp theo LCN" msgctxt "IDS_NAVIGATION_REMOVE_ALL" msgid "Remove all" -msgstr "" +msgstr "Xóa tất cả" msgctxt "IDS_REMOVE_CHANNELS_QUESTION" msgid "Are you sure you want to remove all channels from the list?" -msgstr "" +msgstr "Bạn có chắc muốn xóa tất cả các kênh trong danh sách?" msgctxt "IDS_MEDIAINFO_NO_INFO_AVAILABLE" msgid "No information available" -msgstr "" +msgstr "Không có thông tin" msgctxt "IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS" msgid "Please wait, analysis in progress..." -msgstr "" +msgstr "Vui lòng đợi, đang tiến hành phân tích..." msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" +msgstr "AR %d:%d" + +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "Cho phép đăng nhập vào tập tin (Yêu cầu khởi động lại)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" msgstr "" msgctxt "IDS_AG_OPEN_DEVICE" @@ -1422,11 +1442,11 @@ msgid "Stop" msgstr "Ngừng" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "Khung" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "Khung hình trở" msgctxt "IDS_AG_GO_TO" @@ -1526,8 +1546,8 @@ msgid "Thumbnails saved successfully" msgstr "Hình thu nhỏ đã được lưu" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "Luồng video" +msgid "&Video Track" +msgstr "&Rãnh hình ảnh" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1575,11 +1595,11 @@ msgstr "Đặt lại đánh giá" msgctxt "IDS_MPLAYERC_21" msgid "Audio Delay +10 ms" -msgstr "Độ trễ âm +10 giây" +msgstr "Âm thanh trễ +10 giây" msgctxt "IDS_MPLAYERC_22" msgid "Audio Delay -10 ms" -msgstr "Độ trễ âm -10 giây" +msgstr "Âm thanh trễ -10 giây" msgctxt "IDS_MPLAYERC_23" msgid "Jump Forward (small)" @@ -1649,14 +1669,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "Phụ đề phải" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "Hiển thị thống kê số liệu" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "Nhảy đến bắt đầu" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "Phụ đề::Linh tinh" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "Ẩn &viền" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "Chỉ khung" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "H&iện Nhãn&&Menu" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "Ẩn &menu" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "Nâng cao" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "Xem tối thiểu" @@ -1890,12 +1942,12 @@ msgid "Boss key" msgstr "Phím boss" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "Menu trình phát (ngắn)" +msgid "Player Menu" +msgstr "Trình đơn của Trình phát nhạc" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "Menu trình phát (dài)" +msgid "Player Menu (full)" +msgstr "Trình đơn của Trình phát nhạc (đầy đủ)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1973,9 +2025,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "Bật/Tắt phụ đề (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "Thời gian còn lại" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2063,11 +2115,11 @@ msgstr "Âm lượng: %02lu/%02lu, Tiêu đề: %02lu/%02lu, Chương: %02lu/%02 msgctxt "IDS_MAINFRM_10" msgid "Angle: %02lu/%02lu, %lux%lu %lu Hz %lu:%lu" -msgstr "Góc: %02lu/%02lu, %lux%lu %luHz %lu:%lu" +msgstr "Góc: %02lu/%02lu, %lux%lu %lu Hz %lu:%lu" msgctxt "IDS_MAINFRM_11" msgid "%s, %s %u Hz %d bits %d %s" -msgstr "%s, %s %uHz %dbit %d %s" +msgstr "%s, %s %u Hz %d bit %d %s" msgctxt "IDS_ADD_TO_PLAYLIST" msgid "Add to MPC-HC Playlist" @@ -2175,19 +2227,19 @@ msgstr ", Tổng cộng: %ld, Bỏ sót: %ld" msgctxt "IDS_MAINFRM_38" msgid ", Size: %I64d KB" -msgstr ", Kích thước: %I64dKB" +msgstr ", Kích cỡ: %I64d KB" msgctxt "IDS_MAINFRM_39" msgid ", Size: %I64d MB" -msgstr ", Kích thước: %I64dKB" +msgstr ", Kích cỡ: %I64d MB" msgctxt "IDS_MAINFRM_40" msgid ", Free: %I64d KB" -msgstr ", Trống: %I64dKB" +msgstr ", Trống: %I64d KB" msgctxt "IDS_MAINFRM_41" msgid ", Free: %I64d MB" -msgstr ", Trống: %I64dMB" +msgstr ", Trống: %I64d MB" msgctxt "IDS_MAINFRM_42" msgid ", Free V/A Buffers: %03d/%03d" @@ -2275,7 +2327,7 @@ msgstr "Tỉ lệ khung hình: Mặc định" msgctxt "IDS_MAINFRM_70" msgid "Audio delay: %I64d ms" -msgstr "Độ trễ âm: %I64dgiây" +msgstr "Âm thanh trễ: %I64d ms" msgctxt "IDS_AG_CHAPTER" msgid "Chapter %d" @@ -2286,8 +2338,8 @@ msgid "Out of memory" msgstr "Đầy bộ nhớ" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "Lỗi: Flash player cho trình duyệt IE là cần thiết" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "Lỗi: Adobe Flash Player cho trình duyệt Internet Explorer là cần thiết" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2358,7 +2410,7 @@ msgid "Toggle Caption&Menu" msgstr "Chuyển Nhãn&Menu" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "Chuyển đổi thanh dò" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2514,8 +2566,8 @@ msgid "Volume boost Max" msgstr "Khối lượng âm lớn nhất" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "Cách sử dụng: mpc-hc.exe \"pathname\" [chuyển]\n\n\"pathname\"\tCác tập tin hoặc thư mục chính được nạp (ký tự đại diện\n\t\tcho phép, \"-\" biểu thị đầu vào tiêu chuẩn)\n/dub \"dubname\"\tNạp một tập tin âm thanh khác\n/dubdelay \"file\"\tNạp một tập tin âm thanh thêm dịch chuyển XXms (nếu\n\t\ttệp chứa \"...Độ trễ XX giây...\")\n/d3dfs\t\tBắt đầu dựng hình trong chế độ toàn màn hình D3D\n/sub \"subname\"\tNạp một file phụ đề thêm\n/filter \"filtername\"\tBộ lọc DirectShow tải từ một liên thư viện\n\t\tkết động(ký tự đại diện)\n/dvd\t\tChạy chế độ dvd, \"pathname\" nghĩa là thư mục\n\t\tDVD(tùy chọn)\n/dvdpos T#C\tBắt đầu phát lại tại tiêu đề T, chương C\n/dvdpos T#hh:mm\tPhát lại tại tiêu đề T, vị trí gg:pp:gg\n/cd\t\tTải tất cả các bài hát của một đĩa CD âm thanh hoặc (s) VCD,\n\t\t\"pathname\" nghĩa là đường dẫn cd(tùy chọn)\n/device\t\tMở thiết bị video mặc định\n/open\t\tMở tập tin, không tự động bắt đầu phát lại\n/play\t\tBắt đầu chơi các tập tin ngay sau trình phát nhạc\n\t\tđã chạy\n/close\t\tĐóng trình phát nhạc sau khi phát lại (chỉ hoạt động khi\n\t\tdùng với /phát)\n/shutdown\tTắt máy tính, hệ điều hành sau khi phát lại\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tBắt đầu trong chế độ toàn màn hình\n/minimized\tBắt đầu trong chế độ giảm thiểu\n/new\t\tSử dụng một trường hợp mới của trình phát nhạc\n/add\t\tThêm\"pathname\" vào danh sách phát, sẽ kết hợp\n\t\tvới/mở và/phát\n/regvid\t\tTạo ra các phần mở rộng cho các tập tin video\n/regaud\t\tTạo ra các phần mở rộng cho các tập tin âm thanh\n/regpl\t\tTạo ra các phần mở rộng cho các tập tin danh sách phát\n/regall\t\tTạo ra các phần mở rộng cho các tất cả các tập tin \n/unregall\t\tLoại bỏ phần mở rộng\n/start ms\t\tBắt đầu phát lúc \"mlg\" (= mili giây)\n/startpos hh:mm:ss\tPhát tại vị trí gg:pp:gg\n/fixedsize w,h\tThiết lập một kích thước cửa sổ cố định\n/monitor N\tBắt đầu chơi trên màn hình N, trong đó N bắt đầu từ 1\n/audiorenderer N\tBắt đầu sử dụng trình âm N, trong đó N bắt đầu từ 1\n\t\t(xem thiết lập\"Ngõ ra\")\n/shaderpreset \"Pr\"\tBắt đầu sử dụng \"Pr\" tạo bóng đặt trước\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tKhôi phục cài đặt mặc định\n/help /h /?\tHiện giúp đỡ về chuyển dòng lệnh\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "Cách sử dụng: mpc-hc.exe \"pathname\" [chuyển]\n\n\"pathname\"\tCác tập tin hoặc thư mục chính được nạp (ký tự đại diện\n\t\tcho phép, \"-\" biểu thị đầu vào tiêu chuẩn)\n/dub \"dubname\"\tNạp một tập tin âm thanh khác\n/dubdelay \"file\"\tNạp một tập tin âm thanh thêm dịch chuyển XXms (nếu\n\t\ttệp chứa \"...Độ trễ XX giây...\")\n/d3dfs\t\tBắt đầu dựng hình trong chế độ toàn màn hình D3D\n/sub \"subname\"\tNạp một file phụ đề thêm\n/filter \"filtername\"\tBộ lọc DirectShow tải từ một liên thư viện\n\t\tkết động(ký tự đại diện)\n/dvd\t\tChạy chế độ dvd, \"pathname\" nghĩa là thư mục\n\t\tDVD(tùy chọn)\n/dvdpos T#C\tBắt đầu phát lại tại tiêu đề T, chương C\n/dvdpos T#hh:mm\tPhát lại tại tiêu đề T, vị trí gg:pp:gg\n/cd\t\tTải tất cả các bài hát của một đĩa CD âm thanh hoặc (s) VCD,\n\t\t\"pathname\" nghĩa là đường dẫn cd(tùy chọn)\n/device\t\tMở thiết bị video mặc định\n/open\t\tMở tập tin, không tự động bắt đầu phát lại\n/play\t\tBắt đầu chơi các tập tin ngay sau trình phát nhạc\n\t\tđã chạy\n/close\t\tĐóng trình phát nhạc sau khi phát lại (chỉ hoạt động khi\n\t\tdùng với /phát)\n/shutdown\tTắt máy tính, hệ điều hành sau khi phát lại\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tBắt đầu trong chế độ toàn màn hình\n/minimized\tBắt đầu trong chế độ giảm thiểu\n/new\t\tSử dụng một trường hợp mới của trình phát nhạc\n/add\t\tThêm\"pathname\" vào danh sách phát, sẽ kết hợp\n\t\tvới/mở và/phát\n/randomize\tRandomize the playlist\n/regvid\t\tTạo ra các phần mở rộng cho các tập tin video\n/regaud\t\tTạo ra các phần mở rộng cho các tập tin âm thanh\n/regpl\t\tTạo ra các phần mở rộng cho các tập tin danh sách phát\n/regall\t\tTạo ra các phần mở rộng cho các tất cả các tập tin \n/unregall\t\tLoại bỏ phần mở rộng\n/start ms\t\tBắt đầu phát lúc \"mlg\" (= mili giây)\n/startpos hh:mm:ss\tPhát tại vị trí gg:pp:gg\n/fixedsize w,h\tThiết lập một kích thước cửa sổ cố định\n/monitor N\tBắt đầu chơi trên màn hình N, trong đó N bắt đầu từ 1\n/audiorenderer N\tBắt đầu sử dụng trình âm N, trong đó N bắt đầu từ 1\n\t\t(xem thiết lập\"Ngõ ra\")\n/shaderpreset \"Pr\"\tBắt đầu sử dụng \"Pr\" tạo bóng đặt trước\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tKhôi phục cài đặt mặc định\n/help /h /?\tHiện giúp đỡ về chuyển dòng lệnh\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2697,40 +2749,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "Đỉnh trước phải" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "Thiết lập lại hiển thị thống kê số liệu" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "Phụ đề::Linh tinh" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "Ẩn &viền" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "Chỉ khung" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "H&iện Nhãn&&Menu" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "Ẩn &menu" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "Nâng cao" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "Trên thanh dò nhanh" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "Dưới thanh dò nhanh" msgctxt "IDS_VIDEO_STREAM" @@ -2898,8 +2922,8 @@ msgid "Other Audio" msgstr "Âm thanh khác" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2909,6 +2933,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Âm Windows Media" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Bộ âm Opus" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2973,22 +3017,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "Âm true" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Âm Windows Media" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Bộ âm Opus" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Danh sách phát" @@ -3259,7 +3287,7 @@ msgstr "Phiên bản hiện tại của bạn là v%s.\n\nPhiên bản ổn đ msgctxt "IDS_NEW_UPDATE_AVAILABLE" msgid "MPC-HC v%s is now available. You are using v%s.\n\nDo you want to visit MPC-HC's website to download it?" -msgstr "" +msgstr "Đã có MPC-HC phiên bản mới v%s. Bạn đang sử dụng phiên bản v%s.\n\nBạn có muốn truy cập trang web của MPC-HC để tải về?" msgctxt "IDS_UPDATE_ERROR" msgid "Update server not found.\n\nPlease check your internet connection or try again later." @@ -3315,7 +3343,7 @@ msgstr "Lấy lại khối lượng: Tắt" msgctxt "IDS_SIZE_UNIT_BYTES" msgid "bytes" -msgstr "" +msgstr "byte" msgctxt "IDS_SIZE_UNIT_K" msgid "KB" @@ -3374,7 +3402,7 @@ msgid "Error parsing the entered frame rate!" msgstr "Lỗi phân tích tỷ lệ khung hình vào!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "Không có thể hình thành bước, hãy thử một dựng hình video khác nhau." msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3465,7 +3493,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "Bạn cần phải áp dụng các thiết lập mới trước khi thử nghiệm chúng." -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "Sau khi xem lại: Thoát" @@ -3495,11 +3523,11 @@ msgstr "Sau khi phát lại: Tắt màn hình" msgctxt "IDS_AFTERPLAYBACK_PLAYNEXT" msgid "After Playback: Play next file in the folder" -msgstr "" +msgstr "Sau khi phát xong: Chạy tập tin kế tiếp trong thư mục" msgctxt "IDS_AFTERPLAYBACK_DONOTHING" msgid "After Playback: Do nothing" -msgstr "" +msgstr "Sau khi phát xong: Không làm gì cả" msgctxt "IDS_OSD_BRIGHTNESS" msgid "Brightness: %s" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.dialogs.po index 9c1b563f3e8..c00b74e02e3 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.dialogs.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from dialogs -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # bruce55 , 2014 -# Ming Chen , 2013-2014 +# Ming Chen , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-09-19 20:08:04+0000\n" -"PO-Revision-Date: 2014-10-20 10:21+0000\n" -"Last-Translator: Underground78\n" +"POT-Creation-Date: 2015-05-17 20:47:27+0000\n" +"PO-Revision-Date: 2015-05-27 02:40+0000\n" +"Last-Translator: Ming Chen \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mpc-hc/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -110,16 +110,16 @@ msgid "Enable custom channel mapping" msgstr "开启自定义声道映射" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " -msgstr "扬声器设置 " +msgid "Speaker configuration for" +msgstr "扬声器设置" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" msgid "input channels:" msgstr "输入声道:" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " -msgstr "当点击任意项目时按下 shift 键可使其立即生效 " +msgid "Hold shift for immediate changes when clicking something" +msgstr "当点击任意项目时按下 shift 键可使其立即生效" msgctxt "IDD_GOTO_DLG_CAPTION" msgid "Go To..." @@ -570,7 +570,7 @@ msgid "Warning" msgstr "警告" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "如果您在显卡设置的某处开启了全屏抗锯齿功能并覆盖程序本身设置的话,字幕并不会变得比以前好看但是却会一定大量吞噬您的 CPU 资源。" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -682,11 +682,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "使用 Windows 7 任务栏功能" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "在播放列表中仅有一个项目时使用 \"向前/后跳转\" 后打开文件中的下一个/上一个文件" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "使用时间工具提示:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1278,8 +1278,8 @@ msgid "Enable automatic update check" msgstr "开启自动检测更新" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "每次检测的间隔:" +msgid "Check every:" +msgstr "每次检测:" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1665,3 +1665,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "确定" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "崩溃报告" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "非常抱歉,MPC-HC看起来崩溃了。 :(\n\n为了帮助我们诊断和修复问题,程序将上报错误报告。您还可以提供一些额外的信息。" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "邮箱:" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "您也可以选择不提供邮箱地址。只有在开发人员需要联系您获得更多信息的时候才会向您发送邮件。" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "问题描述 (只能用英文撰写):" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "确定" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.menus.po index 042e4c2c7ca..154bb3f63ff 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.menus.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from menus -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # bruce55 , 2014 # kasper93, 2013 -# Ming Chen , 2013-2014 +# Ming Chen , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-25 18:58:24+0000\n" -"PO-Revision-Date: 2014-10-27 07:42+0000\n" +"POT-Creation-Date: 2015-05-22 20:53:41+0000\n" +"PO-Revision-Date: 2015-05-27 02:30+0000\n" "Last-Translator: Ming Chen \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mpc-hc/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -198,13 +198,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "撕裂测试(&T)" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "显示状态(&D)" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "显示统计(&D)" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "剩余时间(&R)" +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "显示当前时间(&I)" + +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "显示文件名(&F)" msgctxt "POPUP" msgid "&Output Range" @@ -555,16 +559,16 @@ msgid "S&haders" msgstr "着色器(&H)" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "音频(&A)" +msgid "&Audio Track" +msgstr "音频轨道(&A)" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "字幕(&B)" +msgid "Su&btitle Track" +msgstr "字幕轨道(&B)" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "视频流(&V)" +msgid "&Video Track" +msgstr "视频轨道(&V)" msgctxt "POPUP" msgid "&Volume" @@ -586,7 +590,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "回放结束后(&T)" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "什么都不做(&N)" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "播放文件夹中的下一个文件(&N)" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "关闭显示器(&M)" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "退出(&E)" @@ -610,14 +626,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "锁定(&L)" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "关闭显示器(&M)" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "播放文件夹中的下一个文件(&N)" - msgctxt "POPUP" msgid "&Navigate" msgstr "导航(&N)" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.strings.po index e989e2d68db..9d9b0dea2b2 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.strings.po @@ -1,15 +1,15 @@ # MPC-HC - Strings extracted from string tables -# Copyright (C) 2002 - 2015 see Authors.txt +# Copyright (C) 2002 - 2013 see Authors.txt # This file is distributed under the same license as the MPC-HC package. # Translators: # bruce55 , 2014 # hkenneth , 2013 -# Ming Chen , 2013-2014 +# Ming Chen , 2013-2015 msgid "" msgstr "" "Project-Id-Version: MPC-HC\n" -"POT-Creation-Date: 2014-10-30 22:04:38+0000\n" -"PO-Revision-Date: 2014-10-31 12:00+0000\n" +"POT-Creation-Date: 2015-05-21 13:30:54+0000\n" +"PO-Revision-Date: 2015-05-27 02:40+0000\n" "Last-Translator: Ming Chen \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/mpc-hc/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -327,12 +327,12 @@ msgid "On/Off" msgstr "开/关" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "从 fps" +msgid "From FPS" +msgstr "从 FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "到 fps" +msgid "To FPS" +msgstr "到 FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -623,8 +623,8 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "与 VMR-9 (未渲染) 相同, 但是使用了一个真正的双三次成形器。" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." -msgstr "连接到任意视频文件类型并且会将进入的采样信息传送到任意地方。当您不需要显示视频并希望节省不必要的 cpu 资源时请使用它。" +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." +msgstr "连接到任意视频文件类型并且会将进入的采样信息传送到任意地方。当您不需要显示视频并希望节省不必要的 CPU 资源时请使用它。" msgctxt "IDC_DSNULL_UNCOMP" msgid "Same as the normal Null renderer, but this will only connect to uncompressed types." @@ -890,7 +890,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "静音" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "取消静音" @@ -1374,6 +1374,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "高宽比 %d:%d" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "启用日志记录到文件中。(需要重新启动)" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "剩余时间" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "高精确度" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "回放结束后: 返回当前文件" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "回放结束后: 关闭" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "打开设备" @@ -1423,11 +1443,11 @@ msgid "Stop" msgstr "停止" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "帧步进" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "帧回退" msgctxt "IDS_AG_GO_TO" @@ -1527,8 +1547,8 @@ msgid "Thumbnails saved successfully" msgstr "成功保存缩略图" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "视频流(&V)" +msgid "&Video Track" +msgstr "视频轨道(&V)" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1650,14 +1670,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "字幕右移" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "显示状态" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "跳转到开头" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "OSD: 显示文件名" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "OSD: 显示渲染器统计" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "OSD: 重置渲染器统计" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "字幕::其它" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "隐藏边框(&B)" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "仅图像(&M)" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "显示标题与菜单(&W)" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "隐藏菜单(&M)" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "高级" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "最小视图" @@ -1891,12 +1943,12 @@ msgid "Boss key" msgstr "老板键" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "播放器菜单 (短)" +msgid "Player Menu" +msgstr "播放器菜单" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "播放器菜单 (长)" +msgid "Player Menu (full)" +msgstr "播放器菜单 (完整)" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1974,9 +2026,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "开/关字幕 (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "剩余时间" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "OSD: 显示当前时间" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2287,8 +2339,8 @@ msgid "Out of memory" msgstr "内存溢出" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "错误: 需要用于 IE 的 Flash player" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "错误: 需要用于 Internet Explorer 的 Adobe Flash Player" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2359,7 +2411,7 @@ msgid "Toggle Caption&Menu" msgstr "切换标题与菜单" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "切换进度栏" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2515,8 +2567,8 @@ msgid "Volume boost Max" msgstr "最大音量推进" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "用法: mpc-hc.exe \"路径名\" [开关]\n\n\"路径名\"\t\t表示要载入的主文件或目录 (允许通配符, \"-\" 表示标准输入)\n/dub \"配音名\"\t载入一个附加的音频文件\n/dubdelay \t\"文件\"载入音频文件延迟 XXms (如果该文件包含 \"...延迟 XXms...\")\n/d3dfs\t\t在 D3D 全屏幕模式开始渲染\n/sub \"字幕名\"\t载入一个附加的字幕文件\n/filter \"滤镜名\"\t从一个动态链接库中载入 DirectShow 滤镜 (允许通配符)\n/dvd\t\t运行 DVD 模式, \"路径名\" 表示 dvd 文件夹 (可选)\n/dvdpos T#C\t从标题 T, 章节 C 开始播放\n/dvdpos T#hh:mm\t从标题 T, 位置 hh:mm:ss 开始播放\n/cd\t\t从一张音频 CD 或 (S)VCD 中载入所有音轨, \"路径名\" 表示驱动器路径 (可选)\n/device\t\t打开默认的视频设备\n/open\t\t打开文件, 不自动开始回放\n/play\t\t在播放器启动后播放文件\n/close\t\t回放结束后关闭播放器 (仅能和 /play 同时使用)\n/shutdown\t回放结束后关闭操作系统\n/standby\t\t回放结束后将操作系统设置为待机模式\n/hibernate\t回放结束后休眠操作系统\n/logoff\t\t回放结束后注销\n/lock\t\t回放结束后锁定计算机\n/monitoroff\t回放结束后关闭显示器\n/playnext\t\t回放结束后打开文件夹中的下一个文件\n/fullscreen\t以全屏幕模式启动\n/minimized\t以最小化模式启动\n/new\t\t启动一个新的播放器实例\n/add\t\t添加 \"路径名\" 到播放列表中,可以和 /open 与 /play 组合使用\n/regvid\t\t为视频文件创建文件关联\n/regaud\t\t为音频文件创建文件关联\n/regpl\t\t为播放列表创建文件关联\n/regall\t\t为所有支持的文件类型创建文件关联\n/unregall\t\t移除所有文件关联\n/start ms\t\t在 \"ms\" (= 毫秒) 处开始播放\n/startpos hh:mm:ss\t在位置 hh:mm:ss 开始播放\n/fixedsize w,h\t设置一个固定的窗口大小\n/monitor N\t在显示器 N 上启动, N 从 1 开始\n/audiorenderer N\t使用音频渲染器 N 启动, N 从 1 开始\n\t\t(请查阅 \"输出\" 设置)\n/shaderpreset \"Pr\"\t开始使用 \"Pr\" 着色器预设\n/pns \"name\"\t指定要使用的全景和扫描预设名称\n/iconsassoc\t重新关联格式图标\n/nofocus\t\t在后台打开MPC-HC\n/webport N\t在指定端口启动web 界面\n/debug\t\t显示调试信息\n/nominidump\t禁止创建小存储器转储文件\n/slave \"hWnd\"\t使用MPC-HC为从\n/reset\t\t恢复默认设置\n/help /h /?\t显示此命令行开关帮助对话框\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "用法: mpc-hc.exe \"路径名\" [开关]\n\n\"路径名\"\t\t表示要载入的主文件或目录 (允许通配符, \"-\" 表示标准输入)\n/dub \"配音名\"\t载入一个附加的音频文件\n/dubdelay \t\"文件\"载入音频文件延迟 XXms (如果该文件包含 \"...延迟 XXms...\")\n/d3dfs\t\t在 D3D 全屏幕模式开始渲染\n/sub \"字幕名\"\t载入一个附加的字幕文件\n/filter \"滤镜名\"\t从一个动态链接库中载入 DirectShow 滤镜 (允许通配符)\n/dvd\t\t运行 DVD 模式, \"路径名\" 表示 dvd 文件夹 (可选)\n/dvdpos T#C\t从标题 T, 章节 C 开始播放\n/dvdpos T#hh:mm\t从标题 T, 位置 hh:mm:ss 开始播放\n/cd\t\t从一张音频 CD 或 (S)VCD 中载入所有音轨, \"路径名\" 表示驱动器路径 (可选)\n/device\t\t打开默认的视频设备\n/open\t\t打开文件, 不自动开始回放\n/play\t\t在播放器启动后播放文件\n/close\t\t回放结束后关闭播放器 (仅能和 /play 同时使用)\n/shutdown\t回放结束后关闭操作系统\n/standby\t\t回放结束后将操作系统设置为待机模式\n/hibernate\t回放结束后休眠操作系统\n/logoff\t\t回放结束后注销\n/lock\t\t回放结束后锁定计算机\n/monitoroff\t回放结束后关闭显示器\n/playnext\t\t回放结束后打开文件夹中的下一个文件\n/fullscreen\t以全屏幕模式启动\n/minimized\t以最小化模式启动\n/new\t\t启动一个新的播放器实例\n/add\t\t添加 \"路径名\" 到播放列表中,可以和 /open 与 /play 组合使用\n/randomize\t随机的播放列表\n/regvid\t\t为视频文件创建文件关联\n/regaud\t\t为音频文件创建文件关联\n/regpl\t\t为播放列表创建文件关联\n/regall\t\t为所有支持的文件类型创建文件关联\n/unregall\t\t移除所有文件关联\n/start ms\t\t在 \"ms\" (= 毫秒) 处开始播放\n/startpos hh:mm:ss\t在位置 hh:mm:ss 开始播放\n/fixedsize w,h\t设置一个固定的窗口大小\n/monitor N\t在显示器 N 上启动, N 从 1 开始\n/audiorenderer N\t使用音频渲染器 N 启动, N 从 1 开始\n\t\t(请查阅 \"输出\" 设置)\n/shaderpreset \"Pr\"\t开始使用 \"Pr\" 着色器预设\n/pns \"name\"\t指定要使用的全景和扫描预设名称\n/iconsassoc\t重新关联格式图标\n/nofocus\t\t在后台打开MPC-HC\n/webport N\t在指定端口启动web 界面\n/debug\t\t显示调试信息\n/nocrashreporter\t关闭崩溃报告\n/slave \"hWnd\"\t使用MPC-HC为从\n/reset\t\t恢复默认设置\n/help /h /?\t显示此命令行开关帮助对话框\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2698,40 +2750,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "上 后 右" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "重置显示状态" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "字幕::其它" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "隐藏边框(&B)" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "仅图像" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "显示标题与菜单(&W)" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "隐藏菜单(&M)" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "高级" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "在进度栏之上" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "在进度栏之下" msgctxt "IDS_VIDEO_STREAM" @@ -2899,8 +2923,8 @@ msgid "Other Audio" msgstr "Other Audio" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "AC-3" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2910,6 +2934,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus Audio Codec" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "DTS/DTS-HD" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2974,22 +3018,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus Audio Codec" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "Playlist" @@ -3375,7 +3403,7 @@ msgid "Error parsing the entered frame rate!" msgstr "解析输入的帧率错误!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "无法进行帧步进,请尝试其它视频渲染器。" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3466,7 +3494,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "您需要在测试之前应用新类型。" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "回放结束后: 退出" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.dialogs.po b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.dialogs.po index 8c6100db4a1..01df343f8db 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.dialogs.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.dialogs.po @@ -113,7 +113,7 @@ msgid "Enable custom channel mapping" msgstr "啟用自訂的聲道對應" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC1" -msgid "Speaker configuration for " +msgid "Speaker configuration for" msgstr "揚聲器組態: 給" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC2" @@ -121,7 +121,7 @@ msgid "input channels:" msgstr "組聲道" msgctxt "IDD_PPAGEAUDIOSWITCHER_IDC_STATIC3" -msgid "Hold shift for immediate changes when clicking something " +msgid "Hold shift for immediate changes when clicking something" msgstr "按住 Shift 可以立即反應點選時的改變" msgctxt "IDD_GOTO_DLG_CAPTION" @@ -573,7 +573,7 @@ msgid "Warning" msgstr "警告" msgctxt "IDD_PPAGESUBTITLES_IDC_STATIC" -msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your cpu." +msgid "If you override and enable full-screen antialiasing somewhere at your videocard's settings, subtitles aren't going to look any better but it will surely eat your CPU." msgstr "如果您覆寫並啟用在顯示卡裡的全螢幕反鋸齒 (FSAA) 設定, 字幕不會變得比較好看, 卻會吃更多的 CPU 資源。" msgctxt "IDD_PPAGEFORMATS_IDC_STATIC2" @@ -685,11 +685,11 @@ msgid "Use Windows 7 Taskbar features" msgstr "使用 Windows 7 工作列功能" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK7" -msgid "Open next/previous file in folder on \"Skip back/forward\" when there is only one item in playlist" +msgid "Open previous/next file in folder on \"Skip back/forward\" when there is only one item in playlist" msgstr "當播放清單中只有一個項目時執行 \"前一段/後一段\" 時開啟前/後一個檔案" msgctxt "IDD_PPAGETWEAKS_IDC_CHECK8" -msgid "Use time tooltip:" +msgid "Show time tooltip:" msgstr "使用時間工具提示:" msgctxt "IDD_PPAGETWEAKS_IDC_STATIC" @@ -1281,8 +1281,8 @@ msgid "Enable automatic update check" msgstr "啟用自動更新檢查" msgctxt "IDD_PPAGEMISC_IDC_STATIC5" -msgid "Delay between each check:" -msgstr "每次檢查間隔:" +msgid "Check every:" +msgstr "" msgctxt "IDD_PPAGEMISC_IDC_STATIC6" msgid "day(s)" @@ -1668,3 +1668,27 @@ msgctxt "IDD_CMD_LINE_HELP_IDOK" msgid "OK" msgstr "確認" +msgctxt "IDD_CRASH_REPORTER_CAPTION" +msgid "Crash reporter" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC1" +msgid "We are sorry, it seems MPC-HC just crashed. :(\n\nTo help us diagnose and fix the problem, a bug report will be sent. You can provide additional information if you want." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC2" +msgid "Email:" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC3" +msgid "Your email address is optional and will only be used if the developers need to contact you for more information." +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDC_STATIC4" +msgid "Problem description (use English only):" +msgstr "" + +msgctxt "IDD_CRASH_REPORTER_IDOK" +msgid "OK" +msgstr "" + diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.menus.po b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.menus.po index e999cac2ebb..049893722c5 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.menus.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.menus.po @@ -197,13 +197,17 @@ msgctxt "ID_VIEW_TEARING_TEST" msgid "&Tearing Test" msgstr "抖動測試(&T)" -msgctxt "ID_VIEW_DISPLAYSTATS" -msgid "&Display Stats" -msgstr "顯示統計(&D)" +msgctxt "ID_VIEW_DISPLAY_RENDERER_STATS" +msgid "&Display Statistics" +msgstr "" + +msgctxt "ID_VIEW_OSD_DISPLAY_TIME" +msgid "Display Current T&ime" +msgstr "" -msgctxt "ID_VIEW_REMAINING_TIME" -msgid "&Remaining Time" -msgstr "剩餘時間" +msgctxt "ID_VIEW_OSD_SHOW_FILENAME" +msgid "Show &File Name" +msgstr "" msgctxt "POPUP" msgid "&Output Range" @@ -554,16 +558,16 @@ msgid "S&haders" msgstr "Shaders (&H)" msgctxt "ID_AUDIOS" -msgid "&Audio" -msgstr "音訊(&A)" +msgid "&Audio Track" +msgstr "" msgctxt "ID_SUBTITLES" -msgid "Su&btitles" -msgstr "字幕(&B)" +msgid "Su&btitle Track" +msgstr "" msgctxt "ID_VIDEO_STREAMS" -msgid "&Video Stream" -msgstr "視訊流(&V)" +msgid "&Video Track" +msgstr "" msgctxt "POPUP" msgid "&Volume" @@ -585,7 +589,19 @@ msgctxt "POPUP" msgid "Af&ter Playback" msgstr "播放完後" -msgctxt "ID_AFTERPLAYBACK_CLOSE" +msgctxt "ID_AFTERPLAYBACK_DONOTHING" +msgid "Do no&thing" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" +msgid "Play &next file in the folder" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_MONITOROFF" +msgid "Turn off the &monitor" +msgstr "" + +msgctxt "ID_AFTERPLAYBACK_EXIT" msgid "&Exit" msgstr "離開" @@ -609,14 +625,6 @@ msgctxt "ID_AFTERPLAYBACK_LOCK" msgid "&Lock" msgstr "鎖定" -msgctxt "ID_AFTERPLAYBACK_MONITOROFF" -msgid "Turn off the &monitor" -msgstr "" - -msgctxt "ID_AFTERPLAYBACK_PLAYNEXT" -msgid "Play &next file in the folder" -msgstr "" - msgctxt "POPUP" msgid "&Navigate" msgstr "導覽(&N)" diff --git a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.strings.po b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.strings.po index 597232fdac0..30cb7826232 100644 --- a/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.strings.po +++ b/src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.strings.po @@ -329,12 +329,12 @@ msgid "On/Off" msgstr "開/關" msgctxt "IDS_PPAGE_FS_CLN_FROM_FPS" -msgid "From fps" -msgstr "由 fps" +msgid "From FPS" +msgstr "由 FPS" msgctxt "IDS_PPAGE_FS_CLN_TO_FPS" -msgid "To fps" -msgstr "至 fps" +msgid "To FPS" +msgstr "至 FPS" msgctxt "IDS_PPAGE_FS_CLN_DISPLAY_MODE" msgid "Display mode (Hz)" @@ -625,7 +625,7 @@ msgid "Same as the VMR-9 (renderless), but uses a true two-pass bicubic resizer. msgstr "和 VMR-9 (無轉換) 相同,但使用了真正的 two-pass bicubic 縮放器。" msgctxt "IDC_DSNULL_COMP" -msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the cpu from working unnecessarily." +msgid "Connects to any video-like media type and will send the incoming samples to nowhere. Use it when you don't need the video display and want to save the CPU from working unnecessarily." msgstr "連到任何視訊媒體類型,並且不傳送傳進來的取樣資料。當你不需要任何視訊顯示而又想節省不必要的 CPU 工作時可以用。" msgctxt "IDC_DSNULL_UNCOMP" @@ -892,7 +892,7 @@ msgctxt "ID_VOLUME_MUTE" msgid "Mute" msgstr "靜音" -msgctxt "ID_VOLUME_MUTE_ON" +msgctxt "ID_VOLUME_MUTE_OFF" msgid "Unmute" msgstr "解除靜音" @@ -1376,6 +1376,26 @@ msgctxt "IDS_ASPECT_RATIO_FMT" msgid "AR %d:%d" msgstr "" +msgctxt "IDS_PPAGEADVANCED_LOGGER" +msgid "Enables logging to file (requires restart)" +msgstr "" + +msgctxt "IDS_TIMER_REMAINING_TIME" +msgid "Remaining time" +msgstr "" + +msgctxt "IDS_TIMER_HIGH_PRECISION" +msgid "High precision" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_REWIND" +msgid "After Playback: Rewind current file" +msgstr "" + +msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgid "After Playback: Close" +msgstr "" + msgctxt "IDS_AG_OPEN_DEVICE" msgid "Open Device" msgstr "開啟裝置" @@ -1425,11 +1445,11 @@ msgid "Stop" msgstr "停止" msgctxt "IDS_AG_FRAMESTEP" -msgid "Framestep" +msgid "Frame-step" msgstr "單格步進" msgctxt "IDS_MPLAYERC_16" -msgid "Framestep back" +msgid "Frame-step back" msgstr "單格退回" msgctxt "IDS_AG_GO_TO" @@ -1529,8 +1549,8 @@ msgid "Thumbnails saved successfully" msgstr "縮圖已成功儲存" msgctxt "IDS_MENU_VIDEO_STREAM" -msgid "&Video Stream" -msgstr "視訊串流(&T)" +msgid "&Video Track" +msgstr "" msgctxt "IDS_MENU_VIDEO_ANGLE" msgid "Video Ang&le" @@ -1652,14 +1672,46 @@ msgctxt "IDS_MPLAYERC_103" msgid "Shift Subtitle Right" msgstr "字幕向右移" -msgctxt "IDS_AG_DISPLAY_STATS" -msgid "Display Stats" -msgstr "顯示統計" - msgctxt "IDS_AG_SEEKSET" msgid "Jump to Beginning" msgstr "跳至起始點" +msgctxt "IDS_OSD_SHOW_FILENAME" +msgid "OSD: Show File Name" +msgstr "" + +msgctxt "IDS_OSD_DISPLAY_RENDERER_STATS" +msgid "OSD: Display Renderer Statistics" +msgstr "" + +msgctxt "IDS_OSD_RESET_RENDERER_STATS" +msgid "OSD: Reset Renderer Statistics" +msgstr "" + +msgctxt "IDD_PPAGESUBMISC" +msgid "Subtitles::Misc" +msgstr "字幕::其它" + +msgctxt "IDS_VIEW_BORDERLESS" +msgid "Hide &borders" +msgstr "隱藏邊框" + +msgctxt "IDS_VIEW_FRAMEONLY" +msgid "Fra&me Only" +msgstr "僅影格" + +msgctxt "IDS_VIEW_CAPTIONMENU" +msgid "Sho&w Caption&&Menu" +msgstr "顯示標題選單" + +msgctxt "IDS_VIEW_HIDEMENU" +msgid "Hide &Menu" +msgstr "隱藏選單" + +msgctxt "IDD_PPAGEADVANCED" +msgid "Advanced" +msgstr "" + msgctxt "IDS_AG_VIEW_MINIMAL" msgid "View Minimal" msgstr "最小視窗" @@ -1893,12 +1945,12 @@ msgid "Boss key" msgstr "老闆鍵" msgctxt "IDS_MPLAYERC_77" -msgid "Player Menu (short)" -msgstr "播放程式選單 (短)" +msgid "Player Menu" +msgstr "" msgctxt "IDS_MPLAYERC_78" -msgid "Player Menu (long)" -msgstr "播放程式選單 (長)" +msgid "Player Menu (full)" +msgstr "" msgctxt "IDS_AG_FILTERS_MENU" msgid "Filters Menu" @@ -1976,9 +2028,9 @@ msgctxt "IDS_MPLAYERC_97" msgid "On/Off Subtitle (DVD)" msgstr "開啟/關閉字幕 (DVD)" -msgctxt "IDS_MPLAYERC_98" -msgid "Remaining Time" -msgstr "剩餘時間" +msgctxt "IDS_OSD_DISPLAY_CURRENT_TIME" +msgid "OSD: Display Current Time" +msgstr "" msgctxt "IDS_PPAGEWEBSERVER_0" msgid "Select the directory" @@ -2289,8 +2341,8 @@ msgid "Out of memory" msgstr "記憶體不足" msgctxt "IDS_MAINFRM_77" -msgid "Error: Flash player for IE is required" -msgstr "錯誤: 需要 IE 用的 Flash" +msgid "Error: Adobe Flash Player for Internet Explorer is required" +msgstr "錯誤: 需要 Internet Explorer 用的 Flash" msgctxt "IDS_MAINFRM_78" msgid "QuickTime not yet supported for X64 (apple library not available)" @@ -2361,7 +2413,7 @@ msgid "Toggle Caption&Menu" msgstr "切換標題選單" msgctxt "IDS_AG_TOGGLE_SEEKER" -msgid "Toggle Seeker" +msgid "Toggle Seek Bar" msgstr "切換搜尋列" msgctxt "IDS_AG_TOGGLE_CONTROLS" @@ -2517,8 +2569,8 @@ msgid "Volume boost Max" msgstr "最大音量增幅" msgctxt "IDS_USAGE" -msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" -msgstr "用法: mpc-hc.exe \"路徑名稱\" [選項]\n\n\"路徑名稱\"\t要載入的主要檔案或資料夾。(可使用萬用字元, \"-\" 表示標準輸入)\n/dub \"音源名稱\"\t載入額外的音訊檔案\n/dubdelay \"檔案\"\t以平移 XXms 的時間載入額外的音訊檔案。\n\t\t(如果檔案含有 \"...DELAY XXms...\")\n/d3dfs\t\t在 D3D 全螢幕模式啟動繪製\n/sub \"字幕名稱\"\t載入額外的字幕檔\n/filter \"篩選器名\"\t從動態連結函式庫載入 DirectShow 篩選器。\n\t\t(允許萬用字元)\n/dvd\t\t執行 DVD 模式, \"路徑名稱\" 代表該 DVD 資料夾\n\t\t(選用)\n/dvdpos T#C\t從第 T 標題, 第 C 章節開始播放\n/dvdpos T#hh:mm\t從第 T 標題, 時間 hh:mm:ss 開始播放\n/cd\t\t載入音樂 CD 或是 (S)VCD 的所有音軌, \"路徑名稱\"\n\t\t表示光碟機路徑 (選用)\n/device\t\t開啟預設視訊設備\n/open\t\t開啟檔案, 但不自動播放\n/play\t\t播放程式一啟動就播放檔案\n/close\t\t播放完畢後就關閉播放程式 (搭配 /play\n\t\t一起用才有效)\n/shutdown\t播放完之後關閉作業系統\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\t以全螢幕模式啟動\n/minimized\t以最小化模式啟動\n/new\t\t使用新的播放程式實體\n/add\t\t新增 \"路徑名稱\" 到播放清單, 可與 /open 和 /play\n\t\t合併使用\n/regvid\t\t建立視訊格式檔案關聯\n/regaud\t\t建立音訊格式檔案關聯\n/regpl\t\t建立播放清單檔案關聯\n/regall\t\t建立所有支援格式的檔案關聯\n/unregall\t\t移除所有檔案關聯\n/start ms\t\t從第 ms 毫秒開始播放\n/startpos hh:mm:ss\t從時間 hh:mm:ss 開始播放\n/fixedsize w,h\t設定固定的視窗大小\n/monitor N\t在第 N 顯示器啟動, N 從 1 開始\n/audiorenderer N\t使用第 N 音訊譜製器啟動, N 從 1 開始\n\t\t(請見 \"輸出\" 設定)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nominidump\tDisable minidump creation\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\t回復預設設定\n/help /h /?\t顯示命令列選項的說明\n" +msgid "Usage: mpc-hc.exe \"pathname\" [switches]\n\n\"pathname\"\tThe main file or directory to be loaded (wildcards\n\t\tallowed, \"-\" denotes standard input)\n/dub \"dubname\"\tLoad an additional audio file\n/dubdelay \"file\"\tLoad an additional audio file shifted with XXms (if\n\t\tthe file contains \"...DELAY XXms...\")\n/d3dfs\t\tStart rendering in D3D fullscreen mode\n/sub \"subname\"\tLoad an additional subtitle file\n/filter \"filtername\"\tLoad DirectShow filters from a dynamic link\n\t\tlibrary (wildcards allowed)\n/dvd\t\tRun in dvd mode, \"pathname\" means the dvd\n\t\tfolder (optional)\n/dvdpos T#C\tStart playback at title T, chapter C\n/dvdpos T#hh:mm\tStart playback at title T, position hh:mm:ss\n/cd\t\tLoad all the tracks of an audio cd or (s)vcd,\n\t\t\"pathname\" means the drive path (optional)\n/device\t\tOpen the default video device\n/open\t\tOpen the file, don't automatically start playback\n/play\t\tStart playing the file as soon the player is\n\t\tlaunched\n/close\t\tClose the player after playback (only works when\n\t\tused with /play)\n/shutdown\tShutdown the operating system after playback\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\tStart in full-screen mode\n/minimized\tStart in minimized mode\n/new\t\tUse a new instance of the player\n/add\t\tAdd \"pathname\" to playlist, can be combined\n\t\twith /open and /play\n/randomize\tRandomize the playlist\n/regvid\t\tCreate file associations for video files\n/regaud\t\tCreate file associations for audio files\n/regpl\t\tCreate file associations for playlist files\n/regall\t\tCreate file associations for all supported file types\n/unregall\t\tRemove all file associations\n/start ms\t\tStart playing at \"ms\" (= milliseconds)\n/startpos hh:mm:ss\tStart playing at position hh:mm:ss\n/fixedsize w,h\tSet a fixed window size\n/monitor N\tStart player on monitor N, where N starts from 1\n/audiorenderer N\tStart using audiorenderer N, where N starts from 1\n\t\t(see \"Output\" settings)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\tRestore default settings\n/help /h /?\tShow help about command line switches\n" +msgstr "用法: mpc-hc.exe \"路徑名稱\" [選項]\n\n\"路徑名稱\"\t要載入的主要檔案或資料夾。(可使用萬用字元, \"-\" 表示標準輸入)\n/dub \"音源名稱\"\t載入額外的音訊檔案\n/dubdelay \"檔案\"\t以平移 XXms 的時間載入額外的音訊檔案。\n\t\t(如果檔案含有 \"...DELAY XXms...\")\n/d3dfs\t\t在 D3D 全螢幕模式啟動繪製\n/sub \"字幕名稱\"\t載入額外的字幕檔\n/filter \"篩選器名\"\t從動態連結函式庫載入 DirectShow 篩選器。\n\t\t(允許萬用字元)\n/dvd\t\t執行 DVD 模式, \"路徑名稱\" 代表該 DVD 資料夾\n\t\t(選用)\n/dvdpos T#C\t從第 T 標題, 第 C 章節開始播放\n/dvdpos T#hh:mm\t從第 T 標題, 時間 hh:mm:ss 開始播放\n/cd\t\t載入音樂 CD 或是 (S)VCD 的所有音軌, \"路徑名稱\"\n\t\t表示光碟機路徑 (選用)\n/device\t\t開啟預設視訊設備\n/open\t\t開啟檔案, 但不自動播放\n/play\t\t播放程式一啟動就播放檔案\n/close\t\t播放完畢後就關閉播放程式 (搭配 /play\n\t\t一起用才有效)\n/shutdown\t播放完之後關閉作業系統\n/standby\t\tPut the operating system in standby mode after playback\n/hibernate\tHibernate operating system after playback\n/logoff\t\tLog off after playback\n/lock\t\tLock workstation after playback\n/monitoroff\tTurn off the monitor after playback\n/playnext\t\tOpen next file in the folder after playback\n/fullscreen\t以全螢幕模式啟動\n/minimized\t以最小化模式啟動\n/new\t\t使用新的播放程式實體\n/add\t\t新增 \"路徑名稱\" 到播放清單, 可與 /open 和 /play\n\t\t合併使用\n/randomize\tRandomize the playlist\n/regvid\t\t建立視訊格式檔案關聯\n/regaud\t\t建立音訊格式檔案關聯\n/regpl\t\t建立播放清單檔案關聯\n/regall\t\t建立所有支援格式的檔案關聯\n/unregall\t\t移除所有檔案關聯\n/start ms\t\t從第 ms 毫秒開始播放\n/startpos hh:mm:ss\t從時間 hh:mm:ss 開始播放\n/fixedsize w,h\t設定固定的視窗大小\n/monitor N\t在第 N 顯示器啟動, N 從 1 開始\n/audiorenderer N\t使用第 N 音訊譜製器啟動, N 從 1 開始\n\t\t(請見 \"輸出\" 設定)\n/shaderpreset \"Pr\"\tStart using \"Pr\" shader preset\n/pns \"name\"\tSpecify Pan&Scan preset name to use\n/iconsassoc\tReassociate format icons\n/nofocus\t\tOpen MPC-HC in background\n/webport N\tStart web interface on specified port\n/debug\t\tShow debug information in OSD\n/nocrashreporter\tDisable the crash reporter\n/slave \"hWnd\"\tUse MPC-HC as slave\n/reset\t\t回復預設設定\n/help /h /?\t顯示命令列選項的說明\n" msgctxt "IDS_UNKNOWN_SWITCH" msgid "Unrecognized switch(es) found in command line string: \n\n" @@ -2700,40 +2752,12 @@ msgctxt "IDS_TOP_BACK_RIGHT" msgid "Top Back Right" msgstr "右上後側" -msgctxt "IDS_AG_RESET_STATS" -msgid "Reset Display Stats" -msgstr "重設顯示統計" - -msgctxt "IDD_PPAGESUBMISC" -msgid "Subtitles::Misc" -msgstr "字幕::其它" - -msgctxt "IDS_VIEW_BORDERLESS" -msgid "Hide &borders" -msgstr "隱藏邊框" - -msgctxt "IDS_VIEW_FRAMEONLY" -msgid "Frame Only" -msgstr "僅影格" - -msgctxt "IDS_VIEW_CAPTIONMENU" -msgid "Sho&w Caption&&Menu" -msgstr "顯示標題選單" - -msgctxt "IDS_VIEW_HIDEMENU" -msgid "Hide &Menu" -msgstr "隱藏選單" - -msgctxt "IDD_PPAGEADVANCED" -msgid "Advanced" -msgstr "" - msgctxt "IDS_TIME_TOOLTIP_ABOVE" -msgid "Above seekbar" +msgid "Above seek bar" msgstr "搜尋列之上" msgctxt "IDS_TIME_TOOLTIP_BELOW" -msgid "Below seekbar" +msgid "Below seek bar" msgstr "搜尋列之下" msgctxt "IDS_VIDEO_STREAM" @@ -2901,8 +2925,8 @@ msgid "Other Audio" msgstr "其他音訊" msgctxt "IDS_MFMT_AC3" -msgid "AC-3/DTS" -msgstr "AC-3/DTS" +msgid "AC-3" +msgstr "" msgctxt "IDS_MFMT_AIFF" msgid "AIFF" @@ -2912,6 +2936,26 @@ msgctxt "IDS_MFMT_ALAC" msgid "Apple Lossless" msgstr "Apple Lossless" +msgctxt "IDS_MFMT_WAV" +msgid "WAV" +msgstr "WAV" + +msgctxt "IDS_MFMT_WMA" +msgid "Windows Media Audio" +msgstr "Windows Media Audio" + +msgctxt "IDS_MFMT_WV" +msgid "WavPack" +msgstr "WavPack" + +msgctxt "IDS_MFMT_OPUS" +msgid "Opus Audio Codec" +msgstr "Opus 音訊" + +msgctxt "IDS_MFMT_DTS" +msgid "DTS/DTS-HD" +msgstr "" + msgctxt "IDS_MFMT_AMR" msgid "AMR" msgstr "AMR" @@ -2976,22 +3020,6 @@ msgctxt "IDS_MFMT_TTA" msgid "True Audio" msgstr "True Audio" -msgctxt "IDS_MFMT_WAV" -msgid "WAV" -msgstr "WAV" - -msgctxt "IDS_MFMT_WMA" -msgid "Windows Media Audio" -msgstr "Windows Media Audio" - -msgctxt "IDS_MFMT_WV" -msgid "WavPack" -msgstr "WavPack" - -msgctxt "IDS_MFMT_OPUS" -msgid "Opus Audio Codec" -msgstr "Opus 音訊" - msgctxt "IDS_MFMT_PLS" msgid "Playlist" msgstr "播放清單" @@ -3377,7 +3405,7 @@ msgid "Error parsing the entered frame rate!" msgstr "解析輸入的影格播放速率時發生錯誤!" msgctxt "IDS_FRAME_STEP_ERROR_RENDERER" -msgid "Cannot frame step, try a different video renderer." +msgid "Cannot frame-step, try a different video renderer." msgstr "不能步進影格, 請嘗試其他的視訊繪製器。" msgctxt "IDS_SCREENSHOT_ERROR_REAL" @@ -3468,7 +3496,7 @@ msgctxt "IDS_WEBSERVER_ERROR_TEST" msgid "You need to apply the new settings before testing them." msgstr "測試之前您需要套用新的設定。" -msgctxt "IDS_AFTERPLAYBACK_CLOSE" +msgctxt "IDS_AFTERPLAYBACK_EXIT" msgid "After Playback: Exit" msgstr "播放完後: 離開" diff --git a/src/mpc-hc/mpcresources/UpdateIS.py b/src/mpc-hc/mpcresources/UpdateIS.py index 7d68f0a1e71..d8bf00e3dd8 100644 --- a/src/mpc-hc/mpcresources/UpdateIS.py +++ b/src/mpc-hc/mpcresources/UpdateIS.py @@ -1,4 +1,4 @@ -# (C) 2013 see Authors.txt +# (C) 2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -20,7 +20,8 @@ from TranslationDataIS import * -if __name__ == '__main__': + +def UpdateIS(normalizePOFile=True): translationsConfigAndData = [] for cfgPath in glob.glob(r'cfg\*.cfg'): config = ConfigParser.RawConfigParser({'installerIsTranslated': 'True'}) @@ -30,9 +31,13 @@ poPath = r'PO\mpc-hc.installer.' + config.get('Info', 'langShortName') translationData = TranslationDataIS() translationData.loadFromPO(poPath, 'po', (False, False, True)) - # Write back the PO file to ensure it's properly normalized - translationData.writePO(poPath, 'po', (False, False, True)) + if normalizePOFile: + # Write back the PO file to ensure it's properly normalized + translationData.writePO(poPath, 'po', (False, False, True)) translationsConfigAndData.append((config, translationData)) TranslationDataIS.translateIS(translationsConfigAndData, r'..\..\..\distrib\custom_messages.iss', r'..\..\..\distrib\custom_messages_translated.iss') + +if __name__ == '__main__': + UpdateIS() diff --git a/src/mpc-hc/mpcresources/UpdateISPO.py b/src/mpc-hc/mpcresources/UpdateISPO.py index 0e108a239dc..5fec11c4a86 100644 --- a/src/mpc-hc/mpcresources/UpdateISPO.py +++ b/src/mpc-hc/mpcresources/UpdateISPO.py @@ -1,4 +1,4 @@ -# (C) 2013 see Authors.txt +# (C) 2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -19,11 +19,9 @@ from TranslationDataIS import * -if __name__ == '__main__': - if len(sys.argv) != 2: - RuntimeError('Invalid number of parameters. Usage: UpdateISPO.py ') - filename = sys.argv[1].replace('.strings', '') +def UpdateISPO(filename): + filename = filename.replace('.strings', '') translationDataOld = TranslationDataIS() translationDataOld.loadFromPO('PO\\' + filename, 'po', (False, False, True)) @@ -32,3 +30,9 @@ translationData.loadFromPO(r'PO\mpc-hc.installer', 'pot', (False, False, True)) translationData.translate(translationDataOld) translationData.writePO('PO\\' + filename, 'po', (False, False, True)) + +if __name__ == '__main__': + if len(sys.argv) != 2: + RuntimeError('Invalid number of parameters. Usage: UpdateISPO.py ') + + UpdateISPO(sys.argv[1]) diff --git a/src/mpc-hc/mpcresources/UpdateISPOT.py b/src/mpc-hc/mpcresources/UpdateISPOT.py index 41042747db0..62917687c04 100644 --- a/src/mpc-hc/mpcresources/UpdateISPOT.py +++ b/src/mpc-hc/mpcresources/UpdateISPOT.py @@ -1,4 +1,4 @@ -# (C) 2013 see Authors.txt +# (C) 2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -19,7 +19,8 @@ from TranslationDataIS import * -if __name__ == '__main__': + +def UpdateISPOT(): translationData = TranslationDataIS() translationData.loadFromIS(r'..\..\..\distrib\custom_messages.iss') @@ -28,3 +29,6 @@ output = tuple(not b for b in translationData.areEqualsSections(translationDataOld)) translationData.writePO(r'PO\mpc-hc.installer', 'pot', output) + +if __name__ == '__main__': + UpdateISPOT() diff --git a/src/mpc-hc/mpcresources/UpdatePO.py b/src/mpc-hc/mpcresources/UpdatePO.py index c0fd369f261..3aae35b3443 100644 --- a/src/mpc-hc/mpcresources/UpdatePO.py +++ b/src/mpc-hc/mpcresources/UpdatePO.py @@ -1,4 +1,4 @@ -# (C) 2013 see Authors.txt +# (C) 2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -19,12 +19,8 @@ from TranslationDataRC import * -if __name__ == '__main__': - if len(sys.argv) != 2: - RuntimeError('Invalid number of parameters. Usage: UpdatePO.py ') - - filename = sys.argv[1] +def UpdatePO(filename): translationDataOld = TranslationDataRC() translationDataOld.loadFromPO('PO\\' + filename, 'po') @@ -32,3 +28,9 @@ translationData.loadFromPO(r'PO\mpc-hc', 'pot') translationData.translate(translationDataOld) translationData.writePO('PO\\' + filename, 'po') + +if __name__ == '__main__': + if len(sys.argv) != 2: + RuntimeError('Invalid number of parameters. Usage: UpdatePO.py ') + + UpdatePO(sys.argv[1]) diff --git a/src/mpc-hc/mpcresources/UpdatePOT.py b/src/mpc-hc/mpcresources/UpdatePOT.py index b9c1e832bb8..928e20ae95d 100644 --- a/src/mpc-hc/mpcresources/UpdatePOT.py +++ b/src/mpc-hc/mpcresources/UpdatePOT.py @@ -1,4 +1,4 @@ -# (C) 2013 see Authors.txt +# (C) 2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -19,7 +19,8 @@ from TranslationDataRC import * -if __name__ == '__main__': + +def UpdatePOT(): translationData = TranslationDataRC() translationData.loadFromRC(r'..\mpc-hc.rc') @@ -28,3 +29,6 @@ output = tuple(not b for b in translationData.areEqualsSections(translationDataOld)) translationData.writePO(r'PO\mpc-hc', 'pot', output) + +if __name__ == '__main__': + UpdatePOT() diff --git a/src/mpc-hc/mpcresources/UpdateRC.py b/src/mpc-hc/mpcresources/UpdateRC.py index 16b16a9e0a3..09cfb2d1799 100644 --- a/src/mpc-hc/mpcresources/UpdateRC.py +++ b/src/mpc-hc/mpcresources/UpdateRC.py @@ -1,4 +1,4 @@ -# (C) 2013 see Authors.txt +# (C) 2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -19,14 +19,17 @@ from TranslationDataRC import * -if __name__ == '__main__': - if len(sys.argv) != 2: - RuntimeError('Invalid number of parameters. Usage: UpdateRC.py ') - - filename = sys.argv[1] +def UpdateRC(filename, normalizePOFile=True): translationData = TranslationDataRC() translationData.loadFromPO('PO\\' + filename, 'po') translationData.translateRC(r'..\mpc-hc.rc', filename) - # Write back the PO file to ensure it's properly normalized - translationData.writePO('PO\\' + filename, 'po') + if normalizePOFile: + # Write back the PO file to ensure it's properly normalized + translationData.writePO('PO\\' + filename, 'po') + +if __name__ == '__main__': + if len(sys.argv) != 2: + RuntimeError('Invalid number of parameters. Usage: UpdateRC.py ') + + UpdateRC(sys.argv[1]) diff --git a/src/mpc-hc/mpcresources/cfg/mpc-hc.da.cfg b/src/mpc-hc/mpcresources/cfg/mpc-hc.da.cfg new file mode 100644 index 00000000000..3e88f7ee909 --- /dev/null +++ b/src/mpc-hc/mpcresources/cfg/mpc-hc.da.cfg @@ -0,0 +1,8 @@ +[Info] +langName: Danish +LangShortName: da +langDefine: LANG_DANISH, SUBLANG_DEFAULT +langDefineMFC: AFX_TARG_DAN +langID: 1030 +fileDesc: Danish language resource for MPC-HC +font: FONT 8, "MS Shell Dlg", 400, 0, 0x1 diff --git a/src/mpc-hc/mpcresources/common_python.bat b/src/mpc-hc/mpcresources/common_python.bat index ae8d6d49955..3e217787f7e 100755 --- a/src/mpc-hc/mpcresources/common_python.bat +++ b/src/mpc-hc/mpcresources/common_python.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2012-2013 see Authors.txt +REM (C) 2012-2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -21,11 +21,9 @@ PUSHD %~dp0 SET ROOT_DIR=..\..\.. -IF EXIST "%ROOT_DIR%\build.user.bat" ( - CALL "%ROOT_DIR%\build.user.bat" -) ELSE ( - IF DEFINED PYTHON (SET MPCHC_PYTHON=%PYTHON%) -) +IF EXIST "%ROOT_DIR%\build.user.bat" CALL "%ROOT_DIR%\build.user.bat" + +IF NOT DEFINED MPCHC_PYTHON IF DEFINED PYTHON (SET MPCHC_PYTHON=%PYTHON%) REM If the define wasn't set, we try to detect Python 2.7 from the registry IF NOT DEFINED MPCHC_PYTHON ( @@ -36,7 +34,7 @@ IF NOT DEFINED MPCHC_PYTHON ( ) ) -SET PATH=%MPCHC_PYTHON%;%PATH% +SET "PATH=%MPCHC_PYTHON%;%PATH%" FOR %%G IN (python.exe) DO (SET PYTHON_PATH=%%~$PATH:G) IF NOT DEFINED PYTHON_PATH GOTO MissingVar diff --git a/src/mpc-hc/mpcresources/mpc-hc.ar.rc b/src/mpc-hc/mpcresources/mpc-hc.ar.rc index 33247abec44..b784217a2ff 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ar.rc and b/src/mpc-hc/mpcresources/mpc-hc.ar.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.be.rc b/src/mpc-hc/mpcresources/mpc-hc.be.rc index 0c62601cca4..1663cd07f5f 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.be.rc and b/src/mpc-hc/mpcresources/mpc-hc.be.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.bn.rc b/src/mpc-hc/mpcresources/mpc-hc.bn.rc index 167383ae2a5..4294158261a 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.bn.rc and b/src/mpc-hc/mpcresources/mpc-hc.bn.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.ca.rc b/src/mpc-hc/mpcresources/mpc-hc.ca.rc index 47d48c9e367..de91acfba4b 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ca.rc and b/src/mpc-hc/mpcresources/mpc-hc.ca.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.cs.rc b/src/mpc-hc/mpcresources/mpc-hc.cs.rc index 819f1f3c8da..cf9979d0e2f 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.cs.rc and b/src/mpc-hc/mpcresources/mpc-hc.cs.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.da.rc b/src/mpc-hc/mpcresources/mpc-hc.da.rc new file mode 100644 index 00000000000..28fe991e58c Binary files /dev/null and b/src/mpc-hc/mpcresources/mpc-hc.da.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.de.rc b/src/mpc-hc/mpcresources/mpc-hc.de.rc index 07f4bebb063..5bb07bd9952 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.de.rc and b/src/mpc-hc/mpcresources/mpc-hc.de.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.el.rc b/src/mpc-hc/mpcresources/mpc-hc.el.rc index 0f73db55ba8..1328e8cc150 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.el.rc and b/src/mpc-hc/mpcresources/mpc-hc.el.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc b/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc index 7418b81a81e..5aedb7d733a 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc and b/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.es.rc b/src/mpc-hc/mpcresources/mpc-hc.es.rc index 09fbcf2e9f2..22b24e4f4d4 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.es.rc and b/src/mpc-hc/mpcresources/mpc-hc.es.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.eu.rc b/src/mpc-hc/mpcresources/mpc-hc.eu.rc index de61ceee0c2..6a7c5926dff 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.eu.rc and b/src/mpc-hc/mpcresources/mpc-hc.eu.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.fi.rc b/src/mpc-hc/mpcresources/mpc-hc.fi.rc index 1e35b241aa6..7f7329add30 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.fi.rc and b/src/mpc-hc/mpcresources/mpc-hc.fi.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.fr.rc b/src/mpc-hc/mpcresources/mpc-hc.fr.rc index 57e4a2ab339..84f5741ef25 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.fr.rc and b/src/mpc-hc/mpcresources/mpc-hc.fr.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.gl.rc b/src/mpc-hc/mpcresources/mpc-hc.gl.rc index 2e99eb184cf..0b10ce4a4d7 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.gl.rc and b/src/mpc-hc/mpcresources/mpc-hc.gl.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.he.rc b/src/mpc-hc/mpcresources/mpc-hc.he.rc index 4e2d0b48913..99a94bbeb54 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.he.rc and b/src/mpc-hc/mpcresources/mpc-hc.he.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.hr.rc b/src/mpc-hc/mpcresources/mpc-hc.hr.rc index 9242664dbb7..5e6604653d4 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.hr.rc and b/src/mpc-hc/mpcresources/mpc-hc.hr.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.hu.rc b/src/mpc-hc/mpcresources/mpc-hc.hu.rc index 53d6319efb0..23b556caf9a 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.hu.rc and b/src/mpc-hc/mpcresources/mpc-hc.hu.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.hy.rc b/src/mpc-hc/mpcresources/mpc-hc.hy.rc index f987d93dd38..07a2550b220 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.hy.rc and b/src/mpc-hc/mpcresources/mpc-hc.hy.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.it.rc b/src/mpc-hc/mpcresources/mpc-hc.it.rc index 2c0c87f107c..4633353519d 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.it.rc and b/src/mpc-hc/mpcresources/mpc-hc.it.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.ja.rc b/src/mpc-hc/mpcresources/mpc-hc.ja.rc index f8ded07e1e9..e3d8b28999b 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ja.rc and b/src/mpc-hc/mpcresources/mpc-hc.ja.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.ko.rc b/src/mpc-hc/mpcresources/mpc-hc.ko.rc index b0d50a9e020..46739b5199d 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ko.rc and b/src/mpc-hc/mpcresources/mpc-hc.ko.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc b/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc index 6ffe0657821..c3a480b013a 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc and b/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.nl.rc b/src/mpc-hc/mpcresources/mpc-hc.nl.rc index 0cd6849e8e0..61a2e8aad02 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.nl.rc and b/src/mpc-hc/mpcresources/mpc-hc.nl.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.pl.rc b/src/mpc-hc/mpcresources/mpc-hc.pl.rc index 00387f2e4fb..4bf0caa11bf 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.pl.rc and b/src/mpc-hc/mpcresources/mpc-hc.pl.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc b/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc index 5a47e453885..41cc199a7f9 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc and b/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.ro.rc b/src/mpc-hc/mpcresources/mpc-hc.ro.rc index 96bb7285aa1..1deafe99627 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ro.rc and b/src/mpc-hc/mpcresources/mpc-hc.ro.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.ru.rc b/src/mpc-hc/mpcresources/mpc-hc.ru.rc index fc8099eaf70..4dd9be06c1e 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.ru.rc and b/src/mpc-hc/mpcresources/mpc-hc.ru.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.sk.rc b/src/mpc-hc/mpcresources/mpc-hc.sk.rc index 8eea61a679d..22d4e925cbb 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.sk.rc and b/src/mpc-hc/mpcresources/mpc-hc.sk.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.sl.rc b/src/mpc-hc/mpcresources/mpc-hc.sl.rc index 80c4c9358b6..6b73e575bdb 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.sl.rc and b/src/mpc-hc/mpcresources/mpc-hc.sl.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.sr.rc b/src/mpc-hc/mpcresources/mpc-hc.sr.rc index 87b08f71263..0e72e633edf 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.sr.rc and b/src/mpc-hc/mpcresources/mpc-hc.sr.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.sv.rc b/src/mpc-hc/mpcresources/mpc-hc.sv.rc index 5e3e5eec1ce..a4420c7e5b6 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.sv.rc and b/src/mpc-hc/mpcresources/mpc-hc.sv.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc b/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc index 078621184c6..848964cba4b 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc and b/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.tr.rc b/src/mpc-hc/mpcresources/mpc-hc.tr.rc index 93a1c87b4c5..aa75f104296 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.tr.rc and b/src/mpc-hc/mpcresources/mpc-hc.tr.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.tt.rc b/src/mpc-hc/mpcresources/mpc-hc.tt.rc index 9ce1b71d161..db7fec5a8e8 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.tt.rc and b/src/mpc-hc/mpcresources/mpc-hc.tt.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.uk.rc b/src/mpc-hc/mpcresources/mpc-hc.uk.rc index 7f20d2b52f0..a0228afd8f3 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.uk.rc and b/src/mpc-hc/mpcresources/mpc-hc.uk.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.vi.rc b/src/mpc-hc/mpcresources/mpc-hc.vi.rc index 284b56b920b..a5f1c919cb3 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.vi.rc and b/src/mpc-hc/mpcresources/mpc-hc.vi.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc b/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc index 38ebddc6f02..d457d5a8969 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc and b/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc differ diff --git a/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc b/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc index f8755bfad31..01359a6bfc4 100644 Binary files a/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc and b/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc differ diff --git a/src/mpc-hc/mpcresources/mpcresources.vcxproj b/src/mpc-hc/mpcresources/mpcresources.vcxproj index 3b861b415b8..18a20cf152f 100644 --- a/src/mpc-hc/mpcresources/mpcresources.vcxproj +++ b/src/mpc-hc/mpcresources/mpcresources.vcxproj @@ -81,6 +81,14 @@ Release Czech x64 + + Release Danish + Win32 + + + Release Danish + x64 + Release Dutch Win32 @@ -332,6 +340,7 @@ $(ProjectName).zh_TW $(ProjectName).hr $(ProjectName).cs + $(ProjectName).da $(ProjectName).nl $(ProjectName).en_GB $(ProjectName).fi @@ -387,6 +396,9 @@ true + + true + true diff --git a/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters b/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters index 6f02a989317..67ae4bf3f09 100644 --- a/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters +++ b/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters @@ -26,6 +26,9 @@ Resource Files + + Resource Files + Resource Files diff --git a/src/mpc-hc/mpcresources/sync.bat b/src/mpc-hc/mpcresources/sync.bat index b4d90882911..5c18dd61891 100755 --- a/src/mpc-hc/mpcresources/sync.bat +++ b/src/mpc-hc/mpcresources/sync.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2013 see Authors.txt +REM (C) 2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -23,18 +23,7 @@ PUSHD %~dp0 CALL "common_python.bat" IF %ERRORLEVEL% NEQ 0 GOTO END -ECHO Updating POT file -python.exe UpdatePOT.py -ECHO ---------------------- - -FOR %%i IN (*.rc) DO ( - ECHO %%i - ECHO --^> Updating PO files - python.exe UpdatePO.py %%~ni - ECHO --^> Updating RC file - python.exe UpdateRC.py %%~ni - ECHO ---------------------- -) +python.exe sync.py :END PAUSE diff --git a/src/mpc-hc/mpcresources/sync.py b/src/mpc-hc/mpcresources/sync.py new file mode 100644 index 00000000000..ff292963ada --- /dev/null +++ b/src/mpc-hc/mpcresources/sync.py @@ -0,0 +1,65 @@ +# (C) 2015 see Authors.txt +# +# This file is part of MPC-HC. +# +# MPC-HC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# MPC-HC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys +import os +import fnmatch +import traceback + +from multiprocessing import Pool +from UpdatePOT import * +from UpdatePO import * +from UpdateRC import * + +def processRC(file): + ret = file + '\n' + result = True + try: + ret += '--> Updating PO file\n' + UpdatePO(file) + except Exception as e: + ret += ''.join(traceback.format_exception(*sys.exc_info())) + result = False + else: + try: + ret += '--> Updating RC file\n' + UpdateRC(file, False) + except Exception as e: + ret += ''.join(traceback.format_exception(*sys.exc_info())) + result = False + + ret += '----------------------' + return result, ret + +if __name__ == '__main__': + print 'Updating POT file' + UpdatePOT() + print '----------------------' + + pool = Pool() + results = [] + for file in os.listdir('.'): + if fnmatch.fnmatch(file, '*.rc'): + results.append(pool.apply_async(processRC, [os.path.splitext(file)[0]])); + + pool.close() + + for result in results: + ret = result.get(True) + print ret[1] + if (not ret[0]): + os.system('pause') diff --git a/src/mpc-hc/mpcresources/syncIS.bat b/src/mpc-hc/mpcresources/syncIS.bat index f54180730dd..f154d78a437 100755 --- a/src/mpc-hc/mpcresources/syncIS.bat +++ b/src/mpc-hc/mpcresources/syncIS.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2013 see Authors.txt +REM (C) 2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -23,19 +23,7 @@ PUSHD %~dp0 CALL "common_python.bat" IF %ERRORLEVEL% NEQ 0 GOTO END -ECHO Updating the installer POT file -python.exe UpdateISPOT.py -ECHO ---------------------- - -FOR %%i IN (PO\mpc-hc.installer.*.strings.po) DO ( - ECHO Updating PO file %%i - python.exe UpdateISPO.py %%~ni - ECHO ---------------------- -) - -ECHO Updating IS file -python.exe UpdateIS.py -ECHO ---------------------- +python.exe syncIS.py :END PAUSE diff --git a/src/mpc-hc/mpcresources/syncIS.py b/src/mpc-hc/mpcresources/syncIS.py new file mode 100644 index 00000000000..5b3be0ed938 --- /dev/null +++ b/src/mpc-hc/mpcresources/syncIS.py @@ -0,0 +1,61 @@ +# (C) 2015 see Authors.txt +# +# This file is part of MPC-HC. +# +# MPC-HC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# MPC-HC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys +import os +import fnmatch +import traceback + +from multiprocessing import Pool +from UpdateISPOT import * +from UpdateISPO import * +from UpdateIS import * + +def processPO(file): + ret = 'Updating PO file ' + file + '\n' + result = True + try: + UpdateISPO(file) + except Exception as e: + ret += ''.join(traceback.format_exception(*sys.exc_info())) + result = False + + ret += '----------------------' + return result, ret + +if __name__ == '__main__': + print 'Updating POT file' + UpdateISPOT() + print '----------------------' + + pool = Pool(); + results = [] + for file in os.listdir('PO'): + if fnmatch.fnmatch(file, 'mpc-hc.installer.*.strings.po'): + results.append(pool.apply_async(processPO, [os.path.splitext(file)[0]])); + + pool.close() + + for result in results: + ret = result.get(True) + print ret[1] + if (not ret[0]): + os.system('pause') + + print 'Updating IS file' + UpdateIS(False) + print '----------------------' diff --git a/src/mpc-hc/mplayerc.cpp b/src/mpc-hc/mplayerc.cpp index da6764ae97d..fc6b2fa510f 100644 --- a/src/mpc-hc/mplayerc.cpp +++ b/src/mpc-hc/mplayerc.cpp @@ -1,6 +1,6 @@ /* * (C) 2003-2006 Gabest - * (C) 2006-2014 see Authors.txt + * (C) 2006-2015 see Authors.txt * * This file is part of MPC-HC. * @@ -46,7 +46,7 @@ #include "mpc-hc_config.h" #include "../MathLibFix/MathLibFix.h" #include "CmdLineHelpDlg.h" -#include "MiniDump.h" +#include "CrashReporter.h" #define HOOKS_BUGS_URL _T("https://trac.mpc-hc.org/ticket/3739") @@ -584,12 +584,11 @@ void SetAudioRenderer(int AudioDevNo) int i = 2; BeginEnumSysDev(CLSID_AudioRendererCategory, pMoniker) { - LPOLESTR olestr = nullptr; + CComHeapPtr olestr; if (FAILED(pMoniker->GetDisplayName(0, 0, &olestr))) { continue; } CStringW str(olestr); - CoTaskMemFree(olestr); m_AudioRendererDisplayNames.Add(CString(str)); i++; } @@ -644,6 +643,8 @@ CMPlayerCApp::~CMPlayerCApp() if (m_hNTDLL) { FreeLibrary(m_hNTDLL); } + // Wait for any pending I/O operations to be canceled + while (WAIT_IO_COMPLETION == SleepEx(0, TRUE)); } void CMPlayerCApp::DelayedIdle() @@ -1023,7 +1024,7 @@ BOOL CMPlayerCApp::GetProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPBY return FALSE; } for (UINT i = 0; i < *pBytes; i++) { - (*ppData)[i] = (valueStr[i * 2] - 'A') | ((valueStr[i * 2 + 1] - 'A') << 4); + (*ppData)[i] = BYTE((valueStr[i * 2] - 'A') | ((valueStr[i * 2 + 1] - 'A') << 4)); } return TRUE; } @@ -1452,7 +1453,10 @@ BOOL CMPlayerCApp::InitInstance() // Remove the working directory from the search path to work around the DLL preloading vulnerability SetDllDirectory(_T("")); - CMiniDump::Enable(); + // At this point we have not hooked this function yet so we get the real result + if (!IsDebuggerPresent()) { + CrashReporter::Enable(); + } WorkAroundMathLibraryBug(); if (!HeapSetInformation(nullptr, HeapEnableTerminationOnCorruption, nullptr, 0)) { @@ -1751,9 +1755,30 @@ BOOL CMPlayerCApp::InitInstance() pFrame->SetDefaultFullscreenState(); pFrame->UpdateControlState(CMainFrame::UPDATE_CONTROLS_VISIBILITY); pFrame->SetIcon(icon, TRUE); - pFrame->DragAcceptFiles(); - pFrame->ShowWindow((m_s->nCLSwitches & CLSW_MINIMIZED) ? SW_SHOWMINIMIZED : SW_SHOW); + + bool bRestoreLastWindowType = m_s->fRememberWindowSize && m_s->fRememberWindowPos; + bool bMinimized = (m_s->nCLSwitches & CLSW_MINIMIZED) || (bRestoreLastWindowType && m_s->nLastWindowType == SIZE_MINIMIZED); + bool bMaximized = bRestoreLastWindowType && m_s->nLastWindowType == SIZE_MAXIMIZED; + + if (bMinimized) { + m_nCmdShow = (m_s->nCLSwitches & CLSW_NOFOCUS) ? SW_SHOWMINNOACTIVE : SW_SHOWMINIMIZED; + } else if (bMaximized) { + // Show maximized without focus is not supported nor make sense. + m_nCmdShow = (m_s->nCLSwitches & CLSW_NOFOCUS) ? SW_SHOWNOACTIVATE : SW_SHOWMAXIMIZED; + } else { + m_nCmdShow = (m_s->nCLSwitches & CLSW_NOFOCUS) ? SW_SHOWNOACTIVATE : SW_SHOWNORMAL; + } + + pFrame->ActivateFrame(m_nCmdShow); pFrame->UpdateWindow(); + + if (bMinimized && bMaximized) { + WINDOWPLACEMENT wp; + GetWindowPlacement(*pFrame, &wp); + wp.flags = WPF_RESTORETOMAXIMIZED; + SetWindowPlacement(*pFrame, &wp); + } + pFrame->m_hAccelTable = m_s->hAccel; m_s->WinLircClient.SetHWND(m_pMainWnd->m_hWnd); if (m_s->fWinLirc) { @@ -1771,8 +1796,6 @@ BOOL CMPlayerCApp::InitInstance() SendCommandLine(m_pMainWnd->m_hWnd); RegisterHotkeys(); - pFrame->SetFocus(); - // set HIGH I/O Priority for better playback performance if (m_hNTDLL) { typedef NTSTATUS(WINAPI * FUNC_NTSETINFORMATIONPROCESS)(HANDLE, ULONG, PVOID, ULONG); @@ -2135,10 +2158,8 @@ void CRemoteCtrlClient::ExecuteCommand(CStringA cmd, int repcnt) POSITION pos = s.wmcmds.GetHeadPosition(); while (pos) { wmcmd wc = s.wmcmds.GetNext(pos); - CStringA name = TToA(wc.GetName()); - name.Replace(' ', '_'); if ((repcnt == 0 && wc.rmrepcnt == 0 || wc.rmrepcnt > 0 && (repcnt % wc.rmrepcnt) == 0) - && (!name.CompareNoCase(cmd) || !wc.rmcmd.CompareNoCase(cmd) || wc.cmd == (WORD)strtol(cmd, nullptr, 10))) { + && (!wc.rmcmd.CompareNoCase(cmd) || wc.cmd == (WORD)strtol(cmd, nullptr, 10))) { CAutoLock cAutoLock(&m_csLock); TRACE(_T("CRemoteCtrlClient (calling command): %s\n"), wc.GetName()); m_pWnd->SendMessage(WM_COMMAND, wc.cmd); diff --git a/src/mpc-hc/res/web/variables.html b/src/mpc-hc/res/web/variables.html index 2c30a86c053..5b448d0b1a1 100644 --- a/src/mpc-hc/res/web/variables.html +++ b/src/mpc-hc/res/web/variables.html @@ -10,6 +10,7 @@ +

[file]

[filepatharg]

[filepath]

[filedirarg]

@@ -23,7 +24,9 @@

[volumelevel]

[muted]

[playbackrate]

+

[size]

[reloadtime]

+

[version]

[debug] diff --git a/src/mpc-hc/resource.h b/src/mpc-hc/resource.h index 5b276b919a2..2160d082979 100644 --- a/src/mpc-hc/resource.h +++ b/src/mpc-hc/resource.h @@ -181,9 +181,9 @@ #define ID_VOLUME_UP 907 #define ID_VOLUME_DOWN 908 #define ID_VOLUME_MUTE 909 -#define ID_VOLUME_MUTE_ON 910 +#define ID_VOLUME_MUTE_OFF 910 #define ID_VOLUME_MUTE_DISABLED 911 -#define ID_AFTERPLAYBACK_CLOSE 912 +#define ID_AFTERPLAYBACK_EXIT 912 #define ID_AFTERPLAYBACK_STANDBY 913 #define ID_AFTERPLAYBACK_HIBERNATE 914 #define ID_AFTERPLAYBACK_SHUTDOWN 915 @@ -219,6 +219,7 @@ #define ID_DUMMYSEPARATOR 945 #define ID_BUTTONSEP 946 #define ID_AFTERPLAYBACK_PLAYNEXT 947 +#define ID_AFTERPLAYBACK_DONOTHING 948 #define ID_MENU_PLAYER_SHORT 949 #define ID_MENU_PLAYER_LONG 950 #define ID_MENU_FILTERS 951 @@ -291,12 +292,10 @@ #define ID_NAVIGATE_JUMPTO_SUBITEM_START 4300 #define ID_NAVIGATE_JUMPTO_SUBITEM_END 4899 #define ID_VIEW_ZOOM_AUTOFIT_LARGER 4900 -// filters #define IDS_FILTER_SETTINGS_CAPTION 7000 #define IDS_ARS_WASAPI_MODE 7100 #define IDS_ARS_MUTE_FAST_FORWARD 7101 #define IDS_ARS_SOUND_DEVICE 7102 -// #define IDD_OPEN_DLG 10000 #define IDD_MEDIATYPES_DLG 10002 #define IDD_SAVE_DLG 10004 @@ -576,7 +575,8 @@ #define IDS_SUBTITLES_STYLES_CAPTION 14201 #define IDS_TEXT_SUB_RENDERING_TARGET 14202 #define IDD_TUNER_SCAN 20002 -#define IDS_AG_RESET_STATS 20004 +#define IDS_OSD_DISPLAY_RENDERER_STATS 20003 +#define IDS_OSD_RESET_RENDERER_STATS 20004 #define IDD_NAVIGATION_DLG 20005 #define IDD_PPAGESUBMISC 20006 #define IDS_VIEW_BORDERLESS 20007 @@ -589,6 +589,7 @@ #define IDD_PPAGEADVANCED 20014 #define IDD_SAVEIMAGEDIALOGTEMPL 20015 #define IDD_CMD_LINE_HELP 20016 +#define IDD_CRASH_REPORTER 20017 #define IDC_FULLSCREEN_MONITOR_CHECK 22002 #define IDC_SLI_CONTRAST 22003 #define IDC_RESET 22004 @@ -684,13 +685,15 @@ #define ID_VIEW_TEARING_TEST 32769 #define ID_FILE_OPENDISC 32774 #define ID_SHADERS 32775 -#define ID_VIEW_REMAINING_TIME 32778 +#define ID_VIEW_OSD_SHOW_FILENAME 32777 +#define ID_VIEW_OSD_DISPLAY_TIME 32778 #define ID_D3DFULLSCREEN_TOGGLE 32779 #define ID_GOTO_PREV_SUB 32780 #define ID_GOTO_NEXT_SUB 32781 #define ID_SHIFT_SUB_DOWN 32782 #define ID_SHIFT_SUB_UP 32783 -#define ID_VIEW_DISPLAYSTATS 32784 +#define ID_VIEW_DISPLAY_RENDERER_STATS 32784 +#define ID_VIEW_RESET_RENDERER_STATS 32785 #define IDS_AG_CLOSE 32830 #define IDS_AG_NONE 32832 #define IDS_AG_COMMAND 32833 @@ -800,14 +803,14 @@ #define IDS_MPLAYERC_95 32972 #define IDS_MPLAYERC_96 32973 #define IDS_MPLAYERC_97 32974 -#define IDS_MPLAYERC_98 32975 +#define IDS_OSD_DISPLAY_CURRENT_TIME 32975 #define IDS_MPLAYERC_99 32976 #define IDS_MPLAYERC_100 32977 #define IDS_MPLAYERC_101 32978 #define IDS_MPLAYERC_102 32979 #define IDS_MPLAYERC_103 32980 -#define IDS_AG_DISPLAY_STATS 32981 #define IDS_AG_SEEKSET 32982 +#define IDS_OSD_SHOW_FILENAME 32983 #define IDS_PPAGEWEBSERVER_0 32996 #define IDS_MAINFRM_2 33014 #define IDS_AG_SUBTITLES_SAVED 33015 @@ -996,7 +999,6 @@ #define IDS_NAVIGATE_TUNERSCAN 33401 #define IDS_SUBTITLES_ERROR 33402 #define IDC_CHECK_WIN7 33403 -#define ID_VIEW_RESETSTATS 33405 #define ID_VIEW_SYNCHRONIZEVIDEO 33408 #define ID_VIEW_SYNCHRONIZEDISPLAY 33409 #define ID_VIEW_SYNCHRONIZENEAREST 33410 @@ -1071,6 +1073,7 @@ #define IDS_MFMT_WMA 39521 #define IDS_MFMT_WV 39522 #define IDS_MFMT_OPUS 39523 +#define IDS_MFMT_DTS 39524 #define IDS_MFMT_PLS 39901 #define IDS_MFMT_BDPLS 39902 #define IDS_MFMT_RAR 39903 @@ -1216,7 +1219,7 @@ #define IDS_SUBRESYNC_TIME_FORMAT 41293 #define IDS_EXTERNAL_FILTERS_ERROR_MT 41294 #define IDS_WEBSERVER_ERROR_TEST 41295 -#define IDS_AFTERPLAYBACK_CLOSE 41296 +#define IDS_AFTERPLAYBACK_EXIT 41296 #define IDS_AFTERPLAYBACK_STANDBY 41297 #define IDS_AFTERPLAYBACK_HIBERNATE 41298 #define IDS_AFTERPLAYBACK_SHUTDOWN 41299 @@ -1465,12 +1468,17 @@ #define IDS_MEDIAINFO_NO_INFO_AVAILABLE 57427 #define IDS_MEDIAINFO_ANALYSIS_IN_PROGRESS 57428 #define IDS_ASPECT_RATIO_FMT 57429 +#define IDS_PPAGEADVANCED_LOGGER 57430 +#define IDS_TIMER_REMAINING_TIME 57431 +#define IDS_TIMER_HIGH_PRECISION 57432 +#define IDS_AFTERPLAYBACK_REWIND 57433 +#define IDS_AFTERPLAYBACK_CLOSE 57434 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 20017 +#define _APS_NEXT_RESOURCE_VALUE 20018 #define _APS_NEXT_COMMAND_VALUE 33449 #define _APS_NEXT_CONTROL_VALUE 22081 #define _APS_NEXT_SYMED_VALUE 24044 diff --git a/src/thirdparty/DoctorDump/CrashRpt.h b/src/thirdparty/DoctorDump/CrashRpt.h new file mode 100644 index 00000000000..cb71f7c1c17 --- /dev/null +++ b/src/thirdparty/DoctorDump/CrashRpt.h @@ -0,0 +1,592 @@ +// Copyright (c) 2014, Idol Software, Inc. +// All rights reserved. +// +// This file is part of Doctor Dump SDK. +// +// Redistribution and use in source and binary forms without modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Project web site http://drdump.com + +#ifndef __CRASH_RPT_H__ +#define __CRASH_RPT_H__ + +#include + +/** @file */ + +#if !(defined CRASHRPT_ENABLE_RELEASE_ASSERTS) +//! To redefine C \b assert macro behavior define macro \b CRASHRPT_ENABLE_RELEASE_ASSERTS as \b 1 and include CrashRpt.h +//! in each translation unit as soon as possible (precompiled header is the best place for that). +//! \code +//! #define CRASHRPT_ENABLE_RELEASE_ASSERTS 1 +//! #include +//! \endcode +//! When \b _DEBUG define is not defined (it is Release configuration) \b assert macro evaluates an expression and, when the result is false, +//! sends report and continues execution. +//! When \b _DEBUG define is defined (it is Debug configuration) \b assert macro works as standard assert macro from assert.h header. +//! \note All assert calls before CrashRpt.h inclusion would work as standard asserts. +//! \sa crash_rpt::CrashRpt::ExceptionAssertionViolated crash_rpt::CrashRpt::SkipDoctorDump_SendAssertionViolated +# define CRASHRPT_ENABLE_RELEASE_ASSERTS 1 +# undef CRASHRPT_ENABLE_RELEASE_ASSERTS // this is to make doxygen document CRASHRPT_ENABLE_RELEASE_ASSERTS macro +#elif CRASHRPT_ENABLE_RELEASE_ASSERTS == 1 +# include +# ifndef _DEBUG +# undef assert +# define assert(expr) ((void) (!(expr) && (crash_rpt::SkipDoctorDump_ReportAssertionViolation<__COUNTER__>(__FUNCTION__ ": "#expr " is false" ), true))) +# endif // !_DEBUG +#endif // CRASHRPT_ENABLE_RELEASE_ASSERTS + +namespace crash_rpt { + +namespace { + + // This template should be in anonymous namespace since __COUNTER__ is unique only for a single translation unit (as anonymous namespace items) + template + __forceinline static void SkipDoctorDump_ReportAssertionViolation(LPCSTR dumpGroup) + { + static LONG volatile isAlreadyReported = FALSE; + if (TRUE == InterlockedCompareExchange(&isAlreadyReported, TRUE, FALSE)) + return; + ::RaiseException(CrashRpt::ExceptionAssertionViolated, 0, 1, reinterpret_cast(&dumpGroup)); + } + +} // namespace { + +//! Information about exception being processed. +struct ExceptionInfo +{ + DWORD ExceptionInfoSize; //!< Size of this structure. Should be set to sizeof(ExceptionInfo). + BOOL FromSendReport; //!< Indicates is exception processed using CrashRpt::SendReport() call. + PEXCEPTION_POINTERS ExceptionPointers; //!< Exception pointers. ExceptionPointers->ExceptionRecord->ExceptionCode contains SEH code or ExceptionAssertionViolated or other Exception* constants for C/C++ special handlers. + DWORD ThreadId; //!< Thread identifier of the crashed thread. +}; + +//! Stages when crash processing callback called. +enum CrashProcessingCallbackStage +{ + BeforeSendReport, //!< Callback is called before report send. + AfterSendReport //!< Callback is called after the report has been sent. +}; + +//! Result code for crash processing callback. +enum CrashProcessingCallbackResult +{ + DoDefaultActions, //!< Default result. Crash handler continues its default processing. + SkipSendReportReturnDefaultResult, //!< Crash handler doesn't send the report and returns its default result. + ContinueExecution, //!< Explicitly force crash handler to return EXCEPTION_CONTINUE_EXECUTION. + ContinueSearch, //!< Explicitly force crash handler to return EXCEPTION_CONTINUE_SEARCH. + ExecuteHandler //!< Explicitly force crash handler to return EXCEPTION_EXECUTE_HANDLER. +}; + +//! Client crash callback function prototype. +typedef CrashProcessingCallbackResult (CALLBACK *PFNCRASHPROCESSINGCALLBACK)( + CrashProcessingCallbackStage stage, //!< Current crash processing stage. + ExceptionInfo* exceptionInfo, //!< Information about exception being processed. + LPVOID userData //!< Pointer to user-defined data. + ); + +//! Contains data that identifies your application. +struct ApplicationInfo +{ + DWORD ApplicationInfoSize; //!< Size of this structure. Should be set to sizeof(ApplicationInfo). + LPCSTR ApplicationGUID; //!< GUID assigned to this application in form 00000000-0000-0000-0000-000000000000. + LPCSTR Prefix; //!< Prefix that will be used with the dump name: YourPrefix_v1.v2.v3.v4_YYYYMMDD_HHMMSS.mini.dmp. + LPCWSTR AppName; //!< Application name that will be shown in message box. + LPCWSTR Company; //!< Company name that will be shown in message box. + USHORT V[4]; //!< Version of this application. + USHORT Hotfix; //!< Version of hotfix for this application (reserved for future use, should be 0). + LPCWSTR PrivacyPolicyUrl; //!< URL to privacy policy. If NULL default privacy policy is used. +}; + +//! \brief Contains crash handling behavior customization parameters. +//! +//! Default values for all parameters is 0/FALSE. +struct HandlerSettings +{ + DWORD HandlerSettingsSize; //!< Size of this structure. Should be set to sizeof(HandlerSettings). + BOOL LeaveDumpFilesInTempFolder; //!< To leave error reports in temp folder you should set this member to TRUE. Your support or test lab teams can use that reports later. + BOOL OpenProblemInBrowser; //!< To open Web-page belonging to the uploaded report after it was uploaded set this member to TRUE. It is useful for test lab to track the bug or write some comments. + BOOL UseWER; //!< To continue use Microsoft Windows Error Reporting (WER) set this member to TRUE. In that case after Doctor Dump send report dialog Microsoft send report dialog also will be shown. This can be necessary in case of Windows Logo program. + DWORD SubmitterID; //!< Doctor Dump user ID. Uploaded report will be marked as uploaded by this user. This is useful for Doctor Dump and bug tracking system integration. Set to \b 0 if user using this application is anonymous. + BOOL SendAdditionalDataWithoutApproval; //!< To automatically accepted the question "Do you want to send more information about the problem?" set this member to TRUE . + BOOL OverrideDefaultFullDumpType;//!< To override default type of data gathered by the library set this member to TRUE and set required type of data in \a FullDumpType. + DWORD FullDumpType; //!< The type of information to be generated when full dump is requested by Doctor Dump. This parameter can be one or more of the values from the MINIDUMP_TYPE enumeration. + LPCWSTR LangFilePath; //!< To customize localization set this member to the path to the language file (including file name). + LPCWSTR SendRptPath; //!< Set this member to NULL to use default behavior when SendRpt is named sendrpt.exe and exist in same folder with crashrpt.dll. Set to filename if sendrpt.exe has another name but it is in same folder as crashrpt.dll. Set to full path in other cases. + LPCWSTR DbgHelpPath; //!< Set this member to NULL to use default behavior when DbgHelp is named dbghelp.dll and exist in same folder with crashrpt.dll. Set to filename if dbghelp.dll has another name but it is in same folder as crashrpt.dll. Set to full path in other cases. + //!< \note You should use dbghelp.dll that distributed with crashrpt.dll and not the %SystemRoot%\System32\dbghelp.dll, because only that dll supports all required functionality. See DbgHelp Versions for more information. + PFNCRASHPROCESSINGCALLBACK CrashProcessingCallback; //!< Callback function that will be called when crash reporting occurs. Set to NULL if no special processing needed. + LPVOID CrashProcessingCallbackUserData; //!< User defined parameter for CrashProcessingCallback. Optional. +}; + +//! \brief To enable crash processing you should create an instance of this class. +//! +//! It should be created as global static object and correctly initialized. +//! Also you may instantiate it in your main() or WinMain() function as soon as possible. +class CrashRpt +{ +public: + //! \example Sample.cpp + //! This is an example of how to use the CrashRpt class. + + //! CrashRpt constructor. Loads crashrpt.dll and initializes crash handling. + //! \note The crashrpt.dll is allowed to be missing. In that case there will be no crash handling. + CrashRpt( + LPCSTR applicationGUID, //!< [in] GUID assigned to this application. + LPCWSTR appName, //!< [in] Application name that will be shown in message box. + LPCWSTR company //!< [in] Company name that will be shown in message box. + ) throw() + { + if (!LoadDll()) + return; + + InitCrashRpt(applicationGUID, NULL, appName, company, TRUE); + } + + //! CrashRpt constructor. Loads crashrpt.dll and initializes crash handling. + //! \note The crashrpt.dll is allowed to be missing. In that case there will be no crash handling. + CrashRpt( + LPCSTR applicationGUID, //!< [in] GUID assigned to this application. + LPCSTR prefix, //!< [in] Prefix that will be used with the dump name: YourPrefix_v1.v2.v3.v4_YYYYMMDD_HHMMSS.mini.dmp. + LPCWSTR appName, //!< [in] Application name that will be shown in message box. + LPCWSTR company, //!< [in] Company name that will be shown in message box. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + if (!LoadDll()) + return; + + InitCrashRpt(applicationGUID, prefix, appName, company, ownProcess); + } + + //! CrashRpt constructor. Loads crashrpt.dll and initializes crash handling. + //! \note The crashrpt.dll is allowed to be missing. In that case there will be no crash handling. + CrashRpt( + LPCWSTR crashrptPath, //!< [in] Path to crashrpt.dll file. File may be renamed. + LPCSTR applicationGUID, //!< [in] GUID assigned to this application. + LPCSTR prefix, //!< [in] Prefix that will be used with the dump name: YourPrefix_v1.v2.v3.v4_YYYYMMDD_HHMMSS.mini.dmp. + LPCWSTR appName, //!< [in] Application name that will be shown in message box. + LPCWSTR company, //!< [in] Company name that will be shown in message box. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + if (!LoadDll(crashrptPath)) + return; + + InitCrashRpt(applicationGUID, prefix, appName, company, ownProcess); + } + + //! CrashRpt constructor. Loads crashrpt.dll and initializes crash handling. + //! \note The crashrpt.dll is allowed to be missing. In that case there will be no crash handling. + CrashRpt( + ApplicationInfo* applicationInfo, //!< [in] Pointer to the ApplicationInfo structure that identifies your application. + HandlerSettings* handlerSettings, //!< [in] Pointer to the HandlerSettings structure that customizes crash handling behavior. This parameter can be \b NULL. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + if (!LoadDll()) + return; + + InitCrashRpt(applicationInfo, handlerSettings, ownProcess); + } + + //! CrashRpt constructor. Loads crashrpt.dll and initializes crash handling. + //! \note The crashrpt.dll is allowed to be missing. In that case there will be no crash handling. + CrashRpt( + LPCWSTR crashrptPath, //!< [in] Path to crashrpt.dll file. File may be renamed. + ApplicationInfo* applicationInfo, //!< [in] Pointer to the ApplicationInfo structure that identifies your application. + HandlerSettings* handlerSettings, //!< [in] Pointer to the HandlerSettings structure that customizes crash handling behavior. This parameter can be \b NULL. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + if (!LoadDll(crashrptPath)) + return; + + InitCrashRpt(applicationInfo, handlerSettings, ownProcess); + } + + + //! CrashRpt constructor. Loads crashrpt.dll. You should call \ref InitCrashRpt to turn on crash handling. + //! \note The crashrpt.dll is allowed to be missing. In that case there will be no crash handling. + CrashRpt( + LPCWSTR crashrptPath = NULL //!< [in] Path to crashrpt.dll file. File may be renamed. + ) throw() + { + LoadDll(crashrptPath); + } + + //! CrashRpt destructor. + //! \note It doesn't unload crashrpt.dll and doesn't disable crash handling since crash may appear on very late phase of application exit. + //! For example destructor of some static variable that is called after return from main() may crash. + ~CrashRpt() + { + if (!m_IsReadyToExit) + return; + + // If crash has happen not in main thread we should wait here until report will be sent + // or else program will be terminated after return from main() and report sending will be halted. + while (!m_IsReadyToExit()) + ::Sleep(100); + +#if _WIN32_WINNT >= 0x0501 /*_WIN32_WINNT_WINXP*/ + if (m_bSkipAssertsAdded) + RemoveVectoredExceptionHandler(SkipAsserts); +#endif + } + + //! Checks that crash handling was enabled. + //! \return Return \b true if crash handling was enabled. + bool IsCrashHandlingEnabled() const + { + return m_bWorking; + } + + //! Initializes crash handler. + //! \note You may call this function multiple times if some data has changed. + //! \return Return \b true if crash handling was enabled. + bool InitCrashRpt( + ApplicationInfo* applicationInfo, //!< [in] Pointer to the ApplicationInfo structure that identifies your application. + HandlerSettings* handlerSettings, //!< [in] Pointer to the HandlerSettings structure that customizes crash handling behavior. This parameter can be \b NULL. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + if (!m_InitCrashRpt) + return false; + + m_bWorking = m_InitCrashRpt(applicationInfo, handlerSettings, ownProcess) != FALSE; + + return m_bWorking; + } + + //! Initializes crash handler. + //! \return Return \b true if crash handling was enabled. + //! \warning This method is deprecated. Use \ref InitCrashRpt instead. + __declspec(deprecated) + bool InitCrashHandler( + ApplicationInfo* applicationInfo, //!< [in] Pointer to the ApplicationInfo structure that identifies your application. + HandlerSettings* handlerSettings, //!< [in] Pointer to the HandlerSettings structure that customizes crash handling behavior. This parameter can be \b NULL. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + return InitCrashRpt(applicationInfo, handlerSettings, ownProcess); + } + + + //! Initializes crash handler. + //! \note You may call this function multiple times if some data has changed. + //! \return Return \b true if crash handling was enabled. + bool InitCrashRpt( + LPCSTR applicationGUID, //!< [in] GUID assigned to this application. + LPCSTR prefix, //!< [in] Prefix that will be used with the dump name: YourPrefix_v1.v2.v3.v4_YYYYMMDD_HHMMSS.mini.dmp. + LPCWSTR appName, //!< [in] Application name that will be shown in message box. + LPCWSTR company, //!< [in] Company name that will be shown in message box. + BOOL ownProcess = TRUE //!< [in] If you own the process your code running in set this option to \b TRUE. If don't (for example you write + //!< a plugin to some external application) set this option to \b FALSE. In that case you need to explicitly + //!< catch exceptions. See \ref SendReport for more information. + ) throw() + { + if (!m_GetVersionFromApp) + return false; + + ApplicationInfo appInfo; + memset(&appInfo, 0, sizeof(appInfo)); + appInfo.ApplicationInfoSize = sizeof(appInfo); + appInfo.ApplicationGUID = applicationGUID; + appInfo.Prefix = prefix; + appInfo.AppName = appName; + appInfo.Company = company; + if (!m_GetVersionFromApp(&appInfo)) + appInfo.V[0] = 1; + + HandlerSettings handlerSettings; + memset(&handlerSettings, 0, sizeof(handlerSettings)); + handlerSettings.HandlerSettingsSize = sizeof(handlerSettings); + handlerSettings.OpenProblemInBrowser = TRUE; + + return InitCrashRpt(&appInfo, &handlerSettings, ownProcess); + } + + //! \note This function is experimental and may not be available and may not be support by Doctor Dump in the future. + //! You may set custom information for your possible report. + //! This text will be available on Doctor Dump dumps page. + //! The text should not contain private information. + //! \return If the function succeeds, the return value is \b true. + bool SetCustomInfo( + LPCWSTR text //!< [in] custom info for the report. The text will be cut to 100 characters. + ) + { + if (!m_SetCustomInfo) + return false; + m_SetCustomInfo(text); + return true; + } + + //! You may add any key/value pair to crash report. + //! \return If the function succeeds, the return value is \b true. + //! \note This function is thread safe. + bool AddUserInfoToReport( + LPCWSTR key, //!< [in] key string that will be added to the report. + LPCWSTR value //!< [in] value for the key. + ) throw() + { + if (!m_AddUserInfoToReport) + return false; + m_AddUserInfoToReport(key, value); + return true; + } + + //! You may remove any key that was added previously to crash report by \a AddUserInfoToReport. + //! \return If the function succeeds, the return value is \b true. + //! \note This function is thread safe. + bool RemoveUserInfoFromReport( + LPCWSTR key //!< [in] key string that will be removed from the report. + ) + { + if (!m_RemoveUserInfoFromReport) + return false; + m_RemoveUserInfoFromReport(key); + return true; + } + + //! You may add any file to crash report. This file will be read when crash appears and will be sent within the report. + //! Multiple files may be added. Filename of the file in the report may be changed to any name. + //! \return If the function succeeds, the return value is \b true. + //! \note This function is thread safe. + bool AddFileToReport( + LPCWSTR path, //!< [in] Path to the file, that will be added to the report. + LPCWSTR reportFileName /* = NULL */ //!< [in] Filename that will be used in report for this file. If parameter is \b NULL, original name from path will be used. + ) throw() + { + if (!m_AddFileToReport) + return false; + m_AddFileToReport(path, reportFileName); + return true; + } + + //! Remove from report the file that was registered earlier to be sent within report. + //! \return If the function succeeds, the return value is \b true. + //! \note This function is thread safe. + bool RemoveFileFromReport( + LPCWSTR path //!< [in] Path to the file, that will be removed from the report. + ) throw() + { + if (!m_RemoveFileFromReport) + return false; + m_RemoveFileFromReport(path); + return true; + } + + //! Fills version field (V) of ApplicationInfo with product version + //! found in the executable file of the current process. + //! \return If the function succeeds, the return value is \b true. + bool GetVersionFromApp( + ApplicationInfo* appInfo //!< [out] Pointer to ApplicationInfo structure. Its version field (V) will be set to product version. + ) throw() + { + if (!m_GetVersionFromApp) + return false; + return m_GetVersionFromApp(appInfo) != FALSE; + } + + //! Fill version field (V) of ApplicationInfo with product version found in the file specified. + //! \return If the function succeeds, the return value is \b true. + bool GetVersionFromFile( + LPCWSTR path, //!< [in] Path to the file product version will be extracted from. + ApplicationInfo* appInfo //!< [out] Pointer to ApplicationInfo structure. Its version field (V) will be set to product version. + ) throw() + { + if (!m_GetVersionFromFile) + return false; + return m_GetVersionFromFile(path, appInfo) != FALSE; + } + + //! If you do not own the process your code running in (for example you write a plugin to some + //! external application) you need to properly initialize CrashRpt using \b ownProcess option. + //! Also you need to explicitly catch all exceptions in all entry points to your code and in all + //! threads you create. To do so use this construction: + //! \code + //! bool SomeEntryPoint(PARAM p) + //! { + //! __try + //! { + //! return YouCode(p); + //! } + //! __except (CrashRpt::SendReport(GetExceptionInformation())) + //! { + //! ::ExitProcess(0); // It is better to stop the process here or else corrupted data may incomprehensibly crash it later. + //! return false; + //! } + //! } + //! \endcode + LONG SendReport( + EXCEPTION_POINTERS* exceptionPointers //!< [in] Pointer to EXCEPTION_POINTERS structure. You should get it using GetExceptionInformation() + //!< function inside __except keyword. + ) + { + if (!m_SendReport) + { + // There is no crash handler but asserts should not crash application anyway, so let's continue + if (exceptionPointers->ExceptionRecord->ExceptionCode == ExceptionAssertionViolated) + return EXCEPTION_CONTINUE_EXECUTION; + return EXCEPTION_CONTINUE_SEARCH; + } + return m_SendReport(exceptionPointers); + } + + //! To send a report about violated assertion you can throw exception with this exception code + //! using: \code RaiseException(CrashRpt::ExceptionAssertionViolated, 0, 0, NULL); \endcode + //! Execution will continue after report will be sent (EXCEPTION_CONTINUE_EXECUTION would be used). + //! You may pass grouping string as first parameter (see \a SkipDoctorDump_SendAssertionViolated). + //! \note If you called CrashRpt constructor and crashrpt.dll was missing you still may using this exception. + //! It will be caught, ignored and execution will continue. \ref SendReport function also works safely + //! when crashrpt.dll was missing. + //! \sa CRASHRPT_ENABLE_RELEASE_ASSERTS SkipDoctorDump_SendAssertionViolated + static const DWORD ExceptionAssertionViolated = ((DWORD)0xCCE17000); + + //! Exception code for Terminate()/SIGABRT call in crash callback. + static const DWORD ExceptionCppTerminate = ((DWORD)0xCCE17001); + + //! Exception code for pure virtual call in crash callback. + static const DWORD ExceptionPureCall = ((DWORD)0xCCE17002); + + //! Exception code for CRT invalid parameter call in crash callback. + static const DWORD ExceptionInvalidParameter = ((DWORD)0xCCE17003); + + //! Sends assertion violation report from this point and continue execution. + //! \sa ExceptionAssertionViolated + //! \note Functions containing "SkipDoctorDump" will be ignored in stack parsing. + //! \sa CRASHRPT_ENABLE_RELEASE_ASSERTS ExceptionAssertionViolated + void SkipDoctorDump_SendAssertionViolated( + LPCSTR dumpGroup = NULL //!< [in] All dumps with that group will be separated from dumps with same stack but another group. Set parameter to \b NULL if no grouping is required. + ) const + { + if (!m_bWorking) + return; + if (dumpGroup) + ::RaiseException(CrashRpt::ExceptionAssertionViolated, 0, 1, reinterpret_cast(&dumpGroup)); + else + ::RaiseException(CrashRpt::ExceptionAssertionViolated, 0, 0, NULL); + } + +private: + bool LoadDll(LPCWSTR crashrptPath = NULL) throw() + { + m_bLoaded = false; + m_bWorking = false; + m_bSkipAssertsAdded = false; + m_InitCrashRpt = NULL; + m_SendReport = NULL; + m_IsReadyToExit = NULL; + m_SetCustomInfo = NULL; + m_AddUserInfoToReport = NULL; + m_RemoveUserInfoFromReport = NULL; + m_AddFileToReport = NULL; + m_RemoveFileFromReport = NULL; + m_GetVersionFromApp = NULL; + m_GetVersionFromFile = NULL; + + // hCrashrptDll should not be unloaded, crash may appear even after return from main(). + // So hCrashrptDll is not saved after construction. + HMODULE hCrashrptDll = ::LoadLibraryW(crashrptPath ? crashrptPath : L"crashrpt.dll"); + if (hCrashrptDll != NULL) + { + m_InitCrashRpt = (pfnInitCrashRpt) GetProcAddress(hCrashrptDll, "InitCrashRpt"); + m_SendReport = (pfnSendReport) GetProcAddress(hCrashrptDll, "SendReport"); + m_IsReadyToExit = (pfnIsReadyToExit) GetProcAddress(hCrashrptDll, "IsReadyToExit"); + m_SetCustomInfo = (pfnSetCustomInfo) GetProcAddress(hCrashrptDll, "SetCustomInfo"); + m_AddUserInfoToReport = (pfnAddUserInfoToReport) GetProcAddress(hCrashrptDll, "AddUserInfoToReport"); + m_RemoveUserInfoFromReport = (pfnRemoveUserInfoFromReport) GetProcAddress(hCrashrptDll, "RemoveUserInfoFromReport"); + m_AddFileToReport = (pfnAddFileToReport) GetProcAddress(hCrashrptDll, "AddFileToReport"); + m_RemoveFileFromReport = (pfnRemoveFileFromReport) GetProcAddress(hCrashrptDll, "RemoveFileFromReport"); + m_GetVersionFromApp = (pfnGetVersionFromApp) GetProcAddress(hCrashrptDll, "GetVersionFromApp"); + m_GetVersionFromFile = (pfnGetVersionFromFile) GetProcAddress(hCrashrptDll, "GetVersionFromFile"); + + m_bLoaded = m_InitCrashRpt + && m_SendReport + && m_IsReadyToExit + && m_SetCustomInfo + && m_AddUserInfoToReport + && m_RemoveUserInfoFromReport + && m_AddFileToReport + && m_RemoveFileFromReport + && m_GetVersionFromApp + && m_GetVersionFromFile; + } + +#if _WIN32_WINNT >= 0x0501 /*_WIN32_WINNT_WINXP*/ + // if no crash processing was started, we need to ignore ExceptionAssertionViolated exceptions. + if (!m_bLoaded) + { + ::AddVectoredExceptionHandler(TRUE, SkipAsserts); + m_bSkipAssertsAdded = true; + } +#endif + + return m_bLoaded; + } + + static LONG CALLBACK SkipAsserts(EXCEPTION_POINTERS* pExceptionInfo) + { + if (pExceptionInfo->ExceptionRecord->ExceptionCode == ExceptionAssertionViolated) + return EXCEPTION_CONTINUE_EXECUTION; + return EXCEPTION_CONTINUE_SEARCH; + } + + bool m_bLoaded; + bool m_bWorking; + bool m_bSkipAssertsAdded; + + typedef BOOL (*pfnInitCrashRpt)(ApplicationInfo* applicationInfo, HandlerSettings* handlerSettings, BOOL ownProcess); + typedef LONG (*pfnSendReport)(EXCEPTION_POINTERS* exceptionPointers); + typedef BOOL (*pfnIsReadyToExit)(); + typedef void (*pfnSetCustomInfo)(LPCWSTR text); + typedef void (*pfnAddUserInfoToReport)(LPCWSTR key, LPCWSTR value); + typedef void (*pfnRemoveUserInfoFromReport)(LPCWSTR key); + typedef void (*pfnAddFileToReport)(LPCWSTR path, LPCWSTR reportFileName /* = NULL */); + typedef void (*pfnRemoveFileFromReport)(LPCWSTR path); + typedef BOOL (*pfnGetVersionFromApp)(ApplicationInfo* appInfo); + typedef BOOL (*pfnGetVersionFromFile)(LPCWSTR path, ApplicationInfo* appInfo); + + pfnInitCrashRpt m_InitCrashRpt; + pfnSendReport m_SendReport; + pfnIsReadyToExit m_IsReadyToExit; + pfnSetCustomInfo m_SetCustomInfo; + pfnAddUserInfoToReport m_AddUserInfoToReport; + pfnRemoveUserInfoFromReport m_RemoveUserInfoFromReport; + pfnAddFileToReport m_AddFileToReport; + pfnRemoveFileFromReport m_RemoveFileFromReport; + pfnGetVersionFromApp m_GetVersionFromApp; + pfnGetVersionFromFile m_GetVersionFromFile; +}; + +} // namespace crash_rpt + +__declspec(deprecated) typedef crash_rpt::CrashRpt CrashHandler; //!< Deprecated. Use crash_rpt::CrashRpt class instead. +__declspec(deprecated) typedef crash_rpt::ApplicationInfo ApplicationInfo; //!< Deprecated. Use crash_rpt::ApplicationInfo class instead. +__declspec(deprecated) typedef crash_rpt::HandlerSettings HandlerSettings; //!< Deprecated. Use crash_rpt::HandlerSettings class instead. + +#endif // __CRASH_RPT_H__ \ No newline at end of file diff --git a/src/thirdparty/DoctorDump/DoctorDump.filters b/src/thirdparty/DoctorDump/DoctorDump.filters new file mode 100644 index 00000000000..c2f3e01d1bf --- /dev/null +++ b/src/thirdparty/DoctorDump/DoctorDump.filters @@ -0,0 +1,17 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + \ No newline at end of file diff --git a/src/thirdparty/DoctorDump/DoctorDump.vcxproj b/src/thirdparty/DoctorDump/DoctorDump.vcxproj new file mode 100644 index 00000000000..2988a1d1cc5 --- /dev/null +++ b/src/thirdparty/DoctorDump/DoctorDump.vcxproj @@ -0,0 +1,63 @@ + + + + + Release Lite + Win32 + + + Release Lite + x64 + + + Release + Win32 + + + Release + x64 + + + + {BECEAFF9-CDCA-45EC-A1CF-658FA51818E6} + DoctorDump + DoctorDump + DoctorDump + + + + + Makefile + + + + + + + + + + + + $(SolutionDir)bin\mpc-hc_x86\ + + + $(SolutionDir)bin\mpc-hc_x86 Lite\ + + + $(SolutionDir)bin\mpc-hc_x64\ + + + $(SolutionDir)bin\mpc-hc_x64 Lite\ + + + $(ProjectDir)deploy.bat $(Platform) "$(OutDir)" + $(ProjectDir)deploy.bat $(Platform) "$(OutDir)" + + + + + + + + \ No newline at end of file diff --git a/src/thirdparty/DoctorDump/deploy.bat b/src/thirdparty/DoctorDump/deploy.bat new file mode 100644 index 00000000000..02e2f1df1d6 --- /dev/null +++ b/src/thirdparty/DoctorDump/deploy.bat @@ -0,0 +1,49 @@ +@ECHO OFF +REM (C) 2015 see Authors.txt +REM +REM This file is part of MPC-HC. +REM +REM MPC-HC is free software; you can redistribute it and/or modify +REM it under the terms of the GNU General Public License as published by +REM the Free Software Foundation; either version 3 of the License, or +REM (at your option) any later version. +REM +REM MPC-HC is distributed in the hope that it will be useful, +REM but WITHOUT ANY WARRANTY; without even the implied warranty of +REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +REM GNU General Public License for more details. +REM +REM You should have received a copy of the GNU General Public License +REM along with this program. If not, see . + + +SETLOCAL +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" + +SET ROOT_DIR=..\..\.. +SET "COMMON=%FILE_DIR%%ROOT_DIR%\common.bat" +CALL "%COMMON%" :SubPreBuild + +IF "%1" == "" CALL "%COMMON%" :SubMsg "ERROR" "%~nx0, No argument was provided." & EXIT /B + +SET "SRCFOLDER=%MPCHC_DOCTORDUMP%\bin" +IF /I "%~1" == "x64" ( + SET "SRCFOLDER=%SRCFOLDER%\x64" +) + +SET "DESTFOLDER=%~2CrashReporter" + +IF EXIST "%MPCHC_DOCTORDUMP%" ( + IF NOT EXIST "%DESTFOLDER%" MD "%DESTFOLDER%" + COPY /Y /V "%SRCFOLDER%\crashrpt.dll" "%DESTFOLDER%" + COPY /Y /V "%SRCFOLDER%\dbghelp.dll" "%DESTFOLDER%" + COPY /Y /V "%SRCFOLDER%\sendrpt.exe" "%DESTFOLDER%" +) ELSE IF DEFINED MPCHC_DOCTORDUMP ( + CALL "%COMMON%" :SubMsg "WARNING" "Invalid path to Doctor Dump SDK, files were not copied" +) + +:End +POPD +ENDLOCAL +EXIT /B diff --git a/src/thirdparty/LAVFilters/GCCInfo.c b/src/thirdparty/LAVFilters/GCCInfo.c deleted file mode 100644 index a954ea63627..00000000000 --- a/src/thirdparty/LAVFilters/GCCInfo.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * (C) 2008-2013 see Authors.txt - * - * This file is part of MPC-HC. - * - * MPC-HC is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * MPC-HC is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include <_mingw.h> - -#define str(s) xstr(s) -#define xstr(s) #s - -#ifdef __MINGW64_VERSION_MAJOR -#define MINGW "MinGW-w64" -#else -#define MINGW "MinGW" -#endif - -char g_Gcc_Compiler[] = MINGW " GCC " str(__GNUC__) "." str(__GNUC_MINOR__) "." str(__GNUC_PATCHLEVEL__); diff --git a/src/thirdparty/LAVFilters/build_ffmpeg.sh b/src/thirdparty/LAVFilters/build_ffmpeg.sh index 5d49520f807..071e2e0bc58 100755 --- a/src/thirdparty/LAVFilters/build_ffmpeg.sh +++ b/src/thirdparty/LAVFilters/build_ffmpeg.sh @@ -1,43 +1,58 @@ #!/bin/sh +echo "$(pwd)" | grep -q '[[:blank:]]' && + echo "Out of tree builds are impossible with whitespace in source path." && exit 1 + if [ "${1}" == "x64" ]; then arch=x86_64 archdir=x64 + cross_prefix=x86_64-w64-mingw32- + lav_folder=LAVFilters64 + mpc_hc_folder=mpc-hc_x64 else arch=x86 archdir=Win32 + cross_prefix= + lav_folder=LAVFilters + mpc_hc_folder=mpc-hc_x86 fi -make_dirs() { - if [ ! -d bin_${archdir}/lib ]; then - mkdir -p bin_${archdir}/lib - fi +if [ "${2}" == "Debug" ]; then + FFMPEG_DLL_PATH=$(readlink -f ../../..)/bin/${mpc_hc_folder}_Debug/${lav_folder} + BASEDIR=$(pwd)/src/bin_${archdir}d +else + FFMPEG_DLL_PATH=$(readlink -f ../../..)/bin/${mpc_hc_folder}/${lav_folder} + BASEDIR=$(pwd)/src/bin_${archdir} +fi - if [ ! -d bin_${archdir}d/lib ]; then - mkdir -p bin_${archdir}d/lib - fi -} +THIRDPARTYPREFIX=${BASEDIR}/thirdparty +FFMPEG_BUILD_PATH=${THIRDPARTYPREFIX}/ffmpeg +FFMPEG_LIB_PATH=${BASEDIR}/lib +DCADEC_SOURCE_PATH=$(pwd)/src/thirdparty/dcadec +DCADEC_BUILD_PATH=${THIRDPARTYPREFIX}/dcadec +export PKG_CONFIG_PATH="${DCADEC_BUILD_PATH}" -strip_libs() { - if [ "${arch}" == "x86_64" ]; then - x86_64-w64-mingw32-strip lib*/*-lav-*.dll - else - strip lib*/*-lav-*.dll - fi +make_dirs() { + mkdir -p ${FFMPEG_LIB_PATH} + mkdir -p ${FFMPEG_BUILD_PATH} + mkdir -p ${DCADEC_BUILD_PATH} + mkdir -p ${FFMPEG_DLL_PATH} } copy_libs() { - cp lib*/*-lav-*.dll ../../bin_${archdir} - cp lib*/*.lib ../../bin_${archdir}/lib - cp lib*/*-lav-*.dll ../../bin_${archdir}d - cp lib*/*.lib ../../bin_${archdir}d/lib + # install -s --strip-program=${cross_prefix}strip lib*/*-lav-*.dll ${FFMPEG_DLL_PATH} + cp lib*/*-lav-*.dll ${FFMPEG_DLL_PATH} + ${cross_prefix}strip ${FFMPEG_DLL_PATH}/*-lav-*.dll + cp -u lib*/*.lib ${FFMPEG_LIB_PATH} } clean() { + cd ${FFMPEG_BUILD_PATH} echo Cleaning... if [ -f config.mak ]; then make distclean > /dev/null 2>&1 fi + cd ${BASEDIR} } configure() { @@ -68,6 +83,8 @@ configure() { --enable-hwaccel=vc1_dxva2 \ --enable-hwaccel=wmv3_dxva2 \ --enable-hwaccel=mpeg2_dxva2 \ + --disable-decoder=dca \ + --enable-libdcadec \ --enable-libspeex \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ @@ -85,30 +102,32 @@ configure() { --build-suffix=-lav \ --arch=${arch}" - EXTRA_CFLAGS="-D_WIN32_WINNT=0x0502 -DWINVER=0x0502 -I../../thirdparty/include" + EXTRA_CFLAGS="-D_WIN32_WINNT=0x0502 -DWINVER=0x0502 -I../../../thirdparty/include" EXTRA_LDFLAGS="" if [ "${arch}" == "x86_64" ]; then - OPTIONS="${OPTIONS} --enable-cross-compile --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32" - EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L../../thirdparty/lib64" + OPTIONS="${OPTIONS} --enable-cross-compile --cross-prefix=${cross_prefix} --target-os=mingw32 --pkg-config=pkg-config" + EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L../../../thirdparty/lib64" else OPTIONS="${OPTIONS} --cpu=i686" EXTRA_CFLAGS="${EXTRA_CFLAGS} -mmmx -msse -mfpmath=sse" - EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L../../thirdparty/lib32" + EXTRA_LDFLAGS="${EXTRA_LDFLAGS} -L../../../thirdparty/lib32" fi - sh ../../ffmpeg/configure --extra-ldflags="${EXTRA_LDFLAGS}" --extra-cflags="${EXTRA_CFLAGS}" ${OPTIONS} + sh ../../../ffmpeg/configure --extra-ldflags="${EXTRA_LDFLAGS}" --extra-cflags="${EXTRA_CFLAGS}" ${OPTIONS} } build() { echo Building... - make -j$(($NUMBER_OF_PROCESSORS+1)) 2>&1 | tee make.log + make -j$NUMBER_OF_PROCESSORS 2>&1 | tee make.log ## Check the return status and the log to detect possible errors [ ${PIPESTATUS[0]} -eq 0 ] && ! grep -q -F "rerun configure" make.log } configureAndBuild() { + cd ${FFMPEG_BUILD_PATH} ## Don't run configure again if it was previously run - if [ -f config.mak ]; then + if [ ../../../ffmpeg/configure -ot config.mak ] && + [ ../../../../build_ffmpeg.sh -ot config.mak ]; then echo Skipping configure... else echo Configuring... @@ -124,27 +143,33 @@ configureAndBuild() { ## Only if configure succeeded, actually build if [ ${CONFIGRETVAL} -eq 0 ]; then build && - strip_libs && copy_libs CONFIGRETVAL=$? fi + cd ${BASEDIR} } -echo Building ffmpeg in GCC ${arch} Release config... +build_dcadec() { + cd ${DCADEC_BUILD_PATH} + make -f "${DCADEC_SOURCE_PATH}/Makefile" -j$NUMBER_OF_PROCESSORS CONFIG_WINDOWS=1 CONFIG_SMALL=1 CC=${cross_prefix}gcc AR=${cross_prefix}ar lib + make -f "${DCADEC_SOURCE_PATH}/Makefile" PREFIX="${THIRDPARTYPREFIX}" LIBDIR="${DCADEC_BUILD_PATH}/libdcadec" INCLUDEDIR="${DCADEC_SOURCE_PATH}" dcadec.pc + cd ${BASEDIR} +} -cd src +clean_dcadec() { + cd ${DCADEC_BUILD_PATH} + make -f "${DCADEC_SOURCE_PATH}/Makefile" CONFIG_WINDOWS=1 clean + cd ${BASEDIR} +} -make_dirs +echo Building ffmpeg in GCC ${arch} Release config... -out_dir=bin_${archdir}/ffmpeg -if [ ! -d ${out_dir} ]; then - mkdir -p ${out_dir} -fi -cd ${out_dir} +make_dirs CONFIGRETVAL=0 -if [ "${2}" == "Clean" ]; then +if [ "${3}" == "Clean" ]; then + clean_dcadec clean CONFIGRETVAL=$? else @@ -155,16 +180,17 @@ else CLEANBUILD=1 fi + build_dcadec + configureAndBuild ## In case of error and only if we didn't start with a clean build, ## we try to rebuild from scratch including a full reconfigure if [ ! ${CONFIGRETVAL} -eq 0 ] && [ ${CLEANBUILD} -eq 0 ]; then echo Trying again with forced reconfigure... + clean_dcadec && build_dcadec clean && configureAndBuild fi fi -cd ../../.. - exit ${CONFIGRETVAL} diff --git a/src/thirdparty/LAVFilters/build_lavfilters.bat b/src/thirdparty/LAVFilters/build_lavfilters.bat index 44528289ed1..87c2c411ae1 100755 --- a/src/thirdparty/LAVFilters/build_lavfilters.bat +++ b/src/thirdparty/LAVFilters/build_lavfilters.bat @@ -18,25 +18,16 @@ REM along with this program. If not, see . SETLOCAL -PUSHD %~dp0 +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" SET ROOT_DIR=..\..\.. +SET "COMMON=%FILE_DIR%%ROOT_DIR%\common.bat" -IF EXIST "%ROOT_DIR%\build.user.bat" ( - CALL "%ROOT_DIR%\build.user.bat" -) ELSE ( - IF DEFINED MINGW32 (SET MPCHC_MINGW32=%MINGW32%) ELSE (GOTO MissingVar) - IF DEFINED MINGW64 (SET MPCHC_MINGW64=%MINGW64%) ELSE (GOTO MissingVar) - IF DEFINED MSYS (SET MPCHC_MSYS=%MSYS%) ELSE (GOTO MissingVar) -) - -IF NOT EXIST "%MPCHC_MINGW32%" GOTO MissingVar -IF NOT EXIST "%MPCHC_MINGW64%" GOTO MissingVar -IF NOT EXIST "%MPCHC_MSYS%" GOTO MissingVar - -SET PATH=%MPCHC_MSYS%\bin;%MPCHC_MINGW32%\bin;%PATH% -FOR %%G IN (gcc.exe) DO (SET FOUND=%%~$PATH:G) -IF NOT DEFINED FOUND GOTO MissingVar +CALL "%COMMON%" :SubSetPath +IF %ERRORLEVEL% NEQ 0 EXIT /B 1 +CALL "%COMMON%" :SubDoesExist gcc.exe +IF %ERRORLEVEL% NEQ 0 EXIT /B 1 SET ARG=/%* SET ARG=%ARG:/=% @@ -117,8 +108,8 @@ EXIT /B IF %ERRORLEVEL% NEQ 0 EXIT /B TITLE Compiling LAV Filters %COMPILER% [FINISHED] SET END_TIME=%TIME% -CALL :SubGetDuration -CALL :SubMsg "INFO" "LAV Filters compilation started on %START_DATE%-%START_TIME% and completed on %DATE%-%END_TIME% [%DURATION%]" +CALL "%COMMON%" :SubGetDuration +CALL "%COMMON%" :SubMsg "INFO" "LAV Filters compilation started on %START_DATE%-%START_TIME% and completed on %DATE%-%END_TIME% [%DURATION%]" POPD ENDLOCAL EXIT /B @@ -130,9 +121,9 @@ IF %ERRORLEVEL% NEQ 0 EXIT /B IF /I "%ARCH%" == "x86" (SET "ARCHVS=Win32") ELSE (SET "ARCHVS=x64") REM Build FFmpeg -sh build_ffmpeg.sh %ARCH% %BUILDTYPE% +sh build_ffmpeg.sh %ARCH% %RELEASETYPE% %BUILDTYPE% IF %ERRORLEVEL% NEQ 0 ( - CALL :SubMsg "ERROR" "'sh build_ffmpeg.sh %ARCH% %BUILDTYPE%' failed!" + CALL "%COMMON%" :SubMsg "ERROR" "'sh build_ffmpeg.sh %ARCH% %RELEASETYPE% %BUILDTYPE%' failed!" EXIT /B ) @@ -143,7 +134,7 @@ IF /I "%ARCH%" == "x86" (SET "ARCHVS=Win32") ELSE (SET "ARCHVS=x64") MSBuild.exe LAVFilters.sln /nologo /consoleloggerparameters:Verbosity=minimal /nodeReuse:true /m /t:%BUILDTYPE% /property:Configuration=%RELEASETYPE%;Platform=%ARCHVS% IF %ERRORLEVEL% NEQ 0 ( - CALL :SubMsg "ERROR" "'MSBuild.exe LAVFilters.sln /nologo /consoleloggerparameters:Verbosity=minimal /nodeReuse:true /m /t:%BUILDTYPE% /property:Configuration=%RELEASETYPE%;Platform=%ARCHVS%' failed!" + CALL "%COMMON%" :SubMsg "ERROR" "'MSBuild.exe LAVFilters.sln /nologo /consoleloggerparameters:Verbosity=minimal /nodeReuse:true /m /t:%BUILDTYPE% /property:Configuration=%RELEASETYPE%;Platform=%ARCHVS%' failed!" EXIT /B ) @@ -163,16 +154,11 @@ IF /I "%RELEASETYPE%" == "Debug" ( IF /I "%ARCH%" == "x64" ( SET "DESTFOLDER=%DESTFOLDER%\LAVFilters64" - SET "GCC_PREFIX=x86_64-w64-mingw32-" ) ELSE ( SET "DESTFOLDER=%DESTFOLDER%\LAVFilters" ) IF /I "%BUILDTYPE%" == "Build" ( - REM Build GCCInfo - %GCC_PREFIX%gcc -c -O2 GCCInfo.c -o src\bin_%ARCHVS%\ffmpeg\GCCInfo.o - REM ERRORLEVEL can't be checked because the variable is updated only when exiting the IF - REM Copy LAVFilters files to MPC-HC output directory IF NOT EXIST %DESTFOLDER% MD %DESTFOLDER% @@ -200,7 +186,7 @@ EXIT /B ECHO Not all build dependencies were found. ECHO. ECHO See "%ROOT_DIR%\docs\Compilation.txt" for more information. -CALL :SubMsg "ERROR" "LAV Filters compilation failed!" & EXIT /B 1 +CALL "%COMMON%" :SubMsg "ERROR" "LAV Filters compilation failed!" & EXIT /B 1 :UnsupportedSwitch @@ -210,7 +196,7 @@ ECHO. ECHO "%~nx0 %*" ECHO. ECHO Run "%~nx0 help" for details about the commandline switches. -CALL :SubMsg "ERROR" "LAV Filters compilation failed!" & EXIT /B 1 +CALL "%COMMON%" :SubMsg "ERROR" "LAV Filters compilation failed!" & EXIT /B 1 :ShowHelp @@ -228,68 +214,3 @@ ECHO. POPD ENDLOCAL EXIT /B - - -:SubMsg -ECHO. & ECHO ------------------------------ -IF /I "%~1" == "ERROR" ( - CALL :SubColorText "0C" "[%~1]" "%~2" -) ELSE IF /I "%~1" == "INFO" ( - CALL :SubColorText "0A" "[%~1]" "%~2" -) ELSE IF /I "%~1" == "WARNING" ( - CALL :SubColorText "0E" "[%~1]" "%~2" -) -ECHO ------------------------------ & ECHO. -IF /I "%~1" == "ERROR" ( - IF NOT DEFINED SILENT ( - ECHO Press any key to exit... - PAUSE >NUL - ) - POPD - ENDLOCAL - EXIT /B 1 -) ELSE ( - EXIT /B -) - - -:SubColorText -IF DEFINED NOCOLORS ECHO %~2 %~3 & EXIT /B -FOR /F "tokens=1,2 delims=#" %%G IN ( - '"PROMPT #$H#$E# & ECHO ON & FOR %%H IN (1) DO REM"') DO ( - SET "DEL=%%G") - "%~2" -FINDSTR /v /a:%1 /R ".18" "%~2" NUL -DEL "%~2" > NUL 2>&1 -REM The space in the following ECHO is intentional -ECHO %~3 -EXIT /B - - -:SubGetDuration -SET START_TIME=%START_TIME: =% -SET END_TIME=%END_TIME: =% - -FOR /F "tokens=1-4 delims=:.," %%G IN ("%START_TIME%") DO ( - SET /A "STARTTIME=(100%%G %% 100) * 360000 + (100%%H %% 100) * 6000 + (100%%I %% 100) * 100 + (100%%J %% 100)" -) - -FOR /F "tokens=1-4 delims=:.," %%G IN ("%END_TIME%") DO ( - SET /A "ENDTIME=(100%%G %% 100) * 360000 + (100%%H %% 100) * 6000 + (100%%I %% 100) * 100 + (100%%J %% 100)" -) - -SET /A DURATION=%ENDTIME%-%STARTTIME% -IF %ENDTIME% LSS %STARTTIME% SET /A "DURATION+=24 * 360000" - -SET /A DURATIONH=%DURATION% / 360000 -SET /A DURATIONM=(%DURATION% - %DURATIONH%*360000) / 6000 -SET /A DURATIONS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000) / 100 -SET /A DURATIONHS=(%DURATION% - %DURATIONH%*360000 - %DURATIONM%*6000 - %DURATIONS%*100)*10 - -IF %DURATIONH% EQU 0 (SET DURATIONH=) ELSE (SET DURATIONH=%DURATIONH%h ) -IF %DURATIONM% EQU 0 (SET DURATIONM=) ELSE (SET DURATIONM=%DURATIONM%m ) -IF %DURATIONS% EQU 0 (SET DURATIONS=) ELSE (SET DURATIONS=%DURATIONS%s ) -IF %DURATIONHS% EQU 0 (SET DURATIONHS=) ELSE (SET DURATIONHS=%DURATIONHS%ms) - -SET "DURATION=%DURATIONH%%DURATIONM%%DURATIONS%%DURATIONHS%" -EXIT /B diff --git a/src/thirdparty/LAVFilters/src b/src/thirdparty/LAVFilters/src index 5f45b5782b3..79ba86d3acb 160000 --- a/src/thirdparty/LAVFilters/src +++ b/src/thirdparty/LAVFilters/src @@ -1 +1 @@ -Subproject commit 5f45b5782b3e785ab34338cf84f544e1eb089fff +Subproject commit 79ba86d3acb1b53a50a8aae51d4670a8943e1e4f diff --git a/src/thirdparty/MediaInfo/License.html b/src/thirdparty/MediaInfo/License.html index 7b94ee7b3c8..85c5f7bee75 100644 --- a/src/thirdparty/MediaInfo/License.html +++ b/src/thirdparty/MediaInfo/License.html @@ -9,7 +9,7 @@

MediaInfo(Lib) License

- Copyright (c) 2002-2014 MediaArea.net SARL. All rights reserved. + Copyright (c) 2002-2015 MediaArea.net SARL. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, @@ -39,7 +39,7 @@

MediaInfo(Lib) License

Alternate license for redistributions of the library in binary form:
Redistributions in binary form must reproduce the following sentence (including the link to the website) in the documentation and/or other materials provided with the distribution.
-This product uses MediaInfo library, Copyright (c) 2002-2014 MediaArea.net SARL.

+This product uses MediaInfo library, Copyright (c) 2002-2015 MediaArea.net SARL.


diff --git a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp index 94830c68da8..02c42ca807f 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp @@ -2285,6 +2285,8 @@ bool File_Ac3::FrameSynchPoint_Test() { int16u frmsiz=LittleEndian2int16u(Buffer+Buffer_Offset+2)&0x07FF; Size=2+frmsiz*2; + + //TODO: case with multiple substreams } if (Size>=6) { @@ -2451,15 +2453,21 @@ size_t File_Ac3::Core_Size_Get() if (substreamid!=substreams_Count_Dependant) break; //Problem + int8u strmtyp = Buffer[Buffer_Offset + Size + 2] >> 6; + if (substreamid==0 && strmtyp==0) + break; //Next block + frmsiz =((int16u)(Buffer[(size_t)(Buffer_Offset+Size+2)]&0x07)<<8) | ( Buffer[(size_t)(Buffer_Offset+Size+3)] ); //Filling Size+=2+frmsiz*2; - int8u strmtyp = Buffer[Buffer_Offset + Size + 2] >> 6; if (strmtyp == 0) + { substreams_Count_Independant++; + substreams_Count_Dependant=0; + } else substreams_Count_Dependant++; substreams_Count++; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.cpp b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.cpp new file mode 100644 index 00000000000..ae1dac706a7 --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.cpp @@ -0,0 +1,288 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//--------------------------------------------------------------------------- +// Pre-compilation +#include "MediaInfo/PreComp.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Setup.h" +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_CAF_YES) +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Audio/File_Caf.h" +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +//*************************************************************************** +// Infos +//*************************************************************************** + +//*************************************************************************** +// Constants +//*************************************************************************** + +//--------------------------------------------------------------------------- +namespace Elements +{ + const int64u data=0x64617461; + const int64u desc=0x64657363; + const int64u free=0x66726565; + const int64u info=0x696E666F; + const int64u kuki=0x6B756B69; + const int64u pakt=0x70616B74; + const int64u uuid=0x75756964; +} + +//*************************************************************************** +// Constructor/Destructor +//*************************************************************************** + +//--------------------------------------------------------------------------- +File_Caf::File_Caf() +:File__Analyze() +{ + DataMustAlwaysBeComplete=false; +} + +//*************************************************************************** +// Buffer - File header +//*************************************************************************** + +//--------------------------------------------------------------------------- +bool File_Caf::FileHeader_Begin() +{ + //Synchro + if (3>Buffer_Size) + return false; + if (Buffer[0]!=0x63 //"caff" + || Buffer[1]!=0x61 + || Buffer[2]!=0x66 + || Buffer[3]!=0x66) + { + Reject(); + return false; + } + if (8>Buffer_Size) + return false; + + return true; +} + +//*************************************************************************** +// Buffer - Global +//*************************************************************************** + +//--------------------------------------------------------------------------- +void File_Caf::FileHeader_Parse() +{ + //Parsing + int16u FileVersion; + Skip_C4( "FileType"); + Get_B2 (FileVersion, "FileVersion"); + Skip_B2( "FileFlags"); + + FILLING_BEGIN(); + Accept(); + Fill(Stream_General, 0, General_Format, "CAF"); + Fill(Stream_General, 0, General_Format_Version, __T("Version ")+Ztring::ToZtring(FileVersion)); + Stream_Prepare(Stream_Audio); + + if (FileVersion!=1) + Finish(); //Version 0 or 2+ are not supported + FILLING_END(); +} + +//*************************************************************************** +// Buffer +//*************************************************************************** + +//--------------------------------------------------------------------------- +void File_Caf::Header_Parse() +{ + //Parsing + int64u ChunkSize; + int32u ChunkType; + Get_B4 (ChunkType, "ChunkType"); + Get_B8(ChunkSize, "ChunkSize"); + + //Filling + Header_Fill_Code2(ChunkType, Ztring().From_CC4(ChunkType)); + Header_Fill_Size(12+ChunkSize); +} + +//--------------------------------------------------------------------------- +void File_Caf::Data_Parse() +{ + if (Element_Code!=Elements::data && !Element_IsComplete_Get()) + { + Element_WaitForMoreData(); + return; + } + + #define ELEMENT_CASE(_NAME, _DETAIL) \ + case Elements::_NAME : Element_Name(_DETAIL); _NAME(); break; + + //Parsing + switch (Element_Code) + { + ELEMENT_CASE(data, "Audio Data"); + ELEMENT_CASE(desc, "Audio Description"); + ELEMENT_CASE(free, "Free"); + ELEMENT_CASE(info, "Information"); + ELEMENT_CASE(kuki, "Magic Cookie"); + ELEMENT_CASE(pakt, "Packet Table"); + ELEMENT_CASE(uuid, "User-Defined Chunk"); + default : + Skip_XX(Element_Size, "Data"); + } +} + +//*************************************************************************** +// Elements +//*************************************************************************** + +//--------------------------------------------------------------------------- +void File_Caf::data() +{ + //Parsing + Skip_XX(Element_Size, "Data"); + + Fill(Stream_Audio, 0, Retrieve(Stream_Audio, 0, Audio_Source_Duration).empty()?Audio_StreamSize:Audio_Source_StreamSize, Element_Size); + + //TODO: put this code in the common section Streams_Finish_StreamOnly() + int64u BitRate=Retrieve(Stream_Audio, 0, "BitRate").To_int64u(); + if (BitRate && Element_Size && Retrieve(Stream_Audio, 0, Audio_Source_Duration).empty() && Retrieve(Stream_Audio, 0, Audio_Duration).empty()) + Fill(Stream_Audio, 0, Audio_Duration, Element_Size*8*1000/BitRate); +} + +//--------------------------------------------------------------------------- +void File_Caf::desc() +{ + //Parsing + float64 SampleRate; + int32u FormatID, FormatFlags, BytesPerPacket, FramesPerPacket, ChannelsPerFrame, BitsPerChannel; + Get_BF8(SampleRate, "SampleRate"); + Get_C4 (FormatID, "FormatID"); + Get_B4 (FormatFlags, "FormatFlags"); + Get_B4 (BytesPerPacket, "BytesPerPacket"); + Get_B4 (FramesPerPacket, "FramesPerPacket"); + Get_B4 (ChannelsPerFrame, "ChannelsPerFrame"); + Get_B4 (BitsPerChannel, "BitsPerChannel"); + + FILLING_BEGIN(); + if (SampleRate) + Fill(Stream_Audio, 0, Audio_SamplingRate, SampleRate); + CodecID_Fill(Ztring().From_CC4(FormatID), Stream_Audio, 0, InfoCodecID_Format_Mpeg4); + if (ChannelsPerFrame) + Fill(Stream_Audio, 0, Audio_Channel_s_, ChannelsPerFrame); + if (BitsPerChannel) + Fill(Stream_Audio, 0, Audio_BitDepth, BitsPerChannel); + if (BytesPerPacket && SampleRate && FramesPerPacket) + Fill(Stream_Audio, 0, Audio_BitRate, SampleRate*BytesPerPacket*8/FramesPerPacket); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +void File_Caf::free() +{ + //Parsing + Skip_XX(Element_Size, "Junk"); +} + +//--------------------------------------------------------------------------- +void File_Caf::info() +{ + if (Element_Size<4) + return; + + //Parsing + int32u NumEntries; + Get_B4 (NumEntries, "NumEntries"); + ZtringList List; + std::map ListList; + const int8u* Buffer_Max = Buffer+(size_t)(Buffer_Offset+Element_Size); + while (Element_Offset::iterator Item=ListList.begin(); Item!=ListList.end(); ++Item) + Fill(Stream_General, 0, Item->first.To_UTF8().c_str(), Item->second); +} + +//--------------------------------------------------------------------------- +void File_Caf::kuki() +{ + //Parsing + Skip_XX(Element_Size, "Data"); +} + +//--------------------------------------------------------------------------- +void File_Caf::pakt() +{ + //Parsing + int64u NumberPackets, NumberValidFrames; + int32u PrimingFrames, RemainderFrames; + Get_B8 (NumberPackets, "NumberPackets"); + Get_B8 (NumberValidFrames, "NumberValidFrames"); + Get_B4 (PrimingFrames, "PrimingFrames"); + Get_B4 (RemainderFrames, "RemainderFrames"); + Skip_XX(Element_Size-Element_Offset, "Packet sizes"); + + FILLING_BEGIN(); + float64 SampleRate=Retrieve(Stream_Audio, 0, Audio_SamplingRate).To_float64(); + Fill(Stream_Audio, 0, Audio_FrameCount, NumberPackets); + Fill(Stream_Audio, 0, Audio_Duration, NumberValidFrames/SampleRate*1000, 0); + if (PrimingFrames && RemainderFrames) + Fill(Stream_Audio, 0, Audio_Source_Duration, (PrimingFrames+NumberValidFrames+RemainderFrames)/SampleRate*1000, 0); + Fill(Stream_Audio, 0, Audio_Delay, PrimingFrames/SampleRate*1000, 0); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +void File_Caf::uuid() +{ + //Parsing + Skip_UUID( "UUID"); + Skip_XX(Element_Size-Element_Offset, "Data"); +} + +//*************************************************************************** +// C++ +//*************************************************************************** + +} //NameSpace + +#endif //MEDIAINFO_CAF_YES diff --git a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.h b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.h new file mode 100644 index 00000000000..124f9aa331b --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.h @@ -0,0 +1,55 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// +// Information about Core Audio Format files +// +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +//--------------------------------------------------------------------------- +#ifndef MediaInfo_File_CafH +#define MediaInfo_File_CafH +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/File__Analyze.h" +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +//*************************************************************************** +// Class File_Au +//*************************************************************************** + +class File_Caf : public File__Analyze +{ +public : + File_Caf(); + +protected : + //Buffer - File header + bool FileHeader_Begin(); + void FileHeader_Parse (); + + //Buffer + void Header_Parse(); + void Data_Parse(); + + //Elements + void data(); + void desc(); + void free(); + void info(); + void kuki(); + void pakt(); + void uuid(); +}; + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Dts.cpp b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Dts.cpp index 355a3e2e99c..b608d12f34a 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Dts.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Dts.cpp @@ -1375,15 +1375,15 @@ bool File_Dts::FrameSynchPoint_Test() { int64u Value; if (BigEndian) - Value =(((int64u)( BigEndian2int16u(Buffer+Pos )&0x3FFF))<<42) - | (((int64u)( BigEndian2int16u(Buffer+Pos+2)&0x3FFF))<<28) - | (((int64u)( BigEndian2int16u(Buffer+Pos+4)&0x3FFF))<<14) - | (((int64u)( BigEndian2int16u(Buffer+Pos+6)&0x3FFF)) ); + Value =(((int64u)( BigEndian2int16u(Buffer+Buffer_Offset+Pos )&0x3FFF))<<42) + | (((int64u)( BigEndian2int16u(Buffer+Buffer_Offset+Pos+2)&0x3FFF))<<28) + | (((int64u)( BigEndian2int16u(Buffer+Buffer_Offset+Pos+4)&0x3FFF))<<14) + | (((int64u)( BigEndian2int16u(Buffer+Buffer_Offset+Pos+6)&0x3FFF)) ); else - Value =(((int64u)(LittleEndian2int16u(Buffer+Pos )&0x3FFF))<<42) - | (((int64u)(LittleEndian2int16u(Buffer+Pos+2)&0x3FFF))<<28) - | (((int64u)(LittleEndian2int16u(Buffer+Pos+4)&0x3FFF))<<14) - | (((int64u)(LittleEndian2int16u(Buffer+Pos+6)&0x3FFF)) ); + Value =(((int64u)(LittleEndian2int16u(Buffer+Buffer_Offset+Pos )&0x3FFF))<<42) + | (((int64u)(LittleEndian2int16u(Buffer+Buffer_Offset+Pos+2)&0x3FFF))<<28) + | (((int64u)(LittleEndian2int16u(Buffer+Buffer_Offset+Pos+4)&0x3FFF))<<14) + | (((int64u)(LittleEndian2int16u(Buffer+Buffer_Offset+Pos+6)&0x3FFF)) ); int56u2BigEndian(Dest+Pos*14/16, Value); } Save_Buffer=Dest; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Pcm.cpp b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Pcm.cpp index e42326b4159..24dda17d28c 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Pcm.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Pcm.cpp @@ -407,7 +407,10 @@ void File_Pcm::Data_Parse() Frame_Count_NotParsedIncluded++; if (FrameInfo.DTS!=(int64u)-1 && FrameInfo.DUR!=(int64u)-1) { - FrameInfo.DTS+=FrameInfo.DUR; + if (BitDepth && Channels && SamplingRate) + FrameInfo.DTS+=Element_Size*1000000000*8/BitDepth/Channels/SamplingRate; + else + FrameInfo.DTS+=FrameInfo.DUR; FrameInfo.PTS=FrameInfo.DTS; } if ((!Status[IsAccepted] && Frame_Count>=Frame_Count_Valid) || File_Offset+Buffer_Size>=File_Size) diff --git a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp index fd5a6861d96..f36e0389349 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp @@ -16,10 +16,15 @@ #include "MediaInfo/Setup.h" //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_EBUCORE_YES) +//--------------------------------------------------------------------------- + //--------------------------------------------------------------------------- #include "MediaInfo/Export/Export_EbuCore.h" #include "MediaInfo/File__Analyse_Automatic.h" #include +#include using namespace std; //--------------------------------------------------------------------------- @@ -34,6 +39,26 @@ extern MediaInfo_Config Config; // Infos //*************************************************************************** +//--------------------------------------------------------------------------- +Ztring XML_Encode (const Ztring& Data) +{ + Ztring Result; + wstring::size_type Pos; + for (Pos=0; Pos'): Result+=__T("≶"); break; + default: Result+=Data[Pos]; + } + } + return Result; +} + //--------------------------------------------------------------------------- int32u EbuCore_VideoCompressionCodeCS_termID(MediaInfo_Internal &MI, size_t StreamPos) { @@ -619,8 +644,15 @@ Export_EbuCore::~Export_EbuCore () //*************************************************************************** //--------------------------------------------------------------------------- -Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t StreamPos) +Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t StreamPos, Export_EbuCore::version Version) { + size_t As11_UkDpp_Pos=(size_t)-1; + for (size_t StreamPos_Temp=0; StreamPos_Temp")+MI.Get(Stream_Video, StreamPos, Video_DisplayAspectRatio)+__T("\n"); else { - ToReturn+=__T("\t\t\t\t\n"); - ToReturn+=__T("\t\t\t\t\t")+factorNumerator+__T("\n"); - ToReturn+=__T("\t\t\t\t\t")+factorDenominator+__T("\n"); - ToReturn+=__T("\t\t\t\t\n"); + AspectRatioString_Pos=AspectRatioString.find(__T('.')); + if (AspectRatioString_Pos!=(size_t)-1) + { + int64s Denominator=float64_int64s(pow((double)10, (int)(AspectRatioString.size()-AspectRatioString_Pos+1))); //Computing the right denomintor compared to the count of decimals in the value e.g. 1.778 will have a denominator of 1000 (3 digits after the comma) + factorNumerator=Ztring::ToZtring(AspectRatioString.To_float32()*Denominator, 0); + factorDenominator=Ztring::ToZtring(Denominator); + } + else + { + factorNumerator=AspectRatioString; //No decimal + factorDenominator=__T("1"); + } } + ToReturn+=__T("\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\t")+factorNumerator+__T("\n"); + ToReturn+=__T("\t\t\t\t\t")+factorDenominator+__T("\n"); + ToReturn+=__T("\t\t\t\t\n"); } //videoEncoding @@ -776,7 +818,7 @@ Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t //scanningFormat if (!MI.Get(Stream_Video, StreamPos, Video_ScanType).empty()) { - Ztring ScanType=MI.Get(Stream_Video, 0, Video_ScanType); + Ztring ScanType=MI.Get(Stream_Video, StreamPos, Video_ScanType); if (ScanType==__T("MBAFF")) ScanType=__T("Interlaced"); ScanType.MakeLowerCase(); @@ -786,7 +828,7 @@ Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t //scanningOrder if (!MI.Get(Stream_Video, StreamPos, Video_ScanOrder).empty()) { - Ztring ScanOrder=MI.Get(Stream_Video, 0, Video_ScanOrder); + Ztring ScanOrder=MI.Get(Stream_Video, StreamPos, Video_ScanOrder); if (ScanOrder==__T("TFF")) ScanOrder=__T("top"); if (ScanOrder==__T("BFF")) @@ -794,7 +836,7 @@ Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t if (ScanOrder.find(__T("Pulldown"))!=string::npos) ScanOrder=__T("pulldown"); ToReturn+=__T("\t\t\t\t")+ScanOrder+__T("\n"); - } + } //videoTrack if (!MI.Get(Stream_Video, StreamPos, Video_ID).empty() || !MI.Get(Stream_Video, StreamPos, Video_Title).empty()) @@ -811,14 +853,119 @@ Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t if (!MI.Get(Stream_Video, StreamPos, Video_MultiView_Count).empty()) ToReturn+=__T("\t\t\t\ttrue\n"); - ToReturn+=__T("\t\t\t\n"); + //technicalAttributeString - ActiveFormatDescription + if (!MI.Get(Stream_Video, StreamPos, Video_ActiveFormatDescription).empty()) + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, Video_ActiveFormatDescription)+__T("\n"); + + //technicalAttributeString - Standard + if (!MI.Get(Stream_Video, StreamPos, Video_Standard).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, Video_Standard)+__T("\n"); + } + + //technicalAttributeString - ColorSpace + if (!MI.Get(Stream_Video, StreamPos, Video_ColorSpace).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, Video_ColorSpace)+__T("\n"); + } + + //technicalAttributeString - ChromaSubsampling + if (!MI.Get(Stream_Video, StreamPos, Video_ChromaSubsampling).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, Video_ChromaSubsampling)+__T("\n"); + } + + //technicalAttributeString - colour_primaries + if (!MI.Get(Stream_Video, StreamPos, __T("colour_primaries")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, __T("colour_primaries"))+__T("\n"); + } + + //technicalAttributeString - transfer_characteristics + if (!MI.Get(Stream_Video, StreamPos, __T("transfer_characteristics")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, __T("transfer_characteristics"))+__T("\n"); + } + + //technicalAttributeString - matrix_coefficients + if (!MI.Get(Stream_Video, StreamPos, __T("matrix_coefficients")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, __T("matrix_coefficients"))+__T("\n"); + } + + //technicalAttributeString - colour_range + if (!MI.Get(Stream_Video, StreamPos, __T("colour_range")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Video, StreamPos, __T("colour_range"))+__T("\n"); + } + + //technicalAttributeString - StreamSize + if (!MI.Get(Stream_Video, StreamPos, Video_StreamSize).empty()) + { + ToReturn+=__T("\t\t\t\t=Export_EbuCore::Version_1_6?Ztring(__T(" unit=\"byte\"")):Ztring())+__T(">")+MI.Get(Stream_Video, StreamPos, Video_StreamSize)+__T("\n"); + } + + //technicalAttributeString - BitDepth + if (!MI.Get(Stream_Video, StreamPos, Video_BitDepth).empty()) + { + ToReturn+=__T("\t\t\t\t=Export_EbuCore::Version_1_6?Ztring(__T(" unit=\"bit\"")):Ztring())+__T(">")+MI.Get(Stream_Video, StreamPos, Video_BitDepth)+__T("\n"); + } + + //technicalAttributeString + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaManufacturer")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaManufacturer"))+__T("\n"); + } + + //technicalAttributeString + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaVersion")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaVersion"))+__T("\n"); + } + + //technicalAttributeBoolean - Format_Settings_CABAC + if (MI.Get(Stream_Video, StreamPos, Video_Format)==__T("AVC") && !MI.Get(Stream_Video, StreamPos, Video_Format_Settings_CABAC).empty()) + { + ToReturn+=__T("\t\t\t\t")+Ztring(MI.Get(Stream_Video, StreamPos, Video_Format_Settings_CABAC)==__T("Yes")?__T("true"):__T("false"))+__T("\n"); + } + + //technicalAttributeBoolean - Format_Settings_MBAFF + if (MI.Get(Stream_Video, StreamPos, Video_Format)==__T("AVC") && !MI.Get(Stream_Video, StreamPos, Video_ScanType).empty()) + { + ToReturn+=__T("\t\t\t\t")+Ztring(MI.Get(Stream_Video, StreamPos, Video_ScanType)==__T("MBAFF")?__T("true"):__T("false"))+__T("\n"); + } + + //technicalAttributeBoolean - FpaPass + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaPass")).empty()) + { + ToReturn+=__T("\t\t\t\t")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaPass"))==__T("Yes")?__T("true"):__T("false"))+__T("\n"); + } + + //technicalAttributeString + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("VideoComments")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("VideoComments"))+__T("\n"); + } + + ToReturn+=__T("\t\t\t\n"); return ToReturn; } //--------------------------------------------------------------------------- -Ztring EbuCore_Transform_Audio(Ztring &ToReturn, MediaInfo_Internal &MI, size_t StreamPos) +Ztring EbuCore_Transform_Audio(Ztring &ToReturn, MediaInfo_Internal &MI, size_t StreamPos, Export_EbuCore::version Version) { + + size_t As11_Core_Pos=(size_t)-1; + size_t As11_UkDpp_Pos=(size_t)-1; + for (size_t StreamPos_Temp=0; StreamPos_Temp\n"); } - //audioTrackConfiguration //TODO - if (!MI.Get(Stream_Audio, StreamPos, Audio_ChannelPositions).empty()) + //audioTrackConfiguration + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("AudioTrackLayout")).empty()) { - Ztring ChannelPositions=MI.Get(Stream_Audio, StreamPos, Audio_ChannelPositions); - ToReturn+=__T("\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\n"); } //samplingRate @@ -927,6 +1073,42 @@ Ztring EbuCore_Transform_Audio(Ztring &ToReturn, MediaInfo_Internal &MI, size_t if (!MI.Get(Stream_Audio, StreamPos, Audio_Channel_s_).empty()) ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Audio, StreamPos, Audio_Channel_s_)+__T("\n"); + //format - technicalAttributeString - ChannelPositions + if (!MI.Get(Stream_Audio, StreamPos, Audio_ChannelPositions).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Audio, StreamPos, Audio_ChannelPositions)+__T("\n"); + } + + //format - technicalAttributeString - ChannelLayout + if (!MI.Get(Stream_Audio, StreamPos, Audio_ChannelLayout).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Audio, StreamPos, Audio_ChannelLayout)+__T("\n"); + } + + //technicalAttributeString - Format_Settings_Endianness + if (!MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Endianness).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Endianness)+__T("\n"); + } + + //technicalAttributeString - Format_Settings_Wrapping + if (!MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Wrapping).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Wrapping)+__T("\n"); + } + + //technicalAttributeString - StreamSize + if (!MI.Get(Stream_Audio, StreamPos, Audio_StreamSize).empty()) + { + ToReturn+=__T("\t\t\t\t=Export_EbuCore::Version_1_6?Ztring(__T(" unit=\"byte\"")):Ztring())+__T(">")+MI.Get(Stream_Audio, StreamPos, Audio_StreamSize)+__T("\n"); + } + + //technicalAttributeString + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioComments")).empty()) + { + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioComments"))+__T("\n"); + } + ToReturn+=__T("\t\t\t\n"); return ToReturn; @@ -979,7 +1161,85 @@ Ztring EbuCore_Transform_Text(Ztring &ToReturn, MediaInfo_Internal &MI, size_t S } //--------------------------------------------------------------------------- -Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI) +Ztring EbuCore_Transform_TimeCode(Ztring &ToReturn, MediaInfo_Internal &MI, size_t StreamPos, bool Is1_5) +{ + if (Is1_5) + ToReturn+=__T("\t\t\t\n"); + + return ToReturn; +} + +//--------------------------------------------------------------------------- +Ztring EbuCore_Transform_Metadata(Ztring &ToReturn, MediaInfo_Internal &MI, size_t StreamPos, bool Is1_5) +{ + if (Is1_5) + ToReturn+=__T("\t\t\t\n"); + + return ToReturn; +} + +//--------------------------------------------------------------------------- +Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI, version Version) { //Current date/time is ISO format time_t Seconds=time(NULL); @@ -989,106 +1249,274 @@ Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI) Ztring Date=DateTime.substr(0, 10); Ztring Time=DateTime.substr(11, 8); + size_t As11_Core_Pos=(size_t)-1; + size_t As11_Segmentation_Pos=(size_t)-1; + size_t As11_UkDpp_Pos=(size_t)-1; + for (size_t StreamPos_Temp=0; StreamPos_Temp\n"); ToReturn+=__T("\n"); - ToReturn+=__T("\n"); + if (Version==Version_1_5) + ToReturn+=__T("\n"); + else + ToReturn+=__T("\n"); //coreMetadata ToReturn+=__T("\t\n"); + //title + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("ProgrammeTitle")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_Core_Pos, __T("ProgrammeTitle"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + else if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //alternativeTitle + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("SeriesTitle")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_Core_Pos, __T("SeriesTitle"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber")).empty() && !MI.Get(Stream_Other, As11_Core_Pos, __T("ProgrammeTitle")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //description + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Synopsis")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Synopsis"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //ProductPlacement + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductPlacement")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductPlacement"))==__T("Yes")?__T("true"):__T("false"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //ContactEmail / ContactTelephoneNumber + if (As11_UkDpp_Pos!=(size_t)-1 && (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactEmail")).empty() || !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactTelephoneNumber")).empty())) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\n"); + if (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactEmail")).empty()) + ToReturn+=__T("\t\t\t\t\t")+XML_Encode(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactEmail")))+__T("\n"); + if (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactTelephoneNumber")).empty()) + ToReturn+=__T("\t\t\t\t\t")+XML_Encode(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactTelephoneNumber")))+__T("\n"); + ToReturn+=__T("\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\n"); + } + + //Originator + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Originator")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t")+XML_Encode(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Originator")))+__T("\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\n"); + } + + //Distributor + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Distributor")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Distributor"))+__T("\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\n"); + } + + //date + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("CopyrightYear")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\n"); + } + + //type + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Genre")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\n"); + } + //format ToReturn+=__T("\t\t\n"); //format - videoFormat for (size_t Pos=0; Pos=Version_1_6?__T(" containerFormatName=\""):__T(" formatLabel=\""))+MI.Get(Stream_General, 0, General_Format)+__T("\""); if (!MI.Get(Stream_General, 0, General_ID).empty()) ToReturn+=__T(" containerFormatId=\"")+MI.Get(Stream_General, 0, General_ID)+__T("\""); - if (!MI.Get(Stream_General, 0, General_CodecID).empty() || !MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty()) + ToReturn+=__T(">\n"); + if (!MI.Get(Stream_General, 0, General_CodecID).empty() || (!MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty())) { - ToReturn+=__T(">\n"); - if (!MI.Get(Stream_General, 0, General_CodecID).empty() || (!MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty())) + ToReturn+=__T("\t\t\t\t\n"); + if (!MI.Get(Stream_General, 0, General_CodecID).empty()) { - ToReturn+=__T("\t\t\t\t\n"); - if (!MI.Get(Stream_General, 0, General_CodecID).empty()) - { - ToReturn+=__T("\t\t\t\t\t\n"); - ToReturn+=__T("\t\t\t\t\t\t")+MI.Get(Stream_General, 0, General_CodecID)+__T("\n"); - ToReturn+=__T("\t\t\t\t\t\n"); - } - if (!MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty()) - ToReturn+=__T("\t\t\t\t\t")+MI.Get(Stream_General, 0, General_Format_Commercial_IfAny)+__T("\n"); - ToReturn+=__T("\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\t\t")+MI.Get(Stream_General, 0, General_CodecID)+__T("\n"); + ToReturn+=__T("\t\t\t\t\t\n"); } - ToReturn+=__T("\t\t\t\n"); + if (!MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty()) + ToReturn+=__T("\t\t\t\t\t")+MI.Get(Stream_General, 0, General_Format_Commercial_IfAny)+__T("\n"); + ToReturn+=__T("\t\t\t\t\n"); } - else + if (Version>=Version_1_6) + { + ToReturn+=__T("\t\t\t\t=Version_1_6 && !MI.Get(Stream_General, 0, General_Format_Profile).empty()) + // ToReturn+=__T(" containeFormatProfile=\"")+MI.Get(Stream_General, 0, General_Format_Profile)+__T("\""); ToReturn+=__T("/>\n"); + } + //format - containerFormat - technicalAttributeString - AS11ShimName + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("ShimName")).empty()) + { + ToReturn+=__T("\t\t\t\t=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"AS11ShimName\">")+MI.Get(Stream_Other, As11_Core_Pos, __T("ShimName"))+__T("=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n"); + } + + //format - containerFormat - technicalAttributeString - AS11ShimVersion + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("ShimVersion")).empty()) + { + ToReturn+=__T("\t\t\t\t=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"AS11ShimVersion\">")+MI.Get(Stream_Other, As11_Core_Pos, __T("ShimVersion"))+__T("=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n"); + } + + //format - containerFormat - technicalAttributeString - Format_Profile + if (!MI.Get(Stream_General, 0, __T("Format_Profile")).empty()) + { + ToReturn+=__T("\t\t\t\t=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"FormatProfile\">")+MI.Get(Stream_General, 0, __T("Format_Profile"))+__T("=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n"); + } + + //format - containerFormat - technicalAttributeString - Format_Settings + if (!MI.Get(Stream_General, 0, __T("Format_Profile")).empty()) + { + ToReturn+=__T("\t\t\t\t=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"FormatSettings\">")+MI.Get(Stream_General, 0, __T("Format_Settings"))+__T("=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n"); + } + + //format - containerFormat - technicalAttributeString - Encoded_Application + if (!MI.Get(Stream_General, 0, __T("Encoded_Application")).empty()) + { + ToReturn+=__T("\t\t\t\t=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"WrittingApplication\">")+MI.Get(Stream_General, 0, __T("Encoded_Application"))+__T("=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n"); + } + + //format - containerFormat - technicalAttributeString - Encoded_Library + if (!MI.Get(Stream_General, 0, __T("Encoded_Library/String")).empty()) + { + ToReturn+=__T("\t\t\t\t=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"WrittingLibrary\">")+MI.Get(Stream_General, 0, __T("Encoded_Library/String"))+__T("=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n"); + } + + ToReturn+=__T("\t\t\t\n"); + + //format - SigningPresent + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("SigningPresent")).empty()) + { + if (Version==Version_1_5) + ToReturn+=__T("\t\t\t\n"); + } //format - dataFormat for (size_t Pos=0; Pos\n"); - else if (startCount) //No out of spec in all cases - { - ToReturn+=__T("\t\t\t\n"); - } - else //Extra out of spec fields - { - ToReturn+=__T("\t\t\t\n"); - } - ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, StreamPos, Other_TimeCode_FirstFrame)+__T("\n"); - if (!MI.Get(Stream_Other, 0, Other_MuxingMode).empty()) - { - if (!startCount) - ToReturn+=__T("\t\t\t\t\n"); - } - ToReturn+=__T("\t\t\t\n"); - if (startCount) - ToReturn+=__T("\t\t\t-->\n"); - startCount=true; - } + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + } + + //format - OpenCaptionsPresent + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OpenCaptionsPresent")).empty()) + { + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + } + + //format - time codes + for (size_t Pos=0; Pos\n"); + ToReturn+=__T("\t\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("LineUpStart"))+__T("\n"); + ToReturn+=__T("\t\t\t\n"); + startDone=true; + } + + //format - technicalAttributeString - IdentClockStart + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("IdentClockStart")).empty()) + { + if (Version==Version_1_5 && startDone) + ToReturn+=__T("\t\t\t\n"); } //format - duration + bool durationDone=false; if (!MI.Get(Stream_General, 0, General_Duration).empty()) { float64 DurationS=MI.Get(Stream_General, 0, General_Duration).To_float64()/1000; @@ -1105,6 +1533,19 @@ Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI) ToReturn+=__T("\t\t\t\n"); ToReturn+=__T("\t\t\t\tPT")+Duration+__T("\n"); ToReturn+=__T("\t\t\t\n"); + durationDone=true; + } + + //format - duration + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("TotalProgrammeDuration")).empty()) + { + if (Version==Version_1_5 && durationDone) + ToReturn+=__T("\t\t\t\n"); } //format - fileSize @@ -1120,30 +1561,43 @@ Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI) Name+=__T('.'); Name+=MI.Get(Stream_General, 0, General_FileExtension); } - Name.FindAndReplace(__T("&"), __T("&"), 0, Ztring_Recursive); - Name.FindAndReplace(__T("<"), __T("<"), 0, Ztring_Recursive); - Name.FindAndReplace(__T(">"), __T(">"), 0, Ztring_Recursive); - Name.FindAndReplace(__T("\""), __T("""), 0, Ztring_Recursive); - Name.FindAndReplace(__T("'"), __T("'"), 0, Ztring_Recursive); - ToReturn+=__T("\t\t\t")+Name+__T("\n"); + ToReturn+=__T("\t\t\t")+XML_Encode(Name)+__T("\n"); } //format - locator if (!MI.Get(Stream_General, 0, General_CompleteName).empty()) { - Ztring Name=MI.Get(Stream_General, 0, General_CompleteName); - Name.FindAndReplace(__T("&"), __T("&"), 0, Ztring_Recursive); - Name.FindAndReplace(__T("<"), __T("<"), 0, Ztring_Recursive); - Name.FindAndReplace(__T(">"), __T(">"), 0, Ztring_Recursive); - Name.FindAndReplace(__T("\""), __T("""), 0, Ztring_Recursive); - Name.FindAndReplace(__T("'"), __T("'"), 0, Ztring_Recursive); - ToReturn+=__T("\t\t\t")+Name+__T("\n"); + ToReturn+=__T("\t\t\t")+XML_Encode(MI.Get(Stream_General, 0, General_CompleteName))+__T("\n"); + } + + //format - technicalAttributeString - AudioLoudnessStandard + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioLoudnessStandard")).empty()) + { + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioLoudnessStandard"))+__T("\n"); + } + + //format - technicalAttributeString - AudioDescriptionType + if (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioDescriptionType")).empty()) + { + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioDescriptionType"))+__T("\n"); } //format - technicalAttributeString - overallBitRate if (!MI.Get(Stream_General, 0, General_OverallBitRate).empty()) { - ToReturn+=__T("\t\t\t")+MI.Get(Stream_General, 0, General_OverallBitRate)+__T("\n"); + ToReturn+=__T("\t\t\t=Version_1_6?Ztring(__T(" unit=\"bps\"")):Ztring())+__T(">")+MI.Get(Stream_General, 0, General_OverallBitRate)+__T("\n"); + } + + //format - technicalAttributeString - ProgrammeHasText + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("ProgrammeHasText")).empty()) + { + ToReturn+=__T("\t\t\t")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProgrammeHasText"))==__T("Yes")?__T("true"):__T("false"))+__T("\n"); + } + + //format - technicalAttributeString - AudioDescriptionPresent + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("AudioDescriptionPresent")).empty()) + { + ToReturn+=__T("\t\t\t")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioDescriptionPresent"))==__T("Yes")?__T("true"):__T("false"))+__T("\n"); } //format - dateCreated @@ -1173,6 +1627,84 @@ Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI) //format ToReturn+=__T("\t\t\n"); + //identifier + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductionNumber")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductionNumber"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifier")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifier"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifierType")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifierType"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //format - PrimaryAudioLanguage + if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("PrimaryAudioLanguage")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_Core_Pos, __T("PrimaryAudioLanguage"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //format - SecondaryAudioLanguage + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("SecondaryAudioLanguage")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("SecondaryAudioLanguage"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //format - TertiaryAudioLanguage + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("TertiaryAudioLanguage")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("TertiaryAudioLanguage"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //language + if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProgrammeTextLanguage")).empty()) + { + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProgrammeTextLanguage"))+__T("\n"); + ToReturn+=__T("\t\t\n"); + } + + //part + if (As11_Segmentation_Pos!=(size_t)-1) + { + size_t Pos=1; + for (;;) + { + Ztring Content=MI.Get(Stream_Other, As11_Segmentation_Pos, Ztring::ToZtring(Pos)); + if (Content.empty()) + break; + + Ztring Begin=Content.SubString(Ztring(), __T(" + ")); + Ztring Duration=Content.SubString(__T(" + "), __T(" = ")); + + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t")+Begin+__T("\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\t\t")+Duration+__T("\n"); + ToReturn+=__T("\t\t\t\n"); + ToReturn+=__T("\t\t\n"); + + Pos++; + } + } + //coreMetadata ToReturn+=__T("\t\n"); @@ -1190,3 +1722,5 @@ Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI) //*************************************************************************** } //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.h b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.h index 27a0b1d217d..3317a09cce8 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.h @@ -28,7 +28,12 @@ public : ~Export_EbuCore (); //Input - Ztring Transform(MediaInfo_Internal &MI); + enum version + { + Version_1_5, + Version_1_6, + }; + Ztring Transform(MediaInfo_Internal &MI, version Version=Version_1_5); }; } //NameSpace diff --git a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp index 1df5605eb28..a884183abe1 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp @@ -16,6 +16,10 @@ #include "MediaInfo/Setup.h" //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_MPEG7_YES) +//--------------------------------------------------------------------------- + //--------------------------------------------------------------------------- #include "MediaInfo/Export/Export_Mpeg7.h" #include "MediaInfo/File__Analyse_Automatic.h" @@ -1546,3 +1550,5 @@ Ztring Export_Mpeg7::Transform(MediaInfo_Internal &MI) //*************************************************************************** } //NameSpace + +#endif \ No newline at end of file diff --git a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp index 5f28e3e43a6..23958234549 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp @@ -16,6 +16,10 @@ #include "MediaInfo/Setup.h" //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_PBCORE_YES) +//--------------------------------------------------------------------------- + //--------------------------------------------------------------------------- #include "MediaInfo/Export/Export_PBCore.h" #include "MediaInfo/File__Analyse_Automatic.h" @@ -74,8 +78,6 @@ void PBCore_Transform(Ztring &ToReturn, MediaInfo_Internal &MI, stream_t StreamK if (StreamKind==Stream_Menu && MI.Get(Stream_Menu, StreamPos, Menu_Format)!=__T("TimeCode")) return; - ToReturn+=__T("\t\t\n"); - //essenceTrackType Ztring essenceTrackType; switch (StreamKind) @@ -105,6 +107,9 @@ void PBCore_Transform(Ztring &ToReturn, MediaInfo_Internal &MI, stream_t StreamK return; //Not supported default: return; //Not supported } + + ToReturn+=__T("\t\t\n"); + ToReturn+=__T("\t\t\t")+essenceTrackType+__T("\n"); //essenceTrackIdentifier @@ -334,3 +339,5 @@ Ztring Export_PBCore::Transform(MediaInfo_Internal &MI) //*************************************************************************** } //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp index 6758949af90..24e5e15f885 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp @@ -22,6 +22,10 @@ #include "MediaInfo/Setup.h" //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_PBCORE_YES) +//--------------------------------------------------------------------------- + //--------------------------------------------------------------------------- #include "MediaInfo/Export/Export_PBCore2.h" #include "MediaInfo/File__Analyse_Automatic.h" @@ -80,8 +84,6 @@ void PBCore2_Transform(Ztring &ToReturn, MediaInfo_Internal &MI, stream_t Stream if (StreamKind==Stream_Menu && MI.Get(Stream_Menu, StreamPos, Menu_Format)!=__T("TimeCode")) return; - ToReturn+=__T("\t\n"); - //essenceTrackType Ztring essenceTrackType; switch (StreamKind) @@ -114,6 +116,9 @@ void PBCore2_Transform(Ztring &ToReturn, MediaInfo_Internal &MI, stream_t Stream return; //Not supported default: return; //Not supported } + + ToReturn+=__T("\t\n"); + ToReturn+=__T("\t\t"); ToReturn+=essenceTrackType; ToReturn+=__T("\n"); @@ -158,7 +163,8 @@ void PBCore2_Transform(Ztring &ToReturn, MediaInfo_Internal &MI, stream_t Stream ToReturn+=__T("\t\t using namespace std; using namespace tinyxml2; @@ -216,12 +216,14 @@ File__Analyze::File__Analyze () #endif //MEDIAINFO_MD5 Unsynch_Frame_Count=(int64u)-1; - #if MEDIAINFO_IBI - Config_Ibi_Create=false; + #if MEDIAINFO_IBIUSAGE Ibi_SynchronizationOffset_Current=0; Ibi_SynchronizationOffset_BeginOfFrame=0; + #endif //MEDIAINFO_IBIUSAGE + #if MEDIAINFO_IBIUSAGE + Config_Ibi_Create=false; IbiStream=NULL; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //--------------------------------------------------------------------------- @@ -247,10 +249,10 @@ File__Analyze::~File__Analyze () delete MD5; //MD5=NULL; #endif //MEDIAINFO_MD5 - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (!IsSub) delete IbiStream; //IbiStream=NULL; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** @@ -318,11 +320,11 @@ void File__Analyze::Open_Buffer_Init (int64u File_Size_) } } #endif //MEDIAINFO_EVENTS - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Config_Ibi_Create=Config->Ibi_Create_Get() && Config->ParseSpeed==1.0; if (Config_Ibi_Create && !IsSub && IbiStream==NULL) IbiStream=new ibi::stream; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } void File__Analyze::Open_Buffer_Init (File__Analyze* Sub) @@ -333,7 +335,11 @@ void File__Analyze::Open_Buffer_Init (File__Analyze* Sub) void File__Analyze::Open_Buffer_Init (File__Analyze* Sub, int64u File_Size_) { //Integrity - if (Sub==NULL) + if (Sub==NULL + #if MEDIAINFO_EVENTS + || StreamIDs_Size==0 + #endif + ) return; //Parsing @@ -565,8 +571,7 @@ void File__Analyze::Open_Buffer_Continue (const int8u* ToAdd, size_t ToAdd_Size) #endif //MEDIAINFO_DEMUX ) { - if (!BookMark_Code.empty()) - BookMark_Get(); + BookMark_Get(); if (File_GoTo>=File_Size) { @@ -1300,11 +1305,13 @@ void File__Analyze::Read_Buffer_Unsynched_OneFramePerFile() } #if MEDIAINFO_DEMUX - if (Config->Demux_Rate_Get()) + if (!IsSub && Config->Demux_Rate_Get()) //TODO: remove !IsSub when time code delay is removed from PTS { FrameInfo.DTS=float64_int64s(Frame_Count_NotParsedIncluded*((float64)1000000000)/Config->Demux_Rate_Get()); FrameInfo.PTS=FrameInfo.DTS; } + else + FrameInfo.PTS=FrameInfo.DTS=(int64u)-1; #endif //MEDIAINFO_DEMUX } @@ -3003,8 +3010,7 @@ void File__Analyze::GoTo (int64u GoTo, const char* ParserName) if (GoTo==File_Size) { - if (!BookMark_Code.empty()) - BookMark_Get(); + BookMark_Get(); if (File_GoTo==(int64u)-1) ForceFinish(); return; @@ -3070,8 +3076,7 @@ void File__Analyze::GoTo (int64u GoTo) if (GoTo==File_Size) { - if (!BookMark_Code.empty()) - BookMark_Get(); + BookMark_Get(); if (File_GoTo==(int64u)-1) ForceFinish(); return; @@ -3316,13 +3321,17 @@ void File__Analyze::BookMark_Get () Element_WantNextLevel=true; } - for (size_t Pos=0; Pos<=Element_Level; Pos++) + if (!BookMark_Code.empty()) { - Element[Pos].Code=BookMark_Code[Pos]; - Element[Pos].Next=BookMark_Next[Pos]; + for (size_t Pos=0; Pos<=BookMark_Element_Level; Pos++) + { + Element[Pos].Code=BookMark_Code[Pos]; + Element[Pos].Next=BookMark_Next[Pos]; + } + BookMark_Code.clear(); + BookMark_Next.clear(); + BookMark_Element_Level=0; } - BookMark_Code.clear(); - BookMark_Next.clear(); if (File_GoTo==(int64u)-1) { #if MEDIAINFO_MD5 @@ -3518,7 +3527,7 @@ void File__Analyze::Demux_UnpacketizeContainer_Demux_Clear () //*************************************************************************** // IBI //*************************************************************************** -#if MEDIAINFO_IBI +#if MEDIAINFO_IBIUSAGE void File__Analyze::Ibi_Read_Buffer_Unsynched () { Ibi_SynchronizationOffset_Current=(int64u)-1; @@ -3538,6 +3547,7 @@ void File__Analyze::Ibi_Read_Buffer_Unsynched () } } +#if MEDIAINFO_SEEK size_t File__Analyze::Ibi_Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { if (IbiStream==NULL) @@ -3720,7 +3730,10 @@ size_t File__Analyze::Ibi_Read_Buffer_Seek (size_t Method, int64u Value, int64u default : return (size_t)-1; //Not supported } } +#endif //MEDIAINFO_SEEK +#endif //MEDIAINFO_IBIUSAGE +#if MEDIAINFO_IBIUSAGE void File__Analyze::Ibi_Stream_Finish () { if (IsSub) @@ -3823,6 +3836,6 @@ void File__Analyze::Ibi_Add () Frame_Count_NotParsedIncluded=IbiStream->Infos[IbiStream->Infos_Pos-1].FrameNumber; } -#endif //MEDIAINFO_IBI +#endif //MEDIAINFO_IBCREATION } //NameSpace diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.h b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.h index e11db3bae91..e455437b438 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.h +++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.h @@ -14,9 +14,9 @@ #include "MediaInfo/File__Analyse_Automatic.h" #include "ZenLib/BitStream_Fast.h" #include "ZenLib/BitStream_LE.h" -#if MEDIAINFO_IBI +#if MEDIAINFO_IBIUSAGE #include "MediaInfo/Multiple/File_Ibi_Creation.h" -#endif //MEDIAINFO_IBI +#endif //MEDIAINFO_IBIUSAGE #include "tinyxml2.h" #if MEDIAINFO_AES #include @@ -425,6 +425,7 @@ public : void Get_B7 (int64u &Info, const char* Name); void Get_B8 (int64u &Info, const char* Name); void Get_B16 (int128u &Info, const char* Name); + void Get_BF2 (float32 &Info, const char* Name); void Get_BF4 (float32 &Info, const char* Name); void Get_BF8 (float64 &Info, const char* Name); void Get_BF10 (float80 &Info, const char* Name); @@ -464,6 +465,7 @@ public : #define Info_B7(_INFO, _NAME) int64u _INFO; Get_B7 (_INFO, _NAME) #define Info_B8(_INFO, _NAME) int64u _INFO; Get_B8 (_INFO, _NAME) #define Info_B16(_INFO, _NAME) int128u _INFO; Get_B16 (_INFO, _NAME) + #define Info_BF2(_INFO, _NAME) float32 _INFO; Get_BF2 (_INFO, _NAME) #define Info_BF4(_INFO, _NAME) float32 _INFO; Get_BF4 (_INFO, _NAME) #define Info_BF8(_INFO, _NAME) float64 _INFO; Get_BF8 (_INFO, _NAME) #define Info_BF10(_INFO, _NAME) float80 _INFO; Get_BF10(_INFO, _NAME) @@ -982,7 +984,7 @@ public : #endif //SIZE_T_IS_LONG ZtringListList Fill_Temp; void Fill_Flush (); - size_t Fill_Parameter(stream_t StreamKind, generic StreamPos); + static size_t Fill_Parameter(stream_t StreamKind, generic StreamPos); const Ztring &Retrieve_Const (stream_t StreamKind, size_t StreamPos, size_t Parameter, info_t KindOfInfo=Info_Text); Ztring Retrieve (stream_t StreamKind, size_t StreamPos, size_t Parameter, info_t KindOfInfo=Info_Text); @@ -1042,6 +1044,8 @@ public : size_t Merge(File__Analyze &ToAdd, stream_t StreamKind, size_t StreamPos_From, size_t StreamPos_To, bool Erase=true); //Merge 2 streams void CodecID_Fill (const Ztring &Value, stream_t StreamKind, size_t StreamPos, infocodecid_format_t Format, stream_t StreamKind_CodecID=Stream_Max); + void PixelAspectRatio_Fill (const Ztring &Value, stream_t StreamKind, size_t StreamPos, size_t Parameter_Width, size_t Parameter_Height, size_t Parameter_PixelAspectRatio, size_t Parameter_DisplayAspectRatio); + void DisplayAspectRatio_Fill(const Ztring &Value, stream_t StreamKind, size_t StreamPos, size_t Parameter_Width, size_t Parameter_Height, size_t Parameter_PixelAspectRatio, size_t Parameter_DisplayAspectRatio); //*************************************************************************** // Finalize @@ -1306,11 +1310,14 @@ public : bool Seek_Duration_Detected; #endif //MEDIAINFO_SEEK - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE public: - bool Config_Ibi_Create; int64u Ibi_SynchronizationOffset_Current; int64u Ibi_SynchronizationOffset_BeginOfFrame; + #endif //MEDIAINFO_IBIUSAGE + #if MEDIAINFO_IBIUSAGE + public: + bool Config_Ibi_Create; ibi Ibi; //If Main only ibi::stream* IbiStream; //If sub only size_t Ibi_Read_Buffer_Seek (size_t Method, int64u Value, int64u ID); @@ -1318,13 +1325,13 @@ public : void Ibi_Stream_Finish (); void Ibi_Stream_Finish (int64u Numerator, int64u Denominator); //Partial void Ibi_Add (); - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE size_t Ibi_Read_Buffer_Seek (size_t, int64u, int64u) {return (size_t)-1;} void Ibi_Read_Buffer_Unsynched () {} void Ibi_Stream_Finish () {} void Ibi_Stream_Finish (int64u, int64u) {} void Ibi_Add () {} - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE }; //Helpers diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp index dc009cfc43d..e1434b27eaa 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp @@ -232,6 +232,44 @@ void File__Analyze::Get_B16(int128u &Info, const char* Name) Element_Offset+=16; } +//--------------------------------------------------------------------------- +// Big Endian - float 16 bits +// TODO: remove it when Linux version of ZenLib is updated +float32 BigEndian2float16corrected(const char* Liste) +{ + //sign 1 bit + //exponent 5 bit + //significand 10 bit + + //Retrieving data + int16u Integer=BigEndian2int16u(Liste); + + //Retrieving elements + bool Sign =(Integer&0x8000)?true:false; + int32u Exponent=(Integer>>10)&0xFF; + int32u Mantissa= Integer&0x03FF; + + //Some computing + if (Exponent==0 || Exponent==0xFF) + return 0; //These are denormalised numbers, NANs, and other horrible things + Exponent-=0x0F; //Bias + float64 Answer=(((float64)Mantissa)/8388608+1.0)*std::pow((float64)2, (int)Exponent); //(1+Mantissa) * 2^Exponent + if (Sign) + Answer=-Answer; + + return (float32)Answer; +} +inline float32 BigEndian2float16corrected (const int8u* List) {return BigEndian2float16corrected ((const char*)List);} + +//--------------------------------------------------------------------------- +void File__Analyze::Get_BF2(float32 &Info, const char* Name) +{ + INTEGRITY_SIZE_ATLEAST_INT(2); + Info=BigEndian2float16corrected(Buffer+Buffer_Offset+(size_t)Element_Offset); + if (Trace_Activated) Param(Name, Info); + Element_Offset+=2; +} + //--------------------------------------------------------------------------- void File__Analyze::Get_BF4(float32 &Info, const char* Name) { @@ -1471,8 +1509,8 @@ void File__Analyze::Get_VL_Prepare(vlc_fast &Vlc) if (Vlc.Vlc[Pos].bit_increment==255) break; Increment+=Vlc.Vlc[Pos].bit_increment; - size_t Value=Vlc.Vlc[Pos].value<<(Vlc.Size-Increment); - size_t ToFill_Size=1<<(Vlc.Size-Increment); + size_t Value=((size_t)Vlc.Vlc[Pos].value)<<(Vlc.Size-Increment); + size_t ToFill_Size=((size_t)1)<<(Vlc.Size-Increment); for (size_t ToFill_Pos=0; ToFill_Pos>10)&0xFF; + int32u Mantissa= Integer&0x03FF; + + //Some computing + if (Exponent==0 || Exponent==0xFF) + return 0; //These are denormalised numbers, NANs, and other horrible things + Exponent-=0x0F; //Bias + float64 Answer=(((float64)Mantissa)/8388608+1.0)*std::pow((float64)2, (int)Exponent); //(1+Mantissa) * 2^Exponent + if (Sign) + Answer=-Answer; + + return (float32)Answer; +} +inline float32 BigEndian2float16corrected (const int8u* List) {return BigEndian2float16corrected ((const char*)List);} + +//--------------------------------------------------------------------------- +void File__Analyze::Get_BF2_(float32 &Info) +{ + INTEGRITY_SIZE_ATLEAST_INT(4); + Info=BigEndian2float16corrected(Buffer+Buffer_Offset+(size_t)Element_Offset); + Element_Offset+=4; +} + //--------------------------------------------------------------------------- void File__Analyze::Get_BF4_(float32 &Info) { diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h index 57baace8991..36f28c88503 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h +++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h @@ -325,6 +325,7 @@ public : void Get_B7_ (int64u &Info); void Get_B8_ (int64u &Info); void Get_B16_ (int128u &Info); + void Get_BF2_ (float32 &Info); void Get_BF4_ (float32 &Info); void Get_BF8_ (float64 &Info); void Get_BF10_ (float80 &Info); @@ -338,6 +339,7 @@ public : #define Get_B7(Info, Name) Get_B7_(Info) #define Get_B8(Info, Name) Get_B8_(Info) #define Get_B16(Info, Name) Get_B16_(Info) + #define Get_BF2(Info, Name) Get_BF2_(Info) #define Get_BF4(Info, Name) Get_BF4_(Info) #define Get_BF8(Info, Name) Get_BF8_(Info) #define Get_BF10(Info, Name) Get_BF10_(Info) @@ -1006,7 +1008,7 @@ public : #endif //SIZE_T_IS_LONG ZtringListList Fill_Temp; void Fill_Flush (); - size_t Fill_Parameter(stream_t StreamKind, generic StreamPos); + static size_t Fill_Parameter(stream_t StreamKind, generic StreamPos); const Ztring &Retrieve_Const (stream_t StreamKind, size_t StreamPos, size_t Parameter, info_t KindOfInfo=Info_Text); Ztring Retrieve (stream_t StreamKind, size_t StreamPos, size_t Parameter, info_t KindOfInfo=Info_Text); @@ -1075,6 +1077,8 @@ public : size_t Merge(File__Analyze &ToAdd, stream_t StreamKind, size_t StreamPos_From, size_t StreamPos_To, bool Erase=true); //Merge 2 streams void CodecID_Fill (const Ztring &Value, stream_t StreamKind, size_t StreamPos, infocodecid_format_t Format, stream_t StreamKind_CodecID=Stream_Max); + void PixelAspectRatio_Fill (const Ztring &Value, stream_t StreamKind, size_t StreamPos, size_t Parameter_Width, size_t Parameter_Height, size_t Parameter_PixelAspectRatio, size_t Parameter_DisplayAspectRatio); + void DisplayAspectRatio_Fill(const Ztring &Value, stream_t StreamKind, size_t StreamPos, size_t Parameter_Width, size_t Parameter_Height, size_t Parameter_PixelAspectRatio, size_t Parameter_DisplayAspectRatio); //*************************************************************************** // Finalize @@ -1317,7 +1321,7 @@ public : bool Seek_Duration_Detected; #endif //MEDIAINFO_SEEK - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE public: bool Config_Ibi_Create; int64u Ibi_SynchronizationOffset_Current; @@ -1329,13 +1333,13 @@ public : void Ibi_Stream_Finish (); void Ibi_Stream_Finish (int64u Numerator, int64u Denominator); //Partial void Ibi_Add (); - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE size_t Ibi_Read_Buffer_Seek (size_t, int64u, int64u) {return (size_t)-1;} void Ibi_Read_Buffer_Unsynched () {} void Ibi_Stream_Finish () {} void Ibi_Stream_Finish (int64u, int64u) {} void Ibi_Add () {} - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE }; //Helpers diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams.cpp index 3a16563281f..3993fc17f8c 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams.cpp @@ -301,116 +301,28 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete if (StreamKind==Stream_Video && Parameter==Video_Colorimetry) Fill(Stream_Video, StreamPos, Video_ChromaSubsampling, Value, Replace); - if (StreamKind==Stream_Video && Parameter==Video_DisplayAspectRatio && !Value.empty() && Retrieve(Stream_Video, StreamPos, Video_PixelAspectRatio).empty()) - { - float DAR =Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio).To_float32(); - float Width =Retrieve(Stream_Video, StreamPos, Video_Width ).To_float32(); - float Height=Retrieve(Stream_Video, StreamPos, Video_Height ).To_float32(); - if (DAR && Height && Width) - { - if (Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio)==__T("1.778")) - DAR=((float)16)/9; //More exact value - if (Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio)==__T("1.333")) - DAR=((float)4)/3; //More exact value - Fill(Stream_Video, StreamPos, Video_PixelAspectRatio, DAR/(((float32)Width)/Height)); - } - } - - if (StreamKind==Stream_Video && Parameter==Video_PixelAspectRatio && !Value.empty() && Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio).empty()) - { - float32 PAR =Retrieve(Stream_Video, StreamPos, Video_PixelAspectRatio ).To_float32(); - if (PAR>(float32)12/(float32)11*0.999 && PAR<(float32)12/(float32)11*1.001) - PAR=(float32)12/(float32)11; - if (PAR>(float32)10/(float32)11*0.999 && PAR<(float32)10/(float32)11*1.001) - PAR=(float32)10/(float32)11; - if (PAR>(float32)16/(float32)11*0.999 && PAR<(float32)16/(float32)11*1.001) - PAR=(float32)16/(float32)11; - if (PAR>(float32)40/(float32)33*0.999 && PAR<(float32)40/(float32)33*1.001) - PAR=(float32)40/(float32)33; - if (PAR>(float32)24/(float32)11*0.999 && PAR<(float32)24/(float32)11*1.001) - PAR=(float32)24/(float32)11; - if (PAR>(float32)20/(float32)11*0.999 && PAR<(float32)20/(float32)11*1.001) - PAR=(float32)20/(float32)11; - if (PAR>(float32)32/(float32)11*0.999 && PAR<(float32)32/(float32)11*1.001) - PAR=(float32)32/(float32)11; - if (PAR>(float32)80/(float32)33*0.999 && PAR<(float32)80/(float32)33*1.001) - PAR=(float32)80/(float32)33; - if (PAR>(float32)18/(float32)11*0.999 && PAR<(float32)18/(float32)11*1.001) - PAR=(float32)18/(float32)11; - if (PAR>(float32)15/(float32)11*0.999 && PAR<(float32)15/(float32)11*1.001) - PAR=(float32)15/(float32)11; - if (PAR>(float32)64/(float32)33*0.999 && PAR<(float32)64/(float32)33*1.001) - PAR=(float32)64/(float32)33; - if (PAR>(float32)160/(float32)99*0.999 && PAR<(float32)160/(float32)99*1.001) - PAR=(float32)160/(float32)99; - if (PAR>(float32)4/(float32)3*0.999 && PAR<(float32)4/(float32)3*1.01) - PAR=(float32)4/(float32)3; - if (PAR>(float32)3/(float32)2*0.999 && PAR<(float32)3/(float32)2*1.001) - PAR=(float32)3/(float32)2; - if (PAR>(float32)2/(float32)1*0.999 && PAR<(float32)2/(float32)1*1.001) - PAR=(float32)2; - if (PAR>(float32)59/(float32)54*0.999 && PAR<(float32)59/(float32)54*1.001) - PAR=(float32)59/(float32)54; - float32 Width =Retrieve(Stream_Video, StreamPos, Video_Width ).To_float32(); - float32 Height=Retrieve(Stream_Video, StreamPos, Video_Height ).To_float32(); - if (PAR && Height && Width) - Fill(Stream_Video, StreamPos, Video_DisplayAspectRatio, ((float32)Width)/Height*PAR); - } - - if (StreamKind==Stream_Image && Parameter==Image_DisplayAspectRatio && !Value.empty() && Retrieve(Stream_Image, StreamPos, Image_PixelAspectRatio).empty()) - { - float DAR =Retrieve(Stream_Image, StreamPos, Image_DisplayAspectRatio).To_float32(); - float Width =Retrieve(Stream_Image, StreamPos, Image_Width ).To_float32(); - float Height=Retrieve(Stream_Image, StreamPos, Image_Height ).To_float32(); - if (DAR && Height && Width) - { - if (Retrieve(Stream_Image, StreamPos, Image_DisplayAspectRatio)==__T("1.778")) - DAR=((float)16)/9; //More exact value - if (Retrieve(Stream_Image, StreamPos, Image_DisplayAspectRatio)==__T("1.333")) - DAR=((float)4)/3; //More exact value - Fill(Stream_Image, StreamPos, Image_PixelAspectRatio, DAR/(((float32)Width)/Height)); - } - } - - if (StreamKind==Stream_Image && Parameter==Image_PixelAspectRatio && !Value.empty() && Retrieve(Stream_Image, StreamPos, Image_DisplayAspectRatio).empty()) + switch (StreamKind) { - float32 PAR =Retrieve(Stream_Image, StreamPos, Image_PixelAspectRatio ).To_float32(); - if (PAR>(float32)12/(float32)11*0.999 && PAR<(float32)12/(float32)11*1.001) - PAR=(float32)12/(float32)11; - if (PAR>(float32)10/(float32)11*0.999 && PAR<(float32)10/(float32)11*1.001) - PAR=(float32)10/(float32)11; - if (PAR>(float32)16/(float32)11*0.999 && PAR<(float32)16/(float32)11*1.001) - PAR=(float32)16/(float32)11; - if (PAR>(float32)40/(float32)33*0.999 && PAR<(float32)40/(float32)33*1.001) - PAR=(float32)40/(float32)33; - if (PAR>(float32)24/(float32)11*0.999 && PAR<(float32)24/(float32)11*1.001) - PAR=(float32)24/(float32)11; - if (PAR>(float32)20/(float32)11*0.999 && PAR<(float32)20/(float32)11*1.001) - PAR=(float32)20/(float32)11; - if (PAR>(float32)32/(float32)11*0.999 && PAR<(float32)32/(float32)11*1.001) - PAR=(float32)32/(float32)11; - if (PAR>(float32)80/(float32)33*0.999 && PAR<(float32)80/(float32)33*1.001) - PAR=(float32)80/(float32)33; - if (PAR>(float32)18/(float32)11*0.999 && PAR<(float32)18/(float32)11*1.001) - PAR=(float32)18/(float32)11; - if (PAR>(float32)15/(float32)11*0.999 && PAR<(float32)15/(float32)11*1.001) - PAR=(float32)15/(float32)11; - if (PAR>(float32)64/(float32)33*0.999 && PAR<(float32)64/(float32)33*1.001) - PAR=(float32)64/(float32)33; - if (PAR>(float32)160/(float32)99*0.999 && PAR<(float32)160/(float32)99*1.001) - PAR=(float32)160/(float32)99; - if (PAR>(float32)4/(float32)3*0.999 && PAR<(float32)4/(float32)3*1.01) - PAR=(float32)4/(float32)3; - if (PAR>(float32)3/(float32)2*0.999 && PAR<(float32)3/(float32)2*1.001) - PAR=(float32)3/(float32)2; - if (PAR>(float32)2/(float32)1*0.999 && PAR<(float32)2/(float32)1*1.001) - PAR=(float32)2; - if (PAR>(float32)59/(float32)54*0.999 && PAR<(float32)59/(float32)54*1.001) - PAR=(float32)59/(float32)54; - float32 Width =Retrieve(Stream_Image, StreamPos, Image_Width ).To_float32(); - float32 Height=Retrieve(Stream_Image, StreamPos, Image_Height ).To_float32(); - if (PAR && Height && Width) - Fill(Stream_Image, StreamPos, Image_DisplayAspectRatio, ((float32)Width)/Height*PAR); + case Stream_Video: + switch (Parameter) + { + case Video_DisplayAspectRatio: DisplayAspectRatio_Fill(Value, Stream_Video, StreamPos, Video_Width, Video_Height, Video_PixelAspectRatio, Video_DisplayAspectRatio); break; + case Video_PixelAspectRatio: PixelAspectRatio_Fill(Value, Stream_Video, StreamPos, Video_Width, Video_Height, Video_PixelAspectRatio, Video_DisplayAspectRatio); break; + case Video_DisplayAspectRatio_CleanAperture: DisplayAspectRatio_Fill(Value, Stream_Video, StreamPos, Video_Width_CleanAperture, Video_Height_CleanAperture, Video_PixelAspectRatio_CleanAperture, Video_DisplayAspectRatio_CleanAperture); break; + case Video_PixelAspectRatio_CleanAperture: PixelAspectRatio_Fill(Value, Stream_Video, StreamPos, Video_Width_CleanAperture, Video_Height_CleanAperture, Video_PixelAspectRatio_CleanAperture, Video_DisplayAspectRatio_CleanAperture); break; + case Video_DisplayAspectRatio_Original: DisplayAspectRatio_Fill(Value, Stream_Video, StreamPos, Video_Width_Original, Video_Height_Original, Video_PixelAspectRatio_Original, Video_DisplayAspectRatio_Original); break; + case Video_PixelAspectRatio_Original: PixelAspectRatio_Fill(Value, Stream_Video, StreamPos, Video_Width_Original, Video_Height_Original, Video_PixelAspectRatio_Original, Video_DisplayAspectRatio_Original); break; + } + break; + case Stream_Image: + switch (Parameter) + { + case Image_DisplayAspectRatio: DisplayAspectRatio_Fill(Value, Stream_Image, StreamPos, Image_Width, Image_Height, Image_PixelAspectRatio, Image_DisplayAspectRatio); break; + case Image_PixelAspectRatio: PixelAspectRatio_Fill(Value, Stream_Image, StreamPos, Image_Width, Image_Height, Image_PixelAspectRatio, Image_DisplayAspectRatio); break; + case Image_DisplayAspectRatio_Original: DisplayAspectRatio_Fill(Value, Stream_Image, StreamPos, Image_Width_Original, Image_Height_Original, Image_PixelAspectRatio_Original, Image_DisplayAspectRatio_Original); break; + case Image_PixelAspectRatio_Original: PixelAspectRatio_Fill(Value, Stream_Image, StreamPos, Image_Width_Original, Image_Height_Original, Image_PixelAspectRatio_Original, Image_DisplayAspectRatio_Original); break; + } + break; } //Commercial name @@ -528,8 +440,12 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete Clear(StreamKind, StreamPos, Fill_Parameter(StreamKind, Generic_CodecID_Description)); //BitRate from BitRate_Nominal - if (Parameter==Fill_Parameter(StreamKind, Generic_BitRate) - || Parameter==Fill_Parameter(StreamKind, Generic_BitRate_Nominal)) + if ((Parameter==Fill_Parameter(StreamKind, Generic_BitRate) + || Parameter==Fill_Parameter(StreamKind, Generic_BitRate_Nominal)) + #if MEDIAINFO_ADVANCED + && Config->File_MergeBitRateInfo_Get() + #endif //MEDIAINFO_ADVANCED + ) { float32 BitRate=Retrieve(StreamKind, StreamPos, "BitRate").To_float32(); float32 BitRate_Nominal=Retrieve(StreamKind, StreamPos, "BitRate_Nominal").To_float32(); @@ -542,8 +458,12 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete } //BitRate from BitRate_Maximum - if (Parameter==Fill_Parameter(StreamKind, Generic_BitRate) - || Parameter==Fill_Parameter(StreamKind, Generic_BitRate_Maximum)) + if ((Parameter==Fill_Parameter(StreamKind, Generic_BitRate) + || Parameter==Fill_Parameter(StreamKind, Generic_BitRate_Maximum)) + #if MEDIAINFO_ADVANCED + && Config->File_MergeBitRateInfo_Get() + #endif //MEDIAINFO_ADVANCED + ) { float32 BitRate=Retrieve(StreamKind, StreamPos, "BitRate").To_float32(); float32 BitRate_Maximum=Retrieve(StreamKind, StreamPos, "BitRate_Maximum").To_float32(); @@ -816,94 +736,6 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete Clear(Stream_Video, StreamPos, Video_FrameRate_Original); } - //Display Aspect Ratio and Pixel Aspect Ratio - if (StreamKind==Stream_Video && Parameter==Video_DisplayAspectRatio && !Value.empty()) - { - float F1=Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio).To_float32(); - Ztring C1; - if (F1>=(float)1.23 && F1<(float)1.27) C1=__T("5:4"); - else if (F1>=(float)1.30 && F1<(float)1.37) C1=__T("4:3"); - else if (F1>=(float)1.45 && F1<(float)1.55) C1=__T("3:2"); - else if (F1>=(float)1.55 && F1<(float)1.65) C1=__T("16:10"); - else if (F1>=(float)1.74 && F1<(float)1.82) C1=__T("16:9"); - else if (F1>=(float)1.82 && F1<(float)1.88) C1=__T("1.85:1"); - else if (F1>=(float)2.15 && F1<(float)2.22) C1=__T("2.2:1"); - else if (F1>=(float)2.23 && F1<(float)2.30) C1=__T("2.25:1"); - else if (F1>=(float)2.30 && F1<(float)2.37) C1=__T("2.35:1"); - else if (F1>=(float)2.37 && F1<(float)2.45) C1=__T("2.40:1"); - else C1.From_Number(F1); - C1.FindAndReplace(__T("."), MediaInfoLib::Config.Language_Get(__T(" Config_Text_FloatSeparator"))); - if (MediaInfoLib::Config.Language_Get(__T(" Language_ISO639"))==__T("fr") && C1.find(__T(":1"))==string::npos) - C1.FindAndReplace(__T(":"), __T("/")); - Fill(Stream_Video, StreamPos, Video_DisplayAspectRatio_String, C1, true); - } - - //Original Display Aspect Ratio and Original Pixel Aspect Ratio - if (StreamKind==Stream_Video && Parameter==Video_DisplayAspectRatio_Original) - { - float F1=Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio_Original).To_float32(); - Ztring C1; - if (F1>=(float)1.23 && F1<(float)1.27) C1=__T("5:4"); - else if (F1>=(float)1.30 && F1<(float)1.37) C1=__T("4:3"); - else if (F1>=(float)1.45 && F1<(float)1.55) C1=__T("3:2"); - else if (F1>=(float)1.55 && F1<(float)1.65) C1=__T("16:10"); - else if (F1>=(float)1.74 && F1<(float)1.82) C1=__T("16:9"); - else if (F1>=(float)1.82 && F1<(float)1.88) C1=__T("1.85:1"); - else if (F1>=(float)2.15 && F1<(float)2.22) C1=__T("2.2:1"); - else if (F1>=(float)2.23 && F1<(float)2.30) C1=__T("2.25:1"); - else if (F1>=(float)2.30 && F1<(float)2.37) C1=__T("2.35:1"); - else if (F1>=(float)2.37 && F1<(float)2.45) C1=__T("2.40:1"); - else C1.From_Number(F1); - C1.FindAndReplace(__T("."), MediaInfoLib::Config.Language_Get(__T(" Config_Text_FloatSeparator"))); - if (MediaInfoLib::Config.Language_Get(__T(" Language_ISO639"))==__T("fr") && C1.find(__T(":1"))==string::npos) - C1.FindAndReplace(__T(":"), __T("/")); - Fill(Stream_Video, StreamPos, Video_DisplayAspectRatio_Original_String, C1, true); - } - - //Display Aspect Ratio and Pixel Aspect Ratio - if (StreamKind==Stream_Image && Parameter==Image_DisplayAspectRatio && !Value.empty()) - { - float F1=Retrieve(Stream_Image, StreamPos, Image_DisplayAspectRatio).To_float32(); - Ztring C1; - if (F1>=(float)1.23 && F1<(float)1.27) C1=__T("5:4"); - else if (F1>=(float)1.30 && F1<(float)1.37) C1=__T("4:3"); - else if (F1>=(float)1.45 && F1<(float)1.55) C1=__T("3:2"); - else if (F1>=(float)1.55 && F1<(float)1.65) C1=__T("16:10"); - else if (F1>=(float)1.74 && F1<(float)1.82) C1=__T("16:9"); - else if (F1>=(float)1.82 && F1<(float)1.88) C1=__T("1.85:1"); - else if (F1>=(float)2.15 && F1<(float)2.22) C1=__T("2.2:1"); - else if (F1>=(float)2.23 && F1<(float)2.30) C1=__T("2.25:1"); - else if (F1>=(float)2.30 && F1<(float)2.37) C1=__T("2.35:1"); - else if (F1>=(float)2.37 && F1<(float)2.45) C1=__T("2.40:1"); - else C1.From_Number(F1); - C1.FindAndReplace(__T("."), MediaInfoLib::Config.Language_Get(__T(" Config_Text_FloatSeparator"))); - if (MediaInfoLib::Config.Language_Get(__T(" Language_ISO639"))==__T("fr") && C1.find(__T(":1"))==string::npos) - C1.FindAndReplace(__T(":"), __T("/")); - Fill(Stream_Image, StreamPos, Image_DisplayAspectRatio_String, C1, true); - } - - //Original Display Aspect Ratio and Original Pixel Aspect Ratio - if (StreamKind==Stream_Image && Parameter==Image_DisplayAspectRatio_Original) - { - float F1=Retrieve(Stream_Image, StreamPos, Image_DisplayAspectRatio_Original).To_float32(); - Ztring C1; - if (F1>=(float)1.23 && F1<(float)1.27) C1=__T("5:4"); - else if (F1>=(float)1.30 && F1<(float)1.37) C1=__T("4:3"); - else if (F1>=(float)1.45 && F1<(float)1.55) C1=__T("3:2"); - else if (F1>=(float)1.55 && F1<(float)1.65) C1=__T("16:10"); - else if (F1>=(float)1.74 && F1<(float)1.82) C1=__T("16:9"); - else if (F1>=(float)1.82 && F1<(float)1.88) C1=__T("1.85:1"); - else if (F1>=(float)2.15 && F1<(float)2.22) C1=__T("2.2:1"); - else if (F1>=(float)2.23 && F1<(float)2.30) C1=__T("2.25:1"); - else if (F1>=(float)2.30 && F1<(float)2.37) C1=__T("2.35:1"); - else if (F1>=(float)2.37 && F1<(float)2.45) C1=__T("2.40:1"); - else C1.From_Number(F1); - C1.FindAndReplace(__T("."), MediaInfoLib::Config.Language_Get(__T(" Config_Text_FloatSeparator"))); - if (MediaInfoLib::Config.Language_Get(__T(" Language_ISO639"))==__T("fr") && C1.find(__T(":1"))==string::npos) - C1.FindAndReplace(__T(":"), __T("/")); - Fill(Stream_Image, StreamPos, Image_DisplayAspectRatio_Original_String, C1, true); - } - //Bits/(Pixel*Frame) if (StreamKind==Stream_Video && (Parameter==Video_BitRate || Parameter==Video_BitRate_Nominal || Parameter==Video_Width || Parameter==Video_Height || Parameter==Video_FrameRate)) { @@ -2237,6 +2069,96 @@ void File__Analyze::CodecID_Fill(const Ztring &Value, stream_t StreamKind, size_ Fill(Stream_Video, StreamPos, Video_BitDepth, 10); } +//--------------------------------------------------------------------------- +void File__Analyze::PixelAspectRatio_Fill(const Ztring &Value, stream_t StreamKind, size_t StreamPos, size_t Parameter_Width, size_t Parameter_Height, size_t Parameter_PixelAspectRatio, size_t Parameter_DisplayAspectRatio) +{ + if (Value.empty() || !Retrieve(StreamKind, StreamPos, Parameter_DisplayAspectRatio).empty()) + return; + + if (Retrieve(StreamKind, StreamPos, Parameter_DisplayAspectRatio).empty()) + { + float32 PAR=Value.To_float32(); + if (PAR>(float32)12/(float32)11*0.999 && PAR<(float32)12/(float32)11*1.001) + PAR=(float32)12/(float32)11; + if (PAR>(float32)10/(float32)11*0.999 && PAR<(float32)10/(float32)11*1.001) + PAR=(float32)10/(float32)11; + if (PAR>(float32)16/(float32)11*0.999 && PAR<(float32)16/(float32)11*1.001) + PAR=(float32)16/(float32)11; + if (PAR>(float32)40/(float32)33*0.999 && PAR<(float32)40/(float32)33*1.001) + PAR=(float32)40/(float32)33; + if (PAR>(float32)24/(float32)11*0.999 && PAR<(float32)24/(float32)11*1.001) + PAR=(float32)24/(float32)11; + if (PAR>(float32)20/(float32)11*0.999 && PAR<(float32)20/(float32)11*1.001) + PAR=(float32)20/(float32)11; + if (PAR>(float32)32/(float32)11*0.999 && PAR<(float32)32/(float32)11*1.001) + PAR=(float32)32/(float32)11; + if (PAR>(float32)80/(float32)33*0.999 && PAR<(float32)80/(float32)33*1.001) + PAR=(float32)80/(float32)33; + if (PAR>(float32)18/(float32)11*0.999 && PAR<(float32)18/(float32)11*1.001) + PAR=(float32)18/(float32)11; + if (PAR>(float32)15/(float32)11*0.999 && PAR<(float32)15/(float32)11*1.001) + PAR=(float32)15/(float32)11; + if (PAR>(float32)64/(float32)33*0.999 && PAR<(float32)64/(float32)33*1.001) + PAR=(float32)64/(float32)33; + if (PAR>(float32)160/(float32)99*0.999 && PAR<(float32)160/(float32)99*1.001) + PAR=(float32)160/(float32)99; + if (PAR>(float32)4/(float32)3*0.999 && PAR<(float32)4/(float32)3*1.01) + PAR=(float32)4/(float32)3; + if (PAR>(float32)3/(float32)2*0.999 && PAR<(float32)3/(float32)2*1.001) + PAR=(float32)3/(float32)2; + if (PAR>(float32)2/(float32)1*0.999 && PAR<(float32)2/(float32)1*1.001) + PAR=(float32)2; + if (PAR>(float32)59/(float32)54*0.999 && PAR<(float32)59/(float32)54*1.001) + PAR=(float32)59/(float32)54; + float32 Width =Retrieve(StreamKind, StreamPos, Parameter_Width ).To_float32(); + float32 Height=Retrieve(StreamKind, StreamPos, Parameter_Height ).To_float32(); + if (PAR && Height && Width) + Fill(StreamKind, StreamPos, Parameter_DisplayAspectRatio, ((float32)Width)/Height*PAR); + } +} + +//--------------------------------------------------------------------------- +void File__Analyze::DisplayAspectRatio_Fill(const Ztring &Value, stream_t StreamKind, size_t StreamPos, size_t Parameter_Width, size_t Parameter_Height, size_t Parameter_PixelAspectRatio, size_t Parameter_DisplayAspectRatio) +{ + if (Value.empty()) + return; + + float DAR=Value.To_float32(); + + if (Retrieve(StreamKind, StreamPos, Parameter_PixelAspectRatio).empty()) + { + float Width =Retrieve(StreamKind, StreamPos, Parameter_Width).To_float32(); + float Height=Retrieve(StreamKind, StreamPos, Parameter_Height).To_float32(); + if (DAR && Height && Width) + { + if (Value==__T("1.778")) + DAR=((float)16)/9; //More exact value + if (Value==__T("1.333")) + DAR=((float)4)/3; //More exact value + Fill(StreamKind, StreamPos, Parameter_PixelAspectRatio, DAR/(((float32)Width)/Height)); + } + } + + // /String version + Ztring DARS; + if (DAR>=(float)1.23 && DAR<(float)1.27) DARS=__T("5:4"); + else if (DAR>=(float)1.30 && DAR<(float)1.37) DARS=__T("4:3"); + else if (DAR>=(float)1.45 && DAR<(float)1.55) DARS=__T("3:2"); + else if (DAR>=(float)1.55 && DAR<(float)1.65) DARS=__T("16:10"); + else if (DAR>=(float)1.65 && DAR<(float)1.70) DARS=__T("5:3"); + else if (DAR>=(float)1.74 && DAR<(float)1.82) DARS=__T("16:9"); + else if (DAR>=(float)1.82 && DAR<(float)1.88) DARS=__T("1.85:1"); + else if (DAR>=(float)2.15 && DAR<(float)2.22) DARS=__T("2.2:1"); + else if (DAR>=(float)2.23 && DAR<(float)2.30) DARS=__T("2.25:1"); + else if (DAR>=(float)2.30 && DAR<(float)2.37) DARS=__T("2.35:1"); + else if (DAR>=(float)2.37 && DAR<(float)2.45) DARS=__T("2.40:1"); + else DARS.From_Number(DAR); + DARS.FindAndReplace(__T("."), MediaInfoLib::Config.Language_Get(__T(" Config_Text_FloatSeparator"))); + if (MediaInfoLib::Config.Language_Get(__T(" Language_ISO639"))==__T("fr") && DARS.find(__T(":1"))==string::npos) + DARS.FindAndReplace(__T(":"), __T("/")); + Fill(StreamKind, StreamPos, Parameter_DisplayAspectRatio+1, DARS, true); +} + //--------------------------------------------------------------------------- size_t File__Analyze::Fill_Parameter(stream_t StreamKind, generic StreamPos) { diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp index ad2deb5d109..bb4d2aa8ea3 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp @@ -60,7 +60,7 @@ void File__Analyze::Streams_Finish_Global() Fill(Stream_Video, 0, Video_FrameCount, Frame_Count_NotParsedIncluded); else if (Config->File_Names.size()>1) Fill(Stream_Video, 0, Video_FrameCount, Config->File_Names.size()); - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE else { //External IBI @@ -83,7 +83,7 @@ void File__Analyze::Streams_Finish_Global() if (IbiStream && !IbiStream->Infos.empty() && IbiStream->Infos[IbiStream->Infos.size()-1].IsContinuous && IbiStream->Infos[IbiStream->Infos.size()-1].FrameNumber!=(int64u)-1) Fill(Stream_Video, 0, Video_FrameCount, IbiStream->Infos[IbiStream->Infos.size()-1].FrameNumber); } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } Streams_Finish_StreamOnly(); @@ -110,6 +110,7 @@ void File__Analyze::TestContinuousFileNames(size_t CountOfFiles, Ztring FileExte return; //Trying to detect continuous file names (e.g. video stream as an image or HLS) + size_t Pos_Base = (size_t)-1; bool AlreadyPresent=Config->File_Names.size()==1?true:false; FileName FileToTest(Config->File_Names.Read(Config->File_Names.size()-1)); Ztring FileToTest_Name=FileToTest.Name_Get(); @@ -144,10 +145,35 @@ void File__Analyze::TestContinuousFileNames(size_t CountOfFiles, Ztring FileExte //Detecting with a smarter algo (but missing frames are not detected) Ztring FileToTest_Name_Begin=FileToTest.Path_Get()+PathSeparator+FileToTest_Name; Ztring FileToTest_Name_End=FileToTest_Name_After+__T('.')+(FileExtension.empty()?FileToTest.Extension_Get():FileExtension); - size_t Pos_Base = (size_t)Pos; + Pos_Base = (size_t)Pos; size_t Pos_Add_Max = 1; #if MEDIAINFO_ADVANCED bool File_IgnoreSequenceFileSize=Config->File_IgnoreSequenceFilesCount_Get(); //TODO: double check if it is expected + + size_t SequenceFileSkipFrames=Config->File_SequenceFilesSkipFrames_Get(); + if (SequenceFileSkipFrames) + { + for (;;) + { + size_t Pos_Add_Max_Old=Pos_Add_Max; + for (size_t TempPos=Pos_Add_Max; TempPos<=Pos_Add_Max+SequenceFileSkipFrames; TempPos++) + { + Ztring Pos_Ztring; Pos_Ztring.From_Number(Pos_Base+TempPos); + if (Numbers_Size>Pos_Ztring.size()) + Pos_Ztring.insert(0, Numbers_Size-Pos_Ztring.size(), __T('0')); + Ztring Next=FileToTest_Name_Begin+Pos_Ztring+FileToTest_Name_End; + if (File::Exists(Next)) + { + Pos_Add_Max=TempPos+1; + break; + } + } + if (Pos_Add_Max==Pos_Add_Max_Old) + break; + } + } + else + { #endif //MEDIAINFO_ADVANCED for (;;) { @@ -177,6 +203,10 @@ void File__Analyze::TestContinuousFileNames(size_t CountOfFiles, Ztring FileExte Pos_Add_Max=Pos_Add_Middle; } + #if MEDIAINFO_ADVANCED + } //SequenceFileSkipFrames + #endif //MEDIAINFO_ADVANCED + size_t Pos_Max = Pos_Base + Pos_Add_Max; Config->File_Names.reserve(Pos_Add_Max); for (Pos=Pos_Base+1; PosFile_Names.size()==Pos) return; + Config->File_IsImageSequence=true; + Frame_Count_NotParsedIncluded=Pos_Base; + #if MEDIAINFO_DEMUX + float64 Demux_Rate=Config->Demux_Rate_Get(); + if (!Demux_Rate) + Demux_Rate=24; + Fill(Stream_Video, 0, Video_Delay, float64_int64s(Frame_Count_NotParsedIncluded*1000/Demux_Rate)); + #endif //MEDIAINFO_DEMUX + #if MEDIAINFO_ADVANCED if (!Config->File_IgnoreSequenceFileSize_Get() || Config->File_Names.size()<=1) #endif //MEDIAINFO_ADVANCED @@ -952,19 +991,65 @@ void File__Analyze::Streams_Finish_HumanReadable_PerStream(stream_t StreamKind, Fill(StreamKind, StreamPos, StreamKind==Stream_General?"OverallBitRate_Mode/String":"BitRate_Mode/String", Translated.find(__T("BitRate_Mode_"))?Translated:Value); } + //Encoded_Application + if (( ParameterName==__T("Encoded_Application") + || ParameterName==__T("Encoded_Application_CompanyName") + || ParameterName==__T("Encoded_Application_Name") + || ParameterName==__T("Encoded_Application_Version") + || ParameterName==__T("Encoded_Application_Date")) + && Retrieve(StreamKind, StreamPos, "Encoded_Application/String").empty()) + { + Ztring CompanyName=Retrieve(StreamKind, StreamPos, "Encoded_Application_CompanyName"); + Ztring Name=Retrieve(StreamKind, StreamPos, "Encoded_Application_Name"); + Ztring Version=Retrieve(StreamKind, StreamPos, "Encoded_Application_Version"); + Ztring Date=Retrieve(StreamKind, StreamPos, "Encoded_Application_Date"); + if (!Name.empty()) + { + Ztring String; + if (!CompanyName.empty()) + { + String+=CompanyName; + String+=__T(" "); + } + String+=Name; + if (!Version.empty()) + { + String+=__T(" "); + String+=Version; + } + if (!Date.empty()) + { + String+=__T(" ("); + String+=Date; + String+=__T(")"); + } + Fill(StreamKind, StreamPos, "Encoded_Application/String", String, true); + } + else + Fill(StreamKind, StreamPos, "Encoded_Application/String", Retrieve(StreamKind, StreamPos, "Encoded_Application"), true); + } + //Encoded_Library - if ((ParameterName==__T("Encoded_Library") - || ParameterName==__T("Encoded_Library/Name") - || ParameterName==__T("Encoded_Library/Version") - || ParameterName==__T("Encoded_Library/Date")) + if (( ParameterName==__T("Encoded_Library") + || ParameterName==__T("Encoded_Library_CompanyName") + || ParameterName==__T("Encoded_Library_Name") + || ParameterName==__T("Encoded_Library_Version") + || ParameterName==__T("Encoded_Library_Date")) && Retrieve(StreamKind, StreamPos, "Encoded_Library/String").empty()) { - Ztring Name=Retrieve(StreamKind, StreamPos, "Encoded_Library/Name"); - Ztring Version=Retrieve(StreamKind, StreamPos, "Encoded_Library/Version"); - Ztring Date=Retrieve(StreamKind, StreamPos, "Encoded_Library/Date"); + Ztring CompanyName=Retrieve(StreamKind, StreamPos, "Encoded_Library_CompanyName"); + Ztring Name=Retrieve(StreamKind, StreamPos, "Encoded_Library_Name"); + Ztring Version=Retrieve(StreamKind, StreamPos, "Encoded_Library_Version"); + Ztring Date=Retrieve(StreamKind, StreamPos, "Encoded_Library_Date"); if (!Name.empty()) { - Ztring String=Name; + Ztring String; + if (!CompanyName.empty()) + { + String+=CompanyName; + String+=__T(" "); + } + String+=Name; if (!Version.empty()) { String+=__T(" "); diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Base.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Base.cpp index 62d640b9dd8..f3adb2b0261 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/File__Base.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/File__Base.cpp @@ -132,7 +132,7 @@ size_t File__Base::Count_Get (stream_t StreamKind, size_t Pos) const const Ztring &File__Base::Get (stream_t StreamKind, size_t StreamNumber, size_t Parameter, info_t KindOfInfo) { //Check integrity - if (StreamKind>=Stream_Max || StreamNumber>=(*Stream)[StreamKind].size() || Parameter>=MediaInfoLib::Config.Info_Get(StreamKind).size()+(*Stream_More)[StreamKind][StreamNumber].size() || KindOfInfo>=Info_Max) + if (StreamKind>=Stream_Max || StreamNumber>=(*Stream)[StreamKind].size() || Parameter>=MediaInfoLib::Config.Info_Get(StreamKind).size()+(StreamNumber>=(*Stream_More)[StreamKind].size()?0:(*Stream_More)[StreamKind][StreamNumber].size()) || KindOfInfo>=Info_Max) return MediaInfoLib::Config.EmptyString_Get(); //Parameter is unknown else if (Parameter +using namespace std; +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +//--------------------------------------------------------------------------- +const char* Bpg_ColorSpace(int8u ColorSpace) +{ + switch (ColorSpace) + { + case 0: + case 3: + case 4: return "YUV"; + case 1: return "RGB"; + case 2: return "YCgCo"; + default: return ""; + } +}; + +//--------------------------------------------------------------------------- +const char* Bpg_colour_primaries(int8u ColorSpace) +{ + switch (ColorSpace) + { + case 0: return "BT.601"; + case 3: return "BT.701"; + case 4: return "BT.2020"; + default: return ""; + } +}; + +//--------------------------------------------------------------------------- +const char* Bpg_Pixel_format(int8u PixelFormat) +{ + switch (PixelFormat) + { + case 0 : return "Grayscale"; + case 1 : + case 4 : return "4:2:0"; + case 2 : + case 5 : return "4:2:2"; + case 3 : return "4:4:4"; + default: return ""; + } + +}; + +//*************************************************************************** +// Static stuff +//*************************************************************************** + +//--------------------------------------------------------------------------- +bool File_Bpg::FileHeader_Begin() +{ + //Element_Size + if (Buffer_Size<4) + return false; //Must wait for more data + + if (CC4(Buffer) != 0x425047FB) //"BPG" + { + Reject("BPG"); + return false; + } + + //All should be OK... + return true; +} + +//*************************************************************************** +// Buffer - Global +//*************************************************************************** + +//--------------------------------------------------------------------------- +void File_Bpg::Read_Buffer_Continue() +{ + //Parsing + Ztring Version; + int64u Width, Height; + int8u pixelformat, BitsDepth, ColorSpace; + bool Alpha1_flag, Alpha2_flag, ReservedZeros, limited_range_flag, ExtensionPresentFlag; + Element_Begin1("File header"); + Skip_C4( "Magic"); // File Magic + BS_Begin(); + Get_S1 (3, pixelformat, "pixel_format"); Param_Info1(Bpg_Pixel_format(pixelformat)); + Get_SB (Alpha1_flag, "Alpha1 Present Flag"); + Get_S1 (4, BitsDepth, "bit_depth_minus_8"); + + Get_S1(4, ColorSpace, "color_space"); Param_Info1(Bpg_ColorSpace(ColorSpace)); Param_Info1(Bpg_colour_primaries(ColorSpace)); + Get_SB (ExtensionPresentFlag, "Extension Present Flag"); + Get_SB (Alpha2_flag, "Alpha2 Present Flag"); + Get_SB (limited_range_flag, "limited_range_flag"); + Get_SB (ReservedZeros, "Reserved"); + BS_End(); + + Get_VS(Width, "Picture Width"); + Get_VS(Height, "Picture Height"); + + + Element_End0(); + + FILLING_BEGIN(); + Accept("BPG"); + + Stream_Prepare(Stream_Image); + Fill(Stream_Image, 0, Image_Width, Width); + Fill(Stream_Image, 0, Image_Height, Height); + Fill(Stream_Image, 0, Image_Format, __T("BPG")); + Fill(Stream_Image, 0, Image_ChromaSubsampling, Bpg_Pixel_format(pixelformat)); + Fill(Stream_Image, 0, Image_ColorSpace, Bpg_ColorSpace(ColorSpace)); + Fill(Stream_Image, 0, Image_colour_primaries, Bpg_colour_primaries(ColorSpace)); + Fill(Stream_Image, 0, Image_BitDepth, BitsDepth + 8); + Fill(Stream_Image, 0, Image_Codec, __T("BPG")); + FILLING_END(); + + Finish("BPG"); +} + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.h b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.h new file mode 100644 index 00000000000..5eec138aeaf --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.h @@ -0,0 +1,41 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// +// Information about BPG files +// +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +//--------------------------------------------------------------------------- +#ifndef MediaInfo_File_BpgH +#define MediaInfo_File_BpgH +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/File__Analyze.h" +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +//*************************************************************************** +// Class File_Bpg +//*************************************************************************** + +class File_Bpg : public File__Analyze +{ +protected : + //Buffer - File header + bool FileHeader_Begin(); + + //Buffer - Global + void Read_Buffer_Continue (); +}; + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dds.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dds.cpp index 67e8969388e..f257fdce6e5 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dds.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dds.cpp @@ -78,9 +78,6 @@ void File_Dds::Streams_Accept() } else Stream_Prepare(StreamKind_Last); - - //Configuration - Frame_Count_NotParsedIncluded=0; } //*************************************************************************** diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.cpp index 554958b1df0..6b9b66b8406 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.cpp @@ -284,9 +284,6 @@ File_Dpx::File_Dpx() //--------------------------------------------------------------------------- void File_Dpx::Streams_Accept() { - Fill(Stream_General, 0, General_Format, "DPX"); - Fill(Stream_General, 0, General_Format_Version, Version==1?"Version 1":"Version 2"); - if (!IsSub) { TestContinuousFileNames(); @@ -302,7 +299,6 @@ void File_Dpx::Streams_Accept() //Configuration Buffer_MaximumSize=64*1024*1024; //Some big frames are possible (e.g YUV 4:2:2 10 bits 1080p) - Frame_Count_NotParsedIncluded=0; } //*************************************************************************** @@ -319,10 +315,10 @@ bool File_Dpx::FileHeader_Begin() int32u Magic=CC4(Buffer); switch (Magic) { - case 0x802A5FD7 : // (v1 Big) - case 0xD75F2A80 : // (v1 Little) - case 0x53445058 : //"SPDX" (v2 Big) - case 0x58504453 : //"XDPS" (v2 Little) + case 0x802A5FD7 : // (Cineon Big) + case 0xD75F2A80 : // (Cineon Little) + case 0x53445058 : //"SPDX" (Dpx Big) + case 0x58504453 : //"XDPS" (Dpx Little) break; default : Reject(); @@ -335,24 +331,24 @@ bool File_Dpx::FileHeader_Begin() Sizes_Pos=Pos_GenericSection; switch (Magic) { - case 0x802A5FD7 : // (v1 Big) - case 0xD75F2A80 : // (v1 Little) - Version=1; + case 0x802A5FD7 : // (Cineon Big) + case 0xD75F2A80 : // (Cineon Little) + IsDpx=false; break; - case 0x58504453 : //"XDPS" (v2 Little) - case 0x53445058 : //"SPDX" (v2 Big) - Version=2; + case 0x58504453 : //"XDPS" (Dpx Little) + case 0x53445058 : //"SPDX" (Dpx Big) + IsDpx=true; break; default : ; } switch (Magic) { - case 0xD75F2A80 : // (v1 Little) - case 0x58504453 : //"XDPS" (v2 Little) + case 0xD75F2A80 : // (Cineon Little) + case 0x58504453 : //"XDPS" (Dpx Little) LittleEndian=true; break; - case 0x802A5FD7 : // (v1 Big) - case 0x53445058 : //"SPDX" (v2 Big) + case 0x802A5FD7 : // (Cineon Big) + case 0x53445058 : //"SPDX" (Dpx Big) LittleEndian=false; break; default : ; @@ -392,13 +388,13 @@ void File_Dpx::Header_Parse() //--------------------------------------------------------------------------- void File_Dpx::Data_Parse() { - if (Version==1) + if (!IsDpx) // Is Cineon { switch (Element_Code) { - case Pos_GenericSection : GenericSectionHeader_v1(); break; - case Pos_IndustrySpecific : IndustrySpecificHeader_v1(); break; - case Pos_UserDefined : UserDefinedHeader_v1(); break; + case Pos_GenericSection : GenericSectionHeader_Cineon(); break; + case Pos_IndustrySpecific : IndustrySpecificHeader_Cineon(); break; + case Pos_UserDefined : UserDefinedHeader_Cineon(); break; case Pos_Padding : Padding(); break; case Pos_ImageData : ImageData(); break; default : ; @@ -408,9 +404,9 @@ void File_Dpx::Data_Parse() { switch (Element_Code) { - case Pos_GenericSection : GenericSectionHeader_v2(); break; - case Pos_IndustrySpecific : IndustrySpecificHeader_v2(); break; - case Pos_UserDefined : UserDefinedHeader_v2(); break; + case Pos_GenericSection : GenericSectionHeader_Dpx(); break; + case Pos_IndustrySpecific : IndustrySpecificHeader_Dpx(); break; + case Pos_UserDefined : UserDefinedHeader_Dpx(); break; case Pos_Padding : Padding(); break; case Pos_ImageData : ImageData(); break; default : ; @@ -437,13 +433,14 @@ void File_Dpx::Data_Parse() //*************************************************************************** //--------------------------------------------------------------------------- -void File_Dpx::GenericSectionHeader_v1() +void File_Dpx::GenericSectionHeader_Cineon() { Element_Name("Generic section header"); //Parsing Element_Begin1("File information"); Ztring CreationDate, CreationTime; + string Version; int32u Size_Header, Size_Total, Size_Generic, Size_Industry, Size_User; Skip_B4( "Magic number"); Get_X4 (Size_Header, "Offset to image data"); @@ -451,7 +448,7 @@ void File_Dpx::GenericSectionHeader_v1() Get_X4 (Size_Industry, "Industry specific header length"); Get_X4 (Size_User, "User-defined header length"); Get_X4 (Size_Total, "Total image file size"); - Skip_String(8, "Version number of header format"); + Get_String(8, Version, "Version number of header format"); Skip_UTF8 (100, "FileName"); Get_UTF8 (12, CreationDate, "Creation Date"); Get_UTF8 (12, CreationTime, "Creation Time"); @@ -466,17 +463,17 @@ void File_Dpx::GenericSectionHeader_v1() if (ImageElements>8) ImageElements=8; for(int8u ImageElement=0; ImageElement2 && Version[0]=='V' && Version[1]>='0' && Version[2]<='9') + Version.insert(1, "ersion "); + Fill(StreamKind_Last, StreamPos_Last, "Format_Version", Version); + Fill(Stream_General, 0, General_Format_Version, Version); } FILLING_END(); } //--------------------------------------------------------------------------- -void File_Dpx::GenericSectionHeader_v1_ImageElement() +void File_Dpx::GenericSectionHeader_Cineon_ImageElement() { Element_Begin1("image element"); int32u Width, Height; @@ -542,17 +544,15 @@ void File_Dpx::GenericSectionHeader_v1_ImageElement() Skip_B1( "Unused"); Get_X4 (Width, "Pixels per line"); Get_X4 (Height, "Lines per image element"); - Skip_BFP4(9, "Minimum data value"); - Skip_BFP4(9, "Minimum quantity represented"); - Skip_BFP4(9, "Maximum data value"); - Skip_BFP4(9, "Maximum quantity represented"); + Skip_BF4( "Minimum data value"); + Skip_BF4( "Minimum quantity represented"); + Skip_BF4( "Maximum data value"); + Skip_BF4( "Maximum quantity represented"); Element_End0(); FILLING_BEGIN(); if (Frame_Count==0) { - Fill(StreamKind_Last, StreamPos_Last, "Format", "DPX"); - Fill(StreamKind_Last, StreamPos_Last, "Format_Version", "Version 1"); Fill(StreamKind_Last, StreamPos_Last, "Width", Width); Fill(StreamKind_Last, StreamPos_Last, "Height", Height); } @@ -560,17 +560,17 @@ void File_Dpx::GenericSectionHeader_v1_ImageElement() } //--------------------------------------------------------------------------- -void File_Dpx::GenericSectionHeader_v2() +void File_Dpx::GenericSectionHeader_Dpx() { Element_Name("Generic section header"); //Parsing Element_Begin1("File information"); - std::string CreationDate, Creator, Project, Copyright; + std::string Version, CreationDate, Creator, Project, Copyright; int32u Size_Header, Size_Total, Size_Generic, Size_Industry, Size_User; Skip_String(4, "Magic number"); Get_X4 (Size_Header, "Offset to image data"); - Skip_String(8, "Version number of header format"); + Get_String(8, Version, "Version number of header format"); Get_X4 (Size_Total, "Total image file size"); Skip_B4( "Ditto Key"); Get_X4 (Size_Generic, "Generic section header length"); @@ -595,7 +595,7 @@ void File_Dpx::GenericSectionHeader_v2() Get_X4 (Width, "Pixels per line"); Get_X4 (Height, "Lines per image element"); for(int16u ImageElement=0; ImageElement2 && Version[0]=='V' && Version[1]>='0' && Version[2]<='9') + Version.insert(1, "ersion "); + Fill(StreamKind_Last, StreamPos_Last, "Format_Version", Version); + Fill(Stream_General, 0, General_Format_Version, Version); Fill(StreamKind_Last, StreamPos_Last, "Width", Width); Fill(StreamKind_Last, StreamPos_Last, "Height", Height); @@ -671,15 +676,15 @@ void File_Dpx::GenericSectionHeader_v2() } //--------------------------------------------------------------------------- -void File_Dpx::GenericSectionHeader_v2_ImageElement() +void File_Dpx::GenericSectionHeader_Dpx_ImageElement() { Element_Begin1("image element"); int8u TransferCharacteristic, ColorimetricSpecification, BitDephs; Info_B4(DataSign, "Data sign");Param_Info1((DataSign==0?"unsigned":"signed")); Skip_B4( "Reference low data code value"); - Skip_BFP4(9, "Reference low quantity represented"); + Skip_BF4( "Reference low quantity represented"); Skip_B4( "Reference high data code value"); - Skip_BFP4(9, "Reference high quantity represented"); + Skip_BF4( "Reference high quantity represented"); Info_B1(Descriptor, "Descriptor");Param_Info1(DPX_Descriptors(Descriptor)); Get_B1 (TransferCharacteristic, "Transfer characteristic");Param_Info1(DPX_TransferCharacteristic(TransferCharacteristic)); Get_B1 (ColorimetricSpecification, "Colorimetric specification");Param_Info1(DPX_ColorimetricSpecification(ColorimetricSpecification)); @@ -695,8 +700,6 @@ void File_Dpx::GenericSectionHeader_v2_ImageElement() FILLING_BEGIN(); if (Frame_Count==0) { - Fill(StreamKind_Last, StreamPos_Last, "Format", "DPX"); - Fill(StreamKind_Last, StreamPos_Last, "Format_Version", "Version 2"); Fill(StreamKind_Last, StreamPos_Last, "BitDepth", BitDephs); Fill(StreamKind_Last, StreamPos_Last, "colour_description_present", "Yes"); Fill(StreamKind_Last, StreamPos_Last, "colour_primaries", DPX_TransferCharacteristic(TransferCharacteristic)); @@ -706,7 +709,7 @@ void File_Dpx::GenericSectionHeader_v2_ImageElement() } //--------------------------------------------------------------------------- -void File_Dpx::IndustrySpecificHeader_v1() +void File_Dpx::IndustrySpecificHeader_Cineon() { Element_Name("Motion picture industry specific header"); @@ -728,7 +731,7 @@ void File_Dpx::IndustrySpecificHeader_v1() } //--------------------------------------------------------------------------- -void File_Dpx::IndustrySpecificHeader_v2() +void File_Dpx::IndustrySpecificHeader_Dpx() { Element_Name("Industry specific header"); @@ -743,8 +746,8 @@ void File_Dpx::IndustrySpecificHeader_v2() Skip_B4( "Frame position in sequence"); Skip_B4( "Sequence length (frames)"); Skip_B4( "Held count (1 = default)"); - Skip_BFP4(9, "Frame rate of original (frames/s)"); - Skip_BFP4(9, "Shutter angle of camera in degrees"); + Skip_BF4( "Frame rate of original (frames/s)"); + Skip_BF4( "Shutter angle of camera in degrees"); Skip_UTF8(32, "Frame identification - e.g. keyframe"); Skip_UTF8(100, "Slate information"); Skip_XX(56, "Reserved for future use"); @@ -757,22 +760,22 @@ void File_Dpx::IndustrySpecificHeader_v2() Skip_B1( "Field number"); Info_B1(VideoSignalStandard, "Video signal standard");Param_Info1(DPX_VideoSignalStandard(VideoSignalStandard)); Skip_B1( "Zero"); - Skip_BFP4(9, "Horizontal sampling rate (Hz)"); - Skip_BFP4(9, "Vertical sampling rate (Hz)"); - Skip_BFP4(9, "Temporal sampling rate or frame rate (Hz)"); - Skip_BFP4(9, "Time offset from sync to first pixel (ms)"); - Skip_BFP4(9, "Gamma"); - Skip_BFP4(9, "Black level code value"); - Skip_BFP4(9, "Black gain"); - Skip_BFP4(9, "Breakpoint"); - Skip_BFP4(9, "Reference white level code value"); - Skip_BFP4(9, "Integration time (s)"); + Skip_BF4( "Horizontal sampling rate (Hz)"); + Skip_BF4( "Vertical sampling rate (Hz)"); + Skip_BF4( "Temporal sampling rate or frame rate (Hz)"); + Skip_BF4( "Time offset from sync to first pixel (ms)"); + Skip_BF4( "Gamma"); + Skip_BF4( "Black level code value"); + Skip_BF4( "Black gain"); + Skip_BF4( "Breakpoint"); + Skip_BF4( "Reference white level code value"); + Skip_BF4( "Integration time (s)"); Skip_XX(76, "Reserved for future use"); Element_End0(); } //--------------------------------------------------------------------------- -void File_Dpx::UserDefinedHeader_v1() +void File_Dpx::UserDefinedHeader_Cineon() { Element_Name("User defined header"); @@ -781,7 +784,7 @@ void File_Dpx::UserDefinedHeader_v1() } //--------------------------------------------------------------------------- -void File_Dpx::UserDefinedHeader_v2() +void File_Dpx::UserDefinedHeader_Dpx() { Element_Name("User defined header"); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.h b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.h index 784ddf5b584..66cc33147e8 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.h @@ -55,14 +55,14 @@ private : void Data_Parse(); //Elements - void GenericSectionHeader_v1(); - void GenericSectionHeader_v2(); - void GenericSectionHeader_v1_ImageElement(); - void GenericSectionHeader_v2_ImageElement(); - void IndustrySpecificHeader_v1(); - void IndustrySpecificHeader_v2(); - void UserDefinedHeader_v1(); - void UserDefinedHeader_v2(); + void GenericSectionHeader_Cineon(); + void GenericSectionHeader_Dpx(); + void GenericSectionHeader_Cineon_ImageElement(); + void GenericSectionHeader_Dpx_ImageElement(); + void IndustrySpecificHeader_Cineon(); + void IndustrySpecificHeader_Dpx(); + void UserDefinedHeader_Cineon(); + void UserDefinedHeader_Dpx(); void Padding(); void ImageData(); @@ -70,6 +70,7 @@ private : std::vector Sizes; size_t Sizes_Pos; int8u Version; + bool IsDpx; bool LittleEndian; //Helpers diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Exr.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Exr.cpp index 85f32d03d70..9e2f88d2527 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Exr.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Exr.cpp @@ -82,7 +82,6 @@ void File_Exr::Streams_Accept() //Configuration Buffer_MaximumSize=64*1024*1024; //Some big frames are possible (e.g YUV 4:2:2 10 bits 1080p) - Frame_Count_NotParsedIncluded=0; } //*************************************************************************** diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.cpp index e016f4c2150..9c0f41bd21d 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.cpp @@ -61,6 +61,7 @@ namespace Elements const int16u QCD =0xFF5C; //JPEG 2000 const int16u QCC =0xFF5D; //JPEG 2000 const int16u RGN =0xFF5E; //JPEG 2000 + const int16u POC =0xFF5F; //JPEG 2000 const int16u PPM =0xFF60; //JPEG 2000 const int16u PPT =0xFF61; //JPEG 2000 const int16u CME =0xFF64; //JPEG 2000 @@ -142,6 +143,31 @@ struct Jpeg_samplingfactor int8u Vi; }; +//--------------------------------------------------------------------------- +string Jpeg2000_Rsiz(int16u Rsiz) +{ + switch (Rsiz) + { + case 0x0000: return "No restrictions"; + case 0x0001: return "Profile-0"; + case 0x0002: return "Profile-1"; + case 0x0003: return "D-Cinema 2k"; + case 0x0004: return "D-Cinema 4k"; + case 0x0005: return "D-Cinema 2k Scalable"; + case 0x0006: return "D-Cinema 4k Scalable"; + case 0x0007: return "Long-term storage"; + case 0x0101: return "BCS@L1"; //Broadcast Contribution Single Tile + case 0x0102: return "BCS@L2"; //Broadcast Contribution Single Tile + case 0x0103: return "BCS@L3"; //Broadcast Contribution Single Tile + case 0x0104: return "BCS@L4"; //Broadcast Contribution Single Tile + case 0x0105: return "BCS@L5"; //Broadcast Contribution Single Tile + case 0x0205: return "BCM@L5"; //Broadcast Contribution Multi-tile + case 0x0306: return "BCMR@L6"; //Broadcast Contribution Multi-tile Reversible + case 0x0307: return "BCMR@L7"; //Broadcast Contribution Multi-tile Reversible + default: return Ztring::ToZtring(Rsiz, 16).To_UTF8(); + } +} + //*************************************************************************** // Constructor/Destructor //*************************************************************************** @@ -190,7 +216,6 @@ void File_Jpeg::Streams_Accept() //Configuration Buffer_MaximumSize=64*1024*1024; //Some big frames are possible (e.g YUV 4:2:2 10 bits 1080p) - Frame_Count_NotParsedIncluded=0; } //--------------------------------------------------------------------------- @@ -524,6 +549,7 @@ void File_Jpeg::Data_Parse() CASE_INFO(QCD , "Quantization default"); //JPEG 2000 CASE_INFO(QCC , "Quantization component "); //JPEG 2000 CASE_INFO(RGN , "Region-of-interest"); //JPEG 2000 + CASE_INFO(POC , "Progression order change"); //JPEG 2000 CASE_INFO(PPM , "Packed packet headers, main header"); //JPEG 2000 CASE_INFO(PPT , "Packed packet headers, tile-part header"); //JPEG 2000 CASE_INFO(CME , "Comment and extension"); //JPEG 2000 @@ -611,8 +637,8 @@ void File_Jpeg::SIZ() vector BitDepths; int8u SamplingFactors_Max=0; int32u Xsiz, Ysiz; - int16u Count; - Skip_B2( "Rsiz - Capability of the codestream"); + int16u Rsiz, Count; + Get_B2 (Rsiz, "Rsiz - Capability of the codestream"); Get_B4 (Xsiz, "Xsiz - Image size X"); Get_B4 (Ysiz, "Ysiz - Image size Y"); Skip_B4( "XOsiz - Image offset X"); @@ -656,6 +682,7 @@ void File_Jpeg::SIZ() Stream_Prepare(StreamKind_Last); Fill(StreamKind_Last, 0, Fill_Parameter(StreamKind_Last, Generic_Format), "JPEG 2000"); Fill(StreamKind_Last, 0, Fill_Parameter(StreamKind_Last, Generic_Codec), "JPEG 2000"); + Fill(StreamKind_Last, 0, "Format_Profile", Jpeg2000_Rsiz(Rsiz)); if (StreamKind_Last==Stream_Image) Fill(Stream_Image, 0, Image_Codec_String, "JPEG 2000", Unlimited, true, true); //To Avoid automatic filling Fill(StreamKind_Last, 0, StreamKind_Last==Stream_Image?(size_t)Image_Width:(size_t)Video_Width, Xsiz); @@ -683,7 +710,9 @@ void File_Jpeg::SIZ() Fill(StreamKind_Last, 0, "ChromaSubsampling", ChromaSubsampling); //Not for sure - if (!IsSub) + if (ChromaSubsampling==__T("4:4:4") && (Retrieve(StreamKind_Last, 0, "Format_Profile")==__T("D-Cinema 2k") || Retrieve(StreamKind_Last, 0, "Format_Profile")==__T("D-Cinema 4k"))) + Fill(StreamKind_Last, 0, "ColorSpace", "XYZ"); + else if (!IsSub) { if (ChromaSubsampling==__T("4:2:0") || ChromaSubsampling==__T("4:2:2")) Fill(StreamKind_Last, 0, "ColorSpace", "YUV"); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.h b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.h index 824f053914c..80de45e4dda 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.h @@ -81,6 +81,7 @@ private : void QCD (); void QCC () {Skip_XX(Element_Size, "Data");} void RGN () {Skip_XX(Element_Size, "Data");} + void POC () {Skip_XX(Element_Size, "Data");} void PPM () {Skip_XX(Element_Size, "Data");} void PPT () {Skip_XX(Element_Size, "Data");} void CME () {Skip_XX(Element_Size, "Data");} diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Png.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Png.cpp index 7169d645e9b..51f855d2a19 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Png.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Png.cpp @@ -103,9 +103,6 @@ void File_Png::Streams_Accept() } else Stream_Prepare(StreamKind_Last); - - //Configuration - Frame_Count_NotParsedIncluded=0; } //*************************************************************************** diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Tiff.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Tiff.cpp index 9ffe5362b6e..949a9f841c0 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Tiff.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Tiff.cpp @@ -70,7 +70,7 @@ const char* Tiff_Tag_Name(int32u Tag) case Tiff_Tag::ImageDescription : return "ImageDescription"; case Tiff_Tag::SamplesPerPixel : return "SamplesPerPixel"; case Tiff_Tag::ExtraSamples : return "ExtraSamples"; - default : return "Unknown"; + default : return ""; } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo.cpp index 175c0b46a75..c269b6fc715 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo.cpp @@ -16,6 +16,9 @@ //--------------------------------------------------------------------------- #include "MediaInfo/MediaInfo.h" #include "MediaInfo/MediaInfo_Internal.h" +#if defined(_MSC_VER) && _MSC_VER >= 1800 && _MSC_VER < 1900 && defined(_M_X64) + #include // needed for _set_FMA3_enable() +#endif using namespace ZenLib; //--------------------------------------------------------------------------- @@ -60,6 +63,13 @@ using namespace MediaInfo_Debug_MediaInfo; MediaInfo::MediaInfo() { Internal=new MediaInfo_Internal(); + + // FMA3 support in the 2013 CRT is broken on Vista and Windows 7 RTM (fixed in SP1). + // See https://connect.microsoft.com/VisualStudio/feedback/details/987093/x64-log-function-uses-vpsrlq-avx-instruction-without-regard-to-operating-system-so-it-crashes-on-vista-x64 + // Hotfix: we disable it for MSVC2013. + #if defined(_MSC_VER) && _MSC_VER >= 1800 && _MSC_VER < 1900 && defined(_M_X64) + _set_FMA3_enable(0); + #endif } //--------------------------------------------------------------------------- diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp index 9674ff7e4ce..6e2007c2804 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp @@ -18,6 +18,97 @@ #endif //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +// Debug +#ifdef MEDIAINFO_DEBUG + #include + #include + namespace MediaInfo_Config_Debug + { + FILE* F; + std::string Debug; + SYSTEMTIME st_In; + + void Debug_Open(bool Out) + { + F=fopen("C:\\Temp\\MediaInfo_Debug.txt", "a+t"); + Debug.clear(); + SYSTEMTIME st; + GetLocalTime( &st ); + + char Duration[100]; + if (Out) + { + FILETIME ft_In; + if (SystemTimeToFileTime(&st_In, &ft_In)) + { + FILETIME ft_Out; + if (SystemTimeToFileTime(&st, &ft_Out)) + { + ULARGE_INTEGER UI_In; + UI_In.HighPart=ft_In.dwHighDateTime; + UI_In.LowPart=ft_In.dwLowDateTime; + + ULARGE_INTEGER UI_Out; + UI_Out.HighPart=ft_Out.dwHighDateTime; + UI_Out.LowPart=ft_Out.dwLowDateTime; + + ULARGE_INTEGER UI_Diff; + UI_Diff.QuadPart=UI_Out.QuadPart-UI_In.QuadPart; + + FILETIME ft_Diff; + ft_Diff.dwHighDateTime=UI_Diff.HighPart; + ft_Diff.dwLowDateTime=UI_Diff.LowPart; + + SYSTEMTIME st_Diff; + if (FileTimeToSystemTime(&ft_Diff, &st_Diff)) + { + sprintf(Duration, "%02hd:%02hd:%02hd.%03hd", st_Diff.wHour, st_Diff.wMinute, st_Diff.wSecond, st_Diff.wMilliseconds); + } + else + strcpy(Duration, " "); + } + else + strcpy(Duration, " "); + + } + else + strcpy(Duration, " "); + } + else + { + st_In=st; + strcpy(Duration, " "); + } + + fprintf(F," %02hd:%02hd:%02hd.%03hd %s", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, Duration); + } + + void Debug_Close() + { + Debug += "\r\n"; + fwrite(Debug.c_str(), Debug.size(), 1, F); \ + fclose(F); + } + } + using namespace MediaInfo_Config_Debug; + + #define MEDIAINFO_DEBUG1(_NAME,_TOAPPEND) \ + Debug_Open(false); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); + + #define MEDIAINFO_DEBUG2(_NAME,_TOAPPEND) \ + Debug_Open(true); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); +#else // MEDIAINFO_DEBUG + #define MEDIAINFO_DEBUG1(_NAME,__TOAPPEND) + #define MEDIAINFO_DEBUG2(_NAME,__TOAPPEND) +#endif // MEDIAINFO_DEBUG + //--------------------------------------------------------------------------- #include "MediaInfo/Setup.h" //--------------------------------------------------------------------------- @@ -34,7 +125,7 @@ namespace MediaInfoLib { //--------------------------------------------------------------------------- -const Char* MediaInfo_Version=__T("MediaInfoLib - v0.7.71"); +const Char* MediaInfo_Version=__T("MediaInfoLib - v0.7.73"); const Char* MediaInfo_Url=__T("http://MediaArea.net/MediaInfo"); Ztring EmptyZtring; //Use it when we can't return a reference to a true Ztring const Ztring EmptyZtring_Const; //Use it when we can't return a reference to a true Ztring, const version @@ -158,7 +249,9 @@ void MediaInfo_Config::Init() Ztring MediaInfo_Config::Option (const String &Option, const String &Value_Raw) { + CS.Enter(); SubFile_Config(Option)=Value_Raw; + CS.Leave(); String Option_Lower(Option); size_t Egal_Pos=Option_Lower.find(__T('=')); @@ -2156,7 +2249,15 @@ void MediaInfo_Config::Event_Send (const int8u* Data_Content, size_t Data_Size, CriticalSectionLocker CSL(CS); if (Event_CallBackFunction) + { + MEDIAINFO_DEBUG1( "Event", + Debug+=", EventID=";Debug+=Ztring::ToZtring(LittleEndian2int32u(Data_Content), 16).To_UTF8();) + Event_CallBackFunction ((unsigned char*)Data_Content, Data_Size, Event_UserHandler); + + MEDIAINFO_DEBUG2( "Event", + ) + } } #endif //MEDIAINFO_EVENTS diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_Automatic.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_Automatic.cpp index 32e5581dad5..b639cef375f 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_Automatic.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_Automatic.cpp @@ -322,6 +322,7 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info) "Director;Director\n" "DirectorOfPhotography;Director of photography\n" "DisplayAspectRatio;Display aspect ratio\n" + "DisplayAspectRatio_CleanAperture;Clean aperture display aspect ratio\n" "DisplayAspectRatio_Original;Original display aspect ratio\n" "DistributedBy;Distributed by\n" "Distributor;Distributor\n" @@ -616,6 +617,7 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info) "h;h\n" "Header file;Create a header file\n" "Height;Height\n" + "Height_CleanAperture;Clean aperture height\n" "Height_Original;Original height\n" "Help;Help\n" "Hint;Hint\n" @@ -956,6 +958,7 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info) "Phone;Phone\n" "PictureRatio;Picture Ratio\n" "PixelAspectRatio;Pixel aspect ratio\n" + "PixelAspectRatio_CleanAperture;Clean aperture pixel aspect ratio\n" "PixelAspectRatio_Original;Original pixel aspect ratio\n" "PlayCounter;PlayCounter\n" "Played_Count;Times played\n" @@ -1005,7 +1008,7 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info) "Send HeaderFile;Please send me the Header file here : http://sourceforge.net/projects/mediainfo/ (Bug section)\n" "Separator_Columns;columns separator\n" "Separator_Lines;lines separator\n" - "SerieTitle;Serie Title\n" + "SeriesTitle;Series Title\n" "ServiceChannel;Service channel number\n" "ServiceName;Service name\n" "ServiceProvider;Service provider\n" @@ -1119,6 +1122,7 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info) "WebSite_Video;Go to the web site of this video codec\n" "WebSite_Video_More;Go to the web site (%Url%) to find this video codec\n" "Width;Width\n" + "Width_CleanAperture;Clean aperture width\n" "Width_Original;Original width\n" "WriteMe;Write mail to author\n" "WriteToTranslator;Write to translator\n" @@ -1244,6 +1248,7 @@ void MediaInfo_Config_Format (InfoMap &Info) "WavPack;;;A;Wvpk;;wv wvc;;http://www.wavpack.com\n" "Arri Raw;;;I;ArriRaw;;ari;;\n" "Bitmap;;;I;Bmp;;bmp;image/bmp;;Lossless\n" + "BPG;;;I;Bpg;Better Portable Graphics;bpg;image/bpg;http://bellard.org/bpg/\n" "DDS;;;I;Dds;DirectDraw Surface;dds;;\n" "DPX;;;I;Dpx;;dpx cin;;;Lossless\n" "EXR;;;I;Exr;;exr;;;Lossless\n" @@ -1403,12 +1408,13 @@ void MediaInfo_Config_CodecID_Video_Mpeg4 (InfoMap &Info) "ac16;YUV;;;;;;YUV;4:2:2\n" "ac32;YUV;;;;;;YUV;4:2:2\n" "acBG;YUV;;;;;;YUV;4:2:2\n" - "apch;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;High;;YUV;4:2:2\n" - "apcn;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;;;YUV;4:2:2\n" - "apcs;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;LT;;YUV;4:2:2\n" - "apco;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;Proxy;;YUV;4:2:2\n" - "ap4c;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;;;;4:4:4\n" - "ap4h;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;;;;4:4:4\n" + "apch;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;422 HQ;;YUV;4:2:2\n" + "apcn;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;422;;YUV;4:2:2\n" + "apcs;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;422 LT;;YUV;4:2:2\\n" + "apco;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;422 Proxy;;YUV;4:2:2\n" + "ap4c;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;4444;;;4:4:4\n" + "ap4h;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;4444;;;4:4:4\n" + "ap4x;ProRes;;;http://www.apple.com/quicktime/download/standalone.html;4444 XQ;;;4:4:4\n" "ai11;AVC;;Advanced Video Coding;http://ffdshow-tryout.sourceforge.net;;\n" "ai12;AVC;;Advanced Video Coding;http://ffdshow-tryout.sourceforge.net;;\n" "ai13;AVC;;Advanced Video Coding;http://ffdshow-tryout.sourceforge.net;;\n" @@ -1422,7 +1428,7 @@ void MediaInfo_Config_CodecID_Video_Mpeg4 (InfoMap &Info) "AVDJ;JPEG;;Avid\n" "AVdv;DV;;Avid;http://www.apple.com/quicktime/download/standalone.html;;;YUV;4:2:2\n" "AVd1;DV;;Avid;http://www.apple.com/quicktime/download/standalone.html;;\n" - "AVdn;VC-3;DNxHD;Avid;http://www.apple.com/quicktime/download/standalone.html;;;YUV;4:2:2\n" + "AVdn;VC-3;DNxHD;Avid;http://www.apple.com/quicktime/download/standalone.html;;;\n" "AVmp;MPEG Video;Avid IMX;;;;Version 2;;\n" "avr ;JPEG;;;;;;\n" "b16g;Gray;;;;;;Y;16\n" @@ -1460,6 +1466,7 @@ void MediaInfo_Config_CodecID_Video_Mpeg4 (InfoMap &Info) "DVTV;Digital Voodoo;;Digital Voodoo intermediate 2vuy;http://www.digitalvoodoo.net/;;;\n" "DVVT;Digital Voodoo;;Digital Voodoo intermediate v210;http://www.digitalvoodoo.net/;;;\n" "encv;(Encrypted);;;http://www.apple.com/quicktime/download/standalone.html;;;\n" + "FFV1;FFV1;;;;;;\n" "gif ;M-GIF;;;;;;\n" "Hap1;Hap;;Hap Video Codec;https://github.com/Vidvox/hap;;;\n" "Hap5;Hap Alpha;;Hap Video Codec;https://github.com/Vidvox/hap;;;\n" @@ -1527,6 +1534,7 @@ void MediaInfo_Config_CodecID_Video_Mpeg4 (InfoMap &Info) "SVQ2;Sorenson 2;;Sorenson Media Video 2 (Apple QuickTime 4);http://www.apple.com/quicktime/download/standalone.html;;;\n" "SVQ3;Sorenson 3;;Sorenson Media Video 3 (Apple QuickTime 5);http://www.apple.com/quicktime/download/standalone.html;;;\n" "v210;YUV;AJA Video Systems Xena;;;;;YUV;4:2:2\n" + "V210;YUV;AJA Video Systems Xena;;;;;YUV;4:2:2\n" "vc-1;VC-1;;SMPTE VC-1;http://www.smpte.org/;;;YUV\n" "WMV3;VC-1;WMV3;Windows Media Video 9;http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx;;;\n" "WRLE;Bitmap;;Windows BMP image format;http://www.apple.com/quicktime/download/standalone.html;;;YUV\n" @@ -2364,6 +2372,7 @@ void MediaInfo_Config_CodecID_Audio_Mpeg4 (InfoMap &Info) Info.Write(Ztring().From_UTF8( ".mp3;MPEG Audio;;;\n" "A104;AMR;;;http://www.apple.com/quicktime/download/standalone.html;Wide band\n" + "aac ;AAC;;\n" "ac-3;AC-3;;;\n" "alac;ALAC;;Apple Lossless Audio Codec;http://www.apple.com/quicktime/download/standalone.html\n" "alaw;ADPCM;;;http://www.apple.com/quicktime/download/standalone.html\n" @@ -2692,8 +2701,9 @@ void MediaInfo_Config_CodecID_Text_Matroska (InfoMap &Info) "S_TEXT/UTF8;UTF-8;;UTF-8 Plain Text\n" "S_USF;USF;;Universal Subtitle Format\n" "S_UTF8;UTF-8;;UTF-8 Plain Text\n" - "S_VOBSUB;VobSub;;The same subtitle format used on DVDs\n" - "S_HDMV/PGS;PGS;;The same subtitle format used on BDs/HD-DVDs\n" + "S_VOBSUB;VobSub;;Picture based subtitle format used on DVDs\n" + "S_HDMV/PGS;PGS;;Picture based subtitle format used on BDs/HD-DVDs\n" + "S_HDMV/TEXTST;TEXTST;;Text based subtitle format used on BDs\n" )); Info.Separator_Set(0, ZenLib::EOL); } @@ -3820,7 +3830,9 @@ void MediaInfo_Config_Codec (InfoMap &Info) "S_TEXT/ASS;ASS;Mk;T;;;Advanced Sub Station Alpha\n" "S_TEXT/USF;USF;Mk;T;;;Universal Subtitle Format\n" "S_IMAGE/BMP;Bitmap;Mk;T;;;Basic image based subtitle format\n" - "S_VOBSUB;VobSub;Mk;T;;;The same subtitle format used on DVDs\n" + "S_VOBSUB;VobSub;Mk;T;;;Picture based subtitle format used on DVDs\n" + "S_HDMV/PGS;PGS;Mk;T;;;Picture based subtitle format used on BDs/HD-DVDs\n" + "S_HDMV/TEXTST;TEXTST;Mk;T;;;Text based subtitle format used on BDs\n" )); Info.Separator_Set(0, ZenLib::EOL); } @@ -4208,14 +4220,20 @@ void MediaInfo_Config_General (ZtringListList &Info) "Recorded_Location;;;Y YT;;;Location where track was recorded. (See COMPOSITION_LOCATION for format);;Spatial\n" "Written_Location;;;Y YT;;;Location that the item was originaly designed/written. Information should be stored in the following format: country code, state/province, city where the coutry code is the same 2 octets as in Internet domains, or possibly ISO-3166. e.g. US, Texas, Austin or US, , Austin.;;Spatial\n" "Archival_Location;;;Y YT;;;Location, where an item is archived, e.eg. Louvre,Paris,France;;Spatial\n" - "Encoded_Application;;;Y YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" - "Encoded_Application/Url;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" + "Encoded_Application;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit;;Technical\n" + "Encoded_Application/String;;;Y NT;;;Name of the software package used to create the file, such as Microsoft WaveEdit, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Application_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Application_Name;;;N YT;;;Name of the product;;Technical\n" + "Encoded_Application_Version;;;N YT;;;Version of the product;;Technical\n" + "Encoded_Application_Url;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" "Encoded_Library;;;N YT;;;Software used to create the file;;Technical\n" - "Encoded_Library/String;;;Y NT;;;Software used to create the file;;Technical\n" - "Encoded_Library/Name;;;N NT;;;Name of the the encoding-software;;Technical\n" - "Encoded_Library/Version;;;N NT;;;Version of encoding-software;;Technical\n" - "Encoded_Library/Date;;;N NT;;;Release date of software;;Technical\n" + "Encoded_Library/String;;;Y NT;;;Software used to create the file, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Library_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Library_Name;;;N NT;;;Name of the the encoding-software;;Technical\n" + "Encoded_Library_Version;;;N NT;;;Version of encoding-software;;Technical\n" + "Encoded_Library_Date;;;N NT;;;Release date of software;;Technical\n" "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;;Technical\n" + "Encoded_OperatingSystem;;;N YT;;;Operating System of encoding-software;;Technical\n" "Cropped;;;Y YT;;;Describes whether an image has been cropped and, if so, how it was cropped.;;Technical\n" "Dimensions;;;Y YT;;;Specifies the size of the original subject of the file. eg 8.5 in h, 11 in w;;Technical\n" "DotsPerInch;;;Y YT;;;Stores dots per inch setting of the digitizer used to produce the file;;Technical\n" @@ -4400,24 +4418,32 @@ void MediaInfo_Config_Video (ZtringListList &Info) "BitRate_Encoded/String;;;Y NT;;;Encoded (with forced padding) bit rate (with measurement), if some container padding is present\n" "Width;; pixel;N YI;;;Width (aperture size if present) in pixel\n" "Width/String;;;Y NT;;;Width (aperture size if present) with measurement (pixel)\n" - "Width_Offset;; pixel;N YI;;;Offset between original width and displayed width (aperture size) in pixel\n" - "Width_Offset/String;;;N NT;;;Offset between original width and displayed width (aperture size) in pixel\n" + "Width_Offset;; pixel;N YI;;;Offset between original width and displayed width in pixel\n" + "Width_Offset/String;;;N NT;;;Offset between original width and displayed width in pixel\n" "Width_Original;; pixel;N YI;;;Original (in the raw stream) width in pixel\n" "Width_Original/String;;;Y NT;;;Original (in the raw stream) width with measurement (pixel)\n" - "Height;; pixel;N YI;;;Height (aperture size if present) in pixel\n" - "Height/String;;;Y NT;;;Height (aperture size if present) with measurement (pixel)\n" - "Height_Offset;; pixel;N YI;;;Offset between original height and displayed height (aperture size) in pixel\n" - "Height_Offset/String;;;N NT;;;Offset between original height and displayed height (aperture size) in pixel\n" + "Width_CleanAperture;; pixel;N YI;;;Clean Aperture width in pixel\n" + "Width_CleanAperture/String;;;Y NT;;;Clean Aperture width with measurement (pixel)\n" + "Height;; pixel;N YI;;;Height in pixel\n" + "Height/String;;;Y NT;;;Height with measurement (pixel)\n" + "Height_Offset;; pixel;N YI;;;Offset between original height and displayed height in pixel\n" + "Height_Offset/String;;;N NT;;;Offset between original height and displayed height in pixel\n" "Height_Original;; pixel;N YI;;;Original (in the raw stream) height in pixel\n" "Height_Original/String;;;Y NT;;;Original (in the raw stream) height with measurement (pixel)\n" + "Height_CleanAperture;; pixel;N YI;;;Clean Aperture height in pixel\n" + "Height_CleanAperture/String;;;Y NT;;;Clean Aperture height with measurement (pixel)\n" "PixelAspectRatio;;;N YF;;;Pixel Aspect ratio\n" "PixelAspectRatio/String;;;N NT;;;Pixel Aspect ratio\n" "PixelAspectRatio_Original;;;N YF;;;Original (in the raw stream) Pixel Aspect ratio\n" "PixelAspectRatio_Original/String;;;N NT;;;Original (in the raw stream) Pixel Aspect ratio\n" + "PixelAspectRatio_CleanAperture;;;N YF;;;Clean Aperture Pixel Aspect ratio\n" + "PixelAspectRatio_CleanAperture/String;;;N NT;;;Clean Aperture Pixel Aspect ratio\n" "DisplayAspectRatio;;;N YF;;;Display Aspect ratio\n" "DisplayAspectRatio/String;;;Y NT;;;Display Aspect ratio\n" "DisplayAspectRatio_Original;;;N YF;;;Original (in the raw stream) Display Aspect ratio\n" "DisplayAspectRatio_Original/String;;;Y NT;;;Original (in the raw stream) Display Aspect ratio\n" + "DisplayAspectRatio_CleanAperture;;;N YF;;;Clean Aperture Display Aspect ratio\n" + "DisplayAspectRatio_CleanAperture/String;;;Y NT;;;Clean Aperture Display Aspect ratio\n" "ActiveFormatDescription;;;N YN;;;Active Format Description (AFD value)\n" "ActiveFormatDescription/String;;;Y NT;;;Active Format Description (text)\n" "ActiveFormatDescription_MuxingMode;;;N YT;;;Active Format Description (AFD value) muxing mode (Ancillary or Raw stream)\n" @@ -4500,8 +4526,8 @@ void MediaInfo_Config_Video (ZtringListList &Info) "TimeCode_Source;;;Y YT;;;Time code source (Container, Stream, SystemScheme1, SDTI, ANC...)\n" "Gop_OpenClosed;; ;N YT;;;Time code information about Open/Closed\n" "Gop_OpenClosed/String;;;Y NT;;;Time code information about Open/Closed\n" - "Gop_OpenClosed;; ;N YT;;;Time code information about Open/Closed of first frame if GOP is Open for the other GOPs\n" - "Gop_OpenClosed/String;;;Y NT;;;Time code information about Open/Closed of first frame if GOP is Open for the other GOPs\n" + "Gop_OpenClosed_FirstFrame;; ;N YT;;;Time code information about Open/Closed of first frame if GOP is Open for the other GOPs\n" + "Gop_OpenClosed_FirstFrame/String;;;Y NT;;;Time code information about Open/Closed of first frame if GOP is Open for the other GOPs\n" "StreamSize;; byte;N YI;;;Streamsize in bytes;\n" "StreamSize/String;;;Y NT;;;Streamsize in with percentage value;\n" "StreamSize/String1;;;N NT;;;;\n" @@ -4537,14 +4563,20 @@ void MediaInfo_Config_Video (ZtringListList &Info) "Alignment;;;Y NT;;;How this stream file is aligned in the container;\n" "Alignment/String;;;N YT;;;;\n" "Title;;;Y YI;;;Name of the track;\n" - "Encoded_Application;;;Y YT;;;Software. Identifies the name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" - "Encoded_Application/Url;;;N YT;;;Software. Identifies the name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" - "Encoded_Library;;;N YT;;;Software used to create the file;\n" - "Encoded_Library/String;;;Y NT;;;Software used to create the file;\n" - "Encoded_Library/Name;;;N NT;;;Info from the software;\n" - "Encoded_Library/Version;;;N NT;;;Version of software;\n" - "Encoded_Library/Date;;;N NT;;;Release date of software;\n" - "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;\n" + "Encoded_Application;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit;;Technical\n" + "Encoded_Application/String;;;Y NT;;;Name of the software package used to create the file, such as Microsoft WaveEdit, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Application_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Application_Name;;;N YT;;;Name of the product;;Technical\n" + "Encoded_Application_Version;;;N YT;;;Version of the product;;Technical\n" + "Encoded_Application_Url;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" + "Encoded_Library;;;N YT;;;Software used to create the file;;Technical\n" + "Encoded_Library/String;;;Y NT;;;Software used to create the file, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Library_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Library_Name;;;N NT;;;Name of the the encoding-software;;Technical\n" + "Encoded_Library_Version;;;N NT;;;Version of encoding-software;;Technical\n" + "Encoded_Library_Date;;;N NT;;;Release date of software;;Technical\n" + "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;;Technical\n" + "Encoded_OperatingSystem;;;N YT;;;Operating System of encoding-software;;Technical\n" "Language;;;N YT;;;Language (2-letter ISO 639-1 if exists, else 3-letter ISO 639-2, and with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn);\n" "Language/String;;;Y NT;;;Language (full);\n" "Language/String1;;;N NT;;;Language (full);\n" @@ -4560,11 +4592,11 @@ void MediaInfo_Config_Video (ZtringListList &Info) "Tagged_Date;;;Y YT;;;UTC time that the tags were done for this item.;;Temporal\n" "Encryption;;;Y YT;;;;\n" "BufferSize;;;N YT;;;Defines the size of the buffer needed to decode the sequence.\n" + "colour_range;;;Y YT;;;Colour range for YUV colour space\n" "colour_description_present;;;N YT;;;Presence of colour description\n" "colour_primaries;;;Y YT;;;Chromaticity coordinates of the source primaries\n" "transfer_characteristics;;;Y YT;;;Opto-electronic transfer characteristic of the source picture\n" "matrix_coefficients;;;Y YT;;;Matrix coefficients used in deriving luma and chroma signals from the green, blue, and red primaries\n" - "colour_range;;;Y YT;;;Colour range for YUV colour space\n" "colour_description_present_Original;;;N YT;;;Presence of colour description\n" "colour_primaries_Original;;;Y YT;;;Chromaticity coordinates of the source primaries\n" "transfer_characteristics_Original;;;Y YT;;;Opto-electronic transfer characteristic of the source picture\n" @@ -4804,12 +4836,20 @@ void MediaInfo_Config_Audio (ZtringListList &Info) "Interleave_Preload;;;N YI;;;How much time is buffered before the first video frame;\n" "Interleave_Preload/String;;;Y NT;;;How much time is buffered before the first video frame (with measurement);\n" "Title;;;Y YI;;;Name of the track;\n" - "Encoded_Library;;;N YT;;;Software used to create the file;\n" - "Encoded_Library/String;;;Y NT;;;Software used to create the file;\n" - "Encoded_Library/Name;;;N NT;;;Info from the software;\n" - "Encoded_Library/Version;;;N NT;;;Version of software;\n" - "Encoded_Library/Date;;;N NT;;;Release date of software;\n" - "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;\n" + "Encoded_Application;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit;;Technical\n" + "Encoded_Application/String;;;Y NT;;;Name of the software package used to create the file, such as Microsoft WaveEdit, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Application_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Application_Name;;;N YT;;;Name of the product;;Technical\n" + "Encoded_Application_Version;;;N YT;;;Version of the product;;Technical\n" + "Encoded_Application_Url;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" + "Encoded_Library;;;N YT;;;Software used to create the file;;Technical\n" + "Encoded_Library/String;;;Y NT;;;Software used to create the file, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Library_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Library_Name;;;N NT;;;Name of the the encoding-software;;Technical\n" + "Encoded_Library_Version;;;N NT;;;Version of encoding-software;;Technical\n" + "Encoded_Library_Date;;;N NT;;;Release date of software;;Technical\n" + "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;;Technical\n" + "Encoded_OperatingSystem;;;N YT;;;Operating System of encoding-software;;Technical\n" "Language;;;N YT;;;Language (2-letter ISO 639-1 if exists, else 3-letter ISO 639-2, and with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn);\n" "Language/String;;;Y NT;;;Language (full);\n" "Language/String1;;;N NT;;;Language (full);\n" @@ -5022,12 +5062,20 @@ void MediaInfo_Config_Text (ZtringListList &Info) "Source_StreamSize_Encoded/String5;;;N NT;;;Source Encoded Streamsize in with percentage value;\n" "Source_StreamSize_Encoded_Proportion;;;N NT;;;Source Encoded Stream size divided by file size;\n" "Title;;;Y YI;;;Name of the track\n" - "Encoded_Library;;;N YT;;;Software used to create the file\n" - "Encoded_Library/String;;;Y NT;;;Software used to create the file\n" - "Encoded_Library/Name;;;N NT;;;Info from the software\n" - "Encoded_Library/Version;;;N NT;;;Version of software\n" - "Encoded_Library/Date;;;N NT;;;Release date of software\n" - "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software\n" + "Encoded_Application;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit;;Technical\n" + "Encoded_Application/String;;;Y NT;;;Name of the software package used to create the file, such as Microsoft WaveEdit, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Application_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Application_Name;;;N YT;;;Name of the product;;Technical\n" + "Encoded_Application_Version;;;N YT;;;Version of the product;;Technical\n" + "Encoded_Application_Url;;;N YT;;;Name of the software package used to create the file, such as Microsoft WaveEdit.;;Technical\n" + "Encoded_Library;;;N YT;;;Software used to create the file;;Technical\n" + "Encoded_Library/String;;;Y NT;;;Software used to create the file, trying to have the format 'CompanyName ProductName (OperatingSystem) Version (Date)';;Technical\n" + "Encoded_Library_CompanyName;;;N YT;;;Name of the company;;Technical\n" + "Encoded_Library_Name;;;N NT;;;Name of the the encoding-software;;Technical\n" + "Encoded_Library_Version;;;N NT;;;Version of encoding-software;;Technical\n" + "Encoded_Library_Date;;;N NT;;;Release date of software;;Technical\n" + "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;;Technical\n" + "Encoded_OperatingSystem;;;N YT;;;Operating System of encoding-software;;Technical\n" "Language;;;N YT;;;Language (2-letter ISO 639-1 if exists, else 3-letter ISO 639-2, and with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn)\n" "Language/String;;;Y NT;;;Language (full)\n" "Language/String1;;;N NT;;;Language (full)\n" @@ -5203,9 +5251,9 @@ void MediaInfo_Config_Image (ZtringListList &Info) "StreamSize_Proportion;;;N NT;;;Stream size divided by file size;\n" "Encoded_Library;;;N YT;;;Software used to create the file;\n" "Encoded_Library/String;;;Y NT;;;Software used to create the file;\n" - "Encoded_Library/Name;;;N NT;;;Info from the software;\n" - "Encoded_Library/Version;;;N NT;;;Version of software;\n" - "Encoded_Library/Date;;;N NT;;;Release date of software;\n" + "Encoded_Library_Name;;;N NT;;;Info from the software;\n" + "Encoded_Library_Version;;;N NT;;;Version of software;\n" + "Encoded_Library_Date;;;N NT;;;Release date of software;\n" "Encoded_Library_Settings;;;Y YT;;;Parameters used by the software;\n" "Language;;;N YT;;;Language (2-letter ISO 639-1 if exists, else 3-letter ISO 639-2, and with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn);\n" "Language/String;;;Y NT;;;Language (full);\n" diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.cpp index b11f6087757..c00de78857d 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.cpp @@ -33,6 +33,97 @@ using namespace ZenLib; using namespace std; //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +// Debug +#ifdef MEDIAINFO_DEBUG + #include + #include + namespace MediaInfo_Config_MediaInfo_Debug + { + FILE* F; + std::string Debug; + SYSTEMTIME st_In; + + void Debug_Open(bool Out) + { + F=fopen("C:\\Temp\\MediaInfo_Debug.txt", "a+t"); + Debug.clear(); + SYSTEMTIME st; + GetLocalTime( &st ); + + char Duration[100]; + if (Out) + { + FILETIME ft_In; + if (SystemTimeToFileTime(&st_In, &ft_In)) + { + FILETIME ft_Out; + if (SystemTimeToFileTime(&st, &ft_Out)) + { + ULARGE_INTEGER UI_In; + UI_In.HighPart=ft_In.dwHighDateTime; + UI_In.LowPart=ft_In.dwLowDateTime; + + ULARGE_INTEGER UI_Out; + UI_Out.HighPart=ft_Out.dwHighDateTime; + UI_Out.LowPart=ft_Out.dwLowDateTime; + + ULARGE_INTEGER UI_Diff; + UI_Diff.QuadPart=UI_Out.QuadPart-UI_In.QuadPart; + + FILETIME ft_Diff; + ft_Diff.dwHighDateTime=UI_Diff.HighPart; + ft_Diff.dwLowDateTime=UI_Diff.LowPart; + + SYSTEMTIME st_Diff; + if (FileTimeToSystemTime(&ft_Diff, &st_Diff)) + { + sprintf(Duration, "%02hd:%02hd:%02hd.%03hd", st_Diff.wHour, st_Diff.wMinute, st_Diff.wSecond, st_Diff.wMilliseconds); + } + else + strcpy(Duration, " "); + } + else + strcpy(Duration, " "); + + } + else + strcpy(Duration, " "); + } + else + { + st_In=st; + strcpy(Duration, " "); + } + + fprintf(F," %02hd:%02hd:%02hd.%03hd %s", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, Duration); + } + + void Debug_Close() + { + Debug += "\r\n"; + fwrite(Debug.c_str(), Debug.size(), 1, F); \ + fclose(F); + } + } + using namespace MediaInfo_Config_MediaInfo_Debug; + + #define MEDIAINFO_DEBUG1(_NAME,_TOAPPEND) \ + Debug_Open(false); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); + + #define MEDIAINFO_DEBUG2(_NAME,_TOAPPEND) \ + Debug_Open(true); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); +#else // MEDIAINFO_DEBUG + #define MEDIAINFO_DEBUG1(_NAME,__TOAPPEND) + #define MEDIAINFO_DEBUG2(_NAME,__TOAPPEND) +#endif // MEDIAINFO_DEBUG + namespace MediaInfoLib { @@ -58,9 +149,11 @@ MediaInfo_Config_MediaInfo::MediaInfo_Config_MediaInfo() #if MEDIAINFO_ADVANCED File_IgnoreSequenceFileSize=false; File_IgnoreSequenceFilesCount=false; + File_SequenceFilesSkipFrames=0; File_DefaultFrameRate=0; File_Source_List=false; File_RiskyBitRateEstimation=false; + File_MergeBitRateInfo=true; #if MEDIAINFO_DEMUX File_Demux_Unpacketize_StreamLayoutChange_Skip=false; #endif //MEDIAINFO_DEMUX @@ -105,10 +198,12 @@ MediaInfo_Config_MediaInfo::MediaInfo_Config_MediaInfo() Demux_FirstFrameNumber=(int64u)-1; Demux_InitData=0; //In Demux event #endif //MEDIAINFO_DEMUX - #if MEDIAINFO_IBI - Ibi_Create=false; + #if MEDIAINFO_IBIUSAGE Ibi_UseIbiInfoIfAvailable=false; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE + #if MEDIAINFO_IBIUSAGE + Ibi_Create=false; + #endif //MEDIAINFO_IBIUSAGE //Specific File_MpegTs_ForceMenu=false; @@ -148,11 +243,12 @@ MediaInfo_Config_MediaInfo::MediaInfo_Config_MediaInfo() File_Buffer_Repeat_IsSupported=false; File_IsGrowing=false; File_IsNotGrowingAnymore=false; + File_IsImageSequence=false; File_Current_Offset=0; File_Current_Size=(int64u)-1; - File_IgnoreFramesBefore=0; - File_IgnoreFramesAfter=(int64u)-1; - File_IgnoreFramesRate=0; + File_IgnoreEditsBefore=0; + File_IgnoreEditsAfter=(int64u)-1; + File_EditRate=0; File_Size=(int64u)-1; ParseSpeed=MediaInfoLib::Config.ParseSpeed_Get(); #if MEDIAINFO_EVENTS @@ -308,6 +404,15 @@ Ztring MediaInfo_Config_MediaInfo::Option (const String &Option, const String &V return __T("Disabled due to compilation options"); #endif //MEDIAINFO_MD5 } + else if (Option_Lower==__T("file_sequencefilesskipframes") || Option_Lower==__T("file_sequencefileskipframes")) + { + #if MEDIAINFO_ADVANCED + File_SequenceFilesSkipFrames_Set(Ztring(Value).To_int64u()); + return Ztring(); + #else //MEDIAINFO_ADVANCED + return __T("Disabled due to compilation options"); + #endif //MEDIAINFO_ADVANCED + } else if (Option_Lower==__T("file_defaultframerate")) { #if MEDIAINFO_MD5 @@ -335,6 +440,15 @@ Ztring MediaInfo_Config_MediaInfo::Option (const String &Option, const String &V return __T("Advanced features are disabled due to compilation options"); #endif //MEDIAINFO_ADVANCED } + else if (Option_Lower==__T("file_mergebitrateinfo")) + { + #if MEDIAINFO_ADVANCED + File_MergeBitRateInfo_Set(!(Value==__T("0") || Value.empty())); + return Ztring(); + #else //MEDIAINFO_ADVANCED + return __T("Advanced features are disabled due to compilation options"); + #endif //MEDIAINFO_ADVANCED + } else if (Option_Lower==__T("file_demux_unpacketize_streamlayoutchange_skip")) { #if MEDIAINFO_DEMUX @@ -616,36 +730,36 @@ Ztring MediaInfo_Config_MediaInfo::Option (const String &Option, const String &V } else if (Option_Lower==__T("file_ibi")) { - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Ibi_Set(Value); return Ztring(); - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return __T("IBI support is disabled due to compilation options"); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } else if (Option_Lower==__T("file_ibi_create")) { - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (Ztring(Value).To_int64u()==0) Ibi_Create_Set(false); else Ibi_Create_Set(true); return Ztring(); - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return __T("IBI support is disabled due to compilation options"); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } else if (Option_Lower==__T("file_ibi_useibiinfoifavailable")) { - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (Ztring(Value).To_int64u()==0) Ibi_UseIbiInfoIfAvailable_Set(false); else Ibi_UseIbiInfoIfAvailable_Set(true); return Ztring(); - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return __T("IBI support is disabled due to compilation options"); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } else if (Option_Lower==__T("file_encryption_format")) { @@ -1192,6 +1306,21 @@ bool MediaInfo_Config_MediaInfo::File_IgnoreSequenceFilesCount_Get () } #endif //MEDIAINFO_ADVANCED +//--------------------------------------------------------------------------- +#if MEDIAINFO_ADVANCED +void MediaInfo_Config_MediaInfo::File_SequenceFilesSkipFrames_Set (int64u NewValue) +{ + CriticalSectionLocker CSL(CS); + File_SequenceFilesSkipFrames=NewValue; +} + +int64u MediaInfo_Config_MediaInfo::File_SequenceFilesSkipFrames_Get () +{ + CriticalSectionLocker CSL(CS); + return File_SequenceFilesSkipFrames; +} +#endif //MEDIAINFO_ADVANCED + //--------------------------------------------------------------------------- #if MEDIAINFO_ADVANCED void MediaInfo_Config_MediaInfo::File_DefaultFrameRate_Set (float64 NewValue) @@ -1240,6 +1369,21 @@ bool MediaInfo_Config_MediaInfo::File_RiskyBitRateEstimation_Get () } #endif //MEDIAINFO_ADVANCED +//--------------------------------------------------------------------------- +#if MEDIAINFO_ADVANCED +void MediaInfo_Config_MediaInfo::File_MergeBitRateInfo_Set (bool NewValue) +{ + CriticalSectionLocker CSL(CS); + File_MergeBitRateInfo=NewValue; +} + +bool MediaInfo_Config_MediaInfo::File_MergeBitRateInfo_Get () +{ + CriticalSectionLocker CSL(CS); + return File_MergeBitRateInfo; +} +#endif //MEDIAINFO_ADVANCED + //--------------------------------------------------------------------------- #if MEDIAINFO_DEMUX #if MEDIAINFO_ADVANCED @@ -1675,7 +1819,7 @@ int8u MediaInfo_Config_MediaInfo::Demux_InitData_Get () // IBI support //*************************************************************************** -#if MEDIAINFO_IBI +#if MEDIAINFO_IBIUSAGE //--------------------------------------------------------------------------- void MediaInfo_Config_MediaInfo::Ibi_Set (const Ztring &Value) { @@ -1692,31 +1836,33 @@ string MediaInfo_Config_MediaInfo::Ibi_Get () } //--------------------------------------------------------------------------- -void MediaInfo_Config_MediaInfo::Ibi_Create_Set (bool NewValue) +void MediaInfo_Config_MediaInfo::Ibi_UseIbiInfoIfAvailable_Set (bool NewValue) { CriticalSectionLocker CSL(CS); - Ibi_Create=NewValue; + Ibi_UseIbiInfoIfAvailable=NewValue; } -bool MediaInfo_Config_MediaInfo::Ibi_Create_Get () +bool MediaInfo_Config_MediaInfo::Ibi_UseIbiInfoIfAvailable_Get () { CriticalSectionLocker CSL(CS); - return Ibi_Create; + return Ibi_UseIbiInfoIfAvailable; } +#endif //MEDIAINFO_IBIUSAGE +#if MEDIAINFO_IBIUSAGE //--------------------------------------------------------------------------- -void MediaInfo_Config_MediaInfo::Ibi_UseIbiInfoIfAvailable_Set (bool NewValue) +void MediaInfo_Config_MediaInfo::Ibi_Create_Set (bool NewValue) { CriticalSectionLocker CSL(CS); - Ibi_UseIbiInfoIfAvailable=NewValue; + Ibi_Create=NewValue; } -bool MediaInfo_Config_MediaInfo::Ibi_UseIbiInfoIfAvailable_Get () +bool MediaInfo_Config_MediaInfo::Ibi_Create_Get () { CriticalSectionLocker CSL(CS); - return Ibi_UseIbiInfoIfAvailable; + return Ibi_Create; } -#endif //MEDIAINFO_IBI +#endif //MEDIAINFO_IBIUSAGE //*************************************************************************** // Encryption @@ -2087,20 +2233,20 @@ void MediaInfo_Config_MediaInfo::Event_Send (File__Analyze* Source, const int8u* Temp->PTS-=Demux_Offset_DTS_FromStream; } } - if (File_IgnoreFramesBefore) + if (File_IgnoreEditsBefore) { if (Temp->FrameNumber!=(int64u)-1) { - if (Temp->FrameNumber>File_IgnoreFramesBefore) - Temp->FrameNumber-=File_IgnoreFramesBefore; + if (Temp->FrameNumber>File_IgnoreEditsBefore) + Temp->FrameNumber-=File_IgnoreEditsBefore; else Temp->FrameNumber=0; } if (Temp->DTS!=(int64u)-1) { - if (File_IgnoreFramesBefore && File_IgnoreFramesRate) + if (File_IgnoreEditsBefore && File_EditRate) { - int64u TimeOffset=float64_int64s(((float64)File_IgnoreFramesBefore)/File_IgnoreFramesRate*1000000000); + int64u TimeOffset=float64_int64s(((float64)File_IgnoreEditsBefore)/File_EditRate*1000000000); if (Temp->DTS>TimeOffset) Temp->DTS-=TimeOffset; else @@ -2109,9 +2255,9 @@ void MediaInfo_Config_MediaInfo::Event_Send (File__Analyze* Source, const int8u* } if (Temp->PTS!=(int64u)-1) { - if (File_IgnoreFramesBefore && File_IgnoreFramesRate) + if (File_IgnoreEditsBefore && File_EditRate) { - int64u TimeOffset=float64_int64s(((float64)File_IgnoreFramesBefore)/File_IgnoreFramesRate*1000000000); + int64u TimeOffset=float64_int64s(((float64)File_IgnoreEditsBefore)/File_EditRate*1000000000); if (Temp->PTS>TimeOffset) Temp->PTS-=TimeOffset; else @@ -2156,7 +2302,15 @@ void MediaInfo_Config_MediaInfo::Event_Send (File__Analyze* Source, const int8u* } } else if (Event_CallBackFunction) + { + MEDIAINFO_DEBUG1( "CallBackFunction", + Debug+=", EventID=";Debug+=Ztring::ToZtring(LittleEndian2int32u(Data_Content), 16).To_UTF8();) + Event_CallBackFunction ((unsigned char*)Data_Content, Data_Size, Event_UserHandler); + + MEDIAINFO_DEBUG2( "CallBackFunction", + ) + } else if (!File_Name.empty()) { MediaInfo_Event_Generic* Event_Generic=(MediaInfo_Event_Generic*)Data_Content; diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h index 4657c99e767..29c9b048b9b 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h @@ -120,6 +120,11 @@ public : bool File_IgnoreSequenceFilesCount_Get (); #endif //MEDIAINFO_ADVANCED + #if MEDIAINFO_ADVANCED + void File_SequenceFilesSkipFrames_Set (int64u NewValue); + int64u File_SequenceFilesSkipFrames_Get (); + #endif //MEDIAINFO_ADVANCED + #if MEDIAINFO_ADVANCED void File_DefaultFrameRate_Set (float64 NewValue); float64 File_DefaultFrameRate_Get (); @@ -133,6 +138,8 @@ public : #if MEDIAINFO_ADVANCED void File_RiskyBitRateEstimation_Set (bool NewValue); bool File_RiskyBitRateEstimation_Get (); + void File_MergeBitRateInfo_Set (bool NewValue); + bool File_MergeBitRateInfo_Get (); #endif //MEDIAINFO_ADVANCED #if MEDIAINFO_DEMUX @@ -269,14 +276,16 @@ public : int8u Demux_InitData_Get (); #endif //MEDIAINFO_DEMUX - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE void Ibi_Set (const Ztring &NewValue); std::string Ibi_Get (); - void Ibi_Create_Set (bool NewValue); - bool Ibi_Create_Get (); void Ibi_UseIbiInfoIfAvailable_Set (bool NewValue); bool Ibi_UseIbiInfoIfAvailable_Get (); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE + #if MEDIAINFO_IBIUSAGE + void Ibi_Create_Set (bool NewValue); + bool Ibi_Create_Get (); + #endif //MEDIAINFO_IBIUSAGE //Specific void File_MpegTs_ForceMenu_Set (bool NewValue); @@ -341,11 +350,12 @@ public : bool File_Buffer_Repeat_IsSupported; bool File_IsGrowing; bool File_IsNotGrowingAnymore; + bool File_IsImageSequence; int64u File_Current_Offset; int64u File_Current_Size; - int64u File_IgnoreFramesBefore; - int64u File_IgnoreFramesAfter; - float64 File_IgnoreFramesRate; + int64u File_IgnoreEditsBefore; + int64u File_IgnoreEditsAfter; + float64 File_EditRate; int64u File_Size; float32 ParseSpeed; #if MEDIAINFO_EVENTS @@ -381,9 +391,11 @@ private : #if MEDIAINFO_ADVANCED bool File_IgnoreSequenceFileSize; bool File_IgnoreSequenceFilesCount; + int64u File_SequenceFilesSkipFrames; float64 File_DefaultFrameRate; bool File_Source_List; bool File_RiskyBitRateEstimation; + bool File_MergeBitRateInfo; #if MEDIAINFO_DEMUX bool File_Demux_Unpacketize_StreamLayoutChange_Skip; #endif //MEDIAINFO_DEMUX @@ -472,11 +484,13 @@ private : int8u Demux_InitData; #endif //MEDIAINFO_DEMUX - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE std::string Ibi; - bool Ibi_Create; bool Ibi_UseIbiInfoIfAvailable; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE + #if MEDIAINFO_IBIUSAGE + bool Ibi_Create; + #endif //MEDIAINFO_IBIUSAGE //Specific bool File_MpegTs_ForceMenu; diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_File.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_File.cpp index 4646d6fcc19..59f97c42368 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_File.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_File.cpp @@ -200,6 +200,9 @@ #if defined(MEDIAINFO_AU_YES) #include "MediaInfo/Audio/File_Au.h" #endif +#if defined(MEDIAINFO_CAF_YES) + #include "MediaInfo/Audio/File_Caf.h" +#endif #if defined(MEDIAINFO_DTS_YES) #include "MediaInfo/Audio/File_Dts.h" #endif @@ -296,6 +299,9 @@ #if defined(MEDIAINFO_BMP_YES) #include "MediaInfo/Image/File_Bmp.h" #endif +#if defined(MEDIAINFO_BPG_YES) + #include "MediaInfo/Image/File_Bpg.h" +#endif #if defined(MEDIAINFO_DDS_YES) #include "MediaInfo/Image/File_Dds.h" #endif @@ -564,6 +570,9 @@ bool MediaInfo_Internal::SelectFromExtension (const String &Parser) #if defined(MEDIAINFO_AU_YES) else if (Parser==__T("Au")) Info=new File_Au(); #endif + #if defined(MEDIAINFO_CAF_YES) + else if (Parser==__T("Caf")) Info=new File_Caf(); + #endif #if defined(MEDIAINFO_DTS_YES) else if (Parser==__T("Dts")) Info=new File_Dts(); #endif @@ -657,6 +666,9 @@ bool MediaInfo_Internal::SelectFromExtension (const String &Parser) #if defined(MEDIAINFO_BMP_YES) else if (Parser==__T("Bmp")) Info=new File_Bmp(); #endif + #if defined(MEDIAINFO_BPG_YES) + else if (Parser==__T("Bpg")) Info=new File_Bpg(); + #endif #if defined(MEDIAINFO_DDS_YES) else if (Parser==__T("Dds")) Info=new File_Dds(); #endif @@ -918,6 +930,9 @@ int MediaInfo_Internal::ListFormats(const String &File_Name) #if defined(MEDIAINFO_AU_YES) delete Info; Info=new File_Au(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1; #endif + #if defined(MEDIAINFO_CAF_YES) + delete Info; Info=new File_Caf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1; + #endif #if defined(MEDIAINFO_DTS_YES) delete Info; Info=new File_Dts(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1; #endif @@ -1007,6 +1022,9 @@ int MediaInfo_Internal::ListFormats(const String &File_Name) #if defined(MEDIAINFO_BMP_YES) delete Info; Info=new File_Bmp(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1; #endif + #if defined(MEDIAINFO_BPG_YES) + delete Info; Info=new File_Bpg(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1; + #endif #if defined(MEDIAINFO_DDS_YES) delete Info; Info=new File_Dds(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1; #endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Inform.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Inform.cpp index 604fb2f02b3..5ee7305a2fe 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Inform.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Inform.cpp @@ -24,11 +24,20 @@ //--------------------------------------------------------------------------- #include "ZenLib/Utils.h" -#include "MediaInfo/Export/Export_EbuCore.h" -#include "MediaInfo/Export/Export_Mpeg7.h" -#include "MediaInfo/Export/Export_reVTMD.h" -#include "MediaInfo/Export/Export_PBCore.h" -#include "MediaInfo/Export/Export_PBCore2.h" +#if defined(MEDIAINFO_EBUCORE_YES) + #include "MediaInfo/Export/Export_EbuCore.h" +#endif //defined(MEDIAINFO_EBUCORE_YES) +#if defined(MEDIAINFO_MPEG7_YES) + #include "MediaInfo/Export/Export_Mpeg7.h" +#endif //defined(MEDIAINFO_MPEG7_YES) +#if defined(MEDIAINFO_REVTMD_YES) + #include "MediaInfo/Export/Export_reVTMD.h" +#endif //defined(MEDIAINFO_REVTMD_YES) +#if defined(MEDIAINFO_PBCORE_YES) + #include "MediaInfo/Export/Export_PBCore.h" + #include "MediaInfo/Export/Export_PBCore2.h" +#endif //defined(MEDIAINFO_PBCORE_YES) +#include "MediaInfo/MediaInfo_Internal.h" #include "MediaInfo/File__Analyze.h" #include "base64.h" //--------------------------------------------------------------------------- @@ -62,16 +71,28 @@ Ztring MediaInfo_Internal::Inform() } #endif //MEDIAINFO_TRACE - if (MediaInfoLib::Config.Inform_Get()==__T("EBUCore") || MediaInfoLib::Config.Inform_Get()==__T("EBUCore_1.5")) - return Export_EbuCore().Transform(*this); - if (MediaInfoLib::Config.Inform_Get()==__T("MPEG-7")) - return Export_Mpeg7().Transform(*this); - if (MediaInfoLib::Config.Inform_Get()==__T("PBCore") || MediaInfoLib::Config.Inform_Get()==__T("PBCore_1.2")) - return Export_PBCore().Transform(*this); - if (MediaInfoLib::Config.Inform_Get()==__T("PBCore2") || MediaInfoLib::Config.Inform_Get()==__T("PBCore_2.0")) - return Export_PBCore2().Transform(*this); - if (MediaInfoLib::Config.Inform_Get()==__T("reVTMD")) - return __T("reVTMD is disabled due to its non-free licensing."); //return Export_reVTMD().Transform(*this); + #if defined(MEDIAINFO_EBUCORE_YES) + if (MediaInfoLib::Config.Inform_Get()==__T("EBUCore_1.6")) + return Export_EbuCore().Transform(*this, Export_EbuCore::Version_1_6); + if (MediaInfoLib::Config.Inform_Get()==__T("EBUCore") || MediaInfoLib::Config.Inform_Get()==__T("EBUCore_1.5")) + return Export_EbuCore().Transform(*this); + #endif //defined(MEDIAINFO_EBUCORE_YES) + #if defined(MEDIAINFO_MPEG7_YES) + if (MediaInfoLib::Config.Inform_Get()==__T("MPEG-7")) + return Export_Mpeg7().Transform(*this); + #endif //defined(MEDIAINFO_MPEG7_YES) + #if defined(MEDIAINFO_PBCORE_YES) + if (MediaInfoLib::Config.Inform_Get()==__T("PBCore") || MediaInfoLib::Config.Inform_Get()==__T("PBCore_1.2")) + return Export_PBCore().Transform(*this); + if (MediaInfoLib::Config.Inform_Get()==__T("PBCore2") || MediaInfoLib::Config.Inform_Get()==__T("PBCore_2.0")) + return Export_PBCore2().Transform(*this); + #endif //defined(MEDIAINFO_PBCORE_YES) + #if defined(MEDIAINFO_REVTMD_YES) + if (MediaInfoLib::Config.Inform_Get()==__T("reVTMD")) + return __T("reVTMD is disabled due to its non-free licensing."); //return Export_reVTMD().Transform(*this); + #endif //defined(MEDIAINFO_REVTMD_YES) + + #if defined(MEDIAINFO_CUSTOM_YES) if (!( MediaInfoLib::Config.Inform_Get(__T("General")).empty() @@ -170,6 +191,9 @@ Ztring MediaInfo_Internal::Inform() return Retour; } + #endif //defined(MEDIAINFO_CUSTOM_YES) + + #if defined(MEDIAINFO_TEXT_YES) || defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES) //Informations Ztring Retour; @@ -248,9 +272,16 @@ Ztring MediaInfo_Internal::Inform() Retour.FindAndReplace(__T("|SC9|"), __T("),"), 0, Ztring_Recursive); return Retour; + + #else //defined(MEDIAINFO_TEXT_YES) || defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES) + + return Ztring(); //Disabled + + #endif //defined(MEDIAINFO_TEXT_YES) || defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES) } //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_TEXT_YES) || defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES) || defined(MEDIAINFO_CUSTOM_YES) Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool IsDirect) { //Integrity @@ -266,15 +297,30 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I && MediaInfoLib::Config.Inform_Get(__T("Menu")).empty()) { Ztring Retour; - bool HTML=false; - bool XML=false; - bool CSV=false; - if (MediaInfoLib::Config.Inform_Get()==__T("HTML")) - HTML=true; - if (MediaInfoLib::Config.Inform_Get()==__T("XML")) - XML=true; - if (MediaInfoLib::Config.Inform_Get()==__T("CSV")) - CSV=true; + #if defined(MEDIAINFO_HTML_YES) + bool HTML=MediaInfoLib::Config.Inform_Get()==__T("HTML")?true:false; + #endif //defined(MEDIAINFO_HTML_YES) + #if defined(MEDIAINFO_XML_YES) + bool XML=MediaInfoLib::Config.Inform_Get()==__T("XML")?true:false; + #endif //defined(MEDIAINFO_XML_YES) + #if defined(MEDIAINFO_CSV_YES) + bool CSV=MediaInfoLib::Config.Inform_Get()==__T("CSV")?true:false; + #endif //defined(MEDIAINFO_CSV_YES) + #if defined(MEDIAINFO_TEXT_YES) && (defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES)) + bool Text=true; + #if defined(MEDIAINFO_HTML_YES) + if (HTML) + Text=false; + #endif //defined(MEDIAINFO_HTML_YES) + #if defined(MEDIAINFO_XML_YES) + if (XML) + Text=false; + #endif //defined(MEDIAINFO_XML_YES) + #if defined(MEDIAINFO_CSV_YES) + if (CSV) + Text=false; + #endif //defined(MEDIAINFO_CSV_YES) + #endif //defined(MEDIAINFO_TEXT_YES) && (defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES)) size_t Size=Count_Get(StreamKind, StreamPos); for (size_t Champ_Pos=0; Champ_Pos\n "); @@ -303,7 +352,9 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I Retour+=Valeur; Retour+=__T("\n "); } - else if (XML) + #endif //defined(MEDIAINFO_HTML_YES) + #if defined(MEDIAINFO_XML_YES) + if (XML) { Nom=Xml_Name_Escape(Nom); size_t Modified; @@ -322,13 +373,18 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I Retour+=Nom; Retour+=__T(">"); } - else if (CSV) + #endif //defined(MEDIAINFO_XML_YES) + #if defined(MEDIAINFO_CSV_YES) + if (CSV) { Retour+=Nom; Retour+=__T(","); Retour+=Valeur; } - else + #endif //defined(MEDIAINFO_CSV_YES) + #if defined(MEDIAINFO_TEXT_YES) && (defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES)) + if (Text) + #endif //defined(MEDIAINFO_TEXT_YES) && (defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES)) Retour+=Nom + MediaInfoLib::Config.Language_Get(__T(" Config_Text_Separator")) + Valeur; Retour+=MediaInfoLib::Config.LineSeparator_Get(); } @@ -481,8 +537,10 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I return Retour; } +#endif //defined(MEDIAINFO_TEXT_YES) || defined(MEDIAINFO_HTML_YES) || defined(MEDIAINFO_XML_YES) || defined(MEDIAINFO_CSV_YES) || defined(MEDIAINFO_CUSTOM_YES) //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_CUSTOM_YES) void MediaInfo_Internal::Traiter(Ztring &C) { //$if(%a%,zezeze%a%,rrere) @@ -509,8 +567,10 @@ void MediaInfo_Internal::Traiter(Ztring &C) C.FindAndReplace(__T("|SC9|"), __T("),"), 0, Ztring_Recursive); //C.FindAndReplace(__T("\\r\\n"), __T("\n"), 0, Ztring_Recursive); } +#endif //defined(MEDIAINFO_CUSTOM_YES) //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_XML_YES) Ztring MediaInfo_Internal::Xml_Name_Escape (const Ztring &Name) { Ztring ToReturn(Name); @@ -541,15 +601,19 @@ Ztring MediaInfo_Internal::Xml_Name_Escape (const Ztring &Name) return ToReturn; } +#endif //defined(MEDIAINFO_XML_YES) //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_XML_YES) Ztring MediaInfo_Internal::Xml_Content_Escape (const Ztring &Content, size_t &Modified) { Ztring ToReturn(Content); return Xml_Content_Escape_Modifying(ToReturn, Modified); } +#endif //defined(MEDIAINFO_XML_YES) //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_XML_YES) size_t Xml_Content_Escape_MustEscape(const Ztring &Content) { size_t Pos=0; @@ -629,5 +693,6 @@ Ztring &MediaInfo_Internal::Xml_Content_Escape_Modifying (Ztring &Content, size_ return Content; } +#endif //defined(MEDIAINFO_XML_YES) } //NameSpace diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.cpp b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.cpp index 6733cfc32e6..4c6f283981f 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.cpp @@ -327,7 +327,7 @@ size_t MediaInfo_Internal::Open(const String &File_Name_) Close(); //External IBI - #if defined(MEDIAINFO_IBI_YES) + #if MEDIAINFO_IBIUSAGE if (Config.Ibi_UseIbiInfoIfAvailable_Get()) { std::string IbiFile=Config.Ibi_Get(); @@ -345,7 +345,7 @@ size_t MediaInfo_Internal::Open(const String &File_Name_) Close(); } } - #endif //MEDIAINFO_IBI_YES + #endif //MEDIAINFO_IBIUSAGE CS.Enter(); MEDIAINFO_DEBUG_CONFIG_TEXT(Debug+=__T("Open, File=");Debug+=Ztring(File_Name_).c_str();) @@ -472,6 +472,12 @@ void MediaInfo_Internal::Entry() Ztring FileExtension=Test.Extension_Get(); FileExtension.MakeLowerCase(); + if (FileExtension!=__T("cap")) + { + Test.Extension_Set(__T("cap")); + if (File::Exists(Test)) + Dxw+=" \r\n"; + } if (FileExtension!=__T("dfxp")) { Test.Extension_Set(__T("dfxp")); @@ -702,21 +708,22 @@ size_t MediaInfo_Internal::Open_Buffer_Init (int64u File_Size_, const String &Fi Info->File_Name=File_Name; Info->Open_Buffer_Init(File_Size_); - #if MEDIAINFO_EVENTS - { - string File_Name_Local=Ztring(File_Name).To_Local(); - wstring File_Name_Unicode=Ztring(File_Name).To_Unicode(); - struct MediaInfo_Event_General_Start_0 Event; - memset(&Event, 0xFF, sizeof(struct MediaInfo_Event_Generic)); - Event.EventCode=MediaInfo_EventCode_Create(MediaInfo_Parser_None, MediaInfo_Event_General_Start, 0); - Event.EventSize=sizeof(struct MediaInfo_Event_General_Start_0); - Event.StreamIDs_Size=0; - Event.Stream_Size=File_Size_; - Event.FileName=File_Name_Local.c_str(); - Event.FileName_Unicode=File_Name_Unicode.c_str(); - Config.Event_Send(NULL, (const int8u*)&Event, sizeof(MediaInfo_Event_General_Start_0)); - } - #endif //MEDIAINFO_EVENTS + if (File_Name.empty()) + { + #if MEDIAINFO_EVENTS + { + struct MediaInfo_Event_General_Start_0 Event; + memset(&Event, 0xFF, sizeof(struct MediaInfo_Event_Generic)); + Event.EventCode=MediaInfo_EventCode_Create(MediaInfo_Parser_None, MediaInfo_Event_General_Start, 0); + Event.EventSize=sizeof(struct MediaInfo_Event_General_Start_0); + Event.StreamIDs_Size=0; + Event.Stream_Size=File_Size_; + Event.FileName=NULL; + Event.FileName_Unicode=NULL; + Config.Event_Send(NULL, (const int8u*)&Event, sizeof(MediaInfo_Event_General_Start_0)); + } + #endif //MEDIAINFO_EVENTS + } return 1; } @@ -1076,6 +1083,10 @@ Ztring MediaInfo_Internal::Get(stream_t StreamKind, size_t StreamPos, const Stri return Get(Stream_General, StreamPos, __T("OverallBitRate_Maximum/String"), KindOfInfo, KindOfSearch); if (Parameter==__T("AFD")) return Get(StreamKind, StreamPos, __T("ActiveFormatDescription"), KindOfInfo, KindOfSearch); + if (Parameter==__T("Encoded_Application") && Info && !Info->Retrieve(StreamKind, StreamPos, "Encoded_Application/String").empty()) + return Get(StreamKind, StreamPos, __T("Encoded_Application/String"), KindOfInfo, KindOfSearch); + if (Parameter==__T("Encoded_Library") && Info && !Info->Retrieve(StreamKind, StreamPos, "Encoded_Library/String").empty()) + return Get(StreamKind, StreamPos, __T("Encoded_Library/String"), KindOfInfo, KindOfSearch); CS.Enter(); MEDIAINFO_DEBUG_CONFIG_TEXT(Debug+=__T("Get, StreamKind=");Debug+=Ztring::ToZtring((size_t)StreamKind);Debug+=__T(", StreamKind=");Debug+=Ztring::ToZtring(StreamPos);Debug+=__T(", Parameter=");Debug+=Ztring(Parameter);) @@ -1297,15 +1308,15 @@ String MediaInfo_Internal::Option (const String &Option, const String &Value) { case 1 : return __T(""); case 2 : return __T("Invalid value"); - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE case 3 : return __T("Feature not supported / IBI file not provided"); case 4 : return __T("Problem during IBI file parsing"); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE case 5 : return __T("Invalid ID"); case 6 : return __T("Internal error"); - #if !MEDIAINFO_IBI + #if !MEDIAINFO_IBIUSAGE case (size_t)-2 : return __T("Feature not supported / IBI support disabled due to compilation options"); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE case (size_t)-1 : return __T("Feature not supported"); default : return __T("Unknown error"); } diff --git a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.h b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.h index d6f873ce45e..10e062c0b87 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.h +++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.h @@ -116,6 +116,7 @@ private : friend class File_DcpCpl;//Theses classes need access to internal structure for optimization. There is recursivity with theses formats friend class File_DcpPkl;//Theses classes need access to internal structure for optimization. There is recursivity with theses formats friend class File__ReferenceFilesHelper; //Theses classes need access to internal structure for optimization. There is recursivity with theses formats + friend class resource;//Theses classes need access to internal structure for optimization. There is recursivity with theses formats friend class Reader_File; //For Info member //Parsing handles diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Aaf.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Aaf.cpp index fec837e28eb..f88975057cd 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Aaf.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Aaf.cpp @@ -112,7 +112,7 @@ size_t File_Aaf::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -644,9 +644,9 @@ void File_Aaf::NetworkLocator() Ztring Data; Get_UTF16L(xxxSize, Data, "Data"); - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.FileNames.push_back(Data); - ReferenceFiles->References.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->AddFileName(Data); + ReferenceFiles->AddSequence(Sequence); //Locators[Streams[Streams_Pos]->Directory_Pos].EssenceLocator=Data; } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.cpp index 6c7c221a322..3abb6d1ca00 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.cpp @@ -37,6 +37,9 @@ #if defined(MEDIAINFO_SDP_YES) #include "MediaInfo/Text/File_Sdp.h" #endif +#if defined(MEDIAINFO_MXF_YES) + #include "MediaInfo/Multiple/File_Mxf.h" +#endif #include "MediaInfo/MediaInfo_Config_MediaInfo.h" #include //--------------------------------------------------------------------------- @@ -52,6 +55,7 @@ namespace MediaInfoLib const char* Ancillary_DataID(int8u DataID, int8u SecondaryDataID) { + // TODO: check http://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1364-2-201003-I!!PDF-E.pdf switch (DataID) { case 0x00 : return "Undefined"; @@ -130,6 +134,13 @@ const char* Ancillary_DataID(int8u DataID, int8u SecondaryDataID) default : return "(Reserved)"; } break; + case 0x51 : + switch (SecondaryDataID) + { + case 0x01 : return "Film Transfer and Video Production Information"; //RP 215 + default : return "(Reserved)"; + } + break; case 0x5F : switch (SecondaryDataID&0xF0) { @@ -230,6 +241,9 @@ File_Ancillary::File_Ancillary() #if defined(MEDIAINFO_SDP_YES) Sdp_Parser=NULL; #endif //defined(MEDIAINFO_SDP_YES) + #if defined(MEDIAINFO_MXF_YES) + Rdd18_Parser=NULL; + #endif //defined(MEDIAINFO_MXF_YES) } //--------------------------------------------------------------------------- @@ -250,6 +264,9 @@ File_Ancillary::~File_Ancillary() #if defined(MEDIAINFO_SDP_YES) delete Sdp_Parser; //Sdp_Parser=NULL; #endif //defined(MEDIAINFO_SDP_YES) + #if defined(MEDIAINFO_MXF_YES) + delete Rdd18_Parser; //Rdd18_Parser=NULL; + #endif //defined(MEDIAINFO_MXF_YES) } //--------------------------------------------------------------------------- @@ -300,6 +317,19 @@ void File_Ancillary::Streams_Finish() } } #endif //defined(MEDIAINFO_SDP_YES) + + #if defined(MEDIAINFO_MXF_YES) + if (Rdd18_Parser && !Rdd18_Parser->Status[IsFinished] && Rdd18_Parser->Status[IsAccepted]) + { + Finish(Rdd18_Parser); + for (size_t StreamPos=0; StreamPosCount_Get(Stream_Other); StreamPos++) + { + Merge(*Rdd18_Parser, Stream_Other, StreamPos, StreamPos); + Fill(Stream_Other, StreamPos_Last, Other_Format, "Acquisition Metadata", Unlimited, true, true); + Fill(Stream_Other, StreamPos_Last, Other_MuxingMode, "Ancillary data / RDD 18"); + } + } + #endif //defined(MEDIAINFO_MXF_YES) } //*************************************************************************** @@ -414,6 +444,10 @@ void File_Ancillary::Read_Buffer_Unsynched() if (Sdp_Parser) Sdp_Parser->Open_Buffer_Unsynch(); #endif //defined(MEDIAINFO_SDP_YES) + #if defined(MEDIAINFO_MXF_YES) + if (Rdd18_Parser) + Rdd18_Parser->Open_Buffer_Unsynch(); + #endif //defined(MEDIAINFO_MXF_YES) AspectRatio=0; } @@ -629,12 +663,25 @@ void File_Ancillary::Data_Parse() } break; case 0x05 : //RDD 18 + #if defined(MEDIAINFO_MXF_YES) + if (Rdd18_Parser==NULL) + { + Rdd18_Parser=new File_Mxf; + Open_Buffer_Init(Rdd18_Parser); + } + if (!Rdd18_Parser->Status[IsFinished]) + Open_Buffer_Continue(Rdd18_Parser, Payload+1, (size_t)DataCount-1); + #endif //defined(MEDIAINFO_MXF_YES) + + /* if (Count_Get(Stream_Other)==0) { Stream_Prepare(Stream_Other); Fill(Stream_Other, StreamPos_Last, Other_Format, "Acquisition Metadata"); Fill(Stream_Other, StreamPos_Last, Other_MuxingMode, "Ancillary data / RDD 18"); + Merge(*Parser, Stream_Other, 0, StreamPos_Last); } + */ break; default : if (Count_Get(Stream_Other)==0) diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.h index 8ad35e75116..ad9359febb0 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.h @@ -70,6 +70,9 @@ public : #if defined(MEDIAINFO_SDP_YES) File__Analyze* Sdp_Parser; #endif //defined(MEDIAINFO_ARIBSTDB24B37_YES) + #if defined(MEDIAINFO_MXF_YES) + File__Analyze* Rdd18_Parser; + #endif //defined(MEDIAINFO_MXF_YES) //Constructor/Destructor File_Ancillary(); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DashMpd.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DashMpd.cpp index 34df2d01621..f855a0c6d98 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DashMpd.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DashMpd.cpp @@ -107,7 +107,7 @@ Ztring DashMpd_codecid_CodecID (const char* codecid) else { CodecID=Codecs.substr(0, DotPos); - //TODO per format, rfc 6381 //ReferenceFile.Infos["Format_Profile"]=; + //TODO per format, rfc 6381 //Sequence->Infos["Format_Profile"]=; } CodecID.FindAndReplace(__T("0x"), Ztring(), 0, Ztring_Recursive); @@ -117,7 +117,7 @@ Ztring DashMpd_codecid_CodecID (const char* codecid) //--------------------------------------------------------------------------- struct template_generic { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence; Ztring SourceDir; Ztring BaseURL; Ztring initialization; @@ -144,6 +144,7 @@ struct template_generic template_generic(const Ztring &BaseURL=Ztring(), const Ztring &SourceDir=Ztring()) { + Sequence=new sequence; template_generic::BaseURL=BaseURL; template_generic::SourceDir=SourceDir; duration=1; @@ -152,6 +153,20 @@ struct template_generic startNumber_Max=0; } + template_generic(const template_generic &ToCopy) + { + Sequence=new sequence; + *Sequence=*ToCopy.Sequence; + template_generic::BaseURL=ToCopy.BaseURL; + template_generic::SourceDir=ToCopy.SourceDir; + initialization=ToCopy.initialization; + media=ToCopy.media; + duration=ToCopy.duration; + startNumber=ToCopy.duration; + duration_Max=ToCopy.duration_Max; + startNumber_Max=ToCopy.startNumber_Max; + } + void AdaptationSet_Attributes_Parse (XMLElement* Item); void SegmentTemplate_Attributes_Parse (XMLElement* Item); void SegmentTimeline_Attributes_Parse (XMLElement* Item); @@ -167,17 +182,17 @@ void template_generic::AdaptationSet_Attributes_Parse (XMLElement* Item) //Attributes - mineType Attribute=Item->Attribute("mimeType"); if (Attribute) - ReferenceFile.StreamKind=DashMpd_mimeType_StreamKind(Attribute); + Sequence->StreamKind=DashMpd_mimeType_StreamKind(Attribute); //Attributes - codecs Attribute=Item->Attribute("codecs"); if (Attribute) - ReferenceFile.Infos["CodecID"]=DashMpd_codecid_CodecID(Attribute); + Sequence->Infos["CodecID"]=DashMpd_codecid_CodecID(Attribute); //Attributes - lang Attribute=Item->Attribute("lang"); if (Attribute) - ReferenceFile.Infos["Language"].From_UTF8(Attribute); + Sequence->Infos["Language"].From_UTF8(Attribute); } void template_generic::SegmentTemplate_Attributes_Parse (XMLElement* Item) @@ -256,42 +271,42 @@ void template_generic::Representation_Attributes_Parse (XMLElement* Item) Attribute=Item->Attribute("id"); if (Attribute) { - ReferenceFile.StreamID=Ztring().From_UTF8(Attribute).To_int64u(16); + Sequence->StreamID=Ztring().From_UTF8(Attribute).To_int64u(16); } //Attributes - bandwidth Attribute=Item->Attribute("bandwidth"); if (Attribute) { - ReferenceFile.Infos["BitRate"].From_UTF8(Attribute); + Sequence->Infos["BitRate"].From_UTF8(Attribute); } //Attributes - frame size Attribute=Item->Attribute("width"); if (Attribute) { - ReferenceFile.Infos["Width"].From_UTF8(Attribute); + Sequence->Infos["Width"].From_UTF8(Attribute); } Attribute=Item->Attribute("height"); if (Attribute) { - ReferenceFile.Infos["Height"].From_UTF8(Attribute); + Sequence->Infos["Height"].From_UTF8(Attribute); } //Attributes - mineType Attribute=Item->Attribute("mimeType"); if (Attribute) - ReferenceFile.StreamKind=DashMpd_mimeType_StreamKind(Attribute); + Sequence->StreamKind=DashMpd_mimeType_StreamKind(Attribute); //Attributes - codecs Attribute=Item->Attribute("codecs"); if (Attribute) - ReferenceFile.Infos["CodecID"]=DashMpd_codecid_CodecID(Attribute); + Sequence->Infos["CodecID"]=DashMpd_codecid_CodecID(Attribute); //Attributes - lang Attribute=Item->Attribute("lang"); if (Attribute) - ReferenceFile.Infos["Language"].From_UTF8(Attribute); + Sequence->Infos["Language"].From_UTF8(Attribute); //Attributes - Saving all attributes for (const XMLAttribute* Attribute_Item=Item->FirstAttribute(); Attribute_Item; Attribute_Item=Attribute_Item->Next()) @@ -309,7 +324,7 @@ void template_generic::Decode() if (!initialization.empty()) { DashMpd_Transform(initialization, Attributes_ForMedia); - ReferenceFile.FileNames.push_back(BaseURL+initialization); + Sequence->AddFileName(BaseURL+initialization); } //media - URL decoding, template adaptation and add it @@ -367,7 +382,7 @@ void template_generic::Decode() File_Name+=BaseURL+Media_Name_Temp; if (!File::Exists(File_Name)) break; - ReferenceFile.FileNames.push_back(File_Name); + Sequence->AddFileName(File_Name); Index_Pos_Temp++; } } @@ -396,7 +411,7 @@ void template_generic::Decode() Media_Name_Temp.insert(Time_Pos_Temp, Time); } - ReferenceFile.FileNames.push_back(BaseURL+Media_Name_Temp); + Sequence->AddFileName(BaseURL+Media_Name_Temp); SegmentTimeLines_duration+=SegmentTimeLines[SegmentTimeLines_Pos].d; SegmentTimeLines_startNumber++; } @@ -404,7 +419,7 @@ void template_generic::Decode() } } else - ReferenceFile.FileNames.push_back(BaseURL+media); + Sequence->AddFileName(BaseURL+media); } } @@ -455,7 +470,7 @@ size_t File_DashMpd::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -554,7 +569,7 @@ bool File_DashMpd::FileHeader_Begin() //BaseURL if (string(Representation_Item->Value())=="BaseURL") { - Template_Generic_PerRepresentation.ReferenceFile.FileNames.push_back(BaseURL+Ztring().From_UTF8(Representation_Item->GetText())); + Template_Generic_PerRepresentation.Sequence->AddFileName(BaseURL+Ztring().From_UTF8(Representation_Item->GetText())); } //SegmentTemplate @@ -574,7 +589,7 @@ bool File_DashMpd::FileHeader_Begin() { Attribute=SegmentBase_Item->Attribute("sourceURL"); if (Attribute) - Template_Generic_PerRepresentation.ReferenceFile.FileNames.insert(Template_Generic_PerRepresentation.ReferenceFile.FileNames.begin(), BaseURL+Ztring().From_UTF8(Attribute)); + Template_Generic_PerRepresentation.Sequence->AddFileName(BaseURL+Ztring().From_UTF8(Attribute), 0); } } } @@ -601,14 +616,14 @@ bool File_DashMpd::FileHeader_Begin() Attribute=SegmentBase_Item->Attribute("media"); if (Attribute && IsSupported) - Template_Generic_PerRepresentation.ReferenceFile.FileNames.push_back(BaseURL+Ztring().From_UTF8(Attribute)); + Template_Generic_PerRepresentation.Sequence->AddFileName(BaseURL+Ztring().From_UTF8(Attribute)); } } } } Template_Generic_PerRepresentation.Decode(); - ReferenceFiles->References.push_back(Template_Generic_PerRepresentation.ReferenceFile); + ReferenceFiles->AddSequence(Template_Generic_PerRepresentation.Sequence); } } } @@ -616,23 +631,23 @@ bool File_DashMpd::FileHeader_Begin() //Representation (=a stream) if (string(Period_Item->Value())=="Representation") { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; int64u duration=1; //Attributes - mineType Attribute=Period_Item->Attribute("mimeType"); if (Attribute) - ReferenceFile.StreamKind=DashMpd_mimeType_StreamKind(Attribute); + Sequence->StreamKind=DashMpd_mimeType_StreamKind(Attribute); //Attributes - codecs Attribute=Period_Item->Attribute("codecs"); if (Attribute) - ReferenceFile.Infos["CodecID"]=DashMpd_codecid_CodecID(Attribute); + Sequence->Infos["CodecID"]=DashMpd_codecid_CodecID(Attribute); //Attributes - lang Attribute=Period_Item->Attribute("lang"); if (Attribute) - ReferenceFile.Infos["Language"].From_UTF8(Attribute); + Sequence->Infos["Language"].From_UTF8(Attribute); //Sub for (XMLElement* AdaptationSet_Item=Period_Item->FirstChildElement(); AdaptationSet_Item; AdaptationSet_Item=AdaptationSet_Item->NextSiblingElement()) @@ -655,7 +670,7 @@ bool File_DashMpd::FileHeader_Begin() { Attribute=SegmentInfo_Item->Attribute("sourceURL"); if (Attribute) - ReferenceFile.FileNames.insert(ReferenceFile.FileNames.begin(), BaseURL+Ztring().From_UTF8(Attribute)); + Sequence->AddFileName(BaseURL+Ztring().From_UTF8(Attribute), 0); } //Url @@ -663,11 +678,11 @@ bool File_DashMpd::FileHeader_Begin() { Attribute=SegmentInfo_Item->Attribute("sourceURL"); if (Attribute) - ReferenceFile.FileNames.push_back(BaseURL+Ztring().From_UTF8(Attribute)); + Sequence->AddFileName(BaseURL+Ztring().From_UTF8(Attribute)); } } - ReferenceFiles->References.push_back(ReferenceFile); + ReferenceFiles->AddSequence(Sequence); } } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpAm.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpAm.cpp index 7bf2f914e22..a275afa7627 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpAm.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpAm.cpp @@ -100,7 +100,7 @@ size_t File_DcpAm::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -254,10 +254,11 @@ bool File_DcpAm::FileHeader_Begin() for (File_DcpPkl::streams::iterator Stream=Streams.begin(); Stream!=Streams.end(); ++Stream) if (Stream->StreamKind==(stream_t)(Stream_Max+1) && Stream->ChunkList.size()==1) // Means CPL { - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.FileNames.push_back(Ztring().From_UTF8(Stream->ChunkList[0].Path)); + sequence* Sequence=new sequence; + Sequence->FileNames.push_back(Ztring().From_UTF8(Stream->ChunkList[0].Path)); - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); } ReferenceFiles->FilesForStorage=true; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp index 16e98334243..1f0211352fd 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp @@ -37,16 +37,6 @@ using namespace std; namespace MediaInfoLib { -//*************************************************************************** -// Infos -//*************************************************************************** - -struct DcpCpl_info -{ - Ztring FileName; - File__ReferenceFilesHelper::references::iterator Reference; -}; - //*************************************************************************** // Constructor/Destructor //*************************************************************************** @@ -94,10 +84,10 @@ void File_DcpCpl::Streams_Finish() #if MEDIAINFO_SEEK size_t File_DcpCpl::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { - if (Config->File_IsReferenced_Get() || ReferenceFiles==NULL) + if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -153,11 +143,11 @@ bool File_DcpCpl::FileHeader_Begin() //CompositionTimecode if (IsImf && (!strcmp(CompositionPlaylist_Item->Value(), "CompositionTimecode") || !strcmp(CompositionPlaylist_Item->Value(), "cpl:CompositionTimecode"))) { - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.StreamKind=Stream_Other; - ReferenceFile.Infos["Type"]=__T("Time code"); - ReferenceFile.Infos["Format"]=__T("CPL TC"); - ReferenceFile.Infos["TimeCode_Striped"]=__T("Yes"); + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Other; + Sequence->Infos["Type"]=__T("Time code"); + Sequence->Infos["Format"]=__T("CPL TC"); + Sequence->Infos["TimeCode_Striped"]=__T("Yes"); bool IsDropFrame=false; for (XMLElement* CompositionTimecode_Item=CompositionPlaylist_Item->FirstChildElement(); CompositionTimecode_Item; CompositionTimecode_Item=CompositionTimecode_Item->NextSiblingElement()) @@ -171,27 +161,27 @@ bool File_DcpCpl::FileHeader_Begin() //TimecodeRate if (!strcmp(CompositionTimecode_Item->Value(), "TimecodeRate") || !strcmp(CompositionTimecode_Item->Value(), "cpl:TimecodeRate")) - ReferenceFile.Infos["FrameRate"].From_UTF8(CompositionTimecode_Item->GetText()); + Sequence->Infos["FrameRate"].From_UTF8(CompositionTimecode_Item->GetText()); //TimecodeStartAddress if (!strcmp(CompositionTimecode_Item->Value(), "TimecodeStartAddress") || !strcmp(CompositionTimecode_Item->Value(), "cpl:TimecodeStartAddress")) - ReferenceFile.Infos["TimeCode_FirstFrame"].From_UTF8(CompositionTimecode_Item->GetText()); + Sequence->Infos["TimeCode_FirstFrame"].From_UTF8(CompositionTimecode_Item->GetText()); } //Adaptation if (IsDropFrame) { - std::map::iterator Info=ReferenceFile.Infos.find("TimeCode_FirstFrame"); - if (Info!=ReferenceFile.Infos.end() && Info->second.size()>=11 && Info->second[8]!=__T(';')) + std::map::iterator Info=Sequence->Infos.find("TimeCode_FirstFrame"); + if (Info!=Sequence->Infos.end() && Info->second.size()>=11 && Info->second[8]!=__T(';')) Info->second[8]=__T(';'); } - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); Stream_Prepare(Stream_Other); - Fill(Stream_Other, StreamPos_Last, Other_ID, ReferenceFile.StreamID); - for (std::map::iterator Info=ReferenceFile.Infos.begin(); Info!=ReferenceFile.Infos.end(); ++Info) + Fill(Stream_Other, StreamPos_Last, Other_ID, Sequence->StreamID); + for (std::map::iterator Info=Sequence->Infos.begin(); Info!=Sequence->Infos.end(); ++Info) Fill(Stream_Other, StreamPos_Last, Info->first.c_str(), Info->second); } @@ -217,15 +207,15 @@ bool File_DcpCpl::FileHeader_Begin() //if ((IsDcp && (!strcmp(AssetList_Item->Value(), "MainPicture") || !strcmp(AssetList_Item->Value(), "MainSound"))) // || (IsImf && (!strcmp(AssetList_Item->Value(), "cc:MainImageSequence") || !strcmp(AssetList_Item->Value(), "cc:MainImage")))) { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; Ztring Asset_Id; if ((IsDcp && !strcmp(AssetList_Item->Value(), "MainPicture")) || (IsImf && !strcmp(AssetList_Item->Value(), "cc:MainImageSequence"))) - ReferenceFile.StreamKind=Stream_Video; + Sequence->StreamKind=Stream_Video; if ((IsDcp && !strcmp(AssetList_Item->Value(), "MainSound")) || (IsImf && !strcmp(AssetList_Item->Value(), "cc:MainAudioSequence"))) - ReferenceFile.StreamKind=Stream_Audio; + Sequence->StreamKind=Stream_Audio; for (XMLElement* File_Item=AssetList_Item->FirstChildElement(); File_Item; File_Item=File_Item->NextSiblingElement()) { @@ -243,29 +233,29 @@ bool File_DcpCpl::FileHeader_Begin() { Ztring Resource_Id; - File__ReferenceFilesHelper::reference::completeduration Resource; + resource* Resource=new resource; for (XMLElement* Resource_Item=ResourceList_Item->FirstChildElement(); Resource_Item; Resource_Item=Resource_Item->NextSiblingElement()) { //EditRate if (!strcmp(Resource_Item->Value(), "EditRate")) { const char* EditRate=Resource_Item->GetText(); - Resource.IgnoreFramesRate=atof(EditRate); + Resource->EditRate=atof(EditRate); const char* EditRate2=strchr(EditRate, ' '); if (EditRate2!=NULL) { float64 EditRate2f=atof(EditRate2); if (EditRate2f) - Resource.IgnoreFramesRate/=EditRate2f; + Resource->EditRate/=EditRate2f; } } //EntryPoint if (!strcmp(Resource_Item->Value(), "EntryPoint")) { - Resource.IgnoreFramesBefore=atoi(Resource_Item->GetText()); - if (Resource.IgnoreFramesAfter!=(int64u)-1) - Resource.IgnoreFramesAfter+=Resource.IgnoreFramesBefore; + Resource->IgnoreEditsBefore=atoi(Resource_Item->GetText()); + if (Resource->IgnoreEditsAfter!=(int64u)-1) + Resource->IgnoreEditsAfter+=Resource->IgnoreEditsBefore; } //Id @@ -274,29 +264,29 @@ bool File_DcpCpl::FileHeader_Begin() //SourceDuration if (!strcmp(Resource_Item->Value(), "SourceDuration")) - Resource.IgnoreFramesAfter=Resource.IgnoreFramesBefore+atoi(Resource_Item->GetText()); + Resource->IgnoreEditsAfter=Resource->IgnoreEditsBefore+atoi(Resource_Item->GetText()); //TrackFileId if (!strcmp(Resource_Item->Value(), "TrackFileId")) - Resource.FileName.From_UTF8(Resource_Item->GetText()); + Resource->FileNames.push_back(Ztring().From_UTF8(Resource_Item->GetText())); } - if (Resource.FileName.empty()) - Resource.FileName=Resource_Id; - ReferenceFile.CompleteDuration.push_back(Resource); + if (Resource->FileNames.empty()) + Resource->FileNames.push_back(Resource_Id); + Sequence->AddResource(Resource); } } } } - if (ReferenceFile.CompleteDuration.empty()) + if (Sequence->Resources.empty()) { - File__ReferenceFilesHelper::reference::completeduration Resource; - Resource.FileName=Asset_Id; - ReferenceFile.CompleteDuration.push_back(Resource); + resource* Resource=new resource; + Resource->FileNames.push_back(Asset_Id); + Sequence->AddResource(Resource); } - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); } } } @@ -353,49 +343,9 @@ bool File_DcpCpl::FileHeader_Begin() //--------------------------------------------------------------------------- void File_DcpCpl::MergeFromAm (File_DcpPkl::streams &StreamsToMerge) { - map Map; for (File_DcpPkl::streams::iterator StreamToMerge=StreamsToMerge.begin(); StreamToMerge!=StreamsToMerge.end(); ++StreamToMerge) - Map[Ztring().From_UTF8(StreamToMerge->Id)]=StreamToMerge; - - for (size_t References_Pos=0; References_PosReferences.size(); ++References_Pos) - { - for (size_t Pos=0; PosReferences[References_Pos].FileNames.size(); ++Pos) - { - map::iterator Map_Item=Map.find(ReferenceFiles->References[References_Pos].FileNames[Pos]); - if (Map_Item!=Map.end() && !Map_Item->second->ChunkList.empty()) // Note: ChunkLists with more than 1 file are not yet supported - { - ReferenceFiles->References[References_Pos].FileNames[Pos].From_UTF8(Map_Item->second->ChunkList[0].Path); - ReferenceFiles->References[References_Pos].Infos["UniqueID"].From_UTF8(Map_Item->second->Id); - } - else - { - ReferenceFiles->References[References_Pos].FileNames.erase(ReferenceFiles->References[References_Pos].FileNames.begin()+Pos); - Pos--; - } - } - - for (size_t Pos=0; PosReferences[References_Pos].CompleteDuration.size(); ++Pos) - { - map::iterator Map_Item=Map.find(ReferenceFiles->References[References_Pos].CompleteDuration[Pos].FileName); - if (Map_Item!=Map.end() && !Map_Item->second->ChunkList.empty()) // Note: ChunkLists with more than 1 file are not yet supported - { - ReferenceFiles->References[References_Pos].CompleteDuration[Pos].FileName.From_UTF8(Map_Item->second->ChunkList[0].Path); - if (ReferenceFiles->References[References_Pos].Infos["UniqueID"].empty()) - ReferenceFiles->References[References_Pos].Infos["UniqueID"].From_UTF8(Map_Item->second->Id); - } - else - { - ReferenceFiles->References[References_Pos].CompleteDuration.erase(ReferenceFiles->References[References_Pos].CompleteDuration.begin()+Pos); - Pos--; - } - } - - if (ReferenceFiles->References[References_Pos].FileNames.empty() && ReferenceFiles->References[References_Pos].CompleteDuration.empty()) - { - ReferenceFiles->References.erase(ReferenceFiles->References.begin()+References_Pos); - References_Pos--; - } - } + if (!StreamToMerge->ChunkList.empty()) // Note: ChunkLists with more than 1 file are not yet supported) + ReferenceFiles->UpdateFileName(Ztring().From_UTF8(StreamToMerge->Id), Ztring().From_UTF8(StreamToMerge->ChunkList[0].Path)); } } //NameSpace diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp index 6fb592d6848..0014bee5135 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp @@ -37,13 +37,6 @@ using namespace tinyxml2; namespace MediaInfoLib { -//*************************************************************************** -// Infos -//*************************************************************************** - -//--------------------------------------------------------------------------- -extern void DcpCpl_MergeFromAm(File__ReferenceFilesHelper* FromCpl, File__ReferenceFilesHelper* FromPkl); - //*************************************************************************** // Constructor/Destructor //*************************************************************************** @@ -106,7 +99,7 @@ size_t File_DcpPkl::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (Config->File_IsReferenced_Get() || ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -237,10 +230,11 @@ bool File_DcpPkl::FileHeader_Begin() for (File_DcpPkl::streams::iterator Stream=Streams.begin(); Stream!=Streams.end(); ++Stream) if (Stream->StreamKind==(stream_t)(Stream_Max+1) && Stream->ChunkList.size()==1) // Means CPL { - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.FileNames.push_back(Ztring().From_UTF8(Stream->ChunkList[0].Path)); + sequence* Sequence=new sequence; + Sequence->FileNames.push_back(Ztring().From_UTF8(Stream->ChunkList[0].Path)); - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); } ReferenceFiles->FilesForStorage=true; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Dxw.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Dxw.cpp index f536db46eb2..a001463a562 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Dxw.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Dxw.cpp @@ -84,7 +84,7 @@ size_t File_Dxw::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -120,23 +120,23 @@ bool File_Dxw::FileHeader_Begin() { if (string(Track->Value())=="clip") { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; Attribute=Track->Attribute("file"); if (Attribute) { - ReferenceFile.FileNames.push_back(Ztring().From_UTF8(Attribute)); + Sequence->AddFileName(Ztring().From_UTF8(Attribute)); Attribute=Track->Attribute("type"); if (Attribute) { Ztring StreamKind; StreamKind.From_UTF8(Attribute); if (StreamKind==__T("video")) - ReferenceFile.StreamKind=Stream_Video; + Sequence->StreamKind=Stream_Video; if (StreamKind==__T("audio")) - ReferenceFile.StreamKind=Stream_Audio; + Sequence->StreamKind=Stream_Audio; if (StreamKind==__T("data")) - ReferenceFile.StreamKind=Stream_Text; //Not sure this is a right mapping, but this is only used when file is missing + Sequence->StreamKind=Stream_Text; //Not sure this is a right mapping, but this is only used when file is missing } Attribute=Track->Attribute("source"); @@ -144,27 +144,27 @@ bool File_Dxw::FileHeader_Begin() { Ztring StreamKind; StreamKind.From_UTF8(Attribute); if (StreamKind==__T("main")) - ReferenceFile.IsMain=true; + Sequence->IsMain=true; } - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; } Attribute=Track->Attribute("framerate"); if (Attribute) { - ReferenceFile.FrameRate=Ztring().From_UTF8(Attribute).To_float64(); + Sequence->FrameRate_Set(Ztring().From_UTF8(Attribute).To_float64()); Attribute=Track->Attribute("type"); if (Attribute) { Ztring StreamKind; StreamKind.From_UTF8(Attribute); if (StreamKind==__T("video")) - ReferenceFile.StreamKind=Stream_Video; + Sequence->StreamKind=Stream_Video; if (StreamKind==__T("audio")) - ReferenceFile.StreamKind=Stream_Audio; + Sequence->StreamKind=Stream_Audio; if (StreamKind==__T("data")) - ReferenceFile.StreamKind=Stream_Text; //Not sure this is a right mapping, but this is only used when file is missing + Sequence->StreamKind=Stream_Text; //Not sure this is a right mapping, but this is only used when file is missing } XMLElement* Frame=Track->FirstChildElement(); @@ -174,15 +174,15 @@ bool File_Dxw::FileHeader_Begin() { Attribute=Frame->Attribute("file"); if (Attribute) - ReferenceFile.FileNames.push_back(Ztring().From_UTF8(Attribute)); + Sequence->AddFileName(Ztring().From_UTF8(Attribute)); } Frame=Frame->NextSiblingElement(); } } - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); } Track=Track->NextSiblingElement(); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Flv.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Flv.cpp index 91a46232c16..b43a764edee 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Flv.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Flv.cpp @@ -1132,7 +1132,10 @@ void File_Flv::video_AVC() //Disabling this stream if (Stream[Stream_Video].Parser->File_GoTo!=(int64u)-1 || Stream[Stream_Video].Parser->Count_Get(Stream_Video)>0 || (Config->ParseSpeed<1.0 && Stream[Stream_Video].PacketCount>=300)) - video_stream_Count=false; + { + Stream[Stream_Video].Parser->Open_Buffer_Unsynch(); + video_stream_Count=false; + } #else Skip_XX(Element_Size-Element_Offset, "AVC Data"); video_stream_Count=false; //Unable to parse it @@ -1212,7 +1215,10 @@ void File_Flv::video_HEVC() //Disabling this stream if (Stream[Stream_Video].Parser->File_GoTo!=(int64u)-1 || Stream[Stream_Video].Parser->Count_Get(Stream_Video)>0 || (Config->ParseSpeed<1.0 && Stream[Stream_Video].PacketCount>=300)) - video_stream_Count=false; + { + Stream[Stream_Video].Parser->Open_Buffer_Unsynch(); + video_stream_Count=false; + } #else Skip_XX(Element_Size-Element_Offset, "HEVC Data"); video_stream_Count=false; //Unable to parse it @@ -1321,7 +1327,10 @@ void File_Flv::audio_MPEG() //Disabling this stream if (Stream[Stream_Audio].Parser->File_GoTo!=(int64u)-1 || Stream[Stream_Audio].Parser->Count_Get(Stream_Audio)>0) - audio_stream_Count=false; + { + Stream[Stream_Audio].Parser->Open_Buffer_Unsynch(); + audio_stream_Count=false; + } #endif } @@ -1374,6 +1383,7 @@ void File_Flv::audio_AAC() Demux(Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)(Element_Size-Element_Offset), ContentType_MainStream); Open_Buffer_Continue(Stream[Stream_Audio].Parser); + Stream[Stream_Audio].Parser->Open_Buffer_Unsynch(); audio_stream_Count=false; //No need of more break; default: Skip_XX(Element_Size-Element_Offset, "Unknown"); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Gxf.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Gxf.cpp index a7b5563b44e..0b6fb816d21 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Gxf.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Gxf.cpp @@ -82,7 +82,7 @@ const char* Gxf_Tag_Name(int8u Tag) case 0x50 : return "Frame rate"; case 0x51 : return "Lines per frame"; case 0x52 : return "Fields per frame"; - default : return "Unknown"; + default : return ""; } } @@ -112,7 +112,7 @@ const char* Gxf_MediaTypes(int8u Type) case 23 : return "MPEG-1 Video"; //625 lines case 24 : return "SMPTE 12M"; //HD case 25 : return "DV"; //DVCPRO HD - default : return "Unknown"; + default : return ""; } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_HdsF4m.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_HdsF4m.cpp index a66001af525..139738eeb1f 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_HdsF4m.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_HdsF4m.cpp @@ -81,7 +81,7 @@ size_t File_HdsF4m::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -128,16 +128,16 @@ bool File_HdsF4m::FileHeader_Begin() //Period if (string(Root_Item->Value())=="media") { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; const char* Attribute; //Attributes - mineType Attribute=Root_Item->Attribute("url"); if (Attribute) - ReferenceFile.FileNames.push_back(Ztring().From_UTF8(Attribute)+__T("Seg1.f4f")); + Sequence->AddFileName(Ztring().From_UTF8(Attribute)+__T("Seg1.f4f")); - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); } } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Hls.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Hls.cpp index ffe8b7e28d8..e6b3b99c005 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Hls.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Hls.cpp @@ -83,7 +83,7 @@ size_t File_Hls::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -140,7 +140,7 @@ bool File_Hls::FileHeader_Begin() if (!IsSub) ReferenceFiles->ContainerHasNoId=true; - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; bool IsGroup=false; for (size_t Line=0; LineReferences.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->AddFileName(Lines[Line]); + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); IsGroup=false; - ReferenceFile=File__ReferenceFilesHelper::reference(); + Sequence=new sequence(); #if MEDIAINFO_EVENTS ParserIDs[0]=MediaInfo_Parser_HlsIndex; StreamIDs_Width[0]=sizeof(size_t); #endif //MEDIAINFO_EVENTS } else - ReferenceFile.FileNames.push_back(Lines[Line]); + Sequence->AddFileName(Lines[Line]); } } } - if (!ReferenceFile.FileNames.empty()) + if (!Sequence->FileNames.empty()) { - ReferenceFiles->References.push_back(ReferenceFile); + ReferenceFiles->AddSequence(Sequence); Fill(Stream_General, 0, General_Format_Profile, "Media"); } else diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.cpp index a342ae7fe79..a267125d77a 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.cpp @@ -43,18 +43,22 @@ File_Ibi::File_Ibi() #endif //MEDIAINFO_DEMUX DataMustAlwaysBeComplete=false; - //In - Ibi=NULL; + #if MEDIAINFO_IBIUSAGE + //In + Ibi=NULL; - //Temp - Ibi_MustDelete=false; + //Temp + Ibi_MustDelete=false; + #endif //MEDIAINFO_IBIUSAGE } //--------------------------------------------------------------------------- File_Ibi::~File_Ibi() { - if (Ibi_MustDelete) - delete Ibi; //Ibi=NULL; + #if MEDIAINFO_IBIUSAGE + if (Ibi_MustDelete) + delete Ibi; //Ibi=NULL; + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** @@ -62,6 +66,7 @@ File_Ibi::~File_Ibi() //*************************************************************************** //--------------------------------------------------------------------------- +#if MEDIAINFO_IBIUSAGE const Ztring &File_Ibi::Get (stream_t /*StreamKind*/, size_t /*StreamNumber*/, const Ztring &Parameter, info_t /*KindOfInfo*/, info_t /*KindOfSearch*/) { ibi::streams::iterator IbiStream_Temp=Ibi->Streams.begin(); //TODO: management of multiple streams @@ -83,6 +88,7 @@ const Ztring &File_Ibi::Get (stream_t /*StreamKind*/, size_t /*StreamNumber*/, c Get_Temp.clear(); return Get_Temp; } +#endif //MEDIAINFO_IBIUSAGE //*************************************************************************** // Streams management @@ -93,14 +99,17 @@ void File_Ibi::Streams_Accept() { Fill(Stream_General, 0, General_Format, "Ibi"); - if (Ibi==NULL) - { - Ibi=new ibi(); - Ibi_MustDelete=true; - } + #if MEDIAINFO_IBIUSAGE + if (Ibi==NULL) + { + Ibi=new ibi(); + Ibi_MustDelete=true; + } + #endif //MEDIAINFO_IBIUSAGE } //--------------------------------------------------------------------------- +#if MEDIAINFO_IBIUSAGE void File_Ibi::Streams_Finish() { Config->File_KeepInfo_Set(true); //In order to let Get() available @@ -112,6 +121,7 @@ void File_Ibi::Streams_Finish() Fill(Stream_Video, StreamPos_Last, General_ID, IbiStream_Temp->first); } } +#endif //MEDIAINFO_IBIUSAGE //*************************************************************************** // Buffer @@ -386,6 +396,7 @@ void File_Ibi::Stream_Header() Get_EB (ID_Current, "ID"); FILLING_BEGIN(); + #if MEDIAINFO_IBIUSAGE if (Ibi) { //Filling information for ID after data @@ -396,6 +407,10 @@ void File_Ibi::Stream_Header() Ibi->Streams.erase(IbiStream_Temp); } } + #else //MEDIAINFO_IBIUSAGE + Stream_Prepare(Stream_Video); + Fill(Stream_Video, StreamPos_Last, General_ID, ID_Current); + #endif //MEDIAINFO_IBIUSAGE FILLING_END(); } @@ -404,16 +419,21 @@ void File_Ibi::Stream_ByteOffset() Element_Name("Byte Offset"); //Parsing + #if MEDIAINFO_IBIUSAGE size_t Pos=0; + #endif //MEDIAINFO_IBIUSAGE int64u Offset=0; while (Element_OffsetStreams[ID_Current]->DtsFrequencyNumerator=Item; FILLING_END(); + #endif //MEDIAINFO_IBIUSAGE Get_EB (Item, "DtsFrequencyDenominator"); + #if MEDIAINFO_IBIUSAGE FILLING_BEGIN(); if (Ibi) { @@ -487,17 +517,23 @@ void File_Ibi::Stream_Dts() std::swap(Ibi->Streams[ID_Current]->DtsFrequencyNumerator, Ibi->Streams[ID_Current]->DtsFrequencyDenominator); } FILLING_END(); + #endif //MEDIAINFO_IBIUSAGE + #if MEDIAINFO_IBIUSAGE size_t Pos=0; + #endif //MEDIAINFO_IBIUSAGE int64u Offset=0; while (Element_OffsetIbi_UseIbiInfoIfAvailable_Get()) { + ZtringListList Fields(InformData_FromFile); for (size_t Pos=0; PosRead_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -132,18 +132,18 @@ bool File_Ism::FileHeader_Begin() string Value(Stream->Value()); if (Value=="video" || Value=="videostream" || Value=="audio" || Value=="audiostream" || Value=="text" || Value=="textstream") { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; if (Value=="video" || Value=="videostream") - ReferenceFile.StreamKind=Stream_Video; + Sequence->StreamKind=Stream_Video; if (Value=="audio" || Value=="audiostream") - ReferenceFile.StreamKind=Stream_Audio; + Sequence->StreamKind=Stream_Audio; if (Value=="text" || Value=="textstream" ) - ReferenceFile.StreamKind=Stream_Text; + Sequence->StreamKind=Stream_Text; const char* Attribute=Stream->Attribute("src"); if (Attribute) - ReferenceFile.FileNames.push_back(Ztring().From_UTF8(Attribute)); + Sequence->AddFileName(Ztring().From_UTF8(Attribute)); XMLElement* Param=Stream->FirstChildElement(); while (Param) @@ -155,16 +155,16 @@ bool File_Ism::FileHeader_Begin() { Attribute=Param->Attribute("value"); if (Attribute) - ReferenceFile.StreamID=Ztring().From_UTF8(Attribute).To_int64u(); + Sequence->StreamID=Ztring().From_UTF8(Attribute).To_int64u(); } } Param=Param->NextSiblingElement(); } - if (!ReferenceFile.FileNames.empty() && !ReferenceFile.FileNames[0].empty() && FileNames.find(ReferenceFile.FileNames[0])==FileNames.end()) + if (!Sequence->FileNames.empty() && !Sequence->FileNames[0].empty() && FileNames.find(Sequence->FileNames[0])==FileNames.end()) { - ReferenceFiles->References.push_back(ReferenceFile); - FileNames.insert(ReferenceFile.FileNames[0]); + ReferenceFiles->AddSequence(Sequence); + FileNames.insert(Sequence->FileNames[0]); } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mk.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mk.cpp index d50dc6aa040..a514f236290 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mk.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mk.cpp @@ -135,7 +135,7 @@ const char* Mk_StereoMode(int64u StereoMode) case 0x0C : return "Anaglyph (green/magenta)"; case 0x0D : return "Both Eyes laced in one block (left eye first)"; case 0x0E : return "Both Eyes laced in one block (right eye first)"; - default : return "Unknown"; + default : return ""; } } @@ -148,7 +148,7 @@ const char* Mk_StereoMode_v2(int64u StereoMode) case 0x01 : return "Right Eye"; case 0x02 : return "Left Eye"; case 0x03 : return "Both Eye"; - default : return "Unknown"; + default : return ""; } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.cpp index 1d2b45d0b70..4735b0094d6 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.cpp @@ -636,6 +636,7 @@ void File_Mpeg4::Streams_Finish() else { //Temp->second.Parsers[0]->Clear(StreamKind_Last, StreamPos_Last, "Delay"); //DV TimeCode is removed + Temp->second.Parsers[0]->Clear(StreamKind_Last, StreamPos_Last, "FrameCount"); Merge(*Temp->second.Parsers[0], StreamKind_Last, 0, StreamPos_Last); //Law rating @@ -846,31 +847,9 @@ void File_Mpeg4::Streams_Finish() //Aperture size if (Temp->second.CleanAperture_Width) { - Ztring CleanAperture_Width=Ztring().From_Number(Temp->second.CleanAperture_Width, 0); - Ztring CleanAperture_Height=Ztring().From_Number(Temp->second.CleanAperture_Height, 0); - if (CleanAperture_Width!=Retrieve(Stream_Video, StreamPos_Last, Video_Width)) - { - Fill(Stream_Video, StreamPos_Last, Video_Width_Original, Retrieve(Stream_Video, StreamPos_Last, Video_Width), true); - Fill(Stream_Video, StreamPos_Last, Video_Width, Temp->second.CleanAperture_Width, 0, true); - } - if (CleanAperture_Height!=Retrieve(Stream_Video, StreamPos_Last, Video_Height)) - { - Fill(Stream_Video, StreamPos_Last, Video_Height_Original, Retrieve(Stream_Video, StreamPos_Last, Video_Height), true); - Fill(Stream_Video, StreamPos_Last, Video_Height, Temp->second.CleanAperture_Height, 0, true); - } - if (Temp->second.CleanAperture_PixelAspectRatio) - { - Clear(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio); - Clear(Stream_Video, StreamPos_Last, Video_PixelAspectRatio); - Fill(Stream_Video, StreamPos_Last, Video_PixelAspectRatio, Temp->second.CleanAperture_PixelAspectRatio, 3, true); - if (Retrieve(Stream_Video, StreamPos_Last, Video_PixelAspectRatio)==Retrieve(Stream_Video, StreamPos_Last, Video_PixelAspectRatio_Original)) - Clear(Stream_Video, StreamPos_Last, Video_PixelAspectRatio_Original); - if (Retrieve(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio)==Retrieve(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio_Original)) - { - Clear(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio_Original); - Clear(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio_Original_String); - } - } + Fill(Stream_Video, StreamPos_Last, "Width_CleanAperture", Temp->second.CleanAperture_Width, 0, true); + Fill(Stream_Video, StreamPos_Last, "Height_CleanAperture", Temp->second.CleanAperture_Height, 0, true); + Fill(Stream_Video, StreamPos_Last, "PixelAspectRatio_CleanAperture", Temp->second.CleanAperture_PixelAspectRatio, 3, true); } //Special case: QuickTime files and Stereo streams, there is a default value in QuickTime player, a QuickTime "standard"? @@ -932,7 +911,7 @@ void File_Mpeg4::Streams_Finish() if (Count_Get(Stream_Video)==0 && Count_Get(Stream_Image)==0 && Count_Get(Stream_Audio)>0) Fill(Stream_General, 0, General_InternetMediaType, "audio/mp4", Unlimited, true, true); - //Parsing reference files + //Parsing sequence files #ifdef MEDIAINFO_REFERENCES_YES for (streams::iterator Stream=Streams.begin(); Stream!=Streams.end(); ++Stream) if (!Stream->second.File_Name.empty()) @@ -940,16 +919,16 @@ void File_Mpeg4::Streams_Finish() if (ReferenceFiles==NULL) ReferenceFiles=new File__ReferenceFilesHelper(this, Config); - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.FileNames.push_back(Stream->second.File_Name); - ReferenceFile.StreamKind=Stream->second.StreamKind; - ReferenceFile.StreamPos=Stream->second.StreamPos; - ReferenceFile.StreamID=Retrieve(Stream->second.StreamKind, Stream->second.StreamPos, General_ID).To_int64u(); + sequence* Sequence=new sequence; + Sequence->AddFileName(Stream->second.File_Name); + Sequence->StreamKind=Stream->second.StreamKind; + Sequence->StreamPos=Stream->second.StreamPos; + Sequence->StreamID=Retrieve(Stream->second.StreamKind, Stream->second.StreamPos, General_ID).To_int64u(); if (Stream->second.StreamKind==Stream_Video) { - ReferenceFile.FrameRate=Retrieve(Stream_Video, Stream->second.StreamPos, Video_FrameRate).To_float64(); + Sequence->FrameRate_Set(Retrieve(Stream_Video, Stream->second.StreamPos, Video_FrameRate).To_float64()); - #ifdef MEDIAINFO_IBI_YES + #if MEDIAINFO_IBIUSAGE for (size_t stss_Pos=0; stss_Possecond.stss.size(); stss_Pos++) { int64u Value=Stream->second.stss[stss_Pos]; @@ -974,22 +953,22 @@ void File_Mpeg4::Streams_Finish() IbiInfo.StreamOffset=Stream->second.stco[stco_Pos]; IbiInfo.FrameNumber=Value; IbiInfo.Dts=TimeCode_DtsOffset+(stts_Duration->DTS_Begin+(((int64u)stts_Duration->SampleDuration)*(Value-stts_Duration->Pos_Begin)))*1000000000/Stream->second.mdhd_TimeScale; - ReferenceFile.IbiStream.Add(IbiInfo); + Sequence->IbiStream.Add(IbiInfo); } } } } - #endif //MEDIAINFO_IBI_YES + #endif //MEDIAINFO_IBIUSAGE } - ReferenceFiles->References.push_back(ReferenceFile); + ReferenceFiles->AddSequence(Sequence); } if (ReferenceFiles) { ReferenceFiles->ParseReferences(); #if MEDIAINFO_NEXTPACKET - if (Config->NextPacket_Get() && ReferenceFiles && !ReferenceFiles->References.empty()) + if (Config->NextPacket_Get() && ReferenceFiles && ReferenceFiles->Sequences_Size()) { ReferenceFiles_IsParsing=true; return; @@ -1186,7 +1165,7 @@ size_t File_Mpeg4::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { #if defined(MEDIAINFO_REFERENCES_YES) if (ReferenceFiles) - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); #endif //defined(MEDIAINFO_REFERENCES_YES) if (!IsSub && MajorBrand==0x6A703220) //"jp2 " return Read_Buffer_Seek_OneFramePerFile(Method, Value, ID); @@ -1323,6 +1302,15 @@ size_t File_Mpeg4::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) default : ; } + if (!StreamOffset_Jump.empty()) + { + std::map::iterator StreamOffset_Current=StreamOffset_Jump.end(); + do + --StreamOffset_Current; + while (StreamOffset_Current->second>JumpTo && StreamOffset_Current!=StreamOffset_Jump.begin()); + JumpTo=StreamOffset_Current->second; + } + GoTo(JumpTo); Open_Buffer_Unsynch(); return 1; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.h index c1ff5b89da6..aedf73b6e1b 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.h @@ -164,6 +164,8 @@ private : void moov_trak_mdia_minf_stbl_stsd_xxxx_chan(); void moov_trak_mdia_minf_stbl_stsd_xxxx_clap(); void moov_trak_mdia_minf_stbl_stsd_xxxx_colr(); + void moov_trak_mdia_minf_stbl_stsd_xxxx_colr_nclc(bool LittleEndian=false); + void moov_trak_mdia_minf_stbl_stsd_xxxx_colr_prof(); void moov_trak_mdia_minf_stbl_stsd_xxxx_d263(); void moov_trak_mdia_minf_stbl_stsd_xxxx_dac3(); void moov_trak_mdia_minf_stbl_stsd_xxxx_damr(); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4_Elements.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4_Elements.cpp index 4866faad89a..dad3df2c843 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4_Elements.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4_Elements.cpp @@ -40,6 +40,9 @@ #if defined(MEDIAINFO_AVC_YES) #include "MediaInfo/Video/File_Avc.h" #endif +#if defined(MEDIAINFO_FFV1_YES) + #include "MediaInfo/Video/File_Ffv1.h" +#endif #if defined(MEDIAINFO_H263_YES) #include "MediaInfo/Video/File_H263.h" #endif @@ -128,7 +131,7 @@ const char* Mpeg4_Meta_Kind(int32u Kind) case 0x15 : return "Signed Integer"; //the size of the integer is derived from the container size case 0x16 : return "Float 32"; case 0x17 : return "Float 64"; - default : return "Unknown"; + default : return ""; } } @@ -145,7 +148,7 @@ const char* Mpeg4_TypeModifierName(int32u TypeModifierName) case 0x06 : return "Matrix object"; case 0x07 : return "Graphics mode object"; case 0x76696465 : return "Image type"; - default : return "Unknown"; + default : return ""; } } @@ -694,6 +697,9 @@ namespace Elements const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_clap=0x636C6170; const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_chan=0x6368616E; const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_colr=0x636F6C72; + const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_colr_clcn=0x636C636E; + const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_colr_nclc=0x6E636C63; + const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_colr_prof=0x70726F66; const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_d263=0x64323633; const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_dac3=0x64616333; const int64u moov_trak_mdia_minf_stbl_stsd_xxxx_damr=0x64616D72; @@ -840,7 +846,7 @@ const char* Mpeg4_Description(int32u Description) case Elements::moov_trak_mdia_minf_stbl_stsd_xxxx_idfm_priv : return "Private"; case Elements::moov_trak_mdia_minf_stbl_stsd_xxxx_idfm_subs : return "Substitute if main codec not available"; case Elements::moov_trak_mdia_minf_stbl_stsd_xxxx_idfm_cspc : return "Native pixel format"; - default : return "Unknown"; + default : return ""; } } @@ -1316,7 +1322,8 @@ void File_Mpeg4::cdat() #if MEDIAINFO_DEMUX Demux(Buffer+Buffer_Offset, (size_t)Element_Size, ContentType_MainStream); - Streams[(int32u)Element_Code].Parsers[0]->FrameInfo=FrameInfo; + Streams[(int32u)Element_Code].Parsers[0]->FrameInfo.DTS=FrameInfo.DTS; + Streams[(int32u)Element_Code].Parsers[0]->FrameInfo.DUR=FrameInfo.DUR/(Element_Size/2); #endif //MEDIAINFO_DEMUX while (Element_Offset+2<=Element_Size) { @@ -4056,6 +4063,8 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx() default : Skip_XX(Element_TotalSize_Get()-Element_Offset, "Unknown"); } } + if (Element_IsWaitingForMoreData()) + return; if (Streams[moov_trak_tkhd_TrackID].Parsers.size()==1 && !Retrieve(StreamKind_Last, StreamPos_Last, "Encryption").empty()) { @@ -4488,6 +4497,7 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxVideo() int16u Width, Height, Depth, ColorTableID; int8u CompressorName_Size; + bool IsGreyscale; Skip_B2( "Version"); Skip_B2( "Revision level"); Skip_C4( "Vendor"); @@ -4511,9 +4521,31 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxVideo() //this is hard-coded 32-byte string Skip_Local(32, "Compressor name"); Get_B2 (Depth, "Depth"); + if (Depth>0x20 && Depth<0x40) + { + Depth-=0x20; + IsGreyscale=true; + } + else if (Depth==1) + IsGreyscale=true; + else + IsGreyscale=false; Get_B2 (ColorTableID, "Color table ID"); - if (ColorTableID==0 && Width && Height) //In one file, if Zero-filled, Color table is not present - Skip_XX(32, "Color Table"); + if (!IsGreyscale && (Depth>1 && Depth<=8) && !ColorTableID) + { + int32u ColorStart; + int16u ColorEnd; + Get_B4 (ColorStart, "Color Start"); + Skip_B2( "Color Count"); + Get_B2 (ColorEnd, "Color End"); + for (int32u Color=ColorStart; Color<=ColorEnd; Color++) + { + Skip_B2( "Alpha"); + Skip_B2( "Red"); + Skip_B2( "Green"); + Skip_B2( "Blue"); + } + } if (moov_trak_mdia_minf_stbl_stsd_Pos) return; //Handling only the first description @@ -4590,6 +4622,13 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxVideo() Streams[moov_trak_tkhd_TrackID].Parsers.push_back(Parser); } #endif + #if defined(MEDIAINFO_FFV1_YES) + if (MediaInfoLib::Config.CodecID_Get(Stream_Video, InfoCodecID_Format_Mpeg4, Ztring().From_CC4((int32u)Element_Code), InfoCodecID_Format)==__T("FFV1")) + { + File_Ffv1* Parser=new File_Ffv1; + Streams[moov_trak_tkhd_TrackID].Parsers.push_back(Parser); + } + #endif #if defined(MEDIAINFO_H263_YES) if (MediaInfoLib::Config.CodecID_Get(Stream_Video, InfoCodecID_Format_Mpeg4, Ztring().From_CC4((int32u)Element_Code), InfoCodecID_Format)==__T("H.263")) { @@ -4692,17 +4731,12 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxVideo() //RGB(A) if (Codec=="raw " || Codec=="rle ") { - if (Depth==1) + if (IsGreyscale) { Fill(Stream_Video, StreamPos_Last, Video_ColorSpace, "Y", Unlimited, true, true); - Fill(Stream_Video, StreamPos_Last, Video_BitDepth, 1); - } - else if (Depth<15) - { - Fill(Stream_Video, StreamPos_Last, Video_ColorSpace, "RGB", Unlimited, true, true); - Fill(Stream_Video, StreamPos_Last, Video_BitDepth, 8); + Fill(Stream_Video, StreamPos_Last, Video_BitDepth, Depth); } - else if (Depth==32 || Depth==36) + else if (Depth==32) { Fill(Stream_Video, StreamPos_Last, Video_ColorSpace, "RGBA", Unlimited, true, true); Fill(Stream_Video, StreamPos_Last, Video_BitDepth, Depth/4); @@ -5033,12 +5067,38 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_colr() { Element_Name("Color Parameter"); + //Parsing + int32u ColorParameterType; + Get_C4 (ColorParameterType, "Color parameter type"); + switch (ColorParameterType) + { + case Elements::moov_trak_mdia_minf_stbl_stsd_xxxx_colr_clcn: moov_trak_mdia_minf_stbl_stsd_xxxx_colr_nclc(true); break; + case Elements::moov_trak_mdia_minf_stbl_stsd_xxxx_colr_nclc: moov_trak_mdia_minf_stbl_stsd_xxxx_colr_nclc(); break; + case Elements::moov_trak_mdia_minf_stbl_stsd_xxxx_colr_prof: moov_trak_mdia_minf_stbl_stsd_xxxx_colr_prof(); break; + default : Skip_XX(Element_Size-Element_Offset, "Unknown"); + } +} + +//--------------------------------------------------------------------------- +void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_colr_nclc(bool LittleEndian) +{ //Parsing int16u colour_primaries, transfer_characteristics, matrix_coefficients; - Skip_C4( "Color parameter type"); - Get_B2 (colour_primaries, "Primaries index"); Param_Info1(Mpegv_colour_primaries((int8u)colour_primaries)); - Get_B2 (transfer_characteristics, "Transfer function index"); Param_Info1(Mpegv_transfer_characteristics((int8u)transfer_characteristics)); - Get_B2 (matrix_coefficients, "Matrix index"); Param_Info1(Mpegv_matrix_coefficients((int8u)matrix_coefficients)); + if (LittleEndian) + Get_L2 (colour_primaries, "Primaries index"); + else + Get_B2 (colour_primaries, "Primaries index"); + Param_Info1(Mpegv_colour_primaries((int8u)colour_primaries)); + if (LittleEndian) + Get_L2 (transfer_characteristics, "Transfer function index"); + else + Get_B2 (transfer_characteristics, "Transfer function index"); + Param_Info1(Mpegv_transfer_characteristics((int8u)transfer_characteristics)); + if (LittleEndian) + Get_L2 (matrix_coefficients, "Matrix index"); + else + Get_B2 (matrix_coefficients, "Matrix index"); + Param_Info1(Mpegv_matrix_coefficients((int8u)matrix_coefficients)); FILLING_BEGIN(); if (Retrieve(Stream_Video, StreamPos_Last, Video_colour_description_present).empty()) //Using only the first one met @@ -5051,6 +5111,13 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_colr() FILLING_END(); } +//--------------------------------------------------------------------------- +void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_colr_prof() +{ + //Parsing + Skip_XX(Element_Size-Element_Offset, "ICC profile"); //TODO: parse ICC profile +} + //--------------------------------------------------------------------------- void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_d263() { diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp index e2fb1843a18..bd5c9dd1f4c 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp @@ -90,11 +90,9 @@ #include "MediaInfo/MediaInfo_Config_MediaInfo.h" #include "MediaInfo/MediaInfo_Events_Internal.h" #endif //MEDIAINFO_EVENTS -#if MEDIAINFO_IBI - #if MEDIAINFO_SEEK - #include "MediaInfo/Multiple/File_Ibi.h" - #endif //MEDIAINFO_SEEK -#endif //MEDIAINFO_IBI +#if MEDIAINFO_IBIUSAGE && MEDIAINFO_SEEK + #include "MediaInfo/Multiple/File_Ibi.h" +#endif //MEDIAINFO_IBIUSAGE && MEDIAINFO_SEEK using namespace ZenLib; using namespace std; //--------------------------------------------------------------------------- @@ -556,7 +554,7 @@ void File_MpegPs::Streams_Finish() } } - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (!IsSub && Config_Ibi_Create) { for (ibi::streams::iterator IbiStream_Temp=Ibi.Streams.begin(); IbiStream_Temp!=Ibi.Streams.end(); ++IbiStream_Temp) @@ -579,7 +577,7 @@ void File_MpegPs::Streams_Finish() } } } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //--------------------------------------------------------------------------- @@ -1005,7 +1003,7 @@ size_t File_MpegPs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (!Duration_Detected) { //External IBI - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE std::string IbiFile=Config->Ibi_Get(); if (!IbiFile.empty()) { @@ -1046,7 +1044,7 @@ size_t File_MpegPs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (Ibi.Streams.empty()) return 4; //Problem during IBI file parsing } - #endif //#if MEDIAINFO_IBI + #endif //#if MEDIAINFO_IBIUSAGE Duration_Detected=true; } @@ -1063,7 +1061,7 @@ size_t File_MpegPs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) Open_Buffer_Unsynch(); return 1; case 2 : //Timestamp - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE { ibi::streams::iterator IbiStream_Temp; if (ID==(int64u)-1) @@ -1118,11 +1116,11 @@ size_t File_MpegPs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) return 2; //Invalid value } - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return (size_t)-2; //Not supported / IBI disabled - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE case 3 : //FrameNumber - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE { ibi::streams::iterator IbiStream_Temp; if (ID==(int64u)-1) @@ -1154,9 +1152,9 @@ size_t File_MpegPs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) return 2; //Invalid value } - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return (size_t)-2; //Not supported / IBI disabled - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE default : return (size_t)-1; //Not supported } } @@ -1649,6 +1647,8 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u stream_id) FrameInfo.DTS=(((int64u)DTS_32)<<30) | (((int64u)DTS_29)<<15) | (((int64u)DTS_14)); + if (Frame_Count<16 &&FrameInfo.DTS>=0x100000000LL) //Hack in case DTS is negative (currently not supported by MI). TODO: negative DTS. + FrameInfo.DTS=0; if (Streams[stream_id].Searching_TimeStamp_End) { if (Streams[stream_id].TimeStamp_End.DTS.TimeStamp==(int64u)-1) @@ -1734,15 +1734,15 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u stream_id) return; } Buffer_Pos_Flags++; - PTS_DTS_flags =Buffer[Buffer_Pos_Flags]>>6; - ESCR_flag =Buffer[Buffer_Pos_Flags]&0x20?true:false; - ES_rate_flag =Buffer[Buffer_Pos_Flags]&0x10?true:false; - DSM_trick_mode_flag =Buffer[Buffer_Pos_Flags]&0x08?true:false; - additional_copy_info_flag =Buffer[Buffer_Pos_Flags]&0x04?true:false; - PES_CRC_flag =Buffer[Buffer_Pos_Flags]&0x02?true:false; - PES_extension_flag =Buffer[Buffer_Pos_Flags]&0x01?true:false; + PTS_DTS_flags = Buffer[Buffer_Pos_Flags] >> 6; + ESCR_flag = (Buffer[Buffer_Pos_Flags] & 0x20) ? true: false; + ES_rate_flag = (Buffer[Buffer_Pos_Flags] & 0x10) ? true: false; + DSM_trick_mode_flag = (Buffer[Buffer_Pos_Flags] & 0x08) ? true: false; + additional_copy_info_flag = (Buffer[Buffer_Pos_Flags] & 0x04) ? true: false; + PES_CRC_flag = (Buffer[Buffer_Pos_Flags] & 0x02) ? true: false; + PES_extension_flag = (Buffer[Buffer_Pos_Flags] & 0x01) ? true: false; Buffer_Pos_Flags++; - PES_header_data_length =Buffer[Buffer_Pos_Flags]; + PES_header_data_length = Buffer[Buffer_Pos_Flags]; Element_Offset+=3; #if MEDIAINFO_TRACE } @@ -1939,6 +1939,8 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u stream_id) FrameInfo.DTS=(((int64u)DTS_32)<<30) | (((int64u)DTS_29)<<15) | (((int64u)DTS_14)); + if (Frame_Count<16 &&FrameInfo.DTS>=0x100000000LL) //Hack in case DTS is negative (currently not supported by MI). TODO: negative DTS. + FrameInfo.DTS=0; Element_Info_From_Milliseconds(float64_int64s(((float64)FrameInfo.DTS)/90)); Element_End0(); Element_End0(); @@ -1963,6 +1965,8 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u stream_id) | ( ((int64u)Buffer[Buffer_Pos+1] )<<22)|((((int64u)Buffer[Buffer_Pos+2]&0xFE))<<14) | ( ((int64u)Buffer[Buffer_Pos+3] )<< 7)|((((int64u)Buffer[Buffer_Pos+4]&0xFE))>> 1); Element_Offset+=5; + if (Frame_Count<16 &&FrameInfo.DTS>=0x100000000LL) //Hack in case DTS is negative (currently not supported by MI). TODO: negative DTS. + FrameInfo.DTS=0; #if MEDIAINFO_TRACE } #endif //MEDIAINFO_TRACE @@ -2470,10 +2474,10 @@ void File_MpegPs::pack_start() SizeToAnalyze=2*1024*1024; //Not too less } - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (!IsSub) Ibi_SynchronizationOffset_Current=File_Offset+Buffer_Offset-Header_Size; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE FILLING_END(); } @@ -3409,7 +3413,7 @@ void File_MpegPs::video_stream() { Streams[stream_id].Parsers[Pos]->CA_system_ID_MustSkipSlices=CA_system_ID_MustSkipSlices; Open_Buffer_Init(Streams[stream_id].Parsers[Pos]); - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (FromTS) Streams[stream_id].Parsers[Pos]->IbiStream=IbiStream; else @@ -3418,7 +3422,7 @@ void File_MpegPs::video_stream() Ibi.Streams[stream_id]=new ibi::stream; Streams[stream_id].Parsers[Pos]->IbiStream=Ibi.Streams[stream_id]; } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if MEDIAINFO_SEEK if (Unsynch_Frame_Counts.find(stream_id)!=Unsynch_Frame_Counts.end()) Streams[stream_id].Parsers[Pos]->Frame_Count_NotParsedIncluded=Unsynch_Frame_Counts[stream_id]; @@ -3970,9 +3974,9 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &stream_Count) if (Temp.Parsers.size()>1) Element_Begin1("Test"); #endif //MEDIAINFO_TRACE - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Temp.Parsers[Pos]->Ibi_SynchronizationOffset_Current=Ibi_SynchronizationOffset_Current; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if defined(MEDIAINFO_EIA608_YES) || defined(MEDIAINFO_EIA708_YES) Temp.Parsers[Pos]->ServiceDescriptors=ServiceDescriptors; #endif @@ -4088,7 +4092,7 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &stream_Count) #endif //MEDIAINFO_DEMUX #endif //MEDIAINFO_EVENTS - #if MEDIAINFO_SEEK && MEDIAINFO_IBI + #if MEDIAINFO_SEEK && MEDIAINFO_IBIUSAGE if (Seek_ID!=(int64u)-1) { if (Ibi.Streams[Seek_ID]->IsModified) @@ -4117,7 +4121,7 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &stream_Count) } } } - #endif //MEDIAINFO_SEEK && MEDIAINFO_IBI + #endif //MEDIAINFO_SEEK && MEDIAINFO_IBIUSAGE } //*************************************************************************** diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegTs.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegTs.cpp index 5b41da130a5..db0abb821ed 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegTs.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegTs.cpp @@ -34,11 +34,9 @@ #include "MediaInfo/MediaInfo_Config_MediaInfo.h" #include "MediaInfo/MediaInfo_Events_Internal.h" #endif //MEDIAINFO_EVENTS -#if MEDIAINFO_IBI - #if MEDIAINFO_SEEK - #include "MediaInfo/Multiple/File_Ibi.h" - #endif //MEDIAINFO_SEEK -#endif //MEDIAINFO_IBI +#if MEDIAINFO_IBIUSAGE && MEDIAINFO_SEEK + #include "MediaInfo/Multiple/File_Ibi.h" +#endif //MEDIAINFO_IBIUSAGE && MEDIAINFO_SEEK using namespace std; //--------------------------------------------------------------------------- @@ -324,7 +322,7 @@ void File_MpegTs::Streams_Accept() Config->File_IgnoreSequenceFileSize_Set(false); if (Config->File_IgnoreSequenceFilesCount_Get()) Config->File_IgnoreSequenceFilesCount_Set(false); - #endif MEDIAINFO_ADVANCED + #endif //MEDIAINFO_ADVANCED TestContinuousFileNames(); } @@ -1272,7 +1270,7 @@ void File_MpegTs::Streams_Finish() File__Duplicate_Streams_Finish(); #endif //MEDIAINFO_DUPLICATE - #if MEDIAINFO_IBI + #if MEDIAINFO_IBICREATE if (!IsSub && Config_Ibi_Create) { for (ibi::streams::iterator IbiStream_Temp=Ibi.Streams.begin(); IbiStream_Temp!=Ibi.Streams.end(); ++IbiStream_Temp) @@ -1295,7 +1293,7 @@ void File_MpegTs::Streams_Finish() } } } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** @@ -1420,12 +1418,12 @@ bool File_MpegTs::Synched_Test() } return true; //Version has no meaning } - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (table_id==0x00) Complete_Stream->Streams[pid]->Ibi_SynchronizationOffset_BeginOfFrame=File_Offset+Buffer_Offset; if (table_id==0x02) Complete_Stream->Streams[pid]->Ibi_SynchronizationOffset_BeginOfFrame=Complete_Stream->Streams[0x0000]->Ibi_SynchronizationOffset_BeginOfFrame; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE complete_stream::stream::table_ids::iterator Table_ID=Stream->Table_IDs.begin()+table_id; if (*Table_ID) { @@ -1696,8 +1694,17 @@ bool File_MpegTs::Synched_Test() { //We are already parsing 16 seconds (for all PCRs), we don't hope to have more info MpegTs_JumpTo_Begin=File_Offset+Buffer_Offset-Buffer_TotalBytes_FirstSynched; - if (MpegTs_JumpTo_End>MpegTs_JumpTo_Begin) - MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>=File_Size) + { + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>File_Size) + { + MpegTs_JumpTo_Begin=File_Size; + MpegTs_JumpTo_End=0; + } + else + MpegTs_JumpTo_Begin=File_Size-MpegTs_JumpTo_End; + } } } } @@ -1821,13 +1828,13 @@ void File_MpegTs::Read_Buffer_Unsynched() Complete_Stream->Streams[StreamID]->Parser->Unsynch_Frame_Count=0; Complete_Stream->Streams[StreamID]->Parser->Open_Buffer_Unsynch(); } - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Complete_Stream->Streams[StreamID]->Ibi_SynchronizationOffset_BeginOfFrame=(int64u)-1; for (complete_stream::stream::table_ids::iterator TableID=Complete_Stream->Streams[StreamID]->Table_IDs.begin(); TableID!=Complete_Stream->Streams[StreamID]->Table_IDs.end(); ++TableID) if (*TableID) for (complete_stream::stream::table_id::table_id_extensions::iterator TableIdExtension=(*TableID)->Table_ID_Extensions.begin(); TableIdExtension!=(*TableID)->Table_ID_Extensions.end(); ++TableIdExtension) TableIdExtension->second.version_number=(int8u)-1; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } Complete_Stream->Duration_End.clear(); @@ -1916,6 +1923,24 @@ void File_MpegTs::Read_Buffer_AfterParsing() Status[IsUpdated]=true; Status[User_19]=true; + // + if (!(Buffer_TotalBytes-Buffer_TotalBytes_FirstSynched>=MpegTs_JumpTo_Begin && Config->ParseSpeed<0.8)) + { + //We are already parsing 16 seconds (for all PCRs), we don't hope to have more info + MpegTs_JumpTo_Begin=File_Offset+Buffer_Offset-Buffer_TotalBytes_FirstSynched; + MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>=File_Size) + { + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>File_Size) + { + MpegTs_JumpTo_Begin=File_Size; + MpegTs_JumpTo_End=0; + } + else + MpegTs_JumpTo_Begin=File_Size-MpegTs_JumpTo_End; + } + } + //Jumping if (Config->ParseSpeed<1.0 && Config->File_IsSeekable_Get() #if MEDIAINFO_ADVANCED @@ -1951,7 +1976,7 @@ size_t File_MpegTs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (!Duration_Detected) { //External IBI - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE std::string IbiFile=Config->Ibi_Get(); if (!IbiFile.empty()) { @@ -1995,7 +2020,7 @@ size_t File_MpegTs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (Ibi.Streams.empty()) return 4; //Problem during IBI file parsing } - #endif //#if MEDIAINFO_IBI + #endif //#if MEDIAINFO_IBIUSAGE Duration_Detected=true; } @@ -2012,7 +2037,7 @@ size_t File_MpegTs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) Open_Buffer_Unsynch(); return 1; case 2 : //Timestamp - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE { ibi::streams::iterator IbiStream_Temp; if (ID==(int64u)-1) @@ -2075,11 +2100,11 @@ size_t File_MpegTs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) return 2; //Invalid value } - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return (size_t)-2; //Not supported / IBI disabled - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE case 3 : //FrameNumber - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE { ibi::streams::iterator IbiStream_Temp; if (ID==(int64u)-1) @@ -2118,9 +2143,9 @@ size_t File_MpegTs::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) return 2; //Invalid value } - #else //MEDIAINFO_IBI + #else //MEDIAINFO_IBIUSAGE return (size_t)-2; //Not supported / IBI disabled - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE default : return (size_t)-1; //Not supported } } @@ -2427,8 +2452,17 @@ void File_MpegTs::Header_Parse_AdaptationField() { //We are already parsing 16 seconds (for all PCRs), we don't hope to have more info MpegTs_JumpTo_Begin=File_Offset+Buffer_Offset-Buffer_TotalBytes_FirstSynched; - if (MpegTs_JumpTo_End>MpegTs_JumpTo_Begin) - MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>=File_Size) + { + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>File_Size) + { + MpegTs_JumpTo_Begin=File_Size; + MpegTs_JumpTo_End=0; + } + else + MpegTs_JumpTo_Begin=File_Size-MpegTs_JumpTo_End; + } } } } @@ -2656,8 +2690,17 @@ void File_MpegTs::Header_Parse_AdaptationField() { //We are already parsing 16 seconds (for all PCRs), we don't hope to have more info MpegTs_JumpTo_Begin=File_Offset+Buffer_Offset-Buffer_TotalBytes_FirstSynched; - if (MpegTs_JumpTo_End>MpegTs_JumpTo_Begin) - MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + MpegTs_JumpTo_End=MpegTs_JumpTo_Begin; + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>=File_Size) + { + if (MpegTs_JumpTo_Begin+MpegTs_JumpTo_End>File_Size) + { + MpegTs_JumpTo_Begin=File_Size; + MpegTs_JumpTo_End=0; + } + else + MpegTs_JumpTo_Begin=File_Size-MpegTs_JumpTo_End; + } } } } @@ -2904,11 +2947,11 @@ void File_MpegTs::PES() Streams[pid]->Parser=new File_Unknown(); #endif Complete_Stream->Streams[pid]->Parser->CA_system_ID_MustSkipSlices=Complete_Stream->Streams[pid]->CA_system_ID_MustSkipSlices; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (Ibi.Streams[pid]==NULL) Ibi.Streams[pid]=new ibi::stream; Complete_Stream->Streams[pid]->Parser->IbiStream=Ibi.Streams[pid]; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE Open_Buffer_Init(Complete_Stream->Streams[pid]->Parser); } @@ -2922,7 +2965,7 @@ void File_MpegTs::PES() //Parsing if (Complete_Stream->Streams[pid]->IsPCR) ((File_MpegPs*)Complete_Stream->Streams[pid]->Parser)->FrameInfo.PCR=Complete_Stream->Streams[pid]->TimeStamp_End==(int64u)-1?(int64u)-1:Complete_Stream->Streams[pid]->TimeStamp_End*1000/27; //27 MHz - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (Complete_Stream->transport_stream_id!=(int16u)-1 && !Complete_Stream->Streams[pid]->program_numbers.empty()) { int16u Program_PID=Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[Complete_Stream->Streams[pid]->program_numbers[0]].pid; @@ -2932,7 +2975,7 @@ void File_MpegTs::PES() } else Complete_Stream->Streams[pid]->Parser->Ibi_SynchronizationOffset_Current=File_Offset+Buffer_Offset-Header_Size; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if defined(MEDIAINFO_ARIBSTDB24B37_YES) if (FromAribStdB24B37) @@ -3028,7 +3071,7 @@ void File_MpegTs::PES_Parse_Finish() #endif //MEDIAINFO_MPEGTS_PESTIMESTAMP_YES } - #if MEDIAINFO_SEEK && MEDIAINFO_IBI + #if MEDIAINFO_SEEK && MEDIAINFO_IBIUSAGE if (Seek_ID!=(int64u)-1) { if (Ibi.Streams[Seek_ID]->IsModified) @@ -3054,7 +3097,7 @@ void File_MpegTs::PES_Parse_Finish() } } } - #endif //MEDIAINFO_SEEK && MEDIAINFO_IBI + #endif //MEDIAINFO_SEEK && MEDIAINFO_IBIUSAGE } //--------------------------------------------------------------------------- @@ -3075,9 +3118,9 @@ void File_MpegTs::PSI() } //Parsing - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Complete_Stream->Streams[pid]->Parser->Ibi_SynchronizationOffset_Current=File_Offset+Buffer_Offset-Header_Size; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE Open_Buffer_Continue(Complete_Stream->Streams[pid]->Parser); //Filling diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Descriptors.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Descriptors.h index 5e0195a17ff..56f5c0abe13 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Descriptors.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Descriptors.h @@ -379,9 +379,9 @@ struct complete_stream size_t IsScrambled; int16u CA_system_ID; int16u SubStream_pid; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE int64u Ibi_SynchronizationOffset_BeginOfFrame; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if defined(MEDIAINFO_EIA608_YES) || defined(MEDIAINFO_EIA708_YES) File__Analyze::servicedescriptors ServiceDescriptors; bool ServiceDescriptors_IsPresent; @@ -448,9 +448,9 @@ struct complete_stream CA_system_ID=0x0000; EBP_IsPresent=false; SubStream_pid=0x0000; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Ibi_SynchronizationOffset_BeginOfFrame=(int64u)-1; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if defined(MEDIAINFO_EIA608_YES) || defined(MEDIAINFO_EIA708_YES) ServiceDescriptors_IsPresent=false; #endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Psi.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Psi.cpp index 795a29332b8..17836f4a92d 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Psi.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Psi.cpp @@ -135,6 +135,8 @@ const char* Mpeg_Psi_stream_type_Format(int8u stream_type, int32u format_identif case 0x85 : return "DTS"; //" (HD-HRA)" case 0x86 : return "DTS"; //" (HD-MA)" case 0x90 : return "PGS"; + case 0x91 : return "PGS"; + case 0x92 : return "TEXTST"; //Blu-ray subtitle text case 0xA1 : return "AC-3"; case 0xA2 : return "DTS"; case 0xEA : return "VC-1"; @@ -200,6 +202,8 @@ const char* Mpeg_Psi_stream_type_Codec(int8u stream_type, int32u format_identifi case 0x83 : return "AC3+"; case 0x86 : return "DTS"; case 0x90 : return "PGS"; + case 0x91 : return "PGS"; + case 0x92 : return "TEXTST"; //Blu-ray Subtitle Text case 0xEA : return "VC1"; default : return ""; } @@ -268,6 +272,8 @@ stream_t Mpeg_Psi_stream_type_StreamKind(int32u stream_type, int32u format_ident case 0x85 : return Stream_Audio; case 0x86 : return Stream_Audio; case 0x90 : return Stream_Text; + case 0x91 : return Stream_Text; + case 0x92 : return Stream_Text; case 0xA1 : return Stream_Audio; case 0xA2 : return Stream_Audio; case 0xEA : return Stream_Video; @@ -370,6 +376,8 @@ const char* Mpeg_Psi_stream_type_Info(int8u stream_type, int32u format_identifie case 0x85 : return "BluRay - DTS (HD-HRA)"; case 0x86 : return "BluRay - DTS (HD-MA)"; case 0x90 : return "BluRay - PGS"; + case 0x91 : return "BluRay - PGS"; + case 0x92 : return "BluRay - TEXTST"; case 0xA1 : return "BluRay - AC-3"; case 0xA2 : return "BluRay - DTS"; case 0xEA : return "BluRay - VC-1"; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.cpp index 1aafe061b4a..e15fcb7b8de 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.cpp @@ -73,7 +73,9 @@ #include "ZenLib/FileName.h" #include "ZenLib/Dir.h" #include "MediaInfo/MediaInfo_Internal.h" -#include "MediaInfo/Multiple/File__ReferenceFilesHelper.h" +#if defined(MEDIAINFO_REFERENCES_YES) + #include "MediaInfo/Multiple/File__ReferenceFilesHelper.h" +#endif //defined(MEDIAINFO_REFERENCES_YES) #include "ZenLib/Format/Http/Http_Utils.h" #include #if MEDIAINFO_SEEK @@ -114,7 +116,7 @@ namespace MediaInfoLib namespace Elements { - // 01 - Identifiers and locators + // 01 - Identification and location // 01 - Globally Unique Identifiers // 15 - Object Identifiers UUID(060E2B34, 0101010C, 01011512, 00000000, 0000, "SMPTE ST 429-5", ResourceID, "Resource ID") @@ -148,6 +150,8 @@ namespace Elements UUID(060E2B34, 0101010E, 01051200, 00000000, 0000, "SMPTE ST 377-4", MCATitleSubVersion, "MCA Title Sub-version") UUID(060E2B34, 0101010E, 01051300, 00000000, 0000, "SMPTE ST 377-4", MCAEpisode, "MCA Episode") + // 02 - Administrative + // 03 - Interpretive // 01 - Fundamental // 01 - Countries and Languages @@ -192,16 +196,28 @@ namespace Elements // 06 - Digital Video and Image Compression Parameters // 02 - MPEG Coding Parameters // 01 - MPEG-2 Coding Parameters - UUID(060E2B34, 01010105, 04010602, 01020000, 0000, "", MPEG2VideoDescriptor_SingleSequence, "") - UUID(060E2B34, 01010105, 04010602, 01030000, 0000, "", MPEG2VideoDescriptor_ConstantBFrames, "") - UUID(060E2B34, 01010105, 04010602, 01040000, 0000, "", MPEG2VideoDescriptor_CodedContentType, "") - UUID(060E2B34, 01010105, 04010602, 01050000, 0000, "", MPEG2VideoDescriptor_LowDelay, "") - UUID(060E2B34, 01010105, 04010602, 01060000, 0000, "", MPEG2VideoDescriptor_ClosedGOP, "") - UUID(060E2B34, 01010105, 04010602, 01070000, 0000, "", MPEG2VideoDescriptor_IdenticalGOP, "") - UUID(060E2B34, 01010105, 04010602, 01080000, 0000, "", MPEG2VideoDescriptor_MaxGOP, "") - UUID(060E2B34, 01010105, 04010602, 01090000, 0000, "", MPEG2VideoDescriptor_BPictureCount, "") - UUID(060E2B34, 01010105, 04010602, 010A0000, 0000, "", MPEG2VideoDescriptor_ProfileAndLevel, "") - UUID(060E2B34, 01010105, 04010602, 010B0000, 0000, "", MPEG2VideoDescriptor_BitRate, "") + UUID(060E2B34, 01010105, 04010602, 01020000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_SingleSequence, "") + UUID(060E2B34, 01010105, 04010602, 01030000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_ConstantBFrames, "") + UUID(060E2B34, 01010105, 04010602, 01040000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_CodedContentType, "") + UUID(060E2B34, 01010105, 04010602, 01050000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_LowDelay, "") + UUID(060E2B34, 01010105, 04010602, 01060000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_ClosedGOP, "") + UUID(060E2B34, 01010105, 04010602, 01070000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_IdenticalGOP, "") + UUID(060E2B34, 01010105, 04010602, 01080000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_MaxGOP, "") + UUID(060E2B34, 01010105, 04010602, 01090000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_BPictureCount, "") + UUID(060E2B34, 01010105, 04010602, 010A0000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_ProfileAndLevel, "") + UUID(060E2B34, 01010105, 04010602, 010B0000, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor_BitRate, "") + + // 02 - MPEG-4 Visual Coding Parameters + UUID(060E2B34, 01010105, 04010602, 02020000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_SingleSequence, "") + UUID(060E2B34, 01010105, 04010602, 02030000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_ConstantBFrames, "") + UUID(060E2B34, 01010105, 04010602, 02040000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_CodedContentType, "") + UUID(060E2B34, 01010105, 04010602, 02050000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_LowDelay, "") + UUID(060E2B34, 01010105, 04010602, 02060000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_ClosedGOP, "") + UUID(060E2B34, 01010105, 04010602, 02070000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_IdenticalGOP, "") + UUID(060E2B34, 01010105, 04010602, 02080000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_MaxGOP, "") + UUID(060E2B34, 01010105, 04010602, 02090000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_BPictureCount, "") + UUID(060E2B34, 01010105, 04010602, 020A0000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_ProfileAndLevel, "") + UUID(060E2B34, 01010105, 04010602, 020B0000, 0000, "SMPTE ST 381-2", Mpeg4VisualDescriptor_BitRate, "") // 02 - JPEG 2000 Coding Parameters UUID(060E2B34, 0101010A, 04010603, 01000000, 0000, "", JPEG2000PictureSubDescriptor_Rsiz, "") @@ -218,15 +234,33 @@ namespace Elements UUID(060E2B34, 0101010A, 04010603, 0C000000, 0000, "", JPEG2000PictureSubDescriptor_CodingStyleDefault, "") UUID(060E2B34, 0101010A, 04010603, 0D000000, 0000, "", JPEG2000PictureSubDescriptor_QuantizationDefault, "") + // 02 - Audio Essence Characteristics + // 04 - Audio Compression Parameters + // 03 - MPEG Coding Parameters + // 01 - MPEG-2 Coding Parameters + UUID(060E2B34, 01010105, 04020403, 01020000, 0000, "SMPTE ST 381-2", MpegAudioDescriptor_BitRate, "") + // 09 - Format Characteristics UUID(060E2B34, 0101010C, 04090500, 00000000, 0000, "SMPTE ST 429-5", UCSEncoding, "UCS Encoding") + // 05 - Process + // 06 - Relational // 01 - Essence and Metadata Relationships // 04 - Essence to Essence Relationships UUID(060E2B34, 01010109, 06010104, 06100000, 0000, "", SubDescriptors, "") - // 0D - User organization registred for public use + // 07 - Spatio-temporal + + // 0C - Compound + // 02 - Metadata sets created at point of creation or capture + // 01 - Metadata sets associated with a video camera + // 01 - Frame-based metadata set + UUID(060E2B34, 02530101, 0C020101, 01010000, 0000, "SMPTE RDD 18", LensUnitMetadata, "") + UUID(060E2B34, 02530101, 0C020101, 02010000, 0000, "SMPTE RDD 18", CameraUnitMetadata, "") + UUID(060E2B34, 02530101, 0C020101, 7F010000, 0000, "SMPTE RDD 18", UserDefinedAcquisitionMetadata, "") + + // 0D - Organizationally registered for public use // 01 - AAF Association // 01 - MXF Structural Metadata Sets // 01 - Version 1 @@ -265,11 +299,12 @@ namespace Elements UUID(060E2B34, 02530101, 0D010101, 01014500, 0000, "SMPTE ST 377-1", DMSourceClip, "") UUID(060E2B34, 02530101, 0D010101, 01014700, 0000, "", AES3PCMDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01014800, 0000, "", WaveAudioDescriptor, "") - UUID(060E2B34, 02530101, 0D010101, 01015100, 0000, "", MPEG2VideoDescriptor, "") + UUID(060E2B34, 02530101, 0D010101, 01015100, 0000, "SMPTE ST 381-1", MPEG2VideoDescriptor, "") + UUID(060E2B34, 02530101, 0D010101, 01015900, 0000, "SMPTE ST 377-1", SubDescriptor, "Sub Descriptor") UUID(060E2B34, 02530101, 0D010101, 01015A00, 0000, "", JPEG2000PictureSubDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01015B00, 0000, "", VbiPacketsDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01015C00, 0000, "", AncPacketsDescriptor, "") - UUID(060E2B34, 02530101, 0D010101, 01015900, 0000, "SMPTE ST 377-1", SubDescriptor, "Sub Descriptor") + UUID(060E2B34, 02530101, 0D010101, 01015E00, 0000, "SMPTE ST 381-2", MpegAudioDescriptor, "MPEG Audio Descriptor") UUID(060E2B34, 02530101, 0D010101, 01016000, 0000, "SMPTE ST 377-1", PackageMarkerObject, "") UUID(060E2B34, 02530101, 0D010101, 01016100, 0000, "SMPTE ST 377-1", ApplicationPlugInObject, "") UUID(060E2B34, 02530101, 0D010101, 01016200, 0000, "SMPTE ST 377-1", ApplicationReferencedObject, "") @@ -277,6 +312,8 @@ namespace Elements UUID(060E2B34, 02530101, 0D010101, 01016400, 0000, "SMPTE ST 429-5", TimedTextDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01016500, 0000, "SMPTE ST 429-5", TimedTextResourceSubDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01016600, 0000, "SMPTE ST 377-1", ApplicationObject, "Application Object") + UUID(060E2B34, 02530101, 0D010101, 01016700, 0000, "SMPTE ST ?", Unknown67SubDescriptor, "Unknown 0x67 Sub-Descriptor") + UUID(060E2B34, 02530101, 0D010101, 01016800, 0000, "SMPTE ST 381-2", Mpeg4VisualSubDescriptor, "MPEG-4 Visual Sub-Descriptor") UUID(060E2B34, 02530101, 0D010101, 01016A00, 0000, "SMPTE ST 377-4", MCALabelSubDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01016B00, 0000, "SMPTE ST 377-4", AudioChannelLabelSubDescriptor, "") UUID(060E2B34, 02530101, 0D010101, 01016C00, 0000, "SMPTE ST 377-4", SoundfieldGroupLabelSubDescriptor, "") @@ -326,7 +363,7 @@ namespace Elements // 0B - ? // 01 - AS-11 core metadata framework UUID(060E2B34, 02530101, 0D010701, 0B010100, 0000, "AMWA AS-11", AS11_AAF_Core, "") - UUID(060E2B34, 01010101, 0D010701, 0B010101, 0000, "AMWA AS-11", AS11_Core_SerieTitle, "") + UUID(060E2B34, 01010101, 0D010701, 0B010101, 0000, "AMWA AS-11", AS11_Core_SeriesTitle, "") UUID(060E2B34, 01010101, 0D010701, 0B010102, 0000, "AMWA AS-11", AS11_Core_ProgrammeTitle, "") UUID(060E2B34, 01010101, 0D010701, 0B010103, 0000, "AMWA AS-11", AS11_Core_EpisodeTitleNumber, "") UUID(060E2B34, 01010101, 0D010701, 0B010104, 0000, "AMWA AS-11", AS11_Core_ShimName, "") @@ -386,7 +423,7 @@ namespace Elements UUID(060E2B34, 01010101, 0D0C0101, 01012400, 0000, "AMWA AS-11", AS11_UKDPP_ContactEmail, "") UUID(060E2B34, 01010101, 0D0C0101, 01012500, 0000, "AMWA AS-11", AS11_UKDPP_ContactTelephoneNumber, "") - // 0E - User organization registred for private use + // 0E - Organizationally registered for private use // 04 - Avid UUID(060E2B34, 01020101, 0E040301, 00000000, 0000, "", GenericContainer_Avid, "") @@ -1777,9 +1814,59 @@ const char* Mxf_AS11_SignLanguage[Mxf_AS11_SignLanguage_Count]= "BSL (Makaton)", }; + +//--------------------------------------------------------------------------- +// EBU Tech 3349 +string Mxf_CameraUnitMetadata_GammaforCDL(int8u Value) +{ + switch(Value) + { + case 0x00 : return "Same as Capture Gamma"; + case 0x01 : return "Scene Linear"; + case 0x02 : return "S-Log"; + case 0x03 : return "Cine-Log"; + case 0xFF : return "Undefined"; + default : return Ztring::ToZtring(Value).To_UTF8(); + } +}; + +//--------------------------------------------------------------------------- +// EBU Tech 3349 +string Mxf_CameraUnitMetadata_ImageSensorReadoutMode(int8u Value) +{ + switch(Value) + { + case 0x00 : return "Interlaced field"; + case 0x01 : return "Interlaced frame"; + case 0x02 : return "Progressive frame "; + case 0xFF : return "Undefined"; + default : return Ztring::ToZtring(Value).To_UTF8(); + } +}; + +//--------------------------------------------------------------------------- +// EBU Tech 3349 +string Mxf_CameraUnitMetadata_CaptureGammaEquation(int128u Value) +{ + switch(Value.lo) + { + case 0x0401010101020000LL : return "BT.709"; + case 0x0401010101030000LL : return "SMPTE ST 240"; + default : + { + Ztring ValueS; + ValueS.From_Number(Value.lo, 16); + if (ValueS.size()<16) + ValueS.insert(0, 16-ValueS.size(), __T('0')); + return ValueS.To_UTF8(); + } + } +}; + //--------------------------------------------------------------------------- extern const char* Mpegv_profile_and_level_indication_profile[]; extern const char* Mpegv_profile_and_level_indication_level[]; +extern const char* Mpeg4v_Profile_Level(int32u Profile_Level); //--------------------------------------------------------------------------- extern const char* AfdBarData_active_format[]; @@ -1832,9 +1919,6 @@ File_Mxf::File_Mxf() IdIsAlwaysSame_Offset=0; PartitionMetadata_PreviousPartition=(int64u)-1; PartitionMetadata_FooterPartition=(int64u)-1; - TimeCode_StartTimecode=(int64u)-1; - TimeCode_RoundedTimecodeBase=0; - TimeCode_DropFrame=false; DTS_Delay=0; StreamPos_StartAtOne=true; SDTI_TimeCode_StartTimecode_ms=(int64u)-1; @@ -1845,6 +1929,7 @@ File_Mxf::File_Mxf() SystemScheme1_FrameRateFromDescriptor=0; Essences_FirstEssence_Parsed=false; StereoscopicPictureSubDescriptor_IsPresent=false; + UserDefinedAcquisitionMetadata_UdamSetIdentifier_IsSony=false; Essences_UsedForFrameCount=(int32u)-1; #if MEDIAINFO_ADVANCED Footer_Position=(int64u)-1; @@ -1875,14 +1960,24 @@ File_Mxf::File_Mxf() OverallBitrate_IsCbrForSure=0; Duration_Detected=false; #endif //MEDIAINFO_SEEK + #if MEDIAINFO_DEMUX + DemuxedSampleCount_Total=(int64u)-1; + DemuxedSampleCount_Current=(int64u)-1; + DemuxedSampleCount_AddedToFirstFrame=0; + DemuxedElementSize_AddedToFirstFrame=0; + #endif //MEDIAINFO_DEMUX } //--------------------------------------------------------------------------- File_Mxf::~File_Mxf() { - delete ReferenceFiles; - if (!Ancillary_IsBinded) - delete Ancillary; + #if defined(MEDIAINFO_REFERENCES_YES) + delete ReferenceFiles; + #endif //defined(MEDIAINFO_REFERENCES_YES) + #if defined(MEDIAINFO_ANCILLARY_YES) + if (!Ancillary_IsBinded) + delete Ancillary; + #endif //defined(MEDIAINFO_ANCILLARY_YES) } //*************************************************************************** @@ -1907,7 +2002,7 @@ void File_Mxf::Streams_Fill() //--------------------------------------------------------------------------- void File_Mxf::Streams_Finish() { - #if MEDIAINFO_NEXTPACKET + #if MEDIAINFO_NEXTPACKET && defined(MEDIAINFO_REFERENCES_YES) //Locators only if (ReferenceFiles_IsParsing) { @@ -1920,12 +2015,12 @@ void File_Mxf::Streams_Finish() Streams_Finish_CommercialNames(); return; } - #endif //MEDIAINFO_NEXTPACKET + #endif //MEDIAINFO_NEXTPACKET && defined(MEDIAINFO_REFERENCES_YES) //Per stream for (essences::iterator Essence=Essences.begin(); Essence!=Essences.end(); ++Essence) { - if (Essence->second.Parsers.size()!=1 && Essence->second.StreamKind==Stream_Audio) // Last parser is PCM, impossible to detect with another method if there is only one block + if (Essence->second.Parsers.size()>1 && Essence->second.StreamKind==Stream_Audio) // Last parser is PCM, impossible to detect with another method if there is only one block { for (size_t Pos=0; Possecond.Parsers.size()-1; Pos++) delete Essence->second.Parsers[Pos]; @@ -2043,7 +2138,7 @@ void File_Mxf::Streams_Finish() //Parsing locators Locators_Test(); #if MEDIAINFO_NEXTPACKET - if (Config->NextPacket_Get() && ReferenceFiles && !ReferenceFiles->References.empty()) + if (Config->NextPacket_Get() && ReferenceFiles) { ReferenceFiles_IsParsing=true; return; @@ -2071,7 +2166,7 @@ void File_Mxf::Streams_Finish() } //File size in case of partial file analysis - if (Config->File_IgnoreFramesBefore || Config->File_IgnoreFramesAfter!=(int64u)-1) + if (Config->File_IgnoreEditsBefore || Config->File_IgnoreEditsAfter!=(int64u)-1) { int64u FrameCount_FromComponent=(int64u)-1; for (components::iterator Component=Components.begin(); Component!=Components.end(); ++Component) @@ -2084,17 +2179,17 @@ void File_Mxf::Streams_Finish() if (FrameCount_FromComponent!=(int64u)-1 && FrameCount_FromComponent && EditRate_FromTrack!=DBL_MAX && EditRate_FromTrack) { int64u FrameCount=FrameCount_FromComponent; - int64u File_IgnoreFramesBefore=Config->File_IgnoreFramesBefore; - if (File_IgnoreFramesBefore && Config->File_IgnoreFramesRate && (EditRate_FromTrackFile_IgnoreFramesRate*0.9 || EditRate_FromTrack>Config->File_IgnoreFramesRate*1.1)) //In case of problem or EditRate being sampling rate - File_IgnoreFramesBefore=float64_int64s(((float64)File_IgnoreFramesBefore)/Config->File_IgnoreFramesRate*EditRate_FromTrack); - int64u File_IgnoreFramesAfter=Config->File_IgnoreFramesAfter; - if (File_IgnoreFramesAfter!=(int64u)-1 && Config->File_IgnoreFramesRate && (EditRate_FromTrackFile_IgnoreFramesRate*0.9 || EditRate_FromTrack>Config->File_IgnoreFramesRate*1.1)) //In case of problem or EditRate being sampling rate - File_IgnoreFramesAfter=float64_int64s(((float64)File_IgnoreFramesAfter)/Config->File_IgnoreFramesRate*EditRate_FromTrack); - if (File_IgnoreFramesAfterFile_IgnoreEditsBefore; + if (File_IgnoreEditsBefore && Config->File_EditRate && (EditRate_FromTrackFile_EditRate*0.9 || EditRate_FromTrack>Config->File_EditRate*1.1)) //In case of problem or EditRate being sampling rate + File_IgnoreEditsBefore=float64_int64s(((float64)File_IgnoreEditsBefore)/Config->File_EditRate*EditRate_FromTrack); + int64u File_IgnoreEditsAfter=Config->File_IgnoreEditsAfter; + if (File_IgnoreEditsAfter!=(int64u)-1 && Config->File_EditRate && (EditRate_FromTrackFile_EditRate*0.9 || EditRate_FromTrack>Config->File_EditRate*1.1)) //In case of problem or EditRate being sampling rate + File_IgnoreEditsAfter=float64_int64s(((float64)File_IgnoreEditsAfter)/Config->File_EditRate*EditRate_FromTrack); + if (File_IgnoreEditsAfter::iterator Info=Essence->second.Infos.begin(); Info!=Essence->second.Infos.end(); ++Info) Fill(StreamKind_Last, StreamPos_Last, Info->first.c_str(), Info->second, true); - if (TimeCode_RoundedTimecodeBase && TimeCode_StartTimecode!=(int64u)-1) + if (MxfTimeCodeForDelay.RoundedTimecodeBase && MxfTimeCodeForDelay.StartTimecode!=(int64u)-1) { - float64 TimeCode_StartTimecode_Temp=((float64)(TimeCode_StartTimecode+Config->File_IgnoreFramesBefore))/TimeCode_RoundedTimecodeBase; - if (TimeCode_DropFrame) + float64 TimeCode_StartTimecode_Temp=((float64)(MxfTimeCodeForDelay.StartTimecode+Config->File_IgnoreEditsBefore))/MxfTimeCodeForDelay.RoundedTimecodeBase; + if (MxfTimeCodeForDelay.DropFrame) { TimeCode_StartTimecode_Temp*=1001; TimeCode_StartTimecode_Temp/=1000; } Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), TimeCode_StartTimecode_Temp*1000, 0, true); Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container"); - Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_DropFrame), TimeCode_DropFrame?"Yes":"No"); + Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_DropFrame), MxfTimeCodeForDelay.DropFrame?"Yes":"No"); - //TimeCode TC(TimeCode_StartTimecode, TimeCode_RoundedTimecodeBase, TimeCode_DropFrame); + //TimeCode TC(MxfTimeCodeForDelay.StartTimecode, MxfTimeCodeForDelay.RoundedTimecodeBase, MxfTimeCodeForDelay.DropFrame); //Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_TimeCode_FirstFrame), TC.ToString().c_str()); //Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_TimeCode_Source), "Time code track (stripped)"); } @@ -2595,10 +2690,10 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID) Stream_Prepare(Stream_Audio); size_t Pos=Count_Get(Stream_Audio)-1; (*Parser)->Finish(); - if (TimeCode_RoundedTimecodeBase && TimeCode_StartTimecode!=(int64u)-1) + if (MxfTimeCodeForDelay.RoundedTimecodeBase && MxfTimeCodeForDelay.StartTimecode!=(int64u)-1) { - float64 TimeCode_StartTimecode_Temp=((float64)(TimeCode_StartTimecode+Config->File_IgnoreFramesBefore))/TimeCode_RoundedTimecodeBase; - if (TimeCode_DropFrame) + float64 TimeCode_StartTimecode_Temp=((float64)(MxfTimeCodeForDelay.StartTimecode+Config->File_IgnoreEditsBefore))/MxfTimeCodeForDelay.RoundedTimecodeBase; + if (MxfTimeCodeForDelay.DropFrame) { TimeCode_StartTimecode_Temp*=1001; TimeCode_StartTimecode_Temp/=1000; @@ -2635,10 +2730,10 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID) Fill_Flush(); Stream_Prepare(Stream_Text); (*Parser)->Finish(); - if (TimeCode_RoundedTimecodeBase && TimeCode_StartTimecode!=(int64u)-1) + if (MxfTimeCodeForDelay.RoundedTimecodeBase && MxfTimeCodeForDelay.StartTimecode!=(int64u)-1) { - float64 TimeCode_StartTimecode_Temp=((float64)(TimeCode_StartTimecode+Config->File_IgnoreFramesBefore))/TimeCode_RoundedTimecodeBase; - if (TimeCode_DropFrame) + float64 TimeCode_StartTimecode_Temp=((float64)(MxfTimeCodeForDelay.StartTimecode+Config->File_IgnoreEditsBefore))/MxfTimeCodeForDelay.RoundedTimecodeBase; + if (MxfTimeCodeForDelay.DropFrame) { TimeCode_StartTimecode_Temp*=1001; TimeCode_StartTimecode_Temp/=1000; @@ -2693,7 +2788,7 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID) { //TODO: Stream_Size is present only if there is one stream, so it works in most cases. We should find a better way. int64u Stream_Size=Essence->second.Stream_Size; - if (Config->File_IgnoreFramesBefore || Config->File_IgnoreFramesAfter!=(int64u)-1) + if (Config->File_IgnoreEditsBefore || Config->File_IgnoreEditsAfter!=(int64u)-1) { int64u FrameCount_FromComponent=(int64u)-1; for (components::iterator Component=Components.begin(); Component!=Components.end(); ++Component) @@ -2706,17 +2801,17 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID) if (FrameCount_FromComponent!=(int64u)-1 && FrameCount_FromComponent && EditRate_FromTrack!=DBL_MAX && EditRate_FromTrack) { int64u FrameCount=FrameCount_FromComponent; - int64u File_IgnoreFramesBefore=Config->File_IgnoreFramesBefore; - if (File_IgnoreFramesBefore && Config->File_IgnoreFramesRate && (EditRate_FromTrackFile_IgnoreFramesRate*0.9 || EditRate_FromTrack>Config->File_IgnoreFramesRate*1.1)) //In case of problem or EditRate being sampling rate - File_IgnoreFramesBefore=float64_int64s(((float64)File_IgnoreFramesBefore)/Config->File_IgnoreFramesRate*EditRate_FromTrack); - int64u File_IgnoreFramesAfter=Config->File_IgnoreFramesAfter; - if (File_IgnoreFramesAfter!=(int64u)-1 && Config->File_IgnoreFramesRate && (EditRate_FromTrackFile_IgnoreFramesRate*0.9 || EditRate_FromTrack>Config->File_IgnoreFramesRate*1.1)) //In case of problem or EditRate being sampling rate - File_IgnoreFramesAfter=float64_int64s(((float64)File_IgnoreFramesAfter)/Config->File_IgnoreFramesRate*EditRate_FromTrack); - if (File_IgnoreFramesAfterFile_IgnoreEditsBefore; + if (File_IgnoreEditsBefore && Config->File_EditRate && (EditRate_FromTrackFile_EditRate*0.9 || EditRate_FromTrack>Config->File_EditRate*1.1)) //In case of problem or EditRate being sampling rate + File_IgnoreEditsBefore=float64_int64s(((float64)File_IgnoreEditsBefore)/Config->File_EditRate*EditRate_FromTrack); + int64u File_IgnoreEditsAfter=Config->File_IgnoreEditsAfter; + if (File_IgnoreEditsAfter!=(int64u)-1 && Config->File_EditRate && (EditRate_FromTrackFile_EditRate*0.9 || EditRate_FromTrack>Config->File_EditRate*1.1)) //In case of problem or EditRate being sampling rate + File_IgnoreEditsAfter=float64_int64s(((float64)File_IgnoreEditsAfter)/Config->File_EditRate*EditRate_FromTrack); + if (File_IgnoreEditsAftersecond.Duration!=(int64u)-1) { int64u FrameCount=Component->second.Duration; - if (StreamKind_Last==Stream_Video || Config->File_IgnoreFramesRate) - { - int64u File_IgnoreFramesBefore=Config->File_IgnoreFramesBefore; - if (File_IgnoreFramesBefore && Config->File_IgnoreFramesRate && (EditRateFile_IgnoreFramesRate*0.9 || EditRate>Config->File_IgnoreFramesRate*1.1)) //In case of problem or EditRate being sampling rate - File_IgnoreFramesBefore=float64_int64s(((float64)File_IgnoreFramesBefore)/Config->File_IgnoreFramesRate*EditRate); - int64u File_IgnoreFramesAfter=Config->File_IgnoreFramesAfter; - if (File_IgnoreFramesAfter!=(int64u)-1 && Config->File_IgnoreFramesRate && (EditRateFile_IgnoreFramesRate*0.9 || EditRate>Config->File_IgnoreFramesRate*1.1)) //In case of problem or EditRate being sampling rate - File_IgnoreFramesAfter=float64_int64s(((float64)File_IgnoreFramesAfter)/Config->File_IgnoreFramesRate*EditRate); - if (File_IgnoreFramesAfterFile_EditRate) + { + int64u File_IgnoreEditsBefore=Config->File_IgnoreEditsBefore; + if (File_IgnoreEditsBefore && Config->File_EditRate && (EditRateFile_EditRate*0.9 || EditRate>Config->File_EditRate*1.1)) //In case of problem or EditRate being sampling rate + File_IgnoreEditsBefore=float64_int64s(((float64)File_IgnoreEditsBefore)/Config->File_EditRate*EditRate); + int64u File_IgnoreEditsAfter=Config->File_IgnoreEditsAfter; + if (File_IgnoreEditsAfter!=(int64u)-1 && Config->File_EditRate && (EditRateFile_EditRate*0.9 || EditRate>Config->File_EditRate*1.1)) //In case of problem or EditRate being sampling rate + File_IgnoreEditsAfter=float64_int64s(((float64)File_IgnoreEditsAfter)/Config->File_EditRate*EditRate); + if (File_IgnoreEditsAftersecond.StructuralComponents.size(); Pos++) { components::iterator Component2=Components.find(Component->second.StructuralComponents[Pos]); - if (Component2!=Components.end() && Component2->second.TimeCode_StartTimecode!=(int64u)-1 && !Config->File_IsReferenced_Get()) + if (Component2!=Components.end() && Component2->second.MxfTimeCode.StartTimecode!=(int64u)-1 && !Config->File_IsReferenced_Get()) { //Note: Origin is not part of the StartTimecode for the first frame in the source package. From specs: "For a Timecode Track with a single Timecode Component and with origin N, where N greater than 0, the timecode value at the Zero Point of the Track equals the start timecode of the Timecode Component incremented by N units." - TimeCode TC(Component2->second.TimeCode_StartTimecode+Config->File_IgnoreFramesBefore, (int8u)Component2->second.TimeCode_RoundedTimecodeBase, Component2->second.TimeCode_DropFrame); + TimeCode TC(Component2->second.MxfTimeCode.StartTimecode+Config->File_IgnoreEditsBefore, (int8u)Component2->second.MxfTimeCode.RoundedTimecodeBase, Component2->second.MxfTimeCode.DropFrame); Stream_Prepare(Stream_Other); Fill(Stream_Other, StreamPos_Last, Other_ID, Ztring::ToZtring(TrackID)+(IsSourcePackage?__T("-Source"):__T("-Material"))); Fill(Stream_Other, StreamPos_Last, Other_Type, "Time code"); @@ -3343,12 +3438,10 @@ void File_Mxf::Streams_Finish_Component_ForTimeCode(const int128u ComponentUID, if ((!TimeCodeFromMaterialPackage && IsSourcePackage) || (TimeCodeFromMaterialPackage && !IsSourcePackage)) { - TimeCode_RoundedTimecodeBase=Component2->second.TimeCode_RoundedTimecodeBase; - TimeCode_StartTimecode=Component2->second.TimeCode_StartTimecode; - TimeCode_DropFrame=Component2->second.TimeCode_DropFrame; + MxfTimeCodeForDelay=Component2->second.MxfTimeCode; - DTS_Delay=((float64)TimeCode_StartTimecode)/TimeCode_RoundedTimecodeBase; - if (TimeCode_DropFrame) + DTS_Delay=((float64)MxfTimeCodeForDelay.StartTimecode)/MxfTimeCodeForDelay.RoundedTimecodeBase; + if (MxfTimeCodeForDelay.DropFrame) { DTS_Delay*=1001; DTS_Delay/=1000; @@ -3358,6 +3451,11 @@ void File_Mxf::Streams_Finish_Component_ForTimeCode(const int128u ComponentUID, Config->Demux_Offset_DTS_FromStream=FrameInfo.DTS; #endif //MEDIAINFO_DEMUX } + + if (!IsSourcePackage) + { + MxfTimeCodeMaterial=Component2->second.MxfTimeCode; + } } } } @@ -3373,11 +3471,11 @@ void File_Mxf::Streams_Finish_Component_ForAS11(const int128u ComponentUID, floa int64u TC_Temp=0; int8u FrameRate_TempI; bool DropFrame_Temp; - if (TimeCode_RoundedTimecodeBase && TimeCode_StartTimecode!=(int64u)-1 && TimeCode_RoundedTimecodeBase<256) + if (MxfTimeCodeMaterial.RoundedTimecodeBase && MxfTimeCodeMaterial.StartTimecode!=(int64u)-1 && MxfTimeCodeMaterial.RoundedTimecodeBase) { - TC_Temp=TimeCode_StartTimecode; - FrameRate_TempI=(int8u)TimeCode_RoundedTimecodeBase; - DropFrame_Temp=TimeCode_DropFrame; + TC_Temp=MxfTimeCodeMaterial.StartTimecode; + FrameRate_TempI=(int8u)MxfTimeCodeMaterial.RoundedTimecodeBase; + DropFrame_Temp=MxfTimeCodeMaterial.DropFrame; } else { @@ -3430,7 +3528,7 @@ void File_Mxf::Streams_Finish_Component_ForAS11(const int128u ComponentUID, floa { case as11::Type_Core: Fill(Stream_Other, StreamPos_Last, "Format", "AS-11 Core"); - Fill(Stream_Other, StreamPos_Last, "SerieTitle", AS11->second.SerieTitle); + Fill(Stream_Other, StreamPos_Last, "SeriesTitle", AS11->second.SeriesTitle); Fill(Stream_Other, StreamPos_Last, "ProgrammeTitle", AS11->second.ProgrammeTitle); Fill(Stream_Other, StreamPos_Last, "EpisodeTitleNumber", AS11->second.EpisodeTitleNumber); Fill(Stream_Other, StreamPos_Last, "ShimName", AS11->second.ShimName); @@ -3558,7 +3656,7 @@ void File_Mxf::Streams_Finish_Component_ForAS11(const int128u ComponentUID, floa } } if (Duration_Programme) - Fill(Stream_Other, StreamPos_Last, "Total Programme Duration", TimeCode(Duration_Programme, FrameRate_TempI, DropFrame_Temp).ToString()); + Fill(Stream_Other, StreamPos_Last, "TotalProgrammeDuration", TimeCode(Duration_Programme, FrameRate_TempI, DropFrame_Temp).ToString()); } //--------------------------------------------------------------------------- @@ -3568,34 +3666,37 @@ void File_Mxf::Streams_Finish_Identification (const int128u IdentificationUID) if (Identification==Identifications.end()) return; - if (!Identification->second.ProductName.empty()) + //Product part + Ztring Encoded_Application_Version=Identification->second.ProductVersion.empty()?Identification->second.VersionString:Identification->second.ProductVersion; + Ztring Encoded_Application_ProductName(Identification->second.ProductName); + if (!Identification->second.CompanyName.empty() && Identification->second.CompanyName.size()second.CompanyName.empty()) - { - Encoded_Library_Name+=Identification->second.CompanyName; - Encoded_Library_Name+=__T(' '); - } - Encoded_Library_Name+=Identification->second.ProductName; - Ztring Encoded_Library_Version; - if (!Identification->second.ProductVersion.empty()) - { - Encoded_Library_Version=Identification->second.ProductVersion; - } - else if (!Identification->second.VersionString.empty()) - { - Encoded_Library_Version=Identification->second.VersionString; - } - Ztring Encoded_Application=Encoded_Library_Name; - if (!Encoded_Library_Version.empty()) - { - Encoded_Application+=__T(' '); - Encoded_Application+=Encoded_Library_Version; - } - Fill(Stream_General, 0, General_Encoded_Application, Encoded_Application, true); - Fill(Stream_General, 0, General_Encoded_Library_Name, Encoded_Library_Name, true); - Fill(Stream_General, 0, General_Encoded_Library_Version, Encoded_Library_Version, true); + Ztring ProductName_Begin(Encoded_Application_ProductName.c_str(), Identification->second.CompanyName.size()); + if (Identification->second.CompanyName.Compare(ProductName_Begin) && Encoded_Application_ProductName[Identification->second.CompanyName.size()]==__T(' ')) + Encoded_Application_ProductName.erase(0, Identification->second.CompanyName.size()+1); + } + size_t Encoded_Application_ProductName_Pos = Encoded_Application_ProductName.find_last_of(__T(' ')); + if (Encoded_Application_ProductName_Pos!=string::npos) + { + Ztring Encoded_Application_ProductName_End(Encoded_Application_ProductName.c_str()+Encoded_Application_ProductName_Pos+1); + if (Encoded_Application_Version.find(Encoded_Application_ProductName_End)==0) + Encoded_Application_ProductName.resize(Encoded_Application_ProductName_Pos); //Removing version number from the name (format not conform) + } + Fill(Stream_General, 0, General_Encoded_Application_CompanyName, Identification->second.CompanyName, true); + Fill(Stream_General, 0, General_Encoded_Application_Name, Encoded_Application_ProductName, true); + Fill(Stream_General, 0, General_Encoded_Application_Version, Encoded_Application_Version, true); + + //Platform part + Ztring Library_Name(Identification->second.Platform); + size_t Library_Name_Pos = Library_Name.find_last_of(__T(' ')); + if (Library_Name_Pos!=string::npos) + { + Ztring Library_Name_End(Library_Name.c_str()+Library_Name_Pos+1); + if (Identification->second.ToolkitVersion.find(Library_Name_End)==0) + Library_Name.resize(Library_Name_Pos); //Removing version number from the name (format not conform) } + Fill(Stream_General, 0, General_Encoded_Library_Name, Library_Name, true); + Fill(Stream_General, 0, General_Encoded_Library_Version, Identification->second.ToolkitVersion, true); for (std::map::iterator Info=Identification->second.Infos.begin(); Info!=Identification->second.Infos.end(); ++Info) Fill(Stream_General, 0, Info->first.c_str(), Info->second, true); @@ -3835,6 +3936,9 @@ void File_Mxf::Read_Buffer_Unsynched() Partitions_Pos++; } + if (Partitions_Pos==2 && Partitions[1].StreamOffset==FutureFileOffset && Descriptors.size()==1 && Descriptors.begin()->second.StreamKind==Stream_Text) + Frame_Count_NotParsedIncluded=0; + if (Descriptors.size()==1 && Descriptors.begin()->second.ByteRate!=(int32u)-1 && Descriptors.begin()->second.SampleRate) { float64 BytePerFrame=Descriptors.begin()->second.ByteRate/Descriptors.begin()->second.SampleRate; @@ -3914,7 +4018,7 @@ void File_Mxf::Read_Buffer_Unsynched() int64u Entry0_StreamOffset=0; //For coherency checking int64u Entry_StreamOffset=IndexTables[Pos].Entries[EntryPos].StreamOffset+(IndexTables[Pos].IndexStartPosition+EntryPos)*SDTI_SizePerFrame; int64u Entry1_StreamOffset=File_Size; //For coherency checking - if (EntryPos==0 && Pos && IndexTables[Pos-1].Entries.empty()) + if (EntryPos==0 && Pos && !IndexTables[Pos-1].Entries.empty()) Entry0_StreamOffset=IndexTables[Pos-1].Entries[IndexTables[Pos-1].Entries.size()-1].StreamOffset+(IndexTables[Pos].IndexStartPosition+EntryPos-1)*SDTI_SizePerFrame; else if (EntryPos) Entry0_StreamOffset=IndexTables[Pos].Entries[EntryPos-1].StreamOffset+(IndexTables[Pos].IndexStartPosition+EntryPos-1)*SDTI_SizePerFrame; @@ -4050,8 +4154,10 @@ bool File_Mxf::DetectDuration () #if MEDIAINFO_SEEK size_t File_Mxf::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { - if (ReferenceFiles) - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + #if defined(MEDIAINFO_REFERENCES_YES) + if (ReferenceFiles) + return ReferenceFiles->Seek(Method, Value, ID); + #endif //defined(MEDIAINFO_REFERENCES_YES) //Init if (!Duration_Detected) @@ -4097,7 +4203,7 @@ size_t File_Mxf::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { float64 EditRate_FromTrack=DBL_MAX; for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); ++Track) - if (EditRate_FromTrack>Track->second.EditRate) + if (Track->second.EditRate && EditRate_FromTrack>Track->second.EditRate) EditRate_FromTrack=Track->second.EditRate; if (EditRate_FromTrack>1000) EditRate_FromTrack=Demux_Rate; //Default value; @@ -4118,7 +4224,7 @@ size_t File_Mxf::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { case 0 : { - if (Config->File_IgnoreFramesBefore && Config->File_IgnoreFramesRate) + if (Config->File_IgnoreEditsBefore && Config->File_EditRate) { Read_Buffer_Seek(3, 0, (int64u)-1); if (File_GoTo!=(int64u)-1) @@ -4192,25 +4298,15 @@ size_t File_Mxf::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) return Read_Buffer_Seek(0, File_Size*Value/10000, ID); case 2 : //Timestamp { - if (Config->File_IgnoreFramesBefore && Config->File_IgnoreFramesRate) - Value+=float64_int64s(((float64)Config->File_IgnoreFramesBefore)/Config->File_IgnoreFramesRate*1000000000); - //We transform TimeStamp to a frame number descriptors::iterator Descriptor; for (Descriptor=Descriptors.begin(); Descriptor!=Descriptors.end(); ++Descriptor) - if (Descriptors.begin()->second.SampleRate) + if (Descriptor->second.SampleRate) break; if (Descriptor==Descriptors.end()) return (size_t)-1; //Not supported - if (Config->Demux_Offset_DTS!=(int64u)-1) - { - int64u Delay=Config->Demux_Offset_DTS; - if (ValueFile_IgnoreFramesBefore; + Value+=Config->File_IgnoreEditsBefore; if (Descriptors.size()==1 && Descriptors.begin()->second.ByteRate!=(int32u)-1 && Descriptors.begin()->second.BlockAlign && Descriptors.begin()->second.BlockAlign!=(int16u)-1 && Descriptors.begin()->second.SampleRate) { + if (Descriptors.begin()->second.SampleRate!=Config->File_EditRate && Config->File_IgnoreEditsBefore) + { + //Edit rate and Demux rate are different, not well supported for the moment + Value-=Config->File_IgnoreEditsBefore; + Value+=float64_int64s(((float64)Config->File_IgnoreEditsBefore)/Config->File_EditRate*Descriptors.begin()->second.SampleRate); + } + float64 BytesPerFrame=Descriptors.begin()->second.ByteRate/Descriptors.begin()->second.SampleRate; int64u StreamOffset=(int64u)(Value*BytesPerFrame); StreamOffset/=Descriptors.begin()->second.BlockAlign; @@ -4537,6 +4640,9 @@ bool File_Mxf::Header_Begin() float64 BytesPerFrame=((float64)SingleDescriptor->second.ByteRate)/SingleDescriptor->second.SampleRate; int64u FramesAlreadyParsed=float64_int64s(((float64)(File_Offset+Buffer_Offset-Buffer_Begin))/BytesPerFrame); Element_Size=float64_int64s(SingleDescriptor->second.ByteRate/SingleDescriptor->second.SampleRate*(FramesAlreadyParsed+1)); + #if MEDIAINFO_DEMUX + Element_Size+=DemuxedElementSize_AddedToFirstFrame; + #endif //MEDIAINFO_DEMUX Element_Size/=SingleDescriptor->second.BlockAlign; Element_Size*=SingleDescriptor->second.BlockAlign; Element_Size-=File_Offset+Buffer_Offset-Buffer_Begin; @@ -4548,6 +4654,37 @@ bool File_Mxf::Header_Begin() Element_Size=Buffer_End-(File_Offset+Buffer_Offset); if (Buffer_Offset+Element_Size>Buffer_Size) return false; + + #if MEDIAINFO_DEMUX + if (!DemuxedSampleCount_Total && Config->Demux_Offset_DTS!=(int64u)-1 && Config->File_EditRate) + { + //Need to sync to a rounded value compared to the whole stream (including previous files) + float64 TimeStamp=((float64)Config->Demux_Offset_DTS)/1000000000; + int64u FramesBeForeThisFileMinusOne=(int64u)(TimeStamp*SingleDescriptor->second.SampleRate); + if ((((float64)FramesBeForeThisFileMinusOne)/SingleDescriptor->second.SampleRate)!=TimeStamp) + { + float64 Delta=(((float64)FramesBeForeThisFileMinusOne+1)/SingleDescriptor->second.SampleRate)-TimeStamp; + DemuxedSampleCount_AddedToFirstFrame=float64_int64s(Delta*Config->File_EditRate); + DemuxedElementSize_AddedToFirstFrame=DemuxedSampleCount_AddedToFirstFrame*SingleDescriptor->second.BlockAlign; + Element_Size+=DemuxedElementSize_AddedToFirstFrame; + } + } + if (DemuxedSampleCount_Total!=(int64u)-1 && Config->File_IgnoreEditsAfter!=(int64u)-1) + { + DemuxedSampleCount_Current=Element_Size/SingleDescriptor->second.BlockAlign; + int64u RealSampleRate=SingleDescriptor->second.Infos["SamplingRate"].To_int64u(); + int64u IgnoreSamplesAfter; + if (RealSampleRate==Config->File_EditRate) + IgnoreSamplesAfter=Config->File_IgnoreEditsAfter; + else + IgnoreSamplesAfter=float64_int64s(((float64)Config->File_IgnoreEditsAfter)/Config->File_EditRate*RealSampleRate); + if (DemuxedSampleCount_Total+DemuxedSampleCount_Current>IgnoreSamplesAfter) + { + DemuxedSampleCount_Current=Config->File_IgnoreEditsAfter-DemuxedSampleCount_Total; + Element_Size=DemuxedSampleCount_Current*SingleDescriptor->second.BlockAlign; + } + } + #endif //MEDIAINFO_DEMUX } else if (Demux_UnpacketizeContainer && !IndexTables.empty() && IndexTables[0].EditUnitByteCount) { @@ -4627,7 +4764,7 @@ bool File_Mxf::Header_Begin() int64u Entry0_StreamOffset=0; //For coherency checking int64u Entry_StreamOffset=IndexTables[Pos].Entries[EntryPos].StreamOffset+(IndexTables[Pos].IndexStartPosition+EntryPos)*SDTI_SizePerFrame; int64u Entry1_StreamOffset=File_Size; //For coherency checking - if (EntryPos==0 && Pos && IndexTables[Pos-1].Entries.empty()) + if (EntryPos==0 && Pos && !IndexTables[Pos-1].Entries.empty()) Entry0_StreamOffset=IndexTables[Pos-1].Entries[IndexTables[Pos-1].Entries.size()-1].StreamOffset+(IndexTables[Pos].IndexStartPosition+EntryPos-1)*SDTI_SizePerFrame; else if (EntryPos) Entry0_StreamOffset=IndexTables[Pos].Entries[EntryPos-1].StreamOffset+(IndexTables[Pos].IndexStartPosition+EntryPos-1)*SDTI_SizePerFrame; @@ -4799,8 +4936,8 @@ void File_Mxf::Header_Parse() //Testing locators Locators_CleanUp(); - if (Config->File_IgnoreFramesBefore && !Config->File_IsDetectingDuration_Get()) - Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreFramesBefore + if (Config->File_IgnoreEditsBefore && !Config->File_IsDetectingDuration_Get()) + Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreEditsBefore if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet()) { if (Locators.empty()) @@ -4978,6 +5115,9 @@ void File_Mxf::Data_Parse() ELEMENT(TerminatingFiller, "Terminating Filler") ELEMENT(XmlDocumentText, "XML Document Text") ELEMENT(SubDescriptors, "Sub Descriptors") + ELEMENT(LensUnitMetadata, "Lens Unit Metadata") + ELEMENT(CameraUnitMetadata, "Camera Unit Metadata") + ELEMENT(UserDefinedAcquisitionMetadata, "User Defined Acquisition Metadata") ELEMENT(Filler53, "Filler") ELEMENT(Sequence, "Sequence") ELEMENT(SourceClip, "Source Clip") @@ -5008,12 +5148,15 @@ void File_Mxf::Data_Parse() ELEMENT(JPEG2000PictureSubDescriptor, "JPEG 2000 Picture Sub Descriptor") ELEMENT(VbiPacketsDescriptor, "VBI Descriptor") ELEMENT(AncPacketsDescriptor, "ANC Packets Descriptor") + ELEMENT(MpegAudioDescriptor, "MPEG Audio Descriptor") ELEMENT(PackageMarkerObject, "DM Source Clip") ELEMENT(ApplicationPlugInObject, "Application Plug-In Object") ELEMENT(ApplicationReferencedObject, "Application Referenced Object") ELEMENT(MCALabelSubDescriptor, "MCA Label Sub-Descriptor") ELEMENT(TimedTextDescriptor, "Timed Text Descriptor") ELEMENT(TimedTextResourceSubDescriptor, "Timed Text Resource Sub-Descriptor") + ELEMENT(Unknown67SubDescriptor, "Unknown 0x67 Sub-Descriptor") + ELEMENT(Mpeg4VisualSubDescriptor, "MPEG-4 Visual Sub-Descriptor") ELEMENT(AudioChannelLabelSubDescriptor, "Audio Channel Label Sub-Descriptor") ELEMENT(SoundfieldGroupLabelSubDescriptor, "Soundfield Group Label Sub-Descriptor") ELEMENT(GroupOfSoundfieldGroupsLabelSubDescriptor, "Group Of Soundfield Groups Label Sub-Descriptor") @@ -5110,11 +5253,12 @@ void File_Mxf::Data_Parse() { float64 EditRate_FromTrack=DBL_MAX; for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); ++Track) - if (EditRate_FromTrack>Track->second.EditRate) + if (Track->second.EditRate && EditRate_FromTrack>Track->second.EditRate) EditRate_FromTrack=Track->second.EditRate; if (EditRate_FromTrack>1000) EditRate_FromTrack=Demux_Rate; //Default value; Descriptor->second.SampleRate=EditRate_FromTrack; + DemuxedSampleCount_Total=Config->File_IgnoreEditsBefore; for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); ++Track) if (Track->second.EditRate>EditRate_FromTrack) { @@ -5233,13 +5377,14 @@ void File_Mxf::Data_Parse() Essence->second.TrackID_WasLookedFor=true; } + if ((Code_Compare4&0x000000FF)==0x00000000) + StreamPos_StartAtOne=false; + //Searching the corresponding Descriptor for (descriptors::iterator Descriptor=Descriptors.begin(); Descriptor!=Descriptors.end(); ++Descriptor) if (Descriptor==SingleDescriptor || (Descriptor->second.LinkedTrackID==Essence->second.TrackID && Descriptor->second.LinkedTrackID!=(int32u)-1)) { Essence->second.StreamPos_Initial=Essence->second.StreamPos=Code_Compare4&0x000000FF; - if ((Code_Compare4&0x000000FF)==0x00000000) - StreamPos_StartAtOne=false; if (Descriptor->second.StreamKind==Stream_Audio && Descriptor->second.Infos.find("Format_Settings_Endianness")==Descriptor->second.Infos.end()) { @@ -5279,10 +5424,10 @@ void File_Mxf::Data_Parse() if (!IsSub) //Updating for MXF only if MXF is not embedded in another container { Essence->second.Frame_Count_NotParsedIncluded=Frame_Count_NotParsedIncluded; - if (Essence->second.Frame_Count_NotParsedIncluded!=(int64u)-1 && Essence->second.Frame_Count_NotParsedIncluded) + if (Essence->second.Frame_Count_NotParsedIncluded!=(int64u)-1 && Essence->second.Frame_Count_NotParsedIncluded && Essence->first!=Essences_UsedForFrameCount) Essence->second.Frame_Count_NotParsedIncluded--; //Info is from the first essence parsed, and 1 frame is already parsed Essence->second.FrameInfo.DTS=FrameInfo.DTS; - if (Essence->second.FrameInfo.DTS!=(int64u)-1 && FrameInfo.DUR!=(int64u)-1 && Frame_Count_NotParsedIncluded) + if (Essence->second.FrameInfo.DTS!=(int64u)-1 && FrameInfo.DUR!=(int64u)-1 && Frame_Count_NotParsedIncluded && Essence->first!=Essences_UsedForFrameCount) Essence->second.FrameInfo.DTS-=FrameInfo.DUR; //Info is from the first essence parsed, and 1 frame is already parsed if (!Tracks.empty() && Tracks.begin()->second.EditRate) //TODO: use the corresponding track instead of the first one Essence->second.FrameInfo.DUR=float64_int64s(1000000000/Tracks.begin()->second.EditRate); @@ -5421,20 +5566,22 @@ void File_Mxf::Data_Parse() (*Parser)->FrameInfo.PTS=Essence->second.FrameInfo.PTS; if (Essence->second.FrameInfo.DUR!=(int64u)-1) (*Parser)->FrameInfo.DUR=Essence->second.FrameInfo.DUR; - if ((*Parser)->ParserName==__T("Ancillary")) - ((File_Ancillary*)(*Parser))->LineNumber=LineNumber; - if ((*Parser)->ParserName==__T("Ancillary") && (((File_Ancillary*)(*Parser))->FrameRate==0 || ((File_Ancillary*)(*Parser))->AspectRatio==0)) - { - //Configuring with video info - for (descriptors::iterator Descriptor=Descriptors.begin(); Descriptor!=Descriptors.end(); ++Descriptor) - if (Descriptor->second.StreamKind==Stream_Video) - { - ((File_Ancillary*)(*Parser))->HasBFrames=Descriptor->second.HasBFrames; - ((File_Ancillary*)(*Parser))->AspectRatio=Descriptor->second.DisplayAspectRatio; - ((File_Ancillary*)(*Parser))->FrameRate=Descriptor->second.SampleRate; - break; - } - } + #if defined(MEDIAINFO_ANCILLARY_YES) + if ((*Parser)->ParserName==__T("Ancillary")) + ((File_Ancillary*)(*Parser))->LineNumber=LineNumber; + if ((*Parser)->ParserName==__T("Ancillary") && (((File_Ancillary*)(*Parser))->FrameRate==0 || ((File_Ancillary*)(*Parser))->AspectRatio==0)) + { + //Configuring with video info + for (descriptors::iterator Descriptor=Descriptors.begin(); Descriptor!=Descriptors.end(); ++Descriptor) + if (Descriptor->second.StreamKind==Stream_Video) + { + ((File_Ancillary*)(*Parser))->HasBFrames=Descriptor->second.HasBFrames; + ((File_Ancillary*)(*Parser))->AspectRatio=Descriptor->second.DisplayAspectRatio; + ((File_Ancillary*)(*Parser))->FrameRate=Descriptor->second.SampleRate; + break; + } + } + #endif //defined(MEDIAINFO_ANCILLARY_YES) if (Element_Offset+Size>Element_Size) Size=(int16u)(Element_Size-Element_Offset); Open_Buffer_Continue((*Parser), Buffer+Buffer_Offset+(size_t)(Element_Offset), Size); @@ -5457,14 +5604,28 @@ void File_Mxf::Data_Parse() for (size_t Pos=0; Possecond.Parsers.size(); Pos++) { //Parsing - if (Essence->second.Frame_Count_NotParsedIncluded!=(int64u)-1) - Essence->second.Parsers[Pos]->Frame_Count_NotParsedIncluded=Essence->second.Frame_Count_NotParsedIncluded; - if (Essence->second.FrameInfo.DTS!=(int64u)-1) - Essence->second.Parsers[Pos]->FrameInfo.DTS=Essence->second.FrameInfo.DTS; - if (Essence->second.FrameInfo.PTS!=(int64u)-1) - Essence->second.Parsers[Pos]->FrameInfo.PTS=Essence->second.FrameInfo.PTS; - if (Essence->second.FrameInfo.DUR!=(int64u)-1) - Essence->second.Parsers[Pos]->FrameInfo.DUR=Essence->second.FrameInfo.DUR; + if (IsSub) + { + if (Frame_Count_NotParsedIncluded!=(int64u)-1) + Essence->second.Parsers[Pos]->Frame_Count_NotParsedIncluded=Frame_Count_NotParsedIncluded; + if (FrameInfo.DTS!=(int64u)-1) + Essence->second.Parsers[Pos]->FrameInfo.DTS=FrameInfo.DTS; + if (FrameInfo.PTS!=(int64u)-1) + Essence->second.Parsers[Pos]->FrameInfo.PTS=FrameInfo.PTS; + if (FrameInfo.DUR!=(int64u)-1) + Essence->second.Parsers[Pos]->FrameInfo.DUR=FrameInfo.DUR; + } + else + { + if (Essence->second.Frame_Count_NotParsedIncluded!=(int64u)-1) + Essence->second.Parsers[Pos]->Frame_Count_NotParsedIncluded=Essence->second.Frame_Count_NotParsedIncluded; + if (Essence->second.FrameInfo.DTS!=(int64u)-1) + Essence->second.Parsers[Pos]->FrameInfo.DTS=Essence->second.FrameInfo.DTS; + if (Essence->second.FrameInfo.PTS!=(int64u)-1) + Essence->second.Parsers[Pos]->FrameInfo.PTS=Essence->second.FrameInfo.PTS; + if (Essence->second.FrameInfo.DUR!=(int64u)-1) + Essence->second.Parsers[Pos]->FrameInfo.DUR=Essence->second.FrameInfo.DUR; + } Open_Buffer_Continue(Essence->second.Parsers[Pos], Buffer+Buffer_Offset, (size_t)Element_Size); #if MEDIAINFO_DEMUX if (Demux_Level==4 && Config->Demux_EventWasSent && Essence->second.StreamKind==Stream_Video && Essence->second.Parsers[Pos]->ParserIDs[StreamIDs_Size]==MediaInfo_Parser_Jpeg) // Only File_Jpeg. TODO: limit to File_Jpeg instead of video streams @@ -5557,13 +5718,47 @@ void File_Mxf::Data_Parse() } //Ignore tail - if (Config->ParseSpeed>=1.0 && Frame_Count_NotParsedIncluded!=(int64u)-1 && Config->File_IgnoreFramesAfter!=(int64u)-1 && Frame_Count_NotParsedIncluded>=Config->File_IgnoreFramesAfter) + #if MEDIAINFO_DEMUX + if (DemuxedSampleCount_Total!=(int64u)-1 && DemuxedSampleCount_Current!=(int64u)-1) + { + DemuxedSampleCount_Total+=DemuxedSampleCount_Current; + Frame_Count_NotParsedIncluded=DemuxedSampleCount_Total; + } + #endif //MEDIAINFO_DEMUX + if (Config->ParseSpeed>=1.0 && Frame_Count_NotParsedIncluded!=(int64u)-1 && Config->File_IgnoreEditsAfter!=(int64u)-1) { - if (PartitionMetadata_FooterPartition!=(int64u)-1 && PartitionMetadata_FooterPartition>=File_Offset+Buffer_Offset+Element_Size) - GoTo(PartitionMetadata_FooterPartition); + descriptors::iterator SingleDescriptor=Descriptors.end(); + for (descriptors::iterator SingleDescriptor_Temp=Descriptors.begin(); SingleDescriptor_Temp!=Descriptors.end(); ++SingleDescriptor_Temp) + if (SingleDescriptor_Temp->second.StreamKind!=Stream_Max) + { + if (SingleDescriptor!=Descriptors.end()) + { + SingleDescriptor=Descriptors.end(); + break; // 2 or more descriptors, can not be used + } + SingleDescriptor=SingleDescriptor_Temp; + } + + int64u RealSampleRate=(SingleDescriptor==Descriptors.end() || SingleDescriptor->second.StreamKind!=Stream_Audio)?((int64u)Config->File_EditRate):SingleDescriptor->second.Infos["SamplingRate"].To_int64u(); + int64u IgnoreSamplesAfter; + if (!RealSampleRate || RealSampleRate==Config->File_EditRate) + IgnoreSamplesAfter=Config->File_IgnoreEditsAfter; else - GoToFromEnd(0); + IgnoreSamplesAfter=float64_int64s(((float64)Config->File_IgnoreEditsAfter)/Config->File_EditRate*RealSampleRate); + if (Frame_Count_NotParsedIncluded>=IgnoreSamplesAfter) + { + if (PartitionMetadata_FooterPartition!=(int64u)-1 && PartitionMetadata_FooterPartition>=File_Offset+Buffer_Offset+Element_Size) + GoTo(PartitionMetadata_FooterPartition); + else + GoToFromEnd(0); + } } + #if MEDIAINFO_DEMUX + if (DemuxedSampleCount_Total!=(int64u)-1) + { + Frame_Count_NotParsedIncluded=(int64u)-1; + } + #endif //MEDIAINFO_DEMUX } else Skip_XX(Element_Size, "Unknown"); @@ -5637,6 +5832,28 @@ void File_Mxf::AES3PCMDescriptor() //--------------------------------------------------------------------------- void File_Mxf::CDCIEssenceDescriptor() { + if (Code2>=0x8000) + { + // Not a short code + std::map::iterator Primer_Value=Primer_Values.find(Code2); + if (Primer_Value!=Primer_Values.end()) + { + int32u Code_Compare1=Primer_Value->second.hi>>32; + int32u Code_Compare2=(int32u)Primer_Value->second.hi; + int32u Code_Compare3=Primer_Value->second.lo>>32; + int32u Code_Compare4=(int32u)Primer_Value->second.lo; + if(0); + ELEMENT_UUID(SubDescriptors, "Sub Descriptors") + else + { + Element_Info1(Ztring().From_UUID(Primer_Value->second)); + Skip_XX(Length2, "Data"); + } + + return; + } + } + switch(Code2) { ELEMENT(3301, CDCIEssenceDescriptor_ComponentDepth, "Active bits per sample") @@ -5698,8 +5915,8 @@ void File_Mxf::OpenIncompleteBodyPartition() //Testing locators Locators_CleanUp(); - if (Config->File_IgnoreFramesBefore && !Config->File_IsDetectingDuration_Get()) - Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreFramesBefore + if (Config->File_IgnoreEditsBefore && !Config->File_IsDetectingDuration_Get()) + Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreEditsBefore if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet()) { if (Locators.empty()) @@ -5726,8 +5943,8 @@ void File_Mxf::ClosedIncompleteBodyPartition() //Testing locators Locators_CleanUp(); - if (Config->File_IgnoreFramesBefore && !Config->File_IsDetectingDuration_Get()) - Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreFramesBefore + if (Config->File_IgnoreEditsBefore && !Config->File_IsDetectingDuration_Get()) + Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreEditsBefore if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet()) { if (Locators.empty()) @@ -5754,8 +5971,8 @@ void File_Mxf::OpenCompleteBodyPartition() //Testing locators Locators_CleanUp(); - if (Config->File_IgnoreFramesBefore && !Config->File_IsDetectingDuration_Get()) - Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreFramesBefore + if (Config->File_IgnoreEditsBefore && !Config->File_IsDetectingDuration_Get()) + Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreEditsBefore if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet()) { if (Locators.empty()) @@ -5782,8 +5999,8 @@ void File_Mxf::ClosedCompleteBodyPartition() //Testing locators Locators_CleanUp(); - if (Config->File_IgnoreFramesBefore && !Config->File_IsDetectingDuration_Get()) - Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreFramesBefore + if (Config->File_IgnoreEditsBefore && !Config->File_IsDetectingDuration_Get()) + Open_Buffer_Seek(3, 0, (int64u)-1); //Forcing seek to Config->File_IgnoreEditsBefore if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet()) { if (Locators.empty()) @@ -5901,7 +6118,7 @@ void File_Mxf::Identification() ELEMENT(3C03, Identification_ProductVersion, "ProductVersion") ELEMENT(3C04, Identification_VersionString, "VersionString") ELEMENT(3C05, Identification_ProductUID, "ProductUID") - ELEMENT(3C06, Identification_ModificationDate , "ModificationDate ") + ELEMENT(3C06, Identification_ModificationDate , "ModificationDate") ELEMENT(3C07, Identification_ToolkitVersion, "ToolkitVersion") ELEMENT(3C08, Identification_Platform, "Platform") ELEMENT(3C09, Identification_ThisGenerationUID, "ThisGenerationUID") @@ -5979,9 +6196,9 @@ void File_Mxf::JPEG2000PictureSubDescriptor() ELEMENT_UUID(JPEG2000PictureSubDescriptor_Xsiz, "Xsiz - Width") ELEMENT_UUID(JPEG2000PictureSubDescriptor_Ysiz, "Ysiz - Height") ELEMENT_UUID(JPEG2000PictureSubDescriptor_XOsiz, "XOsiz - Horizontal offset") - ELEMENT_UUID(JPEG2000PictureSubDescriptor_YOsiz, "YOsiz - Vertical offset ") - ELEMENT_UUID(JPEG2000PictureSubDescriptor_XTsiz, "XTsiz - Width of one reference tile ") - ELEMENT_UUID(JPEG2000PictureSubDescriptor_YTsiz, "YTsiz - Height of one reference tile ") + ELEMENT_UUID(JPEG2000PictureSubDescriptor_YOsiz, "YOsiz - Vertical offset") + ELEMENT_UUID(JPEG2000PictureSubDescriptor_XTsiz, "XTsiz - Width of one reference tile") + ELEMENT_UUID(JPEG2000PictureSubDescriptor_YTsiz, "YTsiz - Height of one reference tile") ELEMENT_UUID(JPEG2000PictureSubDescriptor_XTOsiz, "XTOsiz - Horizontal offset of the first tile") ELEMENT_UUID(JPEG2000PictureSubDescriptor_YTOsiz, "YTOsiz - Vertical offset of the first tile") ELEMENT_UUID(JPEG2000PictureSubDescriptor_Csiz, "Csiz - Number of components in the picture") @@ -6076,7 +6293,7 @@ void File_Mxf::GenericSoundEssenceDescriptor() switch(Code2) { ELEMENT(3D01, GenericSoundEssenceDescriptor_QuantizationBits, "QuantizationBits") - ELEMENT(3D02, GenericSoundEssenceDescriptor_Locked , "Locked ") + ELEMENT(3D02, GenericSoundEssenceDescriptor_Locked , "Locked") ELEMENT(3D03, GenericSoundEssenceDescriptor_AudioSamplingRate, "AudioSamplingRate") ELEMENT(3D04, GenericSoundEssenceDescriptor_AudioRefLevel, "AudioRefLevel") ELEMENT(3D05, GenericSoundEssenceDescriptor_ElectroSpatialFormulation, "ElectroSpatialFormulation") @@ -6202,6 +6419,31 @@ void File_Mxf::MultipleDescriptor() if (Descriptors[InstanceUID].Type==descriptor::Type_Unknown) Descriptors[InstanceUID].Type=descriptor::type_Mutiple; + /* + //TODO: check when MPEG-4 Visual subdescriptor, it disabled stream info merge + if (Code2>=0x8000) + { + // Not a short code + std::map::iterator Primer_Value=Primer_Values.find(Code2); + if (Primer_Value!=Primer_Values.end()) + { + int32u Code_Compare1=Primer_Value->second.hi>>32; + int32u Code_Compare2=(int32u)Primer_Value->second.hi; + int32u Code_Compare3=Primer_Value->second.lo>>32; + int32u Code_Compare4=(int32u)Primer_Value->second.lo; + if(0); + ELEMENT_UUID(SubDescriptors, "Sub Descriptors") + else + { + Element_Info1(Ztring().From_UUID(Primer_Value->second)); + Skip_XX(Length2, "Data"); + } + + return; + } + } + */ + switch(Code2) { ELEMENT(3F01, MultipleDescriptor_SubDescriptorUIDs, "SubDescriptorUIDs") @@ -6472,7 +6714,7 @@ void File_Mxf::AS11_AAF_Core() int32u Code_Compare3=Primer_Value->second.lo>>32; int32u Code_Compare4=(int32u)Primer_Value->second.lo; if(0); - ELEMENT_UUID(AS11_Core_SerieTitle, "Serie Title") + ELEMENT_UUID(AS11_Core_SeriesTitle, "Series Title") ELEMENT_UUID(AS11_Core_ProgrammeTitle, "Programme Title") ELEMENT_UUID(AS11_Core_EpisodeTitleNumber, "Episode Title Number") ELEMENT_UUID(AS11_Core_ShimName, "Shim Name") @@ -6669,9 +6911,7 @@ void File_Mxf::TimecodeComponent() { if (Element_Offset==4) { - TimeCode_StartTimecode=(int64u)-1; - TimeCode_RoundedTimecodeBase=0; - TimeCode_DropFrame=false; + MxfTimeCodeForDelay=mxftimecode(); DTS_Delay=0; FrameInfo.DTS=0; } @@ -6765,6 +7005,37 @@ void File_Mxf::AncPacketsDescriptor() } } +//--------------------------------------------------------------------------- +void File_Mxf::MpegAudioDescriptor() +{ + if (Code2>=0x8000) + { + // Not a short code + std::map::iterator Primer_Value=Primer_Values.find(Code2); + if (Primer_Value!=Primer_Values.end()) + { + int32u Code_Compare1=Primer_Value->second.hi>>32; + int32u Code_Compare2=(int32u)Primer_Value->second.hi; + int32u Code_Compare3=Primer_Value->second.lo>>32; + int32u Code_Compare4=(int32u)Primer_Value->second.lo; + if(0); + ELEMENT_UUID(MpegAudioDescriptor_BitRate, "Bit Rate") + else + { + Element_Info1(Ztring().From_UUID(Primer_Value->second)); + Skip_XX(Length2, "Data"); + } + + return; + } + } + + //switch(Code2) + //{ + // default: GenericSoundEssenceDescriptor(); + //} +} + //--------------------------------------------------------------------------- void File_Mxf::PackageMarkerObject() { @@ -6897,6 +7168,57 @@ void File_Mxf::TimedTextResourceSubDescriptor() //} } +//--------------------------------------------------------------------------- +void File_Mxf::Unknown67SubDescriptor() +{ + //switch(Code2) + //{ + // default: + GenerationInterchangeObject(); + //} +} + +//--------------------------------------------------------------------------- +void File_Mxf::Mpeg4VisualSubDescriptor() +{ + if (Code2>=0x8000) + { + // Not a short code + std::map::iterator Primer_Value=Primer_Values.find(Code2); + if (Primer_Value!=Primer_Values.end()) + { + int32u Code_Compare1=Primer_Value->second.hi>>32; + int32u Code_Compare2=(int32u)Primer_Value->second.hi; + int32u Code_Compare3=Primer_Value->second.lo>>32; + int32u Code_Compare4=(int32u)Primer_Value->second.lo; + if(0); + ELEMENT_UUID(Mpeg4VisualDescriptor_SingleSequence, "Single sequence") + ELEMENT_UUID(Mpeg4VisualDescriptor_ConstantBFrames, "Number of B frames always constant") + ELEMENT_UUID(Mpeg4VisualDescriptor_CodedContentType, "Coded content type") + ELEMENT_UUID(Mpeg4VisualDescriptor_LowDelay, "Low delay") + ELEMENT_UUID(Mpeg4VisualDescriptor_ClosedGOP, "Closed GOP") + ELEMENT_UUID(Mpeg4VisualDescriptor_IdenticalGOP, "Identical GOP") + ELEMENT_UUID(Mpeg4VisualDescriptor_MaxGOP, "Maximum occurring spacing between I frames") + ELEMENT_UUID(Mpeg4VisualDescriptor_BPictureCount, "Maximum number of B pictures between P or I frames") + ELEMENT_UUID(Mpeg4VisualDescriptor_ProfileAndLevel, "Profile and level") + ELEMENT_UUID(Mpeg4VisualDescriptor_BitRate, "Maximum bit rate") + else + { + Element_Info1(Ztring().From_UUID(Primer_Value->second)); + Skip_XX(Length2, "Data"); + } + + return; + } + } + + //switch(Code2) + //{ + // default: + GenerationInterchangeObject(); + //} +} + //--------------------------------------------------------------------------- void File_Mxf::ResourceID() { @@ -7236,21 +7558,86 @@ void File_Mxf::SubDescriptors() } //--------------------------------------------------------------------------- -void File_Mxf::SDTI_SystemMetadataPack() //SMPTE 385M + 326M +void File_Mxf::LensUnitMetadata() { - //Info for SDTI in Index StreamOffset - if (!SDTI_IsPresent) + //switch(Code2) + //{ + // default: + GenerationInterchangeObject(); + //} +} + +//--------------------------------------------------------------------------- +void File_Mxf::CameraUnitMetadata() +{ + if (Count_Get(Stream_Other)==0) + Stream_Prepare(Stream_Other); + + switch(Code2) { - if (!Partitions.empty() && File_Offset+Buffer_Offset=1.3?true:false; + if (!Is1dot3 && Element_Size && Buffer[(size_t)(Buffer_Offset+Element_Offset)]&0x60) + Is1dot3=true; + + BS_Begin(); + if (Is1dot3) + { + Skip_SB( "Reserved"); + Get_S1 (4, Data, "Data"); Element_Info1C((Data<16), AfdBarData_active_format[Data]); + Skip_SB( "AR"); + Skip_S1(2, "Reserved"); + } + else + { + Skip_S1(3, "Reserved"); + Get_S1 (4, Data, "Data"); Element_Info1C((Data<16), AfdBarData_active_format[Data]); + Skip_SB( "AR"); + } + BS_End(); FILLING_BEGIN(); Descriptors[InstanceUID].ActiveFormat=Data; @@ -8622,7 +9027,8 @@ void File_Mxf::Identification_ProductVersion() Element_Info1(Version); FILLING_BEGIN(); - Identifications[InstanceUID].ProductVersion=Version; + if (Major || Minor || Patch || Build || Release) + Identifications[InstanceUID].ProductVersion=Version; FILLING_END(); } @@ -8660,17 +9066,23 @@ void File_Mxf::Identification_ModificationDate() void File_Mxf::Identification_ToolkitVersion() { //Parsing - //Parsing - Info_B2(Major, "Major"); - Info_B2(Minor, "Minor"); - Info_B2(Patch, "Patch"); - Info_B2(Build, "Build"); - Info_B2(Release, "Release"); - Element_Info1(Ztring::ToZtring(Major)+__T('.') - +Ztring::ToZtring(Minor)+__T('.') - +Ztring::ToZtring(Patch)+__T('.') - +Ztring::ToZtring(Build)+__T('.') - +Ztring::ToZtring(Release) ); + int16u Major, Minor, Patch, Build, Release; + Get_B2 (Major, "Major"); + Get_B2 (Minor, "Minor"); + Get_B2 (Patch, "Patch"); + Get_B2 (Build, "Build"); + Get_B2 (Release, "Release"); + Ztring Version=Ztring::ToZtring(Major)+__T('.') + +Ztring::ToZtring(Minor)+__T('.') + +Ztring::ToZtring(Patch)+__T('.') + +Ztring::ToZtring(Build)+__T('.') + +Ztring::ToZtring(Release) ; + Element_Info1(Version); + + FILLING_BEGIN(); + if (Major || Minor || Patch || Build || Release) + Identifications[InstanceUID].ToolkitVersion=Version; + FILLING_END(); } //--------------------------------------------------------------------------- @@ -8678,7 +9090,13 @@ void File_Mxf::Identification_ToolkitVersion() void File_Mxf::Identification_Platform() { //Parsing - Info_UTF16B(Length2, Data, "Data"); Element_Info1(Data); + Ztring Data; + Get_UTF16B(Length2, Data, "Data"); Element_Info1(Data); + + FILLING_BEGIN(); + if (Data!=__T("Unknown")) + Identifications[InstanceUID].Platform=Data; + FILLING_END(); } //--------------------------------------------------------------------------- @@ -8990,6 +9408,13 @@ void File_Mxf::JPEG2000PictureSubDescriptor_QuantizationDefault() Skip_XX(Length2, "Data"); } +//--------------------------------------------------------------------------- +// +void File_Mxf::MpegAudioDescriptor_BitRate() +{ + Skip_B4( "Data"); +} + //--------------------------------------------------------------------------- // 0x3B02 void File_Mxf::Preface_LastModifiedDate() @@ -9166,6 +9591,20 @@ void File_Mxf::MPEG2VideoDescriptor_ProfileAndLevel() FILLING_END(); } +//--------------------------------------------------------------------------- +// 0x +void File_Mxf::Mpeg4VisualDescriptor_ProfileAndLevel() +{ + //Parsing + int8u profile_and_level_indication; + Get_B1 (profile_and_level_indication, "profile_and_level_indication"); Param_Info1(Mpeg4v_Profile_Level(profile_and_level_indication)); + + FILLING_BEGIN(); + if (profile_and_level_indication) + Descriptors[InstanceUID].Infos["Format_Profile"]=Ztring().From_Local(Mpeg4v_Profile_Level(profile_and_level_indication)); + FILLING_END(); +} + //--------------------------------------------------------------------------- // 0x void File_Mxf::MPEG2VideoDescriptor_BitRate() @@ -9223,8 +9662,9 @@ void File_Mxf::PartitionMetadata() int64u PreviousPartition, FooterPartition, HeaderByteCount, IndexByteCount, BodyOffset; int32u IndexSID; int32u KAGSize; - Skip_B2( "MajorVersion"); - Skip_B2( "MinorVersion"); + int16u MajorVersion, MinorVersion; + Get_B2 (MajorVersion, "MajorVersion"); + Get_B2 (MinorVersion, "MinorVersion"); Get_B4 (KAGSize, "KAGSize"); Skip_B8( "ThisPartition"); Get_B8 (PreviousPartition, "PreviousPartition"); @@ -9274,6 +9714,8 @@ void File_Mxf::PartitionMetadata() Partitions_IsCalculatingHeaderByteCount=true; } + Fill(Stream_General, 0, General_Format_Version, Ztring::ToZtring(MajorVersion)+__T('.')+Ztring::ToZtring(MinorVersion), true); + if ((Code.lo&0xFF0000)==0x020000) //If Header Partition Pack switch ((Code.lo>>8)&0xFF) { @@ -9497,6 +9939,8 @@ void File_Mxf::RGBAEssenceDescriptor_AlphaMinRef() // 0x1001 void File_Mxf::Sequence_StructuralComponents() { + Components[InstanceUID].StructuralComponents.clear(); + //Parsing //Vector int32u Count, Length; @@ -9797,11 +10241,11 @@ void File_Mxf::TimecodeComponent_StartTimecode() FILLING_BEGIN(); if (Data!=(int64u)-1) { - TimeCode_StartTimecode=Data; - if (TimeCode_RoundedTimecodeBase) + MxfTimeCodeForDelay.StartTimecode=Data; + if (MxfTimeCodeForDelay.RoundedTimecodeBase) { - DTS_Delay=((float64)TimeCode_StartTimecode)/TimeCode_RoundedTimecodeBase; - if (TimeCode_DropFrame) + DTS_Delay=((float64)MxfTimeCodeForDelay.StartTimecode)/MxfTimeCodeForDelay.RoundedTimecodeBase; + if (MxfTimeCodeForDelay.DropFrame) { DTS_Delay*=1001; DTS_Delay/=1000; @@ -9813,7 +10257,7 @@ void File_Mxf::TimecodeComponent_StartTimecode() } } - Components[InstanceUID].TimeCode_StartTimecode=Data; + Components[InstanceUID].MxfTimeCode.StartTimecode=Data; FILLING_END(); } @@ -9828,11 +10272,11 @@ void File_Mxf::TimecodeComponent_RoundedTimecodeBase() FILLING_BEGIN(); if (Data && Data!=(int16u)-1) { - TimeCode_RoundedTimecodeBase=Data; - if (TimeCode_StartTimecode!=(int64u)-1) + MxfTimeCodeForDelay.RoundedTimecodeBase=Data; + if (MxfTimeCodeForDelay.StartTimecode!=(int64u)-1) { - DTS_Delay=((float64)TimeCode_StartTimecode)/TimeCode_RoundedTimecodeBase; - if (TimeCode_DropFrame) + DTS_Delay=((float64)MxfTimeCodeForDelay.StartTimecode)/MxfTimeCodeForDelay.RoundedTimecodeBase; + if (MxfTimeCodeForDelay.DropFrame) { DTS_Delay*=1001; DTS_Delay/=1000; @@ -9844,7 +10288,7 @@ void File_Mxf::TimecodeComponent_RoundedTimecodeBase() } } - Components[InstanceUID].TimeCode_RoundedTimecodeBase=Data; + Components[InstanceUID].MxfTimeCode.RoundedTimecodeBase=Data; FILLING_END(); } @@ -9859,7 +10303,7 @@ void File_Mxf::TimecodeComponent_DropFrame() FILLING_BEGIN(); if (Data!=(int8u)-1 && Data) { - TimeCode_DropFrame=true; + MxfTimeCodeForDelay.DropFrame=true; if (DTS_Delay) { DTS_Delay*=1001; @@ -9871,7 +10315,7 @@ void File_Mxf::TimecodeComponent_DropFrame() #endif //MEDIAINFO_DEMUX } - Components[InstanceUID].TimeCode_DropFrame=Data?true:false; + Components[InstanceUID].MxfTimeCode.DropFrame=Data?true:false; FILLING_END(); } @@ -10033,16 +10477,324 @@ void File_Mxf::WaveAudioDescriptor_ChannelAssignment() FILLING_END(); } +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_CaptureGammaEquation() +{ + //Parsing + int128u Value; + Get_UUID(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "CaptureGammaEquation").empty()) + Fill(Stream_Other, 0, "CaptureGammaEquation", Mxf_CameraUnitMetadata_CaptureGammaEquation(Value)); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_NeutralDensityFilterWheelSetting() +{ + //Parsing + int16u Value; + Get_B2(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "NeutralDensityFilterWheelSetting").empty()) + Fill(Stream_Other, 0, "NeutralDensityFilterWheelSetting", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_CaptureFrameRate() +{ + //Parsing + float64 Value; + Get_Rational(Value); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "CaptureFrameRate").empty()) + Fill(Stream_Other, 0, "CaptureFrameRate", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_ImageSensorReadoutMode() +{ + //Parsing + int8u Value; + Get_B1(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "ImageSensorReadoutMode").empty()) + Fill(Stream_Other, 0, "ImageSensorReadoutMode", Mxf_CameraUnitMetadata_ImageSensorReadoutMode(Value)); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_ShutterSpeed_Angle() +{ + //Parsing + int32u Value; + Get_B4(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "ShutterSpeed_Angle").empty()) + Fill(Stream_Other, 0, "ShutterSpeed_Angle", ((float)Value)/60, 1); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_ISOSensitivity() +{ + //Parsing + int16u Value; + Get_B2(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "ISOSensitivity").empty()) + Fill(Stream_Other, 0, "ISOSensitivity", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_WhiteBalance() +{ + //Parsing + int16u Value; + Get_B2(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "WhiteBalance").empty()) + Fill(Stream_Other, 0, "WhiteBalance", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_CameraAttributes() +{ + //Parsing + Ztring Value; + Get_UTF8(Length2, Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "CameraAttributes").empty()) + Fill(Stream_Other, 0, "CameraAttributes", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_ExposureIndexofPhotoMeter() +{ + //Parsing + int16u Value; + Get_B2(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "ExposureIndexofPhotoMeter").empty()) + Fill(Stream_Other, 0, "ExposureIndexofPhotoMeter", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_GammaforCDL() +{ + //Parsing + int8u Value; + Get_B1(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "GammaforCDL").empty()) + Fill(Stream_Other, 0, "GammaforCDL", Mxf_CameraUnitMetadata_GammaforCDL(Value)); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::CameraUnitMetadata_ASCCDLV1_2() +{ + //Parsing + //Vector + int32u Count, Length; + Get_B4 (Count, "Count"); + Get_B4 (Length, "Length"); + if (Count!=10 || Length!=2) + { + Skip_XX (Length2-8, "Data"); + return; + } + float32 sR, sG, sB, oR, oG, oB, pR, pG, pB, sat; + Get_BF2(sR, "sR"); + Get_BF2(sG, "sG"); + Get_BF2(sB, "sB"); + Get_BF2(oR, "oR"); + Get_BF2(oG, "oG"); + Get_BF2(oB, "oB"); + Get_BF2(pR, "pR"); + Get_BF2(pG, "pG"); + Get_BF2(pB, "pB"); + Get_BF2(sat, "sat"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "ASCCDLV1_2").empty()) + { + Ztring ValueS=__T("sR=")+Ztring::ToZtring(sR, 1)+__T(" sG=")+Ztring::ToZtring(sG, 1)+__T(" sB=")+Ztring::ToZtring(sB, 1)+__T(" oR=")+Ztring::ToZtring(oR, 1)+__T(" oG=")+Ztring::ToZtring(oG, 1)+__T(" oB=")+Ztring::ToZtring(oB, 1)+__T(" pR=")+Ztring::ToZtring(pR, 1)+__T(" pG=")+Ztring::ToZtring(pG, 1)+__T(" pB=")+Ztring::ToZtring(pB, 1)+__T(" sat=")+Ztring::ToZtring(sat, 1); + Fill(Stream_Other, 0, "ASCCDLV1_2", ValueS); + } + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_UdamSetIdentifier() +{ + //Parsing + int128u Value; + Get_UUID(Value, "Value"); + + FILLING_BEGIN(); + if (Value.hi==0x966908004678031CLL && Value.lo==0x20500000F0C01181LL) + UserDefinedAcquisitionMetadata_UdamSetIdentifier_IsSony=true; + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_8007() +{ + //Parsing + Ztring Value; + Get_UTF8(Length2, Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "LensAttributes").empty()) + Fill(Stream_Other, 0, "LensAttributes", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E101() +{ + //Parsing + int32u Width, Height; + Get_B4 (Width, "Width"); + Get_B4 (Height, "Height"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "EffectiveMarkerCoverage").empty()) + Fill(Stream_Other, 0, "EffectiveMarkerCoverage", Ztring::ToZtring(Width)+__T("x")+Ztring::ToZtring(Height)); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E102() +{ + //Parsing + int32u Width, Height; + Get_B4 (Width, "Width"); + Get_B4 (Height, "Height"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "EffectiveMarkerAspectRatio").empty()) + Fill(Stream_Other, 0, "EffectiveMarkerAspectRatio", Ztring::ToZtring(Width)+__T(":")+Ztring::ToZtring(Height)); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E103() +{ + //Parsing + int16u Value; + Get_B2(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "CameraProcessDiscriminationCode").empty()) + Fill(Stream_Other, 0, "CameraProcessDiscriminationCode", Value, 16); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E104() +{ + //Parsing + int8u Value; + Get_B1(Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "RotaryShutterMode").empty()) + Fill(Stream_Other, 0, "RotaryShutterMode", Value?"Yes":"No"); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E109() +{ + //Parsing + Ztring Value; + Get_UTF8(Length2, Value, "Value"); + + FILLING_BEGIN(); + if (Retrieve(Stream_Other, 0, "MonitoringDescriptions").empty()) + Fill(Stream_Other, 0, "MonitoringDescriptions", Value); + FILLING_END(); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E10B() +{ + //Parsing + Skip_UUID( "Value"); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E201() +{ + //Parsing + Skip_XX(Length2, "Value"); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E202() +{ + //Parsing + Ztring Value; + Get_UTF8(Length2, Value, "Value"); +} + +//--------------------------------------------------------------------------- +// +void File_Mxf::UserDefinedAcquisitionMetadata_Sony_E203() +{ + //Parsing + Skip_B1( "Value"); +} + //--------------------------------------------------------------------------- // AAF -void File_Mxf::AS11_Core_SerieTitle() +void File_Mxf::AS11_Core_SeriesTitle() { //Parsing Ztring Value; Get_UTF16B(Length2, Value, "Value"); Element_Info1(Value); FILLING_BEGIN(); - AS11s[InstanceUID].SerieTitle=Value; + AS11s[InstanceUID].SeriesTitle=Value; FILLING_END(); } @@ -14094,10 +14846,12 @@ void File_Mxf::ChooseParser__Aaf_GC_Data(const essences::iterator &Essence, cons Essence->second.Parsers.push_back(new File__Analyze()); break; case 0x02 : //Ancillary - if (!Ancillary) - Ancillary=new File_Ancillary(); - Essence->second.Parsers.push_back(Ancillary); - Ancillary_IsBinded=true; + #if defined(MEDIAINFO_ANCILLARY_YES) + if (!Ancillary) + Ancillary=new File_Ancillary(); + Essence->second.Parsers.push_back(Ancillary); + Ancillary_IsBinded=true; + #endif //defined(MEDIAINFO_ANCILLARY_YES) break; case 0x08 : //Line Wrapped Data Element, SMPTE 384M case 0x09 : //Line Wrapped VANC Data Element, SMPTE 384M @@ -14374,6 +15128,8 @@ void File_Mxf::ChooseParser_ChannelGrouping(const essences::iterator &Essence, c { Essence->second.StreamKind=Stream_Audio; + #if defined(MEDIAINFO_SMPTEST0337_YES) + //Creating the parser if (!((Essence->second.StreamPos-(StreamPos_StartAtOne?1:0))%2 && Essences[Essence->first-1].Parsers.size()<=1)) { @@ -14424,6 +15180,7 @@ void File_Mxf::ChooseParser_ChannelGrouping(const essences::iterator &Essence, c Essence->second.Parsers.push_back(Parser); } + #endif //defined(MEDIAINFO_SMPTEST0337_YES) //Adding PCM ChooseParser_Pcm(Essence, Descriptor); @@ -14473,6 +15230,8 @@ void File_Mxf::ChooseParser_Pcm(const essences::iterator &Essence, const descrip { if (Channels) Parser->Channels=Channels; + if (Descriptor->second.Infos.find("SamplingRate")!=Descriptor->second.Infos.end()) + Parser->SamplingRate=Descriptor->second.Infos["SamplingRate"].To_int16u(); if (Parser->Channels && Descriptor->second.BlockAlign!=(int16u)-1) Parser->BitDepth=(int8u)(Descriptor->second.BlockAlign*8/Parser->Channels); else if (Descriptor->second.QuantizationBits<256) @@ -14597,6 +15356,7 @@ void File_Mxf::ChooseParser_Jpeg2000(const essences::iterator &Essence, const de { Parser->Demux_Level=2; //Container Parser->Demux_UnpacketizeContainer=true; + Parser->FrameRate=Descriptor->second.SampleRate; } #endif //MEDIAINFO_DEMUX } @@ -14643,6 +15403,7 @@ void File_Mxf::Subsampling_Compute(descriptors::iterator Descriptor) } //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_REFERENCES_YES) void File_Mxf::Locators_CleanUp() { //Testing locators (TODO: check if this is still useful) @@ -14672,8 +15433,10 @@ void File_Mxf::Locators_CleanUp() } } +#endif //defined(MEDIAINFO_REFERENCES_YES) //--------------------------------------------------------------------------- +#if defined(MEDIAINFO_REFERENCES_YES) void File_Mxf::Locators_Test() { Locators_CleanUp(); @@ -14685,15 +15448,15 @@ void File_Mxf::Locators_Test() for (locators::iterator Locator=Locators.begin(); Locator!=Locators.end(); ++Locator) if (!Locator->second.IsTextLocator && !Locator->second.EssenceLocator.empty()) { - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.FileNames.push_back(Locator->second.EssenceLocator); - ReferenceFile.StreamKind=Locator->second.StreamKind; - ReferenceFile.StreamPos=Locator->second.StreamPos; + sequence* Sequence=new sequence; + Sequence->AddFileName(Locator->second.EssenceLocator); + Sequence->StreamKind=Locator->second.StreamKind; + Sequence->StreamPos=Locator->second.StreamPos; if (Locator->second.LinkedTrackID!=(int32u)-1) - ReferenceFile.StreamID=Locator->second.LinkedTrackID; + Sequence->StreamID=Locator->second.LinkedTrackID; else if (!Retrieve(Locator->second.StreamKind, Locator->second.StreamPos, General_ID).empty()) - ReferenceFile.StreamID=Retrieve(Locator->second.StreamKind, Locator->second.StreamPos, General_ID).To_int64u(); - ReferenceFile.Delay=float64_int64s(DTS_Delay*1000000000); + Sequence->StreamID=Retrieve(Locator->second.StreamKind, Locator->second.StreamPos, General_ID).To_int64u(); + Sequence->Delay=float64_int64s(DTS_Delay*1000000000); //Special cases if (Locator->second.StreamKind==Stream_Video) @@ -14702,18 +15465,17 @@ void File_Mxf::Locators_Test() for (descriptors::iterator Descriptor=Descriptors.begin(); Descriptor!=Descriptors.end(); ++Descriptor) for (size_t LocatorPos=0; LocatorPossecond.Locators.size(); LocatorPos++) if (Descriptor->second.Locators[LocatorPos]==Locator->first) - ReferenceFile.FrameRate=Descriptor->second.SampleRate; + Sequence->FrameRate_Set(Descriptor->second.SampleRate); } - - if (ReferenceFile.StreamID!=(int32u)-1) + if (Sequence->StreamID!=(int32u)-1) { //Descriptive Metadata std::vector DMScheme1s_List; for (dmsegments::iterator DMSegment=DMSegments.begin(); DMSegment!=DMSegments.end(); ++DMSegment) for (size_t Pos=0; Possecond.TrackIDs.size(); Pos++) - if (DMSegment->second.TrackIDs[Pos]==ReferenceFile.StreamID) + if (DMSegment->second.TrackIDs[Pos]==Sequence->StreamID) DMScheme1s_List.push_back(DMSegment->second.Framework); for (size_t Pos=0; Possecond.PrimaryExtendedSpokenLanguage; + Sequence->Infos["Language"]=DMScheme1->second.PrimaryExtendedSpokenLanguage; } } } - ReferenceFiles->References.push_back(ReferenceFile); + ReferenceFiles->AddSequence(Sequence); } else { @@ -14737,6 +15499,7 @@ void File_Mxf::Locators_Test() ReferenceFiles->ParseReferences(); } } +#endif //defined(MEDIAINFO_REFERENCES_YES) //--------------------------------------------------------------------------- void File_Mxf::TryToFinish() diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.h index 03d807929d3..507e229b2c9 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.h @@ -130,6 +130,9 @@ protected : void TerminatingFiller(); void XmlDocumentText(); void SubDescriptors(); + void LensUnitMetadata(); + void CameraUnitMetadata(); + void UserDefinedAcquisitionMetadata(); void Filler53(); void Sequence(); void SourceClip(); @@ -159,12 +162,15 @@ protected : void JPEG2000PictureSubDescriptor(); void VbiPacketsDescriptor(); void AncPacketsDescriptor(); + void MpegAudioDescriptor(); void PackageMarkerObject(); void ApplicationPlugInObject(); void ApplicationReferencedObject(); void MCALabelSubDescriptor(); void TimedTextDescriptor(); void TimedTextResourceSubDescriptor(); + void Unknown67SubDescriptor(); + void Mpeg4VisualSubDescriptor(); void AudioChannelLabelSubDescriptor(); void SoundfieldGroupLabelSubDescriptor(); void GroupOfSoundfieldGroupsLabelSubDescriptor(); @@ -321,6 +327,7 @@ protected : void JPEG2000PictureSubDescriptor_PictureComponentSizing(); //800B void JPEG2000PictureSubDescriptor_CodingStyleDefault(); // void JPEG2000PictureSubDescriptor_QuantizationDefault(); // + void MpegAudioDescriptor_BitRate(); // void MultipleDescriptor_SubDescriptorUIDs(); //3F01 void PrimaryExtendedSpokenLanguage(); // void SecondaryExtendedSpokenLanguage(); // @@ -337,6 +344,16 @@ protected : void MPEG2VideoDescriptor_BPictureCount(); // void MPEG2VideoDescriptor_ProfileAndLevel(); // void MPEG2VideoDescriptor_BitRate(); // + void Mpeg4VisualDescriptor_SingleSequence() {MPEG2VideoDescriptor_SingleSequence();} + void Mpeg4VisualDescriptor_ConstantBFrames() {MPEG2VideoDescriptor_ConstantBFrames();} + void Mpeg4VisualDescriptor_CodedContentType() {MPEG2VideoDescriptor_CodedContentType();} + void Mpeg4VisualDescriptor_LowDelay() {MPEG2VideoDescriptor_LowDelay();} + void Mpeg4VisualDescriptor_ClosedGOP() {MPEG2VideoDescriptor_ClosedGOP();} + void Mpeg4VisualDescriptor_IdenticalGOP() {MPEG2VideoDescriptor_IdenticalGOP();} + void Mpeg4VisualDescriptor_MaxGOP() {MPEG2VideoDescriptor_MaxGOP();} + void Mpeg4VisualDescriptor_BPictureCount() {MPEG2VideoDescriptor_BPictureCount();} + void Mpeg4VisualDescriptor_ProfileAndLevel(); // + void Mpeg4VisualDescriptor_BitRate() {MPEG2VideoDescriptor_BitRate();} void NetworkLocator_URLString(); //4001 void Preface_LastModifiedDate(); //3B02 void Preface_ContentStorage(); //3B03 @@ -391,7 +408,29 @@ protected : void WaveAudioDescriptor_PeakEnvelopeTimestamp(); //3D30 void WaveAudioDescriptor_PeakEnvelopeData(); //3D31 void WaveAudioDescriptor_ChannelAssignment(); //3D31 - void AS11_Core_SerieTitle(); + void CameraUnitMetadata_CaptureGammaEquation(); //3210 + void CameraUnitMetadata_NeutralDensityFilterWheelSetting(); //8103 + void CameraUnitMetadata_CaptureFrameRate(); //8106 + void CameraUnitMetadata_ImageSensorReadoutMode(); //8107 + void CameraUnitMetadata_ShutterSpeed_Angle(); //8108 + void CameraUnitMetadata_ISOSensitivity(); //810B + void CameraUnitMetadata_WhiteBalance(); //800E + void CameraUnitMetadata_CameraAttributes(); //8114 + void CameraUnitMetadata_ExposureIndexofPhotoMeter(); //8115 + void CameraUnitMetadata_GammaforCDL(); //8116 + void CameraUnitMetadata_ASCCDLV1_2(); //8117 + void UserDefinedAcquisitionMetadata_UdamSetIdentifier(); //E000 + void UserDefinedAcquisitionMetadata_Sony_8007(); + void UserDefinedAcquisitionMetadata_Sony_E101(); + void UserDefinedAcquisitionMetadata_Sony_E102(); + void UserDefinedAcquisitionMetadata_Sony_E103(); + void UserDefinedAcquisitionMetadata_Sony_E104(); + void UserDefinedAcquisitionMetadata_Sony_E109(); + void UserDefinedAcquisitionMetadata_Sony_E10B(); + void UserDefinedAcquisitionMetadata_Sony_E201(); + void UserDefinedAcquisitionMetadata_Sony_E202(); + void UserDefinedAcquisitionMetadata_Sony_E203(); + void AS11_Core_SeriesTitle(); void AS11_Core_ProgrammeTitle(); void AS11_Core_EpisodeTitleNumber(); void AS11_Core_ShimName(); @@ -473,6 +512,29 @@ protected : #define Info_UL(_INFO, _NAME, _PARAM) int128u _INFO; #endif //MEDIAINFO_TRACE + //TimeCode + struct mxftimecode + { + int16u RoundedTimecodeBase; + int64u StartTimecode; + bool DropFrame; + + mxftimecode() + : RoundedTimecodeBase(0) + , StartTimecode((int64u)-1) + , DropFrame(false) + { + } + + mxftimecode(int16u RoundedTimecodeBase_, int64u StartTimecode_, bool DropFrame_) + : RoundedTimecodeBase(RoundedTimecodeBase_) + , StartTimecode(StartTimecode_) + , DropFrame(DropFrame_) + { + } + }; + + // Temp struct randomindexmetadata { int64u ByteOffset; @@ -530,6 +592,8 @@ protected : Ztring ProductName; Ztring ProductVersion; Ztring VersionString; + Ztring ToolkitVersion; + Ztring Platform; std::map Infos; }; typedef std::map identifications; //Key is InstanceUID of identification @@ -791,21 +855,12 @@ protected : int256u SourcePackageID; //Sequence from SourcePackage only int32u SourceTrackID; std::vector StructuralComponents; //Sequence from MaterialPackage only - - //Time code component - int16u TimeCode_RoundedTimecodeBase; - int64u TimeCode_StartTimecode; - bool TimeCode_DropFrame; + mxftimecode MxfTimeCode; component() { Duration=(int64u)-1; SourceTrackID=(int32u)-1; - - //Time code component - TimeCode_RoundedTimecodeBase=(int16u)-1; - TimeCode_StartTimecode=(int64u)-1; - TimeCode_DropFrame=false; } void Update (struct component &New) @@ -818,12 +873,12 @@ protected : SourceTrackID=New.SourceTrackID; if (!New.StructuralComponents.empty()) StructuralComponents=New.StructuralComponents; - if (New.TimeCode_StartTimecode!=(int64u)-1) - TimeCode_StartTimecode=New.TimeCode_StartTimecode; - if (New.TimeCode_RoundedTimecodeBase!=(int16u)-1) + if (New.MxfTimeCode.StartTimecode!=(int64u)-1) + MxfTimeCode.StartTimecode=New.MxfTimeCode.StartTimecode; + if (New.MxfTimeCode.RoundedTimecodeBase) { - TimeCode_RoundedTimecodeBase=New.TimeCode_RoundedTimecodeBase; - TimeCode_DropFrame=New.TimeCode_DropFrame; + MxfTimeCode.RoundedTimecodeBase=New.MxfTimeCode.RoundedTimecodeBase; + MxfTimeCode.DropFrame=New.MxfTimeCode.DropFrame; } } }; @@ -880,7 +935,7 @@ protected : Type_UKDPP, }; as11_type Type; - Ztring SerieTitle; + Ztring SeriesTitle; Ztring ProgrammeTitle; Ztring EpisodeTitleNumber; Ztring ShimName; @@ -1008,17 +1063,21 @@ protected : //Helpers void Subsampling_Compute(descriptors::iterator Descriptor); - void Locators_CleanUp(); - void Locators_Test(); + #if defined(MEDIAINFO_REFERENCES_YES) + void Locators_CleanUp(); + void Locators_Test(); + #else //defined(MEDIAINFO_REFERENCES_YES) + inline void Locators_CleanUp() {} + inline void Locators_Test() {} + #endif //defined(MEDIAINFO_REFERENCES_YES) void TryToFinish(); //Temp int128u EssenceContainer_FromPartitionMetadata; int64u PartitionMetadata_PreviousPartition; int64u PartitionMetadata_FooterPartition; - int64u TimeCode_StartTimecode; - int16u TimeCode_RoundedTimecodeBase; - bool TimeCode_DropFrame; + mxftimecode MxfTimeCodeForDelay; + mxftimecode MxfTimeCodeMaterial; float64 DTS_Delay; //In seconds bool StreamPos_StartAtOne; //information about the base of StreamPos (0 or 1, 1 is found in 1 file) string SDTI_TimeCode_StartTimecode; @@ -1031,6 +1090,7 @@ protected : int64u SystemScheme1_FrameRateFromDescriptor; bool Essences_FirstEssence_Parsed; bool StereoscopicPictureSubDescriptor_IsPresent; + bool UserDefinedAcquisitionMetadata_UdamSetIdentifier_IsSony; int32u Essences_UsedForFrameCount; int32u IndexTable_NSL; int32u IndexTable_NPE; @@ -1142,6 +1202,10 @@ protected : int64u OverallBitrate_IsCbrForSure; bool Duration_Detected; bool DetectDuration(); + int64u DemuxedSampleCount_Total; + int64u DemuxedSampleCount_Current; + int64u DemuxedSampleCount_AddedToFirstFrame; + int64u DemuxedElementSize_AddedToFirstFrame; #endif //MEDIAINFO_DEMUX || MEDIAINFO_SEEK }; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_P2_Clip.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_P2_Clip.cpp index f19e49e4340..706a6a45635 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_P2_Clip.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_P2_Clip.cpp @@ -83,7 +83,7 @@ size_t File_P2_Clip::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -144,7 +144,8 @@ bool File_P2_Clip::FileHeader_Begin() string Field=Track->Value(); if (Field=="Video") { - File__ReferenceFilesHelper::reference ReferenceFile; + sequence* Sequence=new sequence; + float64 FrameRate=0; //FrameRate ChildElement=Track->FirstChildElement("FrameRate"); @@ -152,18 +153,19 @@ bool File_P2_Clip::FileHeader_Begin() { Ztring FrameRateS=Ztring(ChildElement->GetText()); if (FrameRateS.find(__T("23.97"))==0) - ReferenceFile.FrameRate=((float64)24)*1000/1001; + FrameRate=((float64)24)*1000/1001; else if (FrameRateS.find(__T("29.97"))==0) - ReferenceFile.FrameRate=((float64)30)*1000/1001; + FrameRate=((float64)30)*1000/1001; else if (FrameRateS.find(__T("59.94"))==0) - ReferenceFile.FrameRate=((float64)60)*1000/1001; + FrameRate=((float64)60)*1000/1001; else - ReferenceFile.FrameRate=FrameRateS.To_float64(); + FrameRate=FrameRateS.To_float64(); if (FrameRateS.find('i')!=string::npos) - ReferenceFile.FrameRate/=2; + FrameRate/=2; + Sequence->FrameRate_Set(FrameRate); } - //CreationDate + //StartTimecode ChildElement=Track->FirstChildElement("StartTimecode"); if (ChildElement) { @@ -176,8 +178,8 @@ bool File_P2_Clip::FileHeader_Begin() + (Text[4]-'0') *60*1000 + (Text[6]-'0') *10*1000 + (Text[7]-'0') *1000; - if (ReferenceFile.FrameRate) - ToFill+=float64_int64s(((Text[9]-'0')*10+(Text[10]-'0'))*1000/ReferenceFile.FrameRate); + if (FrameRate) + ToFill+=float64_int64s(((Text[9]-'0')*10+(Text[10]-'0'))*1000/FrameRate); //Fill(Stream_Video, StreamPos_Last, Video_Delay, ToFill); //Fill(Stream_Video, StreamPos_Last, Video_Delay_Source, "P2 Clip"); } @@ -234,10 +236,10 @@ bool File_P2_Clip::FileHeader_Begin() if (!Exists) MXF_File+=__T(".MXF"); - ReferenceFile.FileNames.push_back(MXF_File); - ReferenceFile.StreamKind=Stream_Video; - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + Sequence->AddFileName(MXF_File); + Sequence->StreamKind=Stream_Video; + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); } #endif //defined(MEDIAINFO_MXF_YES) } @@ -298,11 +300,11 @@ bool File_P2_Clip::FileHeader_Begin() if (!Exists) MXF_File+=__T(".MXF"); - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.FileNames.push_back(MXF_File); - ReferenceFile.StreamKind=Stream_Audio; - ReferenceFile.StreamID=ReferenceFiles->References.size()+1; - ReferenceFiles->References.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->AddFileName(MXF_File); + Sequence->StreamKind=Stream_Audio; + Sequence->StreamID=ReferenceFiles->Sequences_Size()+1; + ReferenceFiles->AddSequence(Sequence); Audio_Count++; } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ptx.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ptx.cpp index 3c152e4ba2e..0b0cee91350 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ptx.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ptx.cpp @@ -70,7 +70,7 @@ void File_Ptx::Streams_Finish() #if MEDIAINFO_SEEK size_t File_Ptx::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) { - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -508,21 +508,21 @@ void File_Ptx::Read_Buffer_Continue() && FileNamesLowerCase[Pos].find(Names[Pos-Pos_Offset]+__T(".wav"))!=string::npos && FileNamesLowerCase[Pos].find(Names[Pos-Pos_Offset]+__T(".wav"))+Names[Pos-Pos_Offset].size()+4==FileNames[Pos].size()) { - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.StreamKind=Stream_Audio; - ReferenceFile.FileNames.push_back(Directory+PathSeparator+FileNames[Pos]); - ReferenceFiles->References.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Audio; + Sequence->AddFileName(Directory+PathSeparator+FileNames[Pos]); + ReferenceFiles->AddSequence(Sequence); } - else if (ReferenceFiles->References.empty()) + else if (!ReferenceFiles->Sequences_Size()) Pos_Offset++; } - if (Names.size()!=ReferenceFiles->References.size()) - ReferenceFiles->References.clear(); //Failed to detect correctly + if (Names.size()!=ReferenceFiles->Sequences_Size()) + ReferenceFiles->Clear(); //Failed to detect correctly } // Role==2 + listed - if (ReferenceFiles->References.empty() && (Names.size()>1 || FileNames.size()==1)) + if (!ReferenceFiles->Sequences_Size() && (Names.size()>1 || FileNames.size()==1)) { size_t Pos_Offset=0; for (int32u Pos=0; PosReferences.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Audio; + Sequence->AddFileName(Directory+PathSeparator+FileNames[Pos]); + ReferenceFiles->AddSequence(Sequence); } - else if (ReferenceFiles->References.empty()) + else if (!ReferenceFiles->Sequences_Size()) Pos_Offset++; } - else if (ReferenceFiles->References.empty()) + else if (!ReferenceFiles->Sequences_Size()) Pos_Offset++; } - if (Names.size()!=ReferenceFiles->References.size()) - ReferenceFiles->References.clear(); //Failed to detect correctly + if (Names.size()!=ReferenceFiles->Sequences_Size()) + ReferenceFiles->Clear(); //Failed to detect correctly } // Role==2 + Purpose==EWAV + listed, special case with specific file names - if (ReferenceFiles->References.empty() && (Names.size()>1 || FileNames.size()==1)) + if (!ReferenceFiles->Sequences_Size() && (Names.size()>1 || FileNames.size()==1)) { for (int32u Pos=0; PosReferences.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Audio; + Sequence->AddFileName(Directory+PathSeparator+FileNames[Pos]); + ReferenceFiles->AddSequence(Sequence); break; } } @@ -589,7 +589,7 @@ void File_Ptx::Read_Buffer_Continue() } // Role==2 + Purpose==EWAV - if (ReferenceFiles->References.empty()) + if (!ReferenceFiles->Sequences_Size()) { for (int32u Pos=0; PosReferences.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Audio; + Sequence->AddFileName(Directory+PathSeparator+FileNames[Pos]); + ReferenceFiles->AddSequence(Sequence); } } } // Role==2 - if (ReferenceFiles->References.empty()) + if (!ReferenceFiles->Sequences_Size()) { for (int32u Pos=0; PosReferences.push_back(ReferenceFile); + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Audio; + Sequence->AddFileName(Directory+PathSeparator+FileNames[Pos]); + ReferenceFiles->AddSequence(Sequence); } } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp index 9b0897069b8..0f9a0d5d7d8 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp @@ -716,7 +716,7 @@ bool File_Riff::Header_Begin() Element_Size=Buffer_Size; //All the buffer is used else { - Element_Size=File_Offset+Buffer_Size-Buffer_DataToParse_End; + Element_Size=Buffer_DataToParse_End-(File_Offset+Buffer_Offset); Buffer_DataToParse_End=0; } @@ -726,7 +726,10 @@ bool File_Riff::Header_Begin() // Fake header Element_Begin0(); Element_Begin0(); - Header_Fill_Size(Buffer_DataToParse_End-(File_Offset+Buffer_Offset)); + if (Buffer_DataToParse_End) + Header_Fill_Size(Buffer_DataToParse_End-(File_Offset+Buffer_Offset)); + else + Header_Fill_Size(Element_Size); Element_End(); switch (Kind) @@ -974,6 +977,9 @@ void File_Riff::Header_Parse() //--------------------------------------------------------------------------- bool File_Riff::BookMark_Needed() { + if (!movi_Size || SecondPass) + return false; + //Go to the first usefull chunk if (stream_Count==0 && Stream_Structure.empty()) return false; //No need diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff_Elements.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff_Elements.cpp index 83a0cb97c7c..c68b15f572b 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff_Elements.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff_Elements.cpp @@ -3643,7 +3643,7 @@ void File_Riff::WAVE_fact() Get_L4 (SamplesCount, "SamplesCount"); SamplesCount64=SamplesCount; if (SamplesCount64==0xFFFFFFFF) - SamplesCount64=SamplesCount64; + SamplesCount64=WAVE_fact_samplesCount; FILLING_BEGIN(); int32u SamplingRate=Retrieve(Stream_Audio, 0, Audio_SamplingRate).To_int32u(); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_SequenceInfo.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_SequenceInfo.cpp index 74429df84cb..bc9727e8b88 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_SequenceInfo.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_SequenceInfo.cpp @@ -82,7 +82,7 @@ size_t File_SequenceInfo::Read_Buffer_Seek (size_t Method, int64u Value, int64u if (ReferenceFiles==NULL) return 0; - return ReferenceFiles->Read_Buffer_Seek(Method, Value, ID); + return ReferenceFiles->Seek(Method, Value, ID); } #endif //MEDIAINFO_SEEK @@ -106,8 +106,8 @@ bool File_SequenceInfo::FileHeader_Begin() ReferenceFiles=new File__ReferenceFilesHelper(this, Config); - File__ReferenceFilesHelper::reference ReferenceFile; - ReferenceFile.StreamKind=Stream_Video; + sequence* Sequence=new sequence; + Sequence->StreamKind=Stream_Video; FileName FN(File_Name); Ztring Base=FN.Path_Get(); @@ -177,7 +177,7 @@ bool File_SequenceInfo::FileHeader_Begin() if (FileNumberCount>=9) { //Trying with consecutive file numbers betweens dirs - Number=Ztring::ToZtring(ReferenceFile.FileNames.size()); + Number=Ztring::ToZtring(Sequence->FileNames.size()); FullFile=FileBase; FullFile.insert(FullFile.size()-Extension.size()-1, Number); FileNumberCount=Number.size(); @@ -200,7 +200,7 @@ bool File_SequenceInfo::FileHeader_Begin() if (FileNumberCount<9) { - size_t FileNumber=FromZero?0:ReferenceFile.FileNames.size(); + size_t FileNumber=FromZero?0:Sequence->FileNames.size(); do { Number=Ztring::ToZtring(FileNumber); @@ -212,7 +212,7 @@ bool File_SequenceInfo::FileHeader_Begin() if (!File::Exists(FullFile)) break; - ReferenceFile.FileNames.push_back(FullFile); + Sequence->AddFileName(FullFile); FileNumber++; } @@ -223,8 +223,7 @@ bool File_SequenceInfo::FileHeader_Begin() } while (DirNumber<1000000000); - if (!ReferenceFile.FileNames.empty()) - ReferenceFiles->References.push_back(ReferenceFile); + ReferenceFiles->AddSequence(Sequence); } } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Wm_Elements.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Wm_Elements.cpp index 2bfddfe2362..6c1b657f298 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Wm_Elements.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Wm_Elements.cpp @@ -61,7 +61,7 @@ const char* Wm_CodecList_Kind(int32u Kind) { case 0x01 : return "Video"; case 0x02 : return "Audio"; - default : return "Unknown"; + default : return ""; } } @@ -73,7 +73,7 @@ const char* Wm_BannerImageData_Type(int32u Type) case 0x01 : return "Bitmap"; case 0x02 : return "JPEG"; case 0x03 : return "GIF"; - default : return "Unknown"; + default : return ""; } } @@ -145,7 +145,7 @@ const char* Wm_StreamType(const int128u Kind) case Elements::Header_StreamProperties_DegradableJPEG : return "Degradable JPEG"; case Elements::Header_StreamProperties_FileTransfer : return "File Transfer"; case Elements::Header_StreamProperties_Binary : return "Binary"; - default : return "Unknown"; + default : return ""; } } @@ -155,7 +155,7 @@ const char* Wm_ExclusionType(const int128u ExclusionType) { case Elements::Header_StreamProperties_Audio : return "Language"; case Elements::Header_StreamProperties_Video : return "Bitrate"; - default : return "Unknown"; + default : return ""; } } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.cpp index 3069891ec08..92366519c15 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.cpp @@ -50,35 +50,56 @@ namespace MediaInfoLib //--------------------------------------------------------------------------- File__ReferenceFilesHelper::File__ReferenceFilesHelper(File__Analyze* MI_, MediaInfo_Config_MediaInfo* Config_) { - //Temp - MI=MI_; - Config=Config_; - Reference=References.end(); - Init_Done=false; + //In TestContinuousFileNames=false; - FilesForStorage=false; ContainerHasNoId=false; - HasMainFile=false; - HasMainFile_Filled=false; ID_Max=0; + + //Private + Sequences_Current=0; + MI=MI_; + Config=Config_; + Init_Done=false; FrameRate=0; Duration=0; - #if MEDIAINFO_NEXTPACKET - DTS_Interval=(int64u)-1; - #endif //MEDIAINFO_NEXTPACKET + #if MEDIAINFO_DEMUX + Demux_Interleave=false; + DTS_Minimal=(int64u)-1; + #endif //MEDIAINFO_DEMUX #if MEDIAINFO_EVENTS StreamID_Previous=(int64u)-1; #endif //MEDIAINFO_EVENTS #if MEDIAINFO_DEMUX Offset_Video_DTS=0; #endif //MEDIAINFO_DEMUX + + //Private + #if MEDIAINFO_DEMUX + Common=new rfh_common(&Demux_Interleave, &DTS_Minimal); + #else //MEDIAINFO_DEMUX + Common=new rfh_common(); + #endif //MEDIAINFO_DEMUX + Common->ReferenceFilesHelper=this; + Common->MI=MI; + Common->Config=Config; + + + + //Temp + FilesForStorage=false; + HasMainFile=false; + HasMainFile_Filled=false; + #if MEDIAINFO_NEXTPACKET + DTS_Interval=(int64u)-1; + #endif //MEDIAINFO_NEXTPACKET } //--------------------------------------------------------------------------- File__ReferenceFilesHelper::~File__ReferenceFilesHelper() { - for (references::iterator ReferenceTemp=References.begin(); ReferenceTemp!=References.end(); ++ReferenceTemp) - delete ReferenceTemp->MI; //ReferenceTemp->MI=NULL; + size_t Sequences_Size=Sequences.size(); + for (size_t Sequences_Pos=0; Sequences_PosStreamIDStreamID);} +bool File__ReferenceFilesHelper_Algo2 (const sequence* Ref1, const sequence* Ref2) { return (Ref1->StreamPosStreamPos);} +bool File__ReferenceFilesHelper_Algo3 (const sequence* Ref1, const sequence* Ref2) { return (Ref1->StreamKindStreamKind);} +void File__ReferenceFilesHelper_InfoFromFileName (sequences &Sequences) { ZtringListList List; - vector Iterators; + vector Iterators; - for (File__ReferenceFilesHelper::references::iterator Reference=References.begin(); ReferenceStreamKind==Stream_Audio && !Sequences[Sequences_Pos]->FileNames.empty()) { - Ztring Name=(*Reference).FileNames[0]; + Ztring Name=Sequences[Sequences_Pos]->FileNames[0]; while (Name.FindAndReplace(__T("51 "), Ztring())); while (Name.FindAndReplace(__T("_"), __T(" "))); while (Name.FindAndReplace(__T("."), __T(" "))); @@ -117,7 +138,7 @@ void File__ReferenceFilesHelper_InfoFromFileName (File__ReferenceFilesHelper::re for (size_t Pos=0; PosInfos["ChannelPositions"]=ChannelPositions; + Sequences[Iterators[Pos]]->Infos["ChannelPositions/String2"]=ChannelPositions2; + Sequences[Iterators[Pos]]->Infos["ChannelLayout"]=ChannelLayout; } //Language @@ -263,9 +284,41 @@ void File__ReferenceFilesHelper_InfoFromFileName (File__ReferenceFilesHelper::re Language=__T("es"); if (!Language.empty()) - (*Iterators[Pos]).Infos["Language"]=Language; + Sequences[Iterators[Pos]]->Infos["Language"]=Language; } } + +//*************************************************************************** +// In +//*************************************************************************** + +//--------------------------------------------------------------------------- +void File__ReferenceFilesHelper::AddSequence(sequence* NewSequence) +{ + Common->HasMultipleSequences=!Sequences.empty(); //If not empty, there will be more than 1 sequence just after + + NewSequence->Package=Common; + NewSequence->Common->Package=Common; + + Sequences.push_back(NewSequence); +} + +//--------------------------------------------------------------------------- +void File__ReferenceFilesHelper::UpdateFileName(const Ztring& OldFileName, const Ztring& NewFileName) +{ + size_t Sequences_Size=Sequences.size(); + for (size_t Sequences_Pos=0; Sequences_PosUpdateFileName(OldFileName, NewFileName); + } +} + +//*************************************************************************** +// Streams management +//*************************************************************************** + void File__ReferenceFilesHelper::ParseReferences() { if (!Init_Done) @@ -273,102 +326,103 @@ void File__ReferenceFilesHelper::ParseReferences() #if MEDIAINFO_FILTER if (MI->Config->File_Filter_Audio_Get()) { - for (size_t Pos=0; PosStreamKind!=Stream_Audio) { - References.erase(References.begin()+Pos); + Sequences.erase(Sequences.begin()+Pos); Pos--; } - CountOfReferencesToParse=References.size(); + CountOfReferencesToParse=Sequences.size(); } #endif //MEDIAINFO_FILTER //Filling Filenames from the more complete version and Edit rates float64 EditRate=DBL_MAX; size_t EditRate_Count=0; - for (Reference=References.begin(); Reference!=References.end(); Reference++) - if (Reference->FileNames.empty()) - for (size_t Pos=0; PosCompleteDuration.size(); Pos++) + for (Sequences_Current=0; Sequences_CurrentFileNames.empty()) + for (size_t Pos=0; PosResources.size(); Pos++) { - Reference->FileNames.push_back(Reference->CompleteDuration[Pos].FileName); - if (Reference->CompleteDuration[Pos].IgnoreFramesRate && EditRate!=Reference->CompleteDuration[Pos].IgnoreFramesRate) + for (size_t Resource_FileNames_Pos=0; Resource_FileNames_PosResources[Pos]->FileNames.size(); Resource_FileNames_Pos++) + Sequences[Sequences_Current]->FileNames.push_back(Sequences[Sequences_Current]->Resources[Pos]->FileNames[Resource_FileNames_Pos]); + if (Sequences[Sequences_Current]->Resources[Pos]->EditRate && EditRate!=Sequences[Sequences_Current]->Resources[Pos]->EditRate) { - if (EditRate>Reference->CompleteDuration[Pos].IgnoreFramesRate) - EditRate=Reference->CompleteDuration[Pos].IgnoreFramesRate; + if (EditRate>Sequences[Sequences_Current]->Resources[Pos]->EditRate) + EditRate=Sequences[Sequences_Current]->Resources[Pos]->EditRate; EditRate_Count++; } } if (EditRate_Count>1) //Multiple rates, using only one rate - for (Reference=References.begin(); Reference!=References.end(); Reference++) - for (size_t Pos=0; PosCompleteDuration.size(); Pos++) - if (Reference->CompleteDuration[Pos].IgnoreFramesRate && EditRate!=Reference->CompleteDuration[Pos].IgnoreFramesRate) + for (Sequences_Current=0; Sequences_CurrentResources.size(); Pos++) + if (Sequences[Sequences_Current]->Resources[Pos]->EditRate && EditRate!=Sequences[Sequences_Current]->Resources[Pos]->EditRate) { - if (Reference->CompleteDuration[Pos].IgnoreFramesBefore) + if (Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore) { - float64 Temp=(float64)Reference->CompleteDuration[Pos].IgnoreFramesBefore; - Temp/=Reference->CompleteDuration[Pos].IgnoreFramesRate; + float64 Temp=(float64)Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore; + Temp/=Sequences[Sequences_Current]->Resources[Pos]->EditRate; Temp*=EditRate; - Reference->CompleteDuration[Pos].IgnoreFramesBefore=float64_int64s(Temp); + Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore=float64_int64s(Temp); } - if (Reference->CompleteDuration[Pos].IgnoreFramesAfter!=(int64u)-1) + if (Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter!=(int64u)-1) { - float64 Temp=(float64)Reference->CompleteDuration[Pos].IgnoreFramesAfter; - Temp/=Reference->CompleteDuration[Pos].IgnoreFramesRate; + float64 Temp=(float64)Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter; + Temp/=Sequences[Sequences_Current]->Resources[Pos]->EditRate; Temp*=EditRate; - Reference->CompleteDuration[Pos].IgnoreFramesAfter=float64_int64s(Temp); + Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter=float64_int64s(Temp); } - if (Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration!=(int64u)-1) + if (Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration!=(int64u)-1) { - float64 Temp=(float64)Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration; - Temp/=Reference->CompleteDuration[Pos].IgnoreFramesRate; + float64 Temp=(float64)Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration; + Temp/=Sequences[Sequences_Current]->Resources[Pos]->EditRate; Temp*=EditRate; - Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration=float64_int64s(Temp); + Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration=float64_int64s(Temp); } - Reference->CompleteDuration[Pos].IgnoreFramesRate=EditRate; + Sequences[Sequences_Current]->Resources[Pos]->EditRate=EditRate; } //Testing IDs std::set StreamList; bool StreamList_DuplicatedIds=false; - for (Reference=References.begin(); ReferenceStreamID)==StreamList.end()) + StreamList.insert(Sequences[Sequences_Current]->StreamID); else { StreamList_DuplicatedIds=true; break; } if (StreamList_DuplicatedIds) - for (Reference=References.begin(); ReferenceStreamID==(int64u)-1) + for (Sequences_Current=0; Sequences_CurrentStreamID=Sequences_Current+1; + if (Sequences.size()==1 && (*Sequences.begin())->StreamID==(int64u)-1) { ContainerHasNoId=true; #if MEDIAINFO_EVENTS MI->StreamIDs_Width[MI->StreamIDs_Size-1]=0; #endif //MEDIAINFO_EVENTS } - std::sort(References.begin(), References.end(), File__ReferenceFilesHelper_Algo1); - std::sort(References.begin(), References.end(), File__ReferenceFilesHelper_Algo2); - std::sort(References.begin(), References.end(), File__ReferenceFilesHelper_Algo3); + std::sort(Sequences.begin(), Sequences.end(), File__ReferenceFilesHelper_Algo1); + std::sort(Sequences.begin(), Sequences.end(), File__ReferenceFilesHelper_Algo2); + std::sort(Sequences.begin(), Sequences.end(), File__ReferenceFilesHelper_Algo3); //InfoFromFileName - File__ReferenceFilesHelper_InfoFromFileName(References); + File__ReferenceFilesHelper_InfoFromFileName(Sequences); #if MEDIAINFO_EVENTS if (MI->Config->Config_PerPackage==NULL) { MI->Config->Config_PerPackage=new MediaInfo_Config_PerPackage; - MI->Config->Config_PerPackage->CountOfPackages=References.size(); + MI->Config->Config_PerPackage->CountOfPackages=Sequences.size(); } #endif //MEDIAINFO_EVENTS //Configuring file names - Reference=References.begin(); - while (Reference!=References.end()) + Sequences_Current=0; + while (Sequences_CurrentFileNames; + ZtringList Names=Sequences[Sequences_Current]->FileNames; ZtringList AbsoluteNames; AbsoluteNames.Separator_Set(0, ","); for (size_t Pos=0; PosFileNames; + Names=Sequences[Sequences_Current]->FileNames; //Configuring file name (this time, we try to test local files) size_t PathSeparator_Pos=Names.empty()?string::npos:Names[0].find_last_of(__T("\\/")); @@ -485,7 +539,7 @@ void File__ReferenceFilesHelper::ParseReferences() if (!File::Exists(AbsoluteNames[0])) { AbsoluteNames.clear(); - Names=Reference->FileNames; + Names=Sequences[Sequences_Current]->FileNames; //Configuring file name (this time, we try to test local files) size_t PathSeparator_Pos=Names[0].find_last_of(__T("\\/")); @@ -531,54 +585,55 @@ void File__ReferenceFilesHelper::ParseReferences() } } } - Reference->Source=Reference->FileNames.Read(0); - if (Reference->StreamKind!=Stream_Max && !Reference->Source.empty()) + Sequences[Sequences_Current]->Source=Sequences[Sequences_Current]->FileNames.Read(0); + if (Sequences[Sequences_Current]->StreamKind!=Stream_Max && !Sequences[Sequences_Current]->Source.empty()) { - if (Reference->StreamPos==(size_t)-1) - Reference->StreamPos=Stream_Prepare(Reference->StreamKind); - MI->Fill(Reference->StreamKind, Reference->StreamPos, "Source", Reference->Source); + if (Sequences[Sequences_Current]->StreamPos==(size_t)-1) + Sequences[Sequences_Current]->StreamPos=Stream_Prepare(Sequences[Sequences_Current]->StreamKind); + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, "Source", Sequences[Sequences_Current]->Source); } if (!AbsoluteNames.empty()) - Reference->FileNames=AbsoluteNames; + Sequences[Sequences_Current]->FileNames=AbsoluteNames; if (!AbsoluteNames.empty() && AbsoluteNames[0]==MI->File_Name) { - Reference->IsCircular=true; - Reference->FileNames.clear(); - Reference->Status.set(File__Analyze::IsFinished); + Sequences[Sequences_Current]->IsCircular=true; + Sequences[Sequences_Current]->FileNames.clear(); + Sequences[Sequences_Current]->Status.set(File__Analyze::IsFinished); } else if (!AbsoluteNames.empty()) - Reference->FileNames=AbsoluteNames; + Sequences[Sequences_Current]->FileNames=AbsoluteNames; else { - Reference->Status.set(File__Analyze::IsFinished); - if (Reference->StreamKind!=Stream_Max && !Reference->Source.empty()) + Sequences[Sequences_Current]->Status.set(File__Analyze::IsFinished); + if (Sequences[Sequences_Current]->StreamKind!=Stream_Max && !Sequences[Sequences_Current]->Source.empty()) { - MI->Fill(Reference->StreamKind, Reference->StreamPos, "Source_Info", "Missing"); - if (MI->Retrieve(Reference->StreamKind, Reference->StreamPos, General_ID).empty() && Reference->StreamID!=(int64u)-1) - MI->Fill(Reference->StreamKind, Reference->StreamPos, General_ID, Reference->StreamID); - for (std::map::iterator Info=Reference->Infos.begin(); Info!=Reference->Infos.end(); ++Info) + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, "Source_Info", "Missing"); + if (MI->Retrieve(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, General_ID).empty() && Sequences[Sequences_Current]->StreamID!=(int64u)-1) + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, General_ID, Sequences[Sequences_Current]->StreamID); + for (std::map::iterator Info=Sequences[Sequences_Current]->Infos.begin(); Info!=Sequences[Sequences_Current]->Infos.end(); ++Info) { if (Info->first=="CodecID") - MI->CodecID_Fill(Info->second, Reference->StreamKind, Reference->StreamPos, InfoCodecID_Format_Mpeg4); + MI->CodecID_Fill(Info->second, Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, InfoCodecID_Format_Mpeg4); else - MI->Fill(Reference->StreamKind, Reference->StreamPos, Info->first.c_str(), Info->second); + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, Info->first.c_str(), Info->second); } } } if (FilesForStorage) { - for (size_t Pos=0; PosFileNames.size(); Pos++) + for (size_t Pos=0; PosFileNames.size(); Pos++) { - if (Pos>=Reference->CompleteDuration.size()) - Reference->CompleteDuration.resize(Pos+1); - Reference->CompleteDuration[Pos].FileName=Reference->FileNames[Pos]; + if (Pos==Sequences[Sequences_Current]->Resources.size()) + Sequences[Sequences_Current]->Resources.push_back(new resource); + Sequences[Sequences_Current]->Resources[Pos]->FileNames.clear(); + Sequences[Sequences_Current]->Resources[Pos]->FileNames.push_back(Sequences[Sequences_Current]->FileNames[Pos]); } - Reference->FileNames.resize(1); + Sequences[Sequences_Current]->FileNames.resize(1); } - ++Reference; + Sequences_Current++; } #if MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET @@ -587,9 +642,9 @@ void File__ReferenceFilesHelper::ParseReferences() Demux_Interleave=Config->File_Demux_Interleave_Get(); if (Demux_Interleave) { - CountOfReferencesToParse=References.size(); - for (references::iterator ReferenceSource=References.begin(); ReferenceSource!=References.end(); ++ReferenceSource) - if (ReferenceSource->FileNames.empty()) + CountOfReferencesToParse=Sequences.size(); + for (sequences::iterator ReferenceSource=Sequences.begin(); ReferenceSource!=Sequences.end(); ++ReferenceSource) + if ((*ReferenceSource)->FileNames.empty()) CountOfReferencesToParse--; DTS_Interval=250000000LL; // 250 milliseconds } @@ -599,31 +654,31 @@ void File__ReferenceFilesHelper::ParseReferences() //Using the frame rate from the first stream having a frame rate if (!FrameRate) - for (references::iterator ReferenceFrameRate=References.begin(); ReferenceFrameRate!=References.end(); ++ReferenceFrameRate) - if (ReferenceFrameRate->FrameRate) + for (sequences::iterator ReferenceFrameRate=Sequences.begin(); ReferenceFrameRate!=Sequences.end(); ++ReferenceFrameRate) + if ((*ReferenceFrameRate)->FrameRate) { - FrameRate=ReferenceFrameRate->FrameRate; + FrameRate=(*ReferenceFrameRate)->FrameRate; break; } if (Config->NextPacket_Get()) { - Reference=References.begin(); - while (Reference!=References.end()) + Sequences_Current=0; + while (Sequences_CurrentStatus[File__Analyze::IsFinished]) { - References.erase(References.begin()+Pos); + Sequences.erase(Sequences.begin()+Pos); Pos--; } - CountOfReferencesToParse=References.size(); - if (References.empty()) + CountOfReferencesToParse=Sequences.size(); + if (Sequences.empty()) return; //File size handling @@ -637,8 +692,8 @@ void File__ReferenceFilesHelper::ParseReferences() #endif //MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET FileSize_Compute(); - Reference=References.begin(); - CountOfReferences_ForReadSize=References.size(); + Sequences_Current=0; + CountOfReferences_ForReadSize=Sequences.size(); Init_Done=true; #if MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET @@ -650,10 +705,10 @@ void File__ReferenceFilesHelper::ParseReferences() #endif //MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET } - while (Reference!=References.end()) + while (Sequences_CurrentStatus[File__Analyze::IsFinished]) + if (!Sequences[Sequences_Current]->Status[File__Analyze::IsFinished]) #endif //MEDIAINFO_NEXTPACKET ParseReference(); @@ -662,47 +717,47 @@ void File__ReferenceFilesHelper::ParseReferences() #if MEDIAINFO_NEXTPACKET DTS_Minimal=(int64u)-1; #endif //MEDIAINFO_NEXTPACKET - for (references::iterator ReferenceTemp=References.begin(); ReferenceTemp!=References.end(); ++ReferenceTemp) + for (sequences::iterator ReferenceTemp=Sequences.begin(); ReferenceTemp!=Sequences.end(); ++ReferenceTemp) { - if (ReferenceTemp->MI) + if ((*ReferenceTemp)->MI) { - if (ReferenceTemp->State<10000) + if ((*ReferenceTemp)->State<10000) { - if (ReferenceTemp->MI) - ReferenceTemp->State=ReferenceTemp->MI->State_Get(); - if (ReferenceTemp->State && ReferenceTemp->MI->Config.File_Size!=(int64u)-1) - FileSize_Parsed+=(int64u)(ReferenceTemp->MI->Config.File_Size*(((float)ReferenceTemp->State)/10000)); + if ((*ReferenceTemp)->MI) + (*ReferenceTemp)->State=(*ReferenceTemp)->MI->State_Get(); + if ((*ReferenceTemp)->State && (*ReferenceTemp)->MI->Config.File_Size!=(int64u)-1) + FileSize_Parsed+=(int64u)((*ReferenceTemp)->MI->Config.File_Size*(((float)(*ReferenceTemp)->State)/10000)); } else - FileSize_Parsed+=ReferenceTemp->MI->Config.File_Size; + FileSize_Parsed+=(*ReferenceTemp)->MI->Config.File_Size; #if MEDIAINFO_NEXTPACKET //Minimal DTS - if (DTS_Interval!=(int64u)-1 && !Reference->Status[File__Analyze::IsFinished] && (ReferenceTemp->CompleteDuration.empty() || ReferenceTemp->CompleteDuration_PosCompleteDuration.size())) + if (DTS_Interval!=(int64u)-1 && !Sequences[Sequences_Current]->Status[File__Analyze::IsFinished] && ((*ReferenceTemp)->Resources.empty() || (*ReferenceTemp)->Resources_Current<(*ReferenceTemp)->Resources.size())) { int64u DTS_Temp; - if (!ReferenceTemp->CompleteDuration.empty() && ReferenceTemp->CompleteDuration_Pos) + if (!(*ReferenceTemp)->Resources.empty() && (*ReferenceTemp)->Resources_Current) { - if (ReferenceTemp->CompleteDuration[ReferenceTemp->CompleteDuration_Pos].MI->Info->FrameInfo.DTS!=(int64u)-1) - DTS_Temp=ReferenceTemp->CompleteDuration[ReferenceTemp->CompleteDuration_Pos].MI->Info->FrameInfo.DTS-ReferenceTemp->CompleteDuration[ReferenceTemp->CompleteDuration_Pos].MI->Info->Config->Demux_Offset_DTS_FromStream; + if ((*ReferenceTemp)->Resources[(*ReferenceTemp)->Resources_Current]->MI->Info->FrameInfo.DTS!=(int64u)-1) + DTS_Temp=(*ReferenceTemp)->Resources[(*ReferenceTemp)->Resources_Current]->MI->Info->FrameInfo.DTS-(*ReferenceTemp)->Resources[(*ReferenceTemp)->Resources_Current]->MI->Info->Config->Demux_Offset_DTS_FromStream; else DTS_Temp=0; } else { - if (ReferenceTemp->MI->Info->FrameInfo.DTS!=(int64u)-1) - DTS_Temp=ReferenceTemp->MI->Info->FrameInfo.DTS-ReferenceTemp->MI->Info->Config->Demux_Offset_DTS_FromStream; + if ((*ReferenceTemp)->MI->Info->FrameInfo.DTS!=(int64u)-1) + DTS_Temp=(*ReferenceTemp)->MI->Info->FrameInfo.DTS-(*ReferenceTemp)->MI->Info->Config->Demux_Offset_DTS_FromStream; else DTS_Temp=0; } - DTS_Temp+=ReferenceTemp->CompleteDuration[ReferenceTemp->CompleteDuration_Pos].Demux_Offset_DTS; + DTS_Temp+=(*ReferenceTemp)->Resources[(*ReferenceTemp)->Resources_Current]->Demux_Offset_DTS; if (DTS_Minimal>DTS_Temp) DTS_Minimal=DTS_Temp; } #endif //MEDIAINFO_NEXTPACKET } else - FileSize_Parsed+=ReferenceTemp->FileSize; + FileSize_Parsed+=(*ReferenceTemp)->FileSize; } Config->State_Set(((float)FileSize_Parsed)/MI->Config->File_Size); @@ -716,14 +771,14 @@ void File__ReferenceFilesHelper::ParseReferences() #endif //MEDIAINFO_EVENTS #if MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET - if (Demux_Interleave && (Reference->MI==NULL || Reference->MI->Info==NULL || Reference->MI->Info->Demux_CurrentParser==NULL || Reference->MI->Info->Demux_CurrentParser->Demux_TotalBytes>=Reference->MI->Info->Demux_CurrentParser->Buffer_TotalBytes+Reference->MI->Info->Demux_CurrentParser->Buffer_Size)) + if (Demux_Interleave && (Sequences[Sequences_Current]->MI==NULL || Sequences[Sequences_Current]->MI->Info==NULL || Sequences[Sequences_Current]->MI->Info->Demux_CurrentParser==NULL || Sequences[Sequences_Current]->MI->Info->Demux_CurrentParser->Demux_TotalBytes>=Sequences[Sequences_Current]->MI->Info->Demux_CurrentParser->Buffer_TotalBytes+Sequences[Sequences_Current]->MI->Info->Demux_CurrentParser->Buffer_Size)) { - references::iterator Reference_Next=Reference; ++Reference_Next; + size_t Reference_Next=Sequences_Current; ++Reference_Next; - if (Reference_Next==References.end() && Config->NextPacket_Get() && CountOfReferencesToParse) - Reference=References.begin(); + if (Reference_Next==Sequences.size() && Config->NextPacket_Get() && CountOfReferencesToParse) + Sequences_Current=0; else - Reference=Reference_Next; + Sequences_Current=Reference_Next; if (Config->Demux_EventWasSent) return; @@ -733,10 +788,10 @@ void File__ReferenceFilesHelper::ParseReferences() if (Config->Demux_EventWasSent) return; - Reference++; + Sequences_Current++; } #else //MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET - ++Reference; + Sequences_Current++; #endif //MEDIAINFO_DEMUX } @@ -761,23 +816,23 @@ void File__ReferenceFilesHelper::ParseReferences() bool File__ReferenceFilesHelper::ParseReference_Init() { //Configuration - Reference->MI=MI_Create(); + Sequences[Sequences_Current]->MI=MI_Create(); if (Config->ParseSpeed>=1) { - for (size_t Pos=0; PosCompleteDuration.size(); Pos++) + for (size_t Pos=0; PosResources.size(); Pos++) { - if (Reference->CompleteDuration[0].IgnoreFramesRate) + if (Sequences[Sequences_Current]->Resources[0]->EditRate) { #if MEDIAINFO_DEMUX if (Pos==0) { - Reference->CompleteDuration[0].Demux_Offset_DTS=0; - Reference->CompleteDuration[0].Demux_Offset_Frame=0; + Sequences[Sequences_Current]->Resources[0]->Demux_Offset_DTS=0; + Sequences[Sequences_Current]->Resources[0]->Demux_Offset_Frame=0; } - if (Pos+1CompleteDuration.size()) + if (Pos+1Resources.size()) { - Reference->CompleteDuration[Pos+1].Demux_Offset_DTS=float64_int64s(Reference->CompleteDuration[Pos].Demux_Offset_DTS+(Reference->CompleteDuration[Pos].IgnoreFramesAfter-Reference->CompleteDuration[Pos].IgnoreFramesBefore)/Reference->CompleteDuration[0].IgnoreFramesRate*1000000000); - Reference->CompleteDuration[Pos+1].Demux_Offset_Frame=Reference->CompleteDuration[Pos].Demux_Offset_Frame+Reference->CompleteDuration[Pos].IgnoreFramesAfter-Reference->CompleteDuration[Pos].IgnoreFramesBefore; + Sequences[Sequences_Current]->Resources[Pos+1]->Demux_Offset_DTS=float64_int64s(Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_DTS+(Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter-Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore)/Sequences[Sequences_Current]->Resources[0]->EditRate*1000000000); + Sequences[Sequences_Current]->Resources[Pos+1]->Demux_Offset_Frame=Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_Frame+Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter-Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore; } #endif //MEDIAINFO_DEMUX } @@ -789,79 +844,80 @@ bool File__ReferenceFilesHelper::ParseReference_Init() Ztring Demux_Save=MI2.Option(__T("Demux_Get"), __T("")); MI2.Option(__T("ParseSpeed"), __T("0")); MI2.Option(__T("Demux"), Ztring()); - size_t MiOpenResult=MI2.Open(Reference->CompleteDuration[Pos].FileName); + Sequences[Sequences_Current]->Resources[Pos]->FileNames.Separator_Set(0, ","); + size_t MiOpenResult=MI2.Open(Sequences[Sequences_Current]->Resources[Pos]->FileNames.Read()); MI2.Option(__T("ParseSpeed"), ParseSpeed_Save); //This is a global value, need to reset it. TODO: local value MI2.Option(__T("Demux"), Demux_Save); //This is a global value, need to reset it. TODO: local value if (MiOpenResult) { #if MEDIAINFO_DEMUX - int64u Duration=MI2.Get(Reference->StreamKind, 0, __T("Duration")).To_int64u()*1000000; - int64u FrameCount=MI2.Get(Reference->StreamKind, 0, __T("FrameCount")).To_int64u(); + int64u Duration=MI2.Get(Sequences[Sequences_Current]->StreamKind, 0, __T("Duration")).To_int64u()*1000000; + int64u FrameCount=MI2.Get(Sequences[Sequences_Current]->StreamKind, 0, __T("FrameCount")).To_int64u(); if (Pos==0) { int64u Delay=MI2.Get(Stream_Video, 0, Video_Delay).To_int64u()*1000000; - if (Reference->StreamKind==Stream_Video && Offset_Video_DTS==0) + if (Sequences[Sequences_Current]->StreamKind==Stream_Video && Offset_Video_DTS==0) Offset_Video_DTS=Delay; - Reference->CompleteDuration[0].Demux_Offset_DTS=Offset_Video_DTS; - Reference->CompleteDuration[0].Demux_Offset_Frame=0; + Sequences[Sequences_Current]->Resources[0]->Demux_Offset_DTS=Offset_Video_DTS; + Sequences[Sequences_Current]->Resources[0]->Demux_Offset_Frame=0; } - if (Pos+1CompleteDuration.size()) + if (Pos+1Resources.size()) { - Reference->CompleteDuration[Pos+1].Demux_Offset_DTS=Reference->CompleteDuration[Pos].Demux_Offset_DTS+Duration; - Reference->CompleteDuration[Pos+1].Demux_Offset_Frame=Reference->CompleteDuration[Pos].Demux_Offset_Frame+FrameCount; + Sequences[Sequences_Current]->Resources[Pos+1]->Demux_Offset_DTS=Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_DTS+Duration; + Sequences[Sequences_Current]->Resources[Pos+1]->Demux_Offset_Frame=Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_Frame+FrameCount; } else - Duration=Reference->CompleteDuration[Pos].Demux_Offset_DTS+Duration-Reference->CompleteDuration[0].Demux_Offset_DTS; + Duration=Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_DTS+Duration-Sequences[Sequences_Current]->Resources[0]->Demux_Offset_DTS; #endif //MEDIAINFO_DEMUX } } if (Pos) { - Reference->CompleteDuration[Pos].MI=MI_Create(); - Reference->CompleteDuration[Pos].MI->Config.File_IgnoreFramesBefore=Reference->CompleteDuration[Pos].IgnoreFramesBefore; - if (Reference->CompleteDuration[Pos].IgnoreFramesAfter==(int64u)-1 && Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration!=(int64u)-1) - Reference->CompleteDuration[Pos].MI->Config.File_IgnoreFramesAfter=Reference->CompleteDuration[Pos].IgnoreFramesBefore+Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration; + Sequences[Sequences_Current]->Resources[Pos]->MI=MI_Create(); + Sequences[Sequences_Current]->Resources[Pos]->MI->Config.File_IgnoreEditsBefore=Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore; + if (Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter==(int64u)-1 && Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration!=(int64u)-1) + Sequences[Sequences_Current]->Resources[Pos]->MI->Config.File_IgnoreEditsAfter=Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore+Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration; else - Reference->CompleteDuration[Pos].MI->Config.File_IgnoreFramesAfter=Reference->CompleteDuration[Pos].IgnoreFramesAfter; - Reference->CompleteDuration[Pos].MI->Config.File_IgnoreFramesRate=Reference->CompleteDuration[Pos].IgnoreFramesRate; + Sequences[Sequences_Current]->Resources[Pos]->MI->Config.File_IgnoreEditsAfter=Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter; + Sequences[Sequences_Current]->Resources[Pos]->MI->Config.File_EditRate=Sequences[Sequences_Current]->Resources[Pos]->EditRate; #if MEDIAINFO_DEMUX - Reference->CompleteDuration[Pos].MI->Config.Demux_Offset_Frame=Reference->CompleteDuration[Pos].Demux_Offset_Frame; - Reference->CompleteDuration[Pos].MI->Config.Demux_Offset_DTS=Reference->CompleteDuration[Pos].Demux_Offset_DTS; + Sequences[Sequences_Current]->Resources[Pos]->MI->Config.Demux_Offset_Frame=Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_Frame; + Sequences[Sequences_Current]->Resources[Pos]->MI->Config.Demux_Offset_DTS=Sequences[Sequences_Current]->Resources[Pos]->Demux_Offset_DTS; #endif //MEDIAINFO_DEMUX } } - if (!Reference->CompleteDuration.empty()) + if (!Sequences[Sequences_Current]->Resources.empty()) { - Reference->MI->Config.File_IgnoreFramesBefore=Reference->CompleteDuration[0].IgnoreFramesBefore; - if (Reference->CompleteDuration[0].IgnoreFramesAfter==(int64u)-1 && Reference->CompleteDuration[0].IgnoreFramesAfterDuration!=(int64u)-1) - Reference->MI->Config.File_IgnoreFramesAfter=Reference->CompleteDuration[0].IgnoreFramesBefore+Reference->CompleteDuration[0].IgnoreFramesAfterDuration; + Sequences[Sequences_Current]->MI->Config.File_IgnoreEditsBefore=Sequences[Sequences_Current]->Resources[0]->IgnoreEditsBefore; + if (Sequences[Sequences_Current]->Resources[0]->IgnoreEditsAfter==(int64u)-1 && Sequences[Sequences_Current]->Resources[0]->IgnoreEditsAfterDuration!=(int64u)-1) + Sequences[Sequences_Current]->MI->Config.File_IgnoreEditsAfter=Sequences[Sequences_Current]->Resources[0]->IgnoreEditsBefore+Sequences[Sequences_Current]->Resources[0]->IgnoreEditsAfterDuration; else - Reference->MI->Config.File_IgnoreFramesAfter=Reference->CompleteDuration[0].IgnoreFramesAfter; - Reference->MI->Config.File_IgnoreFramesRate=Reference->CompleteDuration[0].IgnoreFramesRate; + Sequences[Sequences_Current]->MI->Config.File_IgnoreEditsAfter=Sequences[Sequences_Current]->Resources[0]->IgnoreEditsAfter; + Sequences[Sequences_Current]->MI->Config.File_EditRate=Sequences[Sequences_Current]->Resources[0]->EditRate; #if MEDIAINFO_DEMUX - Reference->MI->Config.Demux_Offset_Frame=Reference->CompleteDuration[0].Demux_Offset_Frame; - Reference->MI->Config.Demux_Offset_DTS=Reference->CompleteDuration[0].Demux_Offset_DTS; + Sequences[Sequences_Current]->MI->Config.Demux_Offset_Frame=Sequences[Sequences_Current]->Resources[0]->Demux_Offset_Frame; + Sequences[Sequences_Current]->MI->Config.Demux_Offset_DTS=Sequences[Sequences_Current]->Resources[0]->Demux_Offset_DTS; #endif //MEDIAINFO_DEMUX } } - if (Reference->IsCircular) + if (Sequences[Sequences_Current]->IsCircular) { - MI->Fill(Reference->StreamKind, Reference->StreamPos, "Source_Info", "Circular"); + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, "Source_Info", "Circular"); if (!Config->File_KeepInfo_Get()) { #if MEDIAINFO_DEMUX if (CountOfReferencesToParse) CountOfReferencesToParse--; #endif //MEDIAINFO_DEMUX - Reference->StreamKind=Stream_Max; - Reference->StreamPos=(size_t)-1; - Reference->FileSize=Reference->MI->Config.File_Size; - delete Reference->MI; Reference->MI=NULL; + Sequences[Sequences_Current]->StreamKind=Stream_Max; + Sequences[Sequences_Current]->StreamPos=(size_t)-1; + Sequences[Sequences_Current]->FileSize=Sequences[Sequences_Current]->MI->Config.File_Size; + delete Sequences[Sequences_Current]->MI; Sequences[Sequences_Current]->MI=NULL; } - Reference->FileNames.clear(); - Reference->Status.set(File__Analyze::IsFinished); + Sequences[Sequences_Current]->FileNames.clear(); + Sequences[Sequences_Current]->Status.set(File__Analyze::IsFinished); } else { @@ -869,27 +925,30 @@ bool File__ReferenceFilesHelper::ParseReference_Init() #if MEDIAINFO_EVENTS SubFile_Start(); #endif //MEDIAINFO_EVENTS - if (!Reference->MI->Open(Reference->FileNames.Read())) + if (!Sequences[Sequences_Current]->MI->Open(Sequences[Sequences_Current]->FileNames.Read())) { - if (Reference->StreamKind!=Stream_Max) - MI->Fill(Reference->StreamKind, Reference->StreamPos, "Source_Info", "Missing"); + if (Sequences[Sequences_Current]->StreamKind!=Stream_Max) + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, "Source_Info", "Missing", Unlimited, true, true); if (!Config->File_KeepInfo_Get()) { #if MEDIAINFO_DEMUX if (CountOfReferencesToParse) CountOfReferencesToParse--; #endif //MEDIAINFO_DEMUX - Reference->StreamKind=Stream_Max; - Reference->StreamPos=(size_t)-1; - Reference->FileSize=Reference->MI->Config.File_Size; - delete Reference->MI; Reference->MI=NULL; + Sequences[Sequences_Current]->StreamKind=Stream_Max; + Sequences[Sequences_Current]->StreamPos=(size_t)-1; + Sequences[Sequences_Current]->FileSize=Sequences[Sequences_Current]->MI->Config.File_Size; + delete Sequences[Sequences_Current]->MI; Sequences[Sequences_Current]->MI=NULL; } - Reference->Status.set(File__Analyze::IsFinished); + Sequences[Sequences_Current]->Status.set(File__Analyze::IsFinished); } if (Config->ParseSpeed>=1) - for (size_t Pos=1; PosCompleteDuration.size(); Pos++) - Reference->CompleteDuration[Pos].MI->Open(Reference->CompleteDuration[Pos].FileName); + for (size_t Pos=1; PosResources.size(); Pos++) + { + Sequences[Sequences_Current]->Resources[Pos]->FileNames.Separator_Set(0, ","); + Sequences[Sequences_Current]->Resources[Pos]->MI->Open(Sequences[Sequences_Current]->Resources[Pos]->FileNames.Read()); + } #if MEDIAINFO_NEXTPACKET && MEDIAINFO_DEMUX if (Config->NextPacket_Get()) @@ -903,36 +962,36 @@ bool File__ReferenceFilesHelper::ParseReference_Init() //--------------------------------------------------------------------------- void File__ReferenceFilesHelper::ParseReference() { - if (Reference->MI==NULL && !Reference->FileNames.empty()) + if (Sequences[Sequences_Current]->MI==NULL && !Sequences[Sequences_Current]->FileNames.empty()) { if (!ParseReference_Init()) return; } - if (Reference->MI) + if (Sequences[Sequences_Current]->MI) { #if MEDIAINFO_EVENTS && MEDIAINFO_NEXTPACKET - if (DTS_Interval!=(int64u)-1 && !Reference->Status[File__Analyze::IsFinished] && Reference->MI->Info->FrameInfo.DTS!=(int64u)-1 && DTS_Minimal!=(int64u)-1 && (Reference->CompleteDuration.empty() || Reference->CompleteDuration_PosCompleteDuration.size())) + if (DTS_Interval!=(int64u)-1 && !Sequences[Sequences_Current]->Status[File__Analyze::IsFinished] && Sequences[Sequences_Current]->MI->Info->FrameInfo.DTS!=(int64u)-1 && DTS_Minimal!=(int64u)-1 && (Sequences[Sequences_Current]->Resources.empty() || Sequences[Sequences_Current]->Resources_CurrentResources.size())) { int64u DTS_Temp; - if (!Reference->CompleteDuration.empty() && Reference->CompleteDuration_Pos) + if (!Sequences[Sequences_Current]->Resources.empty() && Sequences[Sequences_Current]->Resources_Current) { - if (Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI->Info->FrameInfo.DTS!=(int64u)-1) - DTS_Temp=Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI->Info->FrameInfo.DTS-Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI->Info->Config->Demux_Offset_DTS_FromStream; + if (Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI->Info->FrameInfo.DTS!=(int64u)-1) + DTS_Temp=Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI->Info->FrameInfo.DTS-Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI->Info->Config->Demux_Offset_DTS_FromStream; else DTS_Temp=0; } else { - if (Reference->MI->Info->FrameInfo.DTS!=(int64u)-1) - DTS_Temp=Reference->MI->Info->FrameInfo.DTS-Reference->MI->Info->Config->Demux_Offset_DTS_FromStream; + if (Sequences[Sequences_Current]->MI->Info->FrameInfo.DTS!=(int64u)-1) + DTS_Temp=Sequences[Sequences_Current]->MI->Info->FrameInfo.DTS-Sequences[Sequences_Current]->MI->Info->Config->Demux_Offset_DTS_FromStream; else DTS_Temp=0; } - DTS_Temp+=Reference->CompleteDuration[Reference->CompleteDuration_Pos].Demux_Offset_DTS; - if (!Reference->CompleteDuration.empty() && Reference->CompleteDuration_PosCompleteDuration.size() && Reference->CompleteDuration[Reference->CompleteDuration_Pos].IgnoreFramesRate && Reference->CompleteDuration[Reference->CompleteDuration_Pos].IgnoreFramesBefore) + DTS_Temp+=Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->Demux_Offset_DTS; + if (!Sequences[Sequences_Current]->Resources.empty() && Sequences[Sequences_Current]->Resources_CurrentResources.size() && Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->EditRate && Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->IgnoreEditsBefore) { - int64u TimeOffset=float64_int64s(((float64)Reference->CompleteDuration[Reference->CompleteDuration_Pos].IgnoreFramesBefore)/Reference->CompleteDuration[Reference->CompleteDuration_Pos].IgnoreFramesRate*1000000000); + int64u TimeOffset=float64_int64s(((float64)Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->IgnoreEditsBefore)/Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->EditRate*1000000000); if (DTS_Temp>TimeOffset) DTS_Temp-=TimeOffset; else @@ -941,17 +1000,17 @@ void File__ReferenceFilesHelper::ParseReference() if (DTS_Temp>DTS_Minimal+DTS_Interval) return; } - if (Config->Event_CallBackFunction_IsSet() && !Reference->Status[File__Analyze::IsFinished]) + if (Config->Event_CallBackFunction_IsSet() && !Sequences[Sequences_Current]->Status[File__Analyze::IsFinished]) { #if MEDIAINFO_DEMUX SubFile_Start(); - if (Reference->CompleteDuration_Pos==0) + if (Sequences[Sequences_Current]->Resources_Current==0) { - while ((Reference->Status=Reference->MI->Open_NextPacket())[8]) + while ((Sequences[Sequences_Current]->Status=Sequences[Sequences_Current]->MI->Open_NextPacket())[8]) { - if (!Reference->FileSize_IsPresent && Reference->MI->Config.File_Size!=(int64u)-1) + if (!Sequences[Sequences_Current]->FileSize_IsPresent && Sequences[Sequences_Current]->MI->Config.File_Size!=(int64u)-1) { - Reference->FileSize_IsPresent=true; + Sequences[Sequences_Current]->FileSize_IsPresent=true; if (CountOfReferences_ForReadSize) { CountOfReferences_ForReadSize--; @@ -966,23 +1025,23 @@ void File__ReferenceFilesHelper::ParseReference() return; } } - Reference->CompleteDuration_Pos++; - if (Reference->CompleteDuration_PosCompleteDuration.size() && Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI) - Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI->Open_Buffer_Seek(0, 0, (int64u)-1); + Sequences[Sequences_Current]->Resources_Current++; + if (Sequences[Sequences_Current]->Resources_CurrentResources.size() && Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI) + Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI->Open_Buffer_Seek(0, 0, (int64u)-1); } #if MEDIAINFO_NEXTPACKET && MEDIAINFO_DEMUX if (Config->ParseSpeed<1.0) - Reference->CompleteDuration_Pos=Reference->CompleteDuration.size(); //No need to parse all files + Sequences[Sequences_Current]->Resources_Current=Sequences[Sequences_Current]->Resources.size(); //No need to parse all files #endif //MEDIAINFO_NEXTPACKET - while (Reference->CompleteDuration_PosCompleteDuration.size()) + while (Sequences[Sequences_Current]->Resources_CurrentResources.size()) { - while ((Reference->Status=Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI->Open_NextPacket())[8]) + while ((Sequences[Sequences_Current]->Status=Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI->Open_NextPacket())[8]) { - if (!Reference->FileSize_IsPresent && Reference->MI->Config.File_Size!=(int64u)-1) + if (!Sequences[Sequences_Current]->FileSize_IsPresent && Sequences[Sequences_Current]->MI->Config.File_Size!=(int64u)-1) { - Reference->FileSize_IsPresent=true; + Sequences[Sequences_Current]->FileSize_IsPresent=true; if (CountOfReferences_ForReadSize) { CountOfReferences_ForReadSize--; @@ -997,9 +1056,9 @@ void File__ReferenceFilesHelper::ParseReference() return; } } - Reference->CompleteDuration_Pos++; - if (Reference->CompleteDuration_PosCompleteDuration.size() && Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI) - Reference->CompleteDuration[Reference->CompleteDuration_Pos].MI->Open_Buffer_Seek(0, 0, (int64u)-1); + Sequences[Sequences_Current]->Resources_Current++; + if (Sequences[Sequences_Current]->Resources_CurrentResources.size() && Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI) + Sequences[Sequences_Current]->Resources[Sequences[Sequences_Current]->Resources_Current]->MI->Open_Buffer_Seek(0, 0, (int64u)-1); } if (CountOfReferencesToParse) CountOfReferencesToParse--; @@ -1009,18 +1068,19 @@ void File__ReferenceFilesHelper::ParseReference() ParseReference_Finalize(); if (!Config->File_KeepInfo_Get()) { - Reference->StreamKind=Stream_Max; - Reference->StreamPos=(size_t)-1; - Reference->State=10000; - if (Reference->CompleteDuration.empty()) - Reference->FileSize=Reference->MI->Config.File_Size; - else if (Reference->FileSize==(int64u)-1) + Sequences[Sequences_Current]->StreamKind=Stream_Max; + Sequences[Sequences_Current]->StreamPos=(size_t)-1; + Sequences[Sequences_Current]->State=10000; + if (Sequences[Sequences_Current]->Resources.empty()) + Sequences[Sequences_Current]->FileSize=Sequences[Sequences_Current]->MI->Config.File_Size; + else if (Sequences[Sequences_Current]->FileSize==(int64u)-1) { - Reference->FileSize=0; - for (size_t Pos=0; PosCompleteDuration.size(); Pos++) - Reference->FileSize+=File::Size_Get(Reference->CompleteDuration[Pos].FileName); + Sequences[Sequences_Current]->FileSize=0; + for (size_t Pos=0; PosResources.size(); Pos++) + for (size_t Resource_FileNames_Pos=0; Resource_FileNames_PosResources[Pos]->FileNames.size(); Resource_FileNames_Pos++) + Sequences[Sequences_Current]->FileSize+=File::Size_Get(Sequences[Sequences_Current]->Resources[Pos]->FileNames[Resource_FileNames_Pos]); } - delete Reference->MI; Reference->MI=NULL; + delete Sequences[Sequences_Current]->MI; Sequences[Sequences_Current]->MI=NULL; } } } @@ -1029,33 +1089,33 @@ void File__ReferenceFilesHelper::ParseReference() void File__ReferenceFilesHelper::ParseReference_Finalize () { //Removing wrong initial value - if (Reference->MI->Count_Get(Reference->StreamKind)==0 && Reference->StreamPos!=(size_t)-1 - && Reference->MI->Count_Get(Stream_Video)+Reference->MI->Count_Get(Stream_Audio)+Reference->MI->Count_Get(Stream_Image)+Reference->MI->Count_Get(Stream_Text)+Reference->MI->Count_Get(Stream_Other)) + if (Sequences[Sequences_Current]->MI->Count_Get(Sequences[Sequences_Current]->StreamKind)==0 && Sequences[Sequences_Current]->StreamPos!=(size_t)-1 + && Sequences[Sequences_Current]->MI->Count_Get(Stream_Video)+Sequences[Sequences_Current]->MI->Count_Get(Stream_Audio)+Sequences[Sequences_Current]->MI->Count_Get(Stream_Image)+Sequences[Sequences_Current]->MI->Count_Get(Stream_Text)+Sequences[Sequences_Current]->MI->Count_Get(Stream_Other)) { - MI->Stream_Erase(Reference->StreamKind, Reference->StreamPos); - for (references::iterator ReferenceTemp=References.begin(); ReferenceTemp!=References.end(); ++ReferenceTemp) - if (ReferenceTemp->StreamKind==Reference->StreamKind && ReferenceTemp->StreamPos!=(size_t)-1 && ReferenceTemp->StreamPos>Reference->StreamPos) - ReferenceTemp->StreamPos--; - Reference->StreamPos=(size_t)-1; + MI->Stream_Erase(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos); + for (sequences::iterator ReferenceTemp=Sequences.begin(); ReferenceTemp!=Sequences.end(); ++ReferenceTemp) + if ((*ReferenceTemp)->StreamKind==Sequences[Sequences_Current]->StreamKind && (*ReferenceTemp)->StreamPos!=(size_t)-1 && (*ReferenceTemp)->StreamPos>Sequences[Sequences_Current]->StreamPos) + (*ReferenceTemp)->StreamPos--; + Sequences[Sequences_Current]->StreamPos=(size_t)-1; } bool StreamFound=false; for (size_t StreamKind=Stream_General+1; StreamKindMI->Count_Get((stream_t)StreamKind); StreamPos++) + for (size_t StreamPos=0; StreamPosMI->Count_Get((stream_t)StreamKind); StreamPos++) { StreamKind_Last=(stream_t)StreamKind; - if (Reference->StreamPos!=(size_t)-1 && StreamKind_Last==Reference->StreamKind && StreamPos==0) + if (Sequences[Sequences_Current]->StreamPos!=(size_t)-1 && StreamKind_Last==Sequences[Sequences_Current]->StreamKind && StreamPos==0) { - StreamPos_To=Reference->StreamPos; + StreamPos_To=Sequences[Sequences_Current]->StreamPos; StreamFound=true; } else { size_t ToInsert=(size_t)-1; - for (references::iterator ReferencePos=References.begin(); ReferencePos!=References.end(); ++ReferencePos) - if (ReferencePos->StreamKind==StreamKind_Last && Reference->StreamIDStreamID) + for (sequences::iterator ReferencePos=Sequences.begin(); ReferencePos!=Sequences.end(); ++ReferencePos) + if ((*ReferencePos)->StreamKind==StreamKind_Last && Sequences[Sequences_Current]->StreamID<(*ReferencePos)->StreamID) { - ToInsert=ReferencePos->StreamPos; + ToInsert=(*ReferencePos)->StreamPos; break; } @@ -1066,12 +1126,12 @@ void File__ReferenceFilesHelper::ParseReference_Finalize () ParseReference_Finalize_PerStream(); } - if (!StreamFound && Reference->StreamKind!=Stream_Max && Reference->StreamPos!=(size_t)-1) + if (!StreamFound && Sequences[Sequences_Current]->StreamKind!=Stream_Max && Sequences[Sequences_Current]->StreamPos!=(size_t)-1 && Sequences[Sequences_Current]->MI->Info) { - Ztring MuxingMode=MI->Retrieve(Reference->StreamKind, Reference->StreamPos, "MuxingMode"); + Ztring MuxingMode=MI->Retrieve(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, "MuxingMode"); if (!MuxingMode.empty()) MuxingMode.insert(0, __T(" / ")); - MI->Fill(Reference->StreamKind, Reference->StreamPos, "MuxingMode", Reference->MI->Info->Get(Stream_General, 0, General_Format)+MuxingMode, true); + MI->Fill(Sequences[Sequences_Current]->StreamKind, Sequences[Sequences_Current]->StreamPos, "MuxingMode", Sequences[Sequences_Current]->MI->Info->Get(Stream_General, 0, General_Format)+MuxingMode, true); } } @@ -1081,39 +1141,39 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () //Hacks - Before Ztring CodecID=MI->Retrieve(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_CodecID)); Ztring ID_Base; - if (HasMainFile_Filled && !Reference->IsMain) + if (HasMainFile_Filled && !Sequences[Sequences_Current]->IsMain) { - ID_Base=Ztring::ToZtring(ID_Max+Reference->StreamID-1); - MI->Fill(StreamKind_Last, StreamPos_To, "SideCar_FilePos", Reference->StreamID-1); + ID_Base=Ztring::ToZtring(ID_Max+Sequences[Sequences_Current]->StreamID-1); + MI->Fill(StreamKind_Last, StreamPos_To, "SideCar_FilePos", Sequences[Sequences_Current]->StreamID-1); (*MI->Stream_More)[StreamKind_Last][StreamPos_To](Ztring().From_Local("SideCar_FilePos"), Info_Options)=__T("N NT"); } - else if (Reference->StreamID!=(int64u)-1) - ID_Base=Ztring::ToZtring(Reference->StreamID); + else if (Sequences[Sequences_Current]->StreamID!=(int64u)-1) + ID_Base=Ztring::ToZtring(Sequences[Sequences_Current]->StreamID); Ztring ID=ID_Base; Ztring ID_String=ID_Base; Ztring MenuID; Ztring MenuID_String; - if (!HasMainFile_Filled && Reference->IsMain) + if (!HasMainFile_Filled && Sequences[Sequences_Current]->IsMain) { - MI->Fill(Stream_General, 0, General_Format, Reference->MI->Get(Stream_General, 0, General_Format) , true); - MI->Fill(Stream_General, 0, General_CompleteName, Reference->MI->Get(Stream_General, 0, General_CompleteName) , true); - MI->Fill(Stream_General, 0, General_FileExtension, Reference->MI->Get(Stream_General, 0, General_FileExtension) , true); + MI->Fill(Stream_General, 0, General_Format, Sequences[Sequences_Current]->MI->Get(Stream_General, 0, General_Format) , true); + MI->Fill(Stream_General, 0, General_CompleteName, Sequences[Sequences_Current]->MI->Get(Stream_General, 0, General_CompleteName) , true); + MI->Fill(Stream_General, 0, General_FileExtension, Sequences[Sequences_Current]->MI->Get(Stream_General, 0, General_FileExtension) , true); HasMainFile=true; HasMainFile_Filled=true; } - if (Reference->IsMain) + if (Sequences[Sequences_Current]->IsMain) { - int64u ID_New=Reference->MI->Get(StreamKind_Last, StreamPos_From, General_ID).To_int64u(); + int64u ID_New=Sequences[Sequences_Current]->MI->Get(StreamKind_Last, StreamPos_From, General_ID).To_int64u(); if (ID_MaxClear(StreamKind_Last, StreamPos_To, General_ID); - MI->Merge(*Reference->MI->Info, StreamKind_Last, StreamPos_From, StreamPos_To); + MI->Merge(*Sequences[Sequences_Current]->MI->Info, StreamKind_Last, StreamPos_From, StreamPos_To); - if (!Reference->CompleteDuration.empty()) + if (!Sequences[Sequences_Current]->Resources.empty()) { MI->Clear(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_BitRate)); MI->Clear(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_Duration)); @@ -1125,7 +1185,7 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () int64u FrameCount_Temp=0; int64u StreamSize_Temp=0; int64u FileSize_Temp=0; - for (size_t Pos=0; PosCompleteDuration.size(); Pos++) + for (size_t Pos=0; PosResources.size(); Pos++) { MediaInfo_Internal MI2; MI2.Option(__T("File_KeepInfo"), __T("1")); @@ -1133,13 +1193,14 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () Ztring Demux_Save=MI2.Option(__T("Demux_Get"), __T("")); MI2.Option(__T("ParseSpeed"), __T("0")); MI2.Option(__T("Demux"), Ztring()); - MI2.Config.File_IgnoreFramesBefore=Reference->CompleteDuration[Pos].IgnoreFramesBefore; - if (Reference->CompleteDuration[Pos].IgnoreFramesAfter==(int64u)-1 && Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration!=(int64u)-1) - MI2.Config.File_IgnoreFramesAfter=Reference->CompleteDuration[Pos].IgnoreFramesBefore+Reference->CompleteDuration[Pos].IgnoreFramesAfterDuration; + MI2.Config.File_IgnoreEditsBefore=Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore; + if (Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter==(int64u)-1 && Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration!=(int64u)-1) + MI2.Config.File_IgnoreEditsAfter=Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsBefore+Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfterDuration; else - MI2.Config.File_IgnoreFramesAfter=Reference->CompleteDuration[Pos].IgnoreFramesAfter; - MI2.Config.File_IgnoreFramesRate=Reference->CompleteDuration[Pos].IgnoreFramesRate; - size_t MiOpenResult=MI2.Open(Reference->CompleteDuration[Pos].FileName); + MI2.Config.File_IgnoreEditsAfter=Sequences[Sequences_Current]->Resources[Pos]->IgnoreEditsAfter; + MI2.Config.File_EditRate=Sequences[Sequences_Current]->Resources[Pos]->EditRate; + Sequences[Sequences_Current]->Resources[Pos]->FileNames.Separator_Set(0, ","); + size_t MiOpenResult=MI2.Open(Sequences[Sequences_Current]->Resources[Pos]->FileNames.Read()); MI2.Option(__T("ParseSpeed"), ParseSpeed_Save); //This is a global value, need to reset it. TODO: local value MI2.Option(__T("Demux"), Demux_Save); //This is a global value, need to reset it. TODO: local value if (MiOpenResult) @@ -1183,7 +1244,7 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () if (StreamSize_Temp!=(int64u)-1) MI->Fill(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_StreamSize), StreamSize_Temp, 10, true); if (FileSize_Temp!=(int64u)-1) - Reference->FileSize=FileSize_Temp; + Sequences[Sequences_Current]->FileSize=FileSize_Temp; if (BitRate_Before && Duration_Temp) { float64 BitRate_After=((float64)StreamSize_Temp)*8000/Duration_Temp; @@ -1193,18 +1254,18 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () } //Frame rate if available from container - if (StreamKind_Last==Stream_Video && Reference->FrameRate) - MI->Fill(Stream_Video, StreamPos_To, Video_FrameRate, Reference->FrameRate, 3 , true); + if (StreamKind_Last==Stream_Video && Sequences[Sequences_Current]->FrameRate) + MI->Fill(Stream_Video, StreamPos_To, Video_FrameRate, Sequences[Sequences_Current]->FrameRate, 3 , true); //Hacks - After - if (!Reference->IsMain && CodecID!=MI->Retrieve(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_CodecID))) + if (!Sequences[Sequences_Current]->IsMain && CodecID!=MI->Retrieve(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_CodecID))) { if (!CodecID.empty()) CodecID+=__T(" / "); CodecID+=MI->Retrieve(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_CodecID)); MI->Fill(StreamKind_Last, StreamPos_To, MI->Fill_Parameter(StreamKind_Last, Generic_CodecID), CodecID, true); } - if (!Reference->IsMain && Reference->MI->Count_Get(Stream_Video)+Reference->MI->Count_Get(Stream_Audio)>1 && Reference->MI->Get(Stream_Video, 0, Video_Format)!=__T("DV")) + if (!Sequences[Sequences_Current]->IsMain && Sequences[Sequences_Current]->MI->Count_Get(Stream_Video)+Sequences[Sequences_Current]->MI->Count_Get(Stream_Audio)>1 && Sequences[Sequences_Current]->MI->Get(Stream_Video, 0, Video_Format)!=__T("DV")) { if (StreamKind_Last==Stream_Menu) { @@ -1219,26 +1280,26 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () MI->Fill(Stream_Menu, StreamPos_To, Menu_List, List.Read(), true); MI->Fill(Stream_Menu, StreamPos_To, Menu_List_String, List_String.Read(), true); } - else if (References.size()>1 && Reference->MI->Count_Get(Stream_Menu)==0) + else if (Sequences.size()>1 && Sequences[Sequences_Current]->MI->Count_Get(Stream_Menu)==0) { - if (Reference->MenuPos==(size_t)-1) + if (Sequences[Sequences_Current]->MenuPos==(size_t)-1) { - Reference->MenuPos=MI->Stream_Prepare(Stream_Menu); - MI->Fill(Stream_Menu, Reference->MenuPos, General_ID, ID_Base); - MI->Fill(Stream_Menu, Reference->StreamPos, "Source", Reference->Source); + Sequences[Sequences_Current]->MenuPos=MI->Stream_Prepare(Stream_Menu); + MI->Fill(Stream_Menu, Sequences[Sequences_Current]->MenuPos, General_ID, ID_Base); + MI->Fill(Stream_Menu, Sequences[Sequences_Current]->StreamPos, "Source", Sequences[Sequences_Current]->Source); } - Ztring List=Reference->MI->Get(StreamKind_Last, StreamPos_From, General_ID); - Ztring List_String=Reference->MI->Get(StreamKind_Last, StreamPos_From, General_ID_String); + Ztring List=Sequences[Sequences_Current]->MI->Get(StreamKind_Last, StreamPos_From, General_ID); + Ztring List_String=Sequences[Sequences_Current]->MI->Get(StreamKind_Last, StreamPos_From, General_ID_String); if (!ID_Base.empty()) { List.insert(0, ID_Base+__T("-")); List_String.insert(0, ID_Base+__T("-")); } - MI->Fill(Stream_Menu, Reference->MenuPos, Menu_List, List); - MI->Fill(Stream_Menu, Reference->MenuPos, Menu_List_String, List_String); + MI->Fill(Stream_Menu, Sequences[Sequences_Current]->MenuPos, Menu_List, List); + MI->Fill(Stream_Menu, Sequences[Sequences_Current]->MenuPos, Menu_List_String, List_String); } } - if (!Reference->IsMain && (ContainerHasNoId || !Config->File_ID_OnlyRoot_Get() || Reference->MI->Get(Stream_General, 0, General_Format)==__T("SCC") || Reference->MI->Count_Get(Stream_Video)+Reference->MI->Count_Get(Stream_Audio)>1) && !MI->Retrieve(StreamKind_Last, StreamPos_To, General_ID).empty()) + if (!Sequences[Sequences_Current]->IsMain && (ContainerHasNoId || !Config->File_ID_OnlyRoot_Get() || Sequences[Sequences_Current]->MI->Get(Stream_General, 0, General_Format)==__T("SCC") || Sequences[Sequences_Current]->MI->Count_Get(Stream_Video)+Sequences[Sequences_Current]->MI->Count_Get(Stream_Audio)>1) && !MI->Retrieve(StreamKind_Last, StreamPos_To, General_ID).empty()) { if (!ID.empty()) ID+=__T('-'); @@ -1255,13 +1316,13 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () MenuID_String=ID_Base+__T('-'); MenuID_String+=MI->Retrieve(StreamKind_Last, StreamPos_To, "MenuID/String"); } - else if (Reference->MenuPos!=(size_t)-1) + else if (Sequences[Sequences_Current]->MenuPos!=(size_t)-1) { MenuID=ID_Base; MenuID_String=ID_Base; } } - if (!Reference->IsMain) + if (!Sequences[Sequences_Current]->IsMain) { MI->Fill(StreamKind_Last, StreamPos_To, General_ID, ID, true); MI->Fill(StreamKind_Last, StreamPos_To, General_ID_String, ID_String, true); @@ -1269,7 +1330,7 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () MI->Fill(StreamKind_Last, StreamPos_To, "MenuID/String", MenuID_String, true); if (!MI->Retrieve(StreamKind_Last, StreamPos_To, "Source").empty()) { - if (MI->Retrieve(StreamKind_Last, StreamPos_To, "Source_Original").empty() && Reference->Source!=MI->Retrieve(StreamKind_Last, StreamPos_To, "Source")) // TODO: better handling + if (MI->Retrieve(StreamKind_Last, StreamPos_To, "Source_Original").empty() && Sequences[Sequences_Current]->Source!=MI->Retrieve(StreamKind_Last, StreamPos_To, "Source")) // TODO: better handling { MI->Fill(StreamKind_Last, StreamPos_To, "Source_Original", MI->Retrieve(StreamKind_Last, StreamPos_To, "Source")); MI->Fill(StreamKind_Last, StreamPos_To, "Source_Original_Kind", MI->Retrieve(StreamKind_Last, StreamPos_To, "Source_Kind")); @@ -1279,27 +1340,27 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () MI->Clear(StreamKind_Last, StreamPos_To, "Source_Kind"); MI->Clear(StreamKind_Last, StreamPos_To, "Source_Info"); } - MI->Fill(StreamKind_Last, StreamPos_To, "Source", Reference->Source); + MI->Fill(StreamKind_Last, StreamPos_To, "Source", Sequences[Sequences_Current]->Source); } - for (std::map::iterator Info=Reference->Infos.begin(); Info!=Reference->Infos.end(); ++Info) + for (std::map::iterator Info=Sequences[Sequences_Current]->Infos.begin(); Info!=Sequences[Sequences_Current]->Infos.end(); ++Info) if (MI->Retrieve(StreamKind_Last, StreamPos_To, Info->first.c_str()).empty()) MI->Fill(StreamKind_Last, StreamPos_To, Info->first.c_str(), Info->second); //Others - if (!Reference->IsMain && Reference->MI->Info && MI->Retrieve(StreamKind_Last, StreamPos_To, Reference->MI->Info->Fill_Parameter(StreamKind_Last, Generic_Format))!=Reference->MI->Info->Get(Stream_General, 0, General_Format)) + if (!Sequences[Sequences_Current]->IsMain && Sequences[Sequences_Current]->MI->Info && MI->Retrieve(StreamKind_Last, StreamPos_To, Sequences[Sequences_Current]->MI->Info->Fill_Parameter(StreamKind_Last, Generic_Format))!=Sequences[Sequences_Current]->MI->Info->Get(Stream_General, 0, General_Format)) { Ztring MuxingMode=MI->Retrieve(StreamKind_Last, StreamPos_To, "MuxingMode"); if (!MuxingMode.empty()) MuxingMode.insert(0, __T(" / ")); - MI->Fill(StreamKind_Last, StreamPos_To, "MuxingMode", Reference->MI->Info->Get(Stream_General, 0, General_Format)+MuxingMode, true); + MI->Fill(StreamKind_Last, StreamPos_To, "MuxingMode", Sequences[Sequences_Current]->MI->Info->Get(Stream_General, 0, General_Format)+MuxingMode, true); } //Lists #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 - if (!Reference->List_Compute_Done && (Reference->MI->Count_Get(Stream_Menu)==0 || StreamKind_Last==Stream_Menu)) + if (!Sequences[Sequences_Current]->List_Compute_Done && (Sequences[Sequences_Current]->MI->Count_Get(Stream_Menu)==0 || StreamKind_Last==Stream_Menu)) { List_Compute(); - Reference->List_Compute_Done=true; + Sequences[Sequences_Current]->List_Compute_Done=true; } #endif //MEDIAINFO_ADVANCED || MEDIAINFO_MD5 } @@ -1308,19 +1369,19 @@ void File__ReferenceFilesHelper::ParseReference_Finalize_PerStream () #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 void File__ReferenceFilesHelper::List_Compute() { - stream_t StreamKind=References.size()>1?StreamKind_Last:Stream_General; - size_t StreamPos=References.size()>1?StreamPos_To:0; + stream_t StreamKind=Sequences.size()>1?StreamKind_Last:Stream_General; + size_t StreamPos=Sequences.size()>1?StreamPos_To:0; - stream_t StreamKind_Target=Reference->MenuPos==(size_t)-1?StreamKind:Stream_Menu; - size_t StreamPos_Target=Reference->MenuPos==(size_t)-1?StreamPos:Reference->MenuPos; + stream_t StreamKind_Target=Sequences[Sequences_Current]->MenuPos==(size_t)-1?StreamKind:Stream_Menu; + size_t StreamPos_Target=Sequences[Sequences_Current]->MenuPos==(size_t)-1?StreamPos:Sequences[Sequences_Current]->MenuPos; //MD5 #if MEDIAINFO_MD5 if (!HasMainFile && Config->File_Md5_Get()) { - if (!Reference->MI->Get(Stream_General, 0, __T("MD5_Generated")).empty()) + if (!Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("MD5_Generated")).empty()) { - if (Reference->MI->Config.File_Names.size()==1) + if (Sequences[Sequences_Current]->MI->Config.File_Names.size()==1) { if (MI->Retrieve(StreamKind_Target, StreamPos_Target, "Source").empty()) { @@ -1335,25 +1396,25 @@ void File__ReferenceFilesHelper::List_Compute() SourcePath=SourceName.substr(0, Pos_Path); } size_t SourcePath_Size=SourcePath.size()+1; //Path size + path separator size - Ztring Temp=Reference->MI->Config.File_Names[0]; + Ztring Temp=Sequences[Sequences_Current]->MI->Config.File_Names[0]; if (!Config->File_IsReferenced_Get()) Temp.erase(0, SourcePath_Size); MI->Fill(StreamKind_Target, StreamPos_Target, "Source", Temp); } - MI->Fill(StreamKind_Target, StreamPos_Target, "Source_MD5_Generated", Reference->MI->Get(Stream_General, 0, __T("MD5_Generated"))); + MI->Fill(StreamKind_Target, StreamPos_Target, "Source_MD5_Generated", Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("MD5_Generated"))); (*MI->Stream_More)[StreamKind_Target][StreamPos_Target](Ztring().From_Local("Source_MD5_Generated"), Info_Options)=__T("N NT"); } - MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List_MD5_Generated", Reference->MI->Get(Stream_General, 0, __T("MD5_Generated"))); + MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List_MD5_Generated", Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("MD5_Generated"))); (*MI->Stream_More)[StreamKind_Target][StreamPos_Target](Ztring().From_Local("Source_List_MD5_Generated"), Info_Options)=__T("N NT"); } - if (!Reference->MI->Get(Stream_General, 0, __T("Source_List_MD5_Generated")).empty()) + if (!Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("Source_List_MD5_Generated")).empty()) { - MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List_MD5_Generated", Reference->MI->Get(Stream_General, 0, __T("Source_List_MD5_Generated"))); + MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List_MD5_Generated", Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("Source_List_MD5_Generated"))); (*MI->Stream_More)[StreamKind_Target][StreamPos_Target](Ztring().From_Local("Source_List_MD5_Generated"), Info_Options)=__T("N NT"); } - else if (!Reference->MI->Get(StreamKind, StreamPos, __T("Source_List_MD5_Generated")).empty()) + else if (!Sequences[Sequences_Current]->MI->Get(StreamKind, StreamPos, __T("Source_List_MD5_Generated")).empty()) { - MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List_MD5_Generated", Reference->MI->Get(StreamKind, StreamPos, __T("Source_List_MD5_Generated"))); + MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List_MD5_Generated", Sequences[Sequences_Current]->MI->Get(StreamKind, StreamPos, __T("Source_List_MD5_Generated"))); (*MI->Stream_More)[StreamKind_Target][StreamPos_Target](Ztring().From_Local("Source_List_MD5_Generated"), Info_Options)=__T("N NT"); } } @@ -1374,18 +1435,18 @@ void File__ReferenceFilesHelper::List_Compute() SourcePath=SourceName.substr(0, Pos_Path); } size_t SourcePath_Size=SourcePath.size()+1; //Path size + path separator size - for (size_t Pos=0; PosFileNames.size(); Pos++) + for (size_t Pos=0; PosFileNames.size(); Pos++) { - Ztring Temp=Reference->FileNames[Pos]; + Ztring Temp=Sequences[Sequences_Current]->FileNames[Pos]; if (!Config->File_IsReferenced_Get()) Temp.erase(0, SourcePath_Size); MI->Fill(StreamKind_Target, StreamPos_Target, "Source_List", Temp); } - if (!Reference->MI->Get(Stream_General, 0, __T("Source_List")).empty()) + if (!Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("Source_List")).empty()) { ZtringList List; List.Separator_Set(0, __T(" / ")); - List.Write(Reference->MI->Get(Stream_General, 0, __T("Source_List"))); + List.Write(Sequences[Sequences_Current]->MI->Get(Stream_General, 0, __T("Source_List"))); for (size_t Pos=0; PosOption(__T("File_KeepInfo"), __T("1")); MI_Temp->Option(__T("File_ID_OnlyRoot"), Config->File_ID_OnlyRoot_Get()?__T("1"):__T("0")); MI_Temp->Option(__T("File_DvDif_DisableAudioIfIsInContainer"), Config->File_DvDif_DisableAudioIfIsInContainer_Get()?__T("1"):__T("0")); - if ((References.size()>1 || Config->File_MpegTs_ForceMenu_Get()) && !Reference->IsMain && !HasMainFile) + if ((Sequences.size()>1 || Config->File_MpegTs_ForceMenu_Get()) && !Sequences[Sequences_Current]->IsMain && !HasMainFile) MI_Temp->Option(__T("File_MpegTs_ForceMenu"), __T("1")); #if MEDIAINFO_AES MI_Temp->Option(__T("File_Encryption_Format"), MI->Retrieve(Stream_General, 0, "Encryption_Format")); @@ -1423,6 +1484,8 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create() #if MEDIAINFO_NEXTPACKET if (Config->NextPacket_Get()) MI_Temp->Option(__T("File_NextPacket"), __T("1")); + if (Config->File_Demux_Interleave_Get()) + MI_Temp->Option(__T("File_Demux_Interleave"), __T("1")); #endif //MEDIAINFO_NEXTPACKET #if MEDIAINFO_ADVANCED if (Config->File_IgnoreSequenceFileSize_Get()) @@ -1444,27 +1507,27 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create() MI_Temp->Config.Config_PerPackage->Event_CallBackFunction_Set(Config->Event_CallBackFunction_Get()); } MI_Temp->Config.File_Names_RootDirectory=FileName(MI->File_Name).Path_Get(); - if (Reference->FileNames.size()>1) + if (Sequences[Sequences_Current]->FileNames.size()>1) MI_Temp->Option(__T("File_TestContinuousFileNames"), __T("0")); ZtringListList SubFile_IDs; - if (Reference->IsMain) + if (Sequences[Sequences_Current]->IsMain) HasMainFile=true; - if (HasMainFile && !Reference->IsMain) + if (HasMainFile && !Sequences[Sequences_Current]->IsMain) { ZtringList ID; - ID.push_back(Ztring::ToZtring((((int64u)MediaInfo_Parser_SideCar)<<56)|Reference->StreamID-1)); + ID.push_back(Ztring::ToZtring((((int64u)MediaInfo_Parser_SideCar)<<56)|Sequences[Sequences_Current]->StreamID-1)); ID.push_back(Ztring::ToZtring(16)); ID.push_back(Ztring::ToZtring(MediaInfo_Parser_SideCar)); SubFile_IDs.push_back(ID); } - else if (!Reference->IsMain) + else if (!Sequences[Sequences_Current]->IsMain) for (size_t Pos=0; PosStreamIDs_Size; Pos++) { ZtringList ID; if (MI->StreamIDs_Width[Pos]==0) ID.push_back(Ztring::ToZtring(-1)); else if (Pos+1==MI->StreamIDs_Size) - ID.push_back(Ztring::ToZtring(Reference->StreamID)); + ID.push_back(Ztring::ToZtring(Sequences[Sequences_Current]->StreamID)); else ID.push_back(Ztring::ToZtring(MI->StreamIDs[Pos])); ID.push_back(Ztring::ToZtring(MI->StreamIDs_Width[Pos])); @@ -1487,8 +1550,8 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create() MI_Temp->Option(__T("File_Demux_Hevc_Transcode_Iso14496_15_to_AnnexB"), __T("1")); if (FrameRate) MI_Temp->Option(__T("File_Demux_Rate"), Ztring::ToZtring(FrameRate)); - else if (!Reference->CompleteDuration.empty() && Reference->CompleteDuration[0].IgnoreFramesRate) //TODO: per Pos - MI_Temp->Option(__T("File_Demux_Rate"), Ztring::ToZtring(Reference->CompleteDuration[0].IgnoreFramesRate)); + else if (!Sequences[Sequences_Current]->Resources.empty() && Sequences[Sequences_Current]->Resources[0]->EditRate) //TODO: per Pos + MI_Temp->Option(__T("File_Demux_Rate"), Ztring::ToZtring(Sequences[Sequences_Current]->Resources[0]->EditRate)); switch (Config->Demux_InitData_Get()) { case 0 : MI_Temp->Option(__T("File_Demux_InitData"), __T("Event")); break; @@ -1496,11 +1559,11 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create() default: ; } #endif //MEDIAINFO_DEMUX - #if MEDIAINFO_IBI - if (!Reference->IbiStream.Infos.empty()) + #if MEDIAINFO_IBIUSAGE + if (!Sequences[Sequences_Current]->IbiStream.Infos.empty()) { ibi Ibi; - Ibi.Streams[(int64u)-1]=new ibi::stream(Reference->IbiStream); + Ibi.Streams[(int64u)-1]=new ibi::stream(Sequences[Sequences_Current]->IbiStream); //IBI Creation File_Ibi_Creation IbiCreation(Ibi); @@ -1508,7 +1571,7 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create() if (!IbiText.empty()) MI_Temp->Option(__T("File_Ibi"), IbiText); } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE return MI_Temp; } @@ -1517,9 +1580,9 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create() void File__ReferenceFilesHelper::Read_Buffer_Unsynched() { MI->Open_Buffer_Unsynch(); - for (references::iterator Reference=References.begin(); Reference!=References.end(); ++Reference) - if (Reference->MI) - Reference->MI->Open_Buffer_Unsynch(); + for (size_t Sequences_Pos=0; Sequences_PosMI) + Sequences[Sequences_Pos]->MI->Open_Buffer_Unsynch(); #if MEDIAINFO_DEMUX DTS_Minimal=(int64u)-1; @@ -1529,10 +1592,10 @@ void File__ReferenceFilesHelper::Read_Buffer_Unsynched() //--------------------------------------------------------------------------- #if MEDIAINFO_SEEK -size_t File__ReferenceFilesHelper::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) +size_t File__ReferenceFilesHelper::Seek (size_t Method, int64u Value, int64u ID) { - for (Reference=References.begin(); Reference!=References.end(); Reference++) - if (Reference->MI==NULL && !Reference->FileNames.empty()) + for (Sequences_Current=0; Sequences_CurrentMI==NULL && !Sequences[Sequences_Current]->FileNames.empty()) ParseReference_Init(); //Parsing @@ -1582,52 +1645,52 @@ size_t File__ReferenceFilesHelper::Read_Buffer_Seek (size_t Method, int64u Value DurationS+=L'0'+(Char)(DurationM/( 10)); DurationM%= 10; DurationS+=L'0'+(Char)(DurationM); - CountOfReferencesToParse=References.size(); + CountOfReferencesToParse=Sequences.size(); bool HasProblem=false; - for (Reference=References.begin(); Reference!=References.end(); Reference++) + for (Sequences_Current=0; Sequences_CurrentMI) + if (Sequences[Sequences_Current]->MI) { Ztring Result; - if (Reference->CompleteDuration.size()<=1 || DurationMCompleteDuration[1].Demux_Offset_DTS) + if (Sequences[Sequences_Current]->Resources.size()<=1 || DurationMResources[1]->Demux_Offset_DTS) { - Reference->CompleteDuration_Pos=0; - Result=Reference->MI->Option(__T("File_Seek"), DurationS); + Sequences[Sequences_Current]->Resources_Current=0; + Result=Sequences[Sequences_Current]->MI->Option(__T("File_Seek"), DurationS); } else { - size_t CompleteDuration_Pos_Temp=1; - while (CompleteDuration_Pos_TempCompleteDuration.size() && DurationM>=Reference->CompleteDuration[CompleteDuration_Pos_Temp].Demux_Offset_DTS) - CompleteDuration_Pos_Temp++; - CompleteDuration_Pos_Temp--; - Result=Reference->CompleteDuration[CompleteDuration_Pos_Temp].MI->Option(__T("File_Seek"), DurationS); + size_t Resources_Current_Temp=1; + while (Resources_Current_TempResources.size() && DurationM>=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->Demux_Offset_DTS) + Resources_Current_Temp++; + Resources_Current_Temp--; + Result=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->MI->Option(__T("File_Seek"), DurationS); if (Result.empty()) - Reference->CompleteDuration_Pos=CompleteDuration_Pos_Temp; + Sequences[Sequences_Current]->Resources_Current=Resources_Current_Temp; } if (!Result.empty()) HasProblem=true; } - Reference->Status.reset(); + Sequences[Sequences_Current]->Status.reset(); } - Reference=References.begin(); + Sequences_Current=0; Open_Buffer_Unsynch(); return HasProblem?(size_t)-1:1; //Not supported value if there is a problem (TODO: better info) } - CountOfReferencesToParse=References.size(); + CountOfReferencesToParse=Sequences.size(); bool HasProblem=false; - for (Reference=References.begin(); Reference!=References.end(); Reference++) + for (Sequences_Current=0; Sequences_CurrentMI) + if (Sequences[Sequences_Current]->MI) { - Reference->CompleteDuration_Pos=0; - Ztring Result=Reference->MI->Option(__T("File_Seek"), Ztring::ToZtring(Value)); + Sequences[Sequences_Current]->Resources_Current=0; + Ztring Result=Sequences[Sequences_Current]->MI->Option(__T("File_Seek"), Ztring::ToZtring(Value)); if (!Result.empty()) HasProblem=true; } - Reference->Status.reset(); + Sequences[Sequences_Current]->Status.reset(); } - Reference=References.begin(); + Sequences_Current=0; Open_Buffer_Unsynch(); return HasProblem?(size_t)-1:1; //Not supported value if there is a problem (TODO: better info) } @@ -1660,34 +1723,34 @@ size_t File__ReferenceFilesHelper::Read_Buffer_Seek (size_t Method, int64u Value else DurationS=Ztring::ToZtring(((float64)Value)/100)+__T('%'); - CountOfReferencesToParse=References.size(); + CountOfReferencesToParse=Sequences.size(); bool HasProblem=false; - for (Reference=References.begin(); Reference!=References.end(); Reference++) + for (Sequences_Current=0; Sequences_CurrentMI) + if (Sequences[Sequences_Current]->MI) { Ztring Result; - if (Reference->CompleteDuration.empty() || DurationCompleteDuration[1].Demux_Offset_DTS) + if (Sequences[Sequences_Current]->Resources.empty() || DurationResources[1]->Demux_Offset_DTS) { - Reference->CompleteDuration_Pos=0; - Result=Reference->MI->Option(__T("File_Seek"), DurationS); + Sequences[Sequences_Current]->Resources_Current=0; + Result=Sequences[Sequences_Current]->MI->Option(__T("File_Seek"), DurationS); } else { - size_t CompleteDuration_Pos_Temp=1; - while (CompleteDuration_Pos_TempCompleteDuration.size() && Duration>=Reference->CompleteDuration[CompleteDuration_Pos_Temp].Demux_Offset_DTS) - CompleteDuration_Pos_Temp++; - CompleteDuration_Pos_Temp--; - Result=Reference->CompleteDuration[CompleteDuration_Pos_Temp].MI->Option(__T("File_Seek"), DurationS); + size_t Resources_Current_Temp=1; + while (Resources_Current_TempResources.size() && Duration>=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->Demux_Offset_DTS) + Resources_Current_Temp++; + Resources_Current_Temp--; + Result=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->MI->Option(__T("File_Seek"), DurationS); if (Result.empty()) - Reference->CompleteDuration_Pos=CompleteDuration_Pos_Temp; + Sequences[Sequences_Current]->Resources_Current=Resources_Current_Temp; } if (!Result.empty()) HasProblem=true; } - Reference->Status.reset(); + Sequences[Sequences_Current]->Status.reset(); } - Reference=References.begin(); + Sequences_Current=0; Open_Buffer_Unsynch(); return HasProblem?2:1; //Invalid value if there is a problem (TODO: better info) } @@ -1697,40 +1760,40 @@ size_t File__ReferenceFilesHelper::Read_Buffer_Seek (size_t Method, int64u Value case 2 : //Timestamp #if MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET { - CountOfReferencesToParse=References.size(); + CountOfReferencesToParse=Sequences.size(); Ztring Time; Time.Duration_From_Milliseconds(Value/1000000); - for (Reference=References.begin(); Reference!=References.end(); Reference++) + for (Sequences_Current=0; Sequences_CurrentMI) + if (Sequences[Sequences_Current]->MI) { Ztring Result; - if (Reference->CompleteDuration.size()<2 || ValueCompleteDuration[1].Demux_Offset_DTS) + if (Sequences[Sequences_Current]->Resources.size()<2 || ValueResources[1]->Demux_Offset_DTS) { - Reference->CompleteDuration_Pos=0; - Result=Reference->MI->Option(__T("File_Seek"), Time); + Sequences[Sequences_Current]->Resources_Current=0; + Result=Sequences[Sequences_Current]->MI->Option(__T("File_Seek"), Time); } else { - size_t CompleteDuration_Pos_Temp=1; - while (CompleteDuration_Pos_TempCompleteDuration.size() && Value>=Reference->CompleteDuration[CompleteDuration_Pos_Temp].Demux_Offset_DTS) - CompleteDuration_Pos_Temp++; - CompleteDuration_Pos_Temp--; - Result=Reference->CompleteDuration[CompleteDuration_Pos_Temp].MI->Option(__T("File_Seek"), Time); + size_t Resources_Current_Temp=1; + while (Resources_Current_TempResources.size() && Value>=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->Demux_Offset_DTS) + Resources_Current_Temp++; + Resources_Current_Temp--; + Result=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->MI->Option(__T("File_Seek"), Time); if (Result.empty()) - Reference->CompleteDuration_Pos=CompleteDuration_Pos_Temp; + Sequences[Sequences_Current]->Resources_Current=Resources_Current_Temp; } if (!Result.empty()) return 2; //Invalid value } else { - //There was a problem, removing Reference - References.clear(); - return Read_Buffer_Seek(Method, Value, ID); + //There was a problem, removing Sequence + Sequences.clear(); + return Seek(Method, Value, ID); } - Reference->Status.reset(); + Sequences[Sequences_Current]->Status.reset(); } - Reference=References.begin(); + Sequences_Current=0; Open_Buffer_Unsynch(); return 1; } @@ -1739,33 +1802,33 @@ size_t File__ReferenceFilesHelper::Read_Buffer_Seek (size_t Method, int64u Value #endif //MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET case 3 : //FrameNumber #if MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET - CountOfReferencesToParse=References.size(); - for (Reference=References.begin(); Reference!=References.end(); Reference++) + CountOfReferencesToParse=Sequences.size(); + for (Sequences_Current=0; Sequences_CurrentMI) + if (Sequences[Sequences_Current]->MI) { Ztring Result; - if (Reference->CompleteDuration.size()<2 || ValueCompleteDuration[1].Demux_Offset_Frame) + if (Sequences[Sequences_Current]->Resources.size()<2 || ValueResources[1]->Demux_Offset_Frame) { - Reference->CompleteDuration_Pos=0; - Result=Reference->MI->Option(__T("File_Seek"), __T("Frame=")+Ztring::ToZtring(Value)); + Sequences[Sequences_Current]->Resources_Current=0; + Result=Sequences[Sequences_Current]->MI->Option(__T("File_Seek"), __T("Frame=")+Ztring::ToZtring(Value)); } else { - size_t CompleteDuration_Pos_Temp=1; - while (CompleteDuration_Pos_TempCompleteDuration.size() && Value>=Reference->CompleteDuration[CompleteDuration_Pos_Temp].Demux_Offset_Frame) - CompleteDuration_Pos_Temp++; - CompleteDuration_Pos_Temp--; - Result=Reference->CompleteDuration[CompleteDuration_Pos_Temp].MI->Option(__T("File_Seek"), __T("Frame=")+Ztring::ToZtring(Value-Reference->CompleteDuration[CompleteDuration_Pos_Temp].Demux_Offset_Frame)); + size_t Resources_Current_Temp=1; + while (Resources_Current_TempResources.size() && Value>=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->Demux_Offset_Frame) + Resources_Current_Temp++; + Resources_Current_Temp--; + Result=Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->MI->Option(__T("File_Seek"), __T("Frame=")+Ztring::ToZtring(Value-Sequences[Sequences_Current]->Resources[Resources_Current_Temp]->Demux_Offset_Frame)); if (Result.empty()) - Reference->CompleteDuration_Pos=CompleteDuration_Pos_Temp; + Sequences[Sequences_Current]->Resources_Current=Resources_Current_Temp; } if (!Result.empty()) return 2; //Invalid value } - Reference->Status.reset(); + Sequences[Sequences_Current]->Status.reset(); } - Reference=References.begin(); + Sequences_Current=0; Open_Buffer_Unsynch(); return 1; #else //MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET @@ -1785,10 +1848,10 @@ size_t File__ReferenceFilesHelper::Stream_Prepare (stream_t StreamKind, size_t S { size_t StreamPos_Last=MI->Stream_Prepare(StreamKind, StreamPos); - for (references::iterator ReferencePos=References.begin(); ReferencePos!=References.end(); ++ReferencePos) - if (ReferencePos->StreamKind==StreamKind && ReferencePos->StreamPos>=StreamPos_Last) - if (ReferencePos->StreamPos!=(size_t)-1) - ReferencePos->StreamPos++; + for (sequences::iterator ReferencePos=Sequences.begin(); ReferencePos!=Sequences.end(); ++ReferencePos) + if ((*ReferencePos)->StreamKind==StreamKind && (*ReferencePos)->StreamPos>=StreamPos_Last) + if ((*ReferencePos)->StreamPos!=(size_t)-1) + (*ReferencePos)->StreamPos++; return StreamPos_Last; } @@ -1801,20 +1864,21 @@ void File__ReferenceFilesHelper::FileSize_Compute () MI->Config->File_Size=MI->File_Size; - for (references::iterator Reference=References.begin(); Reference!=References.end(); ++Reference) + for (size_t Sequences_Pos=0; Sequences_PosFileSize!=(int64u)-1) - MI->Config->File_Size+=Reference->FileSize; - else if (Reference->MI && Reference->MI->Config.File_Size!=(int64u)-1) + if (Sequences[Sequences_Pos]->FileSize!=(int64u)-1) + MI->Config->File_Size+=Sequences[Sequences_Pos]->FileSize; + else if (Sequences[Sequences_Pos]->MI && Sequences[Sequences_Pos]->MI->Config.File_Size!=(int64u)-1) { - MI->Config->File_Size+=Reference->MI->Config.File_Size; + MI->Config->File_Size+=Sequences[Sequences_Pos]->MI->Config.File_Size; #if MEDIAINFO_ADVANCED if (!Config->File_IgnoreSequenceFileSize_Get()) #endif //MEDIAINFO_ADVANCED { - if (!Reference->CompleteDuration.empty()) - for (size_t Pos=1; PosCompleteDuration.size(); Pos++) - MI->Config->File_Size+=File::Size_Get(Reference->CompleteDuration[Pos].FileName); + if (!Sequences[Sequences_Pos]->Resources.empty()) + for (size_t Pos=1; PosResources.size(); Pos++) + for (size_t Resource_FileNames_Pos=0; Resource_FileNames_PosResources[Pos]->FileNames.size(); Resource_FileNames_Pos++) + MI->Config->File_Size+=File::Size_Get(Sequences[Sequences_Pos]->Resources[Pos]->FileNames[Resource_FileNames_Pos]); } } else @@ -1823,12 +1887,13 @@ void File__ReferenceFilesHelper::FileSize_Compute () if (!Config->File_IgnoreSequenceFileSize_Get()) #endif //MEDIAINFO_ADVANCED { - if (Reference->CompleteDuration.empty()) - for (size_t Pos=0; PosFileNames.size(); Pos++) - MI->Config->File_Size+=File::Size_Get(Reference->FileNames[Pos]); + if (Sequences[Sequences_Pos]->Resources.empty()) + for (size_t Pos=0; PosFileNames.size(); Pos++) + MI->Config->File_Size+=File::Size_Get(Sequences[Sequences_Pos]->FileNames[Pos]); else - for (size_t Pos=0; PosCompleteDuration.size(); Pos++) - MI->Config->File_Size+=File::Size_Get(Reference->CompleteDuration[Pos].FileName); + for (size_t Pos=0; PosResources.size(); Pos++) + for (size_t Resource_FileNames_Pos=0; Resource_FileNames_PosResources[Pos]->FileNames.size(); Resource_FileNames_Pos++) + MI->Config->File_Size+=File::Size_Get(Sequences[Sequences_Pos]->Resources[Pos]->FileNames[Resource_FileNames_Pos]); } } } @@ -1840,18 +1905,18 @@ void File__ReferenceFilesHelper::CountOfReferences_ForReadSize_Run () //Computing read buffer size int64u File_Size_Total=0; int64u Buffer_Read_Size_Total=MI->Config->File_Buffer_Read_Size_Get(); - for (references::iterator Reference_Temp=References.begin(); Reference_Temp!=References.end(); ++Reference_Temp) - if (Reference_Temp->MI && Reference_Temp->MI->Config.File_Size!=(int64u)-1) - File_Size_Total+=Reference_Temp->MI->Config.File_Size; + for (sequences::iterator Reference_Temp=Sequences.begin(); Reference_Temp!=Sequences.end(); ++Reference_Temp) + if ((*Reference_Temp)->MI && (*Reference_Temp)->MI->Config.File_Size!=(int64u)-1) + File_Size_Total+=(*Reference_Temp)->MI->Config.File_Size; if (File_Size_Total) - for (references::iterator Reference_Temp=References.begin(); Reference_Temp!=References.end(); ++Reference_Temp) - if (Reference_Temp->MI) + for (sequences::iterator Reference_Temp=Sequences.begin(); Reference_Temp!=Sequences.end(); ++Reference_Temp) + if ((*Reference_Temp)->MI) { - int64u Buffer_Read_Size_Temp=float64_int64s(((float64)Reference_Temp->MI->Config.File_Size)/File_Size_Total*Buffer_Read_Size_Total); + int64u Buffer_Read_Size_Temp=float64_int64s(((float64)(*Reference_Temp)->MI->Config.File_Size)/File_Size_Total*Buffer_Read_Size_Total); int64u Buffer_Read_Size=1; while (Buffer_Read_SizeMI->Config.File_Buffer_Read_Size_Set((size_t)Buffer_Read_Size); + (*Reference_Temp)->MI->Config.File_Buffer_Read_Size_Set((size_t)Buffer_Read_Size); } } @@ -1859,18 +1924,18 @@ void File__ReferenceFilesHelper::CountOfReferences_ForReadSize_Run () #if MEDIAINFO_EVENTS void File__ReferenceFilesHelper::SubFile_Start() { - if (Reference->StreamID!=StreamID_Previous) + if (Sequences[Sequences_Current]->StreamID!=StreamID_Previous) { Ztring FileName_Absolute, FileName_Relative; - if (Reference->MI && Reference->MI->Config.File_Names_Pos && Reference->MI->Config.File_Names_PosMI->Config.File_Names.size()) - FileName_Absolute=Reference->MI->Config.File_Names[Reference->MI->Config.File_Names_Pos-1]; - else if (!Reference->FileNames.empty()) - FileName_Absolute=Reference->FileNames[0]; + if (Sequences[Sequences_Current]->MI && Sequences[Sequences_Current]->MI->Config.File_Names_Pos && Sequences[Sequences_Current]->MI->Config.File_Names_PosMI->Config.File_Names.size()) + FileName_Absolute=Sequences[Sequences_Current]->MI->Config.File_Names[Sequences[Sequences_Current]->MI->Config.File_Names_Pos-1]; + else if (!Sequences[Sequences_Current]->FileNames.empty()) + FileName_Absolute=Sequences[Sequences_Current]->FileNames[0]; else - FileName_Absolute=Reference->Source.c_str(); + FileName_Absolute=Sequences[Sequences_Current]->Source.c_str(); - Reference->MI->Config.Event_SubFile_Start(FileName_Absolute); - StreamID_Previous=Reference->StreamID; + Sequences[Sequences_Current]->MI->Config.Event_SubFile_Start(FileName_Absolute); + StreamID_Previous=Sequences[Sequences_Current]->StreamID; } } #endif //MEDIAINFO_EVENTS diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.h index e7e771af725..ce11f95bb23 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.h @@ -12,6 +12,8 @@ //--------------------------------------------------------------------------- #include "MediaInfo/File__Analyze.h" #include "MediaInfo/MediaInfo_Internal.h" +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.h" +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h" #include //--------------------------------------------------------------------------- @@ -25,113 +27,41 @@ namespace MediaInfoLib class File__ReferenceFilesHelper { public : + //Constructor / Destructor + File__ReferenceFilesHelper(File__Analyze* MI, MediaInfo_Config_MediaInfo* Config); + ~File__ReferenceFilesHelper(); + //In - struct reference - { - ZtringList FileNames; - Ztring Source; //Source file name (relative path) - stream_t StreamKind; - size_t StreamPos; - size_t MenuPos; - int64u StreamID; - float64 FrameRate; - int64u Delay; - int64u FileSize; - bool IsCircular; - bool IsMain; - bool FileSize_IsPresent; //TODO: merge with FileSize after regression tests - #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 - bool List_Compute_Done; - #endif //MEDIAINFO_ADVANCED || MEDIAINFO_MD5 - size_t State; - std::map Infos; - MediaInfo_Internal* MI; - struct completeduration - { - Ztring FileName; - MediaInfo_Internal* MI; - int64u IgnoreFramesBefore; - int64u IgnoreFramesAfterDuration; //temporary value, some formats have duration instead of frame position - int64u IgnoreFramesAfter; - float64 IgnoreFramesRate; - #if MEDIAINFO_DEMUX - int64u Demux_Offset_Frame; - int64u Demux_Offset_DTS; - int64u Demux_Offset_FileSize; - #endif //MEDIAINFO_DEMUX - - completeduration() - { - MI=NULL; - IgnoreFramesBefore=0; - IgnoreFramesAfterDuration=(int64u)-1; - IgnoreFramesAfter=(int64u)-1; - IgnoreFramesRate=0; - #if MEDIAINFO_DEMUX - Demux_Offset_Frame=0; - Demux_Offset_DTS=0; - Demux_Offset_FileSize=0; - #endif //MEDIAINFO_DEMUX - } - - ~completeduration() - { - delete MI; - } - }; - vector CompleteDuration; - size_t CompleteDuration_Pos; - #if MEDIAINFO_FILTER - int64u Enabled; - #endif //MEDIAINFO_FILTER - std::bitset<32> Status; - #if MEDIAINFO_NEXTPACKET && MEDIAINFO_IBI - ibi::stream IbiStream; - #endif //MEDIAINFO_NEXTPACKET && MEDIAINFO_IBI - - reference() - { - FileNames.Separator_Set(0, __T(",")); - StreamKind=Stream_Max; - StreamPos=(size_t)-1; - MenuPos=(size_t)-1; - StreamID=(int64u)-1; - FrameRate=0; - Delay=0; - FileSize=(int64u)-1; - IsCircular=false; - IsMain=false; - FileSize_IsPresent=false; - #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 - List_Compute_Done=false; - #endif //MEDIAINFO_ADVANCED || MEDIAINFO_MD5 - State=0; - MI=NULL; - CompleteDuration_Pos=0; - #if MEDIAINFO_FILTER - Enabled=true; - #endif //MEDIAINFO_FILTER - } - }; - typedef std::vector references; - references References; + void AddSequence(sequence* NewSequence); + void UpdateFileName(const Ztring& OldFileName, const Ztring& NewFileName); bool TestContinuousFileNames; - bool FilesForStorage; bool ContainerHasNoId; - bool HasMainFile; - bool HasMainFile_Filled; int64u ID_Max; //Streams management - bool ParseReference_Init(); void ParseReferences(); - //Constructor / Destructor - File__ReferenceFilesHelper(File__Analyze* MI, MediaInfo_Config_MediaInfo* Config); - ~File__ReferenceFilesHelper(); +private : + sequences Sequences; + size_t Sequences_Current; + + //Temp + rfh_common* Common; + + + +public: + size_t Sequences_Size() {return Sequences.size();} + void Clear() {Sequences.clear();} + bool FilesForStorage; + bool HasMainFile; + bool HasMainFile_Filled; + + //Streams management + bool ParseReference_Init(); #if MEDIAINFO_SEEK - size_t Read_Buffer_Seek (size_t Method, int64u Value, int64u ID); + size_t Seek (size_t Method, int64u Value, int64u ID); #endif //MEDIAINFO_SEEK private : @@ -147,7 +77,6 @@ private : //temp File__Analyze* MI; MediaInfo_Config_MediaInfo* Config; - references::iterator Reference; bool Init_Done; bool Demux_Interleave; size_t CountOfReferencesToParse; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h new file mode 100644 index 00000000000..d798faaa425 --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h @@ -0,0 +1,74 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//--------------------------------------------------------------------------- +#ifndef File__ReferenceFilesHelper_CommonH +#define File__ReferenceFilesHelper_CommonH +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +class File__ReferenceFilesHelper; +class File__Analyze; +class MediaInfo_Config_MediaInfo; + +//*************************************************************************** +// Class resource +//*************************************************************************** + +class rfh_common +{ +public: + #if MEDIAINFO_DEMUX + rfh_common(bool* Demux_Interleave_p, int64u* DTS_Minimal): + #else //MEDIAINFO_DEMUX + rfh_common(): + #endif //MEDIAINFO_DEMUX + MI(NULL), + Config(NULL), + FileSize((int64u)-1), + HasMultipleSequences(false), + HasMainFile(false), + HasMainFile_Filled(false), + ContainerHasNoId(false) + #if MEDIAINFO_DEMUX + , + Demux_Interleave(Demux_Interleave_p), + DTS_Minimal(DTS_Minimal) + #endif //MEDIAINFO_DEMUX + { + } + + //Data + File__ReferenceFilesHelper* ReferenceFilesHelper; + File__Analyze* MI; + MediaInfo_Config_MediaInfo* Config; + int64u FileSize; + bool HasMultipleSequences; + bool HasMainFile; + bool HasMainFile_Filled; + bool ContainerHasNoId; + #if MEDIAINFO_DEMUX + const bool Demux_Interleave_Get() {return *Demux_Interleave;} + void Demux_Interleave_Set(bool Demux_Interleave_n) {*Demux_Interleave=Demux_Interleave_n;} + const int64u DTS_Minimal_Get() {return *DTS_Minimal;} + void DTS_Minimal_Set(size_t DTS_Minimal_n) {*DTS_Minimal=DTS_Minimal_n;} + #endif //MEDIAINFO_DEMUX + +private: + #if MEDIAINFO_DEMUX + bool* Demux_Interleave; + int64u* DTS_Minimal; + #endif //MEDIAINFO_DEMUX +}; + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.cpp new file mode 100644 index 00000000000..a49fa828a0f --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.cpp @@ -0,0 +1,93 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//--------------------------------------------------------------------------- +// Pre-compilation +#include "MediaInfo/PreComp.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Setup.h" +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_REFERENCES_YES) +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Multiple/File__ReferenceFilesHelper.h" +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence_Common.h" +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h" +#include "ZenLib/FileName.h" +#include "ZenLib/Format/Http/Http_Utils.h" +#if MEDIAINFO_AES + #include "base64.h" +#endif //MEDIAINFO_AES +#if MEDIAINFO_EVENTS + #include "MediaInfo/MediaInfo_Events_Internal.h" + #include "MediaInfo/MediaInfo_Config_PerPackage.h" +#endif //MEDIAINFO_EVENTS +using namespace std; +using namespace ZenLib; +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +//*************************************************************************** +// Constructor/Destructor +//*************************************************************************** + +resource::resource() +{ + //In + FileNames.Separator_Set(0, __T(",")); + EditRate=0; + IgnoreEditsBefore=0; + IgnoreEditsAfter=(int64u)-1; + + //Config + Sequence=NULL; + #if MEDIAINFO_NEXTPACKET + Demux_Offset_Frame=(int64u)-1; + Demux_Offset_DTS=(int64u)-1; + #endif //MEDIAINFO_NEXTPACKET + + //Private + MI=NULL; + + + + IgnoreEditsAfterDuration=(int64u)-1; + #if MEDIAINFO_DEMUX + Demux_Offset_FileSize=0; + #endif //MEDIAINFO_DEMUX +} + +resource::~resource() +{ + delete MI; +} + +//*************************************************************************** +// In +//*************************************************************************** + +//--------------------------------------------------------------------------- +void resource::UpdateFileName(const Ztring& OldFileName, const Ztring& NewFileName) +{ + size_t FileNames_Size=FileNames.size(); + for (size_t Pos=0; Pos +#if MEDIAINFO_EVENTS + #include +#endif //MEDIAINFO_EVENTS +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +class rfhs_common; + +class resource +{ +public: + //Constructor/Desctructor + resource(); + ~resource(); + + //In + void UpdateFileName(const Ztring& OldFileName, const Ztring& NewFileName); + ZtringList FileNames; //Source file name (relative path) + float64 EditRate; + int64u IgnoreEditsBefore; + int64u IgnoreEditsAfter; + + //Config + rfhs_common* Sequence; + #if MEDIAINFO_NEXTPACKET + int64u Demux_Offset_Frame; + int64u Demux_Offset_DTS; + #endif //MEDIAINFO_NEXTPACKET + + MediaInfo_Internal* MI; + + + + int64u IgnoreEditsAfterDuration; //temporary value, some formats have duration instead of frame position + #if MEDIAINFO_DEMUX + int64u Demux_Offset_FileSize; + #endif //MEDIAINFO_DEMUX +}; + +typedef std::vector resources; + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.cpp new file mode 100644 index 00000000000..cd4bf45b34e --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.cpp @@ -0,0 +1,130 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//--------------------------------------------------------------------------- +// Pre-compilation +#include "MediaInfo/PreComp.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Setup.h" +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#if defined(MEDIAINFO_REFERENCES_YES) +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.h" +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h" +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +//--------------------------------------------------------------------------- +sequence::sequence() +{ + //In + StreamKind=Stream_Max; + StreamPos=(size_t)-1; + StreamID=(int64u)-1; + MenuPos=(size_t)-1; + Enabled=true; + IsMain=false; + //MenuPos=(size_t)-1; + + //Out + State=0; + IsCircular=false; + #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 + List_Compute_Done=false; + #endif //MEDIAINFO_ADVANCED || MEDIAINFO_MD5 + + //Config + Package=NULL; + + //Private + Resources_Current=0; + Common=new rfhs_common(&StreamKind, &StreamPos, &StreamID, NULL, &Enabled, &IsMain); + + + + + FileNames.Separator_Set(0, __T(",")); + FrameRate=0; + Delay=0; + FileSize=(int64u)-1; + IsMain=false; + FileSize_IsPresent=false; + #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 + List_Compute_Done=false; + #endif //MEDIAINFO_ADVANCED || MEDIAINFO_MD5 + MI=NULL; +} + +//--------------------------------------------------------------------------- +sequence::~sequence() +{ + delete MI; +} + +//*************************************************************************** +// In +//*************************************************************************** + +//--------------------------------------------------------------------------- +void sequence::AddFileName(const Ztring& FileName, size_t Pos) +{ + FileNames.push_back(FileName); +} + +//--------------------------------------------------------------------------- +void sequence::AddResource(resource* NewResource, size_t Pos) +{ + NewResource->Sequence=Common; + + #if MEDIAINFO_DEMUX + if (Resources.empty()) + { + NewResource->Demux_Offset_DTS=0; + } + #endif //MEDIAINFO_DEMUX + + if (Pos>=Resources.size()) + Resources.push_back(NewResource); + else + Resources.insert(Resources.begin()+Pos, NewResource); +} + +//--------------------------------------------------------------------------- +void sequence::UpdateFileName(const Ztring& OldFileName, const Ztring& NewFileName) +{ + size_t Resources_Size=Resources.size(); + for (size_t Resources_Pos=0; Resources_PosUpdateFileName(OldFileName, NewFileName); + + for (size_t Pos=0; PosFileNames.size(); Pos++) + if (Resource->FileNames[Pos]==NewFileName) + Infos["UniqueID"]=OldFileName; + } +} + +//--------------------------------------------------------------------------- +void sequence::FrameRate_Set(float64 NewFrameRate) +{ + FrameRate=NewFrameRate; +} + +} //NameSpace + +#endif //MEDIAINFO_REFERENCES_YES diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.h new file mode 100644 index 00000000000..d6a4e4bbba1 --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.h @@ -0,0 +1,86 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//--------------------------------------------------------------------------- +#ifndef File__ReferenceFilesHelper_SequenceH +#define File__ReferenceFilesHelper_SequenceH +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.h" +#include "MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence_Common.h" +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +class resource; +typedef std::vector resources; + +class rfhs_common; + +//*************************************************************************** +// Class sequence +//*************************************************************************** + +class sequence +{ +public: + //Constructor/Desctructor + sequence(); + ~sequence(); + + //In + void AddFileName(const Ztring& FileName, size_t Pos=(size_t)-1); + void AddResource(resource* NewResource, size_t Pos=(size_t)-1); + void UpdateFileName(const Ztring& OldFileName, const Ztring& NewFileName); + stream_t StreamKind; + size_t StreamPos; + int64u StreamID; + size_t MenuPos; + bool Enabled; + bool IsMain; + std::map Infos; + void FrameRate_Set(float64 NewFrameRate); + + //Out + bool IsFinished() {return !Enabled || Resources_Current>=Resources.size();} + size_t State; + bool IsCircular; + #if MEDIAINFO_ADVANCED || MEDIAINFO_MD5 + bool List_Compute_Done; + #endif //MEDIAINFO_ADVANCED || MEDIAINFO_MD5 + + //Config + rfh_common* Package; + #if MEDIAINFO_NEXTPACKET && MEDIAINFO_IBIUSAGE + ibi::stream IbiStream; + #endif //MEDIAINFO_NEXTPACKET && MEDIAINFO_IBIUSAGE + + resources Resources; + size_t Resources_Current; + +public: + rfhs_common* Common; + + + +public: + ZtringList FileNames; + Ztring Source; //Source file name (relative path) + float64 FrameRate; + int64u Delay; + int64u FileSize; + bool FileSize_IsPresent; //TODO: merge with FileSize after regression tests + MediaInfo_Internal* MI; + std::bitset<32> Status; +}; + +typedef std::vector sequences; + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence_Common.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence_Common.h new file mode 100644 index 00000000000..1fe322be535 --- /dev/null +++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence_Common.h @@ -0,0 +1,71 @@ +/* Copyright (c) MediaArea.net SARL. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license that can + * be found in the License.html file in the root of the source tree. + */ + +//--------------------------------------------------------------------------- +#ifndef File__ReferenceFilesHelper_Sequence_CommonH +#define File__ReferenceFilesHelper_Sequence_CommonH +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#include "MediaInfo/MediaInfo_Const.h" +//--------------------------------------------------------------------------- + +namespace MediaInfoLib +{ + +class rfh_common; + +//*************************************************************************** +// Class resource +//*************************************************************************** + +class rfhs_common +{ +public: + rfhs_common(stream_t* StreamKind_p, size_t* StreamPos_p, int64u* StreamID_p, int64u* DTS_p, bool* Enabled_p, bool* IsMain_p): + Package(NULL), + FileSize((int64u)-1), + Edits((int64u)-1), + DemuxRate(0), + HasMultipleResources(false), + StreamKind(StreamKind_p), + StreamPos(StreamPos_p), + StreamID(StreamID_p), + DTS(DTS_p), + Enabled(Enabled_p), + IsMain(IsMain_p) + { + } + + //Data + rfh_common* Package; + int64u FileSize; + int64u Edits; + float64 DemuxRate; + bool HasMultipleResources; + const stream_t StreamKind_Get() {return *StreamKind;} + void StreamKind_Set(stream_t StreamKind_n) {*StreamKind=StreamKind_n;} + const size_t StreamPos_Get() {return *StreamPos;} + void StreamPos_Set(size_t StreamPos_n) {*StreamPos=StreamPos_n;} + const int64u StreamID_Get() {return *StreamID;} + void StreamID_Set(int64u StreamID_n) {*StreamID=StreamID_n;} + const int64u DTS_Get() {return *DTS;} + void DTS_Set(int64u DTS_n) {*DTS=DTS_n;} + const bool Enabled_Get() {return *Enabled;} + const bool IsMain_Get() {return *IsMain;} + +private: + stream_t* StreamKind; + size_t* StreamPos; + int64u* StreamID; + int64u* DTS; + bool* Enabled; + bool* IsMain; +}; + +} //NameSpace + +#endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_File.cpp b/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_File.cpp index a17a9dc8bd7..efec9087625 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_File.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_File.cpp @@ -425,15 +425,21 @@ size_t Reader_File::Format_Test_PerParser_Continue (MediaInfo_Internal* MI) else #endif //MEDIAINFO_SEEK { - for (Pos=0; PosConfig.File_Sizes.size(); Pos++) + for (Pos=0; PosConfig.File_Names.size(); Pos++) { - if (GoTo>=MI->Config.File_Sizes[Pos]) - { - GoTo-=MI->Config.File_Sizes[Pos]; - MI->Config.File_Current_Offset+=MI->Config.File_Sizes[Pos]; - } - else + if (Pos==MI->Config.File_Sizes.size()) + MI->Config.File_Sizes.push_back(F.Size_Get()); + else if (MI->Config.File_Sizes[Pos]==(int64u)-1) + MI->Config.File_Sizes[Pos]=F.Size_Get(); + + if (Pos>=MI->Config.File_Sizes.size() || MI->Config.File_Sizes[Pos]==(int64u)-1) + break; + + if (GoToConfig.File_Sizes[Pos]) break; + + GoTo-=MI->Config.File_Sizes[Pos]; + MI->Config.File_Current_Offset+=MI->Config.File_Sizes[Pos]; } if (Pos>=MI->Config.File_Sizes.size()) break; @@ -525,9 +531,17 @@ size_t Reader_File::Format_Test_PerParser_Continue (MediaInfo_Internal* MI) MI->Config.Event_SubFile_Start(MI->Config.File_Names[MI->Config.File_Names_Pos]); #endif //MEDIAINFO_EVENTS F.Open(MI->Config.File_Names[MI->Config.File_Names_Pos]); + while (!F.Opened_Get()) + { + if (MI->Config.File_Names_Pos+1Config.File_Names.size()) + { + MI->Config.File_Names_Pos++; + F.Open(MI->Config.File_Names[MI->Config.File_Names_Pos]); + } + } if (MI->Config.File_Names_Pos>=MI->Config.File_Sizes.size()) { - MI->Config.File_Sizes.resize(MI->Config.File_Names_Pos, (int64u)-1); + MI->Config.File_Sizes.resize(MI->Config.File_Names_Pos, 0); MI->Config.File_Sizes.push_back(F.Size_Get()); } MI->Config.File_Names_Pos++; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_libcurl.cpp b/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_libcurl.cpp index 6eead5765df..a654d6e9923 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_libcurl.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_libcurl.cpp @@ -60,7 +60,7 @@ struct Reader_libcurl::curl_data char ErrorBuffer[CURL_ERROR_SIZE]; #if MEDIAINFO_NEXTPACKET CURLM* CurlM; - #endif MEDIAINFO_NEXTPACKET + #endif //MEDIAINFO_NEXTPACKET struct curl_slist* HttpHeader; std::bitset<32> Status; String File_Name; @@ -80,7 +80,7 @@ struct Reader_libcurl::curl_data bool Init_NotAFile; #if MEDIAINFO_NEXTPACKET bool NextPacket; - #endif MEDIAINFO_NEXTPACKET + #endif //MEDIAINFO_NEXTPACKET time_t Time_Max; #ifdef MEDIAINFO_DEBUG int64u Debug_BytesRead_Total; @@ -98,7 +98,7 @@ struct Reader_libcurl::curl_data ErrorBuffer[0]='\0'; #if MEDIAINFO_NEXTPACKET CurlM=NULL; - #endif MEDIAINFO_NEXTPACKET + #endif //MEDIAINFO_NEXTPACKET HttpHeader=NULL; Ssl_IgnoreSecurity=false; Ssh_IgnoreSecurity=false; @@ -106,7 +106,7 @@ struct Reader_libcurl::curl_data Init_NotAFile=false; #if MEDIAINFO_NEXTPACKET NextPacket=false; - #endif MEDIAINFO_NEXTPACKET + #endif //MEDIAINFO_NEXTPACKET Time_Max=0; #ifdef MEDIAINFO_DEBUG Debug_BytesRead_Total=0; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Setup.h b/src/thirdparty/MediaInfo/MediaInfo/Setup.h index 40d0e1d7a43..f6cefdc9f0e 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Setup.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Setup.h @@ -116,6 +116,9 @@ #if !defined (MEDIAINFO_AES_NO) && !defined (MEDIAINFO_AES_YES) #define MEDIAINFO_AES_NO #endif + #if !defined (MEDIAINFO_EXPORT_NO) && !defined (MEDIAINFO_EXPORT_YES) + #define MEDIAINFO_EXPORT_NO + #endif #endif //--------------------------------------------------------------------------- @@ -256,6 +259,20 @@ #define MEDIAINFO_IBI 1 #endif #endif +#if !defined(MEDIAINFO_IBIUSAGE) + #if defined(MEDIAINFO_IBIUSAGE_NO) && defined(MEDIAINFO_IBIUSAGE_YES) + #undef MEDIAINFO_IBIUSAGE_NO //MEDIAINFO_IBIUSAGE_YES has priority + #endif + #if defined(MEDIAINFO_IBIUSAGE_NO) + #define MEDIAINFO_IBIUSAGE 0 + #else + #if MEDIAINFO_ADVANCED2 + #define MEDIAINFO_IBIUSAGE 1 + #else //MEDIAINFO_ADVANCED2 + #define MEDIAINFO_IBIUSAGE 0 + #endif //MEDIAINFO_ADVANCED2 + #endif +#endif #if !defined(MEDIAINFO_READTHREAD) #if defined(MEDIAINFO_READTHREAD_NO) && defined(MEDIAINFO_READTHREAD_YES) #undef MEDIAINFO_READTHREAD_NO //MEDIAINFO_READTHREAD_YES has priority @@ -288,6 +305,36 @@ #endif //WINDOWS #endif +//--------------------------------------------------------------------------- +// Export +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_TEXT_NO) && !defined(MEDIAINFO_TEXT_YES) + #define MEDIAINFO_TEXT_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_HTML_NO) && !defined(MEDIAINFO_HTML_YES) + #define MEDIAINFO_HTML_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_XML_NO) && !defined(MEDIAINFO_XML_YES) + #define MEDIAINFO_XML_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_CSV_NO) && !defined(MEDIAINFO_CSV_YES) + #define MEDIAINFO_CSV_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_CUSTOM_NO) && !defined(MEDIAINFO_CUSTOM_YES) + #define MEDIAINFO_CUSTOM_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_EBUCORE_NO) && !defined(MEDIAINFO_EBUCORE_YES) + #define MEDIAINFO_EBUCORE_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_MPEG7_NO) && !defined(MEDIAINFO_MPEG7_YES) + #define MEDIAINFO_MPEG7_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_PBCORE_NO) && !defined(MEDIAINFO_PBCORE_YES) + #define MEDIAINFO_PBCORE_YES +#endif +#if !defined(MEDIAINFO_EXPORT_NO) && !defined(MEDIAINFO_REVTMD_NO) && !defined(MEDIAINFO_REVTMD_YES) + #define MEDIAINFO_REVTMD_YES +#endif + //--------------------------------------------------------------------------- // All in one for no parsers #if defined(MEDIAINFO_ALL_NO) && !defined(MEDIAINFO_MULTI_NO) @@ -542,6 +589,9 @@ #if !defined(MEDIAINFO_AUDIO_NO) && !defined(MEDIAINFO_AU_NO) && !defined(MEDIAINFO_AU_YES) #define MEDIAINFO_AU_YES #endif +#if !defined(MEDIAINFO_AUDIO_NO) && !defined(MEDIAINFO_CAF_NO) && !defined(MEDIAINFO_CAF_YES) + #define MEDIAINFO_CAF_YES +#endif #if !defined(MEDIAINFO_AUDIO_NO) && !defined(MEDIAINFO_CELT_NO) && !defined(MEDIAINFO_CELT_YES) #define MEDIAINFO_CELT_YES #endif @@ -698,6 +748,9 @@ #if !defined(MEDIAINFO_IMAGE_NO) && !defined(MEDIAINFO_BMP_NO) && !defined(MEDIAINFO_BMP_YES) #define MEDIAINFO_BMP_YES #endif +#if !defined(MEDIAINFO_IMAGE_NO) && !defined(MEDIAINFO_BPG_NO) && !defined(MEDIAINFO_BPG_YES) + #define MEDIAINFO_BPG_YES +#endif #if !defined(MEDIAINFO_IMAGE_NO) && !defined(MEDIAINFO_DDS_NO) && !defined(MEDIAINFO_DDS_YES) #define MEDIAINFO_DDS_YES #endif diff --git a/src/thirdparty/MediaInfo/MediaInfo/Tag/File_Id3v2.cpp b/src/thirdparty/MediaInfo/MediaInfo/Tag/File_Id3v2.cpp index 3e10e5054d4..0af6ccbf71f 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Tag/File_Id3v2.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Tag/File_Id3v2.cpp @@ -464,6 +464,8 @@ void File_Id3v2::Header_Parse() { int16u Flags; Get_C4 (Frame_ID, "Frame ID"); + if (!(Frame_ID&0xFF)) + Frame_ID>>=8; Get_B4 (Size, "Size"); if (Id3v2_Version!=3) { diff --git a/src/thirdparty/MediaInfo/MediaInfo/Tag/File_VorbisCom.cpp b/src/thirdparty/MediaInfo/MediaInfo/Tag/File_VorbisCom.cpp index 3f598d44b09..677bb24035e 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Tag/File_VorbisCom.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Tag/File_VorbisCom.cpp @@ -170,9 +170,9 @@ void File_VorbisCom::FileHeader_Parse() if (vendor_string.find(__T("BS; Lancer"))==0) Library_Name="Lancer"; Fill(StreamKind_Specific, 0, "Encoded_Library", vendor_string); - Fill(StreamKind_Specific, 0, "Encoded_Library/Name", Library_Name); - Fill(StreamKind_Specific, 0, "Encoded_Library/Version", Library_Version); - Fill(StreamKind_Specific, 0, "Encoded_Library/Date", Library_Date); + Fill(StreamKind_Specific, 0, "Encoded_Library_Name", Library_Name); + Fill(StreamKind_Specific, 0, "Encoded_Library_Version", Library_Version); + Fill(StreamKind_Specific, 0, "Encoded_Library_Date", Library_Date); FILLING_END(); } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Cdp.cpp b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Cdp.cpp index b355d51fab4..6307fdc89b3 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Cdp.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Cdp.cpp @@ -25,6 +25,9 @@ #if defined(MEDIAINFO_EIA608_YES) #include "MediaInfo/Text/File_Eia608.h" #endif +#if MEDIAINFO_ADVANCED + #include "MediaInfo/MediaInfo_Config_MediaInfo.h" +#endif //MEDIAINFO_ADVANCED #if MEDIAINFO_EVENTS #include "MediaInfo/MediaInfo_Events.h" #endif //MEDIAINFO_EVENTS @@ -363,6 +366,12 @@ void File_Cdp::ccdata_section() Get_SB ( cc_valid, "cc_valid"); Get_S1 (2, cc_type, "cc_type"); Param_Info1(Cdp_cc_type(cc_type)); BS_End(); + + #if MEDIAINFO_ADVANCED + if (cc_type>=2 && !Streams[2] && Config->File_Eia708_DisplayEmptyStream_Get()) + CreateStream(2); + #endif //MEDIAINFO_ADVANCED + if (cc_valid) { Element_Begin1("cc_data"); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Text/File_DtvccTransport.cpp b/src/thirdparty/MediaInfo/MediaInfo/Text/File_DtvccTransport.cpp index 6412809b882..e4c85a9c0f4 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Text/File_DtvccTransport.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Text/File_DtvccTransport.cpp @@ -28,6 +28,9 @@ #if defined(MEDIAINFO_EIA708_YES) #include "MediaInfo/Text/File_Eia708.h" #endif +#if MEDIAINFO_ADVANCED + #include "MediaInfo/MediaInfo_Config_MediaInfo.h" +#endif //MEDIAINFO_ADVANCED #if MEDIAINFO_EVENTS #include "MediaInfo/MediaInfo_Events.h" #endif //MEDIAINFO_EVENTS @@ -227,6 +230,12 @@ void File_DtvccTransport::Read_Buffer_Continue() Get_S1 (2, cc_type, "cc_type"); Param_Info1(DtvccTransport_cc_type(cc_type)); } BS_End(); + + #if MEDIAINFO_ADVANCED + if (cc_type>=2 && !Streams[2] && Config->File_Eia708_DisplayEmptyStream_Get()) + CreateStream(2); + #endif //MEDIAINFO_ADVANCED + if (cc_valid) { Element_Begin1("cc_data"); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Eia708.cpp b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Eia708.cpp index ad5548c3cb9..81b229415a6 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Eia708.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Eia708.cpp @@ -1267,12 +1267,16 @@ void File_Eia708::DFx(int8u WindowID) window* Window=Streams[service_number]->Windows[WindowID]; Window->visible=visible; Window->relative_positioning=relative_positioning; - Window->anchor_vertical=anchor_vertical; if (relative_positioning) + { Window->Minimal.Window_y=(int8u)(((float)15)*anchor_vertical/100); + Window->Minimal.Window_x=(int8u)(24*AspectRatio*anchor_horizontal/100);; + } else + { Window->Minimal.Window_y=anchor_vertical/5; - Window->anchor_horizontal=anchor_horizontal; + Window->Minimal.Window_x=anchor_horizontal/5; + } int8u offset_y; switch (anchor_point) { @@ -1295,10 +1299,6 @@ void File_Eia708::DFx(int8u WindowID) } if (offset_yMinimal.Window_y) Window->Minimal.Window_y-=offset_y; - if (relative_positioning) - Window->Minimal.Window_x=(int8u)(24*AspectRatio*anchor_horizontal/100); - else - Window->Minimal.Window_x=anchor_horizontal/5; int8u offset_x; switch (anchor_point) { @@ -1337,6 +1337,15 @@ void File_Eia708::DFx(int8u WindowID) Window->Minimal.CC.resize(Window->row_count); for (int8u Pos_Y=0; Pos_Yrow_count; Pos_Y++) Window->Minimal.CC[Pos_Y].resize(Window->column_count); + + if (Window->Minimal.Window_y+Window->row_count>15 || (AspectRatio && Window->Minimal.Window_x+Window->column_count>(int8u)(24*AspectRatio))) + { + //Correcting + if (Window->Minimal.Window_y+Window->row_count>15) + Window->Minimal.Window_y=15-Window->row_count; + if (AspectRatio && Window->Minimal.Window_x+Window->column_count>(int8u)(24*AspectRatio)) + Window->Minimal.Window_x=(int8u)(24*AspectRatio)-Window->column_count; + } } //*************************************************************************** diff --git a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Sdp.cpp b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Sdp.cpp index d69abca6a62..9df379a6045 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Sdp.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Sdp.cpp @@ -88,9 +88,9 @@ void File_Sdp::Streams_Finish() bool File_Sdp::Synchronize() { //Synchronizing - while (Buffer_Offset+3<=Buffer_Size) + while (Buffer_Offset+2Buffer_Size) + if (Buffer_Offset+Buffer[Buffer_Offset+2]+3>Buffer_Size) return false; //Wait for more data - if (Buffer[Buffer_Offset+3+Buffer[Buffer_Offset+2] ]==0x51 - && Buffer[Buffer_Offset+3+Buffer[Buffer_Offset+2]+1]==0x15) + if (Buffer[Buffer_Offset+Buffer[Buffer_Offset+2] ]==0x51 + && Buffer[Buffer_Offset+Buffer[Buffer_Offset+2]+1]==0x15) break; //while() Buffer_Offset++; @@ -116,7 +119,7 @@ bool File_Sdp::Synchronize() } //Must have enough buffer for having header - if (Buffer_Offset+3>=Buffer_Size) + if (Buffer_Offset+2>=Buffer_Size) return false; //Synched is OK @@ -206,7 +209,10 @@ void File_Sdp::Header_Parse() #endif //MEDIAINFO_TRACE } - Header_Fill_Size(3+Length); + if (IsSub) + Header_Fill_Size(Buffer_Size); + else + Header_Fill_Size(Length); } //--------------------------------------------------------------------------- @@ -237,8 +243,9 @@ void File_Sdp::Data_Parse() Element_Begin1("SDP Footer"); Skip_B1( "Footer ID"); Skip_B2( "Footer Sequence number"); - Skip_B2( "SDP Cheksum"); - Skip_B2( "SMPTE 291 Cheksum"); + Skip_B1( "SDP Cheksum"); + if (Element_Offset2 && ParserIDs[StreamIDs_Size-2]==MediaInfo_Parser_Mxf) //Only if referenced MXF MuxingMode=13; //MXF - #endif MEDIAINFO_EVENTS + #endif //MEDIAINFO_EVENTS + + #if MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET + if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet()) + return; // Waiting for NextPacket + #endif //MEDIAINFO_DEMUX && MEDIAINFO_NEXTPACKET } tinyxml2::XMLElement* div=NULL; @@ -241,7 +246,7 @@ void File_Ttml::Read_Buffer_Continue() Frame_Count++; } } - #endif MEDIAINFO_EVENTS + #endif //MEDIAINFO_EVENTS Buffer_Offset=Buffer_Size; } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.h b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.h index 60d16cba6e5..d4e9f5606ad 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.h @@ -39,7 +39,7 @@ public : #if MEDIAINFO_EVENTS int8u MuxingMode; - #endif MEDIAINFO_EVENTS + #endif //MEDIAINFO_EVENTS private : //Streams management diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.cpp b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.cpp index 01895cdf375..32f93237162 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.cpp @@ -49,7 +49,7 @@ const char* Avc_profile_idc(int8u profile_idc) case 138 : return "Multiview Depth High"; case 144 : return "High 4:4:4"; case 244 : return "High 4:4:4 Predictive"; - default : return "Unknown"; + default : return ""; } } @@ -73,6 +73,9 @@ const char* Avc_profile_idc(int8u profile_idc) #if defined(MEDIAINFO_DTVCCTRANSPORT_YES) #include "MediaInfo/Text/File_DtvccTransport.h" #endif //defined(MEDIAINFO_DTVCCTRANSPORT_YES) +#if MEDIAINFO_ADVANCED2 + #include "base64.h" +#endif //MEDIAINFO_ADVANCED2 #if MEDIAINFO_EVENTS #include "MediaInfo/MediaInfo_Config_MediaInfo.h" #include "MediaInfo/MediaInfo_Events.h" @@ -96,7 +99,7 @@ const size_t Avc_Errors_MaxCount=32; //--------------------------------------------------------------------------- extern const int8u Avc_PixelAspectRatio_Size=17; -extern const float32 Avc_PixelAspectRatio[]= +extern const float32 Avc_PixelAspectRatio[Avc_PixelAspectRatio_Size]= { (float32)1, //Reserved (float32)1, @@ -371,6 +374,13 @@ void File_Avc::Streams_Fill() Streams_Fill_subset(subset_seq_parameter_set_Item); Fill(Stream_Video, 0, Video_MultiView_Count, (*subset_seq_parameter_set_Item)->num_views_minus1+1); } + + #if MEDIAINFO_ADVANCED2 + for (size_t Pos = 0; Pos::iterator seq if ((*seq_parameter_set_Item)->constraint_set3_flag) Profile+=__T(" Intra"); } - Profile+=__T("@L")+Ztring().From_Number(((float)(*seq_parameter_set_Item)->level_idc)/10, 1); + Profile+=__T("@L")+Ztring().From_Number(((float)(*seq_parameter_set_Item)->level_idc)/10, ((*seq_parameter_set_Item)->level_idc%10)?1:0); Fill(Stream_Video, 0, Video_Format_Profile, Profile); Fill(Stream_Video, 0, Video_Codec_Profile, Profile); Fill(Stream_Video, StreamPos_Last, Video_Width, Width); @@ -588,7 +598,10 @@ void File_Avc::Streams_Fill(std::vector::iterator seq Fill(Stream_Video, 0, Video_Format_Settings_RefFrames, (*seq_parameter_set_Item)->max_num_ref_frames); Fill(Stream_Video, 0, Video_Codec_Settings_RefFrames, (*seq_parameter_set_Item)->max_num_ref_frames); } - Fill(Stream_Video, 0, Video_ColorSpace, "YUV"); + if ((*seq_parameter_set_Item)->vui_parameters && (*seq_parameter_set_Item)->vui_parameters->matrix_coefficients == 0) + Fill(Stream_Video, 0, Video_ColorSpace, "RGB"); + else + Fill(Stream_Video, 0, Video_ColorSpace, "YUV"); Fill(Stream_Video, 0, Video_Colorimetry, Avc_Colorimetry_format_idc[(*seq_parameter_set_Item)->chroma_format_idc]); if ((*seq_parameter_set_Item)->bit_depth_luma_minus8==(*seq_parameter_set_Item)->bit_depth_chroma_minus8) Fill(Stream_Video, 0, Video_BitDepth, (*seq_parameter_set_Item)->bit_depth_luma_minus8+8); @@ -617,6 +630,8 @@ void File_Avc::Streams_Finish() #if defined(MEDIAINFO_DTVCCTRANSPORT_YES) if (GA94_03_Parser && GA94_03_Parser->Status[IsAccepted]) { + Clear(Stream_Text); + Finish(GA94_03_Parser); Merge(*GA94_03_Parser); @@ -635,10 +650,10 @@ void File_Avc::Streams_Finish() } #endif //defined(MEDIAINFO_DTVCCTRANSPORT_YES) - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (seq_parameter_sets.size()==1 && (*seq_parameter_sets.begin())->vui_parameters && (*seq_parameter_sets.begin())->vui_parameters->timing_info_present_flag && (*seq_parameter_sets.begin())->vui_parameters->fixed_frame_rate_flag) Ibi_Stream_Finish((*seq_parameter_sets.begin())->vui_parameters->time_scale, (*seq_parameter_sets.begin())->vui_parameters->num_units_in_tick); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** @@ -728,12 +743,12 @@ bool File_Avc::Synched_Test() if (!Header_Parser_QuickSearch()) return false; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE bool zero_byte=Buffer[Buffer_Offset+2]==0x00; bool RandomAccess=(Buffer[Buffer_Offset+(zero_byte?4:3)]&0x1F)==0x07 || ((Buffer[Buffer_Offset+(zero_byte?4:3)]&0x1F)==0x09 && ((Buffer[Buffer_Offset+(zero_byte?5:4)]&0xE0)==0x00 || (Buffer[Buffer_Offset+(zero_byte?5:4)]&0xE0)==0xA0)); //seq_parameter_set or access_unit_delimiter with value=0 or 5 (3 bits) if (RandomAccess) Ibi_Add(); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE //We continue return true; @@ -1330,6 +1345,24 @@ void File_Avc::Data_Parse() Element_Size--; } + //Dump of the SPS/PPS - Init + #if MEDIAINFO_ADVANCED2 + size_t spspps_Size=0; + if (true) //TODO: add an option for activating this extra piece of information in the output + { + switch (Element_Code) + { + case 0x07 : //seq_parameter_set(); + spspps_Size = seq_parameter_sets.size(); + break; + case 0x08 : //pic_parameter_set(); + spspps_Size = pic_parameter_sets.size(); + break; + default: ; + } + } + #endif //MEDIAINFO_ADVANCED2 + //svc_extension bool svc_extension_flag=false; if (Element_Code==0x0E || Element_Code==0x14) @@ -1479,6 +1512,31 @@ void File_Avc::Data_Parse() } #endif //MEDIAINFO_DEMUX + //Dump of the SPS/PPS - Fill + #if MEDIAINFO_ADVANCED2 + if (false) //TODO: add an option for activating this extra piece of information in the output + { + switch (Element_Code) + { + case 0x07 : //seq_parameter_set(); + if (spspps_Size != seq_parameter_sets.size() && !Status[IsFilled]) + { + std::string Data_Raw((const char*)(Buffer+(size_t)(Buffer_Offset-1)), (size_t)(Element_Size+1)); //Including the last byte in the header + Dump_SPS.push_back(Base64::encode(Data_Raw)); + } + break; + case 0x08 : //pic_parameter_set(); + if (spspps_Size != pic_parameter_sets.size() && !Status[IsFilled]) + { + std::string Data_Raw((const char*)(Buffer+(size_t)(Buffer_Offset-1)), (size_t)(Element_Size+1)); //Including the last byte in the header + Dump_PPS.push_back(Base64::encode(Data_Raw)); + } + break; + default: ; + } + } + #endif //MEDIAINFO_ADVANCED2 + //Trailing zeroes Element_Size=Element_Size_SaveBeforeZeroes; } @@ -1807,10 +1865,12 @@ void File_Avc::slice_header() int32u tempPicOrderCnt; if (Element_Code==5) //IdrPicFlag tempPicOrderCnt=0; - else if (nal_ref_idc) - tempPicOrderCnt=2*(FrameNumOffset+frame_num); else - tempPicOrderCnt=2*(FrameNumOffset+frame_num)-1; + { + tempPicOrderCnt=2*(FrameNumOffset+frame_num); + if (!nal_ref_idc && tempPicOrderCnt) //Note: if nal_ref_idc is 0, tempPicOrderCnt is not expected to be 0 but it may be the case with invalid streams + tempPicOrderCnt--; + } pic_order_cnt=tempPicOrderCnt; @@ -1993,8 +2053,10 @@ void File_Avc::slice_header() if ((Pos%2)==0) PictureTypes+=' '; } - if (!GOP_Detect(PictureTypes).empty() && !GA94_03_IsPresent) - Frame_Count_Valid=Frame_Count; //We have enough frames + #if defined(MEDIAINFO_DTVCCTRANSPORT_YES) + if (!GOP_Detect(PictureTypes).empty() && !GA94_03_IsPresent) + Frame_Count_Valid=Frame_Count; //We have enough frames + #endif //defined(MEDIAINFO_DTVCCTRANSPORT_YES) } } } @@ -2055,8 +2117,10 @@ void File_Avc::slice_header() Accept("AVC"); if (!Status[IsFilled]) { - if (!GA94_03_IsPresent && IFrame_Count>=8) - Frame_Count_Valid=Frame_Count; //We have enough frames + #if defined(MEDIAINFO_DTVCCTRANSPORT_YES) + if (!GA94_03_IsPresent && IFrame_Count>=8) + Frame_Count_Valid=Frame_Count; //We have enough frames + #endif //defined(MEDIAINFO_DTVCCTRANSPORT_YES) if (Frame_Count>=Frame_Count_Valid) { Fill("AVC"); @@ -2842,7 +2906,8 @@ void File_Avc::seq_parameter_set() //parsing int32u seq_parameter_set_id; - if (!seq_parameter_set_data(seq_parameter_sets, seq_parameter_set_id)) + seq_parameter_set_struct* Data_Item_New=seq_parameter_set_data(seq_parameter_set_id); + if (!Data_Item_New) return; Mark_1( ); size_t BS_bits=Data_BS_Remain()%8; @@ -2886,6 +2951,9 @@ void File_Avc::seq_parameter_set() NextCode_Clear(); NextCode_Add(0x08); + //Add + seq_parameter_set_data_Add(seq_parameter_sets, seq_parameter_set_id, Data_Item_New); + //Autorisation of other streams Streams[0x08].Searching_Payload=true; //pic_parameter_set if (Streams[0x07].ShouldDuplicate) @@ -2899,6 +2967,36 @@ void File_Avc::seq_parameter_set() FILLING_END(); } +void File_Avc::seq_parameter_set_data_Add(std::vector &Data, const int32u Data_id, seq_parameter_set_struct* Data_Item_New) +{ + //Creating Data + if (Data_id>=Data.size()) + Data.resize(Data_id+1); + std::vector::iterator Data_Item=Data.begin()+Data_id; + delete *Data_Item; *Data_Item=Data_Item_New; + + //Computing values (for speed) + size_t MaxNumber; + switch (Data_Item_New->pic_order_cnt_type) + { + case 0 : + MaxNumber=Data_Item_New->MaxPicOrderCntLsb; + break; + case 1 : + case 2 : + MaxNumber=Data_Item_New->MaxFrameNum*2; + break; + default: + MaxNumber = 0; + } + + if (MaxNumber>TemporalReferences_Reserved) + { + TemporalReferences.resize(4*MaxNumber); + TemporalReferences_Reserved=MaxNumber; + } +} + //--------------------------------------------------------------------------- // Packet "08" void File_Avc::pic_parameter_set() @@ -3134,10 +3232,10 @@ void File_Avc::subset_seq_parameter_set() //Parsing int32u subset_seq_parameter_set_id; - if (!seq_parameter_set_data(subset_seq_parameter_sets, subset_seq_parameter_set_id)) + seq_parameter_set_struct* Data_Item_New=seq_parameter_set_data(subset_seq_parameter_set_id); + if (!Data_Item_New) return; - std::vector::iterator subset_seq_parameter_sets_Item=subset_seq_parameter_sets.begin()+subset_seq_parameter_set_id; - if ((*subset_seq_parameter_sets_Item)->profile_idc==83 || (*subset_seq_parameter_sets_Item)->profile_idc==86) + if (Data_Item_New->profile_idc==83 || Data_Item_New->profile_idc==86) { //bool svc_vui_parameters_present_flag; seq_parameter_set_svc_extension(); @@ -3147,11 +3245,11 @@ void File_Avc::subset_seq_parameter_set() svc_vui_parameters_extension(); */ } - else if ((*subset_seq_parameter_sets_Item)->profile_idc==118 || (*subset_seq_parameter_sets_Item)->profile_idc==128) + else if (Data_Item_New->profile_idc==118 || Data_Item_New->profile_idc==128) { //bool mvc_vui_parameters_present_flag, additional_extension2_flag; Mark_1(); - seq_parameter_set_mvc_extension(subset_seq_parameter_set_id); + seq_parameter_set_mvc_extension(Data_Item_New); /* The rest is not yet implemented Get_SB (mvc_vui_parameters_present_flag, "mvc_vui_parameters_present_flag"); if (mvc_vui_parameters_present_flag) @@ -3175,6 +3273,9 @@ void File_Avc::subset_seq_parameter_set() NextCode_Clear(); NextCode_Add(0x08); + //Add + seq_parameter_set_data_Add(subset_seq_parameter_sets, subset_seq_parameter_set_id, Data_Item_New); + //Autorisation of other streams Streams[0x08].Searching_Payload=true; //pic_parameter_set if (Streams[0x0F].ShouldDuplicate) @@ -3213,7 +3314,7 @@ void File_Avc::slice_layer_extension(bool svc_extension_flag) //*************************************************************************** //--------------------------------------------------------------------------- -bool File_Avc::seq_parameter_set_data(std::vector &Data, int32u &Data_id) +File_Avc::seq_parameter_set_struct* File_Avc::seq_parameter_set_data(int32u &Data_id) { //Parsing seq_parameter_set_struct::vui_parameters_struct* vui_parameters_Item=NULL; @@ -3278,7 +3379,7 @@ bool File_Avc::seq_parameter_set_data(std::vector &Da if (num_ref_frames_in_pic_order_cnt_cycle>=256) { Trusted_IsNot("num_ref_frames_in_pic_order_cnt_cycle too high"); - return false; + return NULL; } for(int32u Pos=0; Pos &Da else if (pic_order_cnt_type > 2) { Trusted_IsNot("pic_order_cnt_type not supported"); - return false; + return NULL; } Get_UE (max_num_ref_frames, "max_num_ref_frames"); Skip_SB( "gaps_in_frame_num_value_allowed_flag"); @@ -3312,26 +3413,23 @@ bool File_Avc::seq_parameter_set_data(std::vector &Da { Trusted_IsNot("seq_parameter_set_id not valid"); delete (seq_parameter_set_struct::vui_parameters_struct*)vui_parameters_Item; - return false; //Problem, not valid + return NULL; //Problem, not valid } if (pic_order_cnt_type==0 && log2_max_pic_order_cnt_lsb_minus4>12) { Trusted_IsNot("log2_max_pic_order_cnt_lsb_minus4 not valid"); delete (seq_parameter_set_struct::vui_parameters_struct*)vui_parameters_Item; - return false; //Problem, not valid + return NULL; //Problem, not valid } if (log2_max_frame_num_minus4>12) { Trusted_IsNot("log2_max_frame_num_minus4 not valid"); delete (seq_parameter_set_struct::vui_parameters_struct*)vui_parameters_Item; - return false; //Problem, not valid + return NULL; //Problem, not valid } //Creating Data - if (Data_id>=Data.size()) - Data.resize(Data_id+1); - std::vector::iterator Data_Item=Data.begin()+Data_id; - delete *Data_Item; *Data_Item=new seq_parameter_set_struct( + return new seq_parameter_set_struct( vui_parameters_Item, pic_width_in_mbs_minus1, pic_height_in_map_units_minus1, @@ -3354,32 +3452,10 @@ bool File_Avc::seq_parameter_set_data(std::vector &Da frame_mbs_only_flag, mb_adaptive_frame_field_flag ); - - //Computing values (for speed) - size_t MaxNumber; - switch (pic_order_cnt_type) - { - case 0 : - MaxNumber=(*Data_Item)->MaxPicOrderCntLsb; - break; - case 1 : - case 2 : - MaxNumber=(*Data_Item)->MaxFrameNum*2; - break; - default: - MaxNumber = 0; - } - - if (MaxNumber>TemporalReferences_Reserved) - { - TemporalReferences.resize(4*MaxNumber); - TemporalReferences_Reserved=MaxNumber; - } FILLING_ELSE(); delete vui_parameters_Item; //vui_parameters_Item=NULL; - return false; + return NULL; FILLING_END(); - return true; } //--------------------------------------------------------------------------- @@ -3602,7 +3678,7 @@ void File_Avc::svc_vui_parameters_extension() } //--------------------------------------------------------------------------- -void File_Avc::seq_parameter_set_mvc_extension(int32u subset_seq_parameter_sets_id) +void File_Avc::seq_parameter_set_mvc_extension(seq_parameter_set_struct* Data_Item) { //Parsing Element_Begin1("seq_parameter_set_mvc_extension"); @@ -3612,7 +3688,7 @@ void File_Avc::seq_parameter_set_mvc_extension(int32u subset_seq_parameter_sets_ Element_End0(); FILLING_BEGIN(); - subset_seq_parameter_sets[subset_seq_parameter_sets_id]->num_views_minus1 = (int16u)num_views_minus1; + Data_Item->num_views_minus1 = (int16u)num_views_minus1; FILLING_END(); } diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.h b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.h index 2bb03f90e22..0b1dca9446d 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.h @@ -411,9 +411,10 @@ private : void slice_layer_extension(bool svc_extension_flag); //Packets - SubElements - bool seq_parameter_set_data(vector &Data, int32u &Data_id); + seq_parameter_set_struct* seq_parameter_set_data(int32u &Data_id); + void seq_parameter_set_data_Add(vector &Data, const int32u Data_id, seq_parameter_set_struct* Data_Item_New); void seq_parameter_set_svc_extension(); - void seq_parameter_set_mvc_extension(int32u subset_seq_parameter_sets_id); + void seq_parameter_set_mvc_extension(seq_parameter_set_struct* Data_Item); void scaling_list(int32u ScalingList_Size); void vui_parameters(seq_parameter_set_struct::vui_parameters_struct* &vui_parameters_Item); void svc_vui_parameters_extension(); @@ -544,6 +545,10 @@ private : int8u nal_ref_idc; int8u FrameRate_Divider; bool FirstPFrameInGop_IsParsed; + #if MEDIAINFO_ADVANCED2 + std::vector Dump_SPS; + std::vector Dump_PPS; + #endif //MEDIAINFO_ADVANCED2 //Helpers string GOP_Detect (string PictureTypes); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp index 0f276c03b3f..c52c7eb5b73 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp @@ -63,6 +63,16 @@ const int8u Hevc_SubHeightC[]= 1, }; +//--------------------------------------------------------------------------- +const char* Hevc_tier_flag(bool tier_flag) +{ + switch (tier_flag) + { + case true : return "High"; + default : return "Main"; + } +} + //--------------------------------------------------------------------------- const char* Hevc_profile_idc(int32u profile_idc) { @@ -72,7 +82,7 @@ const char* Hevc_profile_idc(int32u profile_idc) case 1 : return "Main"; case 2 : return "Main 10"; case 3 : return "Main Still"; - default : return "Unknown"; + default : return ""; } } @@ -214,7 +224,9 @@ void File_Hevc::Streams_Fill(std::vector::iterator se { if ((*seq_parameter_set_Item)->profile_idc) Profile+=__T('@'); - Profile+=__T('L')+Ztring().From_Number(((float)(*seq_parameter_set_Item)->level_idc)/30, 1); + Profile+=__T('L')+Ztring().From_Number(((float)(*seq_parameter_set_Item)->level_idc)/30, ((*seq_parameter_set_Item)->level_idc%10)?1:0); + Profile+=__T('@'); + Profile+=Ztring().From_Local(Hevc_tier_flag((*seq_parameter_set_Item)->tier_flag)); } } Fill(Stream_Video, 0, Video_Format_Profile, Profile); @@ -1296,6 +1308,7 @@ void File_Hevc::seq_parameter_set() 0, 0, 0, + 0, false, false, false @@ -1418,6 +1431,7 @@ void File_Hevc::seq_parameter_set() delete *Data_Item; *Data_Item=new seq_parameter_set_struct( vui_parameters_Item, profile_space, + tier_flag, profile_idc, level_idc, pic_width_in_luma_samples, @@ -1907,7 +1921,7 @@ void File_Hevc::sei_message_user_data_unregistered_x265(int32u payloadSize) Element_Begin1("options"); size_t Options_Pos_Before=Data_Pos_Before; Encoded_Library_Settings.clear(); - do + while (Options_Pos_Before!=Data.size()) { size_t Options_Pos=Data.find(__T(" "), Options_Pos_Before); if (Options_Pos==std::string::npos) @@ -1915,7 +1929,7 @@ void File_Hevc::sei_message_user_data_unregistered_x265(int32u payloadSize) Ztring option; Get_Local (Options_Pos-Options_Pos_Before, option, "option"); Options_Pos_Before=Options_Pos; - do + while (Options_Pos_Before!=Data.size()) { Ztring Separator; Peek_Local(1, Separator); @@ -1927,7 +1941,6 @@ void File_Hevc::sei_message_user_data_unregistered_x265(int32u payloadSize) else break; } - while (Options_Pos_Before!=Data.size()); //Filling if (option!=__T("options:") && !(!option.empty() && option[0]>=__T('0') && option[0]<=__T('9')) && option.find(__T("fps="))!=0 && option.find(__T("bitdepth="))!=0) //Ignoring redundant information e.g. width, height, frame rate, bit depth @@ -1937,7 +1950,6 @@ void File_Hevc::sei_message_user_data_unregistered_x265(int32u payloadSize) Encoded_Library_Settings+=option; } } - while (Options_Pos_Before!=Data.size()); Element_End0(); } else @@ -2089,7 +2101,7 @@ void File_Hevc::profile_tier_level(int8u maxNumSubLayersMinus1) //Parsing std::vectorsub_layer_profile_present_flags, sub_layer_level_present_flags; Get_S1 (2, profile_space, "general_profile_space"); - Skip_SB( "general_tier_flag"); + Get_SB ( tier_flag, "general_tier_flag"); Get_S1 (5, profile_idc, "general_profile_idc"); Element_Begin1("general_profile_compatibility_flags"); for (int8u profile_pos=0; profile_pos<32; profile_pos++) @@ -2470,11 +2482,11 @@ void File_Hevc::VPS_SPS_PPS() int8u chromaFormat, bitDepthLumaMinus8, bitDepthChromaMinus8; int8u general_profile_space, general_profile_idc, general_level_idc; int8u numOfArrays, constantFrameRate, numTemporalLayers; - bool temporalIdNested; + bool general_tier_flag, temporalIdNested; Get_B1 (configurationVersion, "configurationVersion"); BS_Begin(); Get_S1 (2, general_profile_space, "general_profile_space"); - Skip_SB( "general_tier_flag"); + Get_SB ( general_tier_flag, "general_tier_flag"); Get_S1 (5, general_profile_idc, "general_profile_idc"); BS_End(); Get_B4 (general_profile_compatibility_flags, "general_profile_compatibility_flags"); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.h b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.h index f58a3d94a4e..e47d29caf15 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.h @@ -225,6 +225,7 @@ private : size_t AnnexB_Buffer_Size; #endif //MEDIAINFO_DEMUX int32u profile_space; + bool tier_flag; int32u profile_idc; int32u level_idc; int32u pic_width_in_luma_samples; @@ -250,7 +251,7 @@ private : int8u ChromaArrayType() {return separate_colour_plane_flag?0:chroma_format_idc;} //Constructor/Destructor - seq_parameter_set_struct(vui_parameters_struct* vui_parameters_, int32u profile_space_, int32u profile_idc_, int32u level_idc_, int32u pic_width_in_luma_samples_, int32u pic_height_in_luma_samples_, int32u conf_win_left_offset_, int32u conf_win_right_offset_, int32u conf_win_top_offset_, int32u conf_win_bottom_offset_, int8u video_parameter_set_id_, int8u chroma_format_idc_, bool separate_colour_plane_flag_, int8u log2_max_pic_order_cnt_lsb_minus4_, int8u bit_depth_luma_minus8_, int8u bit_depth_chroma_minus8_, bool general_progressive_source_flag_, bool general_interlaced_source_flag_, bool general_frame_only_constraint_flag_) + seq_parameter_set_struct(vui_parameters_struct* vui_parameters_, int32u profile_space_, bool tier_flag_, int32u profile_idc_, int32u level_idc_, int32u pic_width_in_luma_samples_, int32u pic_height_in_luma_samples_, int32u conf_win_left_offset_, int32u conf_win_right_offset_, int32u conf_win_top_offset_, int32u conf_win_bottom_offset_, int8u video_parameter_set_id_, int8u chroma_format_idc_, bool separate_colour_plane_flag_, int8u log2_max_pic_order_cnt_lsb_minus4_, int8u bit_depth_luma_minus8_, int8u bit_depth_chroma_minus8_, bool general_progressive_source_flag_, bool general_interlaced_source_flag_, bool general_frame_only_constraint_flag_) : vui_parameters(vui_parameters_), #if MEDIAINFO_DEMUX @@ -259,6 +260,7 @@ private : #endif //MEDIAINFO_DEMUX profile_space(profile_space_), profile_idc(profile_idc_), + tier_flag(tier_flag_), level_idc(level_idc_), pic_width_in_luma_samples(pic_width_in_luma_samples_), pic_height_in_luma_samples(pic_height_in_luma_samples_), @@ -436,6 +438,7 @@ private : int8u profile_space; int8u profile_idc; int8u level_idc; + bool tier_flag; bool general_progressive_source_flag; bool general_interlaced_source_flag; bool general_frame_only_constraint_flag; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpeg4v.cpp b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpeg4v.cpp index 785e9d15f94..67c1f7afc8b 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpeg4v.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpeg4v.cpp @@ -280,11 +280,11 @@ bool File_Mpeg4v::Synched_Test() if (!Header_Parser_QuickSearch()) return false; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE bool RandomAccess=Buffer[Buffer_Offset+3]==0xB0; //SequenceHeader if (RandomAccess) Ibi_Add(); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE //We continue return true; @@ -581,10 +581,10 @@ void File_Mpeg4v::Streams_Finish() Fill(Stream_Video, 0, Video_Duration, Duration); } - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if (fixed_vop_time_increment) Ibi_Stream_Finish(vop_time_increment_resolution, fixed_vop_time_increment); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** // Buffer - Demux diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.cpp b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.cpp index a901dee25b1..46b5cc35ef0 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.cpp @@ -1647,7 +1647,7 @@ void File_Mpegv::Streams_Finish() } #endif //defined(MEDIAINFO_AFDBARDATA_YES) - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE int64u Numerator=0, Denominator=0; switch (frame_rate_code) { @@ -1667,7 +1667,7 @@ void File_Mpegv::Streams_Finish() Denominator*=frame_rate_extension_d+1; Ibi_Stream_Finish(Numerator, Denominator); } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** @@ -1694,7 +1694,7 @@ bool File_Mpegv::Synched_Test() if (!Header_Parser_QuickSearch()) return false; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE if ((Ibi_SliceParsed && (Buffer[Buffer_Offset+3]==0x00)) || Buffer[Buffer_Offset+3]==0xB3) // picture_start without sequence_header or sequence_header { if (Buffer_Offset+6>Buffer_Size) @@ -1705,7 +1705,7 @@ bool File_Mpegv::Synched_Test() Ibi_SliceParsed=false; } - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE //We continue return true; @@ -1774,9 +1774,9 @@ void File_Mpegv::Synched_Init() tc=0; IFrame_IsParsed=false; IFrame_Count=0; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Ibi_SliceParsed=true; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if MEDIAINFO_ADVANCED Config_VariableGopDetection_Occurences=MediaInfoLib::Config.VariableGopDetection_Occurences_Get(); Config_VariableGopDetection_GiveUp=MediaInfoLib::Config.VariableGopDetection_GiveUp_Get(); @@ -1960,9 +1960,9 @@ void File_Mpegv::Read_Buffer_Unsynched() PTS_LastIFrame=(int64u)-1; IFrame_IsParsed=false; picture_coding_types_Current.clear(); - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Ibi_SliceParsed=true; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if MEDIAINFO_MACROBLOCKS if (Macroblocks_Parse) { @@ -2184,7 +2184,7 @@ void File_Mpegv::Detect_EOF() Streams[0x00].Searching_Payload=GA94_03_IsPresent || Cdp_IsPresent; Streams[0xB2].Searching_Payload=GA94_03_IsPresent || CC___IsPresent || Scte_IsPresent; Streams[0xB3].Searching_Payload=GA94_03_IsPresent || Cdp_IsPresent; - #endif defined(MEDIAINFO_DTVCCTRANSPORT_YES) || defined(MEDIAINFO_SCTE20_YES) || (defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)) + #endif //defined(MEDIAINFO_DTVCCTRANSPORT_YES) || defined(MEDIAINFO_SCTE20_YES) || (defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)) return; } @@ -2707,9 +2707,9 @@ void File_Mpegv::slice_start() } #endif //MEDIAINFO_DEMUX - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE Ibi_SliceParsed=true; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if MEDIAINFO_MACROBLOCKS if (Macroblocks_Parse) { diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.h b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.h index ac2c855bfce..c9b54248aea 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.h @@ -340,9 +340,9 @@ private : vlc_fast coded_block_pattern; #endif //MEDIAINFO_MACROBLOCKS - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE bool Ibi_SliceParsed; - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE #if MEDIAINFO_ADVANCED int64u InitDataNotRepeated; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc1.cpp b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc1.cpp index 69a97c3352b..1aa639b63c8 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc1.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc1.cpp @@ -349,7 +349,7 @@ void File_Vc1::Streams_Finish() if (PTS_End>PTS_Begin) Fill(Stream_Video, 0, Video_Duration, float64_int64s(((float64)(PTS_End-PTS_Begin))/1000000)); - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE int64u Numerator=0, Denominator=0; if (framerate_present) { @@ -366,7 +366,7 @@ void File_Vc1::Streams_Finish() } if (Numerator) Ibi_Stream_Finish(Numerator, Denominator); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE } //*************************************************************************** @@ -414,11 +414,11 @@ bool File_Vc1::Synched_Test() if (!Header_Parser_QuickSearch()) return false; - #if MEDIAINFO_IBI + #if MEDIAINFO_IBIUSAGE bool RandomAccess=Buffer[Buffer_Offset+3]==0x0F; //SequenceHeader if (RandomAccess) Ibi_Add(); - #endif //MEDIAINFO_IBI + #endif //MEDIAINFO_IBIUSAGE //We continue return true; diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.cpp b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.cpp index 6be29f1a706..fdf0c41c81c 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.cpp +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.cpp @@ -46,6 +46,10 @@ const bool Vc3_FromCID_IsSupported (int32u CompressionID) case 1251 : case 1252 : case 1253 : + case 1256 : + case 1258 : + case 1259 : + case 1260 : return true; default : return false; } @@ -67,6 +71,10 @@ const int32u Vc3_CompressedFrameSize(int32u CompressionID) case 1251 : return 458752; case 1252 : return 303104; case 1253 : return 188416; + case 1256 : return 1835008; + case 1258 : return 212992; + case 1259 : return 417792; + case 1260 : return 417792; default : return 0; } }; @@ -87,11 +95,23 @@ const int8u Vc3_SBD_FromCID (int32u CompressionID) { switch (CompressionID) { + case 1237 : + case 1238 : + case 1242 : + case 1243 : + case 1251 : + case 1252 : + case 1253 : + case 1258 : + case 1259 : + case 1260 : + return 8; case 1235 : case 1241 : case 1250 : + case 1256 : return 10; - default : return 8; + default : return 0; } } @@ -132,11 +152,19 @@ const char* Vc3_SST_FromCID (int32u CompressionID) { switch (CompressionID) { + case 1235 : + case 1237 : + case 1238 : + case 1250 : + case 1251 : + case 1252 : + case 1253 : + return Vc3_SST[0]; case 1241 : case 1242 : case 1243 : return Vc3_SST[1]; - default : return Vc3_SST[0]; + default : return ""; } } @@ -149,7 +177,15 @@ const int16u Vc3_SPL_FromCID (int32u CompressionID) case 1251 : case 1252 : return 1280; - default : return 1920; + case 1235 : + case 1237 : + case 1238 : + case 1241 : + case 1242 : + case 1243 : + case 1253 : + return 1920; + default : return 0; } } @@ -162,10 +198,88 @@ const int16u Vc3_ALPF_PerFrame_FromCID (int32u CompressionID) case 1251 : case 1252 : return 720; - default : return 1080; + case 1235 : + case 1237 : + case 1238 : + case 1241 : + case 1242 : + case 1243 : + case 1253 : + return 1080; + default : return 0; } } +//--------------------------------------------------------------------------- +const char* Vc3_CLR[8]= +{ + "YUV", + "RGB", + "", + "", + "", + "", + "", + "", +}; + +//--------------------------------------------------------------------------- +const char* Vc3_CLR_FromCID (int32u CompressionID) +{ + switch (CompressionID) + { + case 1235 : + case 1237 : + case 1238 : + case 1241 : + case 1242 : + case 1243 : + case 1250 : + case 1251 : + case 1252 : + case 1253 : + case 1258 : + case 1259 : + case 1260 : + return Vc3_CLR[0]; + case 1256 : + return Vc3_CLR[1]; + default : return ""; + } +}; + +//--------------------------------------------------------------------------- +const char* Vc3_SSC[2]= +{ + "4:2:2", + "", // 4:4:4 +}; + +//--------------------------------------------------------------------------- +const char* Vc3_SSC_FromCID (int32u CompressionID) +{ + switch (CompressionID) + { + case 1235 : + case 1237 : + case 1238 : + case 1241 : + case 1242 : + case 1243 : + case 1250 : + case 1251 : + case 1252 : + case 1253 : + case 1258 : + case 1259 : + case 1260 : + return Vc3_SSC[0]; + case 1256 : + return Vc3_SSC[1]; + default : return ""; + } +}; + //*************************************************************************** // Constructor/Destructor //*************************************************************************** @@ -182,7 +296,6 @@ File_Vc3::File_Vc3() FrameRate=0; //Temp - Data_ToParse=0; FFC_FirstFrame=(int8u)-1; } @@ -197,16 +310,20 @@ void File_Vc3::Streams_Fill() Stream_Prepare(Stream_Video); Fill(Stream_Video, 0, Video_Format, "VC-3"); Fill(Stream_Video, 0, Video_BitRate_Mode, "CBR"); - if (FrameRate) + if (FrameRate && Vc3_CompressedFrameSize(CID)) Fill(Stream_Video, 0, Video_BitRate, Vc3_CompressedFrameSize(CID)*8*FrameRate, 0); + Fill(Stream_Video, 0, Video_Format_Version, __T("Version ")+Ztring::ToZtring(HVN)); if (Vc3_FromCID_IsSupported(CID)) { - Fill(Stream_Video, 0, Video_Width, Vc3_SPL_FromCID(CID)); - Fill(Stream_Video, 0, Video_Height, Vc3_ALPF_PerFrame_FromCID(CID)); - Fill(Stream_Video, 0, Video_BitDepth, Vc3_SBD_FromCID(CID)); + if (Vc3_SPL_FromCID(CID)) + Fill(Stream_Video, 0, Video_Width, Vc3_SPL_FromCID(CID)); + if (Vc3_ALPF_PerFrame_FromCID(CID)) + Fill(Stream_Video, 0, Video_Height, Vc3_ALPF_PerFrame_FromCID(CID)); + if (Vc3_SBD_FromCID(CID)) + Fill(Stream_Video, 0, Video_BitDepth, Vc3_SBD_FromCID(CID)); Fill(Stream_Video, 0, Video_ScanType, Vc3_SST_FromCID(CID)); - Fill(Stream_Video, 0, Video_ColorSpace, "YUV"); - Fill(Stream_Video, 0, Video_ChromaSubsampling, "4:2:2"); + Fill(Stream_Video, 0, Video_ColorSpace, Vc3_CLR_FromCID(CID)); + Fill(Stream_Video, 0, Video_ChromaSubsampling, Vc3_SSC_FromCID(CID)); } else { @@ -214,6 +331,8 @@ void File_Vc3::Streams_Fill() Fill(Stream_Video, 0, Video_Height, ALPF*(SST?2:1)); Fill(Stream_Video, 0, Video_BitDepth, Vc3_SBD(SBD)); Fill(Stream_Video, 0, Video_ScanType, Vc3_SST[SST]); + Fill(Stream_Video, 0, Video_ColorSpace, Vc3_CLR[SSC]); + Fill(Stream_Video, 0, Video_ChromaSubsampling, Vc3_SSC[CLR]); } if (FFC_FirstFrame!=(int8u)-1) Fill(Stream_Video, 0, Video_ScanOrder, Vc3_FFC_ScanOrder[FFC_FirstFrame]); @@ -231,7 +350,7 @@ bool File_Vc3::Synchronize() || Buffer[Buffer_Offset+1]!=0x00 || Buffer[Buffer_Offset+2]!=0x02 || Buffer[Buffer_Offset+3]!=0x80 - || Buffer[Buffer_Offset+4]!=0x01)) + || Buffer[Buffer_Offset+4]==0x00)) { Buffer_Offset+=2; while (Buffer_OffsetBuffer_Size && File_Offset+Buffer_Size!=File_Size) @@ -329,7 +457,17 @@ void File_Vc3::Header_Parse() int32u CompressionID=BigEndian2int32u(Buffer+Buffer_Offset+0x28); Header_Fill_Code(0, "Frame"); - Header_Fill_Size(Vc3_CompressedFrameSize(CompressionID)); + size_t Size=Vc3_CompressedFrameSize(CompressionID); + if (!Size) + { + if (!IsSub) + { + Reject(); + return; + } + Size=Buffer_Size; //Hoping that the packet is complete. TODO: add a flag in the container parser saying if the packet is complete + } + Header_Fill_Size(Size); } //--------------------------------------------------------------------------- @@ -344,21 +482,23 @@ void File_Vc3::Data_Parse() { Element_Info1(Frame_Count+1); HeaderPrefix(); - CodingControlA(); - Skip_XX(16, "Reserved"); - ImageGeometry(); - Skip_XX( 5, "Reserved"); - CompressionID(); - CodingControlB(); - Skip_XX( 3, "Reserved"); - TimeCode(); - - Skip_XX(640-Element_Offset, "ToDo"); + if (HVN <= 2) + { + CodingControlA(); + Skip_XX(16, "Reserved"); + ImageGeometry(); + Skip_XX( 5, "Reserved"); + CompressionID(); + CodingControlB(); + Skip_XX( 3, "Reserved"); + TimeCode(); + + Skip_XX(640-Element_Offset, "ToDo"); + } Skip_XX(Element_Size-Element_Offset, "Data"); } FILLING_BEGIN(); - Data_ToParse-=Buffer_Size-(size_t)Buffer_Offset; Frame_Count++; if (Frame_Count_NotParsedIncluded!=(int64u)-1) Frame_Count_NotParsedIncluded++; @@ -389,12 +529,13 @@ void File_Vc3::HeaderPrefix() { //Parsing Element_Begin1("Header Prefix"); - int64u Data; - Get_B5 (Data, "Contents"); + int32u Data; + Get_B4 (Data, "Magic number"); + Get_B1 (HVN, "HVN: Header Version Number"); Element_End0(); FILLING_BEGIN(); - if (Data==0x0000028001LL) + if (Data==0x00000280LL) Accept("VC-3"); else Reject("VC-3"); @@ -419,8 +560,11 @@ void File_Vc3::CodingControlA() Mark_1(); Mark_0(); - Mark_0(); - Get_SB ( CRCF, "CRC flag"); + if (HVN==1) + Mark_0(); + else + Skip_SB( "MACF: Macroblock Adaptive Control Flag"); + Get_SB ( CRCF, "CRC flag"); Mark_0(); Mark_0(); Mark_0(); @@ -488,9 +632,6 @@ void File_Vc3::CompressionID() FILLING_BEGIN(); CID=Data; - Data_ToParse=Vc3_CompressedFrameSize(Data); - if (Data_ToParse==0) - Reject("VC-3"); FILLING_END(); } @@ -502,13 +643,29 @@ void File_Vc3::CodingControlB() BS_Begin(); Info_S1(1, FFE, "Field/Frame Count"); Param_Info1(Vc3_FFE[FFE]); + if (HVN==1) + { + Mark_0(); + SSC=false; + } + else + { + Get_SB (SSC, "SSC: Sub Sampling Control"); Param_Info1(Vc3_SSC[SSC]); + } Mark_0(); Mark_0(); Mark_0(); - Mark_0(); - Mark_0(); - Mark_0(); - Mark_0(); + if (HVN==1) + { + Mark_0(); + Mark_0(); + Mark_0(); + CLR=0; + } + else + { + Get_S1 (3, CLR, "CLR: Color"); Param_Info1(Vc3_CLR[CLR]); + } BS_End(); Element_End0(); diff --git a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.h b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.h index 336e592793a..9627ca6e47c 100644 --- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.h +++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.h @@ -66,14 +66,16 @@ private : void MacroblockScanIndices(); //Temp - int64u Data_ToParse; int32u CID; bool CRCF; int16u ALPF; int16u SPL; int8u SBD; int8u FFC_FirstFrame; + int8u HVN; + int8u CLR; bool SST; + bool SSC; }; } //NameSpace diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj index b0b224343fc..a824e93c31a 100644 --- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj +++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj @@ -69,28 +69,28 @@ .;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories) - _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) + _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;MEDIAINFO_EXPORT_NO;MEDIAINFO_TEXT_YES;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) MediaInfo/PreComp.h .;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories) - _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) + _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;MEDIAINFO_EXPORT_NO;MEDIAINFO_TEXT_YES;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) MediaInfo/PreComp.h .;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories) - _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) + _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;MEDIAINFO_EXPORT_NO;MEDIAINFO_TEXT_YES;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) MediaInfo/PreComp.h .;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories) - _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) + _LIB;CURL_STATICLIB;MEDIAINFO_ADVANCED_NO;MEDIAINFO_ARCHIVE_NO;MEDIAINFO_DEMUX_NO;MEDIAINFO_DVDIF_ANALYZE_NO;MEDIAINFO_EVENTS_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;MEDIAINFO_MD5_NO;MEDIAINFO_MINIMAL_YES;MEDIAINFO_MPEGTS_DUPLICATE_NO;MEDIAINFO_N19_NO;MEDIAINFO_OTHERTEXT_NO;MEDIAINFO_TRACE_NO;MEDIAINFO_READTHREAD_NO;MEDIAINFO_EXPORT_NO;MEDIAINFO_TEXT_YES;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) MediaInfo/PreComp.h @@ -138,6 +138,7 @@ + @@ -184,6 +185,7 @@ + @@ -208,6 +210,10 @@ + + + + @@ -318,6 +324,7 @@ + @@ -368,6 +375,7 @@ + @@ -399,6 +407,8 @@ + + Create diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters index 7547f8c9500..2e1a093660a 100644 --- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters +++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters @@ -197,6 +197,9 @@ Header Files\Image + + Header Files\Image + Header Files\Image @@ -233,6 +236,18 @@ Header Files\Multiple + + Header Files\Multiple + + + Header Files\Multiple + + + Header Files\Multiple + + + Header Files\Multiple + Header Files\Multiple @@ -500,6 +515,9 @@ Header Files\Audio + + Header Files\Audio + Header Files\Audio @@ -775,6 +793,9 @@ Source Files\Image + + Source Files\Image + Source Files\Image @@ -811,6 +832,12 @@ Source Files\Multiple + + Source Files\Multiple + + + Source Files\Multiple + Source Files\Multiple @@ -1111,6 +1138,9 @@ Source Files\Audio + + Source Files\Audio + Source Files\Audio diff --git a/src/thirdparty/SoundTouch/include/STTypes.h b/src/thirdparty/SoundTouch/include/STTypes.h index a961eb2e7ab..238ebbc1a1f 100644 --- a/src/thirdparty/SoundTouch/include/STTypes.h +++ b/src/thirdparty/SoundTouch/include/STTypes.h @@ -8,10 +8,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-04-06 15:57:21 +0000 (Sun, 06 Apr 2014) $ +// Last changed : $Date: 2015-05-18 15:25:07 +0000 (Mon, 18 May 2015) $ // File revision : $Revision: 3 $ // -// $Id: STTypes.h 195 2014-04-06 15:57:21Z oparviai $ +// $Id: STTypes.h 215 2015-05-18 15:25:07Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -75,7 +75,7 @@ namespace soundtouch /// runtime performance so recommendation is to keep this off. // #define USE_MULTICH_ALWAYS - #if (defined(__SOFTFP__)) + #if (defined(__SOFTFP__) && defined(ANDROID)) // For Android compilation: Force use of Integer samples in case that // compilation uses soft-floating point emulation - soft-fp is way too slow #undef SOUNDTOUCH_FLOAT_SAMPLES @@ -176,6 +176,7 @@ namespace soundtouch #else // use c++ standard exceptions #include + #include #define ST_THROW_RT_ERROR(x) {throw std::runtime_error(x);} #endif diff --git a/src/thirdparty/SoundTouch/include/SoundTouch.h b/src/thirdparty/SoundTouch/include/SoundTouch.h index 02fde4937ae..e4a0b416509 100644 --- a/src/thirdparty/SoundTouch/include/SoundTouch.h +++ b/src/thirdparty/SoundTouch/include/SoundTouch.h @@ -41,10 +41,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-04-06 15:57:21 +0000 (Sun, 06 Apr 2014) $ +// Last changed : $Date: 2015-05-18 15:28:41 +0000 (Mon, 18 May 2015) $ // File revision : $Revision: 4 $ // -// $Id: SoundTouch.h 195 2014-04-06 15:57:21Z oparviai $ +// $Id: SoundTouch.h 216 2015-05-18 15:28:41Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -79,10 +79,10 @@ namespace soundtouch { /// Soundtouch library version string -#define SOUNDTOUCH_VERSION "1.8.0" +#define SOUNDTOUCH_VERSION "1.9.0" /// SoundTouch library version id -#define SOUNDTOUCH_VERSION_ID (10800) +#define SOUNDTOUCH_VERSION_ID (10900) // // Available setting IDs for the 'setSetting' & 'get_setting' functions: diff --git a/src/thirdparty/SoundTouch/source/BPMDetect.cpp b/src/thirdparty/SoundTouch/source/BPMDetect.cpp index be2478388f7..b77898ac888 100644 --- a/src/thirdparty/SoundTouch/source/BPMDetect.cpp +++ b/src/thirdparty/SoundTouch/source/BPMDetect.cpp @@ -26,10 +26,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2012-08-30 19:45:25 +0000 (Thu, 30 Aug 2012) $ +// Last changed : $Date: 2015-02-21 21:24:29 +0000 (Sat, 21 Feb 2015) $ // File revision : $Revision: 4 $ // -// $Id: BPMDetect.cpp 149 2012-08-30 19:45:25Z oparviai $ +// $Id: BPMDetect.cpp 202 2015-02-21 21:24:29Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -226,6 +226,7 @@ void BPMDetect::updateXCorr(int process_samples) assert(buffer->numSamples() >= (uint)(process_samples + windowLen)); pBuffer = buffer->ptrBegin(); + #pragma omp parallel for for (offs = windowStart; offs < windowLen; offs ++) { LONG_SAMPLETYPE sum; diff --git a/src/thirdparty/SoundTouch/source/FIRFilter.cpp b/src/thirdparty/SoundTouch/source/FIRFilter.cpp index abdf8303859..6a6f4638498 100644 --- a/src/thirdparty/SoundTouch/source/FIRFilter.cpp +++ b/src/thirdparty/SoundTouch/source/FIRFilter.cpp @@ -11,10 +11,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-10-08 15:26:57 +0000 (Wed, 08 Oct 2014) $ +// Last changed : $Date: 2015-02-21 21:24:29 +0000 (Sat, 21 Feb 2015) $ // File revision : $Revision: 4 $ // -// $Id: FIRFilter.cpp 201 2014-10-08 15:26:57Z oparviai $ +// $Id: FIRFilter.cpp 202 2015-02-21 21:24:29Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -61,22 +61,18 @@ FIRFilter::FIRFilter() length = 0; lengthDiv8 = 0; filterCoeffs = NULL; - sum = NULL; - sumsize = 0; } FIRFilter::~FIRFilter() { delete[] filterCoeffs; - delete[] sum; } // Usual C-version of the filter routine for stereo sound uint FIRFilter::evaluateFilterStereo(SAMPLETYPE *dest, const SAMPLETYPE *src, uint numSamples) const { - uint i, j, end; - LONG_SAMPLETYPE suml, sumr; + int j, end; #ifdef SOUNDTOUCH_FLOAT_SAMPLES // when using floating point samples, use a scaler instead of a divider // because division is much slower operation than multiplying. @@ -90,9 +86,12 @@ uint FIRFilter::evaluateFilterStereo(SAMPLETYPE *dest, const SAMPLETYPE *src, ui end = 2 * (numSamples - length); + #pragma omp parallel for for (j = 0; j < end; j += 2) { const SAMPLETYPE *ptr; + LONG_SAMPLETYPE suml, sumr; + uint i; suml = sumr = 0; ptr = src + j; @@ -133,28 +132,31 @@ uint FIRFilter::evaluateFilterStereo(SAMPLETYPE *dest, const SAMPLETYPE *src, ui // Usual C-version of the filter routine for mono sound uint FIRFilter::evaluateFilterMono(SAMPLETYPE *dest, const SAMPLETYPE *src, uint numSamples) const { - uint i, j, end; - LONG_SAMPLETYPE sum; + int j, end; #ifdef SOUNDTOUCH_FLOAT_SAMPLES // when using floating point samples, use a scaler instead of a divider // because division is much slower operation than multiplying. double dScaler = 1.0 / (double)resultDivider; #endif - assert(length != 0); end = numSamples - length; + #pragma omp parallel for for (j = 0; j < end; j ++) { + const SAMPLETYPE *pSrc = src + j; + LONG_SAMPLETYPE sum; + uint i; + sum = 0; for (i = 0; i < length; i += 4) { // loop is unrolled by factor of 4 here for efficiency - sum += src[i + 0] * filterCoeffs[i + 0] + - src[i + 1] * filterCoeffs[i + 1] + - src[i + 2] * filterCoeffs[i + 2] + - src[i + 3] * filterCoeffs[i + 3]; + sum += pSrc[i + 0] * filterCoeffs[i + 0] + + pSrc[i + 1] * filterCoeffs[i + 1] + + pSrc[i + 2] * filterCoeffs[i + 2] + + pSrc[i + 3] * filterCoeffs[i + 3]; } #ifdef SOUNDTOUCH_INTEGER_SAMPLES sum >>= resultDivFactor; @@ -164,7 +166,6 @@ uint FIRFilter::evaluateFilterMono(SAMPLETYPE *dest, const SAMPLETYPE *src, uint sum *= dScaler; #endif // SOUNDTOUCH_INTEGER_SAMPLES dest[j] = (SAMPLETYPE)sum; - src ++; } return end; } @@ -172,15 +173,7 @@ uint FIRFilter::evaluateFilterMono(SAMPLETYPE *dest, const SAMPLETYPE *src, uint uint FIRFilter::evaluateFilterMulti(SAMPLETYPE *dest, const SAMPLETYPE *src, uint numSamples, uint numChannels) { - uint i, j, end, c; - - if (sumsize < numChannels) - { - // allocate large enough array for keeping sums - sumsize = numChannels; - delete[] sum; - sum = new LONG_SAMPLETYPE[numChannels]; - } + int j, end; #ifdef SOUNDTOUCH_FLOAT_SAMPLES // when using floating point samples, use a scaler instead of a divider @@ -192,17 +185,21 @@ uint FIRFilter::evaluateFilterMulti(SAMPLETYPE *dest, const SAMPLETYPE *src, uin assert(src != NULL); assert(dest != NULL); assert(filterCoeffs != NULL); + assert(numChannels < 16); end = numChannels * (numSamples - length); - for (c = 0; c < numChannels; c ++) - { - sum[c] = 0; - } - + #pragma omp parallel for for (j = 0; j < end; j += numChannels) { const SAMPLETYPE *ptr; + LONG_SAMPLETYPE sums[16]; + uint c, i; + + for (c = 0; c < numChannels; c ++) + { + sums[c] = 0; + } ptr = src + j; @@ -211,7 +208,7 @@ uint FIRFilter::evaluateFilterMulti(SAMPLETYPE *dest, const SAMPLETYPE *src, uin SAMPLETYPE coef=filterCoeffs[i]; for (c = 0; c < numChannels; c ++) { - sum[c] += ptr[0] * coef; + sums[c] += ptr[0] * coef; ptr ++; } } @@ -219,13 +216,11 @@ uint FIRFilter::evaluateFilterMulti(SAMPLETYPE *dest, const SAMPLETYPE *src, uin for (c = 0; c < numChannels; c ++) { #ifdef SOUNDTOUCH_INTEGER_SAMPLES - sum[c] >>= resultDivFactor; + sums[c] >>= resultDivFactor; #else - sum[c] *= dScaler; + sums[c] *= dScaler; #endif // SOUNDTOUCH_INTEGER_SAMPLES - *dest = (SAMPLETYPE)sum[c]; - dest++; - sum[c] = 0; + dest[j+c] = (SAMPLETYPE)sums[c]; } } return numSamples - length; diff --git a/src/thirdparty/SoundTouch/source/FIRFilter.h b/src/thirdparty/SoundTouch/source/FIRFilter.h index 2baa41e670e..ce719629e74 100644 --- a/src/thirdparty/SoundTouch/source/FIRFilter.h +++ b/src/thirdparty/SoundTouch/source/FIRFilter.h @@ -11,10 +11,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-10-08 15:26:57 +0000 (Wed, 08 Oct 2014) $ +// Last changed : $Date: 2015-02-21 21:24:29 +0000 (Sat, 21 Feb 2015) $ // File revision : $Revision: 4 $ // -// $Id: FIRFilter.h 201 2014-10-08 15:26:57Z oparviai $ +// $Id: FIRFilter.h 202 2015-02-21 21:24:29Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -65,10 +65,6 @@ class FIRFilter // Memory for filter coefficients SAMPLETYPE *filterCoeffs; - // Memory for keeping temporary sums in multichannel processing - LONG_SAMPLETYPE *sum; - uint sumsize; - virtual uint evaluateFilterStereo(SAMPLETYPE *dest, const SAMPLETYPE *src, uint numSamples) const; diff --git a/src/thirdparty/SoundTouch/source/PeakFinder.cpp b/src/thirdparty/SoundTouch/source/PeakFinder.cpp index 0426b4a6770..eadf5314e41 100644 --- a/src/thirdparty/SoundTouch/source/PeakFinder.cpp +++ b/src/thirdparty/SoundTouch/source/PeakFinder.cpp @@ -11,10 +11,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2012-12-28 19:52:47 +0000 (Fri, 28 Dec 2012) $ +// Last changed : $Date: 2015-05-18 15:22:02 +0000 (Mon, 18 May 2015) $ // File revision : $Revision: 4 $ // -// $Id: PeakFinder.cpp 164 2012-12-28 19:52:47Z oparviai $ +// $Id: PeakFinder.cpp 213 2015-05-18 15:22:02Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -192,11 +192,21 @@ double PeakFinder::getPeakCenter(const float *data, int peakpos) const gp1 = findGround(data, peakpos, -1); gp2 = findGround(data, peakpos, 1); - groundLevel = 0.5f * (data[gp1] + data[gp2]); peakLevel = data[peakpos]; - // calculate 70%-level of the peak - cutLevel = 0.70f * peakLevel + 0.30f * groundLevel; + if (gp1 == gp2) + { + // avoid rounding errors when all are equal + assert(gp1 == peakpos); + cutLevel = groundLevel = peakLevel; + } else { + // get average of the ground levels + groundLevel = 0.5f * (data[gp1] + data[gp2]); + + // calculate 70%-level of the peak + cutLevel = 0.70f * peakLevel + 0.30f * groundLevel; + } + // find mid-level crossings crosspos1 = findCrossingLevel(data, cutLevel, peakpos, -1); crosspos2 = findCrossingLevel(data, cutLevel, peakpos, 1); diff --git a/src/thirdparty/SoundTouch/source/TDStretch.cpp b/src/thirdparty/SoundTouch/source/TDStretch.cpp index e110413be87..9f9f40aa4f6 100644 --- a/src/thirdparty/SoundTouch/source/TDStretch.cpp +++ b/src/thirdparty/SoundTouch/source/TDStretch.cpp @@ -13,10 +13,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-04-06 15:57:21 +0000 (Sun, 06 Apr 2014) $ +// Last changed : $Date: 2015-02-22 15:07:12 +0000 (Sun, 22 Feb 2015) $ // File revision : $Revision: 1.12 $ // -// $Id: TDStretch.cpp 195 2014-04-06 15:57:21Z oparviai $ +// $Id: TDStretch.cpp 205 2015-02-22 15:07:12Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -292,9 +292,9 @@ inline void TDStretch::overlap(SAMPLETYPE *pOutput, const SAMPLETYPE *pInput, ui int TDStretch::seekBestOverlapPositionFull(const SAMPLETYPE *refPos) { int bestOffs; - double bestCorr, corr; - double norm; + double bestCorr; int i; + double norm; bestCorr = FLT_MIN; bestOffs = 0; @@ -302,14 +302,22 @@ int TDStretch::seekBestOverlapPositionFull(const SAMPLETYPE *refPos) // Scans for the best correlation value by testing each possible position // over the permitted range. bestCorr = calcCrossCorr(refPos, pMidBuffer, norm); + + #pragma omp parallel for for (i = 1; i < seekLength; i ++) { - // Calculates correlation value for the mixing position corresponding - // to 'i'. Now call "calcCrossCorrAccumulate" that is otherwise same as - // "calcCrossCorr", but saves time by reusing & updating previously stored + double corr; + // Calculates correlation value for the mixing position corresponding to 'i' +#ifdef _OPENMP + // in parallel OpenMP mode, can't use norm accumulator version as parallel executor won't + // iterate the loop in sequential order + corr = calcCrossCorr(refPos + channels * i, pMidBuffer, norm); +#else + // In non-parallel version call "calcCrossCorrAccumulate" that is otherwise same + // as "calcCrossCorr", but saves time by reusing & updating previously stored // "norm" value corr = calcCrossCorrAccumulate(refPos + channels * i, pMidBuffer, norm); - +#endif // heuristic rule to slightly favour values close to mid of the range double tmp = (double)(2 * i - seekLength) / (double)seekLength; corr = ((corr + 0.1) * (1.0 - 0.25 * tmp * tmp)); @@ -317,8 +325,15 @@ int TDStretch::seekBestOverlapPositionFull(const SAMPLETYPE *refPos) // Checks for the highest correlation value if (corr > bestCorr) { - bestCorr = corr; - bestOffs = i; + // For optimal performance, enter critical section only in case that best value found. + // in such case repeat 'if' condition as it's possible that parallel execution may have + // updated the bestCorr value in the mean time + #pragma omp critical + if (corr > bestCorr) + { + bestCorr = corr; + bestOffs = i; + } } } // clear cross correlation routine state if necessary (is so e.g. in MMX routines). @@ -881,9 +896,10 @@ void TDStretch::calculateOverlapLength(int overlapInMsec) /// Calculate cross-correlation -double TDStretch::calcCrossCorr(const float *mixingPos, const float *compare, double &norm) const +double TDStretch::calcCrossCorr(const float *mixingPos, const float *compare, double &anorm) const { double corr; + double norm; int i; corr = norm = 0; @@ -905,6 +921,7 @@ double TDStretch::calcCrossCorr(const float *mixingPos, const float *compare, do mixingPos[i + 3] * mixingPos[i + 3]; } + anorm = norm; return corr / sqrt((norm < 1e-9 ? 1.0 : norm)); } diff --git a/src/thirdparty/SoundTouch/source/mmx_optimized.cpp b/src/thirdparty/SoundTouch/source/mmx_optimized.cpp index ab8dda82180..c4ff80ed6af 100644 --- a/src/thirdparty/SoundTouch/source/mmx_optimized.cpp +++ b/src/thirdparty/SoundTouch/source/mmx_optimized.cpp @@ -20,10 +20,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-01-07 18:25:40 +0000 (Tue, 07 Jan 2014) $ +// Last changed : $Date: 2015-02-22 15:10:38 +0000 (Sun, 22 Feb 2015) $ // File revision : $Revision: 4 $ // -// $Id: mmx_optimized.cpp 184 2014-01-07 18:25:40Z oparviai $ +// $Id: mmx_optimized.cpp 206 2015-02-22 15:10:38Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -287,6 +287,7 @@ void TDStretchMMX::overlapStereo(short *output, const short *input) const FIRFilterMMX::FIRFilterMMX() : FIRFilter() { + filterCoeffsAlign = NULL; filterCoeffsUnalign = NULL; } diff --git a/src/thirdparty/SoundTouch/source/sse_optimized.cpp b/src/thirdparty/SoundTouch/source/sse_optimized.cpp index a2124696a9d..962dff05669 100644 --- a/src/thirdparty/SoundTouch/source/sse_optimized.cpp +++ b/src/thirdparty/SoundTouch/source/sse_optimized.cpp @@ -23,10 +23,10 @@ /// //////////////////////////////////////////////////////////////////////////////// // -// Last changed : $Date: 2014-01-07 18:25:40 +0000 (Tue, 07 Jan 2014) $ +// Last changed : $Date: 2015-02-21 21:24:29 +0000 (Sat, 21 Feb 2015) $ // File revision : $Revision: 4 $ // -// $Id: sse_optimized.cpp 184 2014-01-07 18:25:40Z oparviai $ +// $Id: sse_optimized.cpp 202 2015-02-21 21:24:29Z oparviai $ // //////////////////////////////////////////////////////////////////////////////// // @@ -71,7 +71,7 @@ using namespace soundtouch; #include // Calculates cross correlation of two buffers -double TDStretchSSE::calcCrossCorr(const float *pV1, const float *pV2, double &norm) const +double TDStretchSSE::calcCrossCorr(const float *pV1, const float *pV2, double &anorm) const { int i; const float *pVec1; @@ -141,7 +141,8 @@ double TDStretchSSE::calcCrossCorr(const float *pV1, const float *pV2, double &n // return value = vSum[0] + vSum[1] + vSum[2] + vSum[3] float *pvNorm = (float*)&vNorm; - norm = (pvNorm[0] + pvNorm[1] + pvNorm[2] + pvNorm[3]); + float norm = (pvNorm[0] + pvNorm[1] + pvNorm[2] + pvNorm[3]); + anorm = norm; float *pvSum = (float*)&vSum; return (double)(pvSum[0] + pvSum[1] + pvSum[2] + pvSum[3]) / sqrt(norm < 1e-9 ? 1.0 : norm); @@ -258,14 +259,17 @@ uint FIRFilterSSE::evaluateFilterStereo(float *dest, const float *source, uint n assert(((ulongptr)filterCoeffsAlign) % 16 == 0); // filter is evaluated for two stereo samples with each iteration, thus use of 'j += 2' + #pragma omp parallel for for (j = 0; j < count; j += 2) { const float *pSrc; + float *pDest; const __m128 *pFil; __m128 sum1, sum2; uint i; - pSrc = (const float*)source; // source audio data + pSrc = (const float*)source + j * 2; // source audio data + pDest = dest + j * 2; // destination audio data pFil = (const __m128*)filterCoeffsAlign; // filter coefficients. NOTE: Assumes coefficients // are aligned to 16-byte boundary sum1 = sum2 = _mm_setzero_ps(); @@ -298,12 +302,10 @@ uint FIRFilterSSE::evaluateFilterStereo(float *dest, const float *source, uint n // to sum the two hi- and lo-floats of these registers together. // post-shuffle & add the filtered values and store to dest. - _mm_storeu_ps(dest, _mm_add_ps( + _mm_storeu_ps(pDest, _mm_add_ps( _mm_shuffle_ps(sum1, sum2, _MM_SHUFFLE(1,0,3,2)), // s2_1 s2_0 s1_3 s1_2 _mm_shuffle_ps(sum1, sum2, _MM_SHUFFLE(3,2,1,0)) // s2_3 s2_2 s1_1 s1_0 )); - source += 4; - dest += 4; } // Ideas for further improvement: diff --git a/src/thirdparty/ZenLib/ZenLib/Conf.h b/src/thirdparty/ZenLib/ZenLib/Conf.h index 3eee0543dee..b1d67c54e8e 100644 --- a/src/thirdparty/ZenLib/ZenLib/Conf.h +++ b/src/thirdparty/ZenLib/ZenLib/Conf.h @@ -178,7 +178,11 @@ //--------------------------------------------------------------------------- //(-1) is known to be the MAX of an unsigned int but GCC complains about it -#include +#ifdef __cplusplus + #include //for size_t +#else /* __cplusplus */ + #include //for size_t +#endif /* __cplusplus */ #include //size_t namespace ZenLib { diff --git a/src/thirdparty/ZenLib/ZenLib/Dir.cpp b/src/thirdparty/ZenLib/ZenLib/Dir.cpp index 3eac2382505..dca9dc7c873 100644 --- a/src/thirdparty/ZenLib/ZenLib/Dir.cpp +++ b/src/thirdparty/ZenLib/ZenLib/Dir.cpp @@ -45,6 +45,97 @@ namespace ZenLib { +//--------------------------------------------------------------------------- +// Debug +#ifdef ZENLIB_DEBUG + #include + #include + namespace ZenLib_Dir_Debug + { + FILE* F; + std::string Debug; + SYSTEMTIME st_In; + + void Debug_Open(bool Out) + { + F=fopen("C:\\Temp\\ZenLib_Debug.txt", "a+t"); + Debug.clear(); + SYSTEMTIME st; + GetLocalTime( &st ); + + char Duration[100]; + if (Out) + { + FILETIME ft_In; + if (SystemTimeToFileTime(&st_In, &ft_In)) + { + FILETIME ft_Out; + if (SystemTimeToFileTime(&st, &ft_Out)) + { + ULARGE_INTEGER UI_In; + UI_In.HighPart=ft_In.dwHighDateTime; + UI_In.LowPart=ft_In.dwLowDateTime; + + ULARGE_INTEGER UI_Out; + UI_Out.HighPart=ft_Out.dwHighDateTime; + UI_Out.LowPart=ft_Out.dwLowDateTime; + + ULARGE_INTEGER UI_Diff; + UI_Diff.QuadPart=UI_Out.QuadPart-UI_In.QuadPart; + + FILETIME ft_Diff; + ft_Diff.dwHighDateTime=UI_Diff.HighPart; + ft_Diff.dwLowDateTime=UI_Diff.LowPart; + + SYSTEMTIME st_Diff; + if (FileTimeToSystemTime(&ft_Diff, &st_Diff)) + { + sprintf(Duration, "%02hd:%02hd:%02hd.%03hd", st_Diff.wHour, st_Diff.wMinute, st_Diff.wSecond, st_Diff.wMilliseconds); + } + else + strcpy(Duration, " "); + } + else + strcpy(Duration, " "); + + } + else + strcpy(Duration, " "); + } + else + { + st_In=st; + strcpy(Duration, " "); + } + + fprintf(F," %02hd:%02hd:%02hd.%03hd %s", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, Duration); + } + + void Debug_Close() + { + Debug += "\r\n"; + fwrite(Debug.c_str(), Debug.size(), 1, F); \ + fclose(F); + } + } + using namespace ZenLib_Dir_Debug; + + #define ZENLIB_DEBUG1(_NAME,_TOAPPEND) \ + Debug_Open(false); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); + + #define ZENLIB_DEBUG2(_NAME,_TOAPPEND) \ + Debug_Open(true); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); +#else // ZENLIB_DEBUG + #define ZENLIB_DEBUG1(_NAME,_TOAPPEND) + #define ZENLIB_DEBUG2(_NAME,_TOAPPEND) +#endif // ZENLIB_DEBUG + //*************************************************************************** // Constructor/Destructor //*************************************************************************** @@ -56,6 +147,9 @@ namespace ZenLib ZtringList Dir::GetAllFileNames(const Ztring &Dir_Name_, dirlist_t Options) { + ZENLIB_DEBUG1( "Dir GetAllFileNames", + Debug+=", Dir_Name="; Debug+=Ztring(Dir_Name_).To_UTF8(); Debug+=", Options="; Debug +=Ztring::ToZtring(Options).To_UTF8()) + ZtringList ToReturn; Ztring Dir_Name=Dir_Name_; @@ -117,7 +211,12 @@ ZtringList Dir::GetAllFileNames(const Ztring &Dir_Name_, dirlist_t Options) #endif //UNICODE if (hFind==INVALID_HANDLE_VALUE) + { + ZENLIB_DEBUG2( "Dir GetAllFileNames", + Debug+=", returns with files count="; Debug +=Ztring::ToZtring(ToReturn.size()).To_UTF8()) + return ZtringList(); + } BOOL ReturnValue; do @@ -210,6 +309,9 @@ ZtringList Dir::GetAllFileNames(const Ztring &Dir_Name_, dirlist_t Options) #endif #endif //ZENLIB_USEWX + ZENLIB_DEBUG2( "Dir GetAllFileNames", + Debug+=", files count="; Debug +=Ztring::ToZtring(ToReturn.size()).To_UTF8()) + return ToReturn; } @@ -220,6 +322,9 @@ ZtringList Dir::GetAllFileNames(const Ztring &Dir_Name_, dirlist_t Options) //--------------------------------------------------------------------------- bool Dir::Exists(const Ztring &File_Name) { + ZENLIB_DEBUG1( "Dir Exists", + Debug+=", Dir_Name="; Debug+=Ztring(File_Name).To_UTF8();) + #ifdef ZENLIB_USEWX wxFileName FN(File_Name.c_str()); return FN.DirExists(); @@ -230,6 +335,10 @@ bool Dir::Exists(const Ztring &File_Name) #else DWORD FileAttributes=GetFileAttributes(File_Name.c_str()); #endif //UNICODE + + ZENLIB_DEBUG2( "Dir Exists", + Debug+=", returns "; Debug +=Ztring::ToZtring(((FileAttributes!=INVALID_FILE_ATTRIBUTES) && (FileAttributes&FILE_ATTRIBUTE_DIRECTORY))?1:0).To_UTF8()) + return ((FileAttributes!=INVALID_FILE_ATTRIBUTES) && (FileAttributes&FILE_ATTRIBUTE_DIRECTORY)); #else //WINDOWS struct stat buffer; @@ -262,6 +371,161 @@ bool Dir::Create(const Ztring &File_Name) #endif //ZENLIB_USEWX } +//*************************************************************************** +// GetAllFileNames +//*************************************************************************** + +#ifdef WINDOWS +class GetAllFileNames_Private +{ +public: + Ztring Dir_Name; + Ztring Path; + Dir::dirlist_t Options; + HANDLE hFind; + #ifdef UNICODE + WIN32_FIND_DATAW FindFileDataW; + #else + WIN32_FIND_DATA FindFileData; + #endif //UNICODE + + GetAllFileNames_Private() + : hFind(INVALID_HANDLE_VALUE) + { + } +}; + +//--------------------------------------------------------------------------- +GetAllFileNames::GetAllFileNames() + : p(NULL) +{ +} + +//--------------------------------------------------------------------------- +GetAllFileNames::~GetAllFileNames() +{ + Close(); +} + +//--------------------------------------------------------------------------- +void GetAllFileNames::Start (const Ztring &Dir_Name_, Dir::dirlist_t Options_) +{ + ZENLIB_DEBUG1( "GetAllFileNames Start", + Debug+=", Dir_Name="; Debug+=Ztring(Dir_Name_).To_UTF8(); Debug+=", Options="; Debug +=Ztring::ToZtring(Options_).To_UTF8()) + + delete p; p=new GetAllFileNames_Private; + p->Dir_Name=Dir_Name_; + p->Options=Options_; + + #ifdef WINDOWS + //Is a dir? + if (Dir::Exists(p->Dir_Name)) + p->Dir_Name+=__T("\\*"); + + //Path + p->Path=FileName::Path_Get(p->Dir_Name); + if (p->Path.empty()) + { + DWORD Path_Size=GetFullPathName(p->Dir_Name.c_str(), 0, NULL, NULL); + Char* PathTemp=new Char[Path_Size+1]; + if (GetFullPathName(p->Dir_Name.c_str(), Path_Size+1, PathTemp, NULL)) + p->Path=FileName::Path_Get(PathTemp); + delete [] PathTemp; + } + #else //WINDOWS + #endif + + ZENLIB_DEBUG2( "GetAllFileNames Start", + ) +} + +bool GetAllFileNames::Next (Ztring& Name) +{ + if (!p) + return false; + + ZENLIB_DEBUG1( "GetAllFileNames Next", + Debug+=", Dir_Name="; Debug+=Ztring(p->Dir_Name).To_UTF8()) + + #ifdef WINDOWS + for (;;) + { + if (p->hFind==INVALID_HANDLE_VALUE) + { + #ifdef UNICODE + p->hFind=FindFirstFileW(p->Dir_Name.c_str(), &p->FindFileDataW); + #else + p->hFind=FindFirstFile(p->Dir_Name.c_str(), &p->FindFileData); + #endif //UNICODE + + if (p->hFind==INVALID_HANDLE_VALUE) + break; + } + else + { + BOOL ReturnValue; + #ifdef UNICODE + ReturnValue=FindNextFileW(p->hFind, &p->FindFileDataW); + #else + ReturnValue=FindNextFile(p->hFind, &p->FindFileData); + #endif //UNICODE + if (!ReturnValue) + break; + } + + #ifdef UNICODE + Ztring File_Name(p->FindFileDataW.cFileName); + #else + Ztring File_Name(p->FindFileData.cFileName); + #endif //UNICODE + if (File_Name!=__T(".") && File_Name!=__T("..")) //Avoid . an .. + { + bool IsOk=false; + #ifdef UNICODE + if (p->FindFileDataW.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) + #else + if (p->FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) + #endif //UNICODE + { + if (p->Options&Dir::Include_Dirs) + IsOk=true; //A dir + } + else if ((p->Options&Dir::Include_Files) && ((p->Options&Dir::Include_Hidden) || (!File_Name.empty() && File_Name[0]!=__T('.')))) + IsOk=true; //A file + if (IsOk) + { + Name=p->Path+__T("\\")+File_Name; + + ZENLIB_DEBUG2( "GetAllFileNames Next", + Debug+=", File_Name="; Debug +=Name.To_UTF8()) + + return true; + } + } + } + #else //WINDOWS + #endif + + Close(); + return false; +} + +void GetAllFileNames::Close () +{ + if (!p) + return; + + ZENLIB_DEBUG1( "GetAllFileNames Close", + Debug+=", Dir_Name="; Debug+=Ztring(p->Dir_Name).To_UTF8()) + + FindClose(p->hFind); p->hFind=INVALID_HANDLE_VALUE; + delete p; p=NULL; + + ZENLIB_DEBUG2( "GetAllFileNames Close", + ) +} +#endif //WINDOWS + //*************************************************************************** // //*************************************************************************** diff --git a/src/thirdparty/ZenLib/ZenLib/Dir.h b/src/thirdparty/ZenLib/ZenLib/Dir.h index 76f3d89f405..d01d37c3c83 100644 --- a/src/thirdparty/ZenLib/ZenLib/Dir.h +++ b/src/thirdparty/ZenLib/ZenLib/Dir.h @@ -50,6 +50,25 @@ public : static bool Create(const Ztring &Dir_Name); }; +#ifdef WINDOWS +class GetAllFileNames_Private; +class GetAllFileNames +{ +public: + //Constructor/Destructor + GetAllFileNames(); + ~GetAllFileNames(); + + // + void Start (const Ztring &Dir_Name, Dir::dirlist_t Options=(Dir::dirlist_t)(Dir::Include_Files|Dir::Parse_SubDirs)); + bool Next (Ztring& Name); + void Close (); + +private: + GetAllFileNames_Private* p; +}; +#endif //WINDOWS + } //NameSpace #endif diff --git a/src/thirdparty/ZenLib/ZenLib/File.cpp b/src/thirdparty/ZenLib/ZenLib/File.cpp index aea864d5770..eaa67b5cc77 100644 --- a/src/thirdparty/ZenLib/ZenLib/File.cpp +++ b/src/thirdparty/ZenLib/ZenLib/File.cpp @@ -51,6 +51,97 @@ namespace ZenLib { +//--------------------------------------------------------------------------- +// Debug +#ifdef ZENLIB_DEBUG + #include + #include + namespace ZenLib_File_Debug + { + FILE* F; + std::string Debug; + SYSTEMTIME st_In; + + void Debug_Open(bool Out) + { + F=fopen("C:\\Temp\\ZenLib_Debug.txt", "a+t"); + Debug.clear(); + SYSTEMTIME st; + GetLocalTime( &st ); + + char Duration[100]; + if (Out) + { + FILETIME ft_In; + if (SystemTimeToFileTime(&st_In, &ft_In)) + { + FILETIME ft_Out; + if (SystemTimeToFileTime(&st, &ft_Out)) + { + ULARGE_INTEGER UI_In; + UI_In.HighPart=ft_In.dwHighDateTime; + UI_In.LowPart=ft_In.dwLowDateTime; + + ULARGE_INTEGER UI_Out; + UI_Out.HighPart=ft_Out.dwHighDateTime; + UI_Out.LowPart=ft_Out.dwLowDateTime; + + ULARGE_INTEGER UI_Diff; + UI_Diff.QuadPart=UI_Out.QuadPart-UI_In.QuadPart; + + FILETIME ft_Diff; + ft_Diff.dwHighDateTime=UI_Diff.HighPart; + ft_Diff.dwLowDateTime=UI_Diff.LowPart; + + SYSTEMTIME st_Diff; + if (FileTimeToSystemTime(&ft_Diff, &st_Diff)) + { + sprintf(Duration, "%02hd:%02hd:%02hd.%03hd", st_Diff.wHour, st_Diff.wMinute, st_Diff.wSecond, st_Diff.wMilliseconds); + } + else + strcpy(Duration, " "); + } + else + strcpy(Duration, " "); + + } + else + strcpy(Duration, " "); + } + else + { + st_In=st; + strcpy(Duration, " "); + } + + fprintf(F," %02hd:%02hd:%02hd.%03hd %s", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, Duration); + } + + void Debug_Close() + { + Debug += "\r\n"; + fwrite(Debug.c_str(), Debug.size(), 1, F); \ + fclose(F); + } + } + using namespace ZenLib_File_Debug; + + #define ZENLIB_DEBUG1(_NAME,_TOAPPEND) \ + Debug_Open(false); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); + + #define ZENLIB_DEBUG2(_NAME,_TOAPPEND) \ + Debug_Open(true); \ + Debug+=", ";Debug+=_NAME; \ + _TOAPPEND; \ + Debug_Close(); +#else // ZENLIB_DEBUG + #define ZENLIB_DEBUG1(_NAME,_TOAPPEND) + #define ZENLIB_DEBUG2(_NAME,_TOAPPEND) +#endif // ZENLIB_DEBUG + //*************************************************************************** // Constructor/Destructor //*************************************************************************** @@ -102,6 +193,9 @@ bool File::Open (const tstring &File_Name_, access_t Access) { Close(); + ZENLIB_DEBUG1( "File Open", + Debug+=", File_Name="; Debug +=Ztring(File_Name_).To_UTF8();) + File_Name=File_Name_; #ifdef ZENLIB_USEWX @@ -174,6 +268,7 @@ bool File::Open (const tstring &File_Name_, access_t Access) #else File_Handle=CreateFile(File_Name.c_str(), dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, 0, NULL); #endif //UNICODE + #if 0 //Disabled if (File_Handle==INVALID_HANDLE_VALUE) { //Sometimes the file is locked for few milliseconds, we try again later @@ -198,9 +293,18 @@ bool File::Open (const tstring &File_Name_, access_t Access) #endif //UNICODE } } + #endif //0 if (File_Handle==INVALID_HANDLE_VALUE) + { + ZENLIB_DEBUG2( "File Open", + Debug+=", returns 0";) + //File is not openable return false; + } + + ZENLIB_DEBUG2( "File Open", + Debug+=", returns 1";) //Append if (Access==Access_Write_Append) @@ -216,6 +320,9 @@ bool File::Create (const Ztring &File_Name_, bool OverWrite) { Close(); + ZENLIB_DEBUG1( "File Create", + Debug+=", File_Name="; Debug +=Ztring(File_Name_).To_UTF8();) + File_Name=File_Name_; #ifdef ZENLIB_USEWX @@ -278,6 +385,7 @@ bool File::Create (const Ztring &File_Name_, bool OverWrite) #else File_Handle=CreateFile(File_Name.c_str(), dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, 0, NULL); #endif //UNICODE + #if 0 //Disabled if (File_Handle==INVALID_HANDLE_VALUE) { //Sometime the file is locked for few milliseconds, we try again later @@ -288,9 +396,19 @@ bool File::Create (const Ztring &File_Name_, bool OverWrite) File_Handle=CreateFile(File_Name.c_str(), dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, 0, NULL); #endif //UNICODE } + #endif //0 if (File_Handle==INVALID_HANDLE_VALUE) + { + ZENLIB_DEBUG2( "File Create", + Debug+=", returns 0";) + //File is not openable return false; + } + + ZENLIB_DEBUG2( "File Create", + Debug+=", returns 1";) + return true; #endif #endif //ZENLIB_USEWX @@ -299,6 +417,24 @@ bool File::Create (const Ztring &File_Name_, bool OverWrite) //--------------------------------------------------------------------------- void File::Close () { + #ifdef ZENLIB_DEBUG + bool isOpen=false; + #ifdef ZENLIB_USEWX + if (File_Handle!=NULL) + #else //ZENLIB_USEWX + #ifdef ZENLIB_STANDARD + if (File_Handle!=NULL) + #elif defined WINDOWS + if (File_Handle!=INVALID_HANDLE_VALUE) + #endif + #endif //ZENLIB_USEWX + { + ZENLIB_DEBUG1( "File Close", + Debug+=", File_Name="; Debug+=Ztring(File_Name).To_UTF8();) + isOpen=true; + } + #endif + #ifdef ZENLIB_USEWX delete (wxFile*)File_Handle; File_Handle=NULL; #else //ZENLIB_USEWX @@ -311,6 +447,14 @@ void File::Close () #endif //ZENLIB_USEWX Position=(int64u)-1; Size=(int64u)-1; + + #ifdef ZENLIB_DEBUG + if (isOpen) + { + ZENLIB_DEBUG2( "File Close", + ) + } + #endif } //*************************************************************************** @@ -320,6 +464,9 @@ void File::Close () //--------------------------------------------------------------------------- size_t File::Read (int8u* Buffer, size_t Buffer_Size_Max) { + ZENLIB_DEBUG1( "File Read", + Debug+=", File_Name="; Debug+=Ztring(File_Name).To_UTF8(); Debug+=", MaxSize="; Debug +=Ztring::ToZtring(Buffer_Size_Max).To_UTF8()) + #ifdef ZENLIB_USEWX if (File_Handle==NULL) #else //ZENLIB_USEWX @@ -353,10 +500,18 @@ size_t File::Read (int8u* Buffer, size_t Buffer_Size_Max) if (ReadFile(File_Handle, Buffer, (DWORD)Buffer_Size_Max, &Buffer_Size, NULL)) { Position+=Buffer_Size; + + ZENLIB_DEBUG2( "File Read", + Debug+=", new position ";Debug+=Ztring::ToZtring(Position).To_UTF8();;Debug+=", returns ";Debug+=Ztring::ToZtring((int64u)Buffer_Size).To_UTF8();) + return Buffer_Size; } else + { + ZENLIB_DEBUG2( "File Read", + Debug+=", returns 0";) return 0; + } #endif #endif //ZENLIB_USEWX } @@ -457,6 +612,9 @@ size_t File::Write (const Ztring &ToWrite) //--------------------------------------------------------------------------- bool File::GoTo (int64s Position_ToMove, move_t MoveMethod) { + ZENLIB_DEBUG1( "File GoTo", + Debug+=", File_Name="; Debug+=Ztring(File_Name).To_UTF8(); Debug+="File GoTo: "; Debug +=Ztring(File_Name).To_UTF8(); Debug+=", MoveMethod="; Debug +=Ztring::ToZtring(MoveMethod).To_UTF8(); Debug+=", MaxSize="; Debug +=Ztring::ToZtring(Position_ToMove).To_UTF8()) + #ifdef ZENLIB_USEWX if (File_Handle==NULL) #else //ZENLIB_USEWX @@ -497,7 +655,16 @@ bool File::GoTo (int64s Position_ToMove, move_t MoveMethod) #elif defined WINDOWS LARGE_INTEGER GoTo; GoTo.QuadPart=Position_ToMove; - return SetFilePointerEx(File_Handle, GoTo, NULL, MoveMethod)!=0; + BOOL i=SetFilePointerEx(File_Handle, GoTo, NULL, MoveMethod); + + #ifdef ZENLIB_DEBUG + LARGE_INTEGER Temp; Temp.QuadPart=0; + SetFilePointerEx(File_Handle, Temp, &Temp, FILE_CURRENT); + ZENLIB_DEBUG2( "File GoTo", + Debug+=", new position ";Debug+=Ztring::ToZtring(Temp.QuadPart).To_UTF8();Debug+=", returns ";Debug+=i?'1':'0';) + #endif //ZENLIB_DEBUG + + return i?true:false; #endif #endif //ZENLIB_USEWX } @@ -508,6 +675,9 @@ int64u File::Position_Get () if (Position!=(int64u)-1) return Position; + ZENLIB_DEBUG1( "File Position_Get", + Debug+=", File_Name="; Debug+=Ztring(File_Name).To_UTF8()) + #ifdef ZENLIB_USEWX if (File_Handle==NULL) #else //ZENLIB_USEWX @@ -529,6 +699,10 @@ int64u File::Position_Get () LARGE_INTEGER GoTo; GoTo.QuadPart=0; GoTo.LowPart=SetFilePointer(File_Handle, GoTo.LowPart, &GoTo.HighPart, FILE_CURRENT); Position=GoTo.QuadPart; + + ZENLIB_DEBUG2( "File GoTo", + Debug+=", new position ";Debug+=Ztring::ToZtring(GoTo.QuadPart).To_UTF8();Debug+=", returns 1";) + return Position; #endif #endif //ZENLIB_USEWX @@ -789,6 +963,9 @@ Ztring File::Modified_Get(const Ztring &File_Name) //--------------------------------------------------------------------------- bool File::Exists(const Ztring &File_Name) { + ZENLIB_DEBUG1( "File Exists", + Debug+=", File_Name="; Debug+=Ztring(File_Name).To_UTF8()) + #ifdef ZENLIB_USEWX wxFileName FN(File_Name.c_str()); return FN.FileExists(); @@ -812,6 +989,10 @@ bool File::Exists(const Ztring &File_Name) #else DWORD FileAttributes=GetFileAttributes(File_Name.c_str()); #endif //UNICODE + + ZENLIB_DEBUG2( "File Exists", + Debug+=", File_Name="; Debug+=Ztring::ToZtring(((FileAttributes!=INVALID_FILE_ATTRIBUTES) && !(FileAttributes&FILE_ATTRIBUTE_DIRECTORY))?1:0).To_UTF8()) + return ((FileAttributes!=INVALID_FILE_ATTRIBUTES) && !(FileAttributes&FILE_ATTRIBUTE_DIRECTORY)); #endif #endif //ZENLIB_USEWX diff --git a/src/thirdparty/ZenLib/ZenLib/MemoryUtils.h b/src/thirdparty/ZenLib/ZenLib/MemoryUtils.h index 63bf199e92c..cebad594a3d 100644 --- a/src/thirdparty/ZenLib/ZenLib/MemoryUtils.h +++ b/src/thirdparty/ZenLib/ZenLib/MemoryUtils.h @@ -32,7 +32,7 @@ namespace ZenLib //----------------------------------------------------------------------- // Arbitrary size - To Unaligned - #define memcpy_Unaligned_Unaligned memcpy + #define memcpy_Unaligned_Unaligned memcpy #define memcpy_Aligned128_Unaligned memcpy //----------------------------------------------------------------------- @@ -70,7 +70,7 @@ namespace ZenLib { return _aligned_malloc (size, 16); //aligned_alloc in C11 } - + inline void free_Aligned128 ( void *ptr ) { _aligned_free (ptr); //free in C11 diff --git a/src/thirdparty/ZenLib/ZenLib/Utils.cpp b/src/thirdparty/ZenLib/ZenLib/Utils.cpp index bc65f702703..e272ead3a99 100644 --- a/src/thirdparty/ZenLib/ZenLib/Utils.cpp +++ b/src/thirdparty/ZenLib/ZenLib/Utils.cpp @@ -666,7 +666,7 @@ float32 BigEndian2float16(const char* Liste) //significand 10 bit //Retrieving data - int32u Integer=BigEndian2int32u(Liste); + int16u Integer=BigEndian2int16u(Liste); //Retrieving elements bool Sign =(Integer&0x8000)?true:false; @@ -676,7 +676,7 @@ float32 BigEndian2float16(const char* Liste) //Some computing if (Exponent==0 || Exponent==0xFF) return 0; //These are denormalised numbers, NANs, and other horrible things - Exponent-=0x7F; //Bias + Exponent-=0x0F; //Bias float64 Answer=(((float64)Mantissa)/8388608+1.0)*std::pow((float64)2, (int)Exponent); //(1+Mantissa) * 2^Exponent if (Sign) Answer=-Answer; diff --git a/src/thirdparty/ZenLib/ZenLib/int128s.h b/src/thirdparty/ZenLib/ZenLib/int128s.h index e387c87b5b0..c179838d49b 100644 --- a/src/thirdparty/ZenLib/ZenLib/int128s.h +++ b/src/thirdparty/ZenLib/ZenLib/int128s.h @@ -28,7 +28,11 @@ #include #include #include -#include +#ifdef __cplusplus + #include //for size_t +#else /* __cplusplus */ + #include //for size_t +#endif /* __cplusplus */ #include "ZenLib/Conf.h" namespace ZenLib diff --git a/src/thirdparty/lcms2/library b/src/thirdparty/lcms2/library index 81746818cd6..6e33faabae0 160000 --- a/src/thirdparty/lcms2/library +++ b/src/thirdparty/lcms2/library @@ -1 +1 @@ -Subproject commit 81746818cd6df89b7a62dbcfc4861d12dbc9c4f4 +Subproject commit 6e33faabae068b21a1c1d18a1297917b6bb1a11c diff --git a/src/thirdparty/sizecbar/scbarg.cpp b/src/thirdparty/sizecbar/scbarg.cpp index 3cec57a02f4..4e26773781f 100644 --- a/src/thirdparty/sizecbar/scbarg.cpp +++ b/src/thirdparty/sizecbar/scbarg.cpp @@ -78,6 +78,12 @@ void CSizingControlBarG::NcCalcClient(LPRECT pRc, UINT nDockBarID) return; CRect rc(pRc); // the client rect as calculated by the base class + //mpc-hc custom code start + // Work in screen coordinates before converting back to + // client coordinates to account for possible RTL layout + GetParent()->ClientToScreen(rcBar); + GetParent()->ClientToScreen(rc); + //mpc-hc custom code end BOOL bHorz = (nDockBarID == AFX_IDW_DOCKBAR_TOP) || (nDockBarID == AFX_IDW_DOCKBAR_BOTTOM); @@ -96,6 +102,12 @@ void CSizingControlBarG::NcCalcClient(LPRECT pRc, UINT nDockBarID) m_biHide.Move(ptOrgBtn - rcBar.TopLeft()); + //mpc-hc custom code start + // Work in screen coordinates before converting back to + // client coordinates to account for possible RTL layout + GetParent()->ScreenToClient(&rc); + //mpc-hc custom code end + *pRc = rc; } @@ -144,6 +156,12 @@ LRESULT CSizingControlBarG::OnNcHitTest(CPoint point) if (nRet != HTCLIENT) return nRet; + //mpc-hc custom code start + // Convert to client coordinates to account for possible RTL layout + ScreenToClient(&rcBar); + ScreenToClient(&point); + //mpc-hc custom code end + CRect rc = m_biHide.GetRect(); rc.OffsetRect(rcBar.TopLeft()); if (rc.PtInRect(point)) @@ -214,7 +232,11 @@ void CSCBButton::Paint(CDC* pDC) font.CreatePointFont(pointsize, _T("Marlett")); CFont* oldfont = pDC->SelectObject(&font); - pDC->TextOut(ptOrg.x + 2, ptOrg.y + 2, CString(_T("r"))); // x-like + //mpc-hc custom code start + // TextOut is affected by the layout so we need to account for that + DWORD dwLayout = pDC->GetLayout(); + pDC->TextOut(ptOrg.x + (dwLayout == LAYOUT_LTR ? 2 : -1), ptOrg.y + 2, CString(_T("r"))); // x-like + //mpc-hc custom code end pDC->SelectObject(oldfont); pDC->SetBkMode(nPrevBkMode); diff --git a/src/thirdparty/sizecbar/sizecbar.cpp b/src/thirdparty/sizecbar/sizecbar.cpp index e6d794b2006..e6904e290d3 100644 --- a/src/thirdparty/sizecbar/sizecbar.cpp +++ b/src/thirdparty/sizecbar/sizecbar.cpp @@ -411,7 +411,12 @@ void CSizingControlBar::OnMouseMove(UINT nFlags, CPoint point) CPoint ptScreen = point; ClientToScreen(&ptScreen); - OnTrackUpdateSize(ptScreen); + //mpc-hc custom code start + // Switch to parent window client coordinates to account for possible RTL layout + CPoint ptParentClient = ptScreen; + GetParentFrame()->ScreenToClient(&ptParentClient); + OnTrackUpdateSize(ptParentClient); + //mpc-hc custom code end } baseCSizingControlBar::OnMouseMove(nFlags, point); @@ -474,6 +479,11 @@ void CSizingControlBar::OnNcCalcSize(BOOL bCalcValidRects, void CSizingControlBar::NcCalcClient(LPRECT pRc, UINT nDockBarID) { CRect rc(pRc); + //mpc-hc custom code start + // Work in screen coordinates before converting back to + // client coordinates to account for possible RTL layout + GetParent()->ClientToScreen(&rc); + //mpc-hc custom code end rc.DeflateRect(3, 5, 3, 3); if (nDockBarID != AFX_IDW_DOCKBAR_FLOAT) @@ -503,6 +513,12 @@ void CSizingControlBar::NcCalcClient(LPRECT pRc, UINT nDockBarID) (m_dwSCBStyle & SCBS_EDGERIGHT) ? m_cxEdge : 0, (m_dwSCBStyle & SCBS_EDGEBOTTOM) ? m_cxEdge : 0); + //mpc-hc custom code start + // Work in screen coordinates before converting back to + // client coordinates to account for possible RTL layout + GetParent()->ScreenToClient(&rc); + //mpc-hc custom code end + *pRc = rc; } @@ -513,8 +529,14 @@ void CSizingControlBar::OnNcPaint() CRect rcClient, rcBar; GetClientRect(rcClient); - ClientToScreen(rcClient); + //mpc-hc custom code start + //ClientToScreen(rcClient); + //mpc-hc custom code end GetWindowRect(rcBar); + //mpc-hc custom code start + // Convert to client coordinates to account for possible RTL layout + ScreenToClient(rcBar); + //mpc-hc custom code end rcClient.OffsetRect(-rcBar.TopLeft()); rcBar.OffsetRect(-rcBar.TopLeft()); @@ -574,6 +596,12 @@ LRESULT CSizingControlBar::OnNcHitTest(CPoint point) CRect rcBar, rcEdge; GetWindowRect(rcBar); + //mpc-hc custom code start + // Convert to client coordinates to account for possible RTL layout + ScreenToClient(&rcBar); + ScreenToClient(&point); + //mpc-hc custom code end + if (!IsFloating()) for (int i = 0; i < 4; i++) if (GetEdgeRect(rcBar, GetEdgeHTCode(i), rcEdge)) @@ -619,6 +647,11 @@ void CSizingControlBar::OnClose() void CSizingControlBar::StartTracking(UINT nHitTest, CPoint point) { + //mpc-hc custom code start + // Convert to client coordinates to account for possible RTL layout + GetParentFrame()->ScreenToClient(&point); + //mpc-hc custom code end + SetCapture(); // make sure no updates are pending @@ -635,6 +668,10 @@ void CSizingControlBar::StartTracking(UINT nHitTest, CPoint point) CRect rcBar, rcEdge; GetWindowRect(rcBar); + //mpc-hc custom code start + // Convert to client coordinates to account for possible RTL layout + GetParent()->ScreenToClient(&rcBar); + //mpc-hc custom code end GetEdgeRect(rcBar, m_htEdge, rcEdge); m_nTrackEdgeOfs = m_nTrackPosOld - (bHorzTracking ? rcEdge.CenterPoint().x : rcEdge.CenterPoint().y); diff --git a/src/thirdparty/unrar/archive.cpp b/src/thirdparty/unrar/archive.cpp index 9e9e72424f7..7ca0b7461cd 100644 --- a/src/thirdparty/unrar/archive.cpp +++ b/src/thirdparty/unrar/archive.cpp @@ -234,6 +234,7 @@ bool Archive::IsArchive(bool EnableBroken) { SaveFilePos SavePos(*this); int64 SaveCurBlockPos=CurBlockPos,SaveNextBlockPos=NextBlockPos; + HEADER_TYPE SaveCurHeaderType=CurHeaderType; while (ReadHeader()!=0) { @@ -250,6 +251,7 @@ bool Archive::IsArchive(bool EnableBroken) } CurBlockPos=SaveCurBlockPos; NextBlockPos=SaveNextBlockPos; + CurHeaderType=SaveCurHeaderType; } if (!Volume || FirstVolume) wcscpy(FirstVolumeName,FileName); diff --git a/src/thirdparty/unrar/archive.hpp b/src/thirdparty/unrar/archive.hpp index 1d8444bfb46..522709608e9 100644 --- a/src/thirdparty/unrar/archive.hpp +++ b/src/thirdparty/unrar/archive.hpp @@ -85,8 +85,8 @@ class Archive:public File void AddSubData(byte *SrcData,uint64 DataSize,File *SrcFile, const wchar *Name,uint Flags); bool ReadSubData(Array *UnpData,File *DestFile); - HEADER_TYPE GetHeaderType() {return(CurHeaderType);}; - RAROptions* GetRAROptions() {return(Cmd);} + HEADER_TYPE GetHeaderType() {return CurHeaderType;}; + RAROptions* GetRAROptions() {return Cmd;} void SetSilentOpen(bool Mode) {SilentOpen=Mode;} #ifdef USE_QOPEN bool Open(const wchar *Name,uint Mode=FMF_READ); diff --git a/src/thirdparty/unrar/arcread.cpp b/src/thirdparty/unrar/arcread.cpp index e4c3f87d5aa..047289b7a94 100644 --- a/src/thirdparty/unrar/arcread.cpp +++ b/src/thirdparty/unrar/arcread.cpp @@ -44,10 +44,10 @@ size_t Archive::SearchBlock(HEADER_TYPE HeaderType) if ((++Count & 127)==0) Wait(); if (GetHeaderType()==HeaderType) - return(Size); + return Size; SeekToNext(); } - return(0); + return 0; } @@ -128,7 +128,7 @@ size_t Archive::ReadHeader15() if (Read(Salt,SIZE_SALT30)!=SIZE_SALT30) { UnexpEndArcMsg(); - return(0); + return 0; } HeadersCrypt.SetCryptKeys(false,CRYPT_RAR30,&Cmd->Password,Salt,NULL,0,NULL,NULL); Raw.SetCrypt(&HeadersCrypt); @@ -155,7 +155,7 @@ size_t Archive::ReadHeader15() if (ShortBlock.HeadSizePassword)) + if (!uiGetPassword(UIPASSWORD_ARCHIVE,FileName,&Cmd->Password) || + !Cmd->Password.IsSet()) { Close(); uiMsg(UIERROR_INCERRCOUNT); @@ -1168,7 +1169,7 @@ size_t Archive::ReadHeader14() NextBlockPos=CurBlockPos+FileHead.HeadSize+FileHead.PackSize; CurHeaderType=HEAD_FILE; } - return(NextBlockPos>CurBlockPos ? Raw.Size():0); + return NextBlockPos>CurBlockPos ? Raw.Size() : 0; } #endif diff --git a/src/thirdparty/unrar/cmddata.cpp b/src/thirdparty/unrar/cmddata.cpp index b56410ae9a4..3f84cc37391 100644 --- a/src/thirdparty/unrar/cmddata.cpp +++ b/src/thirdparty/unrar/cmddata.cpp @@ -616,6 +616,8 @@ void CommandData::ProcessSwitch(const wchar *Switch) #ifdef SAVE_LINKS case 'L': SaveSymLinks=true; + if (toupperw(Switch[2])=='A') + AbsoluteLinks=true; break; #endif case 'R': @@ -958,7 +960,7 @@ void CommandData::OutHelp(RAR_EXIT ExitCode) MCHelpSwCm,MCHelpSwCFGm,MCHelpSwCL,MCHelpSwCU, MCHelpSwDH,MCHelpSwEP,MCHelpSwEP3,MCHelpSwF,MCHelpSwIDP,MCHelpSwIERR, MCHelpSwINUL,MCHelpSwIOFF,MCHelpSwKB,MCHelpSwN,MCHelpSwNa,MCHelpSwNal, - MCHelpSwO,MCHelpSwOC,MCHelpSwOR,MCHelpSwOW,MCHelpSwP, + MCHelpSwO,MCHelpSwOC,MCHelpSwOL,MCHelpSwOR,MCHelpSwOW,MCHelpSwP, MCHelpSwPm,MCHelpSwR,MCHelpSwRI,MCHelpSwSC,MCHelpSwSL,MCHelpSwSM, MCHelpSwTA,MCHelpSwTB,MCHelpSwTN,MCHelpSwTO,MCHelpSwTS,MCHelpSwU, MCHelpSwVUnr,MCHelpSwVER,MCHelpSwVP,MCHelpSwX,MCHelpSwXa,MCHelpSwXal, @@ -1157,8 +1159,11 @@ bool CommandData::SizeCheck(int64 Size) -int CommandData::IsProcessFile(FileHeader &FileHead,bool *ExactMatch,int MatchType) +int CommandData::IsProcessFile(FileHeader &FileHead,bool *ExactMatch,int MatchType, + wchar *MatchedArg,uint MatchedArgSize) { + if (MatchedArg!=NULL && MatchedArgSize>0) + *MatchedArg=0; if (wcslen(FileHead.FileName)>=NM) return 0; bool Dir=FileHead.Dir; @@ -1179,6 +1184,8 @@ int CommandData::IsProcessFile(FileHeader &FileHead,bool *ExactMatch,int MatchTy { if (ExactMatch!=NULL) *ExactMatch=wcsicompc(ArgName,FileHead.FileName)==0; + if (MatchedArg!=NULL) + wcsncpyz(MatchedArg,ArgName,MatchedArgSize); return StringCount; } return 0; diff --git a/src/thirdparty/unrar/cmddata.hpp b/src/thirdparty/unrar/cmddata.hpp index 3ed4ef1d8fd..d2cdbb94df8 100644 --- a/src/thirdparty/unrar/cmddata.hpp +++ b/src/thirdparty/unrar/cmddata.hpp @@ -37,7 +37,8 @@ class CommandData:public RAROptions bool TimeCheck(RarTime &ft); bool SizeCheck(int64 Size); bool AnyFiltersActive(); - int IsProcessFile(FileHeader &FileHead,bool *ExactMatch=NULL,int MatchType=MATCH_WILDSUBPATH); + int IsProcessFile(FileHeader &FileHead,bool *ExactMatch=NULL,int MatchType=MATCH_WILDSUBPATH, + wchar *MatchedArg=NULL,uint MatchedArgSize=0); void ProcessCommand(); void AddArcName(const wchar *Name); bool GetArcName(wchar *Name,int MaxSize); diff --git a/src/thirdparty/unrar/dll.rc b/src/thirdparty/unrar/dll.rc index 1481d7632c1..fa7ab25cb62 100644 --- a/src/thirdparty/unrar/dll.rc +++ b/src/thirdparty/unrar/dll.rc @@ -2,8 +2,8 @@ #include VS_VERSION_INFO VERSIONINFO -FILEVERSION 5, 20, 100, 1433 -PRODUCTVERSION 5, 20, 100, 1433 +FILEVERSION 5, 21, 100, 1510 +PRODUCTVERSION 5, 21, 100, 1510 FILEOS VOS__WINDOWS32 FILETYPE VFT_APP { @@ -14,9 +14,9 @@ FILETYPE VFT_APP VALUE "CompanyName", "Alexander Roshal\0" VALUE "ProductName", "RAR decompression library\0" VALUE "FileDescription", "RAR decompression library\0" - VALUE "FileVersion", "5.20.0\0" - VALUE "ProductVersion", "5.20.0\0" - VALUE "LegalCopyright", "Copyright Alexander Roshal 1993-2014\0" + VALUE "FileVersion", "5.21.0\0" + VALUE "ProductVersion", "5.21.0\0" + VALUE "LegalCopyright", "Copyright Alexander Roshal 1993-2015\0" VALUE "OriginalFilename", "Unrar.dll\0" } } diff --git a/src/thirdparty/unrar/extinfo.cpp b/src/thirdparty/unrar/extinfo.cpp index 141967f2a21..01827eba049 100644 --- a/src/thirdparty/unrar/extinfo.cpp +++ b/src/thirdparty/unrar/extinfo.cpp @@ -60,14 +60,45 @@ void SetExtraInfo(CommandData *Cmd,Archive &Arc,wchar *Name) +bool IsRelativeSymlinkSafe(const wchar *SrcName,const wchar *TargetName) +{ + if (IsFullRootPath(SrcName)) + return false; + int AllowedDepth=0; + while (*SrcName!=0) + { + if (IsPathDiv(SrcName[0]) && SrcName[1]!=0 && !IsPathDiv(SrcName[1])) + { + bool Dot=SrcName[1]=='.' && (IsPathDiv(SrcName[2]) || SrcName[2]==0); + bool Dot2=SrcName[1]=='.' && SrcName[2]=='.' && (IsPathDiv(SrcName[3]) || SrcName[3]==0); + if (!Dot && !Dot2) + AllowedDepth++; + } + SrcName++; + } + if (IsFullRootPath(TargetName)) // Catch root dir based /path/file paths. + return false; + for (int Pos=0;*TargetName!=0;Pos++) + { + bool Dot2=TargetName[0]=='.' && TargetName[1]=='.' && + (IsPathDiv(TargetName[2]) || TargetName[2]==0) && + (Pos==0 || IsPathDiv(*(TargetName-1))); + if (Dot2) + AllowedDepth--; + TargetName++; + } + return AllowedDepth>=0; +} + + bool ExtractSymlink(CommandData *Cmd,ComprDataIO &DataIO,Archive &Arc,const wchar *LinkName) { #if defined(SAVE_LINKS) && defined(_UNIX) // For RAR 3.x archives we process links even in test mode to skip link data. if (Arc.Format==RARFMT15) - return ExtractUnixLink30(DataIO,Arc,LinkName); + return ExtractUnixLink30(Cmd,DataIO,Arc,LinkName); if (Arc.Format==RARFMT50) - return ExtractUnixLink50(LinkName,&Arc.FileHead); + return ExtractUnixLink50(Cmd,LinkName,&Arc.FileHead); #elif defined _WIN_ALL // RAR 5.0 archives store link information in file header, so there is // no need to additionally test it if we do not create a file. diff --git a/src/thirdparty/unrar/extinfo.hpp b/src/thirdparty/unrar/extinfo.hpp index 224564da824..b974bf489a0 100644 --- a/src/thirdparty/unrar/extinfo.hpp +++ b/src/thirdparty/unrar/extinfo.hpp @@ -1,6 +1,7 @@ #ifndef _RAR_EXTINFO_ #define _RAR_EXTINFO_ +bool IsRelativeSymlinkSafe(const wchar *SrcName,const wchar *TargetName); bool ExtractSymlink(CommandData *Cmd,ComprDataIO &DataIO,Archive &Arc,const wchar *LinkName); #ifdef _UNIX void SetUnixOwner(Archive &Arc,const wchar *FileName); diff --git a/src/thirdparty/unrar/extract.cpp b/src/thirdparty/unrar/extract.cpp index cab669fe9f2..a24eb940519 100644 --- a/src/thirdparty/unrar/extract.cpp +++ b/src/thirdparty/unrar/extract.cpp @@ -213,6 +213,8 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) #ifdef NOVOLUME return false; #else + // Supposing we unpack an old RAR volume without end of archive record + // and last file is not split between volumes. if (!MergeArchive(Arc,&DataIO,false,Command)) { ErrHandler.SetErrorCode(RARX_WARNING); @@ -257,17 +259,19 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) int MatchType=MATCH_WILDSUBPATH; bool EqualNames=false; - int MatchNumber=Cmd->IsProcessFile(Arc.FileHead,&EqualNames,MatchType); - bool ExactMatch=MatchNumber!=0; + wchar MatchedArg[NM]; + int MatchNumber=Cmd->IsProcessFile(Arc.FileHead,&EqualNames,MatchType,MatchedArg,ASIZE(MatchedArg)); + bool MatchFound=MatchNumber!=0; #ifndef SFX_MODULE - if (*Cmd->ArcPath==0 && Cmd->ExclPath==EXCL_BASEPATH && ExactMatch) + if (Cmd->ExclPath==EXCL_BASEPATH) { - Cmd->FileArgs.Rewind(); - if (Cmd->FileArgs.GetString(Cmd->ArcPath,ASIZE(Cmd->ArcPath),MatchNumber-1)) - *PointToName(Cmd->ArcPath)=0; + wcsncpyz(Cmd->ArcPath,MatchedArg,ASIZE(Cmd->ArcPath)); + *PointToName(Cmd->ArcPath)=0; + if (IsWildcard(Cmd->ArcPath)) // Cannot correctly process path*\* masks here. + *Cmd->ArcPath=0; } #endif - if (ExactMatch && !EqualNames) + if (MatchFound && !EqualNames) AllMatchesExact=false; Arc.ConvertAttributes(); @@ -309,17 +313,17 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) if (Cmd->VersionControl!=1 && !EqualNames) { if (Cmd->VersionControl==0) - ExactMatch=false; + MatchFound=false; int Version=ParseVersionFileName(ArcFileName,false); if (Cmd->VersionControl-1==Version) ParseVersionFileName(ArcFileName,true); else - ExactMatch=false; + MatchFound=false; } } else if (!Arc.IsArcDir() && Cmd->VersionControl>1) - ExactMatch=false; + MatchFound=false; DataIO.UnpVolume=Arc.FileHead.SplitAfter; DataIO.NextVolumeMissing=false; @@ -330,9 +334,9 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) bool SkipSolid=false; #ifndef SFX_MODULE - if (FirstFile && (ExactMatch || Arc.Solid) && Arc.FileHead.SplitBefore) + if (FirstFile && (MatchFound || Arc.Solid) && Arc.FileHead.SplitBefore) { - if (ExactMatch) + if (MatchFound) { uiMsg(UIERROR_NEEDPREVVOL,Arc.FileName,ArcFileName); #ifdef RARDLL @@ -340,13 +344,13 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) #endif ErrHandler.SetErrorCode(RARX_OPEN); } - ExactMatch=false; + MatchFound=false; } FirstFile=false; #endif - if (ExactMatch || (SkipSolid=Arc.Solid)!=0) + if (MatchFound || (SkipSolid=Arc.Solid)!=0) { // First common call of uiStartFileExtract. It is done before overwrite // prompts, so if SkipSolid state is changed below, we'll need to make @@ -383,9 +387,13 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) if (Arc.FileHead.Encrypted) { + // Stop archive extracting if user cancelled a password prompt. #ifdef RARDLL if (!ExtrDllGetPassword()) + { + Cmd->DllError=ERAR_MISSING_PASSWORD; return false; + } #else if (!ExtrGetPassword(Arc,ArcFileName)) { @@ -394,6 +402,9 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) } #endif // Skip only the current encrypted file if empty password is entered. + // Actually our "cancel" code above intercepts empty passwords too now, + // so we keep the code below just in case we'll decide process empty + // and cancelled passwords differently sometimes. if (!Cmd->Password.IsSet()) { ErrHandler.SetErrorCode(RARX_WARNING); @@ -406,13 +417,7 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) #ifdef RARDLL if (*Cmd->DllDestName!=0) - { wcsncpyz(DestFileName,Cmd->DllDestName,ASIZE(DestFileName)); - -// Do we need this code? -// if (Cmd->DllOpMode!=RAR_EXTRACT) -// ExtrFile=false; - } #endif if (!CheckUnpVer(Arc,ArcFileName)) @@ -711,7 +716,7 @@ bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool &Repeat) } } } - if (ExactMatch) + if (MatchFound) MatchedArgs++; if (DataIO.NextVolumeMissing) return false; @@ -882,8 +887,10 @@ bool CmdExtract::ExtrGetPassword(Archive &Arc,const wchar *ArcFileName) { if (!Cmd->Password.IsSet()) { - if (!uiGetPassword(UIPASSWORD_FILE,ArcFileName,&Cmd->Password)) + if (!uiGetPassword(UIPASSWORD_FILE,ArcFileName,&Cmd->Password) || !Cmd->Password.IsSet()) { + // Suppress "test is ok" message in GUI if user entered + // an empty password or cancelled a password prompt. uiMsg(UIERROR_INCERRCOUNT); return false; diff --git a/src/thirdparty/unrar/filcreat.cpp b/src/thirdparty/unrar/filcreat.cpp index 8b20b3fa960..6717eee902d 100644 --- a/src/thirdparty/unrar/filcreat.cpp +++ b/src/thirdparty/unrar/filcreat.cpp @@ -45,7 +45,6 @@ bool FileCreate(RAROptions *Cmd,File *NewFile,wchar *Name,size_t MaxNameSize, uint FileMode=WriteOnly ? FMF_WRITE|FMF_SHAREREAD:FMF_UPDATE|FMF_SHAREREAD; if (NewFile!=NULL && NewFile->Create(Name,FileMode)) return true; - PrepareToDelete(Name); CreatePath(Name,true); return NewFile!=NULL ? NewFile->Create(Name,FileMode):DelFile(Name); } diff --git a/src/thirdparty/unrar/file.cpp b/src/thirdparty/unrar/file.cpp index 8fba34adbbb..185474c2533 100644 --- a/src/thirdparty/unrar/file.cpp +++ b/src/thirdparty/unrar/file.cpp @@ -281,10 +281,10 @@ bool File::Rename(const wchar *NewName) } -void File::Write(const void *Data,size_t Size) +bool File::Write(const void *Data,size_t Size) { if (Size==0) - return; + return true; if (HandleType==FILE_HANDLESTD) { #ifdef _WIN_ALL @@ -301,9 +301,10 @@ void File::Write(const void *Data,size_t Size) } #endif } + bool Success; while (1) { - bool Success=false; + Success=false; #ifdef _WIN_ALL DWORD Written=0; if (HandleType!=FILE_HANDLENORMAL) @@ -352,6 +353,7 @@ void File::Write(const void *Data,size_t Size) break; } LastWrite=true; + return Success; // It can return false only if AllowExceptions is disabled. } diff --git a/src/thirdparty/unrar/file.hpp b/src/thirdparty/unrar/file.hpp index 93aac89f3b7..0d6534ff7ba 100644 --- a/src/thirdparty/unrar/file.hpp +++ b/src/thirdparty/unrar/file.hpp @@ -80,7 +80,7 @@ class File bool Close(); bool Delete(); bool Rename(const wchar *NewName); - void Write(const void *Data,size_t Size); + bool Write(const void *Data,size_t Size); virtual int Read(void *Data,size_t Size); int DirectRead(void *Data,size_t Size); virtual void Seek(int64 Offset,int Method); diff --git a/src/thirdparty/unrar/filestr.cpp b/src/thirdparty/unrar/filestr.cpp index a87384f2499..5fa946a4d81 100644 --- a/src/thirdparty/unrar/filestr.cpp +++ b/src/thirdparty/unrar/filestr.cpp @@ -38,16 +38,20 @@ bool ReadTextFile( unsigned int DataSize=0,ReadSize; const int ReadBlock=4096; - Array Data(ReadBlock+3); + + // Our algorithm below needs at least two trailing zeroes after data. + // So for Unicode we provide 2 Unicode zeroes and one more byte + // in case read Unicode data contains uneven number of bytes. + const size_t ZeroPadding=5; + + Array Data(ReadBlock+ZeroPadding); while ((ReadSize=SrcFile.Read(&Data[DataSize],ReadBlock))!=0) { DataSize+=ReadSize; - Data.Add(ReadSize); + Data.Add(ReadSize); // Always have ReadBlock available for next data. } - - // Add trailing Unicode zero after text data. We add 3 bytes instead of 2 - // in case read Unicode data contains uneven number of bytes. - memset(&Data[DataSize],0,3); + + memset(&Data[DataSize],0,ZeroPadding); // Provide at least 2 Unicode zero bytes. Array WideStr; diff --git a/src/thirdparty/unrar/loclang.hpp b/src/thirdparty/unrar/loclang.hpp index fb560713a6e..52bcafe92c5 100644 --- a/src/thirdparty/unrar/loclang.hpp +++ b/src/thirdparty/unrar/loclang.hpp @@ -99,7 +99,7 @@ #define MCHelpSwOC L"\n oc Set NTFS Compressed attribute" #define MCHelpSwOH L"\n oh Save hard links as the link instead of the file" #define MCHelpSwOI L"\n oi[0-4][:min] Save identical files as references" -#define MCHelpSwOL L"\n ol Save symbolic links as the link instead of the file" +#define MCHelpSwOL L"\n ol[a] Process symbolic links as the link [absolute paths]" #define MCHelpSwOR L"\n or Rename files automatically" #define MCHelpSwOS L"\n os Save NTFS streams" #define MCHelpSwOW L"\n ow Save or restore file owner and group" diff --git a/src/thirdparty/unrar/options.hpp b/src/thirdparty/unrar/options.hpp index ba9c0ca8272..a6ec227f011 100644 --- a/src/thirdparty/unrar/options.hpp +++ b/src/thirdparty/unrar/options.hpp @@ -132,6 +132,7 @@ class RAROptions bool ProcessOwners; bool SaveSymLinks; bool SaveHardLinks; + bool AbsoluteLinks; int Priority; int SleepTime; bool KeepBroken; diff --git a/src/thirdparty/unrar/os.hpp b/src/thirdparty/unrar/os.hpp index 84f8fc92a48..1b0813f6c0c 100644 --- a/src/thirdparty/unrar/os.hpp +++ b/src/thirdparty/unrar/os.hpp @@ -79,6 +79,7 @@ #include #include + #define SAVE_LINKS #define ENABLE_ACCESS @@ -154,6 +155,7 @@ #include #include + #ifdef S_IFLNK #define SAVE_LINKS #endif diff --git a/src/thirdparty/unrar/pathfn.cpp b/src/thirdparty/unrar/pathfn.cpp index bfd3b588ed7..b6e220eee67 100644 --- a/src/thirdparty/unrar/pathfn.cpp +++ b/src/thirdparty/unrar/pathfn.cpp @@ -29,7 +29,7 @@ wchar* ConvertPath(const wchar *SrcPath,wchar *DestPath) while (*DestPtr!=0) { const wchar *s=DestPtr; - if (s[0] && IsDriveDiv(s[1])) + if (s[0]!=0 && IsDriveDiv(s[1])) s+=2; if (s[0]=='\\' && s[1]=='\\') { @@ -541,6 +541,12 @@ bool IsFullPath(const wchar *Path) } +bool IsFullRootPath(const wchar *Path) +{ + return IsFullPath(Path) || IsPathDiv(Path[0]); +} + + bool IsDiskLetter(const wchar *Path) { wchar Letter=etoupperw(Path[0]); diff --git a/src/thirdparty/unrar/pathfn.hpp b/src/thirdparty/unrar/pathfn.hpp index fabb2934020..ae1f8c2e83c 100644 --- a/src/thirdparty/unrar/pathfn.hpp +++ b/src/thirdparty/unrar/pathfn.hpp @@ -56,6 +56,7 @@ inline void SlashToNative(const wchar *SrcName,wchar *DestName,size_t MaxLength) void ConvertNameToFull(const wchar *Src,wchar *Dest,size_t MaxSize); bool IsFullPath(const wchar *Path); +bool IsFullRootPath(const wchar *Path); bool IsDiskLetter(const wchar *Path); void GetPathRoot(const wchar *Path,wchar *Root,size_t MaxSize); int ParseVersionFileName(wchar *Name,bool Truncate); diff --git a/src/thirdparty/unrar/strfn.cpp b/src/thirdparty/unrar/strfn.cpp index f83482fb2b4..e234da8342a 100644 --- a/src/thirdparty/unrar/strfn.cpp +++ b/src/thirdparty/unrar/strfn.cpp @@ -19,7 +19,7 @@ void IntToExt(const char *Src,char *Dest,size_t DestSize) Dest[DestSize-1]=0; #elif defined(_ANDROID) wchar DestW[NM]; - UnkToWide(Src,DestW,ASIZE(DestW)); + JniCharToWide(Src,DestW,ASIZE(DestW),true); WideToChar(DestW,Dest,DestSize); #else if (Dest!=Src) diff --git a/src/thirdparty/unrar/timefn.cpp b/src/thirdparty/unrar/timefn.cpp index 3fa535f4ccd..ba9f49686ef 100644 --- a/src/thirdparty/unrar/timefn.cpp +++ b/src/thirdparty/unrar/timefn.cpp @@ -223,7 +223,7 @@ void RarTime::GetText(wchar *DateStr,size_t MaxSize,bool FullYear,bool FullMS) RarLocalTime lt; GetLocal(<); if (FullMS) - swprintf(DateStr,MaxSize,L"%u-%02u-%02u %02u:%02u,%03u",lt.Year,lt.Month,lt.Day,lt.Hour,lt.Minute,lt.Reminder/10000); + swprintf(DateStr,MaxSize,L"%u-%02u-%02u %02u:%02u:%02u,%03u",lt.Year,lt.Month,lt.Day,lt.Hour,lt.Minute,lt.Second,lt.Reminder/10000); else if (FullYear) swprintf(DateStr,MaxSize,L"%02u-%02u-%u %02u:%02u",lt.Day,lt.Month,lt.Year,lt.Hour,lt.Minute); diff --git a/src/thirdparty/unrar/uicommon.cpp b/src/thirdparty/unrar/uicommon.cpp index 7238c193631..5be551a42c0 100644 --- a/src/thirdparty/unrar/uicommon.cpp +++ b/src/thirdparty/unrar/uicommon.cpp @@ -22,11 +22,18 @@ UIASKREP_RESULT uiAskReplaceEx(RAROptions *Cmd,wchar *Name,size_t MaxNameSize,in // This check must be after OVERWRITE_AUTORENAME processing or -y switch // would override -or. if (Cmd->AllYes || Cmd->Overwrite==OVERWRITE_ALL) + { + PrepareToDelete(Name); return UIASKREP_R_REPLACE; + } wchar NewName[NM]; wcsncpyz(NewName,Name,ASIZE(NewName)); UIASKREP_RESULT Choice=uiAskReplace(NewName,ASIZE(NewName),FileSize,FileTime,Flags); + + if (Choice==UIASKREP_R_REPLACE || Choice==UIASKREP_R_REPLACEALL) + PrepareToDelete(Name); + if (Choice==UIASKREP_R_REPLACEALL) { Cmd->Overwrite=OVERWRITE_ALL; diff --git a/src/thirdparty/unrar/uiconsole.cpp b/src/thirdparty/unrar/uiconsole.cpp index b9129c4f7a2..ba7550c6b19 100644 --- a/src/thirdparty/unrar/uiconsole.cpp +++ b/src/thirdparty/unrar/uiconsole.cpp @@ -9,10 +9,17 @@ UIASKREP_RESULT uiAskReplace(wchar *Name,size_t MaxNameSize,int64 FileSize,RarTi itoa(ExistingFD.Size,SizeText1); ExistingFD.mtime.GetText(DateStr1,ASIZE(DateStr1),true,false); - itoa(FileSize,SizeText2); - FileTime->GetText(DateStr2,ASIZE(DateStr2),true,false); - - eprintf(St(MAskReplace),Name,SizeText1,DateStr1,SizeText2,DateStr2); + if (FileSize==INT64NDF || FileTime==NULL) + { + eprintf(L"\n"); + eprintf(St(MAskOverwrite),Name); + } + else + { + itoa(FileSize,SizeText2); + FileTime->GetText(DateStr2,ASIZE(DateStr2),true,false); + eprintf(St(MAskReplace),Name,SizeText1,DateStr1,SizeText2,DateStr2); + } bool AllowRename=(Flags & UIASKREP_F_NORENAME)==0; int Choice=0; diff --git a/src/thirdparty/unrar/ulinks.cpp b/src/thirdparty/unrar/ulinks.cpp index b51ff628241..c6d2f874a50 100644 --- a/src/thirdparty/unrar/ulinks.cpp +++ b/src/thirdparty/unrar/ulinks.cpp @@ -30,7 +30,13 @@ static bool UnixSymlink(const char *Target,const wchar *LinkName,RarTime *ftm,Ra } -bool ExtractUnixLink30(ComprDataIO &DataIO,Archive &Arc,const wchar *LinkName) +static bool IsFullPath(const char *PathA) // Unix ASCII version. +{ + return *PathA==CPATHDIVIDER; +} + + +bool ExtractUnixLink30(CommandData *Cmd,ComprDataIO &DataIO,Archive &Arc,const wchar *LinkName) { char Target[NM]; if (IsLink(Arc.FileHead.FileAttr)) @@ -48,13 +54,16 @@ bool ExtractUnixLink30(ComprDataIO &DataIO,Archive &Arc,const wchar *LinkName) if (!DataIO.UnpHash.Cmp(&Arc.FileHead.FileHash,Arc.FileHead.UseHashKey ? Arc.FileHead.HashKey:NULL)) return true; + if (!Cmd->AbsoluteLinks && (IsFullPath(Target) || + !IsRelativeSymlinkSafe(Arc.FileHead.FileName,Arc.FileHead.RedirName))) + return false; return UnixSymlink(Target,LinkName,&Arc.FileHead.mtime,&Arc.FileHead.atime); } return false; } -bool ExtractUnixLink50(const wchar *Name,FileHeader *hd) +bool ExtractUnixLink50(CommandData *Cmd,const wchar *Name,FileHeader *hd) { char Target[NM]; WideToChar(hd->RedirName,Target,ASIZE(Target)); @@ -68,5 +77,8 @@ bool ExtractUnixLink50(const wchar *Name,FileHeader *hd) return false; DosSlashToUnix(Target,Target,ASIZE(Target)); } + if (!Cmd->AbsoluteLinks && (IsFullPath(Target) || + !IsRelativeSymlinkSafe(hd->FileName,hd->RedirName))) + return false; return UnixSymlink(Target,Name,&hd->mtime,&hd->atime); } diff --git a/src/thirdparty/unrar/unpack50.cpp b/src/thirdparty/unrar/unpack50.cpp index d1188ee856d..7821a3e6b26 100644 --- a/src/thirdparty/unrar/unpack50.cpp +++ b/src/thirdparty/unrar/unpack50.cpp @@ -570,7 +570,7 @@ bool Unpack::ReadTables(BitInput &Inp,UnpackBlockHeader &Header,UnpackBlockTable else { ZeroCount+=2; - while (ZeroCount-- > 0 && I 0 && IReadTop-5) if (!UnpReadBuf()) - return(false); + return false; int Number=DecodeNumber(Inp,&Tables.BD); if (Number<16) { @@ -633,12 +633,12 @@ bool Unpack::ReadTables(BitInput &Inp,UnpackBlockHeader &Header,UnpackBlockTable } } if (!Inp.ExternalBuffer && Inp.InAddr>ReadTop) - return(false); + return false; MakeDecodeTables(&Table[0],&Tables.LD,NC); MakeDecodeTables(&Table[NC],&Tables.DD,DC); MakeDecodeTables(&Table[NC+DC],&Tables.LDD,LDC); MakeDecodeTables(&Table[NC+DC+LDC],&Tables.RD,RC); - return(true); + return true; } diff --git a/src/thirdparty/unrar/unpack50mt.cpp b/src/thirdparty/unrar/unpack50mt.cpp index 6015379ccfb..9925cf2b8ba 100644 --- a/src/thirdparty/unrar/unpack50mt.cpp +++ b/src/thirdparty/unrar/unpack50mt.cpp @@ -80,6 +80,10 @@ void Unpack::Unpack5MT(bool Solid) bool Done=false; while (!Done) { + // Data amount, which is guaranteed to fit block header and tables, + // so we can safely read them without additional checks. + const int TooSmallToProcess=1024; + int ReadSize=UnpIO->UnpRead(ReadBufMT+DataSize,(UNP_READ_SIZE_MT-DataSize)&~0xf); if (ReadSize<0) break; @@ -87,13 +91,14 @@ void Unpack::Unpack5MT(bool Solid) if (DataSize==0) break; + // First read chunk can be small if we are near the end of volume + // and we want it to fit block header and tables. + if (ReadSize>0 && DataSizeDir || hd->DirTarget) - { - if (!CreateDirectory(Name,NULL)) - return false; - } - else - { - HANDLE hFile=CreateFile(Name,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); - if (hFile == INVALID_HANDLE_VALUE) - return false; - CloseHandle(hFile); - } - const DWORD BufSize=sizeof(REPARSE_DATA_BUFFER)+2*NM+1024; Array Buf(BufSize); REPARSE_DATA_BUFFER *rdb=(REPARSE_DATA_BUFFER *)&Buf[0]; @@ -79,6 +62,26 @@ bool CreateReparsePoint(CommandData *Cmd,const wchar *Name,FileHeader *hd) size_t PrintLength=wcslen(PrintName); bool AbsPath=WinPrefix; + if (!Cmd->AbsoluteLinks && (AbsPath || !IsRelativeSymlinkSafe(hd->FileName,hd->RedirName))) + return false; + + CreatePath(Name,true); + + // 'DirTarget' check is important for Unix symlinks to directories. + // Unix symlinks do not have their own 'directory' attribute. + if (hd->Dir || hd->DirTarget) + { + if (!CreateDirectory(Name,NULL)) + return false; + } + else + { + HANDLE hFile=CreateFile(Name,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); + if (hFile == INVALID_HANDLE_VALUE) + return false; + CloseHandle(hFile); + } + if (hd->RedirType==FSREDIR_JUNCTION) { diff --git a/src/thirdparty/versions.txt b/src/thirdparty/versions.txt index 80771679206..b2ced440e33 100644 --- a/src/thirdparty/versions.txt +++ b/src/thirdparty/versions.txt @@ -1,19 +1,19 @@ Project Version ---------------------------------------- -CSizingControlBar 2.45 -LAV Filters 0.63-58-5f45b57 (custom build based on 0.63-52-17b2dae) -Little CMS 2.7 (git 8174681) +CSizingControlBar 2.45 (modified) +LAV Filters 0.65-13-79ba86d (custom build based on 0.65-9-5c5ff95) +Little CMS 2.7 (git 6e33faa) Logitech SDK 3.01 (driver 8.00.100) -MediaInfoLib 0.7.71 +MediaInfoLib 0.7.73 Mhook 2.3 (modified) MultiMon 28 Aug '03 (modified) QuickTime SDK 7.3 RARFileSource 0.9.3 (modified) RealMedia SDK - ResizableLib 1.3 -SoundTouch 1.8.0 r201 +SoundTouch 1.9.0 TreePropSheet 7 Mar '03 (modified) -UnRAR 5.2.3 +UnRAR 5.2.7 VirtualDub 1.10.4 -ZenLib 0.4.29 r498 +ZenLib 0.4.31 zlib 1.2.8 diff --git a/update_version.bat b/update_version.bat index a837a95f310..9a6651385c6 100755 --- a/update_version.bat +++ b/update_version.bat @@ -1,5 +1,5 @@ @ECHO OFF -REM (C) 2010-2013 see Authors.txt +REM (C) 2010-2013, 2015 see Authors.txt REM REM This file is part of MPC-HC. REM @@ -18,19 +18,20 @@ REM along with this program. If not, see . SETLOCAL +SET "FILE_DIR=%~dp0" +PUSHD "%FILE_DIR%" -PUSHD %~dp0 +SET "COMMON=%FILE_DIR%\common.bat" -IF EXIST "build.user.bat" ( - CALL "build.user.bat" -) ELSE ( - IF DEFINED GIT (SET MPCHC_GIT=%GIT%) - IF DEFINED MSYS (SET MPCHC_MSYS=%MSYS%) ELSE (GOTO MissingVar) -) +IF EXIST "build.user.bat" CALL "build.user.bat" -SET PATH=%MPCHC_MSYS%\bin;%MPCHC_GIT%\cmd;%PATH% -FOR %%G IN (bash.exe) DO (SET FOUND=%%~$PATH:G) -IF NOT DEFINED FOUND GOTO MissingVar +IF NOT DEFINED MPCHC_GIT IF DEFINED GIT (SET MPCHC_GIT=%GIT%) +SET "PATH=%MPCHC_GIT%\cmd;%PATH%" + +CALL "%COMMON%" :SubSetPath +IF %ERRORLEVEL% NEQ 0 GOTO MissingVar +CALL "%COMMON%" :SubDoesExist bash.exe +IF %ERRORLEVEL% NEQ 0 GOTO MissingVar bash.exe ./version.sh diff --git a/version.sh b/version.sh index 09a8eb29159..ff902b15213 100755 --- a/version.sh +++ b/version.sh @@ -1,5 +1,5 @@ #!/bin/bash -# (C) 2012-2013 see Authors.txt +# (C) 2012-2013, 2015 see Authors.txt # # This file is part of MPC-HC. # @@ -23,11 +23,11 @@ manifestfile="./src/mpc-hc/res/mpc-hc.exe.manifest" # Read major, minor and patch version numbers from static version.h file while read -r _ var value; do if [[ $var == MPC_VERSION_MAJOR ]]; then - ver_fixed_major=$value + ver_fixed_major=$(echo $value|tr -d '\r') elif [[ $var == MPC_VERSION_MINOR ]]; then - ver_fixed_minor=$value + ver_fixed_minor=$(echo $value|tr -d '\r') elif [[ $var == MPC_VERSION_PATCH ]]; then - ver_fixed_patch=$value + ver_fixed_patch=$(echo $value|tr -d '\r') fi done < "$versionfile_fixed" ver_fixed="${ver_fixed_major}.${ver_fixed_minor}.${ver_fixed_patch}" @@ -80,9 +80,26 @@ else fi fi +gcc_exe=('gcc' 'x86_64-w64-mingw32-gcc') +gcc_version_str=() + +for gcc in "${gcc_exe[@]}"; do + gcc_machine=$($gcc -dumpmachine) + if [ "$gcc_machine" != "" ];then + if [[ $gcc_machine == *"w64-mingw32" ]]; then + mingw_name="MinGW-w64" + elif [[ $gcc_machine == *"-mingw32" ]]; then + mingw_name="MinGW" + fi + gcc_version_str+=("$mingw_name GCC $($gcc -dumpversion)") + fi +done + version_info+="#define MPCHC_HASH _T(\"$hash\")"$'\n' version_info+="#define MPC_VERSION_REV $ver"$'\n' -version_info+="#define MPC_VERSION_ADDITIONAL _T(\"${ver_additional}\")" +version_info+="#define MPC_VERSION_ADDITIONAL _T(\"${ver_additional}\")"$'\n' +version_info+="#define GCC32_VERSION _T(\"${gcc_version_str[0]}\")"$'\n' +version_info+="#define GCC64_VERSION _T(\"${gcc_version_str[1]}\")" # Update version_rev.h if it does not exist, or if version information was changed.