Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnderground78 <underground78@users.sourceforge.net>2015-06-01 00:15:05 +0300
committerUnderground78 <underground78@users.sourceforge.net>2015-06-01 00:15:05 +0300
commit846eff07c13899dd7d3bf38251886b5263d41213 (patch)
tree9451569d7d9f03251eb2e385040af74d4a508ab2
parent6fcba1bead7608fb480ab943ab9689bc66f4e009 (diff)
parente3f50f602e94794e29a17407e46b64b1ebb32232 (diff)
Merge branch 'release-1.7.9'1.7.9
-rw-r--r--.gitignore5
-rw-r--r--Readme.md46
-rwxr-xr-xbuild.bat220
-rw-r--r--common.bat168
-rw-r--r--contrib/astyle.ini12
-rwxr-xr-xcontrib/coverity.bat97
-rwxr-xr-xcontrib/run_astyle.bat8
-rwxr-xr-xcontrib/sign.bat11
-rw-r--r--distrib/Languages/Bengali.islu12
-rw-r--r--distrib/custom_messages_translated.iss58
-rw-r--r--distrib/mpc-hc_setup.iss14
-rw-r--r--docs/Changelog.txt161
-rw-r--r--docs/Changelog_old.txt84
-rw-r--r--docs/Readme.txt20
-rw-r--r--include/inttypes.h306
-rw-r--r--include/moreuuids.h3
-rw-r--r--include/mpc-hc_config.h8
-rw-r--r--include/mvrInterfaces.h171
-rw-r--r--include/version.h2
-rw-r--r--mpc-hc.sln24
-rw-r--r--mpcresources.sln6
-rw-r--r--src/DSUtil/ArrayUtils.h27
-rw-r--r--src/DSUtil/DSUtil.cpp101
-rw-r--r--src/DSUtil/DSUtil.h8
-rw-r--r--src/DSUtil/DSUtil.vcxproj1
-rw-r--r--src/DSUtil/DSUtil.vcxproj.filters3
-rw-r--r--src/DSUtil/MediaTypeEx.cpp4
-rw-r--r--src/DSUtil/Mpeg2Def.h11
-rw-r--r--src/DSUtil/PathUtils.cpp63
-rw-r--r--src/DSUtil/PathUtils.h6
-rw-r--r--src/DSUtil/deinterlace.cpp2
-rw-r--r--src/DSUtil/text.h7
-rw-r--r--src/DSUtil/vd.cpp56
-rw-r--r--src/DSUtil/vd.h1
-rw-r--r--src/DeCSS/DeCSSInputPin.cpp4
-rw-r--r--src/DeCSS/VobFile.cpp99
-rw-r--r--src/DeCSS/udf.cpp2
-rw-r--r--src/SubPic/ISubPic.h3
-rw-r--r--src/SubPic/MemSubPic.cpp184
-rw-r--r--src/SubPic/MemSubPic.h23
-rw-r--r--src/SubPic/SubPicAllocatorPresenterImpl.cpp16
-rw-r--r--src/SubPic/SubPicAllocatorPresenterImpl.h5
-rw-r--r--src/SubPic/SubPicImpl.h2
-rw-r--r--src/SubPic/SubPicQueueImpl.cpp8
-rw-r--r--src/Subtitles/ColorConvTable.cpp885
-rw-r--r--src/Subtitles/ColorConvTable.h69
-rw-r--r--src/Subtitles/CompositionObject.cpp34
-rw-r--r--src/Subtitles/CompositionObject.h5
-rw-r--r--src/Subtitles/DVBSub.cpp141
-rw-r--r--src/Subtitles/DVBSub.h172
-rw-r--r--src/Subtitles/PGSSub.cpp61
-rw-r--r--src/Subtitles/PGSSub.h25
-rw-r--r--src/Subtitles/RLECodedSubtitle.cpp38
-rw-r--r--src/Subtitles/RLECodedSubtitle.h20
-rw-r--r--src/Subtitles/RTS.cpp72
-rw-r--r--src/Subtitles/RTS.h3
-rw-r--r--src/Subtitles/Rasterizer.cpp10
-rw-r--r--src/Subtitles/STS.cpp26
-rw-r--r--src/Subtitles/STS.h3
-rw-r--r--src/Subtitles/SeparableFilter.h5
-rw-r--r--src/Subtitles/SubtitleInputPin.cpp18
-rw-r--r--src/Subtitles/SubtitleInputPin.h7
-rw-r--r--src/Subtitles/Subtitles.vcxproj2
-rw-r--r--src/Subtitles/Subtitles.vcxproj.filters6
-rw-r--r--src/Subtitles/USFSubtitles.cpp10
-rw-r--r--src/Subtitles/VobSubFile.cpp38
-rw-r--r--src/Subtitles/VobSubFile.h6
-rw-r--r--src/Subtitles/VobSubFileRipper.cpp11
-rw-r--r--src/Subtitles/VobSubImage.cpp8
-rw-r--r--src/Subtitles/stdafx.h6
-rwxr-xr-xsrc/YASM.bat13
-rw-r--r--src/common-3rd-party.props2
-rw-r--r--src/common.props6
-rw-r--r--src/filters/PinInfoWnd.cpp28
-rw-r--r--src/filters/PinInfoWnd.h4
-rw-r--r--src/filters/muxer/BaseMuxer/BaseMuxerOutputPin.cpp6
-rw-r--r--src/filters/muxer/DSMMuxer/DSMMuxer.cpp4
-rw-r--r--src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp14
-rw-r--r--src/filters/muxer/MatroskaMuxer/MatroskaMuxer.cpp16
-rw-r--r--src/filters/parser/StreamDriveThru/StreamDriveThru.cpp5
-rw-r--r--src/filters/reader/CDDAReader/CDDAReader.cpp73
-rw-r--r--src/filters/reader/CDDAReader/CDDAReader.h3
-rw-r--r--src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp8
-rw-r--r--src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp21
-rw-r--r--src/filters/renderer/VideoRenderers/DXRAllocatorPresenter.cpp30
-rw-r--r--src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.cpp403
-rw-r--r--src/filters/renderer/VideoRenderers/EVRAllocatorPresenter.h48
-rw-r--r--src/filters/renderer/VideoRenderers/IPinHook.cpp77
-rw-r--r--src/filters/renderer/VideoRenderers/IPinHook.h5
-rw-r--r--src/filters/renderer/VideoRenderers/RM7AllocatorPresenter.cpp7
-rw-r--r--src/filters/renderer/VideoRenderers/RenderersSettings.cpp14
-rw-r--r--src/filters/renderer/VideoRenderers/RenderersSettings.h7
-rw-r--r--src/filters/renderer/VideoRenderers/SyncRenderer.cpp258
-rw-r--r--src/filters/renderer/VideoRenderers/SyncRenderer.h39
-rw-r--r--src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp10
-rw-r--r--src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.h11
-rw-r--r--src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp5
-rw-r--r--src/filters/transform/VSFilter/Copy.cpp6
-rw-r--r--src/filters/transform/VSFilter/DirectVobSub.cpp10
-rw-r--r--src/filters/transform/VSFilter/DirectVobSubFilter.cpp45
-rw-r--r--src/filters/transform/VSFilter/StyleEditorDialog.cpp5
-rwxr-xr-xsrc/filters/transform/VSFilter/installer/build_installer.bat45
-rw-r--r--src/mpc-hc/AboutDlg.cpp5
-rw-r--r--src/mpc-hc/AppSettings.cpp464
-rw-r--r--src/mpc-hc/AppSettings.h66
-rw-r--r--src/mpc-hc/AuthDlg.cpp8
-rw-r--r--src/mpc-hc/ChildView.cpp27
-rw-r--r--src/mpc-hc/CrashReporter.cpp147
-rw-r--r--src/mpc-hc/CrashReporter.h (renamed from src/mpc-hc/MiniDump.h)58
-rw-r--r--src/mpc-hc/CrashReporterDialog.cpp155
-rw-r--r--src/mpc-hc/CrashReporterDialog.h88
-rw-r--r--src/mpc-hc/DVBChannel.cpp3
-rw-r--r--src/mpc-hc/DVBChannel.h3
-rw-r--r--src/mpc-hc/DebugShadersDlg.cpp4
-rw-r--r--src/mpc-hc/DropTarget.cpp126
-rw-r--r--src/mpc-hc/DropTarget.h (renamed from src/mpc-hc/FileDropTarget.h)123
-rw-r--r--src/mpc-hc/EventDispatcher.h3
-rw-r--r--src/mpc-hc/FGFilter.cpp28
-rw-r--r--src/mpc-hc/FGFilter.h4
-rw-r--r--src/mpc-hc/FGFilterLAV.cpp3
-rw-r--r--src/mpc-hc/FGManager.cpp60
-rw-r--r--src/mpc-hc/FGManagerBDA.cpp110
-rw-r--r--src/mpc-hc/FGManagerBDA.h43
-rw-r--r--src/mpc-hc/FileDropTarget.cpp73
-rw-r--r--src/mpc-hc/FilterEnum.h12
-rw-r--r--src/mpc-hc/FreeviewEPGDecode.cpp5
-rw-r--r--src/mpc-hc/ISDb.cpp5
-rw-r--r--src/mpc-hc/InternalFiltersConfig.h18
-rw-r--r--src/mpc-hc/LcdSupport.cpp17
-rw-r--r--src/mpc-hc/Logger.h90
-rw-r--r--src/mpc-hc/MPCPngImage.cpp22
-rw-r--r--src/mpc-hc/MPCPngImage.h6
-rw-r--r--src/mpc-hc/MainFrm.cpp872
-rw-r--r--src/mpc-hc/MainFrm.h45
-rw-r--r--src/mpc-hc/MainFrmControls.cpp1
-rw-r--r--src/mpc-hc/MediaFormats.cpp5
-rw-r--r--src/mpc-hc/MiniDump.cpp115
-rw-r--r--src/mpc-hc/MouseTouch.cpp24
-rw-r--r--src/mpc-hc/MouseTouch.h10
-rw-r--r--src/mpc-hc/MpcApi.h8
-rw-r--r--src/mpc-hc/Mpeg2SectionData.cpp17
-rw-r--r--src/mpc-hc/OpenDirHelper.cpp27
-rw-r--r--src/mpc-hc/OpenDirHelper.h4
-rw-r--r--src/mpc-hc/OpenFileDlg.cpp30
-rw-r--r--src/mpc-hc/PPageAccelTbl.cpp5
-rw-r--r--src/mpc-hc/PPageAdvanced.cpp9
-rw-r--r--src/mpc-hc/PPageAdvanced.h9
-rw-r--r--src/mpc-hc/PPageAudioSwitcher.cpp4
-rw-r--r--src/mpc-hc/PPageCapture.cpp27
-rw-r--r--src/mpc-hc/PPageExternalFilters.cpp30
-rw-r--r--src/mpc-hc/PPageExternalFilters.h11
-rw-r--r--src/mpc-hc/PPageFileInfoClip.cpp5
-rw-r--r--src/mpc-hc/PPageFileInfoDetails.cpp5
-rw-r--r--src/mpc-hc/PPageFileInfoRes.cpp5
-rw-r--r--src/mpc-hc/PPageFileMediaInfo.cpp5
-rw-r--r--src/mpc-hc/PPageInternalFilters.cpp16
-rw-r--r--src/mpc-hc/PPageOutput.cpp13
-rw-r--r--src/mpc-hc/PPagePlayback.cpp11
-rw-r--r--src/mpc-hc/PPagePlayback.h3
-rw-r--r--src/mpc-hc/PPageSubStyle.cpp5
-rw-r--r--src/mpc-hc/PPageSubtitles.cpp9
-rw-r--r--src/mpc-hc/PlayerBar.cpp54
-rw-r--r--src/mpc-hc/PlayerBar.h4
-rw-r--r--src/mpc-hc/PlayerCaptureDialog.cpp9
-rw-r--r--src/mpc-hc/PlayerInfoBar.cpp16
-rw-r--r--src/mpc-hc/PlayerInfoBar.h6
-rw-r--r--src/mpc-hc/PlayerListCtrl.h3
-rw-r--r--src/mpc-hc/PlayerNavigationDialog.cpp8
-rw-r--r--src/mpc-hc/PlayerNavigationDialog.h13
-rw-r--r--src/mpc-hc/PlayerPlaylistBar.cpp103
-rw-r--r--src/mpc-hc/PlayerPlaylistBar.h12
-rw-r--r--src/mpc-hc/PlayerStatusBar.cpp63
-rw-r--r--src/mpc-hc/PlayerStatusBar.h6
-rw-r--r--src/mpc-hc/PlayerSubresyncBar.cpp60
-rw-r--r--src/mpc-hc/PlayerSubresyncBar.h10
-rw-r--r--src/mpc-hc/PlayerToolBar.cpp4
-rw-r--r--src/mpc-hc/Playlist.cpp171
-rw-r--r--src/mpc-hc/Playlist.h41
-rw-r--r--src/mpc-hc/QuicktimeGraph.cpp4
-rw-r--r--src/mpc-hc/RegFilterChooserDlg.cpp4
-rw-r--r--src/mpc-hc/SettingsDefines.h4
-rw-r--r--src/mpc-hc/Translations.cpp1
-rw-r--r--src/mpc-hc/TunerScanDlg.cpp20
-rw-r--r--src/mpc-hc/VMROSD.cpp1
-rw-r--r--src/mpc-hc/VMROSD.h5
-rw-r--r--src/mpc-hc/VersionInfo.cpp11
-rw-r--r--src/mpc-hc/VersionInfo.h28
-rw-r--r--src/mpc-hc/WebClientSocket.cpp148
-rw-r--r--src/mpc-hc/WebClientSocket.h5
-rw-r--r--src/mpc-hc/mpc-hc.rc175
-rw-r--r--src/mpc-hc/mpc-hc.vcxproj21
-rw-r--r--src/mpc-hc/mpc-hc.vcxproj.filters37
-rw-r--r--src/mpc-hc/mpciconlib/mpciconlib.cpp6
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ar.dialogs.po38
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ar.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ar.strings.po174
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.be.dialogs.po42
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.be.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.be.strings.po178
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.bn.dialogs.po72
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.bn.menus.po62
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.bn.strings.po368
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ca.dialogs.po283
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ca.menus.po181
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ca.strings.po536
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.cs.dialogs.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.cs.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.cs.strings.po190
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.da.dialogs.po1695
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.da.menus.po700
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.da.strings.po3612
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.de.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.de.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.de.strings.po322
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.dialogs.pot40
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.el.dialogs.po48
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.el.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.el.strings.po192
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.en_GB.strings.po202
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.es.dialogs.po63
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.es.menus.po62
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.es.strings.po203
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.eu.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.eu.menus.po66
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.eu.strings.po192
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.fi.dialogs.po42
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.fi.menus.po57
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.fi.strings.po180
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.fr.dialogs.po52
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.fr.menus.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.fr.strings.po182
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.gl.dialogs.po52
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.gl.menus.po117
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.gl.strings.po206
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.he.dialogs.po42
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.he.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.he.strings.po176
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hr.dialogs.po110
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hr.menus.po76
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hr.strings.po408
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hu.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hu.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hu.strings.po231
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hy.dialogs.po38
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hy.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.hy.strings.po174
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.bn.strings.po14
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.ca.strings.po16
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.da.strings.po83
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.es.strings.po6
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.gl.strings.po16
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.hr.strings.po6
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.it.strings.po6
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.ja.strings.po6
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.ko.strings.po4
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.nl.strings.po2
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.ro.strings.po6
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.installer.ru.strings.po2
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.it.dialogs.po54
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.it.menus.po61
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.it.strings.po192
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ja.dialogs.po80
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ja.menus.po66
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ja.strings.po228
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ko.dialogs.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ko.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ko.strings.po178
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.menus.pot44
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.dialogs.po48
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ms_MY.strings.po190
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.nl.dialogs.po54
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.nl.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.nl.strings.po251
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.pl.dialogs.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.pl.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.pl.strings.po200
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.dialogs.po48
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.pt_BR.strings.po188
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ro.dialogs.po68
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ro.menus.po66
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ro.strings.po224
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ru.dialogs.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ru.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.ru.strings.po196
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sk.dialogs.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sk.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sk.strings.po186
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sl.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sl.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sl.strings.po214
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sr.dialogs.po46
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sr.menus.po52
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sr.strings.po190
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.strings.pot166
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sv.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sv.menus.po62
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.sv.strings.po198
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.dialogs.po48
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.th_TH.strings.po192
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.tr.dialogs.po47
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.tr.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.tr.strings.po190
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.tt.dialogs.po42
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.tt.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.tt.strings.po180
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.uk.dialogs.po48
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.uk.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.uk.strings.po193
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.vi.dialogs.po56
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.vi.menus.po60
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.vi.strings.po232
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.dialogs.po52
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.menus.po58
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.zh_CN.strings.po190
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.dialogs.po38
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.menus.po50
-rw-r--r--src/mpc-hc/mpcresources/PO/mpc-hc.zh_TW.strings.po180
-rw-r--r--src/mpc-hc/mpcresources/UpdateIS.py13
-rw-r--r--src/mpc-hc/mpcresources/UpdateISPO.py14
-rw-r--r--src/mpc-hc/mpcresources/UpdateISPOT.py8
-rw-r--r--src/mpc-hc/mpcresources/UpdatePO.py14
-rw-r--r--src/mpc-hc/mpcresources/UpdatePOT.py8
-rw-r--r--src/mpc-hc/mpcresources/UpdateRC.py19
-rw-r--r--src/mpc-hc/mpcresources/cfg/mpc-hc.da.cfg8
-rwxr-xr-xsrc/mpc-hc/mpcresources/common_python.bat12
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ar.rcbin347928 -> 352116 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.be.rcbin358604 -> 363356 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.bn.rcbin373998 -> 379274 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ca.rcbin370276 -> 376618 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.cs.rcbin361930 -> 366544 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.da.rcbin0 -> 365168 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.de.rcbin367862 -> 371504 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.el.rcbin376108 -> 380828 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.en_GB.rcbin354194 -> 358392 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.es.rcbin373834 -> 378732 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.eu.rcbin365078 -> 369430 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.fi.rcbin360940 -> 365096 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.fr.rcbin380560 -> 385318 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.gl.rcbin371588 -> 376058 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.he.rcbin348030 -> 352332 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.hr.rcbin362672 -> 367184 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.hu.rcbin368534 -> 372844 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.hy.rcbin359272 -> 363228 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.it.rcbin365126 -> 369332 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ja.rcbin325480 -> 329204 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ko.rcbin327754 -> 332064 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ms_MY.rcbin360120 -> 364448 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.nl.rcbin360898 -> 365094 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.pl.rcbin373212 -> 377742 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.pt_BR.rcbin368174 -> 372614 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ro.rcbin373434 -> 377886 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.ru.rcbin363734 -> 368296 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.sk.rcbin367572 -> 372144 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.sl.rcbin363328 -> 367824 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.sr.rcbin364528 -> 368670 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.sv.rcbin360244 -> 364374 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.th_TH.rcbin351016 -> 355198 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.tr.rcbin360316 -> 364754 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.tt.rcbin362034 -> 366106 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.uk.rcbin366150 -> 370534 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.vi.rcbin357772 -> 362092 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.zh_CN.rcbin308988 -> 312360 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpc-hc.zh_TW.rcbin313046 -> 317560 bytes
-rw-r--r--src/mpc-hc/mpcresources/mpcresources.vcxproj12
-rw-r--r--src/mpc-hc/mpcresources/mpcresources.vcxproj.filters3
-rwxr-xr-xsrc/mpc-hc/mpcresources/sync.bat15
-rw-r--r--src/mpc-hc/mpcresources/sync.py65
-rwxr-xr-xsrc/mpc-hc/mpcresources/syncIS.bat16
-rw-r--r--src/mpc-hc/mpcresources/syncIS.py61
-rw-r--r--src/mpc-hc/mplayerc.cpp47
-rw-r--r--src/mpc-hc/res/web/variables.html3
-rw-r--r--src/mpc-hc/resource.h34
-rw-r--r--src/thirdparty/DoctorDump/CrashRpt.h592
-rw-r--r--src/thirdparty/DoctorDump/DoctorDump.filters17
-rw-r--r--src/thirdparty/DoctorDump/DoctorDump.vcxproj63
-rw-r--r--src/thirdparty/DoctorDump/deploy.bat49
-rw-r--r--src/thirdparty/LAVFilters/GCCInfo.c32
-rwxr-xr-xsrc/thirdparty/LAVFilters/build_ffmpeg.sh100
-rwxr-xr-xsrc/thirdparty/LAVFilters/build_lavfilters.bat107
m---------src/thirdparty/LAVFilters/src0
-rw-r--r--src/thirdparty/MediaInfo/License.html4
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp10
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.cpp288
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Audio/File_Caf.h55
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Audio/File_Dts.cpp16
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Audio/File_Pcm.cpp5
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp722
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.h7
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp6
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp11
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp14
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File_Other.cpp27
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyse_Automatic.h38
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze.cpp67
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze.h21
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp42
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp37
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h12
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams.cpp324
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp107
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Base.cpp2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__Base.h1
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/File__MultipleParsing.cpp12
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Bmp.cpp2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.cpp152
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.h41
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Dds.cpp3
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.cpp153
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Dpx.h17
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Exr.cpp1
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.cpp37
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Jpeg.h1
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Png.cpp3
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Image/File_Tiff.cpp2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo.cpp10
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp103
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_Automatic.cpp146
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.cpp218
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h34
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_File.cpp18
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Inform.cpp121
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.cpp53
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Internal.h1
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Aaf.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.cpp47
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ancillary.h3
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DashMpd.cpp71
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpAm.cpp9
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp124
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp16
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Dxw.cpp30
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Flv.cpp16
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Gxf.cpp4
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_HdsF4m.cpp10
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Hls.cpp18
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.cpp65
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.h16
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi_Creation.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ism.cpp20
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mk.cpp4
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.cpp64
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4.h2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg4_Elements.cpp103
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp66
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegTs.cpp111
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Descriptors.h8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mpeg_Psi.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.cpp1223
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Mxf.h108
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_P2_Clip.cpp40
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ptx.cpp64
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp10
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff_Elements.cpp2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_SequenceInfo.cpp15
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Wm_Elements.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.cpp899
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper.h125
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Common.h74
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.cpp93
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.h61
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.cpp130
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence.h86
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Sequence_Common.h71
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_File.cpp30
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Reader/Reader_libcurl.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Setup.h53
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Tag/File_Id3v2.cpp2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Tag/File_VorbisCom.cpp6
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Text/File_Cdp.cpp9
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Text/File_DtvccTransport.cpp9
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Text/File_Eia708.cpp21
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Text/File_Sdp.cpp29
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.cpp9
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.h2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.cpp188
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Avc.h9
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp30
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.h5
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpeg4v.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.cpp22
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Mpegv.h4
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc1.cpp8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.cpp233
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo/Video/File_Vc3.h4
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcxproj18
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters30
-rw-r--r--src/thirdparty/SoundTouch/include/STTypes.h7
-rw-r--r--src/thirdparty/SoundTouch/include/SoundTouch.h8
-rw-r--r--src/thirdparty/SoundTouch/source/BPMDetect.cpp5
-rw-r--r--src/thirdparty/SoundTouch/source/FIRFilter.cpp65
-rw-r--r--src/thirdparty/SoundTouch/source/FIRFilter.h8
-rw-r--r--src/thirdparty/SoundTouch/source/PeakFinder.cpp20
-rw-r--r--src/thirdparty/SoundTouch/source/TDStretch.cpp39
-rw-r--r--src/thirdparty/SoundTouch/source/mmx_optimized.cpp5
-rw-r--r--src/thirdparty/SoundTouch/source/sse_optimized.cpp18
-rw-r--r--src/thirdparty/ZenLib/ZenLib/Conf.h6
-rw-r--r--src/thirdparty/ZenLib/ZenLib/Dir.cpp264
-rw-r--r--src/thirdparty/ZenLib/ZenLib/Dir.h19
-rw-r--r--src/thirdparty/ZenLib/ZenLib/File.cpp183
-rw-r--r--src/thirdparty/ZenLib/ZenLib/MemoryUtils.h4
-rw-r--r--src/thirdparty/ZenLib/ZenLib/Utils.cpp4
-rw-r--r--src/thirdparty/ZenLib/ZenLib/int128s.h6
m---------src/thirdparty/lcms2/library0
-rw-r--r--src/thirdparty/sizecbar/scbarg.cpp24
-rw-r--r--src/thirdparty/sizecbar/sizecbar.cpp41
-rw-r--r--src/thirdparty/unrar/archive.cpp2
-rw-r--r--src/thirdparty/unrar/archive.hpp4
-rw-r--r--src/thirdparty/unrar/arcread.cpp17
-rw-r--r--src/thirdparty/unrar/cmddata.cpp11
-rw-r--r--src/thirdparty/unrar/cmddata.hpp3
-rw-r--r--src/thirdparty/unrar/dll.rc10
-rw-r--r--src/thirdparty/unrar/extinfo.cpp35
-rw-r--r--src/thirdparty/unrar/extinfo.hpp1
-rw-r--r--src/thirdparty/unrar/extract.cpp51
-rw-r--r--src/thirdparty/unrar/filcreat.cpp1
-rw-r--r--src/thirdparty/unrar/file.cpp8
-rw-r--r--src/thirdparty/unrar/file.hpp2
-rw-r--r--src/thirdparty/unrar/filestr.cpp16
-rw-r--r--src/thirdparty/unrar/loclang.hpp2
-rw-r--r--src/thirdparty/unrar/options.hpp1
-rw-r--r--src/thirdparty/unrar/os.hpp2
-rw-r--r--src/thirdparty/unrar/pathfn.cpp8
-rw-r--r--src/thirdparty/unrar/pathfn.hpp1
-rw-r--r--src/thirdparty/unrar/strfn.cpp2
-rw-r--r--src/thirdparty/unrar/timefn.cpp2
-rw-r--r--src/thirdparty/unrar/uicommon.cpp7
-rw-r--r--src/thirdparty/unrar/uiconsole.cpp15
-rw-r--r--src/thirdparty/unrar/ulinks.cpp16
-rw-r--r--src/thirdparty/unrar/unpack50.cpp8
-rw-r--r--src/thirdparty/unrar/unpack50mt.cpp13
-rw-r--r--src/thirdparty/unrar/version.hpp8
-rw-r--r--src/thirdparty/unrar/win32lnk.cpp37
-rw-r--r--src/thirdparty/versions.txt14
-rwxr-xr-xupdate_version.bat23
-rwxr-xr-xversion.sh27
540 files changed, 26731 insertions, 11384 deletions
diff --git a/.gitignore b/.gitignore
index 38c8b7ef1..9e396e9b4 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 fd2534390..8389f418d 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 125aa6e3d..21cea0e84 100755
--- a/build.bat
+++ b/build.bat
@@ -18,20 +18,6 @@ REM along with this program. If not, see <http://www.gnu.org/licenses/>.
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")
-<NUL SET /p ".=%DEL%" > "%~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 000000000..cc3a5c75f
--- /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 <http://www.gnu.org/licenses/>.
+
+
+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")
+<NUL SET /p ".=%DEL%" > "%~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 95e19ae95..5d95a5cf9 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 9d274189b..3dcd21c61 100755
--- a/contrib/coverity.bat
+++ b/contrib/coverity.bat
@@ -18,31 +18,22 @@ REM along with this program. If not, see <http://www.gnu.org/licenses/>.
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 7e75e8b83..e90f69bfb 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 <http://www.gnu.org/licenses/>.
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 d5711b41f..a232875da 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 <http://www.gnu.org/licenses/>.
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 58f84daf5..082a84dd2 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 49c036d58..3d17fd2b5 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 e222d1243..4dbecc41a 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 d80e2a056..1164d81aa 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 e40240e85..6f870c259 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 87f8a7887..d00901ca1 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 dfbe45508..000000000
--- 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 <stdint.h>
-
-// 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 311d2c1c0..6ee7f94b0 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 d8a2b0f53..03317b768 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 24f63d0ac..fccbef67d 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 4c8f65566..ec42aaced 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 357e0f53f..45e159ed8 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 8f4356684..f8782487f 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 000000000..1187bc930
--- /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 <http://www.gnu.org/licenses/>.
+*
+*/
+
+#pragma once
+
+template <typename... T>
+inline std::array<typename std::common_type<T...>::type, sizeof...(T)> make_array(T... values)
+{
+ return { values... };
+}
diff --git a/src/DSUtil/DSUtil.cpp b/src/DSUtil/DSUtil.cpp
index 406f5f63c..c92276354 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<OLECHAR> 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<OLECHAR> 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<IPropertyBag> 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<IPropertyBag> 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 f70859fe4..64a78a856 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<std::is_unsigned<T>::value, T>::type GCD(T a, T b)
template <class T>
typename std::enable_if<std::is_signed<T>::value, T>::type GCD(T a, T b)
{
- typedef std::make_unsigned<T>::type uT;
+ using uT = typename std::make_unsigned<T>::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 9d22e901d..c145ebfd3 100644
--- a/src/DSUtil/DSUtil.vcxproj
+++ b/src/DSUtil/DSUtil.vcxproj
@@ -132,6 +132,7 @@
<ClCompile Include="WinAPIUtils.cpp" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="ArrayUtils.h" />
<ClInclude Include="AudioTools.h" />
<ClInclude Include="DSMPropertyBag.h" />
<ClInclude Include="DSUtil.h" />
diff --git a/src/DSUtil/DSUtil.vcxproj.filters b/src/DSUtil/DSUtil.vcxproj.filters
index 5079d7b6f..56b6610c1 100644
--- a/src/DSUtil/DSUtil.vcxproj.filters
+++ b/src/DSUtil/DSUtil.vcxproj.filters
@@ -133,5 +133,8 @@
<ClInclude Include="WinapiFunc.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="ArrayUtils.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/DSUtil/MediaTypeEx.cpp b/src/DSUtil/MediaTypeEx.cpp
index d9cde419d..6fa348df7 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 edd0fd1e8..ca6baf39f 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 e382083f0..b46341a87 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<IShellLink> pSL;
+ pSL.CoCreateInstance(CLSID_ShellLink);
+ CComQIPtr<IPersistFile> 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<CString>& 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<CString>& 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<CString> 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 bec04b99f..f90826fc7 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<CString>& sl);
+ void ParseDirs(CAtlList<CString>& pathsList);
}
diff --git a/src/DSUtil/deinterlace.cpp b/src/DSUtil/deinterlace.cpp
index 0ec385051..7ef0dce75 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 08657095d..22863a6dd 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<typename T>
+CString NumToCString(T num)
+{
+ static_assert(std::numeric_limits<T>::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 18647dfb0..ac15cf11d 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 f0407dcc1..9ba810b0b 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 c76ef19a1..41f78df16 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 af8b8c64d..8a8ef473e 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<DVD_COPY_PROTECT_KEY> key;
+ CAutoVectorPtr<BYTE> 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<DVD_COPY_PROTECT_KEY> key;
+ CAutoVectorPtr<BYTE> 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<CString>& 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 fcf6c7997..ac1e08786 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 fa89052c7..11766d37f 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 1505f4cb0..defab054d 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<CMemSubPic*>(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<SubPicDesc>(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<size_t, BYTE*>& 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 091a62371..903639c02 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 <memory>
+#include <vector>
enum {
MSP_RGB32,
@@ -36,16 +38,19 @@ enum {
};
// CMemSubPic
-
+class CMemSubPicAllocator;
class CMemSubPic : public CSubPicImpl
{
+ CComPtr<CMemSubPicAllocator> m_pAllocator;
+
SubPicDesc m_spd;
+ std::unique_ptr<SubPicDesc> 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 @@ public:
// CMemSubPicAllocator
-class CMemSubPicAllocator : public CSubPicAllocatorImpl
+class CMemSubPicAllocator : public CSubPicAllocatorImpl, public CCritSec
{
int m_type;
CSize m_maxsize;
+ CRect m_curvidrect;
+
+ std::vector<std::pair<size_t, BYTE*>> 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 61d967398..80cd05170 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<std::mutex> 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<ISubPicQueue> 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 40ce613cf..5b2e5a2d4 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 <atlbase.h>
#include <atlcoll.h>
+#include <condition_variable>
#include "ISubPic.h"
#include "CoordGeom.h"
#include "SubRenderIntf.h"
@@ -54,6 +55,8 @@ protected:
CComPtr<ISubPicAllocator> m_pAllocator;
CComPtr<ISubPicQueue> 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 febb1d08e..18c388c1e 100644
--- a/src/SubPic/SubPicImpl.h
+++ b/src/SubPic/SubPicImpl.h
@@ -135,6 +135,6 @@ public:
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 ffbbc9fe3..f5d7abc22 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 000000000..092d91e17
--- /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 <http://www.gnu.org/licenses/>.
+*
+*/
+
+#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<<FRACTION_BITS) - y) >> 12) * Y_CU; \
+ int v = (((r8<<FRACTION_BITS) - y) >> 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<<YUV_POS.y) | (u<<YUV_POS.u) | (v<<YUV_POS.v); \
+}
+
+#define DEFINE_YUV2RGB_FUNC(func, RGB_LEVEL, YUV_LEVEL, Kr, Kg, Kb) \
+DWORD func(int y8, int u8, int v8) \
+{ \
+ const int Y_SCALE= int(1.0*RGB_LEVEL.size/YUV_LEVEL.y_size* FRACTION_SCALE +0.5);\
+ const int U_SCALE= int(1.0*RGB_LEVEL.size/YUV_LEVEL.u_size*(FRACTION_SCALE/4096)+0.5);\
+ y8 = (y8-YUV_LEVEL.y_low)*Y_SCALE; \
+ u8 = (u8-YUV_LEVEL.u_mid)*U_SCALE; \
+ v8 = (v8-YUV_LEVEL.u_mid)*U_SCALE; \
+ const int INT_RV = int( 2*(1-Kr) *4096+0.5); \
+ const int INT_GU = int(-2*(1-Kb)*Kb/Kg*4096+0.5); \
+ const int INT_GV = int(-2*(1-Kr)*Kr/Kg*4096+0.5); \
+ const int INT_BU = int( 2*(1-Kb) *4096+0.5); \
+ \
+ int r = (y8 + 0 + INT_RV*v8 + FRACTION_SCALE/2)>>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<<FRACTION_BITS) - y) >> 12) * Y_CU; \
+ int v = (((r8<<FRACTION_BITS) - y) >> 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<<YUV_POS.y) | (u<<YUV_POS.u) | (v<<YUV_POS.v); \
+}
+
+#define DEFINE_RGB2Y_FUNC(func, RGB_LEVEL, YUV_LEVEL, Kr, Kg, Kb) \
+DWORD func(int r8, int g8, int b8) \
+{ \
+ 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_SCALE= int(1.0*YUV_LEVEL.y_size/RGB_LEVEL.size*4096+0.5); \
+ \
+ int y = INT_Kr*r8 + INT_Kg*g8 + INT_Kb*b8 - RGB_LEVEL.low; \
+ y = Y_SCALE == 4096 ? y : (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 000000000..36d217826
--- /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 <http://www.gnu.org/licenses/>.
+*
+*/
+
+#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 2f4094d22..4993a790e 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 1d2bf1a1b..767ef4630 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 @@ public:
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 3c2315647..c5d453a0a 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<DVB_REGION>(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<CompositionObject>(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<DVB_CLUT>(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<DVB_PAGE>& pPage, BYTE bRegionId) const
+CDVBSub::RegionList::const_iterator CDVBSub::FindRegion(const CAutoPtr<DVB_PAGE>& 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<DVB_REGION>& pRegion) { return pRegion->id == bRegionId; });
}
-POSITION CDVBSub::FindClut(const CAutoPtr<DVB_PAGE>& pPage, BYTE bClutId) const
+CDVBSub::ClutList::const_iterator CDVBSub::FindClut(const CAutoPtr<DVB_PAGE>& 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<DVB_CLUT>& pCLUT) { return pCLUT->id == bClutId; });
}
-POSITION CDVBSub::FindObject(const CAutoPtr<DVB_PAGE>& pPage, short sObjectId) const
+CDVBSub::CompositionObjectList::const_iterator CDVBSub::FindObject(const CAutoPtr<DVB_PAGE>& 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<CompositionObject>& pObject) { return pObject->m_object_id_ref == sObjectId; });
}
HRESULT CDVBSub::ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtr<DVB_PAGE>& pPage)
@@ -477,7 +454,7 @@ HRESULT CDVBSub::ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtr<DVB_PAGE
size_t nExpectedSize = 2;
size_t nEnd = gb.GetPos() + wSegLength;
- pPage = CAutoPtr<DVB_PAGE>(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, CAutoPtr<DVB_PAGE
gb.ReadByte(); // Reserved
regionPos.horizAddr = gb.ReadShort();
regionPos.vertAddr = gb.ReadShort();
- pPage->regionsPos.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<DVB_REGION>(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<DVB_CLUT>(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<CompositionObject>(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 bbfba28d9..e2be34050 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 <list>
+#include <memory>
class CGolombBuffer;
@@ -71,141 +73,77 @@ private:
};
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<HDMV_PALETTE, 256> 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<DVB_OBJECT> 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(&region.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<DVB_OBJECT> objects;
};
+ using RegionList = std::list<std::unique_ptr<DVB_REGION>>;
+ using CompositionObjectList = std::list<std::unique_ptr<CompositionObject>>;
+ using ClutList = std::list<std::unique_ptr<DVB_CLUT>>;
+
class DVB_PAGE
{
public:
- REFERENCE_TIME rtStart;
- REFERENCE_TIME rtStop;
- BYTE pageTimeOut;
- BYTE pageVersionNumber;
- BYTE pageState;
- CAtlList<DVB_REGION_POS> regionsPos;
- CAutoPtrList<DVB_REGION> regions;
- CAutoPtrList<CompositionObject> objects;
- CAutoPtrList<DVB_CLUT> 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<DVB_REGION_POS> regionsPos;
+ RegionList regions;
+ CompositionObjectList objects;
+ ClutList CLUTs;
+ bool rendered = false;
};
size_t m_nBufferSize;
@@ -219,9 +157,9 @@ private:
HRESULT AddToBuffer(BYTE* pData, size_t nSize);
POSITION FindPage(REFERENCE_TIME rt) const;
- POSITION FindRegion(const CAutoPtr<DVB_PAGE>& pPage, BYTE bRegionId) const;
- POSITION FindClut(const CAutoPtr<DVB_PAGE>& pPage, BYTE bClutId) const;
- POSITION FindObject(const CAutoPtr<DVB_PAGE>& pPage, short sObjectId) const;
+ RegionList::const_iterator FindRegion(const CAutoPtr<DVB_PAGE>& pPage, BYTE bRegionId) const;
+ ClutList::const_iterator FindClut(const CAutoPtr<DVB_PAGE>& pPage, BYTE bClutId) const;
+ CompositionObjectList::const_iterator FindObject(const CAutoPtr<DVB_PAGE>& pPage, short sObjectId) const;
HRESULT ParsePage(CGolombBuffer& gb, WORD wSegLength, CAutoPtr<DVB_PAGE>& pPage);
HRESULT ParseDisplay(CGolombBuffer& gb, WORD wSegLength);
diff --git a/src/Subtitles/PGSSub.cpp b/src/Subtitles/PGSSub.cpp
index 748c2058e..3a13e0fee 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<HDMV_PRESENTATION_SEGMENT>(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<CompositionObject> pCompositionObject(DEBUG_NEW CompositionObject());
- ParseCompositionObject(pGBuffer, pCompositionObject);
- m_pCurrentPresentationSegment->objects.AddTail(pCompositionObject);
+ std::unique_ptr<CompositionObject> 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<CompositionObject>& pCompositionObject)
+bool CPGSSub::ParseCompositionObject(CGolombBuffer* pGBuffer, const std::unique_ptr<CompositionObject>& 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 CAutoPtr<Com
pCompositionObject->m_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 09cf4adfa..ad651caad 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 <thread>
+#include <list>
+#include <memory>
class CGolombBuffer;
@@ -80,17 +82,14 @@ private:
};
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<HDMV_PALETTE, 256> palette;
HDMV_CLUT()
- : id(0)
- , version_number(0)
- , size(0) {
- ZeroMemory(palette, sizeof(palette));
+ : palette() {
}
};
@@ -106,7 +105,7 @@ private:
int objectCount;
- CAutoPtrList<CompositionObject> objects;
+ std::list<std::unique_ptr<CompositionObject>> objects;
};
HDMV_SEGMENT_TYPE m_nCurSegment;
@@ -118,8 +117,8 @@ private:
CAutoPtr<HDMV_PRESENTATION_SEGMENT> m_pCurrentPresentationSegment;
CAutoPtrList<HDMV_PRESENTATION_SEGMENT> m_pPresentationSegments;
- HDMV_CLUT m_CLUTs[256];
- CompositionObject m_compositionObjects[64];
+ std::array<HDMV_CLUT, 256> m_CLUTs;
+ std::array<CompositionObject, 64> m_compositionObjects;
void AllocSegment(size_t nSize);
int ParsePresentationSegment(REFERENCE_TIME rt, CGolombBuffer* pGBuffer);
@@ -130,7 +129,7 @@ private:
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<CompositionObject>& pCompositionObject);
+ bool ParseCompositionObject(CGolombBuffer* pGBuffer, const std::unique_ptr<CompositionObject>& pCompositionObject);
POSITION FindPresentationSegment(REFERENCE_TIME rt) const;
diff --git a/src/Subtitles/RLECodedSubtitle.cpp b/src/Subtitles/RLECodedSubtitle.cpp
index 88c8bc71e..328f07b32 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 ac407e54b..7f5d31e6a 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 @@ public:
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 @@ protected:
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 778c9c34f..934c89b2e 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 <math.h>
#include <intrin.h>
#include <algorithm>
+#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 cd350b725..b2660d458 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 @@ public:
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 4f68ceba5..e61eb61b1 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 b42845889..8ec947531 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 cd9bdf635..5803f9d88 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 @@ public:
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 3334a56b4..4b272026b 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 <math.h>
#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 9cdcc5595..a7cf216ec 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<std::mutex> lock(m_mutexQueue);
- m_sampleQueue.AddTail(CAutoPtr<SubtitleSample>(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<std::mutex> lock(m_mutexQueue);
- m_sampleQueue.AddTail(CAutoPtr<SubtitleSample>(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<SubtitleSample>& pSample)
+REFERENCE_TIME CSubtitleInputPin::DecodeSample(const std::unique_ptr<SubtitleSample>& pSample)
{
bool bInvalidate = false;
@@ -476,7 +478,7 @@ void CSubtitleInputPin::InvalidateSamples()
m_bStopDecoding = true;
{
std::lock_guard<std::mutex> 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 55549ad94..c94635d3e 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 <vector>
+#include <list>
#include <memory>
#include <thread>
#include <condition_variable>
@@ -51,7 +52,7 @@ class CSubtitleInputPin : public CBaseInputPin
, data(pData, pData + len) {}
};
- CAutoPtrList<SubtitleSample> m_sampleQueue;
+ std::list<std::unique_ptr<SubtitleSample>> 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<SubtitleSample>& pSample);
+ REFERENCE_TIME DecodeSample(const std::unique_ptr<SubtitleSample>& pSample);
void InvalidateSamples();
protected:
diff --git a/src/Subtitles/Subtitles.vcxproj b/src/Subtitles/Subtitles.vcxproj
index 2bf9badf4..4d64358d6 100644
--- a/src/Subtitles/Subtitles.vcxproj
+++ b/src/Subtitles/Subtitles.vcxproj
@@ -96,6 +96,7 @@
<ClCompile Include="CCDecoder.cpp" />
<ClCompile Include="CompositionObject.cpp" />
<ClCompile Include="DVBSub.cpp" />
+ <ClCompile Include="ColorConvTable.cpp" />
<ClCompile Include="SubtitleHelpers.cpp" />
<ClCompile Include="PGSSub.cpp" />
<ClCompile Include="Rasterizer.cpp" />
@@ -117,6 +118,7 @@
<ItemGroup>
<ClInclude Include="..\..\include\Utf8.h" />
<ClInclude Include="Ellipse.h" />
+ <ClInclude Include="ColorConvTable.h" />
<ClInclude Include="RenderingCache.h" />
<ClInclude Include="CCDecoder.h" />
<ClInclude Include="CompositionObject.h" />
diff --git a/src/Subtitles/Subtitles.vcxproj.filters b/src/Subtitles/Subtitles.vcxproj.filters
index 7587cff1c..706743683 100644
--- a/src/Subtitles/Subtitles.vcxproj.filters
+++ b/src/Subtitles/Subtitles.vcxproj.filters
@@ -71,6 +71,9 @@
<ClCompile Include="Ellipse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="ColorConvTable.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CCDecoder.h">
@@ -139,5 +142,8 @@
<ClInclude Include="Ellipse.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="ColorConvTable.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/Subtitles/USFSubtitles.cpp b/src/Subtitles/USFSubtitles.cpp
index 7e50225ac..737dad5e0 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 abc82c221..1c0983ced 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 b3fe01a45..b1aea10e1 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 @@ public:
};
struct SubLang {
- int id = 0;
+ WORD id = 0;
CString name, alt;
CAtlArray<SubPos> subpos;
};
@@ -163,6 +163,7 @@ public:
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 @@ public:
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 031671dd4..00bd17638 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 f00fb2b4e..c797f40e5 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 b6cb795fc..a2cc7e752 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 <algorithm>
+#include <array>
#include <vector>
+#include <list>
+#include <memory>
+#include <thread>
diff --git a/src/YASM.bat b/src/YASM.bat
index dde5bc0a1..451fe036d 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 <http://www.gnu.org/licenses/>.
-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 a13bbd2bd..03f400dbb 100644
--- a/src/common-3rd-party.props
+++ b/src/common-3rd-party.props
@@ -6,4 +6,4 @@
<WarningLevel>TurnOffAllWarnings</WarningLevel>
</ClCompile>
</ItemDefinitionGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/src/common.props b/src/common.props
index 9c92797f0..5b7686e77 100644
--- a/src/common.props
+++ b/src/common.props
@@ -12,7 +12,7 @@
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
- <AdditionalOptions>/w34701 /w34706 /d2Zi+ /Zc:rvalueCast %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalOptions>/w34701 /w34706 /Zo /Zc:rvalueCast %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(ANALYZE)'=='true'">/wd4005 /wd6031 /wd6246 /wd6309 /wd6387 /wd28204 %(AdditionalOptions)</AdditionalOptions>
<EnablePREfast Condition="'$(ANALYZE)'=='true'">true</EnablePREfast>
<BufferSecurityCheck>true</BufferSecurityCheck>
@@ -26,7 +26,7 @@
<PreprocessorDefinitions Condition="'$(Configuration)'=='Debug Filter' Or '$(Configuration)'=='Release Filter'">STANDALONE_FILTER;_USRDLL;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Platform)'=='Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Platform)'=='x64'">_WIN64;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <WarningLevel>Level3</WarningLevel>
+ <WarningLevel>Level4</WarningLevel>
</ClCompile>
<Lib>
<TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
@@ -92,4 +92,4 @@
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/src/filters/PinInfoWnd.cpp b/src/filters/PinInfoWnd.cpp
index 8717e2ffa..2ba426472 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 a92b50d30..441d1764f 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 @@ public:
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 6b38dd9e1..e4408028c 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 8c3584967..192c8484c 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 61a3b011a..f2c1e0d82 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<ULONG>(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 de5e64c68..c5be29d31 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 f44f808d2..efd02df97 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<IFileSinkFilter2> pFSF = GetFilterFromPin(m_pOutput->GetConnected())) {
pFSF->SetMode(AM_FILE_OVERWRITE);
- LPOLESTR pfn;
+ CComHeapPtr<OLECHAR> 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 bf7182e85..8a3cd1f35 100644
--- a/src/filters/reader/CDDAReader/CDDAReader.cpp
+++ b/src/filters/reader/CDDAReader/CDDAReader.cpp
@@ -21,6 +21,7 @@
#include "stdafx.h"
#include <algorithm>
+#include <vector>
#ifdef STANDALONE_FILTER
#include <InitGuid.h>
#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<BYTE> 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 4f5a2e04b..fb34c6722 100644
--- a/src/filters/reader/CDDAReader/CDDAReader.h
+++ b/src/filters/reader/CDDAReader/CDDAReader.h
@@ -70,6 +70,7 @@ private:
HANDLE m_hDrive;
CDROM_TOC m_TOC;
UINT m_nFirstSector, m_nStartSector, m_nStopSector;
+ bool m_bDTS;
WAVEChunck m_header;
@@ -83,6 +84,8 @@ public:
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 4a1bb1da5..46e650176 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 2890ac870..4f4704c6d 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 248e4f863..c25c3728b 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 cdc4e7749..b391bd4b3 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<IMFMediaType> pMixerType;
+ CComPtr<IMFMediaType> pMixerInputType;
CComPtr<IMFMediaType> pType;
if (!m_pMixer) {
@@ -1009,13 +943,13 @@ HRESULT CEVRAllocatorPresenter::RenegotiateMediaType()
CInterfaceArray<IMFMediaType> 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<IMFSample> 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<IMFSample> 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 eb70c61c5..292b7a4e1 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 <mfapi.h> // API Media Foundation
#include <evr9.h>
+#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<decltype(DXVA2CreateDirect3DDeviceManager9)> fnDXVA2CreateDirect3DDeviceManager9;
+ const WinapiFunc<decltype(MFCreateDXSurfaceBuffer)> fnMFCreateDXSurfaceBuffer;
+ const WinapiFunc<decltype(MFCreateVideoSampleFromSurface)> fnMFCreateVideoSampleFromSurface;
+ const WinapiFunc<decltype(MFCreateMediaType)> fnMFCreateMediaType;
+
+ const WinapiFunc<decltype(AvSetMmThreadCharacteristicsW)> fnAvSetMmThreadCharacteristicsW;
+ const WinapiFunc<decltype(AvSetMmThreadPriority)> fnAvSetMmThreadPriority;
+ const WinapiFunc<decltype(AvRevertMmThreadCharacteristics)> fnAvRevertMmThreadCharacteristics;
};
}
diff --git a/src/filters/renderer/VideoRenderers/IPinHook.cpp b/src/filters/renderer/VideoRenderers/IPinHook.cpp
index 3dc19a98e..e445a0e5b 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<IPin> 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<IPin> 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 1712b3e34..adb5f8d83 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 879103f88..98a943d5a 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 89813297e..3f04ec596 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 c8c9e60cc..2e57c929a 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 @@ public:
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 cc25407b7..e4c13b406 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<IEnumPins> rendererInputEnum;
std::vector<CComPtr<IPin>> decoderOutput;
std::vector<CComPtr<IPin>> 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<IPin> input;
CComPtr<IPin> 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<IMFMediaType> pMixerType;
+ CComPtr<IMFMediaType> pMixerInputType;
CComPtr<IMFMediaType> 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<IMFSample> 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<IMFSample> 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<IBaseFilter> 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<IAMAudioRendererStats> 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 fca1d67dd..7455e0e0c 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 <dxva2api.h>
+#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<IDirect3DDeviceManager9> m_pD3DManager;
CComPtr<IMFTransform> m_pMixer;
CComPtr<IMediaEventSink> m_pSink;
- CComPtr<IMFVideoMediaType> m_pMediaType;
+ CComPtr<IMFMediaType> 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<decltype(DXVA2CreateDirect3DDeviceManager9)> fnDXVA2CreateDirect3DDeviceManager9;
+ const WinapiFunc<decltype(MFCreateDXSurfaceBuffer)> fnMFCreateDXSurfaceBuffer;
+ const WinapiFunc<decltype(MFCreateVideoSampleFromSurface)> fnMFCreateVideoSampleFromSurface;
+ const WinapiFunc<decltype(MFCreateMediaType)> fnMFCreateMediaType;
- PTR_AvSetMmThreadCharacteristicsW pfAvSetMmThreadCharacteristicsW;
- PTR_AvSetMmThreadPriority pfAvSetMmThreadPriority;
- PTR_AvRevertMmThreadCharacteristics pfAvRevertMmThreadCharacteristics;
+ const WinapiFunc<decltype(AvSetMmThreadCharacteristicsW)> fnAvSetMmThreadCharacteristicsW;
+ const WinapiFunc<decltype(AvSetMmThreadPriority)> fnAvSetMmThreadPriority;
+ const WinapiFunc<decltype(AvRevertMmThreadCharacteristics)> fnAvRevertMmThreadCharacteristics;
};
class CSyncRenderer:
diff --git a/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/madVRAllocatorPresenter.cpp
index 0124367e6..3faf3784d 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 <mvrInterfaces.h>
+
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<IVideoWindow> 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 b72901034..2bbf45e06 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 <mvrInterfaces.h>
+#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 1cdedbb20..0c20030da 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 <InitGuid.h>
#include "moreuuids.h"
+// Even if we don't use this, it is needed for mvrInterfaces.h
+typedef interface IDirect3DDevice9* LPDIRECT3DDEVICE9;
+#include <mvrInterfaces.h>
//
// CBaseVideoFilter
diff --git a/src/filters/transform/VSFilter/Copy.cpp b/src/filters/transform/VSFilter/Copy.cpp
index 3d9293b0e..b6c65e0d8 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 e9fb9ead8..f8cdc9b1c 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 db2d287ac..beefbdeac 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 806e6cff5..3e4e47734 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 13314751a..c397f3ec8 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 <http://www.gnu.org/licenses/>.
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 d394a5073..e6bb01994 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 <afxole.h>
-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 381bd1dec..75107c565 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 <mvrInterfaces.h>
#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<CString>& 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<CString>& 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 bfd53c27a..70184f9b3 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 @@ public:
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 @@ public:
CUIceClient();
};
-#define APPSETTINGS_VERSION 5
+#define APPSETTINGS_VERSION 6
class CAppSettings
{
@@ -656,6 +654,7 @@ public:
UINT nLastWindowType;
UINT nLastUsedPage;
bool fRemainingTime;
+ bool bHighPrecisionTimer;
bool fLastFullScreen;
bool fIntRealMedia;
@@ -670,10 +669,13 @@ public:
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 496f5cc17..47569ac73 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 53e034205..1e4d28580 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 000000000..e4b62e1fd
--- /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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "stdafx.h"
+#include "CrashReporter.h"
+#ifndef _DEBUG
+#include <DbgHelp.h>
+#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
index 38cb03a58..ed54b9720 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 <http://www.gnu.org/licenses/>.
- *
- */
-
-#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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#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 000000000..bba5c2626
--- /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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#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 000000000..ff7638872
--- /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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include <afxwin.h>
+#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 48d2f81ba..e4a0b7e41 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 d338fc1e0..61558e985 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 bfd94d1c6..3adb9007a 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 000000000..e70b79238
--- /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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#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<CDropClient*>(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<CDropClient*>(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<CString> slFiles;
+
+ if (auto pClient = dynamic_cast<CDropClient*>(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<CString> 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
index b7868206f..8df0680ed 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 <http://www.gnu.org/licenses/>.
- *
- */
-
-#pragma once
-
-#include <afxole.h>
-
-
-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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include <afxole.h>
+
+
+struct CDropClient {
+ virtual void OnDropFiles(CAtlList<CString>& 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<IDropTargetHelper> 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 f5ea31c73..5f2ddeaca 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 de49fdef6..9b5f3d705 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 <mvrInterfaces.h>
//
@@ -104,12 +105,11 @@ CFGFilterRegistry::CFGFilterRegistry(IMoniker* pMoniker, UINT64 merit)
return;
}
- LPOLESTR str = nullptr;
+ CComHeapPtr<OLECHAR> 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<IPropertyBag> 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<IUnknown, &IID_
CFGFilterVideoRenderer::CFGFilterVideoRenderer(HWND hWnd, const CLSID& clsid, CStringW name, UINT64 merit)
: CFGFilter(clsid, name, merit)
, m_hWnd(hWnd)
+ , m_bHasVideoDriverWorkAround(false)
{
AddType(MEDIATYPE_Video, MEDIASUBTYPE_NULL);
}
+CFGFilterVideoRenderer::~CFGFilterVideoRenderer()
+{
+ if (m_bHasVideoDriverWorkAround) {
+ UnhookWorkAroundVideoDriversBug();
+ }
+}
+
HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList<IUnknown, &IID_IUnknown>& pUnks)
{
TRACE(_T("--> CFGFilterVideoRenderer::Create on thread: %lu\n"), GetCurrentThreadId());
@@ -460,6 +468,9 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList<IUnkno
}
// madVR supports calling IVideoWindow::put_Owner before the pins are connected
if (m_clsid == CLSID_madVRAllocatorPresenter) {
+ if (CComQIPtr<IMadVRSubclassReplacement> pMVRSR = pCAP) {
+ VERIFY(SUCCEEDED(pMVRSR->DisableSubclassing()));
+ }
if (CComQIPtr<IVideoWindow> pVW = pCAP) {
pVW->put_Owner((OAHWND)m_hWnd);
}
@@ -472,8 +483,6 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList<IUnkno
if (m_clsid == CLSID_EnhancedVideoRenderer) {
CComQIPtr<IEVRFilterConfig> pConfig = pBF;
pConfig->SetNumberOfStreams(3);
-
- HookWorkAroundNVIDIADriverBug(pBF);
}
BeginEnumPins(pBF, pEP, pPin) {
@@ -490,6 +499,9 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF, CInterfaceList<IUnkno
if (!*ppBF) {
hr = E_FAIL;
+ } else if (m_clsid != CLSID_madVRAllocatorPresenter) {
+ HookWorkAroundVideoDriversBug(*ppBF);
+ m_bHasVideoDriverWorkAround = true;
}
return hr;
diff --git a/src/mpc-hc/FGFilter.h b/src/mpc-hc/FGFilter.h
index 5d3f73123..abec238fc 100644
--- a/src/mpc-hc/FGFilter.h
+++ b/src/mpc-hc/FGFilter.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.
*
@@ -124,9 +124,11 @@ class CFGFilterVideoRenderer : public CFGFilter
{
protected:
HWND m_hWnd;
+ bool m_bHasVideoDriverWorkAround;
public:
CFGFilterVideoRenderer(HWND hWnd, const CLSID& clsid, CStringW name = L"", UINT64 merit = MERIT64_DO_USE);
+ virtual ~CFGFilterVideoRenderer();
HRESULT Create(IBaseFilter** ppBF, CInterfaceList<IUnknown, &IID_IUnknown>& pUnks);
};
diff --git a/src/mpc-hc/FGFilterLAV.cpp b/src/mpc-hc/FGFilterLAV.cpp
index 7979e59a1..d5cd8cc20 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 d9308fc64..91fa9a60e 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 <InitGuid.h>
@@ -42,6 +41,7 @@
#include <ksproxy.h>
#include "IPinHook.h"
#include "moreuuids.h"
+#include <mvrInterfaces.h>
//
// 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<IPropertyBag> 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 e73917178..cbb84cf2e 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<LogTargets::BDA>::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<IPropertyBag> pPB;
CComVariant var;
- LPOLESTR strName = nullptr;
+ CComHeapPtr<OLECHAR> 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<IBaseFilter>& 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<AM_MEDIA_TYPE*>(&mt_H264));
+ } else if (pChannel->GetVideoType() == DVB_HEVC) {
+ UpdateMediaType(&vih2_HEVC, pChannel);
+ hr = pDemux->SetOutputPinMediaType(L"HEVC", const_cast<AM_MEDIA_TYPE*>(&mt_HEVC));
} else {
UpdateMediaType(&sMpv_fmt, pChannel);
hr = pDemux->SetOutputPinMediaType(L"mpv", const_cast<AM_MEDIA_TYPE*>(&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<IPin> pNewOut = GetFirstPin(pFGNew, PINDIR_OUTPUT);
CComPtr<IPinConnection> 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<IMpeg2Demultiplexer> pDemux;
m_pDemux->QueryInterface(IID_PPV_ARGS(&pDemux));
diff --git a/src/mpc-hc/FGManagerBDA.h b/src/mpc-hc/FGManagerBDA.h
index b314b6f1b..aeb46c5da 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 @@ private:
HRESULT SearchIBDATopology(const CComPtr<IBaseFilter>& pTuner, REFIID iid, CComPtr<IUnknown>& pUnk);
};
-
-#ifdef _DEBUG
-#include <sys/types.h>
-#include <sys/timeb.h>
-
-#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 e1fd73be4..000000000
--- 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 <http://www.gnu.org/licenses/>.
- *
- */
-
-#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 1c4360068..bbd6b1a89 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 90d7b6fd1..c6ad4f502 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<LogTargets::BDA>::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 1c82fcd12..b8bb731f3 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<OLECHAR> 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 8ad417d7e..d5878e22d 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 9e64b518d..ad36171d3 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 000000000..6855733e3
--- /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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include <mutex>
+#include <sys/timeb.h>
+#include "mplayerc.h"
+
+enum class LogTargets {
+ BDA
+};
+
+template <LogTargets>
+struct LoggerFile;
+
+template<>
+struct LoggerFile<LogTargets::BDA> {
+protected:
+ const LPCTSTR filename = _T("bda.log");
+ virtual ~LoggerFile() = default;
+};
+
+template<LogTargets TARGET>
+class Logger final : public LoggerFile<TARGET>
+{
+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<std::mutex> 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 3bfbd73d5..e4b6ba6ea 100644
--- a/src/mpc-hc/MPCPngImage.cpp
+++ b/src/mpc-hc/MPCPngImage.cpp
@@ -8,18 +8,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 91129a3e9..47448a7ff 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 @@ public:
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 c6a565e4f..86fcf7d71 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 <mvrInterfaces.h>
+#include <SubRenderIntf.h>
+
template<typename T>
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<CString> 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<CString> 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<CString> 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<CString>& 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<IFileSourceFilter> pFSF = pBF;
if (pFSF) {
- LPOLESTR pFN = nullptr;
+ CComHeapPtr<OLECHAR> 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<OpenMediaData> 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<OpenMediaData> 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<CString>& 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<ISubRenderOptions> pSRO = m_pCAP;
- CComQIPtr<IMadVRInfo> 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<ISubRenderOptions> pSRO = m_pCAP;
+ CComQIPtr<IMadVRInfo> 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<REF
void CMainFrame::LoadKeyFrames()
{
- CComQIPtr<IKeyFrameInfo> 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<IMadVRTextOsd> 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<CString> 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<OLECHAR> 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 c23732c2e..4cb5618cf 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 @@ private:
CComQIPtr<IMediaSeeking> m_pMS;
CComQIPtr<IVideoFrameStep> m_pFS;
CComQIPtr<IFileSourceFilter> m_pFSF;
+ CComQIPtr<IKeyFrameInfo> m_pKFI;
CComQIPtr<IQualProp, &IID_IQualProp> m_pQP;
CComQIPtr<IBufferInfo> m_pBI;
CComQIPtr<IAMOpenProgress> m_pAMOP;
@@ -231,6 +234,7 @@ private:
CComPtr<ISubPicAllocatorPresenter> m_pCAP;
CComPtr<ISubPicAllocatorPresenter2> m_pCAP2;
+ CComPtr<IMadVRSubclassReplacement> m_pMVRSR;
CComPtr<IMadVRSettings> m_pMVRS;
CComQIPtr<IDvdControl2> m_pDVDC;
@@ -384,6 +388,10 @@ private:
REFTIME GetAvgTimePerFrame() const;
+ CDropTarget m_dropTarget;
+ void OnDropFiles(CAtlList<CString>& slFiles, DROPEFFECT dropEffect) override;
+ DROPEFFECT OnDropAccept(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) override;
+
public:
void StartWebServer(int nPort);
void StopWebServer();
@@ -424,6 +432,10 @@ public:
}
bool IsD3DFullScreenMode() const;
+ bool IsSubresyncBarVisible() const {
+ return !!m_wndSubresyncBar.IsWindowVisible();
+ }
+
CControlBar* m_pLastBar;
protected:
@@ -554,7 +566,6 @@ public:
bool DoCapture(), StartCapture(), StopCapture();
void DoAfterPlaybackEvent();
- void ParseDirs(CAtlList<CString>& sl);
bool SearchInDir(bool bDirForward, bool bLoop = false);
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
@@ -629,15 +640,6 @@ protected: // control bar embedded members
std::unique_ptr<CDebugShadersDlg> 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 @@ public:
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 @@ public:
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 @@ public:
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 @@ public:
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 @@ public:
CString GetVidPos() const;
- ITaskbarList3* m_pTaskbarList;
+ CComPtr<ITaskbarList3> 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 0aaaea205..d9588e9c2 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 <mvrInterfaces.h>
#define DELAY_SHOW_NOT_LOADED_TIME_MS 3000
diff --git a/src/mpc-hc/MediaFormats.cpp b/src/mpc-hc/MediaFormats.cpp
index c626ce21b..7d1b283e0 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 fcea88916..000000000
--- 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 <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "stdafx.h"
-#include <DbgHelp.h>
-#include <atlpath.h>
-#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<decltype(MiniDumpWriteDump)> 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 0162ec5dd..1bb216088 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 <mvrInterfaces.h>
#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 9948b835c..0651330ec 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 @@ public:
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 @@ private:
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 a4c675a1e..34177f755 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 99bbc1259..86314baff 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<LogTargets::BDA>::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 0d5686fe2..244ee9f81 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<CString>* 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 5b93d07fb..d6d48e6d8 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 @@ public:
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<CString>* sl);
};
diff --git a/src/mpc-hc/OpenFileDlg.cpp b/src/mpc-hc/OpenFileDlg.cpp
index f32e85d57..c50821836 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<TCHAR> 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 94c6271e1..3fba403f0 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 aa38cb2b0..86d640adc 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 <strsafe.h>
#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 ee67e9891..59caccf0d 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 <afxwin.h>
@@ -40,6 +39,7 @@ public:
: name(name)
, toolTipText(toolTipText) {
}
+ virtual ~SettingsBase() = default;
CString GetToolTipText() const { return toolTipText; }
CString GetName() const { return name; }
@@ -143,7 +143,8 @@ private:
RECENT_FILES_NB,
FILE_POS_LONGER,
FILE_POS_AUDIO,
- COVER_SIZE_LIMIT
+ COVER_SIZE_LIMIT,
+ LOGGING
};
enum {
@@ -178,9 +179,7 @@ protected:
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 7a0f4f9b2..6ecb5048d 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 c586a43f0..404401c25 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<OLECHAR> 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<OLECHAR> 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<OLECHAR> 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<OLECHAR> 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<OLECHAR> 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 c2793121c..f2f2d7df5 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<CString>& 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 ae106ff90..da61e6954 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 @@ protected:
// CPPageExternalFilters dialog
-class CPPageExternalFilters : public CPPageBase
+class CPPageExternalFilters : public CPPageBase, public CDropClient
{
DECLARE_DYNAMIC(CPPageExternalFilters)
@@ -65,6 +66,10 @@ private:
CHexEdit m_dwMerit;
CTreeCtrl m_tree;
+ CDropTarget m_dropTarget;
+ void OnDropFiles(CAtlList<CString>& slFiles, DROPEFFECT) override;
+ DROPEFFECT OnDropAccept(COleDataObject*, DWORD, CPoint) override;
+
void StepUp(CCheckListBox& list);
void StepDown(CCheckListBox& list);
@@ -102,6 +107,6 @@ protected:
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 5ca098972..8a43dcbec 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<OLECHAR> 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 26edf3e90..912430357 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<OLECHAR> 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 a7d2b2ec7..da1ac6b12 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<OLECHAR> 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 8725dc25c..4459b9e69 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<IAsyncReader> pAR;
if (pFSF) {
- LPOLESTR pFN;
+ CComHeapPtr<OLECHAR> pFN;
if (SUCCEEDED(pFSF->GetCurFile(&pFN, nullptr))) {
m_fn = pFN;
- CoTaskMemFree(pFN);
}
if (CComQIPtr<IBaseFilter> pBF = pFSF) {
diff --git a/src/mpc-hc/PPageInternalFilters.cpp b/src/mpc-hc/PPageInternalFilters.cpp
index 49cd2ae25..efd7d75bb 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 737429e70..631a19c16 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<OLECHAR> olestr;
if (FAILED(pMoniker->GetDisplayName(0, 0, &olestr))) {
continue;
}
CStringW str(olestr);
- CoTaskMemFree(olestr);
m_AudioRendererDisplayNames.Add(CString(str));
CComPtr<IPropertyBag> 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 67e58087b..f872b5999 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 eb45c0acb..450d7b8e9 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 @@ public:
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 26ce6a4ff..5be4ab076 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 a471a3328..8b60c1822 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 47ae1c592..d567a8886 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 89c621191..52a0e3693 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 @@ protected:
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 52634979a..d606b507f 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<Codec>& codecs, CComboBox& box, const GUID&
}
c.pBF = pBF;
*/
- LPOLESTR strName = nullptr;
+ CComHeapPtr<OLECHAR> strName;
if (FAILED(pMoniker->GetDisplayName(nullptr, nullptr, &strName))) {
continue;
}
c.displayName = strName;
- CoTaskMemFree(strName);
CComPtr<IPropertyBag> 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 6f039a8f4..91e2ad410 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 72c542fe7..dfeac5ee0 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 @@ public:
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 b2b9747d9..bfe5d05b9 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 @@ public:
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 a7b2f42ba..86e9c35d3 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 020fce6f5..9e91f8d18 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 368fa6483..3df894fd1 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<CString>& fns)
{
// resolve .lnk files
- CComPtr<IShellLink> pSL;
- pSL.CoCreateInstance(CLSID_ShellLink);
- CComQIPtr<IPersistFile> 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<CString>& fns, bool fMulti, CAtlList<CS
if (posFirstAdded) {
EnsureVisible(m_pl.GetTailPosition()); // This ensures that we maximize the number of newly added items shown
EnsureVisible(posFirstAdded);
- m_list.SetItemState(iFirstAdded, LVIS_SELECTED, LVIS_SELECTED);
+ if (iFirstAdded) { // Select the first added item only if some were already present
+ m_list.SetItemState(iFirstAdded, LVIS_SELECTED, LVIS_SELECTED);
+ }
}
}
@@ -645,7 +644,7 @@ void CPlayerPlaylistBar::SetSelIdx(int i)
bool CPlayerPlaylistBar::IsAtEnd()
{
- POSITION pos = m_pl.GetPos(), tail = m_pl.GetTailPosition();
+ POSITION pos = m_pl.GetPos(), tail = m_pl.GetShuffleAwareTailPosition();
bool isAtEnd = (pos && pos == tail);
if (!isAtEnd && pos) {
@@ -716,11 +715,13 @@ void CPlayerPlaylistBar::SetFirstSelected()
if (pos) {
pos = FindPos(m_list.GetNextSelectedItem(pos));
} else {
- pos = m_pl.GetTailPosition();
+ pos = m_pl.GetShuffleAwareTailPosition();
POSITION org = pos;
while (m_pl.GetNextWrap(pos).m_fInvalid && pos != org) {
;
}
+ // Select the first item to be played when no item was previously selected
+ m_list.SetItemState(FindItem(pos), LVIS_SELECTED, LVIS_SELECTED);
}
UpdateList();
m_pl.SetPos(pos);
@@ -770,6 +771,13 @@ void CPlayerPlaylistBar::SetCurTime(REFERENCE_TIME rt)
}
}
+void CPlayerPlaylistBar::Randomize()
+{
+ m_pl.Randomize();
+ SetupList();
+ SavePlaylist();
+}
+
OpenMediaData* CPlayerPlaylistBar::GetCurOMD(REFERENCE_TIME rtStart)
{
CPlaylistItem* pli = GetCur();
@@ -892,13 +900,13 @@ void CPlayerPlaylistBar::SavePlaylist()
}
BEGIN_MESSAGE_MAP(CPlayerPlaylistBar, CPlayerBar)
+ ON_WM_DESTROY()
ON_WM_SIZE()
ON_NOTIFY(LVN_KEYDOWN, IDC_PLAYLIST, OnLvnKeyDown)
ON_NOTIFY(NM_DBLCLK, IDC_PLAYLIST, OnNMDblclkList)
//ON_NOTIFY(NM_CUSTOMDRAW, IDC_PLAYLIST, OnCustomdrawList)
ON_WM_DRAWITEM()
ON_COMMAND_EX(ID_PLAY_PLAY, OnPlayPlay)
- ON_WM_DROPFILES()
ON_NOTIFY(LVN_BEGINDRAG, IDC_PLAYLIST, OnBeginDrag)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
@@ -937,6 +945,12 @@ void CPlayerPlaylistBar::ResizeListColumn()
}
}
+void CPlayerPlaylistBar::OnDestroy()
+{
+ m_dropTarget.Revoke();
+ __super::OnDestroy();
+}
+
void CPlayerPlaylistBar::OnSize(UINT nType, int cx, int cy)
{
__super::OnSize(nType, cx, cy);
@@ -976,9 +990,8 @@ void CPlayerPlaylistBar::OnLvnKeyDown(NMHDR* pNMHDR, LRESULT* pResult)
*pResult = TRUE;
} else if (pLVKeyDown->wVKey == 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<CString>& slFiles, DROPEFFECT)
{
SetForegroundWindow();
m_list.SetFocus();
- CAtlList<CString> 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<CPlaylistItem> 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 d113ee563..310ce9f36 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 @@ private:
bool m_bHiddenDueToFullscreen;
+ CDropTarget m_dropTarget;
+ void OnDropFiles(CAtlList<CString>& slFiles, DROPEFFECT) override;
+ DROPEFFECT OnDropAccept(COleDataObject*, DWORD, CPoint) override;
+
public:
CPlayerPlaylistBar(CMainFrame* pMainFrame);
virtual ~CPlayerPlaylistBar();
@@ -102,6 +107,7 @@ public:
void SetLast();
void SetCurValid(bool fValid);
void SetCurTime(REFERENCE_TIME rt);
+ void Randomize();
void Refresh();
bool Empty();
@@ -127,6 +133,7 @@ protected:
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 @@ public:
// 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 f811fdac8..9975df0db 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 fb0017f68..4be42a201 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 @@ private:
HICON m_hIcon;
CRect m_time_rect;
+ CMenu m_timerMenu;
CToolTipCtrl m_tooltip;
+ EventClient m_eventc;
+
void Relayout();
public:
@@ -83,5 +86,6 @@ protected:
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 c54b81431..37967e61e 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 ebced00fe..1b6cf35da 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 <afxcview.h>
+#include <vector>
+#include <map>
#include "PlayerBar.h"
#include "PlayerListCtrl.h"
#include "../Subtitles/RTS.h"
@@ -78,10 +80,12 @@ private:
};
MODE m_mode;
+ std::multimap<int, size_t> m_newStartsIndex;
struct SubTime {
int orgStart, newStart, orgEnd, newEnd;
+ std::multimap<int, size_t>::iterator itIndex;
};
- CAtlArray<SubTime> m_subtimes;
+ std::vector<SubTime> m_subtimes;
CSimpleTextSubtitle m_sts;
CAtlArray<CVobSubFile::SubPos> m_vobSub;
@@ -90,7 +94,7 @@ private:
int tStart, tPrevStart, tEnd, tPrevEnd;
int flags;
};
- CAtlArray<DisplayData> m_displayData;
+ std::vector<DisplayData> m_displayData;
CString m_displayBuffer;
int GetStartTime(int iItem);
diff --git a/src/mpc-hc/PlayerToolBar.cpp b/src/mpc-hc/PlayerToolBar.cpp
index 9dfa47684..6d8dd31f0 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 5450ddd7b..fa22b3e6d 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<plsort_t> 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<plsort_t> 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 f219a06c9..48a9f2aad 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 @@ public:
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 @@ public:
CString GetLabel(int i = 0);
};
-class CPlaylist : public CList<CPlaylistItem>
+class CPlaylist : protected CAtlList<CPlaylistItem>
{
protected:
POSITION m_pos;
+ bool m_bShuffle;
+ POSITION m_posHeadShuffle;
+ POSITION m_posTailShuffle;
+ size_t m_nShuffledListSize;
+
+ bool ReshuffleIfNeeded();
public:
- CPlaylist();
+ using CAtlList<CPlaylistItem>::AddHead;
+ using CAtlList<CPlaylistItem>::AddTail;
+ using CAtlList<CPlaylistItem>::InsertAfter;
+ using CAtlList<CPlaylistItem>::InsertBefore;
+ using CAtlList<CPlaylistItem>::GetHead;
+ using CAtlList<CPlaylistItem>::GetTail;
+ using CAtlList<CPlaylistItem>::GetHeadPosition;
+ using CAtlList<CPlaylistItem>::GetTailPosition;
+ using CAtlList<CPlaylistItem>::GetNext;
+ using CAtlList<CPlaylistItem>::GetPrev;
+ using CAtlList<CPlaylistItem>::GetAt;
+ using CAtlList<CPlaylistItem>::GetCount;
+ using CAtlList<CPlaylistItem>::IsEmpty;
+ using CAtlList<CPlaylistItem>::MoveToHead;
+ using CAtlList<CPlaylistItem>::MoveToTail;
+
+ CPlaylist(bool bShuffle = false);
virtual ~CPlaylist();
bool RemoveAll();
@@ -70,8 +95,12 @@ public:
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 b2e69bab2..976c60a9e 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 16d19a2d2..2956af1fa 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<IPropertyBag> 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 67a866599..51d35b9a3 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 434bebc8d..bbe498f19 100644
--- a/src/mpc-hc/Translations.cpp
+++ b/src/mpc-hc/Translations.cpp
@@ -35,6 +35,7 @@ static const std::vector<Translations::LanguageResource> 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 f673d5709..64f531a09 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 38493defb..d2ebdb21d 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 <mvrInterfaces.h>
#define SEEKBAR_HEIGHT 60
#define SLIDER_BAR_MARGIN 10
diff --git a/src/mpc-hc/VMROSD.h b/src/mpc-hc/VMROSD.h
index df2100671..ab2b9ce52 100644
--- a/src/mpc-hc/VMROSD.h
+++ b/src/mpc-hc/VMROSD.h
@@ -24,7 +24,6 @@
#include <d3d9.h>
#include <evr9.h>
#include <vmr9.h>
-#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 5726084f0..b5f332b8e 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 0e854bdfc..116cb7491 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 c7f4bf8f2..d5c6a6718 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<IBaseFilter> pBF = m_pMainFrame->m_pFSF) {
- BeginEnumPins(pBF, pEP, pPin) {
- if (CComQIPtr<IAsyncReader> 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<IBaseFilter> pBF = m_pMainFrame->m_pFSF) {
+ BeginEnumPins(pBF, pEP, pPin) {
+ if (CComQIPtr<IAsyncReader> 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 d46fe50a2..eccd24be3 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 @@ public:
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 bb7f61f54..60f4d10a5 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,13 +3196,22 @@ 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"
IDS_MFMT_APE "Monkey's Audio"
IDS_MFMT_AU "AU/SND"
@@ -3191,14 +3232,6 @@ 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"
IDS_MFMT_BDPLS "Blu-ray playlist"
IDS_MFMT_RAR "RAR Archive"
@@ -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 cb521851a..6786bbddb 100644
--- a/src/mpc-hc/mpc-hc.vcxproj
+++ b/src/mpc-hc/mpc-hc.vcxproj
@@ -321,6 +321,8 @@
<ClCompile Include="ComPropertyPage.cpp" />
<ClCompile Include="ComPropertySheet.cpp" />
<ClCompile Include="CoverArt.cpp" />
+ <ClCompile Include="CrashReporter.cpp" />
+ <ClCompile Include="CrashReporterDialog.cpp" />
<ClCompile Include="CShockwaveFlash.cpp" />
<ClCompile Include="DebugShadersDlg.cpp" />
<ClCompile Include="DeinterlacerFilter.cpp" />
@@ -336,7 +338,7 @@
<ClCompile Include="FGManager.cpp" />
<ClCompile Include="FGManagerBDA.cpp" />
<ClCompile Include="FileAssoc.cpp" />
- <ClCompile Include="FileDropTarget.cpp" />
+ <ClCompile Include="DropTarget.cpp" />
<ClCompile Include="FreeviewEPGDecode.cpp" />
<ClCompile Include="MainFrmControls.cpp" />
<ClCompile Include="MediaPositionList.cpp" />
@@ -351,7 +353,6 @@
<ClCompile Include="MainFrm.cpp" />
<ClCompile Include="MediaFormats.cpp" />
<ClCompile Include="MediaTypesDlg.cpp" />
- <ClCompile Include="MiniDump.cpp" />
<ClCompile Include="Monitors.cpp" />
<ClCompile Include="MouseTouch.cpp" />
<ClCompile Include="MPCPngImage.cpp" />
@@ -449,6 +450,8 @@
<ClInclude Include="ComPropertyPage.h" />
<ClInclude Include="ComPropertySheet.h" />
<ClInclude Include="CoverArt.h" />
+ <ClInclude Include="CrashReporter.h" />
+ <ClInclude Include="CrashReporterDialog.h" />
<ClInclude Include="CShockwaveFlash.h" />
<ClInclude Include="DebugShadersDlg.h" />
<ClInclude Include="DeinterlacerFilter.h" />
@@ -464,7 +467,7 @@
<ClInclude Include="FGManager.h" />
<ClInclude Include="FGManagerBDA.h" />
<ClInclude Include="FileAssoc.h" />
- <ClInclude Include="FileDropTarget.h" />
+ <ClInclude Include="DropTarget.h" />
<ClInclude Include="FilterEnum.h" />
<ClInclude Include="FloatEdit.h" />
<ClInclude Include="FreeviewEPGDecode.h" />
@@ -477,12 +480,12 @@
<ClInclude Include="ISDb.h" />
<ClInclude Include="KeyProvider.h" />
<ClInclude Include="LcdSupport.h" />
+ <ClInclude Include="Logger.h" />
<ClInclude Include="MainFrm.h" />
<ClInclude Include="MainFrmControls.h" />
<ClInclude Include="MediaFormats.h" />
<ClInclude Include="MediaPositionList.h" />
<ClInclude Include="MediaTypesDlg.h" />
- <ClInclude Include="MiniDump.h" />
<ClInclude Include="Monitors.h" />
<ClInclude Include="MouseTouch.h" />
<ClInclude Include="MpcApi.h" />
@@ -574,13 +577,6 @@
<ClInclude Include="WinHotkeyCtrl.h" />
</ItemGroup>
<ItemGroup>
- <Object Include="..\thirdparty\LAVFilters\src\bin_$(PlatformName)\ffmpeg\GCCInfo.o">
- <FileType>Document</FileType>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Lite|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Lite|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Lite|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Lite|Win32'">true</ExcludedFromBuild>
- </Object>
<None Include="res\ani.avi" />
<None Include="res\icon.ico">
<FileType>ICO</FileType>
@@ -766,6 +762,9 @@
<ProjectReference Include="..\Subtitles\Subtitles.vcxproj">
<Project>{5e56335f-0fb1-4eea-b240-d8dc5e0608e4}</Project>
</ProjectReference>
+ <ProjectReference Include="..\thirdparty\DoctorDump\DoctorDump.vcxproj">
+ <Project>{beceaff9-cdca-45ec-a1cf-658fa51818e6}</Project>
+ </ProjectReference>
<ProjectReference Include="..\thirdparty\LAVFilters\LAVFilters.vcxproj">
<Project>{ed257874-e12e-4143-af0a-0676da3bb18c}</Project>
</ProjectReference>
diff --git a/src/mpc-hc/mpc-hc.vcxproj.filters b/src/mpc-hc/mpc-hc.vcxproj.filters
index dfd45f79d..063c0f1d7 100644
--- a/src/mpc-hc/mpc-hc.vcxproj.filters
+++ b/src/mpc-hc/mpc-hc.vcxproj.filters
@@ -83,6 +83,9 @@
<Filter Include="Main View">
<UniqueIdentifier>{0453474a-2716-4c52-b5f4-cf6bd9e31ed0}</UniqueIdentifier>
</Filter>
+ <Filter Include="Crash Reporter">
+ <UniqueIdentifier>{1d73f7db-64e8-4bc8-b0ca-72847253f467}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="AppSettings.cpp">
@@ -157,9 +160,6 @@
<ClCompile Include="FileAssoc.cpp">
<Filter>Player Config</Filter>
</ClCompile>
- <ClCompile Include="FileDropTarget.cpp">
- <Filter>Helpers</Filter>
- </ClCompile>
<ClCompile Include="FloatEdit.cpp">
<Filter>Custom Controls</Filter>
</ClCompile>
@@ -397,7 +397,6 @@
<ClCompile Include="EventDispatcher.cpp" />
<ClCompile Include="MainFrm.cpp" />
<ClCompile Include="MainFrmControls.cpp" />
- <ClCompile Include="MiniDump.cpp" />
<ClCompile Include="mplayerc.cpp" />
<ClCompile Include="Playlist.cpp" />
<ClCompile Include="stdafx.cpp" />
@@ -435,6 +434,15 @@
<ClCompile Include="PlayerPlaylistBar.cpp">
<Filter>Panels</Filter>
</ClCompile>
+ <ClCompile Include="DropTarget.cpp">
+ <Filter>Helpers</Filter>
+ </ClCompile>
+ <ClCompile Include="CrashReporter.cpp">
+ <Filter>Crash Reporter</Filter>
+ </ClCompile>
+ <ClCompile Include="CrashReporterDialog.cpp">
+ <Filter>Crash Reporter</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="AppSettings.h">
@@ -509,9 +517,6 @@
<ClInclude Include="FileAssoc.h">
<Filter>Player Config</Filter>
</ClInclude>
- <ClInclude Include="FileDropTarget.h">
- <Filter>Helpers</Filter>
- </ClInclude>
<ClInclude Include="FloatEdit.h">
<Filter>Custom Controls</Filter>
</ClInclude>
@@ -770,7 +775,6 @@
<ClInclude Include="EventDispatcher.h" />
<ClInclude Include="MainFrm.h" />
<ClInclude Include="MainFrmControls.h" />
- <ClInclude Include="MiniDump.h" />
<ClInclude Include="mplayerc.h" />
<ClInclude Include="Playlist.h" />
<ClInclude Include="resource.h" />
@@ -812,6 +816,18 @@
<ClInclude Include="PlayerPlaylistBar.h">
<Filter>Panels</Filter>
</ClInclude>
+ <ClInclude Include="DropTarget.h">
+ <Filter>Helpers</Filter>
+ </ClInclude>
+ <ClInclude Include="Logger.h">
+ <Filter>Helpers</Filter>
+ </ClInclude>
+ <ClInclude Include="CrashReporter.h">
+ <Filter>Crash Reporter</Filter>
+ </ClInclude>
+ <ClInclude Include="CrashReporterDialog.h">
+ <Filter>Crash Reporter</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="res\ani.avi">
@@ -1048,9 +1064,4 @@
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
- <ItemGroup>
- <Object Include="..\thirdparty\LAVFilters\src\bin_$(PlatformName)\ffmpeg\GCCInfo.o">
- <Filter>Build Info</Filter>
- </Object>
- </ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/mpc-hc/mpciconlib/mpciconlib.cpp b/src/mpc-hc/mpciconlib/mpciconlib.cpp
index c85de0f36..78ca7645e 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 8164268ea..0f9b43c5b 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 8072e84ca..befe53f7d 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 1140f59e5..24109261f 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 4b1557c10..3077e374c 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 5f0db9a5b..d43981dcf 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 e48214acd..b47b6852b 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 bd3e2f9af..4ca937d62 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 (তপৠআফà§à¦°à¦¾à¦¦) <tapu_afrad@hotmail.com>, 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 10f602a27..4e1b66b64 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&lternative 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 3841ec53a..a29e1944a 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 "<not defined>"
-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 76535df05..c0067cb55 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 <papu@openmailbox.org>, 2014-2015
# papu <papu@openmailbox.org>, 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 <papu@openmailbox.org>\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 22769aac7..97eba6567 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 <papu@openmailbox.org>, 2014
+# papu <papu@openmailbox.org>, 2014-2015
# papu <papu@openmailbox.org>, 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 <papu@openmailbox.org>\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 613b50589..664fc1660 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 <papu@openmailbox.org>, 2014
+# Katabi Oka, 2015
+# papu <papu@openmailbox.org>, 2014-2015
# papu <papu@openmailbox.org>, 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 <papu@openmailbox.org>\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 "<sense definir>"
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 f663a83d0..e44e253f6 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 e017154d9..985ffb0fb 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 52db4e64a..6e7cba2b1 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 <kosata6@seznam.cz>, 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 000000000..39ab70fc2
--- /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 <cbf_x@hotmail.com>, 2014
+# Xebika <fidodkk@gmail.com>, 2014-2015
+# Jatyrael <cbf_x@hotmail.com>, 2014
+# scootergrisen, 2015
+# Stoffi, 2014-2015
+# Xebika <fidodkk@gmail.com>, 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 000000000..0bca2596c
--- /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 <cbf_x@hotmail.com>, 2014
+# Xebika <fidodkk@gmail.com>, 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&lternative VSync"
+msgstr "A&lternativ 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 000000000..af6d82a0b
--- /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 <cbf_x@hotmail.com>, 2015
+# Xebika <fidodkk@gmail.com>, 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 "<not defined>"
+msgstr "<udefineret>"
+
+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 29876f000..39a9ea593 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 <luanmail@gmx.net>, 2014
+# Luan <luanmail@gmx.net>, 2014-2015
# Luan <luanmail@gmx.net>, 2014
# Luan <luanmail@gmx.net>, 2014
# M T <michtrz@gmail.com>, 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 <luanmail@gmx.net>\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 869bb8941..eee50760c 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 <luanmail@gmx.net>, 2014
+# Luan <luanmail@gmx.net>, 2014-2015
# Luan <luanmail@gmx.net>, 2014
# M T <michtrz@gmail.com>, 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 <luanmail@gmx.net>\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 79ea1c589..b4e2722c3 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 <luanmail@gmx.net>, 2014
+# Luan <luanmail@gmx.net>, 2014-2015
# Luan <luanmail@gmx.net>, 2014
# Luan <luanmail@gmx.net>, 2014
# M T <michtrz@gmail.com>, 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 <luanmail@gmx.net>\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 78c6a1be3..4202fab67 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 dc2ce9301..4aa2a4d25 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 <admin@geogeo.gr>, 2013-2014
+# geogeo.gr <admin@geogeo.gr>, 2013-2015
# firespin <dartworldgr@hotmail.com>, 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 <admin@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 30bf9d231..5180d066d 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 <admin@geogeo.gr>, 2014
+# geogeo.gr <admin@geogeo.gr>, 2014-2015
# firespin <dartworldgr@hotmail.com>, 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 <admin@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 a4d5bcc2f..b7a455655 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 <admin@geogeo.gr>, 2013-2014
+# geogeo.gr <admin@geogeo.gr>, 2013-2015
# firespin <dartworldgr@hotmail.com>, 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 <dartworldgr@hotmail.com>\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 <admin@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 43ccfd226..38dd93634 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 <doctor.z01db3rg@gmail.com>, 2013-2014
+# Sir_Burpalot <doctor.z01db3rg@gmail.com>, 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 <doctor.z01db3rg@gmail.com>\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 f0f462b33..98c545ce3 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 <doctor.z01db3rg@gmail.com>, 2013-2014
+# Sir_Burpalot <doctor.z01db3rg@gmail.com>, 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 <doctor.z01db3rg@gmail.com>\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 ecdfdcbb9..a22311d45 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 <doctor.z01db3rg@gmail.com>, 2013-2014
+# Sir_Burpalot <doctor.z01db3rg@gmail.com>, 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 <doctor.z01db3rg@gmail.com>\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 4688ac64f..809683149 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 <fito@libreoffice.org>, 2014
-# Adolfo Jayme Barrientos <fito@libreoffice.org>, 2014
-# Ernesto Avilés Vzqz <whippiii@gmail.com>, 2013
-# Ernesto Avilés Vzqz <whippiii@gmail.com>, 2014
+# Adolfo Jayme Barrientos, 2014-2015
+# Adolfo Jayme Barrientos, 2015
+# Adolfo Jayme Barrientos, 2014
+# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2013
+# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2014
# squallmx <squallmx@users.sourceforge.net>, 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 c275d4b1b..75aa68f32 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 <fito@libreoffice.org>, 2014
-# Adolfo Jayme Barrientos <fito@libreoffice.org>, 2014
+# Adolfo Jayme Barrientos, 2014
+# Adolfo Jayme Barrientos, 2014
# JellyFrog, 2013
# squallmx <squallmx@users.sourceforge.net>, 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 <fito@libreoffice.org>\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 755ed94ad..ceb14c28a 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 <fito@libreoffice.org>, 2014-2015
-# Adolfo Jayme Barrientos <fito@libreoffice.org>, 2014
-# Ernesto Avilés Vzqz <whippiii@gmail.com>, 2013
+# Adolfo Jayme Barrientos, 2014-2015
+# Adolfo Jayme Barrientos, 2015
+# Adolfo Jayme Barrientos, 2014
+# Ernesto Avilés Vázquez <whippiii@gmail.com>, 2013
# fdelacruz <freddy@delacruz.cl>, 2014
# Johan Ramirez <idonthumanbeing@gmail.com>, 2014
# Johan Ramirez <idonthumanbeing@gmail.com>, 2014
# Alpha120 <juanhc120@gmail.com>, 2014
# squallmx <squallmx@users.sourceforge.net>, 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 <fito@libreoffice.org>\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 e99102610..5e3f830db 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 <azpidatziak@gmail.com>, 2013-2014
+# Xabier Aramendi <azpidatziak@gmail.com>, 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 <azpidatziak@gmail.com>\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 210b0151f..635e93c73 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 <azpidatziak@gmail.com>, 2013-2014
+# Xabier Aramendi <azpidatziak@gmail.com>, 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 <azpidatziak@gmail.com>\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 487d8b095..3d5926cee 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 <azpidatziak@gmail.com>, 2013-2014
+# Xabier Aramendi <azpidatziak@gmail.com>, 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 <azpidatziak@gmail.com>\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 f80051878..c1059b5dc 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 <mrktarvainen@gmail.com>\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 269731dbe..fd2a73165 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 <phewnix@gmail.com>, 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 <phewnix@gmail.com>\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 b6496d882..d8830151d 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 <phewnix@gmail.com>\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 3660b1f4f..a782edc17 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 24f54174c..c423e5765 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 fb0ee7e9d..ac1a319aa 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 1f667b2ec..1403a21e8 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 <feiticeiro2010@hotmail.es>, 2014
+# Rubén <feiticeiro2010@hotmail.es>, 2014-2015
# Toño Calo <enfeitizador@gmail.com>, 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 <feiticeiro2010@hotmail.es>\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 ce680454e..0375c619b 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 <feiticeiro2010@hotmail.es>, 2014
+# Rubén <feiticeiro2010@hotmail.es>, 2014-2015
+# Toño Calo <enfeitizador@gmail.com>, 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 <feiticeiro2010@hotmail.es>\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 6c2b952ef..412841cb9 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 <feiticeiro2010@hotmail.es>, 2014
+# Rubén <feiticeiro2010@hotmail.es>, 2014-2015
# Toño Calo <enfeitizador@gmail.com>, 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 <feiticeiro2010@hotmail.es>\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 e2d83b005..74dabe471 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 dea8f4fcc..ceb35ccd5 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 023b8f7b7..79c202fdd 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 f973cdb7d..1afe50e2a 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 <aprcel00@fesb.hr>, 2014
+# schop <aprcel00@fesb.hr>, 2014-2015
# iivana24 <iivana24@gmail.com>, 2014
-# streger <stjepan.treger@gmail.com>, 2014
+# streger <stjepan.treger@gmail.com>, 2014-2015
# Ico2005 <vukasinac@gmail.com>, 2014
# schop <aprcel00@fesb.hr>, 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 <stjepan.treger@gmail.com>\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 26fa03413..9a5c24cda 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 <aprcel00@fesb.hr>, 2014
-# streger <stjepan.treger@gmail.com>, 2014
+# schop <aprcel00@fesb.hr>, 2014-2015
+# streger <stjepan.treger@gmail.com>, 2014-2015
# Ico2005 <vukasinac@gmail.com>, 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 <aprcel00@fesb.hr>\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 <stjepan.treger@gmail.com>\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 211a9cc9e..315adbe0d 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 <aprcel00@fesb.hr>, 2014
+# schop <aprcel00@fesb.hr>, 2014-2015
# iivana24 <iivana24@gmail.com>, 2014
-# streger <stjepan.treger@gmail.com>, 2014
+# streger <stjepan.treger@gmail.com>, 2014-2015
# vBm <the.vbm@gmail.com>, 2014
# Underground78, 2014
# Ico2005 <vukasinac@gmail.com>, 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 <stjepan.treger@gmail.com>\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 802fa821d..0a7429106 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é <lang.mate@gmail.com>, 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é <lang.mate@gmail.com>\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 89a298381..84d2dff9b 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é <lang.mate@gmail.com>, 2014
+# Máté <lang.mate@gmail.com>, 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é <lang.mate@gmail.com>\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 8eed18f2b..8fb033690 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é <lang.mate@gmail.com>, 2014
+# Fridrich Losonszki <losonszki@gmail.com>, 2015
+# Máté <lang.mate@gmail.com>, 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é <lang.mate@gmail.com>\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 cfda97f3a..da7d7dd3d 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 defb2fd00..1714f423b 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 3e8a677f3..a82a6c293 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 648a82029..b5857f52a 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 5ba8ea96b..fac1d735d 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 <papu@openmailbox.org>, 2014
+# papu <papu@openmailbox.org>, 2014-2015
# papu <papu@openmailbox.org>, 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 <papu@openmailbox.org>\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 000000000..73b3f50e5
--- /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 <cbf_x@hotmail.com>, 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 54c780d5d..a5bccf13d 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 <fito@libreoffice.org>, 2014
-# Adolfo Jayme Barrientos <fito@libreoffice.org>, 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 <fito@libreoffice.org>\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 257c8f512..eec82368f 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 <feiticeiro2010@hotmail.es>, 2014
-# Toño Calo <enfeitizador@gmail.com>, 2014
+# Toño Calo <enfeitizador@gmail.com>, 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 <enfeitizador@gmail.com>\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 f6f1dacda..1e9a52bcd 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 <aprcel00@fesb.hr>, 2014
# iivana24 <iivana24@gmail.com>, 2014
-# streger <stjepan.treger@gmail.com>, 2014
+# streger <stjepan.treger@gmail.com>, 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 <stjepan.treger@gmail.com>\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 da9f86832..800e2e8df 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 <gabrixs@outlook.com>, 2014
+# Gabrix <inactive+Gabrix@transifex.com>, 2014
# Kiba_No_Ou <kiba.no.michi@gmail.com>, 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 <gabrixs@outlook.com>\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 d76a4cc9e..87e3286b6 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 82c7d4706..8749b9e9d 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 <zx132435@naver.com>\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 83e6320b0..ee76ab80c 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 <devrim.extra@gmail.com>, 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 ef49ff3c3..16c2ffcb2 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 <danny34ever@yahoo.com>, 2014
+# Daniel <danny34ever@yahoo.com>, 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 <danny34ever@yahoo.com>\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 cecf79fb9..79948abe3 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 c7d2ed4a2..acd7a2559 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 <gabrixs@outlook.com>, 2014
+# Gabrix <inactive+Gabrix@transifex.com>, 2014
# Kiba_No_Ou <kiba.no.michi@gmail.com>, 2014
-# Tummarellox <tummarellox@gmail.com>, 2014
+# Jacopo Tumminello <tummarellox@gmail.com>, 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 <tummarellox@gmail.com>\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 02cf0248c..6a6ff01a2 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 <gabrixs@outlook.com>, 2014
+# Gabrix <inactive+Gabrix@transifex.com>, 2014
# Kiba_No_Ou <kiba.no.michi@gmail.com>, 2014
+# Luca Bisaro <lucabisaro2@gmail.com>, 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 <lucabisaro2@gmail.com>\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 9bd745454..e2b7a53ad 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 <gabrixs@outlook.com>, 2014
+# Gabrix <inactive+Gabrix@transifex.com>, 2014
# Kiba_No_Ou <kiba.no.michi@gmail.com>, 2014
-# Tummarellox <tummarellox@gmail.com>, 2014
+# Jacopo Tumminello <tummarellox@gmail.com>, 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 <tummarellox@gmail.com>\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 7188ddcc8..496a2e497 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 1fa1bec58..5e3a97788 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 efe2af281..d0d85338b 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 cb97be7fa..946838756 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 <zx132435@naver.com>, 2014
+# Level ASMer <zx132435@naver.com>, 2014-2015
# limeburst <me@limeburst.net>, 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 <zx132435@naver.com>\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 3db821391..059209e75 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 77901bb1e..9aceae15a 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 <zx132435@naver.com>\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 7ec9519e7..fdeb4f7ef 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 b809043a7..dfdf6f061 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 <abuyop@gmail.com>, 2014
+# abuyop <abuyop@gmail.com>, 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 <abuyop@gmail.com>\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 8988f04c7..37498c43c 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 <abuyop@gmail.com>, 2014
+# abuyop <abuyop@gmail.com>, 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 <abuyop@gmail.com>\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 7b522fdb3..286066f3e 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 <abuyop@gmail.com>, 2014
+# abuyop <abuyop@gmail.com>, 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 <abuyop@gmail.com>\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 4a2475e22..a7ee1e965 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 <frostflame@hotmail.com>, 2014
-# Devrim Yolo <devrim.extra@gmail.com>, 2013-2014
+# Devrim, 2013-2015
# DennisW, 2014
# rjongejan <ruben.jongejan@gmail.com>, 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 2cd9a0843..2ac8532d6 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 <frostflame@hotmail.com>, 2014
-# Devrim Yolo <devrim.extra@gmail.com>, 2013-2014
+# Devrim, 2013-2015
# DennisW, 2014
# kasper93, 2013
# rjongejan <ruben.jongejan@gmail.com>, 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 a01d2eb75..c1a588eae 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 <frostflame@hotmail.com>, 2014
# dragnadh <dragnadh@gmail.com>, 2015
# DennisW, 2014
+# B512, 2015
+# Peter Pul, 2015
# rjongejan <ruben.jongejan@gmail.com>, 2014
# Tom <tom@boksma.com>, 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 <dragnadh@gmail.com>\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 "<not defined>"
-msgstr ""
+msgstr "<niet gedefinieerd>"
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 c1af6d236..b61b0a1da 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 <michtrz@gmail.com>, 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 ff89f360f..be3d7fb70 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 998ac34e4..f083e9aef 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 <michtrz@gmail.com>, 2013-2014
+# kasper93, 2013-2015
+# M T <michtrz@gmail.com>, 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 00da26123..f75abc422 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 <alex.mooca@hotmail.com>, 2014
+# Alex Luís Silva <alex.mooca@hotmail.com>, 2014-2015
# Alex Luís Silva <alex.mooca@hotmail.com>, 2014
# Roger Filipe <lipe2000@outlook.com>, 2013-2014
# Luis Henrique <henriqlh@gmail.com>, 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 <alex.mooca@hotmail.com>\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 22689a71b..d672146e5 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 <alex.mooca@hotmail.com>, 2014
+# Alex Luís Silva <alex.mooca@hotmail.com>, 2014-2015
# Alex Luís Silva <alex.mooca@hotmail.com>, 2014
# Roger Filipe <lipe2000@outlook.com>, 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 <alex.mooca@hotmail.com>\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 0bbe4065b..dd6f9d654 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 <alex.mooca@hotmail.com>, 2014
+# Alex Luís Silva <alex.mooca@hotmail.com>, 2014-2015
# Alex Luís Silva <alex.mooca@hotmail.com>, 2014
# brunoarmanelli <brunoarmanelli@me.com>, 2014
# Erick Simões <erick.simoes@yahoo.com.br>, 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 <erick.simoes@yahoo.com.br>\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 <alex.mooca@hotmail.com>\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 08e63b0f3..4cf7e69e6 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 <danny34ever@yahoo.com>, 2014
-# lordkag <lord.kagula@gmail.com>, 2014
+# Daniel <danny34ever@yahoo.com>, 2014-2015
+# lordkag <lord.kagula@gmail.com>, 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 <lord.kagula@gmail.com>\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 62b24b306..48d03524c 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 <danny34ever@yahoo.com>, 2014
-# lordkag <lord.kagula@gmail.com>, 2014
+# Daniel <danny34ever@yahoo.com>, 2014-2015
+# lordkag <lord.kagula@gmail.com>, 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 <lord.kagula@gmail.com>\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 60d899c26..56a417ad4 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 <danny34ever@yahoo.com>, 2014
-# lordkag <lord.kagula@gmail.com>, 2014
+# Daniel <danny34ever@yahoo.com>, 2014-2015
+# lordkag <lord.kagula@gmail.com>, 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 <lord.kagula@gmail.com>\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 <danny34ever@yahoo.com>\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ă <Vine șefu!>"
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 92ceeb84d..28501809c 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 <kefir500@gmail.com>, 2014
-# sayanvd <sayanvd@yandex.ru>, 2014
+# Arkady Shapkin <arkadiy_s@inbox.ru>, 2015
+# Pavel Otchertsov <pavel.otchertsov@gmail.com>, 2015
+# sayanvd <sayanvd@yandex.ru>, 2014-2015
# stryaponoff <stryaponoff@gmail.com>, 2014
# SmilyCarrot <twisted-transistor@yandex.ru>, 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 <sayanvd@yandex.ru>\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 40d8e7511..4ac438838 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 <sayanvd@yandex.ru>, 2014
+# sayanvd <sayanvd@yandex.ru>, 2014-2015
# SmilyCarrot <twisted-transistor@yandex.ru>, 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 <twisted-transistor@yandex.ru>\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 <sayanvd@yandex.ru>\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 a11c0f35e..66946a863 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 <kefir500@gmail.com>, 2014
# Arkady Shapkin <arkadiy_s@inbox.ru>, 2014
-# sayanvd <sayanvd@yandex.ru>, 2014
+# Ilya, 2015
+# Pavel Otchertsov <pavel.otchertsov@gmail.com>, 2015
+# sayanvd <sayanvd@yandex.ru>, 2014-2015
# stryaponoff <stryaponoff@gmail.com>, 2014
-# SmilyCarrot <twisted-transistor@yandex.ru>, 2014
+# SmilyCarrot <twisted-transistor@yandex.ru>, 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 <sayanvd@yandex.ru>\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 a8c963d93..42895d371 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 <podnety@mojepreklady.net>, 2013-2014
-# Marián Hikaník <podnety@mojepreklady.net>, 2014
+# Marián Hikaník <podnety@mojepreklady.net>, 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 <podnety@mojepreklady.net>\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 d52b83215..31e43a84d 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 <podnety@mojepreklady.net>, 2013
-# Marián Hikaník <podnety@mojepreklady.net>, 2014
+# Marián Hikaník <podnety@mojepreklady.net>, 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 <podnety@mojepreklady.net>\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 f0ac061d6..cc6a4ea91 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 <podnety@mojepreklady.net>, 2013-2014
-# Marián Hikaník <podnety@mojepreklady.net>, 2014
+# Marián Hikaník <podnety@mojepreklady.net>, 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 <podnety@mojepreklady.net>\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 542d5c138..d19b5f171 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 <knedlc@gmail.com>, 2014
-# shvala <simon.hvala@hotmail.com>, 2013-2014
+# shvala <simon.hvala@hotmail.com>, 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 <simon.hvala@hotmail.com>\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 d1d48e5ec..f73824a23 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 <knedlc@gmail.com>, 2014
-# shvala <simon.hvala@hotmail.com>, 2013
+# shvala <simon.hvala@hotmail.com>, 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 <knedlc@gmail.com>\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 <simon.hvala@hotmail.com>\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 acc544df1..23ed7350a 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 <knedlc@gmail.com>, 2014
-# shvala <simon.hvala@hotmail.com>, 2013-2014
+# shvala <simon.hvala@hotmail.com>, 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 <simon.hvala@hotmail.com>\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 "<nedefinirano>"
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 b8b226c7f..2546abe55 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 <djordje.vasiljevich@gmail.com>, 2014
+# Rancher <djordje.vasiljevich@gmail.com>, 2014-2015
# vBm <the.vbm@gmail.com>, 2014
# vBm <the.vbm@gmail.com>, 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 <djordje.vasiljevich@gmail.com>\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 1adf875fe..39a596aae 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 <djordje.vasiljevich@gmail.com>, 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 07b9edfb7..43064ed57 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 <djordje.vasiljevich@gmail.com>, 2014
+# Rancher <djordje.vasiljevich@gmail.com>, 2014-2015
# vBm <the.vbm@gmail.com>, 2014
# vBm <the.vbm@gmail.com>, 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 <djordje.vasiljevich@gmail.com>\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 b82d9e9b5..c63729a3e 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ce35bfaa8..7d42cbbe5 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 <sakcheen@gmail.com>, 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 <sakcheen@gmail.com>\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 02c9553da..6f5b30730 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 <sakcheen@gmail.com>, 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 <sakcheen@gmail.com>\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 12fa04c5e..e996727f7 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 <sakcheen@gmail.com>, 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 <sakcheen@gmail.com>\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 84006570e..5dd84a716 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 ee47bd1a9..95d500816 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 f9b787a5c..4380b1cd4 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 4861ba83f..a15d7fae2 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 <burakgarci@gmail.com>, 2013
-# Sinan H., 2014
+# Mesut AktaÅŸ <mesuthan_42@hotmail.com>, 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 f8987a47e..d14683ac3 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 <burakgarci@gmail.com>, 2013
-# Devrim Yolo <devrim.extra@gmail.com>, 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 403c84a3b..c0c7ece01 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 <burakgarci@gmail.com>, 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 177b6dfb2..2a276369d 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 5c00919f6..3d8df2262 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 832ad3b44..d23367651 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 f0650dec7..15142d416 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 <arestarh@ukr.net>, 2014
+# arestarh1986 <arestarh@ukr.net>, 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 <arestarh@ukr.net>\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 f37fb564f..cd5bc5536 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 <arestarh@ukr.net>, 2014
+# arestarh1986 <arestarh@ukr.net>, 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 <arestarh@ukr.net>\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 7e441ba16..38bfcac19 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 <arestarh@ukr.net>, 2014
+# arestarh1986 <arestarh@ukr.net>, 2014-2015
+# Maksym Kozachenko <symphonicon@gmail.com>, 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 <arestarh@ukr.net>\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 361338e59..0a801ed4b 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 <datanhlg@gmail.com>, 2014
-# TRẦN ANH MINH <anhminhvks@yahoo.com>, 2014
+# TRẦN ANH MINH <anhminhvks@yahoo.com>, 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 9238ed356..4a5f1462d 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 <datanhlg@gmail.com>, 2014
-# TRẦN ANH MINH <anhminhvks@yahoo.com>, 2014
+# TRẦN ANH MINH <anhminhvks@yahoo.com>, 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 <datanhlg@gmail.com>\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 <anhminhvks@yahoo.com>\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 ce40550f6..843841d1b 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 <datanhlg@gmail.com>, 2014
-# TRẦN ANH MINH <anhminhvks@yahoo.com>, 2014
+# TRẦN ANH MINH <anhminhvks@yahoo.com>, 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 <anhminhvks@yahoo.com>\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 "<không xác định>"
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 9c1b563f3..c00b74e02 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 <bruce.luo+transifex@nyu.edu>, 2014
-# Ming Chen <yzonline@gmail.com>, 2013-2014
+# Ming Chen <yzonline@gmail.com>, 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 <yzonline@gmail.com>\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 042e4c2c7..154bb3f63 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 <bruce.luo+transifex@nyu.edu>, 2014
# kasper93, 2013
-# Ming Chen <yzonline@gmail.com>, 2013-2014
+# Ming Chen <yzonline@gmail.com>, 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 <yzonline@gmail.com>\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 e989e2d68..9d9b0dea2 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 <bruce.luo+transifex@nyu.edu>, 2014
# hkenneth <extremekeny@hotmail.com>, 2013
-# Ming Chen <yzonline@gmail.com>, 2013-2014
+# Ming Chen <yzonline@gmail.com>, 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 <yzonline@gmail.com>\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 8c6100db4..01df343f8 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 e999cac2e..049893722 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 597232fda..30cb78262 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 7d68f0a1e..d8bf00e3d 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 @@ import glob
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 @@ if __name__ == '__main__':
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 0e108a239..5fec11c4a 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 @@ import sys
from TranslationDataIS import *
-if __name__ == '__main__':
- if len(sys.argv) != 2:
- RuntimeError('Invalid number of parameters. Usage: UpdateISPO.py <filename>')
- 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 @@ if __name__ == '__main__':
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 <filename>')
+
+ UpdateISPO(sys.argv[1])
diff --git a/src/mpc-hc/mpcresources/UpdateISPOT.py b/src/mpc-hc/mpcresources/UpdateISPOT.py
index 41042747d..62917687c 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 @@ import sys
from TranslationDataIS import *
-if __name__ == '__main__':
+
+def UpdateISPOT():
translationData = TranslationDataIS()
translationData.loadFromIS(r'..\..\..\distrib\custom_messages.iss')
@@ -28,3 +29,6 @@ if __name__ == '__main__':
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 c0fd369f2..3aae35b34 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 @@ import sys
from TranslationDataRC import *
-if __name__ == '__main__':
- if len(sys.argv) != 2:
- RuntimeError('Invalid number of parameters. Usage: UpdatePO.py <filename>')
-
- filename = sys.argv[1]
+def UpdatePO(filename):
translationDataOld = TranslationDataRC()
translationDataOld.loadFromPO('PO\\' + filename, 'po')
@@ -32,3 +28,9 @@ if __name__ == '__main__':
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 <filename>')
+
+ UpdatePO(sys.argv[1])
diff --git a/src/mpc-hc/mpcresources/UpdatePOT.py b/src/mpc-hc/mpcresources/UpdatePOT.py
index b9c1e832b..928e20ae9 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 @@ import sys
from TranslationDataRC import *
-if __name__ == '__main__':
+
+def UpdatePOT():
translationData = TranslationDataRC()
translationData.loadFromRC(r'..\mpc-hc.rc')
@@ -28,3 +29,6 @@ if __name__ == '__main__':
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 16b16a9e0..09cfb2d17 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 @@ import sys
from TranslationDataRC import *
-if __name__ == '__main__':
- if len(sys.argv) != 2:
- RuntimeError('Invalid number of parameters. Usage: UpdateRC.py <filename>')
-
- 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 <filename>')
+
+ 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 000000000..3e88f7ee9
--- /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 ae8d6d499..3e217787f 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 33247abec..b784217a2 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ar.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ar.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.be.rc b/src/mpc-hc/mpcresources/mpc-hc.be.rc
index 0c62601cc..1663cd07f 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.be.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.be.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.bn.rc b/src/mpc-hc/mpcresources/mpc-hc.bn.rc
index 167383ae2..429415826 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.bn.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.bn.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.ca.rc b/src/mpc-hc/mpcresources/mpc-hc.ca.rc
index 47d48c9e3..de91acfba 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ca.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ca.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.cs.rc b/src/mpc-hc/mpcresources/mpc-hc.cs.rc
index 819f1f3c8..cf9979d0e 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.cs.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.cs.rc
Binary files 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 000000000..28fe991e5
--- /dev/null
+++ b/src/mpc-hc/mpcresources/mpc-hc.da.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.de.rc b/src/mpc-hc/mpcresources/mpc-hc.de.rc
index 07f4bebb0..5bb07bd99 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.de.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.de.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.el.rc b/src/mpc-hc/mpcresources/mpc-hc.el.rc
index 0f73db55b..1328e8cc1 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.el.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.el.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc b/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc
index 7418b81a8..5aedb7d73 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.en_GB.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.es.rc b/src/mpc-hc/mpcresources/mpc-hc.es.rc
index 09fbcf2e9..22b24e4f4 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.es.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.es.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.eu.rc b/src/mpc-hc/mpcresources/mpc-hc.eu.rc
index de61ceee0..6a7c5926d 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.eu.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.eu.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.fi.rc b/src/mpc-hc/mpcresources/mpc-hc.fi.rc
index 1e35b241a..7f7329add 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.fi.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.fi.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.fr.rc b/src/mpc-hc/mpcresources/mpc-hc.fr.rc
index 57e4a2ab3..84f5741ef 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.fr.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.fr.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.gl.rc b/src/mpc-hc/mpcresources/mpc-hc.gl.rc
index 2e99eb184..0b10ce4a4 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.gl.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.gl.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.he.rc b/src/mpc-hc/mpcresources/mpc-hc.he.rc
index 4e2d0b489..99a94bbeb 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.he.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.he.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.hr.rc b/src/mpc-hc/mpcresources/mpc-hc.hr.rc
index 9242664db..5e6604653 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.hr.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.hr.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.hu.rc b/src/mpc-hc/mpcresources/mpc-hc.hu.rc
index 53d6319ef..23b556caf 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.hu.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.hu.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.hy.rc b/src/mpc-hc/mpcresources/mpc-hc.hy.rc
index f987d93dd..07a2550b2 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.hy.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.hy.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.it.rc b/src/mpc-hc/mpcresources/mpc-hc.it.rc
index 2c0c87f10..463335351 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.it.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.it.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.ja.rc b/src/mpc-hc/mpcresources/mpc-hc.ja.rc
index f8ded07e1..e3d8b2899 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ja.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ja.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.ko.rc b/src/mpc-hc/mpcresources/mpc-hc.ko.rc
index b0d50a9e0..46739b519 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ko.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ko.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc b/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc
index 6ffe06578..c3a480b01 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ms_MY.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.nl.rc b/src/mpc-hc/mpcresources/mpc-hc.nl.rc
index 0cd6849e8..61a2e8aad 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.nl.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.nl.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.pl.rc b/src/mpc-hc/mpcresources/mpc-hc.pl.rc
index 00387f2e4..4bf0caa11 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.pl.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.pl.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc b/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc
index 5a47e4538..41cc199a7 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.pt_BR.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.ro.rc b/src/mpc-hc/mpcresources/mpc-hc.ro.rc
index 96bb7285a..1deafe996 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ro.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ro.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.ru.rc b/src/mpc-hc/mpcresources/mpc-hc.ru.rc
index fc8099eaf..4dd9be06c 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.ru.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.ru.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.sk.rc b/src/mpc-hc/mpcresources/mpc-hc.sk.rc
index 8eea61a67..22d4e925c 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.sk.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.sk.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.sl.rc b/src/mpc-hc/mpcresources/mpc-hc.sl.rc
index 80c4c9358..6b73e575b 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.sl.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.sl.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.sr.rc b/src/mpc-hc/mpcresources/mpc-hc.sr.rc
index 87b08f712..0e72e633e 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.sr.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.sr.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.sv.rc b/src/mpc-hc/mpcresources/mpc-hc.sv.rc
index 5e3e5eec1..a4420c7e5 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.sv.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.sv.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc b/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc
index 078621184..848964cba 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.th_TH.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.tr.rc b/src/mpc-hc/mpcresources/mpc-hc.tr.rc
index 93a1c87b4..aa75f1042 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.tr.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.tr.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.tt.rc b/src/mpc-hc/mpcresources/mpc-hc.tt.rc
index 9ce1b71d1..db7fec5a8 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.tt.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.tt.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.uk.rc b/src/mpc-hc/mpcresources/mpc-hc.uk.rc
index 7f20d2b52..a0228afd8 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.uk.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.uk.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.vi.rc b/src/mpc-hc/mpcresources/mpc-hc.vi.rc
index 284b56b92..a5f1c919c 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.vi.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.vi.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc b/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc
index 38ebddc6f..d457d5a89 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.zh_CN.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc b/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc
index f8755bfad..01359a6bf 100644
--- a/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc
+++ b/src/mpc-hc/mpcresources/mpc-hc.zh_TW.rc
Binary files differ
diff --git a/src/mpc-hc/mpcresources/mpcresources.vcxproj b/src/mpc-hc/mpcresources/mpcresources.vcxproj
index 3b861b415..18a20cf15 100644
--- a/src/mpc-hc/mpcresources/mpcresources.vcxproj
+++ b/src/mpc-hc/mpcresources/mpcresources.vcxproj
@@ -81,6 +81,14 @@
<Configuration>Release Czech</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
+ <ProjectConfiguration Include="Release Danish|Win32">
+ <Configuration>Release Danish</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Danish|x64">
+ <Configuration>Release Danish</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
<ProjectConfiguration Include="Release Dutch|Win32">
<Configuration>Release Dutch</Configuration>
<Platform>Win32</Platform>
@@ -332,6 +340,7 @@
<TargetName Condition="'$(Configuration)'=='Release Chinese Traditional'">$(ProjectName).zh_TW</TargetName>
<TargetName Condition="'$(Configuration)'=='Release Croatian'">$(ProjectName).hr</TargetName>
<TargetName Condition="'$(Configuration)'=='Release Czech'">$(ProjectName).cs</TargetName>
+ <TargetName Condition="'$(Configuration)'=='Release Danish'">$(ProjectName).da</TargetName>
<TargetName Condition="'$(Configuration)'=='Release Dutch'">$(ProjectName).nl</TargetName>
<TargetName Condition="'$(Configuration)'=='Release English (British)'">$(ProjectName).en_GB</TargetName>
<TargetName Condition="'$(Configuration)'=='Release Finnish'">$(ProjectName).fi</TargetName>
@@ -387,6 +396,9 @@
<ResourceCompile Include="mpc-hc.cs.rc">
<ExcludedFromBuild Condition="'$(Configuration)'!='Release Czech'">true</ExcludedFromBuild>
</ResourceCompile>
+ <ResourceCompile Include="mpc-hc.da.rc">
+ <ExcludedFromBuild Condition="'$(Configuration)'!='Release Danish'">true</ExcludedFromBuild>
+ </ResourceCompile>
<ResourceCompile Include="mpc-hc.de.rc">
<ExcludedFromBuild Condition="'$(Configuration)'!='Release German'">true</ExcludedFromBuild>
</ResourceCompile>
diff --git a/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters b/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters
index 6f02a9893..67ae4bf3f 100644
--- a/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters
+++ b/src/mpc-hc/mpcresources/mpcresources.vcxproj.filters
@@ -26,6 +26,9 @@
<ResourceCompile Include="mpc-hc.cs.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
+ <ResourceCompile Include="mpc-hc.da.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
<ResourceCompile Include="mpc-hc.de.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
diff --git a/src/mpc-hc/mpcresources/sync.bat b/src/mpc-hc/mpcresources/sync.bat
index b4d908829..5c18dd618 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 000000000..ff292963a
--- /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 <http://www.gnu.org/licenses/>.
+
+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 f54180730..f154d78a4 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 000000000..5b3be0ed9
--- /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 <http://www.gnu.org/licenses/>.
+
+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 da6764ae9..fc6b2fa51 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<OLECHAR> 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 2c30a86c0..5b448d0b1 100644
--- a/src/mpc-hc/res/web/variables.html
+++ b/src/mpc-hc/res/web/variables.html
@@ -10,6 +10,7 @@
<!--[if lt IE 8]>
<div class="browser-warning"><strong>Warning!</strong> You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->
+ <p id="file">[file]</p>
<p id="filepatharg">[filepatharg]</p>
<p id="filepath">[filepath]</p>
<p id="filedirarg">[filedirarg]</p>
@@ -23,7 +24,9 @@
<p id="volumelevel">[volumelevel]</p>
<p id="muted">[muted]</p>
<p id="playbackrate">[playbackrate]</p>
+ <p id="size">[size]</p>
<p id="reloadtime">[reloadtime]</p>
+ <p id="version">[version]</p>
[debug]
</body>
</html>
diff --git a/src/mpc-hc/resource.h b/src/mpc-hc/resource.h
index 5b276b919..2160d0829 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 000000000..cb71f7c1c
--- /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 <windows.h>
+
+/** @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 <CrashRpt.h>
+//! \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 <assert.h>
+# 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<unsigned uniqueAssertId>
+ __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<ULONG_PTR*>(&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 <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms679294(v=vs.85).aspx">DbgHelp Versions</a> 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<ULONG_PTR*>(&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 000000000..c2f3e01d1
--- /dev/null
+++ b/src/thirdparty/DoctorDump/DoctorDump.filters
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ 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 000000000..2988a1d1c
--- /dev/null
+++ b/src/thirdparty/DoctorDump/DoctorDump.vcxproj
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Release Lite|Win32">
+ <Configuration>Release Lite</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Lite|x64">
+ <Configuration>Release Lite</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{BECEAFF9-CDCA-45EC-A1CF-658FA51818E6}</ProjectGuid>
+ <RootNamespace>DoctorDump</RootNamespace>
+ <Keyword>DoctorDump</Keyword>
+ <ProjectName>DoctorDump</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <Import Project="..\..\platform.props" />
+ <PropertyGroup Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="..\..\common.props" />
+ <Import Project="..\..\common-3rd-party.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\mpc-hc_x86\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Lite|Win32'">
+ <OutDir>$(SolutionDir)bin\mpc-hc_x86 Lite\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\mpc-hc_x64\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Lite|x64'">
+ <OutDir>$(SolutionDir)bin\mpc-hc_x64 Lite\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup>
+ <NMakeBuildCommandLine>$(ProjectDir)deploy.bat $(Platform) "$(OutDir)"</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine>$(ProjectDir)deploy.bat $(Platform) "$(OutDir)"</NMakeReBuildCommandLine>
+ </PropertyGroup>
+ <ItemGroup>
+ <ClInclude Include="CrashRpt.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ 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 000000000..02e2f1df1
--- /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 <http://www.gnu.org/licenses/>.
+
+
+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 a954ea636..000000000
--- 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 <http://www.gnu.org/licenses/>.
- *
- */
-
-#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 5d49520f8..071e2e0bc 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 44528289e..87c2c411a 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 <http://www.gnu.org/licenses/>.
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")
-<NUL SET /p ".=%DEL%" > "%~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
-Subproject 5f45b5782b3e785ab34338cf84f544e1eb089ff
+Subproject 79ba86d3acb1b53a50a8aae51d4670a8943e1e4
diff --git a/src/thirdparty/MediaInfo/License.html b/src/thirdparty/MediaInfo/License.html
index 7b94ee7b3..85c5f7bee 100644
--- a/src/thirdparty/MediaInfo/License.html
+++ b/src/thirdparty/MediaInfo/License.html
@@ -9,7 +9,7 @@
<div>
<h3 style="text-align: center">MediaInfo(Lib) License</h3>
<p>
- Copyright (c) 2002-2014 <a href="mailto:Info@MediaArea.net">MediaArea.net SARL</a>. All rights reserved.
+ Copyright (c) 2002-2015 <a href="mailto:Info@MediaArea.net">MediaArea.net SARL</a>. All rights reserved.
</p>
<p>
Redistribution and use in source and binary forms, with or without modification,
@@ -39,7 +39,7 @@
<div>
<p>Alternate license for redistributions of the library in binary form:<br/>
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.<br/>
-This product uses <a href="http://mediaarea.net/MediaInfo">MediaInfo</a> library, Copyright (c) 2002-2014 <a href="mailto:Info@MediaArea.net">MediaArea.net SARL</a>.</p>
+This product uses <a href="http://mediaarea.net/MediaInfo">MediaInfo</a> library, Copyright (c) 2002-2015 <a href="mailto:Info@MediaArea.net">MediaArea.net SARL</a>.</p>
</div>
<hr/>
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp b/src/thirdparty/MediaInfo/MediaInfo/Audio/File_Ac3.cpp
index 94830c68d..02c42ca80 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 000000000..ae1dac706
--- /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<Ztring, Ztring> ListList;
+ const int8u* Buffer_Max = Buffer+(size_t)(Buffer_Offset+Element_Size);
+ while (Element_Offset<Element_Size)
+ {
+ const int8u* Buffer_Begin = Buffer+(size_t)(Buffer_Offset+Element_Offset);
+ const int8u* Buffer_Middle = Buffer_Begin;
+ while (Buffer_Middle<Buffer_Max && *Buffer_Middle)
+ ++Buffer_Middle;
+ const int8u* Buffer_End = Buffer_Middle + 1;
+ while (Buffer_End<Buffer_Max && *Buffer_End)
+ ++Buffer_End;
+
+ Ztring Key, Value;
+ Get_UTF8(Buffer_Middle-Buffer_Begin, Key, "Key");
+ Skip_B1 ( "Zero");
+ Get_UTF8(Buffer_End-(Buffer_Middle+1), Value, "Value");
+ if (Buffer_End!=Buffer_Max)
+ Skip_B1 ( "Zero");
+
+ ListList[Key]=Value;
+ }
+
+ if (ListList.size()!=NumEntries)
+ return;
+
+ for (std::map<Ztring, Ztring>::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 000000000..124f9aa33
--- /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 355a3e2e9..b608d12f3 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 e42326b41..24dda17d2 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 fd5a6861d..f36e03893 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_EbuCore.cpp
@@ -17,9 +17,14 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_EBUCORE_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
#include "MediaInfo/Export/Export_EbuCore.h"
#include "MediaInfo/File__Analyse_Automatic.h"
#include <ctime>
+#include <cmath>
using namespace std;
//---------------------------------------------------------------------------
@@ -35,6 +40,26 @@ extern MediaInfo_Config Config;
//***************************************************************************
//---------------------------------------------------------------------------
+Ztring XML_Encode (const Ztring& Data)
+{
+ Ztring Result;
+ wstring::size_type Pos;
+ for (Pos=0; Pos<Data.size(); Pos++)
+ {
+ switch (Data[Pos])
+ {
+ case __T('"'): Result+=__T("&quot;"); break;
+ case __T('&'): Result+=__T("&amp;"); break;
+ case __T('\''): Result+=__T("&apos;"); break;
+ case __T('<'): Result+=__T("&lt;"); break;
+ case __T('>'): Result+=__T("&lg;"); break;
+ default: Result+=Data[Pos];
+ }
+ }
+ return Result;
+}
+
+//---------------------------------------------------------------------------
int32u EbuCore_VideoCompressionCodeCS_termID(MediaInfo_Internal &MI, size_t StreamPos)
{
const Ztring &Format=MI.Get(Stream_Video, StreamPos, Video_Format);
@@ -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.Count_Get(Stream_Other); StreamPos_Temp++)
+ {
+ if (MI.Get(Stream_Other, StreamPos_Temp, Other_Format)==__T("AS-11 UKDPP"))
+ As11_UkDpp_Pos=StreamPos_Temp;
+ }
+
ToReturn+=__T("\t\t\t<ebucore:videoFormat");
//if (!MI.Get(Stream_Video, StreamPos, Video_ID).empty())
// ToReturn+=__T(" videoFormatId=\"")+MI.Get(Stream_Video, StreamPos, Video_ID)+__T("\"");
@@ -699,15 +731,25 @@ Ztring EbuCore_Transform_Video(Ztring &ToReturn, MediaInfo_Internal &MI, size_t
factorNumerator=AspectRatioString.substr(0, AspectRatioString_Pos);
factorDenominator=AspectRatioString.substr(AspectRatioString_Pos+1);
}
- if (factorNumerator.empty())
- ToReturn+=__T("\t\t\t\t<ebucore:aspectRatio typeLabel=\"display\">")+MI.Get(Stream_Video, StreamPos, Video_DisplayAspectRatio)+__T("</ebucore:aspectRatio>\n");
else
{
- ToReturn+=__T("\t\t\t\t<ebucore:aspectRatio typeLabel=\"display\">\n");
- ToReturn+=__T("\t\t\t\t\t<ebucore:factorNumerator>")+factorNumerator+__T("</ebucore:factorNumerator>\n");
- ToReturn+=__T("\t\t\t\t\t<ebucore:factorDenominator>")+factorDenominator+__T("</ebucore:factorDenominator>\n");
- ToReturn+=__T("\t\t\t\t</ebucore:aspectRatio>\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<ebucore:aspectRatio typeLabel=\"display\">\n");
+ ToReturn+=__T("\t\t\t\t\t<ebucore:factorNumerator>")+factorNumerator+__T("</ebucore:factorNumerator>\n");
+ ToReturn+=__T("\t\t\t\t\t<ebucore:factorDenominator>")+factorDenominator+__T("</ebucore:factorDenominator>\n");
+ ToReturn+=__T("\t\t\t\t</ebucore:aspectRatio>\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<ebucore:scanningOrder>")+ScanOrder+__T("</ebucore:scanningOrder>\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\t<ebucore:flag_3D>true</ebucore:flag_3D>\n");
- ToReturn+=__T("\t\t\t</ebucore:videoFormat>\n");
+ //technicalAttributeString - ActiveFormatDescription
+ if (!MI.Get(Stream_Video, StreamPos, Video_ActiveFormatDescription).empty())
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"ActiveFormatDescription\">")+MI.Get(Stream_Video, StreamPos, Video_ActiveFormatDescription)+__T("</ebucore:technicalAttributeString>\n");
+
+ //technicalAttributeString - Standard
+ if (!MI.Get(Stream_Video, StreamPos, Video_Standard).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"Standard\">")+MI.Get(Stream_Video, StreamPos, Video_Standard)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - ColorSpace
+ if (!MI.Get(Stream_Video, StreamPos, Video_ColorSpace).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"ColorSpace\">")+MI.Get(Stream_Video, StreamPos, Video_ColorSpace)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - ChromaSubsampling
+ if (!MI.Get(Stream_Video, StreamPos, Video_ChromaSubsampling).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"ChromaSubsampling\">")+MI.Get(Stream_Video, StreamPos, Video_ChromaSubsampling)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - colour_primaries
+ if (!MI.Get(Stream_Video, StreamPos, __T("colour_primaries")).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"colour_primaries\">")+MI.Get(Stream_Video, StreamPos, __T("colour_primaries"))+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - transfer_characteristics
+ if (!MI.Get(Stream_Video, StreamPos, __T("transfer_characteristics")).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"transfer_characteristics\">")+MI.Get(Stream_Video, StreamPos, __T("transfer_characteristics"))+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - matrix_coefficients
+ if (!MI.Get(Stream_Video, StreamPos, __T("matrix_coefficients")).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"matrix_coefficients\">")+MI.Get(Stream_Video, StreamPos, __T("matrix_coefficients"))+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - colour_range
+ if (!MI.Get(Stream_Video, StreamPos, __T("colour_range")).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"colour_range\">")+MI.Get(Stream_Video, StreamPos, __T("colour_range"))+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - StreamSize
+ if (!MI.Get(Stream_Video, StreamPos, Video_StreamSize).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeInteger typeLabel=\"StreamSize\"")+(Version>=Export_EbuCore::Version_1_6?Ztring(__T(" unit=\"byte\"")):Ztring())+__T(">")+MI.Get(Stream_Video, StreamPos, Video_StreamSize)+__T("</ebucore:technicalAttributeInteger>\n");
+ }
+
+ //technicalAttributeString - BitDepth
+ if (!MI.Get(Stream_Video, StreamPos, Video_BitDepth).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeInteger typeLabel=\"BitDepth\"")+(Version>=Export_EbuCore::Version_1_6?Ztring(__T(" unit=\"bit\"")):Ztring())+__T(">")+MI.Get(Stream_Video, StreamPos, Video_BitDepth)+__T("</ebucore:technicalAttributeInteger>\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<ebucore:technicalAttributeString typeLabel=\"FPAManufacturer\">")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaManufacturer"))+__T("</ebucore:technicalAttributeString>\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<ebucore:technicalAttributeString typeLabel=\"FPAVersion\">")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaVersion"))+__T("</ebucore:technicalAttributeString>\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<ebucore:technicalAttributeBoolean typeLabel=\"CABAC\">")+Ztring(MI.Get(Stream_Video, StreamPos, Video_Format_Settings_CABAC)==__T("Yes")?__T("true"):__T("false"))+__T("</ebucore:technicalAttributeBoolean>\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<ebucore:technicalAttributeBoolean typeLabel=\"MBAFF\">")+Ztring(MI.Get(Stream_Video, StreamPos, Video_ScanType)==__T("MBAFF")?__T("true"):__T("false"))+__T("</ebucore:technicalAttributeBoolean>\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<ebucore:technicalAttributeBoolean typeLabel=\"MBAFF\">")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("FpaPass"))==__T("Yes")?__T("true"):__T("false"))+__T("</ebucore:technicalAttributeBoolean>\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<ebucore:comment typeLabel=\"VideoComments\">")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("VideoComments"))+__T("</ebucore:comment>\n");
+ }
+
+ ToReturn+=__T("\t\t\t</ebucore:videoFormat>\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<MI.Count_Get(Stream_Other); StreamPos_Temp++)
+ {
+ if (MI.Get(Stream_Other, StreamPos_Temp, Other_Format)==__T("AS-11 Core"))
+ As11_Core_Pos=StreamPos_Temp;
+ if (MI.Get(Stream_Other, StreamPos_Temp, Other_Format)==__T("AS-11 UKDPP"))
+ As11_UkDpp_Pos=StreamPos_Temp;
+ }
+
ToReturn+=__T("\t\t\t<ebucore:audioFormat");
//if (!MI.Get(Stream_Audio, StreamPos, Audio_ID).empty())
// ToReturn+=__T(" audioFormatId=\"")+MI.Get(Stream_Audio, StreamPos, Audio_ID)+__T("\"");
@@ -872,11 +1019,10 @@ Ztring EbuCore_Transform_Audio(Ztring &ToReturn, MediaInfo_Internal &MI, size_t
ToReturn+=__T("\t\t\t\t</ebucore:codec>\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<ebucore:audioTrackConfiguration typeLabel=\"")+ChannelPositions+__T("\"/>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:audioTrackConfiguration typeLabel=\"")+MI.Get(Stream_Other, As11_Core_Pos, __T("AudioTrackLayout"))+__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<ebucore:channels>")+MI.Get(Stream_Audio, StreamPos, Audio_Channel_s_)+__T("</ebucore:channels>\n");
+ //format - technicalAttributeString - ChannelPositions
+ if (!MI.Get(Stream_Audio, StreamPos, Audio_ChannelPositions).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"ChannelPositions\">")+MI.Get(Stream_Audio, StreamPos, Audio_ChannelPositions)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //format - technicalAttributeString - ChannelLayout
+ if (!MI.Get(Stream_Audio, StreamPos, Audio_ChannelLayout).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"ChannelLayout\">")+MI.Get(Stream_Audio, StreamPos, Audio_ChannelLayout)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - Format_Settings_Endianness
+ if (!MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Endianness).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"Endianness\">")+MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Endianness)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - Format_Settings_Wrapping
+ if (!MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Wrapping).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeString typeLabel=\"Wrapping\">")+MI.Get(Stream_Audio, StreamPos, Audio_Format_Settings_Wrapping)+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //technicalAttributeString - StreamSize
+ if (!MI.Get(Stream_Audio, StreamPos, Audio_StreamSize).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeInteger typeLabel=\"StreamSize\"")+(Version>=Export_EbuCore::Version_1_6?Ztring(__T(" unit=\"byte\"")):Ztring())+__T(">")+MI.Get(Stream_Audio, StreamPos, Audio_StreamSize)+__T("</ebucore:technicalAttributeInteger>\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<ebucore:comment typeLabel=\"AudioComments\">")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioComments"))+__T("</ebucore:comment>\n");
+ }
+
ToReturn+=__T("\t\t\t</ebucore:audioFormat>\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<!-- (timecodeFormat not in XSD)\n");
+
+ ToReturn+=__T("\t\t\t<ebucore:timecodeFormat");
+ if (!MI.Get(Stream_Other, StreamPos, Other_Format).empty())
+ ToReturn+=__T(" timecodeFormatName=\"")+MI.Get(Stream_Other, StreamPos, Other_Format)+__T("\"");
+ ToReturn+=__T(">\n");
+
+ //start
+ {
+ if (MI.Get(Stream_Other, StreamPos, Other_ID).find(__T("-Material"))!=string::npos)
+ ToReturn+=__T("\t\t\t\t<ebucore:timecodeStart typeLabel=\"Material\">\n");
+ else if (MI.Get(Stream_Other, StreamPos, Other_ID).find(__T("-Source"))!=string::npos)
+ ToReturn+=__T("\t\t\t\t<ebucore:timecodeStart typeLabel=\"Source\">\n");
+ else
+ ToReturn+=__T("\t\t\t\t<ebucore:timecodeStart>\n");
+ ToReturn+=__T("\t\t\t\t\t<ebucore:timecode>")+MI.Get(Stream_Other, StreamPos, Other_TimeCode_FirstFrame)+__T("</ebucore:timecode>\n");
+ ToReturn+=__T("\t\t\t\t</ebucore:timecodeStart>\n");
+ }
+
+ if (!MI.Get(Stream_Other, StreamPos, Other_ID).empty() || !MI.Get(Stream_Other, StreamPos, Other_Title).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:timecodeTrack");
+ if (!MI.Get(Stream_Other, StreamPos, Other_ID).empty())
+ {
+ Ztring ID=MI.Get(Stream_Other, StreamPos, Other_ID);
+ ID.FindAndReplace(__T("-Material"), Ztring());
+ ID.FindAndReplace(__T("-Source"), Ztring());
+ ToReturn+=__T(" trackId=\"")+ID+__T("\"");
+ }
+ if (!MI.Get(Stream_Other, StreamPos, Other_Title).empty())
+ ToReturn+=__T(" trackName=\"")+MI.Get(Stream_Other, StreamPos, Other_Title)+__T("\"");
+ ToReturn+=__T("/>\n");
+ }
+
+ if (!MI.Get(Stream_Other, StreamPos, Other_ID).empty())
+ ToReturn+=__T("\t\t\t\t<ebucore:technicalAttributeBoolean typeLabel=\"Stripped\">")+Ztring(MI.Get(Stream_Other, StreamPos, __T("TimeCode_Striped"))==__T("Yes")?__T("true"):__T("false"))+__T("</ebucore:technicalAttributeBoolean>\n");
+
+ ToReturn+=__T("\t\t\t</ebucore:timecodeFormat>\n");
+
+ 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<!-- (metadataFormat not in XSD)\n");
+
+ ToReturn+=__T("\t\t\t<ebucore:metadataFormat");
+ if (!MI.Get(Stream_Other, StreamPos, Other_Format).empty())
+ ToReturn+=__T(" metadataFormatName=\"")+MI.Get(Stream_Other, StreamPos, Other_Format)+__T("\"");
+ ToReturn+=__T(">\n");
+
+ if (!MI.Get(Stream_Other, StreamPos, Other_ID).empty() || !MI.Get(Stream_Other, StreamPos, Other_Title).empty())
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:metadataTrack");
+ if (!MI.Get(Stream_Other, StreamPos, Other_ID).empty())
+ ToReturn+=__T(" trackId=\"")+MI.Get(Stream_Other, StreamPos, Other_ID)+__T("\"");
+ if (!MI.Get(Stream_Other, StreamPos, Other_Title).empty())
+ ToReturn+=__T(" trackName=\"")+MI.Get(Stream_Other, StreamPos, Other_Title)+__T("\"");
+ ToReturn+=__T("/>\n");
+ }
+
+ ToReturn+=__T("\t\t\t</ebucore:metadataFormat>\n");
+
+ 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<MI.Count_Get(Stream_Other); StreamPos_Temp++)
+ {
+ if (MI.Get(Stream_Other, StreamPos_Temp, Other_Format)==__T("AS-11 Core"))
+ As11_Core_Pos=StreamPos_Temp;
+ if (MI.Get(Stream_Other, StreamPos_Temp, Other_Format)==__T("AS-11 Segmentation"))
+ As11_Segmentation_Pos=StreamPos_Temp;
+ if (MI.Get(Stream_Other, StreamPos_Temp, Other_Format)==__T("AS-11 UKDPP"))
+ As11_UkDpp_Pos=StreamPos_Temp;
+ }
+
Ztring ToReturn;
//ebuCoreMain
ToReturn+=__T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
ToReturn+=__T("<!-- Generated by ")+MediaInfoLib::Config.Info_Version_Get()+__T(" -->\n");
- ToReturn+=__T("<ebucore:ebuCoreMain xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:ebucore=\"urn:ebu:metadata-schema:ebuCore_2014\" xmlns:xalan=\"http://xml.apache.org/xalan\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ebu:metadata-schema:ebuCore_2014 http://www.ebu.ch/metadata/schemas/EBUCore/20140318/EBU_CORE_20140318.xsd\" version=\"1.5\" dateLastModified=\"")+Date+__T("\" timeLastModified=\"")+Time+__T("Z\">\n");
+ if (Version==Version_1_5)
+ ToReturn+=__T("<ebucore:ebuCoreMain xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:ebucore=\"urn:ebu:metadata-schema:ebuCore_2014\"\n xmlns:xalan=\"http://xml.apache.org/xalan\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"urn:ebu:metadata-schema:ebuCore_2014 http://www.ebu.ch/metadata/schemas/EBUCore/20140318/EBU_CORE_20140318.xsd\" version=\"1.5\" dateLastModified=\"")+Date+__T("\" timeLastModified=\"")+Time+__T("Z\">\n");
+ else
+ ToReturn+=__T("<ebucore:ebuCoreMain xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:ebucore=\"urn:ebu:metadata-schema:ebuCore_2015\"\n xmlns:xalan=\"http://xml.apache.org/xalan\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"urn:ebu:metadata-schema:ebuCore_2014 http://www.ebu.ch/metadata/schemas/EBUCore/20141231/EBU_CORE_20141231_draft16.xsd\" version=\"1.6\" dateLastModified=\"")+Date+__T("\" timeLastModified=\"")+Time+__T("Z\">\n");
//coreMetadata
ToReturn+=__T("\t<ebucore:coreMetadata>\n");
+ //title
+ if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("ProgrammeTitle")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:title typeLabel=\"PROGRAMME TITLE\">\n");
+ ToReturn+=__T("\t\t\t<dc:title>")+MI.Get(Stream_Other, As11_Core_Pos, __T("ProgrammeTitle"))+__T("</dc:title>\n");
+ ToReturn+=__T("\t\t</ebucore:title>\n");
+ }
+ else if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:title typeLabel=\"EPISODE TITLE NUMBER\">\n");
+ ToReturn+=__T("\t\t\t<dc:title>")+MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber"))+__T("</dc:title>\n");
+ ToReturn+=__T("\t\t</ebucore:title>\n");
+ }
+
+ //alternativeTitle
+ if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("SeriesTitle")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:alternativeTitle typeLabel=\"SERIES TITLE\">\n");
+ ToReturn+=__T("\t\t\t<dc:title>")+MI.Get(Stream_Other, As11_Core_Pos, __T("SeriesTitle"))+__T("</dc:title>\n");
+ ToReturn+=__T("\t\t</ebucore:alternativeTitle>\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<ebucore:alternativeTitle typeLabel=\"EPISODE TITLE NUMBER\">\n");
+ ToReturn+=__T("\t\t\t<dc:title>")+MI.Get(Stream_Other, As11_Core_Pos, __T("EpisodeTitleNumber"))+__T("</dc:title>\n");
+ ToReturn+=__T("\t\t</ebucore:alternativeTitle>\n");
+ }
+
+ //description
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Synopsis")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:description typeLabel=\"SYNOPSIS\">\n");
+ ToReturn+=__T("\t\t\t<dc:description>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Synopsis"))+__T("</dc:description>\n");
+ ToReturn+=__T("\t\t</ebucore:description>\n");
+ }
+
+ //ProductPlacement
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductPlacement")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:description typeLabel=\"PRODUCT PLACEMENT\">\n");
+ ToReturn+=__T("\t\t\t<dc:description>")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductPlacement"))==__T("Yes")?__T("true"):__T("false"))+__T("</dc:description>\n");
+ ToReturn+=__T("\t\t</ebucore:description>\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<ebucore:contributor>\n");
+ ToReturn+=__T("\t\t\t<ebucore:contactDetails>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:details>\n");
+ if (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactEmail")).empty())
+ ToReturn+=__T("\t\t\t\t\t<ebucore:emailAddress>")+XML_Encode(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactEmail")))+__T("</ebucore:emailAddress>\n");
+ if (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactTelephoneNumber")).empty())
+ ToReturn+=__T("\t\t\t\t\t<ebucore:telephoneNumber>")+XML_Encode(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ContactTelephoneNumber")))+__T("</ebucore:telephoneNumber>\n");
+ ToReturn+=__T("\t\t\t\t</ebucore:details>\n");
+ ToReturn+=__T("\t\t\t</ebucore:contactDetails>\n");
+ ToReturn+=__T("\t\t\t<ebucore:role typeLabel=\"contact\"/>\n");
+ ToReturn+=__T("\t\t</ebucore:contributor>\n");
+ }
+
+ //Originator
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Originator")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:contributor>\n");
+ ToReturn+=__T("\t\t\t<ebucore:organisationDetails>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:organisationName>")+XML_Encode(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Originator")))+__T("</ebucore:organisationName>\n");
+ ToReturn+=__T("\t\t\t</ebucore:organisationDetails>\n");
+ ToReturn+=__T("\t\t\t<ebucore:role typeLabel=\"originator\"/>\n");
+ ToReturn+=__T("\t\t</ebucore:contributor>\n");
+ }
+
+ //Distributor
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Distributor")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:contributor>\n");
+ ToReturn+=__T("\t\t\t<ebucore:organisationDetails>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:organisationName>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Distributor"))+__T("</ebucore:organisationName>\n");
+ ToReturn+=__T("\t\t\t</ebucore:organisationDetails>\n");
+ ToReturn+=__T("\t\t\t<ebucore:role typeLabel=\"distributor\"/>\n");
+ ToReturn+=__T("\t\t</ebucore:contributor>\n");
+ }
+
+ //date
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("CopyrightYear")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:date>\n");
+ ToReturn+=__T("\t\t\t<ebucore:copyrighted startYear=\"")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("CopyrightYear"))+__T("\"/>\n");
+ ToReturn+=__T("\t\t</ebucore:date>\n");
+ }
+
+ //type
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Genre")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:type>\n");
+ ToReturn+=__T("\t\t\t<ebucore:genre typeDefinition=\"")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("Genre"))+__T("\"/>\n");
+ ToReturn+=__T("\t\t</ebucore:type>\n");
+ }
+
//format
ToReturn+=__T("\t\t<ebucore:format>\n");
//format - videoFormat
for (size_t Pos=0; Pos<MI.Count_Get(Stream_Video); Pos++)
- EbuCore_Transform_Video(ToReturn, MI, Pos);
+ EbuCore_Transform_Video(ToReturn, MI, Pos, Version);
//format - audioFormat
for (size_t Pos=0; Pos<MI.Count_Get(Stream_Audio); Pos++)
- EbuCore_Transform_Audio(ToReturn, MI, Pos);
+ EbuCore_Transform_Audio(ToReturn, MI, Pos, Version);
//format - containerFormat
ToReturn+=__T("\t\t\t<ebucore:containerFormat");
if (!MI.Get(Stream_General, 0, General_Format).empty())
- ToReturn+=__T(" formatLabel=\"")+MI.Get(Stream_General, 0, General_Format)+__T("\"");
+ ToReturn+=(Version>=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<ebucore:codec>\n");
+ if (!MI.Get(Stream_General, 0, General_CodecID).empty())
{
- ToReturn+=__T("\t\t\t\t<ebucore:codec>\n");
- if (!MI.Get(Stream_General, 0, General_CodecID).empty())
- {
- ToReturn+=__T("\t\t\t\t\t<ebucore:codecIdentifier>\n");
- ToReturn+=__T("\t\t\t\t\t\t<dc:identifier>")+MI.Get(Stream_General, 0, General_CodecID)+__T("</dc:identifier>\n");
- ToReturn+=__T("\t\t\t\t\t</ebucore:codecIdentifier>\n");
- }
- if (!MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty())
- ToReturn+=__T("\t\t\t\t\t<ebucore:name>")+MI.Get(Stream_General, 0, General_Format_Commercial_IfAny)+__T("</ebucore:name>\n");
- ToReturn+=__T("\t\t\t\t</ebucore:codec>\n");
+ ToReturn+=__T("\t\t\t\t\t<ebucore:codecIdentifier>\n");
+ ToReturn+=__T("\t\t\t\t\t\t<dc:identifier>")+MI.Get(Stream_General, 0, General_CodecID)+__T("</dc:identifier>\n");
+ ToReturn+=__T("\t\t\t\t\t</ebucore:codecIdentifier>\n");
}
- ToReturn+=__T("\t\t\t</ebucore:containerFormat>\n");
+ if (!MI.Get(Stream_General, 0, General_Format_Commercial_IfAny).empty())
+ ToReturn+=__T("\t\t\t\t\t<ebucore:name>")+MI.Get(Stream_General, 0, General_Format_Commercial_IfAny)+__T("</ebucore:name>\n");
+ ToReturn+=__T("\t\t\t\t</ebucore:codec>\n");
}
- else
+ if (Version>=Version_1_6)
+ {
+ ToReturn+=__T("\t\t\t\t<ebucore:containerEncoding");
+ if (!MI.Get(Stream_General, 0, General_Format).empty())
+ ToReturn+=__T(" formatLabel=\"")+MI.Get(Stream_General, 0, General_Format)+__T("\"");
+ //if (Version>=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<ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"AS11ShimName\">")+MI.Get(Stream_Other, As11_Core_Pos, __T("ShimName"))+__T("</ebucore:")+Ztring(Version>=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<ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"AS11ShimVersion\">")+MI.Get(Stream_Other, As11_Core_Pos, __T("ShimVersion"))+__T("</ebucore:")+Ztring(Version>=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<ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"FormatProfile\">")+MI.Get(Stream_General, 0, __T("Format_Profile"))+__T("</ebucore:")+Ztring(Version>=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<ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"FormatSettings\">")+MI.Get(Stream_General, 0, __T("Format_Settings"))+__T("</ebucore:")+Ztring(Version>=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<ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"WrittingApplication\">")+MI.Get(Stream_General, 0, __T("Encoded_Application"))+__T("</ebucore:")+Ztring(Version>=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<ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(" typeLabel=\"WrittingLibrary\">")+MI.Get(Stream_General, 0, __T("Encoded_Library/String"))+__T("</ebucore:")+Ztring(Version>=Version_1_6?__T("technicalAttributeString"):__T("comment"))+__T(">\n");
+ }
+
+ ToReturn+=__T("\t\t\t</ebucore:containerFormat>\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<!-- (signingPresenceFlag not in XSD)\n");
+ //ToReturn+=__T("\t\t\t<ebucore:dataFormat>\n");
+ ToReturn+=__T("\t\t\t<ebucore:signingFormat signingPresenceFlag=\"")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("SigningPresent"))==__T("Yes")?__T("true"):__T("false"))+__T("\"/>\n");
+ //ToReturn+=__T("\t\t\t</ebucore:dataFormat>\n");
+ if (Version==Version_1_5)
+ ToReturn+=__T("\t\t\t-->\n");
+ }
//format - dataFormat
for (size_t Pos=0; Pos<MI.Count_Get(Stream_Text); Pos++)
EbuCore_Transform_Text(ToReturn, MI, Pos);
- //format - start
- bool startCount=false;
- for (size_t StreamPos=0; StreamPos<MI.Count_Get(Stream_Other); ++StreamPos)
+ //format - ClosedCaptionsPresent
+ if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("ClosedCaptionsPresent")).empty())
{
- if (MI.Get(Stream_Other, StreamPos, Other_Type)==__T("Time code"))
- {
- if (startCount)
- ToReturn+=__T("\t\t\t<!-- (Not in XSD)\n");
- if (!(!MI.Get(Stream_Video, StreamPos, Video_ID).empty() || !MI.Get(Stream_Video, StreamPos, Video_Title).empty())) //No extra out of spec fields
- ToReturn+=__T("\t\t\t<ebucore:start>\n");
- else if (startCount) //No out of spec in all cases
- {
- ToReturn+=__T("\t\t\t<ebucore:start");
- if (!MI.Get(Stream_Video, StreamPos, Video_ID).empty() || !MI.Get(Stream_Video, StreamPos, Video_Title).empty())
- {
- if (!MI.Get(Stream_Video, StreamPos, Video_ID).empty())
- ToReturn+=__T(" trackId=\"")+MI.Get(Stream_Video, StreamPos, Video_ID)+__T("\"");
- if (!MI.Get(Stream_Video, StreamPos, Video_Title).empty())
- ToReturn+=__T(" trackName=\"")+MI.Get(Stream_Video, StreamPos, Video_Title)+__T("\"");
- }
- ToReturn+=__T(">\n");
- }
- else //Extra out of spec fields
- {
- ToReturn+=__T("\t\t\t<ebucore:start><!-- (Not in XSD)");
- if (!MI.Get(Stream_Video, StreamPos, Video_ID).empty())
- ToReturn+=__T(" trackId=\"")+MI.Get(Stream_Video, StreamPos, Video_ID)+__T("\"");
- if (!MI.Get(Stream_Video, StreamPos, Video_Title).empty())
- ToReturn+=__T(" trackName=\"")+MI.Get(Stream_Video, StreamPos, Video_Title)+__T("\"");
- ToReturn+=__T("-->\n");
- }
- ToReturn+=__T("\t\t\t\t<ebucore:timecode>")+MI.Get(Stream_Other, StreamPos, Other_TimeCode_FirstFrame)+__T("</ebucore:timecode>\n");
- if (!MI.Get(Stream_Other, 0, Other_MuxingMode).empty())
- {
- if (!startCount)
- ToReturn+=__T("\t\t\t\t<!-- (Not in XSD)\n");
- ToReturn+=__T("\t\t\t\t<ebucore:source>")+MI.Get(Stream_Other, StreamPos, Other_MuxingMode)+__T("</ebucore:source>\n");
- if (!startCount)
- ToReturn+=__T("\t\t\t\t-->\n");
- }
- ToReturn+=__T("\t\t\t</ebucore:start>\n");
- if (startCount)
- ToReturn+=__T("\t\t\t-->\n");
- startCount=true;
- }
+ ToReturn+=__T("\t\t\t<ebucore:dataFormat>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:captioningFormat captioningPresenceFlag=\"")+Ztring(MI.Get(Stream_Other, As11_Core_Pos, __T("OpenCaptionsPresent"))==__T("Yes")?__T("true"):__T("false"))+__T("\" closed=\"true\"/>\n");
+ ToReturn+=__T("\t\t\t</ebucore:dataFormat>\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<ebucore:dataFormat>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:captioningFormat captioningPresenceFlag=\"")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OpenCaptionsPresent"))==__T("Yes")?__T("true"):__T("false"))+__T("\" closed=\"false\"/>\n");
+ ToReturn+=__T("\t\t\t</ebucore:dataFormat>\n");
+ }
+
+ //format - time codes
+ for (size_t Pos=0; Pos<MI.Count_Get(Stream_Other); Pos++)
+ if (MI.Get(Stream_Other, Pos, Other_Type)==__T("Time code"))
+ EbuCore_Transform_TimeCode(ToReturn, MI, Pos, Version==Version_1_5);
+
+ //format - Metadata
+ for (size_t Pos=0; Pos<MI.Count_Get(Stream_Other); Pos++)
+ if (MI.Get(Stream_Other, Pos, Other_Type)==__T("Metadata"))
+ EbuCore_Transform_Metadata(ToReturn, MI, Pos, Version==Version_1_5);
+
+ //format - technicalAttributeString - LineUpStart
+ bool startDone=false;
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("LineUpStart")).empty())
+ {
+ ToReturn+=__T("\t\t\t<ebucore:start typeLabel=\"LineUpStart\">\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:timecode>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("LineUpStart"))+__T("</ebucore:timecode>\n");
+ ToReturn+=__T("\t\t\t</ebucore:start>\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<!-- Not valid in XSD\n");
+ ToReturn+=__T("\t\t\t<ebucore:start typeLabel=\"IdentClockStart\">\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:timecode>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("IdentClockStart"))+__T("</ebucore:timecode>\n");
+ ToReturn+=__T("\t\t\t</ebucore:start>\n");
+ 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<ebucore:duration>\n");
ToReturn+=__T("\t\t\t\t<ebucore:normalPlayTime>PT")+Duration+__T("</ebucore:normalPlayTime>\n");
ToReturn+=__T("\t\t\t</ebucore:duration>\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<!-- Not valid in XSD\n");
+ ToReturn+=__T("\t\t\t<ebucore:duration typeLabel=\"TotalProgrammeDuration\">\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:timecode>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("IdentClockStart"))+__T("</ebucore:timecode>\n");
+ ToReturn+=__T("\t\t\t</ebucore:duration>\n");
+ 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("&amp;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T("<"), __T("&lt;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T(">"), __T("&gt;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T("\""), __T("&quot;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T("'"), __T("&apos;"), 0, Ztring_Recursive);
- ToReturn+=__T("\t\t\t<ebucore:fileName>")+Name+__T("</ebucore:fileName>\n");
+ ToReturn+=__T("\t\t\t<ebucore:fileName>")+XML_Encode(Name)+__T("</ebucore:fileName>\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("&amp;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T("<"), __T("&lt;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T(">"), __T("&gt;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T("\""), __T("&quot;"), 0, Ztring_Recursive);
- Name.FindAndReplace(__T("'"), __T("&apos;"), 0, Ztring_Recursive);
- ToReturn+=__T("\t\t\t<ebucore:locator>")+Name+__T("</ebucore:locator>\n");
+ ToReturn+=__T("\t\t\t<ebucore:locator>")+XML_Encode(MI.Get(Stream_General, 0, General_CompleteName))+__T("</ebucore:locator>\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<ebucore:technicalAttributeString typeLabel=\"AudioLoudnessStandard\">")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioLoudnessStandard"))+__T("</ebucore:technicalAttributeString>\n");
+ }
+
+ //format - technicalAttributeString - AudioDescriptionType
+ if (!MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioDescriptionType")).empty())
+ {
+ ToReturn+=__T("\t\t\t<ebucore:technicalAttributeString typeLabel=\"AudioDescriptionType\">")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioDescriptionType"))+__T("</ebucore:technicalAttributeString>\n");
}
//format - technicalAttributeString - overallBitRate
if (!MI.Get(Stream_General, 0, General_OverallBitRate).empty())
{
- ToReturn+=__T("\t\t\t<ebucore:technicalAttributeString typeLabel=\"overallBitRate\">")+MI.Get(Stream_General, 0, General_OverallBitRate)+__T("</ebucore:technicalAttributeString>\n");
+ ToReturn+=__T("\t\t\t<ebucore:technicalAttributeInteger typeLabel=\"OverallBitRate\"")+(Version>=Version_1_6?Ztring(__T(" unit=\"bps\"")):Ztring())+__T(">")+MI.Get(Stream_General, 0, General_OverallBitRate)+__T("</ebucore:technicalAttributeInteger>\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<ebucore:technicalAttributeBoolean typeLabel=\"ProgrammeHasText\">")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProgrammeHasText"))==__T("Yes")?__T("true"):__T("false"))+__T("</ebucore:technicalAttributeBoolean>\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<ebucore:technicalAttributeBoolean typeLabel=\"AudioDescriptionPresent\">")+Ztring(MI.Get(Stream_Other, As11_UkDpp_Pos, __T("AudioDescriptionPresent"))==__T("Yes")?__T("true"):__T("false"))+__T("</ebucore:technicalAttributeBoolean>\n");
}
//format - dateCreated
@@ -1173,6 +1627,84 @@ Ztring Export_EbuCore::Transform(MediaInfo_Internal &MI)
//format
ToReturn+=__T("\t\t</ebucore:format>\n");
+ //identifier
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductionNumber")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:identifier typeLabel=\"PRODUCTION NUMBER\">\n");
+ ToReturn+=__T("\t\t\t<dc:identifier>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProductionNumber"))+__T("</dc:identifier>\n");
+ ToReturn+=__T("\t\t</ebucore:identifier>\n");
+ }
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifier")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:identifier typeLabel=\"INTERNAL IDENTIFIER\">\n");
+ ToReturn+=__T("\t\t\t<dc:identifier>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifier"))+__T("</dc:identifier>\n");
+ ToReturn+=__T("\t\t</ebucore:identifier>\n");
+ }
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifierType")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:identifier typeLabel=\"INTERNAL IDENTIFIER TYPE\">\n");
+ ToReturn+=__T("\t\t\t<dc:identifier>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("OtherIdentifierType"))+__T("</dc:identifier>\n");
+ ToReturn+=__T("\t\t</ebucore:identifier>\n");
+ }
+
+ //format - PrimaryAudioLanguage
+ if (As11_Core_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_Core_Pos, __T("PrimaryAudioLanguage")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:language typeLabel=\"PrimaryAudioLanguage\">\n");
+ ToReturn+=__T("\t\t\t<dc:language>")+MI.Get(Stream_Other, As11_Core_Pos, __T("PrimaryAudioLanguage"))+__T("</dc:language>\n");
+ ToReturn+=__T("\t\t</ebucore:language>\n");
+ }
+
+ //format - SecondaryAudioLanguage
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("SecondaryAudioLanguage")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:language typeLabel=\"SecondaryAudioLanguage\">\n");
+ ToReturn+=__T("\t\t\t<dc:language>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("SecondaryAudioLanguage"))+__T("</dc:language>\n");
+ ToReturn+=__T("\t\t</ebucore:language>\n");
+ }
+
+ //format - TertiaryAudioLanguage
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("TertiaryAudioLanguage")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:language typeLabel=\"TertiaryAudioLanguage\">\n");
+ ToReturn+=__T("\t\t\t<dc:language>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("TertiaryAudioLanguage"))+__T("</dc:language>\n");
+ ToReturn+=__T("\t\t</ebucore:language>\n");
+ }
+
+ //language
+ if (As11_UkDpp_Pos!=(size_t)-1 && !MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProgrammeTextLanguage")).empty())
+ {
+ ToReturn+=__T("\t\t<ebucore:language typeLabel=\"ProgrammeTextLanguage\">\n");
+ ToReturn+=__T("\t\t\t<dc:language>")+MI.Get(Stream_Other, As11_UkDpp_Pos, __T("ProgrammeTextLanguage"))+__T("</dc:language>\n");
+ ToReturn+=__T("\t\t</ebucore:language>\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<ebucore:part partNumber=\"")+Ztring::ToZtring(Pos)+__T("\" partTotalNumber=\"")+MI.Get(Stream_Other, As11_Segmentation_Pos, __T("PartTotal"))+__T("\">\n");
+ ToReturn+=__T("\t\t\t<ebucore:partStartTime>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:timecode>")+Begin+__T("</ebucore:timecode>\n");
+ ToReturn+=__T("\t\t\t</ebucore:partStartTime>\n");
+ ToReturn+=__T("\t\t\t<ebucore:partDuration>\n");
+ ToReturn+=__T("\t\t\t\t<ebucore:timecode>")+Duration+__T("</ebucore:timecode>\n");
+ ToReturn+=__T("\t\t\t</ebucore:partDuration>\n");
+ ToReturn+=__T("\t\t</ebucore:part>\n");
+
+ Pos++;
+ }
+ }
+
//coreMetadata
ToReturn+=__T("\t</ebucore:coreMetadata>\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 27a0b1d21..3317a09cc 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 1df5605eb..a884183ab 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_Mpeg7.cpp
@@ -17,6 +17,10 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_MPEG7_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
#include "MediaInfo/Export/Export_Mpeg7.h"
#include "MediaInfo/File__Analyse_Automatic.h"
#include <ctime>
@@ -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 5f28e3e43..239582345 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore.cpp
@@ -17,6 +17,10 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_PBCORE_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
#include "MediaInfo/Export/Export_PBCore.h"
#include "MediaInfo/File__Analyse_Automatic.h"
#include <ctime>
@@ -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<pbcoreEssenceTrack>\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<pbcoreEssenceTrack>\n");
+
ToReturn+=__T("\t\t\t<essenceTrackType>")+essenceTrackType+__T("</essenceTrackType>\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 6758949af..24e5e15f8 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Export/Export_PBCore2.cpp
@@ -23,6 +23,10 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_PBCORE_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
#include "MediaInfo/Export/Export_PBCore2.h"
#include "MediaInfo/File__Analyse_Automatic.h"
#include <ctime>
@@ -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<instantiationEssenceTrack>\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<instantiationEssenceTrack>\n");
+
ToReturn+=__T("\t\t<essenceTrackType>");
ToReturn+=essenceTrackType;
ToReturn+=__T("</essenceTrackType>\n");
@@ -158,7 +163,8 @@ void PBCore2_Transform(Ztring &ToReturn, MediaInfo_Internal &MI, stream_t Stream
ToReturn+=__T("\t\t<essenceTrackEncoding");
if (!MI.Get(StreamKind, StreamPos, __T("CodecID")).empty())
{
- ToReturn+=__T(" ref=\"codecid:");
+ ToReturn+=__T(" source=\"codecid\"");
+ ToReturn+=__T(" ref=\"");
ToReturn+=MI.Get(StreamKind, StreamPos, __T("CodecID"));
ToReturn+=__T("\"");
}
@@ -574,3 +580,5 @@ Ztring Export_PBCore2::Transform(MediaInfo_Internal &MI)
//***************************************************************************
} //NameSpace
+
+#endif \ No newline at end of file
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File_Other.cpp b/src/thirdparty/MediaInfo/MediaInfo/File_Other.cpp
index 75ad3f03f..d5ea6a42d 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File_Other.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/File_Other.cpp
@@ -44,6 +44,33 @@ void File_Other::Read_Buffer_Continue()
}
Ztring Format;
+ if (Buffer[0]==0xEA
+ && Buffer[1]==0x22
+ && Buffer[2]<=0x03)
+ {
+ Accept();
+
+ Stream_Prepare(Stream_Text);
+ Fill(Stream_Text, 0, Text_Format, "Cheetah");
+
+ Finish();
+ return;
+ }
+ if (Buffer[0]==0x4C
+ && Buffer[1]==0x61
+ && Buffer[2]==0x6D
+ && Buffer[3]==0x62
+ && Buffer[4]==0x64
+ && Buffer[5]==0x61)
+ {
+ Accept();
+
+ Stream_Prepare(Stream_Text);
+ Fill(Stream_Text, 0, Text_Format, "Lambda");
+
+ Finish();
+ return;
+ }
if (CC4(Buffer)==0xC5C6CBC3) {Format=__T("RISC OS Chunk data");}
else if (CC4(Buffer)==0x110000EF) {Format=__T("RISC OS AIF executable");}
else if (CC4(Buffer)==CC4("Draw")) {Format=__T("RISC OS Draw");}
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyse_Automatic.h b/src/thirdparty/MediaInfo/MediaInfo/File__Analyse_Automatic.h
index cc28ad3cb..db0918c07 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyse_Automatic.h
+++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyse_Automatic.h
@@ -397,13 +397,19 @@ enum general
General_Written_Location,
General_Archival_Location,
General_Encoded_Application,
+ General_Encoded_Application_String,
+ General_Encoded_Application_CompanyName,
+ General_Encoded_Application_Name,
+ General_Encoded_Application_Version,
General_Encoded_Application_Url,
General_Encoded_Library,
General_Encoded_Library_String,
+ General_Encoded_Library_CompanyName,
General_Encoded_Library_Name,
General_Encoded_Library_Version,
General_Encoded_Library_Date,
General_Encoded_Library_Settings,
+ General_Encoded_OperatingSystem,
General_Cropped,
General_Dimensions,
General_DotsPerInch,
@@ -588,20 +594,28 @@ enum video
Video_Width_Offset_String,
Video_Width_Original,
Video_Width_Original_String,
+ Video_Width_CleanAperture,
+ Video_Width_CleanAperture_String,
Video_Height,
Video_Height_String,
Video_Height_Offset,
Video_Height_Offset_String,
Video_Height_Original,
Video_Height_Original_String,
+ Video_Height_CleanAperture,
+ Video_Height_CleanAperture_String,
Video_PixelAspectRatio,
Video_PixelAspectRatio_String,
Video_PixelAspectRatio_Original,
Video_PixelAspectRatio_Original_String,
+ Video_PixelAspectRatio_CleanAperture,
+ Video_PixelAspectRatio_CleanAperture_String,
Video_DisplayAspectRatio,
Video_DisplayAspectRatio_String,
Video_DisplayAspectRatio_Original,
Video_DisplayAspectRatio_Original_String,
+ Video_DisplayAspectRatio_CleanAperture,
+ Video_DisplayAspectRatio_CleanAperture_String,
Video_ActiveFormatDescription,
Video_ActiveFormatDescription_String,
Video_ActiveFormatDescription_MuxingMode,
@@ -722,13 +736,19 @@ enum video
Video_Alignment_String,
Video_Title,
Video_Encoded_Application,
+ Video_Encoded_Application_String,
+ Video_Encoded_Application_CompanyName,
+ Video_Encoded_Application_Name,
+ Video_Encoded_Application_Version,
Video_Encoded_Application_Url,
Video_Encoded_Library,
Video_Encoded_Library_String,
+ Video_Encoded_Library_CompanyName,
Video_Encoded_Library_Name,
Video_Encoded_Library_Version,
Video_Encoded_Library_Date,
Video_Encoded_Library_Settings,
+ Video_Encoded_OperatingSystem,
Video_Language,
Video_Language_String,
Video_Language_String1,
@@ -744,11 +764,11 @@ enum video
Video_Tagged_Date,
Video_Encryption,
Video_BufferSize,
+ Video_colour_range,
Video_colour_description_present,
Video_colour_primaries,
Video_transfer_characteristics,
Video_matrix_coefficients,
- Video_colour_range,
Video_colour_description_present_Original,
Video_colour_primaries_Original,
Video_transfer_characteristics_Original,
@@ -984,12 +1004,20 @@ enum audio
Audio_Interleave_Preload,
Audio_Interleave_Preload_String,
Audio_Title,
+ Audio_Encoded_Application,
+ Audio_Encoded_Application_String,
+ Audio_Encoded_Application_CompanyName,
+ Audio_Encoded_Application_Name,
+ Audio_Encoded_Application_Version,
+ Audio_Encoded_Application_Url,
Audio_Encoded_Library,
Audio_Encoded_Library_String,
+ Audio_Encoded_Library_CompanyName,
Audio_Encoded_Library_Name,
Audio_Encoded_Library_Version,
Audio_Encoded_Library_Date,
Audio_Encoded_Library_Settings,
+ Audio_Encoded_OperatingSystem,
Audio_Language,
Audio_Language_String,
Audio_Language_String1,
@@ -1198,12 +1226,20 @@ enum text
Text_Source_StreamSize_Encoded_String5,
Text_Source_StreamSize_Encoded_Proportion,
Text_Title,
+ Text_Encoded_Application,
+ Text_Encoded_Application_String,
+ Text_Encoded_Application_CompanyName,
+ Text_Encoded_Application_Name,
+ Text_Encoded_Application_Version,
+ Text_Encoded_Application_Url,
Text_Encoded_Library,
Text_Encoded_Library_String,
+ Text_Encoded_Library_CompanyName,
Text_Encoded_Library_Name,
Text_Encoded_Library_Version,
Text_Encoded_Library_Date,
Text_Encoded_Library_Settings,
+ Text_Encoded_OperatingSystem,
Text_Language,
Text_Language_String,
Text_Language_String1,
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.cpp
index 20753f7e5..f90bde87d 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze.cpp
@@ -20,12 +20,12 @@
#include "MediaInfo/File__Analyze.h"
#include "MediaInfo/MediaInfo_Config_MediaInfo.h"
#include "MediaInfo/MediaInfo_Config.h"
-#if MEDIAINFO_IBI
- #if MEDIAINFO_SEEK
- #include "MediaInfo/Multiple/File_Ibi.h"
- #endif //MEDIAINFO_SEEK
+#if MEDIAINFO_IBIUSAGE && MEDIAINFO_SEEK
+ #include "MediaInfo/Multiple/File_Ibi.h"
+#endif //MEDIAINFO_IBIUSAGE && MEDIAINFO_SEEK
+#if MEDIAINFO_IBIUSAGE
#include "MediaInfo/Multiple/File_Ibi_Creation.h"
-#endif //MEDIAINFO_IBI
+#endif //MEDIAINFO_IBIUSAGE
#include <cstring>
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 e11db3bae..e455437b4 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 <aescpp.h>
@@ -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 dc009cfc4..e1434b27e 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer.cpp
@@ -233,6 +233,44 @@ void File__Analyze::Get_B16(int128u &Info, const char* Name)
}
//---------------------------------------------------------------------------
+// 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)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
@@ -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<ToFill_Size; ToFill_Pos++)
{
Vlc.Array[Value+ToFill_Pos]=Pos;
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp
index a434ba068..2f10737b4 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp
@@ -216,6 +216,43 @@ void File__Analyze::Get_B16_(int128u &Info)
}
//---------------------------------------------------------------------------
+// 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)
+{
+ INTEGRITY_SIZE_ATLEAST_INT(4);
+ Info=BigEndian2float16corrected(Buffer+Buffer_Offset+(size_t)Element_Offset);
+ Element_Offset+=4;
+}
+
+//---------------------------------------------------------------------------
void File__Analyze::Get_BF4_(float32 &Info)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_MinimizeSize.h
index 57baace89..36f28c885 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 3a1656328..3993fc17f 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))
{
@@ -2238,6 +2070,96 @@ void File__Analyze::CodecID_Fill(const Ztring &Value, stream_t StreamKind, size_
}
//---------------------------------------------------------------------------
+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)
{
switch (StreamKind)
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__Analyze_Streams_Finish.cpp
index ad2deb5d1..bb4d2aa8e 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; Pos<Pos_Max; ++Pos)
@@ -194,6 +224,15 @@ void File__Analyze::TestContinuousFileNames(size_t CountOfFiles, Ztring FileExte
if (Config->File_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 62d640b9d..f3adb2b02 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<MediaInfoLib::Config.Info_Get(StreamKind).size())
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__Base.h b/src/thirdparty/MediaInfo/MediaInfo/File__Base.h
index 75090ba2d..2eddfaa5d 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File__Base.h
+++ b/src/thirdparty/MediaInfo/MediaInfo/File__Base.h
@@ -112,6 +112,7 @@ public : //A virer
friend class File__Analyze;
friend class File__MultipleParsing;
friend class File__ReferenceFilesHelper;
+ friend class resource;
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/MediaInfo/File__MultipleParsing.cpp b/src/thirdparty/MediaInfo/MediaInfo/File__MultipleParsing.cpp
index ed6ef8f00..746d22526 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/File__MultipleParsing.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/File__MultipleParsing.cpp
@@ -191,6 +191,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
@@ -281,6 +284,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
@@ -565,6 +571,9 @@ File__MultipleParsing::File__MultipleParsing()
#if defined(MEDIAINFO_AU_YES)
Parser.push_back(new File_Au());
#endif
+ #if defined(MEDIAINFO_CAF_YES)
+ Parser.push_back(new File_Caf());
+ #endif
#if defined(MEDIAINFO_DTS_YES)
Parser.push_back(new File_Dts());
#endif
@@ -652,6 +661,9 @@ File__MultipleParsing::File__MultipleParsing()
#if defined(MEDIAINFO_BMP_YES)
Parser.push_back(new File_Bmp());
#endif
+ #if defined(MEDIAINFO_BPG_YES)
+ Parser.push_back(new File_Bpg());
+ #endif
#if defined(MEDIAINFO_DDS_YES)
Parser.push_back(new File_Dds());
#endif
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bmp.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bmp.cpp
index 726aef006..9ce3bdd7d 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bmp.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bmp.cpp
@@ -94,7 +94,7 @@ void File_Bmp::Read_Buffer_Continue()
Element_End0();
FILLING_BEGIN();
- if (Size!=File_Size)
+ if (Size!=(int32u)-1 && Size!=File_Size)
{
Reject("BMP");
return;
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.cpp b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.cpp
new file mode 100644
index 000000000..3d2e5ab04
--- /dev/null
+++ b/src/thirdparty/MediaInfo/MediaInfo/Image/File_Bpg.cpp
@@ -0,0 +1,152 @@
+/* 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.
+ */
+
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// From http://bellard.org/bpg/bpg_spec.txt
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+// Pre-compilation
+#include "MediaInfo/PreComp.h"
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/Setup.h"
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_BPG_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/Image/File_Bpg.h"
+#include <cmath>
+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 000000000..5eec138ae
--- /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 67e896938..f257fdce6 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 554958b1d..6b9b66b84 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; ImageElement<ImageElements; ImageElement++)
- GenericSectionHeader_v1_ImageElement();
+ GenericSectionHeader_Cineon_ImageElement();
if (ImageElements!=8)
Skip_XX((8-ImageElements)*28, "Padding");
- Skip_BFP4(9, "White point - x");
- Skip_BFP4(9, "White point - y");
- Skip_BFP4(9, "Red primary chromaticity - x");
- Skip_BFP4(9, "Red primary chromaticity - u");
- Skip_BFP4(9, "Green primary chromaticity - x");
- Skip_BFP4(9, "Green primary chromaticity - y");
- Skip_BFP4(9, "Blue primary chromaticity - x");
- Skip_BFP4(9, "Blue primary chromaticity - y");
+ Skip_BF4( "White point - x");
+ Skip_BF4( "White point - y");
+ Skip_BF4( "Red primary chromaticity - x");
+ Skip_BF4( "Red primary chromaticity - u");
+ Skip_BF4( "Green primary chromaticity - x");
+ Skip_BF4( "Green primary chromaticity - y");
+ Skip_BF4( "Blue primary chromaticity - x");
+ Skip_BF4( "Blue primary chromaticity - y");
Skip_UTF8(200, "Label text");
Skip_XX(28, "Reserved for future use");
Element_End0();
@@ -499,9 +496,9 @@ void File_Dpx::GenericSectionHeader_v1()
Skip_UTF8(64, "Input device");
Skip_UTF8(32, "Input device model number");
Skip_UTF8(32, "Input device serial number");
- Skip_BFP4(9, "X input device pitch");
- Skip_BFP4(9, "Y input device pitch");
- Skip_BFP4(9, "Image gamma of capture device");
+ Skip_BF4( "X input device pitch");
+ Skip_BF4( "Y input device pitch");
+ Skip_BF4( "Image gamma of capture device");
Skip_XX(40, "Reserved for future use");
Element_End0();
@@ -527,12 +524,17 @@ void File_Dpx::GenericSectionHeader_v1()
{
Fill(Stream_General, 0, General_Encoded_Date, CreationDate+__T(' ')+CreationTime); //ToDo: transform it in UTC
Fill(StreamKind_Last, StreamPos_Last, "Encoded_Date", CreationDate+__T(' ')+CreationTime); //ToDo: transform it in UTC
+ Fill(StreamKind_Last, StreamPos_Last, "Format", "Cineom");
+ if (Version.size()>2 && 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; ImageElement<ImageElements; ImageElement++)
- GenericSectionHeader_v2_ImageElement();
+ GenericSectionHeader_Dpx_ImageElement();
if (ImageElements!=8)
Skip_XX((8-ImageElements)*72, "Padding");
Skip_XX(52, "Reserved for future use");
@@ -604,8 +604,8 @@ void File_Dpx::GenericSectionHeader_v2()
Element_Begin1("Image source information");
Skip_B4( "X Offset");
Skip_B4( "Y Offset");
- Skip_BFP4(9, "X center");
- Skip_BFP4(9, "Y center");
+ Skip_BF4( "X center");
+ Skip_BF4( "Y center");
Skip_B4( "X original size");
Skip_B4( "Y original size");
Skip_UTF8(100, "Source image filename");
@@ -622,8 +622,8 @@ void File_Dpx::GenericSectionHeader_v2()
Get_X4 (PAR_V, "Pixel ratio : vertical");
Element_Begin1("Additional source image information");
- Skip_BFP4(9, "X scanned size");
- Skip_BFP4(9, "Y scanned size");
+ Skip_BF4( "X scanned size");
+ Skip_BF4( "Y scanned size");
Skip_XX(20, "Reserved for future use");
Element_End0();
@@ -659,6 +659,11 @@ void File_Dpx::GenericSectionHeader_v2()
Fill(StreamKind_Last, StreamPos_Last, "Encoded_Library", Creator);
Fill(Stream_General, 0, "Project", Project); //ToDo: map to a MediaInfo field (which one?)
Fill(Stream_General, 0, General_Copyright, Copyright);
+ Fill(StreamKind_Last, StreamPos_Last, "Format", "DPX");
+ if (Version.size()>2 && 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 784ddf5b5..66cc33147 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<int32u> 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 85f32d03d..9e2f88d25 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 e016f4c21..9c0f41bd2 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<int8u> 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 824f05391..80de45e4d 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 7169d645e..51f855d2a 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 9ffe5362b..949a9f841 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 175c0b46a..c269b6fc7 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 <math.h> // 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 9674ff7e4..6e2007c28 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config.cpp
@@ -19,6 +19,97 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
+// Debug
+#ifdef MEDIAINFO_DEBUG
+ #include <stdio.h>
+ #include <windows.h>
+ 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 32e5581da..b639cef37 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 b11f60877..c00de7885 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 <stdio.h>
+ #include <windows.h>
+ 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"))
{
@@ -1194,6 +1308,21 @@ bool MediaInfo_Config_MediaInfo::File_IgnoreSequenceFilesCount_Get ()
//---------------------------------------------------------------------------
#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)
{
CriticalSectionLocker CSL(CS);
@@ -1241,6 +1370,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
void MediaInfo_Config_MediaInfo::File_Demux_Unpacketize_StreamLayoutChange_Skip_Set (bool NewValue)
@@ -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 4657c99e7..29c9b048b 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h
+++ b/src/thirdparty/MediaInfo/MediaInfo/MediaInfo_Config_MediaInfo.h
@@ -121,6 +121,11 @@ public :
#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 ();
#endif //MEDIAINFO_ADVANCED
@@ -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 4646d6fcc..59f97c423 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 604fb2f02..5ee7305a2 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<Size; Champ_Pos++)
{
@@ -286,7 +332,9 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I
Ztring Nom=Get((stream_t)StreamKind, StreamPos, Champ_Pos, Info_Name_Text);
if (Nom.empty())
Nom=Get((stream_t)StreamKind, StreamPos, Champ_Pos, Info_Name); //Texte n'existe pas
- if (!HTML && !XML && !CSV)
+ #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))
{
int8u Nom_Size=MediaInfoLib::Config.Language_Get(__T(" Config_Text_ColumnSize")).To_int8u();
if (Nom_Size==0)
@@ -295,6 +343,7 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I
}
Ztring Valeur=Get((stream_t)StreamKind, StreamPos, Champ_Pos, Info_Text);
Valeur.FindAndReplace(__T("\\"), __T("|SC1|"), 0, Ztring_Recursive);
+ #if defined(MEDIAINFO_HTML_YES)
if (HTML)
{
Retour+=__T(" <tr>\n <td><i>");
@@ -303,7 +352,9 @@ Ztring MediaInfo_Internal::Inform (stream_t StreamKind, size_t StreamPos, bool I
Retour+=Valeur;
Retour+=__T("</td>\n </tr>");
}
- 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 6733cfc32..4c6f28398 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+=" <clip file=\""+Test.Name_Get().To_UTF8()+".cap\" />\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 d6f873ce4..10e062c0b 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 fec837e28..f88975057 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 6c7c221a3..3abb6d1ca 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 <cstring>
//---------------------------------------------------------------------------
@@ -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; StreamPos<Rdd18_Parser->Count_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 8ad35e751..ad9359feb 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 34df2d016..f855a0c6d 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 7bf2f914e..a275afa76 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 16e983342..1f0211352 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpCpl.cpp
@@ -38,16 +38,6 @@ 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<string, Ztring>::iterator Info=ReferenceFile.Infos.find("TimeCode_FirstFrame");
- if (Info!=ReferenceFile.Infos.end() && Info->second.size()>=11 && Info->second[8]!=__T(';'))
+ std::map<string, Ztring>::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<string, Ztring>::iterator Info=ReferenceFile.Infos.begin(); Info!=ReferenceFile.Infos.end(); ++Info)
+ Fill(Stream_Other, StreamPos_Last, Other_ID, Sequence->StreamID);
+ for (std::map<string, Ztring>::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<Ztring, File_DcpPkl::streams::iterator> 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_Pos<ReferenceFiles->References.size(); ++References_Pos)
- {
- for (size_t Pos=0; Pos<ReferenceFiles->References[References_Pos].FileNames.size(); ++Pos)
- {
- map<Ztring, File_DcpPkl::streams::iterator>::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; Pos<ReferenceFiles->References[References_Pos].CompleteDuration.size(); ++Pos)
- {
- map<Ztring, File_DcpPkl::streams::iterator>::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 6fb592d68..0014bee51 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_DcpPkl.cpp
@@ -38,13 +38,6 @@ 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 f536db46e..a001463a5 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 91a46232c..b43a764ed 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 a7b5563b4..0b6fb816d 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 a66001af5..139738eeb 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 ffe8b7e28..e6b3b99c0 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; Line<Lines.size(); Line++)
@@ -199,25 +199,25 @@ bool File_Hls::FileHeader_Begin()
{
if (IsGroup)
{
- ReferenceFile.FileNames.push_back(Lines[Line]);
- ReferenceFile.StreamID=ReferenceFiles->References.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 a342ae7fe..a267125d7 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_Offset<Element_Size)
{
int64u Item;
Get_EB (Item, "Item");
Offset+=Item;
+ #if MEDIAINFO_IBIUSAGE
Param_Info1(Pos);
+ #endif //MEDIAINFO_IBIUSAGE
Param_Info1(Ztring::ToZtring(Offset)+__T(" (0x")+Ztring::ToZtring(Offset, 16)+__T(')'));
+ #if MEDIAINFO_IBIUSAGE
FILLING_BEGIN();
if (Ibi)
{
@@ -429,6 +449,7 @@ void File_Ibi::Stream_ByteOffset()
Pos++;
}
FILLING_END();
+ #endif //MEDIAINFO_IBIUSAGE
}
}
@@ -437,16 +458,21 @@ void File_Ibi::Stream_FrameNumber()
Element_Name("Frame Number");
//Parsing
+ #if MEDIAINFO_IBIUSAGE
size_t Pos=0;
+ #endif //MEDIAINFO_IBIUSAGE
int64u Offset=0;
while (Element_Offset<Element_Size)
{
int64u Item;
Get_EB (Item, "Item");
Offset+=Item;
+ #if MEDIAINFO_IBIUSAGE
Param_Info1(Pos);
+ #endif //MEDIAINFO_IBIUSAGE
Param_Info1(Ztring::ToZtring(Offset)+__T(" (0x")+Ztring::ToZtring(Offset, 16)+__T(')'));
+ #if MEDIAINFO_IBIUSAGE
FILLING_BEGIN();
if (Ibi)
{
@@ -462,6 +488,7 @@ void File_Ibi::Stream_FrameNumber()
Pos++;
}
FILLING_END();
+ #endif //MEDIAINFO_IBIUSAGE
}
}
@@ -472,11 +499,14 @@ void File_Ibi::Stream_Dts()
//Parsing
int64u Item;
Get_EB (Item, "DtsFrequencyNumerator");
+ #if MEDIAINFO_IBIUSAGE
FILLING_BEGIN();
if (Ibi)
Ibi->Streams[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_Offset<Element_Size)
{
int64u Item;
Get_EB (Item, "Item");
Offset+=Item;
+ #if MEDIAINFO_IBIUSAGE
Param_Info1(Pos);
+ #endif //MEDIAINFO_IBIUSAGE
Param_Info1(Ztring::ToZtring(Offset)+__T(" (0x")+Ztring::ToZtring(Offset, 16)+__T(')'));
+ #if MEDIAINFO_IBIUSAGE
FILLING_BEGIN();
if (Ibi)
{
@@ -513,6 +549,7 @@ void File_Ibi::Stream_Dts()
Pos++;
}
FILLING_END();
+ #endif //MEDIAINFO_IBIUSAGE
}
}
@@ -684,9 +721,10 @@ void File_Ibi::InformData()
Get_UTF8 (Element_Size, InformData_FromFile, "Data");
//Filling
- ZtringListList Fields(InformData_FromFile);
+ #if MEDIAINFO_IBIUSAGE
if (Config->Ibi_UseIbiInfoIfAvailable_Get())
{
+ ZtringListList Fields(InformData_FromFile);
for (size_t Pos=0; Pos<Fields.size(); Pos++)
{
if (Pos==0 || Fields[Pos].size()<2)
@@ -720,6 +758,7 @@ void File_Ibi::InformData()
(*Stream_More)[StreamKind_Last][StreamPos_Last](Fields[Pos][0].To_UTF8().c_str(), Info_Options)=Fields[Pos][Info_Options];
}
}
+ #endif //MEDIAINFO_IBIUSAGE
}
//***************************************************************************
@@ -904,4 +943,4 @@ int128u File_Ibi::UInteger16_Get()
} //NameSpace
-#endif //MEDIAINFO_IBI_YES
+#endif //MEDIAINFO_IBI
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.h
index 145d7acd6..76538aad1 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.h
+++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi.h
@@ -33,15 +33,21 @@ public :
~File_Ibi();
//In
- ibi* Ibi;
+ #if MEDIAINFO_IBIUSAGE
+ ibi* Ibi;
+ #endif //MEDIAINFO_IBIUSAGE
private :
- //Get information
- const Ztring &Get (stream_t StreamKind, size_t StreamNumber, const Ztring &Parameter, info_t KindOfInfo=Info_Text, info_t KindOfSearch=Info_Name);
+ #if MEDIAINFO_IBIUSAGE
+ //Get information
+ const Ztring &Get (stream_t StreamKind, size_t StreamNumber, const Ztring &Parameter, info_t KindOfInfo=Info_Text, info_t KindOfSearch=Info_Name);
+ #endif //MEDIAINFO_IBIUSAGE
//Streams management
void Streams_Accept();
+ #if MEDIAINFO_IBIUSAGE
void Streams_Finish();
+ #endif //MEDIAINFO_IBIUSAGE
//Buffer - Element
void Header_Parse();
@@ -82,7 +88,9 @@ private :
//Temp
Ztring Get_Temp;
int64u ID_Current;
- bool Ibi_MustDelete;
+ #if MEDIAINFO_IBIUSAGE
+ bool Ibi_MustDelete;
+ #endif //MEDIAINFO_IBIUSAGE
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi_Creation.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi_Creation.cpp
index 13c0f1212..398e1aba3 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi_Creation.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ibi_Creation.cpp
@@ -17,7 +17,7 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-#if MEDIAINFO_IBI
+#if MEDIAINFO_IBIUSAGE
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
@@ -539,9 +539,9 @@ Ztring File_Ibi_Creation::Finish()
else
{
//Filling
- Buffer.Size = Main_Offset;
+ Buffer.Size = Size;
Buffer.Content = new int8u[Buffer.Size];
- std::memcpy(Buffer.Content, Main, Main_Offset);
+ std::memcpy(Buffer.Content, Main, Size);
}
std::string Data_Raw((const char*)Buffer.Content, Buffer.Size);
@@ -561,5 +561,5 @@ Ztring File_Ibi_Creation::Finish()
} //NameSpace
-#endif //MEDIAINFO_IBI_YES
+#endif //MEDIAINFO_IBIUSAGE
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ism.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ism.cpp
index 2357af29e..60e9b1f38 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ism.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Ism.cpp
@@ -91,7 +91,7 @@ size_t File_Ism::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
@@ -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 d50dc6aa0..a514f2362 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 1d2b45d0b..4735b0094 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_Pos<Stream->second.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<int64u, int64u>::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 c1ff5b89d..aedf73b6e 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 4866faad8..dad3df2c8 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);
@@ -5034,11 +5068,37 @@ 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
@@ -5052,6 +5112,13 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_colr()
}
//---------------------------------------------------------------------------
+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()
{
Element_Name("H263SpecificBox");
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_MpegPs.cpp
index e2fb1843a..bd5c9dd1f 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 5b41da130..db0abb821 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 5e0195a17..56f5c0abe 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 795a29332..17836f4a9 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 1aafe061b..e15fcb7b8 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 <cfloat>
#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; Pos<Essence->second.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_FromTrack<Config->File_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_FromTrack<Config->File_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_IgnoreFramesAfter<FrameCount)
- FrameCount=File_IgnoreFramesAfter;
- if (FrameCount<File_IgnoreFramesBefore)
- FrameCount=File_IgnoreFramesBefore;
- FrameCount-=File_IgnoreFramesBefore;
+ int64u File_IgnoreEditsBefore=Config->File_IgnoreEditsBefore;
+ if (File_IgnoreEditsBefore && Config->File_EditRate && (EditRate_FromTrack<Config->File_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_FromTrack<Config->File_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<FrameCount)
+ FrameCount=File_IgnoreEditsAfter;
+ if (FrameCount<File_IgnoreEditsBefore)
+ FrameCount=File_IgnoreEditsBefore;
+ FrameCount-=File_IgnoreEditsBefore;
float64 File_Size_Temp=(float64)File_Size;
File_Size_Temp/=FrameCount_FromComponent;
@@ -2371,19 +2466,19 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
for (std::map<std::string, Ztring>::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_FromTrack<Config->File_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_FromTrack<Config->File_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_IgnoreFramesAfter<FrameCount)
- FrameCount=File_IgnoreFramesAfter;
- if (FrameCount<File_IgnoreFramesBefore)
- FrameCount=File_IgnoreFramesBefore;
- FrameCount-=File_IgnoreFramesBefore;
+ int64u File_IgnoreEditsBefore=Config->File_IgnoreEditsBefore;
+ if (File_IgnoreEditsBefore && Config->File_EditRate && (EditRate_FromTrack<Config->File_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_FromTrack<Config->File_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<FrameCount)
+ FrameCount=File_IgnoreEditsAfter;
+ if (FrameCount<File_IgnoreEditsBefore)
+ FrameCount=File_IgnoreEditsBefore;
+ FrameCount-=File_IgnoreEditsBefore;
float64 Stream_Size_Temp=(float64)Stream_Size;
Stream_Size_Temp/=FrameCount_FromComponent;
@@ -3270,19 +3365,19 @@ void File_Mxf::Streams_Finish_Component(const int128u ComponentUID, float64 Edit
if (EditRate && StreamKind_Last!=Stream_Max && Component->second.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 && (EditRate<Config->File_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 && (EditRate<Config->File_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_IgnoreFramesAfter<FrameCount)
- FrameCount=File_IgnoreFramesAfter;
- if (FrameCount<File_IgnoreFramesBefore)
- FrameCount=File_IgnoreFramesBefore;
- FrameCount-=File_IgnoreFramesBefore;
+ if (StreamKind_Last==Stream_Video || Config->File_EditRate)
+ {
+ int64u File_IgnoreEditsBefore=Config->File_IgnoreEditsBefore;
+ if (File_IgnoreEditsBefore && Config->File_EditRate && (EditRate<Config->File_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 && (EditRate<Config->File_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_IgnoreEditsAfter<FrameCount)
+ FrameCount=File_IgnoreEditsAfter;
+ if (FrameCount<File_IgnoreEditsBefore)
+ FrameCount=File_IgnoreEditsBefore;
+ FrameCount-=File_IgnoreEditsBefore;
}
Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Duration), FrameCount*1000/EditRate, 0, true);
size_t ID_SubStreamInfo_Pos=Retrieve(StreamKind_Last, StreamPos_Last, General_ID).find(__T("-"));
@@ -3329,10 +3424,10 @@ void File_Mxf::Streams_Finish_Component_ForTimeCode(const int128u ComponentUID,
for (size_t Pos=0; Pos<Component->second.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()<Encoded_Application_ProductName.size())
{
- Ztring Encoded_Library_Name;
- if (!Identification->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<std::string, Ztring>::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 (Value<Delay)
- return 2; //Invalid value
- Value-=Delay;
- }
- else if (TimeCode_StartTimecode!=(int64u)-1)
+ else if (MxfTimeCodeForDelay.StartTimecode!=(int64u)-1)
{
int64u Delay=float64_int64s(DTS_Delay*1000000000);
if (Value<Delay)
@@ -4221,10 +4317,17 @@ size_t File_Mxf::Read_Buffer_Seek (size_t Method, int64u Value, int64u ID)
}
//No break;
case 3 : //FrameNumber
- Value+=Config->File_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; Pos<Essence->second.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<int16u, int128u>::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<int16u, int128u>::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;
}
@@ -6766,6 +7006,37 @@ void File_Mxf::AncPacketsDescriptor()
}
//---------------------------------------------------------------------------
+void File_Mxf::MpegAudioDescriptor()
+{
+ if (Code2>=0x8000)
+ {
+ // Not a short code
+ std::map<int16u, int128u>::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()
{
//switch(Code2)
@@ -6898,6 +7169,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<int16u, int128u>::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()
{
//Parsing
@@ -7236,6 +7558,71 @@ void File_Mxf::SubDescriptors()
}
//---------------------------------------------------------------------------
+void File_Mxf::LensUnitMetadata()
+{
+ //switch(Code2)
+ //{
+ // default:
+ GenerationInterchangeObject();
+ //}
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::CameraUnitMetadata()
+{
+ if (Count_Get(Stream_Other)==0)
+ Stream_Prepare(Stream_Other);
+
+ switch(Code2)
+ {
+ ELEMENT(3210, CameraUnitMetadata_CaptureGammaEquation, "Capture Gamma Equation")
+ ELEMENT(8103, CameraUnitMetadata_NeutralDensityFilterWheelSetting, "Neutral Density Filter Wheel Setting")
+ ELEMENT(8106, CameraUnitMetadata_CaptureFrameRate, "Capture Frame Rate")
+ ELEMENT(8107, CameraUnitMetadata_ImageSensorReadoutMode,"Image Sensor Readout Mode")
+ ELEMENT(8108, CameraUnitMetadata_ShutterSpeed_Angle, "Shutter Speed (Angle)")
+ ELEMENT(810B, CameraUnitMetadata_ISOSensitivity, "ISO Sensitivity")
+ ELEMENT(810E, CameraUnitMetadata_WhiteBalance, "White Balance")
+ ELEMENT(8114, CameraUnitMetadata_CameraAttributes, "Camera Attributes")
+ ELEMENT(8115, CameraUnitMetadata_ExposureIndexofPhotoMeter,"Exposure Index of Photo Meter")
+ ELEMENT(8116, CameraUnitMetadata_GammaforCDL, "Gamma for CDL")
+ ELEMENT(8117, CameraUnitMetadata_ASCCDLV1_2, "ASC CDL V1.2")
+ default:
+ GenerationInterchangeObject();
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::UserDefinedAcquisitionMetadata()
+{
+ if (Count_Get(Stream_Other)==0)
+ Stream_Prepare(Stream_Other);
+
+ switch(Code2)
+ {
+ ELEMENT(E000, UserDefinedAcquisitionMetadata_UdamSetIdentifier, "UDAM Set Identifier")
+ default:
+ if (UserDefinedAcquisitionMetadata_UdamSetIdentifier_IsSony)
+ switch(Code2)
+ {
+ ELEMENT(8007, UserDefinedAcquisitionMetadata_Sony_8007, "Lens Attributes")
+ ELEMENT(E101, UserDefinedAcquisitionMetadata_Sony_E101, "Effective Marker Coverage")
+ ELEMENT(E102, UserDefinedAcquisitionMetadata_Sony_E102, "Effective Marker Aspect Ratio")
+ ELEMENT(E103, UserDefinedAcquisitionMetadata_Sony_E103, "Camera Process Discrimination Code")
+ ELEMENT(E104, UserDefinedAcquisitionMetadata_Sony_E104, "Rotary Shutter Mode")
+ ELEMENT(E109, UserDefinedAcquisitionMetadata_Sony_E109, "Monitoring Descriptions")
+ ELEMENT(E10B, UserDefinedAcquisitionMetadata_Sony_E10B, "E10B")
+ ELEMENT(E201, UserDefinedAcquisitionMetadata_Sony_E201, "E201")
+ ELEMENT(E202, UserDefinedAcquisitionMetadata_Sony_E202, "E202")
+ ELEMENT(E203, UserDefinedAcquisitionMetadata_Sony_E203, "E203")
+ default:
+ GenerationInterchangeObject();
+ }
+ else
+ GenerationInterchangeObject();
+ }
+}
+
+//---------------------------------------------------------------------------
void File_Mxf::SDTI_SystemMetadataPack() //SMPTE 385M + 326M
{
//Info for SDTI in Index StreamOffset
@@ -8373,7 +8760,25 @@ void File_Mxf::GenericPictureEssenceDescriptor_ActiveFormatDescriptor()
{
//Parsing
int8u Data;
- Get_B1 (Data, "Data"); Element_Info1C((Data<16), AfdBarData_active_format[Data]);
+ bool Is1dot3=Retrieve(Stream_General, 0, General_Format_Version).To_float32()>=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();
}
//---------------------------------------------------------------------------
@@ -8991,6 +9409,13 @@ void File_Mxf::JPEG2000PictureSubDescriptor_QuantizationDefault()
}
//---------------------------------------------------------------------------
+//
+void File_Mxf::MpegAudioDescriptor_BitRate()
+{
+ Skip_B4( "Data");
+}
+
+//---------------------------------------------------------------------------
// 0x3B02
void File_Mxf::Preface_LastModifiedDate()
{
@@ -9168,6 +9593,20 @@ void File_Mxf::MPEG2VideoDescriptor_ProfileAndLevel()
//---------------------------------------------------------------------------
// 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()
{
//Parsing
@@ -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();
}
@@ -10034,15 +10478,323 @@ void File_Mxf::WaveAudioDescriptor_ChannelAssignment()
}
//---------------------------------------------------------------------------
+//
+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; LocatorPos<Descriptor->second.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<int128u> DMScheme1s_List;
for (dmsegments::iterator DMSegment=DMSegments.begin(); DMSegment!=DMSegments.end(); ++DMSegment)
for (size_t Pos=0; Pos<DMSegment->second.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; Pos<DMScheme1s_List.size(); Pos++)
@@ -14721,12 +15483,12 @@ void File_Mxf::Locators_Test()
dmscheme1s::iterator DMScheme1=DMScheme1s.find(DMScheme1s_List[Pos]);
if (DMScheme1!=DMScheme1s.end())
{
- ReferenceFile.Infos["Language"]=DMScheme1->second.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 03d807929..507e229b2 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<std::string, Ztring> Infos;
};
typedef std::map<int128u, identification> identifications; //Key is InstanceUID of identification
@@ -791,21 +855,12 @@ protected :
int256u SourcePackageID; //Sequence from SourcePackage only
int32u SourceTrackID;
std::vector<int128u> 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 f19e49e43..706a6a456 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 3c152e4ba..0b0cee913 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; Pos<FileName_Count; Pos++)
@@ -544,24 +544,24 @@ void File_Ptx::Read_Buffer_Continue()
if (FileName.find(Name)==0
|| FileName.find(Name+__T(".wav"))+5==Name.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++;
}
- 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; Pos<FileName_Count; Pos++)
{
@@ -578,10 +578,10 @@ void File_Ptx::Read_Buffer_Continue()
for (int32u Pos2=0; Pos2<Names.size(); Pos2++)
if (FileNamesLowerCase[Pos].find(Names[Pos2])==0)
{
- 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);
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; Pos<FileName_Count; Pos++)
{
@@ -603,16 +603,16 @@ void File_Ptx::Read_Buffer_Continue()
&& FileNames[Pos].find(__T(".1Khz.wav"))==string::npos //Exception?
&& FileNames[Pos].find(__T("_1KTONE_"))==string::npos) //Exception?
{
- 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);
}
}
}
// Role==2
- if (ReferenceFiles->References.empty())
+ if (!ReferenceFiles->Sequences_Size())
{
for (int32u Pos=0; Pos<FileName_Count; Pos++)
{
@@ -625,10 +625,10 @@ void File_Ptx::Read_Buffer_Continue()
&& FileNames[Pos].find(__T(".1Khz.wav"))==string::npos //Exception?
&& FileNames[Pos].find(__T("_1KTONE_"))==string::npos) //Exception?
{
- 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);
}
}
}
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File_Riff.cpp
index 9b0897069..0f9a0d5d7 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 83a0cb97c..c68b15f57 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 74429df84..bc9727e8b 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 2bfddfe23..6c1b657f2 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 3069891ec..92366519c 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_Pos<Sequences_Size; ++Sequences_Pos)
+ delete Sequences[Sequences_Pos];
}
//***************************************************************************
@@ -86,21 +107,21 @@ File__ReferenceFilesHelper::~File__ReferenceFilesHelper()
//***************************************************************************
//---------------------------------------------------------------------------
-bool File__ReferenceFilesHelper_Algo1 (const File__ReferenceFilesHelper::reference &Ref1, const File__ReferenceFilesHelper::reference &Ref2) { return (Ref1.StreamID<Ref2.StreamID);}
-bool File__ReferenceFilesHelper_Algo2 (const File__ReferenceFilesHelper::reference &Ref1, const File__ReferenceFilesHelper::reference &Ref2) { return (Ref1.StreamPos<Ref2.StreamPos);}
-bool File__ReferenceFilesHelper_Algo3 (const File__ReferenceFilesHelper::reference &Ref1, const File__ReferenceFilesHelper::reference &Ref2) { return (Ref1.StreamKind<Ref2.StreamKind);}
-void File__ReferenceFilesHelper_InfoFromFileName (File__ReferenceFilesHelper::references &References)
+bool File__ReferenceFilesHelper_Algo1 (const sequence* Ref1, const sequence* Ref2) { return (Ref1->StreamID<Ref2->StreamID);}
+bool File__ReferenceFilesHelper_Algo2 (const sequence* Ref1, const sequence* Ref2) { return (Ref1->StreamPos<Ref2->StreamPos);}
+bool File__ReferenceFilesHelper_Algo3 (const sequence* Ref1, const sequence* Ref2) { return (Ref1->StreamKind<Ref2->StreamKind);}
+void File__ReferenceFilesHelper_InfoFromFileName (sequences &Sequences)
{
ZtringListList List;
- vector<File__ReferenceFilesHelper::references::iterator> Iterators;
+ vector<size_t> Iterators;
- for (File__ReferenceFilesHelper::references::iterator Reference=References.begin(); Reference<References.end(); ++Reference)
+ for (size_t Sequences_Pos=0; Sequences_Pos<Sequences.size(); Sequences_Pos++)
{
ZtringList List2;
List2.Separator_Set(0, __T(" "));
- if ((*Reference).StreamKind==Stream_Audio && !(*Reference).FileNames.empty())
+ if (Sequences[Sequences_Pos]->StreamKind==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; Pos<List2.size(); Pos++)
List2[Pos].MakeLowerCase();
List.push_back(List2);
- Iterators.push_back(Reference);
+ Iterators.push_back(Sequences_Pos);
}
}
@@ -234,9 +255,9 @@ void File__ReferenceFilesHelper_InfoFromFileName (File__ReferenceFilesHelper::re
ChannelLayout=__T("Cs");
}
- (*Iterators[Pos]).Infos["ChannelPositions"]=ChannelPositions;
- (*Iterators[Pos]).Infos["ChannelPositions/String2"]=ChannelPositions2;
- (*Iterators[Pos]).Infos["ChannelLayout"]=ChannelLayout;
+ Sequences[Iterators[Pos]]->Infos["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_Pos<Sequences_Size; ++Sequences_Pos)
+ {
+ sequence* Sequence=Sequences[Sequences_Pos];
+
+ Sequence->UpdateFileName(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; Pos<References.size(); Pos++)
- if (References[Pos].StreamKind!=Stream_Audio)
+ for (size_t Pos=0; Pos<Sequences.size(); Pos++)
+ if (Sequences[Pos]->StreamKind!=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; Pos<Reference->CompleteDuration.size(); Pos++)
+ for (Sequences_Current=0; Sequences_Current<Sequences.size(); Sequences_Current++)
+ if (Sequences[Sequences_Current]->FileNames.empty())
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->Resources.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_Pos<Sequences[Sequences_Current]->Resources[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; Pos<Reference->CompleteDuration.size(); Pos++)
- if (Reference->CompleteDuration[Pos].IgnoreFramesRate && EditRate!=Reference->CompleteDuration[Pos].IgnoreFramesRate)
+ for (Sequences_Current=0; Sequences_Current<Sequences.size(); Sequences_Current++)
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->Resources.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<int64u> StreamList;
bool StreamList_DuplicatedIds=false;
- for (Reference=References.begin(); Reference<References.end(); ++Reference)
- if (StreamList.find((*Reference).StreamID)==StreamList.end())
- StreamList.insert((*Reference).StreamID);
+ for (Sequences_Current=0; Sequences_Current<Sequences.size(); Sequences_Current++)
+ if (StreamList.find(Sequences[Sequences_Current]->StreamID)==StreamList.end())
+ StreamList.insert(Sequences[Sequences_Current]->StreamID);
else
{
StreamList_DuplicatedIds=true;
break;
}
if (StreamList_DuplicatedIds)
- for (Reference=References.begin(); Reference<References.end(); ++Reference)
- (*Reference).StreamID=Reference-References.begin()+1;
- if (References.size()==1 && References.begin()->StreamID==(int64u)-1)
+ for (Sequences_Current=0; Sequences_Current<Sequences.size(); Sequences_Current++)
+ Sequences[Sequences_Current]->StreamID=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_Current<Sequences.size())
{
- ZtringList Names=Reference->FileNames;
+ ZtringList Names=Sequences[Sequences_Current]->FileNames;
ZtringList AbsoluteNames; AbsoluteNames.Separator_Set(0, ",");
for (size_t Pos=0; Pos<Names.size(); Pos++)
{
@@ -442,7 +496,7 @@ void File__ReferenceFilesHelper::ParseReferences()
if (AbsoluteNames.empty() || !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.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<string, Ztring>::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<string, Ztring>::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; Pos<Reference->FileNames.size(); Pos++)
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->FileNames.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_Current<Sequences.size())
{
ParseReference(); //Init
- Reference++;
+ Sequences_Current++;
}
//Cleanup
- for (size_t Pos=0; Pos<References.size(); Pos++)
- if (References[Pos].Status[File__Analyze::IsFinished])
+ for (size_t Pos=0; Pos<Sequences.size(); Pos++)
+ if (Sequences[Pos]->Status[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_Current<Sequences.size())
{
#if MEDIAINFO_NEXTPACKET
- if (!Reference->Status[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_Pos<ReferenceTemp->CompleteDuration.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; Pos<Reference->CompleteDuration.size(); Pos++)
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->Resources.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+1<Reference->CompleteDuration.size())
+ if (Pos+1<Sequences[Sequences_Current]->Resources.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+1<Reference->CompleteDuration.size())
+ if (Pos+1<Sequences[Sequences_Current]->Resources.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; Pos<Reference->CompleteDuration.size(); Pos++)
- Reference->CompleteDuration[Pos].MI->Open(Reference->CompleteDuration[Pos].FileName);
+ for (size_t Pos=1; Pos<Sequences[Sequences_Current]->Resources.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_Pos<Reference->CompleteDuration.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_Current<Sequences[Sequences_Current]->Resources.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_Pos<Reference->CompleteDuration.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_Current<Sequences[Sequences_Current]->Resources.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_Pos<Reference->CompleteDuration.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_Current<Sequences[Sequences_Current]->Resources.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_Pos<Reference->CompleteDuration.size())
+ while (Sequences[Sequences_Current]->Resources_Current<Sequences[Sequences_Current]->Resources.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_Pos<Reference->CompleteDuration.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_Current<Sequences[Sequences_Current]->Resources.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; Pos<Reference->CompleteDuration.size(); Pos++)
- Reference->FileSize+=File::Size_Get(Reference->CompleteDuration[Pos].FileName);
+ Sequences[Sequences_Current]->FileSize=0;
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->Resources.size(); Pos++)
+ for (size_t Resource_FileNames_Pos=0; Resource_FileNames_Pos<Sequences[Sequences_Current]->Resources[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; StreamKind<Stream_Max; StreamKind++)
- for (size_t StreamPos=0; StreamPos<Reference->MI->Count_Get((stream_t)StreamKind); StreamPos++)
+ for (size_t StreamPos=0; StreamPos<Sequences[Sequences_Current]->MI->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->StreamID<ReferencePos->StreamID)
+ 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_Max<ID_New)
ID_Max=ID_New;
}
MI->Clear(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; Pos<Reference->CompleteDuration.size(); Pos++)
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->Resources.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<string, Ztring>::iterator Info=Reference->Infos.begin(); Info!=Reference->Infos.end(); ++Info)
+ for (std::map<string, Ztring>::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; Pos<Reference->FileNames.size(); Pos++)
+ for (size_t Pos=0; Pos<Sequences[Sequences_Current]->FileNames.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; Pos<List.size(); Pos++)
{
Ztring Temp=List[Pos];
@@ -1410,7 +1471,7 @@ MediaInfo_Internal* File__ReferenceFilesHelper::MI_Create()
MI_Temp->Option(__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; Pos<MI->StreamIDs_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_Pos<Sequences.size(); Sequences_Pos++)
+ if (Sequences[Sequences_Pos]->MI)
+ 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_Current<Sequences.size(); Sequences_Current++)
+ if (Sequences[Sequences_Current]->MI==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_Current<Sequences.size(); Sequences_Current++)
{
- if (Reference->MI)
+ if (Sequences[Sequences_Current]->MI)
{
Ztring Result;
- if (Reference->CompleteDuration.size()<=1 || DurationM<Reference->CompleteDuration[1].Demux_Offset_DTS)
+ if (Sequences[Sequences_Current]->Resources.size()<=1 || DurationM<Sequences[Sequences_Current]->Resources[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_Temp<Reference->CompleteDuration.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_Temp<Sequences[Sequences_Current]->Resources.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_Current<Sequences.size(); Sequences_Current++)
{
- if (Reference->MI)
+ 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_Current<Sequences.size(); Sequences_Current++)
{
- if (Reference->MI)
+ if (Sequences[Sequences_Current]->MI)
{
Ztring Result;
- if (Reference->CompleteDuration.empty() || Duration<Reference->CompleteDuration[1].Demux_Offset_DTS)
+ if (Sequences[Sequences_Current]->Resources.empty() || Duration<Sequences[Sequences_Current]->Resources[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_Temp<Reference->CompleteDuration.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_Temp<Sequences[Sequences_Current]->Resources.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_Current<Sequences.size(); Sequences_Current++)
{
- if (Reference->MI)
+ if (Sequences[Sequences_Current]->MI)
{
Ztring Result;
- if (Reference->CompleteDuration.size()<2 || Value<Reference->CompleteDuration[1].Demux_Offset_DTS)
+ if (Sequences[Sequences_Current]->Resources.size()<2 || Value<Sequences[Sequences_Current]->Resources[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_Temp<Reference->CompleteDuration.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_Temp<Sequences[Sequences_Current]->Resources.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_Current<Sequences.size(); Sequences_Current++)
{
- if (Reference->MI)
+ if (Sequences[Sequences_Current]->MI)
{
Ztring Result;
- if (Reference->CompleteDuration.size()<2 || Value<Reference->CompleteDuration[1].Demux_Offset_Frame)
+ if (Sequences[Sequences_Current]->Resources.size()<2 || Value<Sequences[Sequences_Current]->Resources[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_Temp<Reference->CompleteDuration.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_Temp<Sequences[Sequences_Current]->Resources.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_Pos<Sequences.size(); Sequences_Pos++)
{
- if (Reference->FileSize!=(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; Pos<Reference->CompleteDuration.size(); Pos++)
- MI->Config->File_Size+=File::Size_Get(Reference->CompleteDuration[Pos].FileName);
+ if (!Sequences[Sequences_Pos]->Resources.empty())
+ for (size_t Pos=1; Pos<Sequences[Sequences_Pos]->Resources.size(); Pos++)
+ for (size_t Resource_FileNames_Pos=0; Resource_FileNames_Pos<Sequences[Sequences_Pos]->Resources[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; Pos<Reference->FileNames.size(); Pos++)
- MI->Config->File_Size+=File::Size_Get(Reference->FileNames[Pos]);
+ if (Sequences[Sequences_Pos]->Resources.empty())
+ for (size_t Pos=0; Pos<Sequences[Sequences_Pos]->FileNames.size(); Pos++)
+ MI->Config->File_Size+=File::Size_Get(Sequences[Sequences_Pos]->FileNames[Pos]);
else
- for (size_t Pos=0; Pos<Reference->CompleteDuration.size(); Pos++)
- MI->Config->File_Size+=File::Size_Get(Reference->CompleteDuration[Pos].FileName);
+ for (size_t Pos=0; Pos<Sequences[Sequences_Pos]->Resources.size(); Pos++)
+ for (size_t Resource_FileNames_Pos=0; Resource_FileNames_Pos<Sequences[Sequences_Pos]->Resources[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_Size<Buffer_Read_Size_Temp)
Buffer_Read_Size<<=1;
- Reference_Temp->MI->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_Pos<Reference->MI->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_Pos<Sequences[Sequences_Current]->MI->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 e7e771af7..ce11f95bb 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 <vector>
//---------------------------------------------------------------------------
@@ -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<std::string, Ztring> 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> 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<reference> 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 000000000..d798faaa4
--- /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 000000000..a49fa828a
--- /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<FileNames_Size; Pos++)
+ if (FileNames[Pos]==OldFileName)
+ FileNames[Pos]=NewFileName;
+}
+
+} //NameSpace
+
+#endif //MEDIAINFO_REFERENCES_YES
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.h b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.h
new file mode 100644
index 000000000..c7674a928
--- /dev/null
+++ b/src/thirdparty/MediaInfo/MediaInfo/Multiple/File__ReferenceFilesHelper_Resource.h
@@ -0,0 +1,61 @@
+/* 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_ResourceH
+#define File__ReferenceFilesHelper_ResourceH
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/File__Analyze.h"
+#include "MediaInfo/MediaInfo_Internal.h"
+#include <vector>
+#if MEDIAINFO_EVENTS
+ #include <set>
+#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<resource*> 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 000000000..cd4bf45b3
--- /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_Pos<Resources_Size; ++Resources_Pos)
+ {
+ resource* Resource=Resources[Resources_Pos];
+
+ Resource->UpdateFileName(OldFileName, NewFileName);
+
+ for (size_t Pos=0; Pos<Resource->FileNames.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 000000000..d6a4e4bbb
--- /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<resource*> 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<std::string, Ztring> 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<sequence*> 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 000000000..1fe322be5
--- /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 a17a9dc8b..efec90876 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; Pos<MI->Config.File_Sizes.size(); Pos++)
+ for (Pos=0; Pos<MI->Config.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 (GoTo<MI->Config.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+1<MI->Config.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 6eead5765..a654d6e99 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 40d0e1d7a..f6cefdc9f 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
@@ -289,6 +306,36 @@
#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)
#define 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 3e10e5054..0af6ccbf7 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 3f598d44b..677bb2403 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 b355d51fa..6307fdc89 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 6412809b8..e4c85a9c0 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 ad5548c3c..81b229415 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_y<Window->Minimal.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_Y<Window->row_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 d69abca6a..9df379a60 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+2<Buffer_Size)
{
- while (Buffer_Offset+3<=Buffer_Size)
+ while (Buffer_Offset+2<Buffer_Size)
{
if (Buffer[Buffer_Offset ]==0x51
&& Buffer[Buffer_Offset+1]==0x15)
@@ -99,16 +99,19 @@ bool File_Sdp::Synchronize()
Buffer_Offset++;
}
- if (Buffer_Offset+3<=Buffer_Size) //Testing if size is coherant
+ if (IsSub)
+ break; // Found one file with unknown bytes at the end of the stream, so removing this integrity test for the moment
+
+ if (Buffer_Offset+2<Buffer_Size) //Testing if size is coherant
{
- if (Buffer_Offset+3+Buffer[Buffer_Offset+2]==Buffer_Size)
+ if (Buffer_Offset+Buffer[Buffer_Offset+2]==Buffer_Size)
break;
- if (Buffer_Offset+3+Buffer[Buffer_Offset+2]+3>Buffer_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_Offset<Element_Size)
+ Skip_XX(Element_Size-Element_Offset, "Unknown, out of specs");
Element_End0();
}
diff --git a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.cpp b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.cpp
index b689680ce..26592d195 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Text/File_Ttml.cpp
@@ -170,7 +170,12 @@ void File_Ttml::Read_Buffer_Continue()
MuxingMode=11; //MPEG-4
if (StreamIDs_Size>2 && 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 60d16cba6..d4e9f5606 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 01895cdf3..32f932371 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<Dump_SPS.size(); Pos++)
+ Fill(Stream_Video, 0, "Dump_seq_parameter_set", Dump_SPS[Pos].c_str());
+ for (size_t Pos = 0; Pos<Dump_PPS.size(); Pos++)
+ Fill(Stream_Video, 0, "Dump_pic_parameter_set", Dump_PPS[Pos].c_str());
+ #endif //MEDIAINFO_ADVANCED2
}
//---------------------------------------------------------------------------
@@ -482,7 +492,7 @@ void File_Avc::Streams_Fill(std::vector<seq_parameter_set_struct*>::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<seq_parameter_set_struct*>::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<seq_parameter_set_struct*> &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<seq_parameter_set_struct*>::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<seq_parameter_set_struct*>::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<seq_parameter_set_struct*> &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<seq_parameter_set_struct*> &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<num_ref_frames_in_pic_order_cnt_cycle; Pos++)
Skip_SE( "offset_for_ref_frame");
@@ -3286,7 +3387,7 @@ bool File_Avc::seq_parameter_set_data(std::vector<seq_parameter_set_struct*> &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<seq_parameter_set_struct*> &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<seq_parameter_set_struct*>::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<seq_parameter_set_struct*> &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 2bb03f90e..0b1dca944 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<seq_parameter_set_struct*> &Data, int32u &Data_id);
+ seq_parameter_set_struct* seq_parameter_set_data(int32u &Data_id);
+ void seq_parameter_set_data_Add(vector<seq_parameter_set_struct*> &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<std::string> Dump_SPS;
+ std::vector<std::string> 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 0f276c03b..c52c7eb5b 100644
--- a/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo/Video/File_Hevc.cpp
@@ -64,6 +64,16 @@ const int8u Hevc_SubHeightC[]=
};
//---------------------------------------------------------------------------
+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)
{
switch (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<seq_parameter_set_struct*>::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::vector<bool>sub_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 f58a3d94a..e47d29caf 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 785e9d15f..67c1f7afc 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 a901dee25..46b5cc35e 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 ac2c855bf..c9b54248a 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 69a97c335..1aa639b63 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 6be29f1a7..fdf0c41c8 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_Offset<Buffer_Size && Buffer[Buffer_Offset]!=0x00)
@@ -276,7 +395,7 @@ bool File_Vc3::Synched_Test()
|| 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)
{
Synched=false;
return true;
@@ -298,7 +417,16 @@ bool File_Vc3::Demux_UnpacketizeContainer_Test()
return false;
int32u CompressionID=BigEndian2int32u(Buffer+Buffer_Offset+0x28);
- int32u Size=Vc3_CompressedFrameSize(CompressionID);
+ size_t Size=Vc3_CompressedFrameSize(CompressionID);
+ if (!Size)
+ {
+ if (!IsSub)
+ {
+ Reject();
+ return false;
+ }
+ Size=Buffer_Size; //Hoping that the packet is complete. TODO: add a flag in the container parser saying if the packet is complete
+ }
Demux_Offset=Buffer_Offset+Size;
if (Demux_Offset>Buffer_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 336e59279..9627ca6e4 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 b0b224343..a824e93c3 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
@@ -69,28 +69,28 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>.;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <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;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <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)</PreprocessorDefinitions>
<PrecompiledHeaderFile>MediaInfo/PreComp.h</PrecompiledHeaderFile>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>.;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <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;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <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)</PreprocessorDefinitions>
<PrecompiledHeaderFile>MediaInfo/PreComp.h</PrecompiledHeaderFile>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>.;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <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;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <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)</PreprocessorDefinitions>
<PrecompiledHeaderFile>MediaInfo/PreComp.h</PrecompiledHeaderFile>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>.;ThirdParty\base64;ThirdParty\tinyxml2;..\ZenLib;..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <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;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <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)</PreprocessorDefinitions>
<PrecompiledHeaderFile>MediaInfo/PreComp.h</PrecompiledHeaderFile>
</ClCompile>
</ItemDefinitionGroup>
@@ -138,6 +138,7 @@
<ClInclude Include="MediaInfo\Audio\File_Amv.h" />
<ClInclude Include="MediaInfo\Audio\File_Ape.h" />
<ClInclude Include="MediaInfo\Audio\File_Au.h" />
+ <ClInclude Include="MediaInfo\Audio\File_Caf.h" />
<ClInclude Include="MediaInfo\Audio\File_Celt.h" />
<ClInclude Include="MediaInfo\Audio\File_ChannelGrouping.h" />
<ClInclude Include="MediaInfo\Audio\File_DolbyE.h" />
@@ -184,6 +185,7 @@
<ClInclude Include="MediaInfo\File__MultipleParsing.h" />
<ClInclude Include="MediaInfo\Image\File_ArriRaw.h" />
<ClInclude Include="MediaInfo\Image\File_Bmp.h" />
+ <ClInclude Include="MediaInfo\Image\File_Bpg.h" />
<ClInclude Include="MediaInfo\Image\File_Dds.h" />
<ClInclude Include="MediaInfo\Image\File_Dpx.h" />
<ClInclude Include="MediaInfo\Image\File_Exr.h" />
@@ -208,6 +210,10 @@
<ClInclude Include="MediaInfo\MediaInfo_Internal.h" />
<ClInclude Include="MediaInfo\MediaInfo_Internal_Const.h" />
<ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper.h" />
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Common.h" />
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Resource.h" />
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence.h" />
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence_Common.h" />
<ClInclude Include="MediaInfo\Multiple\File_Ancillary.h" />
<ClInclude Include="MediaInfo\Multiple\File_Bdmv.h" />
<ClInclude Include="MediaInfo\Multiple\File_Cdxa.h" />
@@ -318,6 +324,7 @@
<ClCompile Include="MediaInfo\Audio\File_Amv.cpp" />
<ClCompile Include="MediaInfo\Audio\File_Ape.cpp" />
<ClCompile Include="MediaInfo\Audio\File_Au.cpp" />
+ <ClCompile Include="MediaInfo\Audio\File_Caf.cpp" />
<ClCompile Include="MediaInfo\Audio\File_Celt.cpp" />
<ClCompile Include="MediaInfo\Audio\File_ChannelGrouping.cpp" />
<ClCompile Include="MediaInfo\Audio\File_DolbyE.cpp" />
@@ -368,6 +375,7 @@
<ClCompile Include="MediaInfo\File__MultipleParsing.cpp" />
<ClCompile Include="MediaInfo\Image\File_ArriRaw.cpp" />
<ClCompile Include="MediaInfo\Image\File_Bmp.cpp" />
+ <ClCompile Include="MediaInfo\Image\File_Bpg.cpp" />
<ClCompile Include="MediaInfo\Image\File_Dds.cpp" />
<ClCompile Include="MediaInfo\Image\File_Dpx.cpp" />
<ClCompile Include="MediaInfo\Image\File_Exr.cpp" />
@@ -399,6 +407,8 @@
<ClCompile Include="MediaInfo\Multiple\File_Pmp.cpp" />
<ClCompile Include="MediaInfo\Multiple\File_Ptx.cpp" />
<ClCompile Include="MediaInfo\Multiple\File__ReferenceFilesHelper.cpp" />
+ <ClCompile Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Resource.cpp" />
+ <ClCompile Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence.cpp" />
<ClCompile Include="MediaInfo\PreComp.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters
index 7547f8c95..2e1a09366 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters
@@ -197,6 +197,9 @@
<ClInclude Include="MediaInfo\Image\File_Bmp.h">
<Filter>Header Files\Image</Filter>
</ClInclude>
+ <ClInclude Include="MediaInfo\Image\File_Bpg.h">
+ <Filter>Header Files\Image</Filter>
+ </ClInclude>
<ClInclude Include="MediaInfo\Image\File_Dds.h">
<Filter>Header Files\Image</Filter>
</ClInclude>
@@ -233,6 +236,18 @@
<ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper.h">
<Filter>Header Files\Multiple</Filter>
</ClInclude>
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Common.h">
+ <Filter>Header Files\Multiple</Filter>
+ </ClInclude>
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Resource.h">
+ <Filter>Header Files\Multiple</Filter>
+ </ClInclude>
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence.h">
+ <Filter>Header Files\Multiple</Filter>
+ </ClInclude>
+ <ClInclude Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence_Common.h">
+ <Filter>Header Files\Multiple</Filter>
+ </ClInclude>
<ClInclude Include="MediaInfo\Multiple\File_Ancillary.h">
<Filter>Header Files\Multiple</Filter>
</ClInclude>
@@ -500,6 +515,9 @@
<ClInclude Include="MediaInfo\Audio\File_Au.h">
<Filter>Header Files\Audio</Filter>
</ClInclude>
+ <ClInclude Include="MediaInfo\Audio\File_Caf.h">
+ <Filter>Header Files\Audio</Filter>
+ </ClInclude>
<ClInclude Include="MediaInfo\Audio\File_Celt.h">
<Filter>Header Files\Audio</Filter>
</ClInclude>
@@ -775,6 +793,9 @@
<ClCompile Include="MediaInfo\Image\File_Bmp.cpp">
<Filter>Source Files\Image</Filter>
</ClCompile>
+ <ClCompile Include="MediaInfo\Image\File_Bpg.cpp">
+ <Filter>Source Files\Image</Filter>
+ </ClCompile>
<ClCompile Include="MediaInfo\Image\File_Dds.cpp">
<Filter>Source Files\Image</Filter>
</ClCompile>
@@ -811,6 +832,12 @@
<ClCompile Include="MediaInfo\Multiple\File__ReferenceFilesHelper.cpp">
<Filter>Source Files\Multiple</Filter>
</ClCompile>
+ <ClCompile Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Resource.cpp">
+ <Filter>Source Files\Multiple</Filter>
+ </ClCompile>
+ <ClCompile Include="MediaInfo\Multiple\File__ReferenceFilesHelper_Sequence.cpp">
+ <Filter>Source Files\Multiple</Filter>
+ </ClCompile>
<ClCompile Include="MediaInfo\Multiple\File_Ancillary.cpp">
<Filter>Source Files\Multiple</Filter>
</ClCompile>
@@ -1111,6 +1138,9 @@
<ClCompile Include="MediaInfo\Audio\File_Au.cpp">
<Filter>Source Files\Audio</Filter>
</ClCompile>
+ <ClCompile Include="MediaInfo\Audio\File_Caf.cpp">
+ <Filter>Source Files\Audio</Filter>
+ </ClCompile>
<ClCompile Include="MediaInfo\Audio\File_Celt.cpp">
<Filter>Source Files\Audio</Filter>
</ClCompile>
diff --git a/src/thirdparty/SoundTouch/include/STTypes.h b/src/thirdparty/SoundTouch/include/STTypes.h
index a961eb2e7..238ebbc1a 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 <stdexcept>
+ #include <string>
#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 02fde4937..e4a0b4165 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 be2478388..b77898ac8 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 abdf83038..6a6f46384 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 2baa41e67..ce719629e 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 @@ protected:
// 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 0426b4a67..eadf5314e 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 e110413be..9f9f40aa4 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 ab8dda821..c4ff80ed6 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 a2124696a..962dff056 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 <math.h>
// 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 3eee0543d..b1d67c54e 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 <new>
+#ifdef __cplusplus
+ #include <new> //for size_t
+#else /* __cplusplus */
+ #include <stddef.h> //for size_t
+#endif /* __cplusplus */
#include <cstring> //size_t
namespace ZenLib
{
diff --git a/src/thirdparty/ZenLib/ZenLib/Dir.cpp b/src/thirdparty/ZenLib/ZenLib/Dir.cpp
index 3eac23825..dca9dc7c8 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 <stdio.h>
+ #include <windows.h>
+ 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;
@@ -263,6 +372,161 @@ bool Dir::Create(const Ztring &File_Name)
}
//***************************************************************************
+// 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 76f3d89f4..d01d37c3c 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 aea864d57..eaa67b5cc 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 <stdio.h>
+ #include <windows.h>
+ 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 63bf199e9..cebad594a 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 bc65f7027..e272ead3a 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 e387c87b5..c179838d4 100644
--- a/src/thirdparty/ZenLib/ZenLib/int128s.h
+++ b/src/thirdparty/ZenLib/ZenLib/int128s.h
@@ -28,7 +28,11 @@
#include <exception>
#include <cstdlib>
#include <cstdio>
-#include <new>
+#ifdef __cplusplus
+ #include <new> //for size_t
+#else /* __cplusplus */
+ #include <stddef.h> //for size_t
+#endif /* __cplusplus */
#include "ZenLib/Conf.h"
namespace ZenLib
diff --git a/src/thirdparty/lcms2/library b/src/thirdparty/lcms2/library
-Subproject 81746818cd6df89b7a62dbcfc4861d12dbc9c4f
+Subproject 6e33faabae068b21a1c1d18a1297917b6bb1a11
diff --git a/src/thirdparty/sizecbar/scbarg.cpp b/src/thirdparty/sizecbar/scbarg.cpp
index 3cec57a02..4e2677378 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 e6d794b20..e6904e290 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 9e9e72424..7ca0b7461 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 1d8444bfb..522709608 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<byte> *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 e4c3f87d5..047289b7a 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.HeadSize<SIZEOF_SHORTBLOCKHEAD)
{
BrokenHeaderMsg();
- return(0);
+ return 0;
}
// For simpler further processing we map header types common
@@ -562,7 +562,7 @@ size_t Archive::ReadHeader50()
if (Decrypt)
{
#if defined(SHELL_EXT) || defined(RAR_NOCRYPT)
- return(0);
+ return 0;
#else
RequestArcPassword();
@@ -570,7 +570,7 @@ size_t Archive::ReadHeader50()
if (Read(HeadersInitV,SIZE_INITV)!=SIZE_INITV)
{
UnexpEndArcMsg();
- return(0);
+ return 0;
}
byte PswCheck[SIZE_PSWCHECK];
@@ -886,7 +886,8 @@ void Archive::RequestArcPassword()
ErrHandler.Exit(RARX_USERBREAK);
}
#else
- if (!uiGetPassword(UIPASSWORD_ARCHIVE,FileName,&Cmd->Password))
+ 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 b56410ae9..3f84cc373 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 3ed4ef1d8..d2cdbb94d 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 1481d7632..fa7ab25cb 100644
--- a/src/thirdparty/unrar/dll.rc
+++ b/src/thirdparty/unrar/dll.rc
@@ -2,8 +2,8 @@
#include <commctrl.h>
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 141967f2a..01827eba0 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 224564da8..b974bf489 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 cab669fe9..a24eb9405 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 8b20b3fa9..6717eee90 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 8fba34adb..185474c25 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 93aac89f3..0d6534ff7 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 a87384f24..5fa946a4d 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<char> 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<char> 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<wchar> WideStr;
diff --git a/src/thirdparty/unrar/loclang.hpp b/src/thirdparty/unrar/loclang.hpp
index fb560713a..52bcafe92 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 ba9c0ca82..a6ec227f0 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 84f8fc92a..1b0813f6c 100644
--- a/src/thirdparty/unrar/os.hpp
+++ b/src/thirdparty/unrar/os.hpp
@@ -79,6 +79,7 @@
#include <time.h>
#include <signal.h>
+
#define SAVE_LINKS
#define ENABLE_ACCESS
@@ -154,6 +155,7 @@
#include <utime.h>
#include <locale.h>
+
#ifdef S_IFLNK
#define SAVE_LINKS
#endif
diff --git a/src/thirdparty/unrar/pathfn.cpp b/src/thirdparty/unrar/pathfn.cpp
index bfd3b588e..b6e220eee 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 fabb29340..ae1f8c2e8 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 f83482fb2..e234da834 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 3fa535f4c..ba9f49686 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(&lt);
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 7238c1936..5be551a42 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 b9129c4f7..ba7550c6b 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 b51ff6282..c6d2f874a 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 d1188ee85..7821a3e6b 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<sizeof(BitLength)/sizeof(BitLength[0]))
+ while (ZeroCount-- > 0 && I<ASIZE(BitLength))
BitLength[I++]=0;
I--;
}
@@ -587,7 +587,7 @@ bool Unpack::ReadTables(BitInput &Inp,UnpackBlockHeader &Header,UnpackBlockTable
{
if (!Inp.ExternalBuffer && Inp.InAddr>ReadTop-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 6015379cc..9925cf2b8 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 && DataSize<TooSmallToProcess)
+ continue;
+
bool BufferProcessed=false;
while (BlockStart<DataSize && !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;
-
uint BlockNumber=0,BlockNumberMT=0;
while (BlockNumber<MaxUserThreads*UNP_BLOCKS_PER_THREAD)
{
diff --git a/src/thirdparty/unrar/version.hpp b/src/thirdparty/unrar/version.hpp
index 3a36f22b3..8518b5516 100644
--- a/src/thirdparty/unrar/version.hpp
+++ b/src/thirdparty/unrar/version.hpp
@@ -1,6 +1,6 @@
#define RARVER_MAJOR 5
-#define RARVER_MINOR 20
+#define RARVER_MINOR 21
#define RARVER_BETA 0
-#define RARVER_DAY 2
-#define RARVER_MONTH 12
-#define RARVER_YEAR 2014
+#define RARVER_DAY 15
+#define RARVER_MONTH 2
+#define RARVER_YEAR 2015
diff --git a/src/thirdparty/unrar/win32lnk.cpp b/src/thirdparty/unrar/win32lnk.cpp
index f911be98e..b291056f0 100644
--- a/src/thirdparty/unrar/win32lnk.cpp
+++ b/src/thirdparty/unrar/win32lnk.cpp
@@ -40,23 +40,6 @@ bool CreateReparsePoint(CommandData *Cmd,const wchar *Name,FileHeader *hd)
PrivSet=true;
}
- 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);
- }
-
const DWORD BufSize=sizeof(REPARSE_DATA_BUFFER)+2*NM+1024;
Array<byte> 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 807716792..b2ced440e 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 a837a95f3..9a6651385 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 <http://www.gnu.org/licenses/>.
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 09a8eb291..ff902b152 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.