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:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-09-15 19:46:24 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-09-15 19:46:24 +0400
commit88174d2d1720fc8341ee21f0967e7aa726a2c3e8 (patch)
tree970b020eac57e2f6b7ec9c1bba66bbedc74b5d4c
parent08fabf0cb807f2cb1d5b2fc9dca3c180827e07c3 (diff)
merge changes from trunk r2365-r2561
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/branches/legacy@2562 10f7b99b-c216-0410-bff0-8a66a9350fd8
-rw-r--r--distrib/Languages/Hungarian.isl339
-rw-r--r--distrib/custom_messages.iss267
-rw-r--r--distrib/innosetup_cpu_detection.iss115
-rw-r--r--distrib/mpc-hc_setup.iss55
-rw-r--r--include/MediaInfoDLL.h64
-rw-r--r--include/Version.h5
-rw-r--r--include/moreuuids.h23
-rw-r--r--src/DSUtil/DSMPropertyBag.cpp50
-rw-r--r--src/DSUtil/DSMPropertyBag.h47
-rw-r--r--src/DSUtil/DSUtil.cpp367
-rw-r--r--src/DSUtil/DSUtil.h38
-rw-r--r--src/DSUtil/DSUtil.vcproj6
-rw-r--r--src/DSUtil/DSUtil.vcxproj18
-rw-r--r--src/DSUtil/FontInstaller.cpp6
-rw-r--r--src/DSUtil/FontInstaller.h2
-rw-r--r--src/DSUtil/GolombBuffer.cpp4
-rw-r--r--src/DSUtil/GolombBuffer.h36
-rw-r--r--src/DSUtil/H264Nalu.cpp4
-rw-r--r--src/DSUtil/H264Nalu.h43
-rw-r--r--src/DSUtil/HdmvClipInfo.cpp114
-rw-r--r--src/DSUtil/HdmvClipInfo.h77
-rw-r--r--src/DSUtil/MediaTypeEx.cpp14
-rw-r--r--src/DSUtil/MediaTypeEx.h4
-rw-r--r--src/DSUtil/MediaTypes.cpp134
-rw-r--r--src/DSUtil/MediaTypes.h14
-rw-r--r--src/DSUtil/Mpeg2Def.h42
-rw-r--r--src/DSUtil/NullRenderers.cpp114
-rw-r--r--src/DSUtil/NullRenderers.h41
-rw-r--r--src/DSUtil/SharedInclude.h18
-rw-r--r--src/DSUtil/deinterlace.cpp12
-rw-r--r--src/DSUtil/stdafx.cpp19
-rw-r--r--src/DSUtil/stdafx.h26
-rw-r--r--src/DSUtil/text.cpp37
-rw-r--r--src/DSUtil/text.h4
-rw-r--r--src/DSUtil/vd.cpp62
-rw-r--r--src/DSUtil/vd.h8
-rw-r--r--src/DSUtil/vd_asm.cpp452
-rw-r--r--src/DSUtil/vd_asm.h2
-rw-r--r--src/DeCSS/DeCSS.vcproj6
-rw-r--r--src/DeCSS/DeCSS.vcxproj18
-rw-r--r--src/DeCSS/DeCSSInputPin.cpp6
-rw-r--r--src/DeCSS/DeCSSInputPin.h6
-rw-r--r--src/DeCSS/stdafx.h11
-rw-r--r--src/SubPic/CoordGeom.cpp6
-rw-r--r--src/SubPic/CoordGeom.h6
-rw-r--r--src/SubPic/DX7SubPic.cpp6
-rw-r--r--src/SubPic/DX7SubPic.h6
-rw-r--r--src/SubPic/DX9SubPic.cpp6
-rw-r--r--src/SubPic/DX9SubPic.h6
-rw-r--r--src/SubPic/ISubPic.h6
-rw-r--r--src/SubPic/ISubRender.h6
-rw-r--r--src/SubPic/MemSubPic.cpp8
-rw-r--r--src/SubPic/MemSubPic.h6
-rw-r--r--src/SubPic/SubPic.vcproj6
-rw-r--r--src/SubPic/SubPic.vcxproj18
-rw-r--r--src/SubPic/SubPicAllocatorPresenterImpl.cpp6
-rw-r--r--src/SubPic/SubPicAllocatorPresenterImpl.h6
-rw-r--r--src/SubPic/SubPicImpl.cpp6
-rw-r--r--src/SubPic/SubPicImpl.h6
-rw-r--r--src/SubPic/SubPicProviderImpl.cpp6
-rw-r--r--src/SubPic/SubPicProviderImpl.h6
-rw-r--r--src/SubPic/SubPicQueueImpl.cpp6
-rw-r--r--src/SubPic/SubPicQueueImpl.h6
-rw-r--r--src/SubPic/stdafx.cpp13
-rw-r--r--src/SubPic/stdafx.h17
-rw-r--r--src/Subtitles/CCDecoder.cpp6
-rw-r--r--src/Subtitles/CCDecoder.h6
-rw-r--r--src/Subtitles/GFN.cpp6
-rw-r--r--src/Subtitles/GFN.h6
-rw-r--r--src/Subtitles/RTS.cpp6
-rw-r--r--src/Subtitles/RTS.h6
-rw-r--r--src/Subtitles/Rasterizer.cpp8
-rw-r--r--src/Subtitles/Rasterizer.h6
-rw-r--r--src/Subtitles/SSF.cpp6
-rw-r--r--src/Subtitles/SSF.h6
-rw-r--r--src/Subtitles/STS.cpp6
-rw-r--r--src/Subtitles/STS.h6
-rw-r--r--src/Subtitles/SubtitleInputPin.cpp6
-rw-r--r--src/Subtitles/SubtitleInputPin.h6
-rw-r--r--src/Subtitles/Subtitles.vcproj6
-rw-r--r--src/Subtitles/Subtitles.vcxproj18
-rw-r--r--src/Subtitles/TextFile.cpp6
-rw-r--r--src/Subtitles/TextFile.h6
-rw-r--r--src/Subtitles/USFSubtitles.cpp6
-rw-r--r--src/Subtitles/USFSubtitles.h6
-rw-r--r--src/Subtitles/VobSubFile.cpp6
-rw-r--r--src/Subtitles/VobSubFile.h6
-rw-r--r--src/Subtitles/VobSubFileRipper.cpp8
-rw-r--r--src/Subtitles/VobSubFileRipper.h8
-rw-r--r--src/Subtitles/VobSubImage.cpp6
-rw-r--r--src/Subtitles/VobSubImage.h6
-rw-r--r--src/Subtitles/libssf/Arabic.cpp6
-rw-r--r--src/Subtitles/libssf/Arabic.h6
-rw-r--r--src/Subtitles/libssf/Array.cpp6
-rw-r--r--src/Subtitles/libssf/Array.h6
-rw-r--r--src/Subtitles/libssf/Exception.cpp6
-rw-r--r--src/Subtitles/libssf/Exception.h6
-rw-r--r--src/Subtitles/libssf/File.cpp6
-rw-r--r--src/Subtitles/libssf/File.h6
-rw-r--r--src/Subtitles/libssf/FontWrapper.cpp6
-rw-r--r--src/Subtitles/libssf/FontWrapper.h6
-rw-r--r--src/Subtitles/libssf/Glyph.cpp6
-rw-r--r--src/Subtitles/libssf/Glyph.h6
-rw-r--r--src/Subtitles/libssf/GlyphPath.cpp6
-rw-r--r--src/Subtitles/libssf/GlyphPath.h6
-rw-r--r--src/Subtitles/libssf/Node.cpp6
-rw-r--r--src/Subtitles/libssf/Node.h6
-rw-r--r--src/Subtitles/libssf/NodeFactory.cpp6
-rw-r--r--src/Subtitles/libssf/NodeFactory.h6
-rw-r--r--src/Subtitles/libssf/Rasterizer.cpp6
-rw-r--r--src/Subtitles/libssf/Rasterizer.h6
-rw-r--r--src/Subtitles/libssf/Renderer.cpp6
-rw-r--r--src/Subtitles/libssf/Renderer.h6
-rw-r--r--src/Subtitles/libssf/Split.cpp6
-rw-r--r--src/Subtitles/libssf/Split.h6
-rw-r--r--src/Subtitles/libssf/Stream.cpp6
-rw-r--r--src/Subtitles/libssf/Stream.h6
-rw-r--r--src/Subtitles/libssf/StringMap.cpp6
-rw-r--r--src/Subtitles/libssf/StringMap.h6
-rw-r--r--src/Subtitles/libssf/Subtitle.cpp6
-rw-r--r--src/Subtitles/libssf/Subtitle.h6
-rw-r--r--src/Subtitles/libssf/SubtitleFile.cpp6
-rw-r--r--src/Subtitles/libssf/SubtitleFile.h6
-rw-r--r--src/Subtitles/libssf/libssf.vcproj6
-rw-r--r--src/Subtitles/libssf/libssf.vcxproj4
-rw-r--r--src/Subtitles/libssf/stdafx.cpp13
-rw-r--r--src/Subtitles/libssf/stdafx.h28
-rw-r--r--src/Subtitles/stdafx.cpp13
-rw-r--r--src/Subtitles/stdafx.h17
-rw-r--r--src/apps/MPCTestAPI/MPCTestAPI.vcxproj4
-rw-r--r--src/apps/VSRip/VSRip.sln23
-rw-r--r--src/apps/VSRip/VSRip.vcproj20
-rw-r--r--src/apps/VSRip/VSRip.vcxproj16
-rw-r--r--src/apps/VSRip/VSRipPGCDlg.cpp4
-rw-r--r--src/apps/VSRip/VSRip_2010.sln19
-rw-r--r--src/apps/asf2mkv/asf2mkv.cpp96
-rw-r--r--src/apps/asf2mkv/asf2mkv.h9
-rw-r--r--src/apps/asf2mkv/asf2mkv.rc91
-rw-r--r--src/apps/asf2mkv/asf2mkv.sln77
-rw-r--r--src/apps/asf2mkv/asf2mkv.vcproj256
-rw-r--r--src/apps/asf2mkv/asf2mkv.vcxproj166
-rw-r--r--src/apps/asf2mkv/asf2mkv.vcxproj.filters60
-rw-r--r--src/apps/asf2mkv/asf2mkvDlg.cpp844
-rw-r--r--src/apps/asf2mkv/asf2mkvDlg.h102
-rw-r--r--src/apps/asf2mkv/asf2mkv_2010.sln67
-rw-r--r--src/apps/asf2mkv/res/asf2mkv.manifest19
-rw-r--r--src/apps/asf2mkv/stdafx.cpp6
-rw-r--r--src/apps/asf2mkv/stdafx.h24
-rw-r--r--src/apps/mpcinfo/mpcinfo.vcproj24
-rw-r--r--src/apps/mpcinfo/mpcinfo.vcxproj22
-rw-r--r--src/apps/mplayerc/AppSettings.cpp1676
-rw-r--r--src/apps/mplayerc/AppSettings.h621
-rw-r--r--src/apps/mplayerc/Authors.txt8
-rw-r--r--src/apps/mplayerc/Changelog.txt594
-rw-r--r--src/apps/mplayerc/ChildView.cpp17
-rw-r--r--src/apps/mplayerc/DVBChannel.cpp10
-rw-r--r--src/apps/mplayerc/DVBChannel.h12
-rw-r--r--src/apps/mplayerc/EditListEditor.cpp2
-rw-r--r--src/apps/mplayerc/FGManager.cpp29
-rw-r--r--src/apps/mplayerc/FGManagerBDA.cpp200
-rw-r--r--src/apps/mplayerc/FGManagerBDA.h31
-rw-r--r--src/apps/mplayerc/MainFrm.cpp335
-rw-r--r--src/apps/mplayerc/MainFrm.h12
-rw-r--r--src/apps/mplayerc/Mpeg2SectionData.cpp2
-rw-r--r--src/apps/mplayerc/OpenDirHelper.cpp143
-rw-r--r--src/apps/mplayerc/OpenDirHelper.h39
-rw-r--r--src/apps/mplayerc/PPageFileInfoClip.cpp20
-rw-r--r--src/apps/mplayerc/PPageFileInfoDetails.cpp20
-rw-r--r--src/apps/mplayerc/PPageFileInfoSheet.cpp2
-rw-r--r--src/apps/mplayerc/PPageFileMediaInfo.cpp23
-rw-r--r--src/apps/mplayerc/PPageFileMediaInfo.h5
-rw-r--r--src/apps/mplayerc/PPageFormats.cpp21
-rw-r--r--src/apps/mplayerc/PPageInternalFilters.cpp2
-rw-r--r--src/apps/mplayerc/PPageLogo.cpp40
-rw-r--r--src/apps/mplayerc/PPageLogo.h1
-rw-r--r--src/apps/mplayerc/PPageOutput.cpp3
-rw-r--r--src/apps/mplayerc/PPageSheet.cpp1
-rw-r--r--src/apps/mplayerc/PPageSheet.h2
-rw-r--r--src/apps/mplayerc/PPageSubMisc.cpp83
-rw-r--r--src/apps/mplayerc/PPageSubMisc.h50
-rw-r--r--src/apps/mplayerc/PPageTweaks.cpp5
-rw-r--r--src/apps/mplayerc/PlayerNavigationBar.cpp17
-rw-r--r--src/apps/mplayerc/PlayerNavigationBar.h1
-rw-r--r--src/apps/mplayerc/PlayerNavigationDialog.cpp31
-rw-r--r--src/apps/mplayerc/PlayerNavigationDialog.h5
-rw-r--r--src/apps/mplayerc/PlayerShaderEditorBar.cpp2
-rw-r--r--src/apps/mplayerc/Playlist.cpp12
-rw-r--r--src/apps/mplayerc/SettingsDefines.h3
-rw-r--r--src/apps/mplayerc/StaticLink.h2
-rw-r--r--src/apps/mplayerc/TextPassThruFilter.cpp8
-rw-r--r--src/apps/mplayerc/TunerScanDlg.cpp27
-rw-r--r--src/apps/mplayerc/WebServer.cpp4
-rw-r--r--src/apps/mplayerc/internal_filter_config.h3
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/aac.ico (renamed from src/apps/mplayerc/Icons/aac.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/aiff.ico (renamed from src/apps/mplayerc/Icons/aiff.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/alac.ico (renamed from src/apps/mplayerc/Icons/alac.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/au.ico (renamed from src/apps/mplayerc/Icons/au.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/avi.ico (renamed from src/apps/mplayerc/Icons/avi.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/bik.ico (renamed from src/apps/mplayerc/Icons/bik.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/cda.ico (renamed from src/apps/mplayerc/Icons/cda.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/d2v.ico (renamed from src/apps/mplayerc/Icons/d2v.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/drc.ico (renamed from src/apps/mplayerc/Icons/drc.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/dsm.ico (renamed from src/apps/mplayerc/Icons/dsm.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/dvda.ico (renamed from src/apps/mplayerc/Icons/dvda.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/dvdf.ico (renamed from src/apps/mplayerc/Icons/dvdf.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/flac.ico (renamed from src/apps/mplayerc/Icons/flac.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/flic.ico (renamed from src/apps/mplayerc/Icons/flic.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/flv.ico (renamed from src/apps/mplayerc/Icons/flv.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/icon_list.txt (renamed from src/apps/mplayerc/Icons/icon_list.txt)0
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/ifv.ico (renamed from src/apps/mplayerc/Icons/ifv.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/jpeg.ico (renamed from src/apps/mplayerc/Icons/jpeg.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mid.ico (renamed from src/apps/mplayerc/Icons/mid.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mka.ico (renamed from src/apps/mplayerc/Icons/mka.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mkv.ico (renamed from src/apps/mplayerc/Icons/mkv.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mov.ico (renamed from src/apps/mplayerc/Icons/mov.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mp3.ico (renamed from src/apps/mplayerc/Icons/mp3.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mp4.ico (renamed from src/apps/mplayerc/Icons/mp4.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mpa.ico (renamed from src/apps/mplayerc/Icons/mpa.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mpc.ico (renamed from src/apps/mplayerc/Icons/mpc.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/mpg.ico (renamed from src/apps/mplayerc/Icons/mpg.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/ogg.ico (renamed from src/apps/mplayerc/Icons/ogg.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/ogm.ico (renamed from src/apps/mplayerc/Icons/ogm.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/other.ico (renamed from src/apps/mplayerc/Icons/other.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/plc.ico (renamed from src/apps/mplayerc/Icons/plc.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/ra.ico (renamed from src/apps/mplayerc/Icons/ra.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/ratdvd.ico (renamed from src/apps/mplayerc/Icons/ratdvd.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/rm.ico (renamed from src/apps/mplayerc/Icons/rm.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/roq.ico (renamed from src/apps/mplayerc/Icons/roq.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/rt.ico (renamed from src/apps/mplayerc/Icons/rt.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/swf.ico (renamed from src/apps/mplayerc/Icons/swf.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/wav.ico (renamed from src/apps/mplayerc/Icons/wav.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/wma.ico (renamed from src/apps/mplayerc/Icons/wma.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/icons/wmv.ico (renamed from src/apps/mplayerc/Icons/wmv.ico)bin412846 -> 412846 bytes
-rw-r--r--src/apps/mplayerc/mpciconlib/mpciconlib.rc76
-rw-r--r--src/apps/mplayerc/mpciconlib/mpciconlib.vcproj319
-rw-r--r--src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj81
-rw-r--r--src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj.filters159
-rw-r--r--src/apps/mplayerc/mpcresources/ConvertRcFilesToPoFiles.vbs329
-rw-r--r--src/apps/mplayerc/mpcresources/CreateMasterPotFile.vbs274
-rw-r--r--src/apps/mplayerc/mpcresources/CreateTranslatedRcFiles.vbs250
-rw-r--r--src/apps/mplayerc/mpcresources/GetTranslationsStatus.vbs566
-rw-r--r--src/apps/mplayerc/mpcresources/StringBlacklist.txt21
-rw-r--r--src/apps/mplayerc/mpcresources/UpdatePoFilesFromPotFile.vbs239
-rw-r--r--src/apps/mplayerc/mpcresources/mpcresources.vcproj82
-rw-r--r--src/apps/mplayerc/mpcresources/mpcresources.vcxproj42
-rw-r--r--src/apps/mplayerc/mpcresources/mpcresources.vcxproj.filters2
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.br.rcbin345550 -> 346848 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.by.rcbin339522 -> 340600 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.ca.rcbin341856 -> 343284 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.cz.rcbin340078 -> 341062 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.de.rcbin344946 -> 345966 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.es.rcbin345678 -> 347262 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.fr.rcbin345726 -> 346980 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.hu.rcbin347224 -> 348416 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.it.rcbin341184 -> 343466 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.ja.rcbin313072 -> 314430 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.kr.rcbin310382 -> 312216 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.nl.rcbin338368 -> 340340 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.pl.rcbin347584 -> 348662 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.ru.rcbin340562 -> 341750 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.sc.rcbin303124 -> 304472 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.sk.rcbin343834 -> 344764 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.sv.rcbin338246 -> 339286 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.tc.rcbin305574 -> 307196 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.tr.rcbin334172 -> 335644 bytes
-rw-r--r--src/apps/mplayerc/mpcresources/mplayerc.ua.rcbin338930 -> 340278 bytes
-rw-r--r--src/apps/mplayerc/mplayerc.cpp1705
-rw-r--r--src/apps/mplayerc/mplayerc.h601
-rw-r--r--src/apps/mplayerc/mplayerc.rcbin332266 -> 333310 bytes
-rw-r--r--src/apps/mplayerc/mplayerc.vcproj38
-rw-r--r--src/apps/mplayerc/mplayerc.vcxproj38
-rw-r--r--src/apps/mplayerc/mplayerc.vcxproj.filters18
-rw-r--r--src/apps/mplayerc/res/mpc-hc.exe.manifest.conf2
-rw-r--r--src/apps/mplayerc/res/mpc-hc.exe.manifest.template2
-rw-r--r--src/apps/mplayerc/res/multi.icobin766 -> 4286 bytes
-rw-r--r--src/apps/mplayerc/res/single.icobin766 -> 4286 bytes
-rw-r--r--src/apps/mplayerc/res/web/logo.pngbin61474 -> 17380 bytes
-rw-r--r--src/apps/mplayerc/resource.hbin117942 -> 117986 bytes
-rw-r--r--src/apps/mplayerc/stdafx.h4
-rw-r--r--src/filters/BaseClasses/BaseClasses.vcproj14
-rw-r--r--src/filters/BaseClasses/BaseClasses.vcxproj16
-rw-r--r--src/filters/Filters.vcproj10
-rw-r--r--src/filters/Filters.vcxproj19
-rw-r--r--src/filters/Filters.vcxproj.filters3
-rw-r--r--src/filters/PinInfoWnd.cpp14
-rw-r--r--src/filters/muxer/BaseMuxer/BaseMuxer.vcproj6
-rw-r--r--src/filters/muxer/BaseMuxer/BaseMuxer.vcxproj18
-rw-r--r--src/filters/muxer/DSMMuxer/DSMMuxer.vcproj10
-rw-r--r--src/filters/muxer/DSMMuxer/DSMMuxer.vcxproj22
-rw-r--r--src/filters/muxer/DSMMuxer/stdafx.cpp5
-rw-r--r--src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcproj10
-rw-r--r--src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcxproj22
-rw-r--r--src/filters/muxer/WavDest/WavDest.vcproj10
-rw-r--r--src/filters/muxer/WavDest/WavDest.vcxproj22
-rw-r--r--src/filters/parser/AviSplitter/AviSplitter.cpp6
-rw-r--r--src/filters/parser/AviSplitter/AviSplitter.h6
-rw-r--r--src/filters/parser/AviSplitter/AviSplitter.vcproj10
-rw-r--r--src/filters/parser/AviSplitter/AviSplitter.vcxproj22
-rw-r--r--src/filters/parser/AviSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/AviSplitter/stdafx.h15
-rw-r--r--src/filters/parser/BaseSplitter/AsyncReader.cpp6
-rw-r--r--src/filters/parser/BaseSplitter/AsyncReader.h6
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitter.cpp6
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitter.h6
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitter.vcproj6
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitter.vcxproj18
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitterFile.cpp6
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitterFile.h6
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitterFileEx.cpp20
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitterFileEx.h6
-rw-r--r--src/filters/parser/BaseSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/BaseSplitter/stdafx.h15
-rw-r--r--src/filters/parser/DSMSplitter/DSMSplitter.cpp6
-rw-r--r--src/filters/parser/DSMSplitter/DSMSplitter.h6
-rw-r--r--src/filters/parser/DSMSplitter/DSMSplitter.vcproj10
-rw-r--r--src/filters/parser/DSMSplitter/DSMSplitter.vcxproj22
-rw-r--r--src/filters/parser/DSMSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/DSMSplitter/stdafx.h15
-rw-r--r--src/filters/parser/DiracSplitter/DiracSplitter.cpp2
-rw-r--r--src/filters/parser/DiracSplitter/DiracSplitter.h14
-rw-r--r--src/filters/parser/DiracSplitter/DiracSplitter.vcproj8
-rw-r--r--src/filters/parser/DiracSplitter/libdirac/libdirac.vcproj4
-rw-r--r--src/filters/parser/DiracSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/DiracSplitter/stdafx.h16
-rw-r--r--src/filters/parser/FLVSplitter/FLVSplitter.cpp6
-rw-r--r--src/filters/parser/FLVSplitter/FLVSplitter.h6
-rw-r--r--src/filters/parser/FLVSplitter/FLVSplitter.vcproj10
-rw-r--r--src/filters/parser/FLVSplitter/FLVSplitter.vcxproj22
-rw-r--r--src/filters/parser/FLVSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/FLVSplitter/stdafx.h15
-rw-r--r--src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h13
-rw-r--r--src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp10
-rw-r--r--src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp33
-rw-r--r--src/filters/parser/MP4Splitter/MP4Splitter.cpp10
-rw-r--r--src/filters/parser/MP4Splitter/MP4Splitter.h6
-rw-r--r--src/filters/parser/MP4Splitter/MP4Splitter.vcproj10
-rw-r--r--src/filters/parser/MP4Splitter/MP4Splitter.vcxproj22
-rw-r--r--src/filters/parser/MP4Splitter/stdafx.cpp13
-rw-r--r--src/filters/parser/MP4Splitter/stdafx.h15
-rw-r--r--src/filters/parser/MatroskaSplitter/MatroskaFile.cpp6
-rw-r--r--src/filters/parser/MatroskaSplitter/MatroskaFile.h6
-rw-r--r--src/filters/parser/MatroskaSplitter/MatroskaSplitter.cpp6
-rw-r--r--src/filters/parser/MatroskaSplitter/MatroskaSplitter.h6
-rw-r--r--src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcproj10
-rw-r--r--src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcxproj22
-rw-r--r--src/filters/parser/MatroskaSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/MatroskaSplitter/stdafx.h15
-rw-r--r--src/filters/parser/MpaSplitter/MpaSplitter.cpp6
-rw-r--r--src/filters/parser/MpaSplitter/MpaSplitter.h6
-rw-r--r--src/filters/parser/MpaSplitter/MpaSplitter.vcproj10
-rw-r--r--src/filters/parser/MpaSplitter/MpaSplitter.vcxproj22
-rw-r--r--src/filters/parser/MpaSplitter/MpaSplitterFile.cpp6
-rw-r--r--src/filters/parser/MpaSplitter/MpaSplitterFile.h6
-rw-r--r--src/filters/parser/MpaSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/MpaSplitter/stdafx.h18
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitter.cpp9
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitter.h6
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitter.vcproj10
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitter.vcxproj22
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitterFile.cpp6
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitterFile.h6
-rw-r--r--src/filters/parser/MpegSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/MpegSplitter/stdafx.h15
-rw-r--r--src/filters/parser/NutSplitter/NutSplitter.cpp6
-rw-r--r--src/filters/parser/NutSplitter/NutSplitter.vcproj10
-rw-r--r--src/filters/parser/NutSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/NutSplitter/stdafx.h11
-rw-r--r--src/filters/parser/OggSplitter/OggSplitter.cpp6
-rw-r--r--src/filters/parser/OggSplitter/OggSplitter.h6
-rw-r--r--src/filters/parser/OggSplitter/OggSplitter.vcproj10
-rw-r--r--src/filters/parser/OggSplitter/OggSplitter.vcxproj22
-rw-r--r--src/filters/parser/OggSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/OggSplitter/stdafx.h15
-rw-r--r--src/filters/parser/RealMediaSplitter/RealMediaSplitter.cpp612
-rw-r--r--src/filters/parser/RealMediaSplitter/RealMediaSplitter.h169
-rw-r--r--src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcproj10
-rw-r--r--src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcxproj22
-rw-r--r--src/filters/parser/RealMediaSplitter/resource.h2
-rw-r--r--src/filters/parser/RealMediaSplitter/stdafx.cpp19
-rw-r--r--src/filters/parser/RealMediaSplitter/stdafx.h21
-rw-r--r--src/filters/parser/RoQSplitter/RoQSplitter.cpp6
-rw-r--r--src/filters/parser/RoQSplitter/RoQSplitter.h6
-rw-r--r--src/filters/parser/RoQSplitter/RoQSplitter.vcproj10
-rw-r--r--src/filters/parser/RoQSplitter/RoQSplitter.vcxproj22
-rw-r--r--src/filters/parser/RoQSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/RoQSplitter/stdafx.h15
-rw-r--r--src/filters/parser/SSFSplitter/SSFSplitter.cpp6
-rw-r--r--src/filters/parser/SSFSplitter/SSFSplitter.h6
-rw-r--r--src/filters/parser/SSFSplitter/SSFSplitter.vcproj10
-rw-r--r--src/filters/parser/SSFSplitter/SSFSplitter.vcxproj8
-rw-r--r--src/filters/parser/SSFSplitter/stdafx.cpp13
-rw-r--r--src/filters/parser/SSFSplitter/stdafx.h15
-rw-r--r--src/filters/parser/StreamDriveThru/StreamDriveThru.cpp8
-rw-r--r--src/filters/parser/StreamDriveThru/StreamDriveThru.h6
-rw-r--r--src/filters/parser/StreamDriveThru/StreamDriveThru.vcproj10
-rw-r--r--src/filters/parser/StreamDriveThru/StreamDriveThru.vcxproj22
-rw-r--r--src/filters/parser/StreamDriveThru/stdafx.cpp13
-rw-r--r--src/filters/parser/StreamDriveThru/stdafx.h15
-rw-r--r--src/filters/reader/AsyncReader/AsyncReader.vcproj6
-rw-r--r--src/filters/reader/AsyncReader/AsyncReader.vcxproj18
-rw-r--r--src/filters/reader/AsyncReader/stdafx.cpp7
-rw-r--r--src/filters/reader/AsyncReader/stdafx.h6
-rw-r--r--src/filters/reader/CDDAReader/CDDAReader.cpp6
-rw-r--r--src/filters/reader/CDDAReader/CDDAReader.h10
-rw-r--r--src/filters/reader/CDDAReader/CDDAReader.vcproj10
-rw-r--r--src/filters/reader/CDDAReader/CDDAReader.vcxproj22
-rw-r--r--src/filters/reader/CDDAReader/stdafx.cpp13
-rw-r--r--src/filters/reader/CDDAReader/stdafx.h15
-rw-r--r--src/filters/reader/CDXAReader/CDXAReader.cpp6
-rw-r--r--src/filters/reader/CDXAReader/CDXAReader.h10
-rw-r--r--src/filters/reader/CDXAReader/CDXAReader.vcproj10
-rw-r--r--src/filters/reader/CDXAReader/CDXAReader.vcxproj22
-rw-r--r--src/filters/reader/CDXAReader/stdafx.cpp13
-rw-r--r--src/filters/reader/CDXAReader/stdafx.h15
-rw-r--r--src/filters/reader/UDPReader/UDPReader.cpp6
-rw-r--r--src/filters/reader/UDPReader/UDPReader.h10
-rw-r--r--src/filters/reader/UDPReader/UDPReader.vcproj10
-rw-r--r--src/filters/reader/UDPReader/UDPReader.vcxproj22
-rw-r--r--src/filters/reader/UDPReader/stdafx.cpp13
-rw-r--r--src/filters/reader/UDPReader/stdafx.h15
-rw-r--r--src/filters/reader/VTSReader/VTSReader.cpp8
-rw-r--r--src/filters/reader/VTSReader/VTSReader.h10
-rw-r--r--src/filters/reader/VTSReader/VTSReader.vcproj10
-rw-r--r--src/filters/reader/VTSReader/VTSReader.vcxproj22
-rw-r--r--src/filters/reader/VTSReader/stdafx.cpp13
-rw-r--r--src/filters/reader/VTSReader/stdafx.h15
-rw-r--r--src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.cpp203
-rw-r--r--src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.h84
-rw-r--r--src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcproj10
-rw-r--r--src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcxproj22
-rw-r--r--src/filters/renderer/MpcAudioRenderer/resource.h2
-rw-r--r--src/filters/renderer/MpcAudioRenderer/stdafx.cpp2
-rw-r--r--src/filters/renderer/MpcAudioRenderer/stdafx.h4
-rw-r--r--src/filters/renderer/SyncClock/SyncClock.vcproj78
-rw-r--r--src/filters/renderer/SyncClock/SyncClock.vcxproj71
-rw-r--r--src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp21
-rw-r--r--src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp67
-rw-r--r--src/filters/renderer/VideoRenderers/DX9RenderingEngine.h2
-rw-r--r--src/filters/renderer/VideoRenderers/RenderersSettings.h55
-rw-r--r--src/filters/renderer/VideoRenderers/SyncRenderer.cpp9
-rw-r--r--src/filters/renderer/VideoRenderers/VMR9AllocatorPresenter.cpp4
-rw-r--r--src/filters/renderer/VideoRenderers/VideoRenderers.vcproj16
-rw-r--r--src/filters/renderer/VideoRenderers/VideoRenderers.vcxproj26
-rw-r--r--src/filters/renderer/VideoRenderers/stdafx.h4
-rw-r--r--src/filters/source/BaseSource/BaseSource.cpp6
-rw-r--r--src/filters/source/BaseSource/BaseSource.h6
-rw-r--r--src/filters/source/BaseSource/BaseSource.vcproj6
-rw-r--r--src/filters/source/BaseSource/BaseSource.vcxproj18
-rw-r--r--src/filters/source/BaseSource/stdafx.cpp13
-rw-r--r--src/filters/source/BaseSource/stdafx.h16
-rw-r--r--src/filters/source/D2VSource/D2VSource.cpp4
-rw-r--r--src/filters/source/D2VSource/D2VSource.h4
-rw-r--r--src/filters/source/D2VSource/D2VSource.vcproj10
-rw-r--r--src/filters/source/D2VSource/D2VSource.vcxproj22
-rw-r--r--src/filters/source/D2VSource/stdafx.h9
-rw-r--r--src/filters/source/DTSAC3Source/DTSAC3Source.cpp6
-rw-r--r--src/filters/source/DTSAC3Source/DTSAC3Source.h6
-rw-r--r--src/filters/source/DTSAC3Source/DTSAC3Source.vcproj10
-rw-r--r--src/filters/source/DTSAC3Source/DTSAC3Source.vcxproj22
-rw-r--r--src/filters/source/DTSAC3Source/stdafx.cpp13
-rw-r--r--src/filters/source/DTSAC3Source/stdafx.h15
-rw-r--r--src/filters/source/FLICSource/FLICSource.cpp6
-rw-r--r--src/filters/source/FLICSource/FLICSource.h6
-rw-r--r--src/filters/source/FLICSource/FLICSource.vcproj10
-rw-r--r--src/filters/source/FLICSource/FLICSource.vcxproj28
-rw-r--r--src/filters/source/FLICSource/stdafx.cpp13
-rw-r--r--src/filters/source/FLICSource/stdafx.h15
-rw-r--r--src/filters/source/FlacSource/FlacSource.cpp6
-rw-r--r--src/filters/source/FlacSource/FlacSource.h6
-rw-r--r--src/filters/source/FlacSource/FlacSource.vcproj10
-rw-r--r--src/filters/source/FlacSource/FlacSource.vcxproj30
-rw-r--r--src/filters/source/FlacSource/stdafx.cpp13
-rw-r--r--src/filters/source/FlacSource/stdafx.h15
-rw-r--r--src/filters/source/ShoutcastSource/ShoutcastSource.cpp6
-rw-r--r--src/filters/source/ShoutcastSource/ShoutcastSource.h6
-rw-r--r--src/filters/source/ShoutcastSource/ShoutcastSource.vcproj10
-rw-r--r--src/filters/source/ShoutcastSource/ShoutcastSource.vcxproj22
-rw-r--r--src/filters/source/ShoutcastSource/stdafx.cpp13
-rw-r--r--src/filters/source/ShoutcastSource/stdafx.h15
-rw-r--r--src/filters/source/SubtitleSource/SubtitleSource.cpp6
-rw-r--r--src/filters/source/SubtitleSource/SubtitleSource.h6
-rw-r--r--src/filters/source/SubtitleSource/SubtitleSource.vcproj10
-rw-r--r--src/filters/source/SubtitleSource/SubtitleSource.vcxproj8
-rw-r--r--src/filters/source/SubtitleSource/stdafx.cpp13
-rw-r--r--src/filters/source/SubtitleSource/stdafx.h15
-rw-r--r--src/filters/stdafx.h4
-rw-r--r--src/filters/switcher/AudioSwitcher/Audio.cpp6
-rw-r--r--src/filters/switcher/AudioSwitcher/Audio.h6
-rw-r--r--src/filters/switcher/AudioSwitcher/AudioSwitcher.cpp6
-rw-r--r--src/filters/switcher/AudioSwitcher/AudioSwitcher.vcproj10
-rw-r--r--src/filters/switcher/AudioSwitcher/AudioSwitcher.vcxproj22
-rw-r--r--src/filters/switcher/AudioSwitcher/stdafx.cpp13
-rw-r--r--src/filters/switcher/AudioSwitcher/stdafx.h15
-rw-r--r--src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.cpp6
-rw-r--r--src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.h6
-rw-r--r--src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcproj10
-rw-r--r--src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcxproj22
-rw-r--r--src/filters/transform/AVI2AC3Filter/stdafx.cpp13
-rw-r--r--src/filters/transform/AVI2AC3Filter/stdafx.h15
-rw-r--r--src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp6
-rw-r--r--src/filters/transform/BaseVideoFilter/BaseVideoFilter.h6
-rw-r--r--src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcproj6
-rw-r--r--src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcxproj18
-rw-r--r--src/filters/transform/BaseVideoFilter/stdafx.cpp13
-rw-r--r--src/filters/transform/BaseVideoFilter/stdafx.h16
-rw-r--r--src/filters/transform/BufferFilter/BufferFilter.cpp6
-rw-r--r--src/filters/transform/BufferFilter/BufferFilter.h6
-rw-r--r--src/filters/transform/BufferFilter/BufferFilter.vcproj10
-rw-r--r--src/filters/transform/BufferFilter/BufferFilter.vcxproj22
-rw-r--r--src/filters/transform/BufferFilter/stdafx.cpp13
-rw-r--r--src/filters/transform/BufferFilter/stdafx.h15
-rw-r--r--src/filters/transform/DeCSSFilter/DeCSSFilter.cpp8
-rw-r--r--src/filters/transform/DeCSSFilter/DeCSSFilter.h6
-rw-r--r--src/filters/transform/DeCSSFilter/DeCSSFilter.vcproj10
-rw-r--r--src/filters/transform/DeCSSFilter/DeCSSFilter.vcxproj22
-rw-r--r--src/filters/transform/DeCSSFilter/stdafx.cpp13
-rw-r--r--src/filters/transform/DeCSSFilter/stdafx.h15
-rw-r--r--src/filters/transform/MPCVideoDec/FfmpegContext.c38
-rw-r--r--src/filters/transform/MPCVideoDec/FfmpegContext.h9
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDec.vcproj10
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDec.vcxproj22
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp17
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/Makefile23
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/Makefile_201023
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/config.h61
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/custom_code.txt2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.def4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj24
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj.filters12
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/ac3dec.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/adpcm.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/audioconvert.h8
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/avcodec.h173
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.c59
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.h56
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/flvdec.c2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263dec.c7
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.c15
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.h12
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264_ps.c2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/imgconvert.c53
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/libamr.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.c6
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mlpdec.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mpeg12.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv10.c6
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv40.c2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/sp5xdec.c106
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq1dec.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq3.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/utils.c66
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dec.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dsp.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c27
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.c7
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56dsp.c2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp8.c8
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/config.asm1
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_mmx.c304
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_ssse3.c208
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.c342
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.h37
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c13
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft_mmx.asm45
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_chromamc.asm671
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_deblock.asm (renamed from src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_deblock_sse2.asm)240
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct.asm865
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct_sse2.asm54
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_intrapred_init.c103
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_qpel_mmx.c1209
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight.asm375
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight_sse2.asm170
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264dsp_mmx.c2422
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/idct_sse2_xvid.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c13
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/simple_idct_mmx.c4
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_mmx.c15
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_yasm.asm6
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp.asm618
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.c436
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.h36
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.c187
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.h31
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp.asm10
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp_init.c7
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c17
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp.asm26
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcore/avcore.h12
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.c110
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.h70
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avstring.c102
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avutil.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/common.h17
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.c68
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.h52
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/eval.c523
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/internal.h2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/intfloat_readwrite.c2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/lls.c2
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/log.c8
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/pixdesc.c33
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/bswap.h14
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/cpu.c (renamed from src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/cpuid.c)52
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/makefile_c.inc2
-rw-r--r--src/filters/transform/MpaDecFilter/IMpaDecFilter.h6
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecFilter.cpp219
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecFilter.h13
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecFilter.vcproj10
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecFilter.vcxproj22
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.cpp6
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.h6
-rw-r--r--src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcproj6
-rw-r--r--src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcxproj18
-rw-r--r--src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcproj6
-rw-r--r--src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcxproj18
-rw-r--r--src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcproj6
-rw-r--r--src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcxproj4
-rw-r--r--src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcproj6
-rw-r--r--src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcxproj4
-rw-r--r--src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcproj6
-rw-r--r--src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcxproj18
-rw-r--r--src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcproj6
-rw-r--r--src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcxproj4
-rw-r--r--src/filters/transform/MpaDecFilter/stdafx.cpp13
-rw-r--r--src/filters/transform/MpaDecFilter/stdafx.h15
-rw-r--r--src/filters/transform/Mpeg2DecFilter/IMpeg2DecFilter.h6
-rw-r--r--src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.cpp6
-rw-r--r--src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.h8
-rw-r--r--src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcproj10
-rw-r--r--src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcxproj22
-rw-r--r--src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.cpp6
-rw-r--r--src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.h6
-rw-r--r--src/filters/transform/Mpeg2DecFilter/stdafx.cpp13
-rw-r--r--src/filters/transform/Mpeg2DecFilter/stdafx.h15
-rw-r--r--src/filters/transform/VSFilter/DirectVobSubPropPage.cpp2
-rw-r--r--src/filters/transform/VSFilter/VSFilter.vcproj13
-rw-r--r--src/filters/transform/VSFilter/VSFilter.vcxproj21
-rw-r--r--src/filters/transform/VSFilter/csriapi.cpp2
-rw-r--r--src/release.props1
-rw-r--r--src/release.vsprops1
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Ac3.cpp129
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Ac3.h3
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Adts.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Adts.h1
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Aes3.cpp808
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Aes3.h36
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_DolbyE.cpp122
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_DolbyE.h64
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Dts.cpp161
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Dts.h4
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Mpega.cpp137
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Mpega.h4
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Wvpk.h3
-rw-r--r--src/thirdparty/MediaInfo/File__Analyse_Automatic.h47
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze.cpp58
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze.h15
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp22
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp7
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_MinimizeSize.h15
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Streams.cpp97
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp2
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo.cpp6
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo.h5
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcproj51
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcxproj30
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters17
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoList_Internal.cpp4
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config.cpp38
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config.h3
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp100
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp164
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h30
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Events.h3
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_File.cpp174
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Internal.cpp54
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Internal.h11
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Ancillary.cpp303
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Ancillary.h84
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_DvDif.cpp248
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_DvDif.h8
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Flv.cpp9
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp169
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Gxf.h20
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.cpp207
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.h69
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp408
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Lxf.h12
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mk.cpp62
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp47
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h6
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp78
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4_TimeCode.cpp5
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp364
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegPs.h12
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp92
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp204
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.h46
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.cpp205
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.h8
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp2401
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mxf.h113
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Ogg.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Ogg_SubElement.cpp2
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_P2_Clip.cpp1
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Riff.cpp24
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Riff.h37
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp214
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Rm.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Swf.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Swf.h3
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Wm.cpp32
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_Directory.h23
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_File.cpp44
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_File.h19
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_libcurl.h9
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_libmms.cpp2
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_libmms.h9
-rw-r--r--src/thirdparty/MediaInfo/Setup.h6
-rw-r--r--src/thirdparty/MediaInfo/Text/File_DtvccTransport.cpp2
-rw-r--r--src/thirdparty/MediaInfo/Text/File_N19.cpp1
-rw-r--r--src/thirdparty/MediaInfo/Text/File_Pgs.cpp24
-rw-r--r--src/thirdparty/MediaInfo/Text/File_Pgs.h3
-rw-r--r--src/thirdparty/MediaInfo/Video/File_AfdBarData.cpp57
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Avc.cpp125
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Avc.h10
-rw-r--r--src/thirdparty/MediaInfo/Video/File_AvsV.cpp1
-rw-r--r--src/thirdparty/MediaInfo/Video/File_AvsV.h1
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Dirac.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Dirac.h3
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Mpeg4v.cpp4
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Mpeg4v.h1
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Mpegv.cpp176
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Mpegv.h26
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Vc1.cpp88
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Vc1.h7
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/Kasumi.vcproj6
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj6
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/a_bltrgb2yuv_mmx.asm2
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/a_triblt_scalar.asm2
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/pixel.cpp2
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/pixmaputils.cpp2
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/stretchblt_reference.cpp2
-rw-r--r--src/thirdparty/VirtualDub/system/source/a_memory.asm82
-rw-r--r--src/thirdparty/VirtualDub/system/source/cpuaccel.cpp2
-rw-r--r--src/thirdparty/VirtualDub/system/source/time.cpp4
-rw-r--r--src/thirdparty/VirtualDub/system/system.vcproj10
-rw-r--r--src/thirdparty/VirtualDub/system/system.vcxproj8
-rw-r--r--src/thirdparty/ZenLib/BitStream.h5
-rw-r--r--src/thirdparty/ZenLib/Conf.h3
-rw-r--r--src/thirdparty/ZenLib/Utils.h10
-rw-r--r--src/thirdparty/ZenLib/ZenLib.vcproj20
-rw-r--r--src/thirdparty/ZenLib/ZenLib.vcxproj7
-rw-r--r--src/thirdparty/ZenLib/ZenLib.vcxproj.filters3
-rw-r--r--src/thirdparty/lcms2/lcms2.vcproj10
-rw-r--r--src/thirdparty/libpng/libpng.vcproj10
-rw-r--r--src/thirdparty/libpng/libpng.vcxproj4
-rw-r--r--src/thirdparty/zlib/zlib.vcproj6
-rw-r--r--src/thirdparty/zlib/zlib.vcxproj18
-rw-r--r--src/ui/CmdUI/CmdUI.vcproj10
-rw-r--r--src/ui/CmdUI/CmdUI.vcxproj18
-rw-r--r--src/ui/CmdUI/stdafx.h6
-rw-r--r--src/ui/LCDUI/LCDOutput.cpp2
-rw-r--r--src/ui/LCDUI/LCDUI.sln25
-rw-r--r--src/ui/LCDUI/LCDUI.vcproj18
-rw-r--r--src/ui/LCDUI/LCDUI.vcxproj12
-rw-r--r--src/ui/LCDUI/LCDUI_2010.sln25
-rw-r--r--src/ui/ResizableLib/ResizableLib.vcproj15
-rw-r--r--src/ui/ResizableLib/ResizableLib.vcxproj27
-rw-r--r--src/ui/ResizableLib/stdafx.h5
-rw-r--r--src/ui/TreePropSheet/TreePropSheet.vcproj10
-rw-r--r--src/ui/TreePropSheet/TreePropSheet.vcxproj18
-rw-r--r--src/ui/TreePropSheet/stdafx.h3
-rw-r--r--src/ui/sizecbar/sizecbar.vcproj11
-rw-r--r--src/ui/sizecbar/sizecbar.vcxproj19
-rw-r--r--src/ui/sizecbar/stdafx.h2
784 files changed, 21501 insertions, 16803 deletions
diff --git a/distrib/Languages/Hungarian.isl b/distrib/Languages/Hungarian.isl
new file mode 100644
index 000000000..b9597559b
--- /dev/null
+++ b/distrib/Languages/Hungarian.isl
@@ -0,0 +1,339 @@
+; *** Inno Setup version 5.1.11+ Hungarian messages with "a" definite articles ***
+; Copyright (C) 1999-2008 Kornél Pál
+; All rights reserved.
+; E-mail: kornelpal@gmail.com
+; Hungarian Inno Setup translation home page: http://www.kornelpal.hu/ishu
+;
+; You can download the versions with "a" and "az" definite articles and read
+; about the usage of different Hungarian definite articles on this page.
+;
+; For conditions of use and distribution see Readme.htm file contained in the
+; Hungarian Inno Setup messages package available on the above home page.
+;
+; *** Inno Setup 5.1.11+ verzió magyar üzenetek "a" határozott névelõkkel ***
+; Copyright (C) 1999-2008 Pál Kornél
+; Minden jog fenntartva.
+; E-mail: kornelpal@gmail.com
+; Magyar Inno Setup oldal: http://www.palkornel.hu/innosetup
+;
+; Az oldalról letölthetõ az "a" és az "az" névelõket tartalmazó változat, és
+; olvashatsz a különbözõ magyar határozott névelõk használatáról is.
+;
+; A használat és a továbbadás feltételei a fenti oldalról letölthetõ Magyar
+; Inno Setup üzenetek csomagban található Fontos.htm fájlban olvashatóak.
+;
+; To download user-contributed translations of this file, go to:
+; http://www.jrsoftware.org/is3rdparty.php
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+
+[LangOptions]
+; The following three entries are very important. Be sure to read and
+; understand the '[LangOptions] section' topic in the help file.
+LanguageName=Magyar
+LanguageID=$040E
+LanguageCodePage=1250
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+;DialogFontName=
+;DialogFontSize=8
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+TitleFontName=Arial CE
+;TitleFontSize=29
+CopyrightFontName=Arial CE
+;CopyrightFontSize=8
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=Telepítõ
+SetupWindowTitle=%1 Telepítõ
+UninstallAppTitle=Eltávolító
+UninstallAppFullTitle=%1 Eltávolító
+
+; *** Misc. common
+InformationTitle=Információk
+ConfirmTitle=Megerõsítés
+ErrorTitle=Hiba
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=A %1 telepítésre fog kerülni. Kívánja folytatni a telepítést?
+LdrCannotCreateTemp=Nem lehet átmeneti fájlt létrehozni. A telepítés megszakadt
+LdrCannotExecTemp=Az átmeneti könyvtárban nem lehet fájlt végrehajtani. A telepítés megszakadt
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%nHiba %2: %3
+SetupFileMissing=A(z) %1 fájl hiányzik a telepítõ könyvtárából. Hárítsa el a hibát, vagy szerezzen be egy új másolatot a programról.
+SetupFileCorrupt=A telepítõ fájlok megsérültek. Szerezzen be egy új másolatot a programról.
+SetupFileCorruptOrWrongVer=A telepítõ fájlok megsérültek, vagy nem kompatibilisek a Telepítõ jelen verziójával. Hárítsa el a hibát, vagy szerezzen be egy új másolatot a programról.
+NotOnThisPlatform=Ez a program nem futtatható %1 alatt.
+OnlyOnThisPlatform=Ezt a programot %1 alatt kell futtatni.
+OnlyOnTheseArchitectures=Ezt a programot csak a Windows következõ processzorarchitektúrákhoz tervezett változataira lehet telepíteni:%n%n%1
+MissingWOW64APIs=A Windows Ön által futtatott verziója nem tartalmazza a Telepítõ által a 64-bites telepítés elvégzéséhez igényelt funkcionalitást. A hiba elhárításához a Service Pack %1 telepítése szükséges.
+WinVersionTooLowError=A program a %1 %2 vagy késõbbi verzióját igényli.
+WinVersionTooHighError=A programot nem lehet a %1 %2 vagy késõbbi verziójára telepíteni.
+AdminPrivilegesRequired=A program telepítéséhez rendszergazdaként kell bejelentkezni.
+PowerUserPrivilegesRequired=A program telepítéséhez rendszergazdaként vagy a kiemelt felhasználók csoport tagjaként kell bejelentkezni.
+SetupAppRunningError=A Telepítõ megállapította, hogy a %1 jelenleg fut.%n%nKérem, zárja be az összes példányát, majd a folytatáshoz kattintson az OK gombra, vagy a Mégse gombra a kilépéshez.
+UninstallAppRunningError=Az Eltávolító megállapította, hogy a %1 jelenleg fut.%n%nKérem, zárja be az összes példányát, majd a folytatáshoz kattintson az OK gombra, vagy a Mégse gombra a kilépéshez.
+
+; *** Misc. errors
+ErrorCreatingDir=A telepítõ nem tudta létrehozni a(z) "%1" könyvtárat
+ErrorTooManyFilesInDir=Nem hozható létre fájl a(z) "%1" könyvtárban, mert az már túl sok fájlt tartalmaz
+
+; *** Setup common messages
+ExitSetupTitle=Kilépés a Telepítõbõl
+ExitSetupMessage=A telepítés még nem fejezõdött be. Ha most kilép, a program nem kerül telepítésre.%n%nA Telepítõt késõbb is futtathatja a telepítés befejezéséhez.%n%nKilép a Telepítõbõl?
+AboutSetupMenuItem=&Névjegy...
+AboutSetupTitle=Telepítõ névjegye
+AboutSetupMessage=%1 %2 verzió%n%3%n%nAz %1 honlapja:%n%4
+AboutSetupNote=
+TranslatorNote=Magyar változat:%nCopyright (C) 1999-2008 Pál Kornél%nMinden jog fenntartva.%n%nMagyar Inno Setup oldal:%nhttp://www.palkornel.hu/innosetup
+
+; *** Buttons
+ButtonBack=< &Vissza
+ButtonNext=&Tovább >
+ButtonInstall=&Telepítés
+ButtonOK=OK
+ButtonCancel=Mégse
+ButtonYes=&Igen
+ButtonYesToAll=Igen, &mindet
+ButtonNo=&Nem
+ButtonNoToAll=&Egyiket sem
+ButtonFinish=&Befejezés
+ButtonBrowse=&Tallózás...
+ButtonWizardBrowse=T&allózás...
+ButtonNewFolder=Ú&j mappa
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=Válasszon telepítési nyelvet
+SelectLanguageLabel=Válassza ki a telepítés során használandó nyelvet:
+
+; *** Common wizard text
+ClickNext=A folytatáshoz kattintson a Tovább gombra, vagy a Mégse gombra a Telepítõbõl történõ kilépéshez.
+BeveledLabel=
+BrowseDialogTitle=Tallózás a mappák között
+BrowseDialogLabel=Válasszon egy mappát az alábbi listából, majd kattintson az OK gombra.
+NewFolderName=Új mappa
+
+; *** "Welcome" wizard page
+WelcomeLabel1=Üdvözli a [name] Telepítõ Varázsló.
+WelcomeLabel2=A [name/ver] a számítógépére fog kerülni.%n%nA telepítés folytatása elõtt ajánlott minden más futó alkalmazást bezárni.
+
+; *** "Password" wizard page
+WizardPassword=Jelszó
+PasswordLabel1=Ez a telepítés jelszóval van védve.
+PasswordLabel3=Adja meg a jelszót, majd a folytatáshoz kattintson a Tovább gombra. A jelszavakban a kis- és a nagybetûk különbözõnek számítanak.
+PasswordEditLabel=&Jelszó:
+IncorrectPassword=A megadott jelszó helytelen. Próbálja újra.
+
+; *** "License Agreement" wizard page
+WizardLicense=Licencszerzõdés
+LicenseLabel=Olvassa el a következõ fontos információkat a folytatás elõtt.
+LicenseLabel3=Kérem, olvassa el az alábbi licencszerzõdést. El kell fogadnia a szerzõdés feltételeit a telepítés folytatása elõtt.
+LicenseAccepted=&Elfogadom a szerzõdést
+LicenseNotAccepted=&Nem fogadom el a szerzõdést
+
+; *** "Information" wizard pages
+WizardInfoBefore=Információk
+InfoBeforeLabel=Olvassa el a következõ fontos információkat a folytatás elõtt.
+InfoBeforeClickLabel=Ha felkészült a telepítés folytatására, kattintson a Tovább gombra.
+WizardInfoAfter=Információk
+InfoAfterLabel=Olvassa el a következõ fontos információkat a folytatás elõtt.
+InfoAfterClickLabel=Ha felkészült a telepítés folytatására, kattintson a Tovább gombra.
+
+; *** "User Information" wizard page
+WizardUserInfo=Felhasználó adatai
+UserInfoDesc=Kérem, adja meg az adatait.
+UserInfoName=&Felhasználónév:
+UserInfoOrg=&Szervezet:
+UserInfoSerial=&Sorozatszám:
+UserInfoNameRequired=Meg kell adnia egy nevet.
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=Válasszon telepítési helyet
+SelectDirDesc=Hova kerüljön telepítésre a [name]?
+SelectDirLabel3=A Telepítõ a [name] alkalmazást a következõ mappába fogja telepíteni.
+SelectDirBrowseLabel=A folytatáshoz kattintson a Tovább gombra. Másik mappa kiválasztásához kattintson a Tallózás gombra.
+DiskSpaceMBLabel=Legalább [mb] MB szabad lemezterületre van szükség.
+ToUNCPathname=A Telepítõ nem tud hálózati útvonalra telepíteni. Ha hálózatra kíván telepíteni, csatlakoztatnia kell egy hálózati meghajtót.
+InvalidPath=Teljes útvonalat írjon be a meghajtó betûjelével; például:%n%nC:\Alkalmazás%n%nvagy egy hálózati útvonalat a következõ alakban:%n%n\\kiszolgáló\megosztás
+InvalidDrive=A kiválasztott meghajtó vagy hálózati megosztás nem létezik vagy nem érhetõ el. Válasszon másikat.
+DiskSpaceWarningTitle=Nincs elég szabad lemezterület a meghajtón
+DiskSpaceWarning=A Telepítõnek legalább %1 KB szabad lemezterületre van szüksége, de a kiválasztott meghajtón csak %2 KB áll rendelkezésre.%n%nMindenképpen folytatni kívánja?
+DirNameTooLong=A mappanév vagy az útvonal túl hosszú.
+InvalidDirName=A mappanév érvénytelen.
+BadDirName32=A mappanevekben nem szerepelhetnek a következõ karakterek:%n%n%1
+DirExistsTitle=A mappa már létezik
+DirExists=A következõ mappa már létezik:%n%n%1 %n%nEbbe a mappába kívánja telepíteni a programot?
+DirDoesntExistTitle=A mappa nem létezik
+DirDoesntExist= A következõ mappa nem létezik:%n%n%1%n%nLétre kívánja hozni a mappát?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=Összetevõk kiválasztása
+SelectComponentsDesc=Mely összetevõk kerüljenek telepítésre?
+SelectComponentsLabel2=Válassza ki a telepítendõ összetevõket; törölje a telepíteni nem kívánt összetevõket. Kattintson a Tovább gombra, ha készen áll a folytatásra.
+FullInstallation=Teljes telepítés
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=Szokásos telepítés
+CustomInstallation=Egyéni telepítés
+NoUninstallWarningTitle=Létezõ összetevõ
+NoUninstallWarning=A Telepítõ megállapította, hogy a következõ összetevõk már telepítve vannak a számítógépére:%n%n%1%n%nEzen összetevõk kijelölésének törlése nem távolítja el azokat a számítógépérõl.%n%nMindenképpen folytatja?
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=A jelenlegi kijelölés legalább [mb] MB lemezterületet igényel.
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=Jelöljön ki kiegészítõ feladatokat
+SelectTasksDesc=Mely kiegészítõ feladatok kerüljenek végrehajtásra?
+SelectTasksLabel2=Jelölje ki, mely kiegészítõ feladatokat hajtsa végre a Telepítõ a [name] telepítése során, majd kattintson a Tovább gombra.
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=Válasszon mappát a Start menüben
+SelectStartMenuFolderDesc=Hova helyezze a Telepítõ a program parancsikonjait?
+SelectStartMenuFolderLabel3=A Telepítõ a program parancsikonjait a Start menü következõ mappájában fogja létrehozni.
+SelectStartMenuFolderBrowseLabel=A folytatáshoz kattintson a Tovább gombra. Másik mappa kiválasztásához kattintson a Tallózás gombra.
+MustEnterGroupName=Meg kell adnia egy mappanevet.
+GroupNameTooLong=A mappanév vagy az útvonal túl hosszú.
+InvalidGroupName=A mappanév érvénytelen.
+BadGroupName=A mappa nevében nem szerepelhetnek a következõ karakterek:%n%n%1
+NoProgramGroupCheck2=&Ne hozzon létre mappát a Start menüben
+
+; *** "Ready to Install" wizard page
+WizardReady=A Telepítõ felkészült
+ReadyLabel1=A Telepítõ felkészült a [name] számítógépére történõ telepítésére.
+ReadyLabel2a=Kattintson a Telepítés gombra a folytatáshoz, vagy a Vissza gombra a beállítások áttekintéséhez, megváltoztatásához.
+ReadyLabel2b=Kattintson a Telepítés gombra a folytatáshoz.
+ReadyMemoUserInfo=Felhasználó adatai:
+ReadyMemoDir=Telepítés helye:
+ReadyMemoType=Telepítés típusa:
+ReadyMemoComponents=Választott összetevõk:
+ReadyMemoGroup=Start menü mappája:
+ReadyMemoTasks=Kiegészítõ feladatok:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=Felkészülés a telepítésre
+PreparingDesc=A Telepítõ felkészül a [name] számítógépére történõ telepítésére.
+PreviousInstallNotCompleted=Egy korábbi program telepítése/eltávolítása nem fejezõdött be. Újra kell indítania a számítógépét a másik telepítés befejezéséhez.%n%nA számítógépe újraindítása után ismét futtassa a Telepítõt a [name] telepítésének befejezéséhez.
+CannotContinue=A telepítés nem folytatható. A kilépéshez kattintson a Mégse gombra.
+
+; *** "Installing" wizard page
+WizardInstalling=Telepítés állapota
+InstallingLabel=Legyen türelemmel, amíg a [name] számítógépére történõ telepítése folyik.
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=A [name] Telepítõ Varázsló befejezése
+FinishedLabelNoIcons=A [name] telepítése befejezõdött.
+FinishedLabel=A [name] telepítése befejezõdött. Az alkalmazást a létrehozott ikonok kiválasztásával indíthatja.
+ClickFinish=Kattintson a Befejezés gombra a Telepítõbõl történõ kilépéshez.
+FinishedRestartLabel=A [name] telepítésének befejezéséhez újra kell indítani a számítógépet. Újraindítja most?
+FinishedRestartMessage=A [name] telepítésének befejezéséhez újra kell indítani a számítógépet.%n%nÚjraindítja most?
+ShowReadmeCheck=Igen, szeretném elolvasni a FONTOS fájlt
+YesRadio=&Igen, újraindítom
+NoRadio=&Nem, késõbb indítom újra
+; used for example as 'Run MyProg.exe'
+RunEntryExec=%1 futtatása
+; used for example as 'View Readme.txt'
+RunEntryShellExec=%1 megtekintése
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=A Telepítõnek szüksége van a következõ lemezre
+SelectDiskLabel2=Helyezze be a(z) %1. lemezt és kattintson az OK gombra.%n%nHa a fájlok a lemez egy a megjelenítettõl különbözõ mappájában találhatók, írja be a helyes útvonalat vagy kattintson a Tallózás gombra.
+PathLabel=Ú&tvonal:
+FileNotInDir2=A(z) "%1" fájl nem található a következõ helyen: "%2". Helyezze be a megfelelõ lemezt vagy válasszon egy másik mappát.
+SelectDirectoryLabel=Adja meg a következõ lemez helyét.
+
+; *** Installation phase messages
+SetupAborted=A telepítés nem fejezõdött be.%n%nHárítsa el a hibát, és futtassa újra a Telepítõt.
+EntryAbortRetryIgnore=Kilépés: megszakítás, Ismét: megismétlés, Tovább: folytatás
+
+; *** Installation status messages
+StatusCreateDirs=Könyvtárak létrehozása...
+StatusExtractFiles=Fájlok kibontása...
+StatusCreateIcons=Parancsikonok létrehozása...
+StatusCreateIniEntries=INI bejegyzések létrehozása...
+StatusCreateRegistryEntries=Rendszerleíró bejegyzések létrehozása...
+StatusRegisterFiles=Fájlok regisztrálása...
+StatusSavingUninstall=Eltávolító információk mentése...
+StatusRunProgram=Telepítés befejezése...
+StatusRollback=Változtatások visszavonása...
+
+; *** Misc. errors
+ErrorInternal2=Belsõ hiba: %1
+ErrorFunctionFailedNoCode=Sikertelen %1
+ErrorFunctionFailed=Sikertelen %1; kód: %2
+ErrorFunctionFailedWithMessage=Sikertelen %1; kód: %2.%n%3
+ErrorExecutingProgram=Nem hajtható végre a fájl:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=Nem nyitható meg a rendszerleíró kulcs:%n%1\%2
+ErrorRegCreateKey=Nem hozható létre a rendszerleíró kulcs:%n%1\%2
+ErrorRegWriteKey=Nem módosítható a rendszerleíró kulcs:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=Hiba az INI bejegyzés létrehozása közben a(z) "%1" fájlban.
+
+; *** File copying errors
+FileAbortRetryIgnore=Kilépés: megszakítás, Ismét: megismétlés, Tovább: a fájl átlépése (nem ajánlott)
+FileAbortRetryIgnore2=Kilépés: megszakítás, Ismét: megismétlés, Tovább: folytatás (nem ajánlott)
+SourceIsCorrupted=A forrásfájl megsérült
+SourceDoesntExist=A(z) "%1" forrásfájl nem létezik
+ExistingFileReadOnly=A fájl csak olvashatóként van jelölve.%n%nKilépés: megszakítás, Ismét: csak olvasható jelölés megszüntetése, és megismétlés, Tovább: a fájl átlépése (nem ajánlott)
+ErrorReadingExistingDest=Hiba lépett fel a fájl olvasása közben:
+FileExists=A fájl már létezik.%n%nFelül kívánja írni?
+ExistingFileNewer=A létezõ fájl újabb a telepítésre kerülõnél. Ajánlott a létezõ fájl megtartása.%n%nMeg kívánja tartani a létezõ fájlt?
+ErrorChangingAttr=Hiba lépett fel a fájl attribútumának módosítása közben:
+ErrorCreatingTemp=Hiba lépett fel a fájl telepítési könyvtárban történõ létrehozása közben:
+ErrorReadingSource=Hiba lépett fel a forrásfájl olvasása közben:
+ErrorCopying=Hiba lépett fel a fájl másolása közben:
+ErrorReplacingExistingFile=Hiba lépett fel a létezõ fájl cseréje közben:
+ErrorRestartReplace=A fájl cseréje az újraindítás után sikertelen volt:
+ErrorRenamingTemp=Hiba lépett fel fájl telepítési könyvtárban történõ átnevezése közben:
+ErrorRegisterServer=Nem lehet regisztrálni a DLL-t/OCX-et: %1
+ErrorRegSvr32Failed=sikertelen RegSvr32. A visszaadott kód: %1
+ErrorRegisterTypeLib=Nem lehet regisztrálni a típustárat: %1
+
+; *** Post-installation errors
+ErrorOpeningReadme=Hiba lépett fel a FONTOS fájl megnyitása közben.
+ErrorRestartingComputer=A Telepítõ nem tudta újraindítani a számítógépet. Indítsa újra kézileg.
+
+; *** Uninstaller messages
+UninstallNotFound=A(z) "%1" fájl nem létezik. Nem távolítható el.
+UninstallOpenError=A(z) "%1" fájl nem nyitható meg. Nem távolítható el
+UninstallUnsupportedVer=A(z) "%1" eltávolítási naplófájl formátumát nem tudja felismerni az eltávolító jelen verziója. Az eltávolítás nem folytatható
+UninstallUnknownEntry=Egy ismeretlen bejegyzés (%1) található az eltávolítási naplófájlban
+ConfirmUninstall=Biztosan el kívánja távolítani a %1 programot és minden összetevõjét?
+UninstallOnlyOnWin64=Ezt a telepítést csak 64-bites Windowson lehet eltávolítani.
+OnlyAdminCanUninstall=Ezt a telepítést csak adminisztrációs jogokkal rendelkezõ felhasználó távolíthatja el.
+UninstallStatusLabel=Legyen türelemmel, amíg a %1 számítógépérõl történõ eltávolítása befejezõdik.
+UninstalledAll=A %1 sikeresen el lett távolítva a számítógéprõl.
+UninstalledMost=A %1 eltávolítása befejezõdött.%n%nNéhány elemet nem lehetetett eltávolítani. Törölje kézileg.
+UninstalledAndNeedsRestart=A %1 eltávolításának befejezéséhez újra kell indítania a számítógépét.%n%nÚjraindítja most?
+UninstallDataCorrupted=A(z) "%1" fájl sérült. Nem távolítható el.
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=Törli a megosztott fájlt?
+ConfirmDeleteSharedFile2=A rendszer azt jelzi, hogy a következõ megosztott fájlra már nincs szüksége egyetlen programnak sem. Eltávolítja a megosztott fájlt?%n%nHa más programok még mindig használják a megosztott fájlt, akkor az eltávolítása után lehet, hogy nem fognak megfelelõen mûködni. Ha bizonytalan, válassza a Nemet. A fájl megtartása nem okoz problémát a rendszerben.
+SharedFileNameLabel=Fájlnév:
+SharedFileLocationLabel=Helye:
+WizardUninstalling=Eltávolítás állapota
+StatusUninstalling=%1 eltávolítása...
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 %2 verzió
+AdditionalIcons=További ikonok:
+CreateDesktopIcon=Ikon létrehozása az &Asztalon
+CreateQuickLaunchIcon=Ikon létrehozása a &Gyorsindítás eszköztáron
+ProgramOnTheWeb=%1 a weben
+UninstallProgram=%1 eltávolítása
+LaunchProgram=%1 elindítása
+AssocFileExtension=A %1 &társítása a(z) %2 fájlkiterjesztéssel
+AssocingFileExtension=A %1 társítása a(z) %2 fájlkiterjesztéssel...
diff --git a/distrib/custom_messages.iss b/distrib/custom_messages.iss
index e584b387f..8e9e7e3df 100644
--- a/distrib/custom_messages.iss
+++ b/distrib/custom_messages.iss
@@ -8,6 +8,7 @@ en.langid=00000000
en.comp_mpciconlib=Icon Library
en.comp_mpcresources=Translations
en.msg_DeleteSettings=Do you also want to delete MPC-HC settings? %nIf you plan on installing MPC-HC again then you do not have to delete them.
+en.msg_NoD3DX9DLL_found=The latest DirectX runtime is not installed! %n%nPlease download and install the latest DirectX runtime ({#DIRECTX_SDK_DATE}) regardless of your operating system.
en.msg_SetupIsRunningWarning=MPC-HC setup is already running!
en.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
en.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
@@ -29,6 +30,7 @@ br.langid=00000017
br.comp_mpciconlib=Icon Library
br.comp_mpcresources=Translations
br.msg_DeleteSettings=Gostaria tambem de apagar os ajustes do MPC-HC? %nSe voce quiser instalar o MPC-HC novamente então não precisa apagá-los.
+br.msg_NoD3DX9DLL_found=The latest DirectX runtime is not installed! %n%nPlease download and install the latest DirectX runtime ({#DIRECTX_SDK_DATE}) regardless of your operating system.
br.msg_SetupIsRunningWarning=A instalação do MPC-HC ja está sendo executada!
br.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
br.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
@@ -44,38 +46,40 @@ br.ViewChangelog=View Changelog
;Belarusian
by.langid=00000015
-by.comp_mpciconlib=Icon Library
-by.comp_mpcresources=Translations
-by.msg_DeleteSettings=Do you also want to delete MPC-HC settings? %nIf you plan on installing MPC-HC again then you do not have to delete them.
-by.msg_SetupIsRunningWarning=MPC-HC setup is already running!
-by.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-by.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-by.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
-by.tsk_AllUsers=For all users
-by.tsk_CurrentUser=For the current user only
-by.tsk_Other=Other tasks:
-by.tsk_ResetSettings=Reset settings
-by.types_DefaultInstallation=Default installation
-by.types_CustomInstallation=Custom installation
-by.ViewChangelog=View Changelog
+by.comp_mpciconlib=БібліÑÑ‚Ñка значкоў
+by.comp_mpcresources=Пераклады
+by.msg_DeleteSettings=Ці хочаце такÑама выдаліць налады MPC-HC? %nКалі вы збіраецеÑÑ Ð·Ð½Ð¾Ñž уÑталÑваць MPC-HC, тады Ñ–Ñ… можна пакінуць.
+by.msg_NoD3DX9DLL_found=ÐÐ°Ð¹Ð½Ð¾ÑžÑˆÐ°Ñ Ð±Ñ–Ð±Ð»Ñ–ÑÑ‚Ñка DirectX не ÑžÑталÑванаÑ! %n%nСцÑгніце Ñ– ÑžÑталюйце Ñе (верÑÑ–Ñ {#DIRECTX_SDK_DATE}), незалежна ад таго, ÑÐºÐ°Ñ Ñž Ð²Ð°Ñ Ð°Ð¿ÐµÑ€Ð°Ñ†Ñ‹Ð¹Ð½Ð°Ñ ÑÑ–ÑÑ‚Ñма.
+by.msg_SetupIsRunningWarning=Праграма ÑžÑталÑÐ²Ð°Ð½Ð½Ñ MPC-HC ужо працуе!
+by.msg_simd_sse=ГÑÑ‚Ð°Ñ Ð±ÑƒÐ´Ð¾Ð²Ð° MPC-HC вымагае працÑÑар, здольны выконваць інÑтрукцыі SSE. Ваш працÑÑар гÑтага не ўмее.
+by.msg_simd_sse2=ГÑÑ‚Ð°Ñ Ð±ÑƒÐ´Ð¾Ð²Ð° MPC-HC вымагае працÑÑар, здольны выконваць інÑтрукцыі SSE2. Ваш працÑÑар гÑтага не ўмее.
+by.msg_unsupported_cpu=ГÑÑ‚Ð°Ñ Ð±ÑƒÐ´Ð¾Ð²Ð° MPC-HC вымагае працÑÑар тыпу i686 або навейшы. Ваш працÑÑар не абÑлугоўваецца.
+by.tsk_AllUsers=Ð”Ð»Ñ ÑžÑÑ–Ñ… карыÑтальнікаў
+by.tsk_CurrentUser=Толькі Ð´Ð»Ñ Ð´Ð·ÐµÐ¹Ð½Ð°Ð³Ð° карыÑтальніка
+by.tsk_Other=Ð†Ð½ÑˆÑ‹Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ–:
+by.tsk_ResetSettings=Ð’Ñрнуць налады
+by.types_DefaultInstallation=Перадвызначанае ÑžÑталÑванне
+by.types_CustomInstallation=ÐдмыÑловае ÑžÑталÑванне
+by.ViewChangelog=Ð¡Ð¿Ñ–Ñ Ð·Ð¼ÐµÐ½Ð°Ñž
;Catalan
ca.langid=00000019
-ca.comp_mpciconlib=Icon Library
-ca.comp_mpcresources=Translations
+ca.comp_mpciconlib=Llibreria d'icones
+ca.comp_mpcresources=Traduccions
ca.msg_DeleteSettings=Vols eliminar les preferències del MPC-HC? %nSi planeges instal.lar altre cop el MPC-HC no necessites eliminar-les.
+ca.msg_NoD3DX9DLL_found=No està instal.lada la darrera versió de DirectX! %n%nSisplau instal.lar la darrera versió DirectX runtime ({#DIRECTX_SDK_DATE}) independentment del sistema operatiu.
ca.msg_SetupIsRunningWarning=La instal.lació del MPC-HC ja se està executant!
-ca.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-ca.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-ca.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+ca.msg_simd_sse=Aquesta versió de MPC-HC requereix una CPU amb suport d'extensions SSE. La teva CPU no cumpleix aquestes característiques.
+ca.msg_simd_sse2=Aquesta versió de MPC-HC requereix una CPU amb suport d'extensions SSE2. La teva CPU no cumpleix aquestes característiques.
+ca.msg_unsupported_cpu=Aquesta versió de MPC-HC requereix una CPU del tipus i686 o posterior. La teva CPU no està suportada.
ca.tsk_AllUsers=Per tots els usuaris
-ca.tsk_CurrentUser=Només pel usuari actual
+ca.tsk_CurrentUser=Només per l'usuari actual
ca.tsk_Other=Altres tasques:
ca.tsk_ResetSettings=Reiniciar preferències
-ca.types_DefaultInstallation=Default installation
-ca.types_CustomInstallation=Custom installation
-ca.ViewChangelog=View Changelog
+ca.types_DefaultInstallation=Instal.lació per defecte
+ca.types_CustomInstallation=Instal.lació personalitzada
+ca.ViewChangelog=Veure registre de canvis
;Czech
@@ -83,6 +87,7 @@ cz.langid=00000005
cz.comp_mpciconlib=Ikony typů souborů
cz.comp_mpcresources=Jazykové soubory
cz.msg_DeleteSettings=Chcete smazat také nastavení MPC-HC? %nPokud plánujete MPC-HC znovu nainstalovat, mazat je nemusíte.
+cz.msg_NoD3DX9DLL_found=Nainstalovaná verze DirectX není dostateÄnÄ› aktuální! %n%nStáhnÄ›te a nainstalujte nejnovÄ›jší aktualizaci DirectX ({#DIRECTX_SDK_DATE}). %n%nPozor, aktualizace je pro vÅ¡echny verze DirectX, nejen pro DirectX 9!
cz.msg_SetupIsRunningWarning=Instalátor MPC-HC je již spuštěn!
cz.msg_simd_sse=Toto sestavení MPC-HC vyžaduje procesor s podporou rozšíření SSE. Váš procesor tato rozšíření nepodporuje.
cz.msg_simd_sse2=Toto sestavení MPC-HC vyžaduje procesor s podporou rozšíření SSE2. Váš procesor tato rozšíření nepodporuje.
@@ -98,27 +103,29 @@ cz.ViewChangelog=Zobrazit seznam změn
;German
de.langid=00000002
-de.comp_mpciconlib=Icon Library
-de.comp_mpcresources=Translations
+de.comp_mpciconlib=Symbole für Mediendateien
+de.comp_mpcresources=Ãœbersetzungen
de.msg_DeleteSettings=Wollen Sie auch die Einstellungen des MPC-HC löschen? %nWenn Sie den MPC-HC wieder installieren wollen, dann müssen Sie diese nicht unbedingt löschen.
+de.msg_NoD3DX9DLL_found=Die neueste DirectX-Runtime ist nicht installiert! %n%nBitte laden und installieren Sie die neueste DirectX-Runtime ({#DIRECTX_SDK_DATE}) unabhängig von Ihrem Betriebssystem.
de.msg_SetupIsRunningWarning=MPC-HC Setup wird bereits ausgeführt!
-de.msg_simd_sse=Dieses MPC-HC-Build benötigt einen Prozessor mit SSE-Unterstützung. Ihr Prozesser besitzt diese Eigenschaft nicht.
-de.msg_simd_sse2=Dieses MPC-HC-Build benötigt einen Prozessor mit SSE2-Unterstützung. Ihr Prozesser besitzt diese Eigenschaft nicht.
-de.msg_unsupported_cpu=Dieses MPC-HC-Build benötigt einen Prozessor vom Typ i686 der neuer. Ihr Prozessor wird nicht unterstützt.
+de.msg_simd_sse=Dieses MPC-HC-Build benötigt einen Prozessor mit SSE-Unterstützung. Ihr Prozessor besitzt nicht diese Eigenschaft.
+de.msg_simd_sse2=Dieses MPC-HC-Build benötigt einen Prozessor mit SSE2-Unterstützung. Ihr Prozessor besitzt nicht diese Eigenschaft.
+de.msg_unsupported_cpu=Dieses MPC-HC-Build benötigt einen Prozessor vom Typ i686 oder neuer. Ihr Prozessor wird nicht unterstützt.
de.tsk_AllUsers=Für alle Benutzer
de.tsk_CurrentUser=Für aktuellen Benutzer
de.tsk_Other=Andere Aufgaben:
de.tsk_ResetSettings=Einstellungen zurücksetzen
-de.types_DefaultInstallation=Default installation
-de.types_CustomInstallation=Custom installation
-de.ViewChangelog=View Changelog
+de.types_DefaultInstallation=Standard Installation
+de.types_CustomInstallation=Benutzerdefinierte Installation
+de.ViewChangelog=Zeige Änderungsprotokoll
;Spanish
es.langid=00000006
-es.comp_mpciconlib=Icon Library
-es.comp_mpcresources=Translations
+es.comp_mpciconlib=Librería de iconos
+es.comp_mpcresources=Traducciones
es.msg_DeleteSettings=¿Quiere eliminar también las preferencias de MPC-HC? %nSi planea instalar de nuevo MPC-HC no necesita eliminarlas.
+es.msg_NoD3DX9DLL_found=¡No está instalada la última versión de DirectX! %n%nPor favor descargue e instale DirectX runtime ({#DIRECTX_SDK_DATE}) independientemente de su sistema operativo.
es.msg_SetupIsRunningWarning=La instalación de MPC-HC ya se esta ejecutando!
es.msg_simd_sse=Esta versión de MPC-HC requiere una CPU con soporte de extensiones SSE. Su CPU carece de esta característica.
es.msg_simd_sse2=Esta versión de MPC-HC requiere una CPU con soporte de extensiones SSE2. Su CPU carece de esta característica.
@@ -127,9 +134,9 @@ es.tsk_AllUsers=Para todos los usuarios
es.tsk_CurrentUser=Para el usuario actual solamente
es.tsk_Other=Otras tareas:
es.tsk_ResetSettings=Restaurar preferencias
-es.types_DefaultInstallation=Default installation
-es.types_CustomInstallation=Custom installation
-es.ViewChangelog=View Changelog
+es.types_DefaultInstallation=Instalación por defecto
+es.types_CustomInstallation=Instalación personalizada
+es.ViewChangelog=Ver registro de cambios
;French
@@ -137,6 +144,7 @@ fr.langid=00000001
fr.comp_mpciconlib=Bibliothèque d'icône
fr.comp_mpcresources=Traductions
fr.msg_DeleteSettings=Voulez-vous aussi supprimer les paramètres de MPC-HC ? %nSi vous voulez réinstaller MPC-HC, il est conseillé de ne pas les supprimer.
+fr.msg_NoD3DX9DLL_found=La dernière version des composants d'exécution DirectX n'est pas installée ! %nCelle-ci est nécessaire quel que soit votre système d'exploitation, veuillez la télécharger et l'installer ({#DIRECTX_SDK_DATE}).
fr.msg_SetupIsRunningWarning=L'installation de MPC-HC est déjà en cours d'exécution!
fr.msg_simd_sse=Cette version de MPC-HC nécessite un CPU avec support des instructions SSE. Votre CPU n'a pas cette capacité.
fr.msg_simd_sse2=Cette version de MPC-HC nécessite un CPU avec support des instructions SSE2. Votre CPU n'a pas cette capacité.
@@ -152,38 +160,40 @@ fr.ViewChangelog=Voir la liste des changements
;Hungarian
hu.langid=00000007
-hu.comp_mpciconlib=Icon Library
-hu.comp_mpcresources=Translations
+hu.comp_mpciconlib=Ikon Gyűjtemény
+hu.comp_mpcresources=Fordítások
hu.msg_DeleteSettings=Az MPC-HC beállításokat is törölni szeretné? %nHa azt tervezi, hogy újratelepíti az MPC-HC-t, akkor nem kell törölnie őket.
+hu.msg_NoD3DX9DLL_found=A legújabb DirectX nincs telepítve! %n%nKérjük töltse le és telepítse a legújabb DirectX runtime ({#DIRECTX_SDK_DATE}) verziót függetlenül az operációs rendszerétől.
hu.msg_SetupIsRunningWarning=Az MPC-HC telepítő már fut!
-hu.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-hu.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-hu.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+hu.msg_simd_sse=Az MPC-HC jelen változatához SSE támogatással bíró CPU-ra van szüksége. Az ön CPU-ja nem rendelkezik ilyen támogatással.
+hu.msg_simd_sse2=Az MPC-HC jelen változatához SSE2 támogatással bíró CPU-ra van szüksége. Az ön CPU-ja nem rendelkezik ilyen támogatással.
+hu.msg_unsupported_cpu=Az MPC-HC jelen változatához i686, vagy újabb típusjelzésű CPU-ra van szüksége. Az ön CPU-ja nem támogatott.
hu.tsk_AllUsers=Minden felhasználónak
hu.tsk_CurrentUser=Csak a jelenlegi felhasználónak
hu.tsk_Other=Egyéb feladatok:
hu.tsk_ResetSettings=Beállítások alaphelyzetbe állítása
-hu.types_DefaultInstallation=Default installation
-hu.types_CustomInstallation=Custom installation
-hu.ViewChangelog=View Changelog
+hu.types_DefaultInstallation=Szokásos telepítés
+hu.types_CustomInstallation=Egyedi telepítés
+hu.ViewChangelog=Verziótörténet megtekintése
;Italian
it.langid=00000011
-it.comp_mpciconlib=Icon Library
-it.comp_mpcresources=Translations
+it.comp_mpciconlib=Libreria icone
+it.comp_mpcresources=Traduzioni
it.msg_DeleteSettings=Vou eliminare anche le impostazioni di MPC-HC? %nSe pensi di reinstallare MPC-HC in seguito non dovresti eliminarle.
+it.msg_NoD3DX9DLL_found=La libreria di runtime DirectX più recente non è installata! %n%nScarica e installa la libreria di runtime DirectX più recente ({#DIRECTX_SDK_DATE}) indipendentemente dal tuo sistema operativo.
it.msg_SetupIsRunningWarning=L'installazione di MPC-HC è già in corso!
-it.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-it.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-it.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+it.msg_simd_sse=Questa build di MPC-HC richiede una CPU con il supporto alle estensioni SSE. La tua CPU non dispone di questa caratteristica.
+it.msg_simd_sse2=Questa build di MPC-HC richiede una CPU con il supporto alle estensioni SSE2. La tua CPU non dispone di questa caratteristica.
+it.msg_unsupported_cpu=Questa build di MPC-HC richiede una CPU di tipo i686 o più recente. La tua CPU non è supportata.
it.tsk_AllUsers=Per tutti gli utenti
it.tsk_CurrentUser=Solo per l'utente corrente
it.tsk_Other=Altre operazioni:
it.tsk_ResetSettings=Ripristina impostazioni
-it.types_DefaultInstallation=Default installation
-it.types_CustomInstallation=Custom installation
-it.ViewChangelog=View Changelog
+it.types_DefaultInstallation=Installazione predefinita
+it.types_CustomInstallation=Installazione personalizzata
+it.ViewChangelog=Visualizza Changelog
;Japanese
@@ -191,10 +201,11 @@ ja.langid=00000020
ja.comp_mpciconlib=アイコン ライブラリー
ja.comp_mpcresources=翻訳
ja.msg_DeleteSettings=MPC-HC ã®è¨­å®šã‚’削除ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ%nMPC-HC ã‚’å†åº¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹å ´åˆã¯ã€è¨­å®šã‚’削除ã™ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。
+ja.msg_NoD3DX9DLL_found=最新㮠DirectX ランタイムã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¾ã›ã‚“ï¼%n%nオペレーティングシステムã«ã‹ã‹ã‚らãšæœ€æ–°ã® DirectX ランタイム ({#DIRECTX_SDK_DATE}) をダウンロードã—ã¦ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。
ja.msg_SetupIsRunningWarning=MPC-HC ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ©ãƒ¼ã¯æ—¢ã«å®Ÿè¡Œã•ã‚Œã¦ã„ã¾ã™ï¼
-ja.msg_simd_sse=ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®MPC-HCã¯CPUã®SSEサãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™ã€‚ãŠä½¿ã„ã®CPUã¯ã“ã®æ¡ä»¶ã‚’満ãŸã—ã¾ã›ã‚“。
-ja.msg_simd_sse2=ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®MPC-HCã¯CPUã®SSE2サãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™ã€‚ãŠä½¿ã„ã®CPUã¯ã“ã®æ¡ä»¶ã‚’満ãŸã—ã¾ã›ã‚“。
-ja.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+ja.msg_simd_sse=ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® MPC-HC 㯠CPU ã® SSE サãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™ã€‚ãŠä½¿ã„ã® CPU ã¯ã“ã®æ¡ä»¶ã‚’満ãŸã—ã¾ã›ã‚“。
+ja.msg_simd_sse2=ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® MPC-HC 㯠CPU ã® SSE2 サãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™ã€‚ãŠä½¿ã„ã® CPU ã¯ã“ã®æ¡ä»¶ã‚’満ãŸã—ã¾ã›ã‚“。
+ja.msg_unsupported_cpu=ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® MPC-HC 㯠i686 CPU ãŒå¿…è¦ã§ã™ã€‚ãŠä½¿ã„ã® CPU ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“。
ja.tsk_AllUsers=å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã€‚
ja.tsk_CurrentUser=ç¾åœ¨å®Ÿè¡Œã—ã¦ã„るユーザーã ã‘ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã€‚
ja.tsk_Other=ä»–ã®ã‚¿ã‚¹ã‚¯ :
@@ -206,45 +217,48 @@ ja.ViewChangelog=変更履歴を見る
;Korean
kr.langid=00000008
-kr.comp_mpciconlib=Icon Library
-kr.comp_mpcresources=Translations
-kr.msg_DeleteSettings=Do you also want to delete MPC-HC settings? %nIf you plan on installing MPC-HC again then you do not have to delete them.
-kr.msg_SetupIsRunningWarning=MPC-HC setup is already running!
-kr.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-kr.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-kr.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
-kr.tsk_AllUsers=For all users
-kr.tsk_CurrentUser=For the current user only
-kr.tsk_Other=Other tasks:
-kr.tsk_ResetSettings=Reset settings
-kr.types_DefaultInstallation=Default installation
-kr.types_CustomInstallation=Custom installation
-kr.ViewChangelog=View Changelog
+kr.comp_mpciconlib=ì•„ì´ì½˜ ë¼ì´ë¸ŒëŸ¬ë¦¬
+kr.comp_mpcresources=번역
+kr.msg_DeleteSettings=MPC-HC ì˜ ì„¤ì •ë„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ? %nMPC-HC 를 다시 설치할 계íšì´ë¼ë©´ ì„¤ì •ë“¤ì„ ì‚­ì œí•  필요가 없습니다.
+kr.msg_NoD3DX9DLL_found=최신 DirectX ëŸ°íƒ€ìž„ì´ ì„¤ì¹˜ë˜ì–´ìžˆì§€ì•ŠìŠµë‹ˆë‹¤! %n%n사용하는 ìš´ì˜ì²´ì œì— 맞는 최신 DirectX 런타임 ({#DIRECTX_SDK_DATE}) ì„ ë‹¤ìš´ë¡œë“œí•˜ì—¬ 설치하세요.
+kr.msg_SetupIsRunningWarning=MPC-HC ì„¤ì¹˜í”„ë¡œê·¸ëž¨ì´ ì´ë¯¸ 실행중입니다!
+kr.msg_simd_sse=ì´ ë²„ì „ì˜ MPC-HC 는 SSE ê¸°ìˆ ì„ ì§€ì›í•˜ëŠ” CPUê°€ 필요합니다. ì´ ì»´í“¨í„°ì˜ CPU는 ì´ ê¸°ìˆ ì„ ì§€ì›í•˜ì§€ì•ŠìŠµë‹ˆë‹¤.
+kr.msg_simd_sse2=ì´ ë²„ì „ì˜ MPC-HC 는 SSE2 ê¸°ìˆ ì„ ì§€ì›í•˜ëŠ” CPUê°€ 필요합니다. ì´ ì»´í“¨í„°ì˜ CPU는 ì´ ê¸°ìˆ ì„ ì§€ì›í•˜ì§€ì•ŠìŠµë‹ˆë‹¤.
+kr.msg_unsupported_cpu=ì´ ë²„ì „ì˜ MPC-HC 는 i686 ë˜ëŠ” ê·¸ ì´ìƒì˜ CPUê°€ 필요합니다. ì´ ì»´í“¨í„°ì˜ CPU는 지ì›ë˜ì§€ì•ŠìŠµë‹ˆë‹¤.
+kr.tsk_AllUsers=모든 사용ìž
+kr.tsk_CurrentUser=현재 사용ìžë§Œ
+kr.tsk_Other=다른 작업:
+kr.tsk_ResetSettings=설정 초기화
+kr.types_DefaultInstallation=기본 설치
+kr.types_CustomInstallation=사용ìžì •ì˜ 설치
+kr.ViewChangelog=버전 변경사항 보기
;Dutch
nl.langid=00000018
-nl.comp_mpciconlib=Icon Library
-nl.comp_mpcresources=Translations
+nl.comp_mpciconlib=Iconen voor mediabestanden
+nl.comp_mpcresources=Localisaties
nl.msg_DeleteSettings=Wil je ook de instellingen vab MPC-HC verwijderen? %nAls je MPC-HC opnieuw gaat installeren is dit niet nodig.
+nl.msg_NoD3DX9DLL_found=De nieuwste DirectX runtime is niet geinstalleerd! %n%nGraag de nieuwste DirectX runtime ({#DIRECTX_SDK_DATE}) downloaden en installeren ongeacht je windows versie.
nl.msg_SetupIsRunningWarning=MPC-HC installatie is al gestart!
-nl.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-nl.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-nl.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+nl.msg_simd_sse=Deze versie van MPC-HC heeft een processor nodig die SSE ondersteunt. Jouw processor ondersteund dit niet.
+nl.msg_simd_sse2=Deze versie van MPC-HC heeft een processor nodig die SSE2 ondersteunt. Jouw processor ondersteund dit niet.
+nl.msg_unsupported_cpu=Deze versie van MPC-HC heeft een processor nodig van het type i686 of nieuwer. Jouw processor is dat niet.
nl.tsk_AllUsers=Voor alle gebruikers
nl.tsk_CurrentUser=Allen voor de huidige gebruiker
nl.tsk_Other=Andere taken:
nl.tsk_ResetSettings=Instellingen resetten
-nl.types_DefaultInstallation=Default installation
-nl.types_CustomInstallation=Custom installation
-nl.ViewChangelog=View Changelog
+nl.types_DefaultInstallation=Standaard installatie
+nl.types_CustomInstallation=Aangepaste installatie
+nl.ViewChangelog=Bekijk Wijzigingsoverzicht
;Polish
pl.langid=00000009
-pl.comp_mpciconlib=Icon Library
-pl.comp_mpcresources=Translations
+pl.comp_mpciconlib=Ikony plików multimedialnych
+pl.comp_mpcresources=TÅ‚umaczenia
pl.msg_DeleteSettings=Czy chcesz usunąć ustawienia MPC-HC? %nJeśli planujesz ponownie zainstalować MPC-HC, wtedy nie trzeba ich usuwać.
+pl.msg_NoD3DX9DLL_found=Najnowszy DirectX runtime nie został zainstalowany! %n%nProszę pobrać i zainstalować najnowszy DirectX runtime ({#DIRECTX_SDK_DATE}) niezależnie od systemu operacyjnego.
pl.msg_SetupIsRunningWarning=Instalator MPC-HC jest już uruchomiony!
pl.msg_simd_sse=Ta kompilacja MPC-HC wymaga procesora z obsługą zestawu instrukcji SSE. Twój procesor ich nie obsługuje.
pl.msg_simd_sse2=Ta kompilacja MPC-HC wymaga procesora z obsługą zestawu instrukcji SSE2. Twój procesor ich nie obsługuje.
@@ -253,9 +267,9 @@ pl.tsk_AllUsers=Dla wszystkich użytkowników
pl.tsk_CurrentUser=Tylko dla bieżącego użytkownika
pl.tsk_Other=Inne zadania:
pl.tsk_ResetSettings=Resetuj ustawienia
-pl.types_DefaultInstallation=Default installation
-pl.types_CustomInstallation=Custom installation
-pl.ViewChangelog=View Changelog
+pl.types_DefaultInstallation=Instalacja domyślna
+pl.types_CustomInstallation=Instalacja częściowa
+pl.ViewChangelog=Pokaż zmiany
;Russian
@@ -263,6 +277,7 @@ ru.langid=00000003
ru.comp_mpciconlib=Библиотека иконок
ru.comp_mpcresources=Локализации
ru.msg_DeleteSettings=Хотите ли вы удалить наÑтройки MPC-HC? %nЕÑли вы планируете переуÑтановить MPC-HC, то вам не нужно их удалÑÑ‚ÑŒ.
+ru.msg_NoD3DX9DLL_found=The latest DirectX runtime is not installed! %n%nPlease download and install the latest DirectX runtime ({#DIRECTX_SDK_DATE}) regardless of your operating system.
ru.msg_SetupIsRunningWarning=УÑтановка MPC-HC уже запущена!
ru.msg_simd_sse=Этот билд MPC-HC требует ЦПУ Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ SSE инÑтрукций. Ваш ЦПУ их не поддерживает.
ru.msg_simd_sse2=Этот билд MPC-HC требует ЦПУ Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ SSE2 инÑтрукций. Ваш ЦПУ их не поддерживает.
@@ -281,10 +296,11 @@ sc.langid=00000013
sc.comp_mpciconlib=图标库
sc.comp_mpcresources=翻译
sc.msg_DeleteSettings=是å¦åŒæ—¶åˆ é™¤ MPC-HC 设置? %n如果您打算å†æ¬¡å®‰è£… MPC-HC 则无需删除。
+sc.msg_NoD3DX9DLL_found=还没安装最新版本的 DirectX è¿è¡Œåº“! %n%nä¸è®ºæ‚¨æ‰€ä½¿ç”¨çš„作业系统请下载åŠæ›´æ–°è‡³æœ€æ–°ç‰ˆæœ¬çš„ DirectX è¿è¡Œåº“ ({#DIRECTX_SDK_DATE})。
sc.msg_SetupIsRunningWarning=MPC-HC 安装程åºå·²åœ¨è¿è¡Œä¸­ï¼
sc.msg_simd_sse=这个编译版的 MPC-HC 需è¦ä¸€ä¸ªæ”¯æŒ SSE 指令集的 CPU。但是您的 CPU 并ä¸æ”¯æŒè¿™ä¸ªåŠŸèƒ½ã€‚
sc.msg_simd_sse2=这个编译版的 MPC-HC 需è¦ä¸€ä¸ªæ”¯æŒ SSE2 指令集的 CPU。但是您的 CPU 并ä¸æ”¯æŒè¿™ä¸ªåŠŸèƒ½ã€‚
-sc.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+sc.msg_unsupported_cpu=这个编译版的 MPC-HC éœ€è¦ i686 或更新ç§ç±»çš„ CPU。但是您的 CPU 并ä¸æ”¯æŒã€‚
sc.tsk_AllUsers=为所有用户安装
sc.tsk_CurrentUser=仅为当å‰ç”¨æˆ·å®‰è£…
sc.tsk_Other=其他任务:
@@ -296,74 +312,78 @@ sc.ViewChangelog=查看更新日志
;Swedish
se.langid=00000016
-se.comp_mpciconlib=Icon Library
-se.comp_mpcresources=Translations
-se.msg_DeleteSettings=Vill du också ta bort MPC-HC inställningar? %nOm du planerar att installera MPC-HC igen så behöver du inte radera dem.
-se.msg_SetupIsRunningWarning=Inställning av MPC-HC pågår redan!
-se.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-se.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-se.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+se.comp_mpciconlib=Ikonbibliotek
+se.comp_mpcresources=Översättningar
+se.msg_DeleteSettings=Vill du också ta bort inställningarna för MPC-HC? %nOm du planerar att installera MPC-HC igen så behöver du inte ta bort dem.
+se.msg_NoD3DX9DLL_found=Senaste DirectX har inte installerats! %n%nHämta ner och installera senaste DirectX ({#DIRECTX_SDK_DATE}) oavsett ditt operativsystem.
+se.msg_SetupIsRunningWarning=Konfigurering av MPC-HC pågår redan!
+se.msg_simd_sse=Detta bygge av MPC-HC kräver en processor med stöd för SSE-tillägget. Din processor saknar detta stöd.
+se.msg_simd_sse2=Detta bygge av MPC-HC kräver en processor med stöd för SSE2-tillägget. Din processor saknar detta stöd.
+se.msg_unsupported_cpu=Detta bygge av MPC-HC kräver en processor av typen i686 eller senare. Din processor stöds inte.
se.tsk_AllUsers=För alla användare
se.tsk_CurrentUser=Endast för den aktuella användaren
se.tsk_Other=Andra uppgifter:
se.tsk_ResetSettings=Återställ inställningar
-se.types_DefaultInstallation=Default installation
-se.types_CustomInstallation=Custom installation
-se.ViewChangelog=View Changelog
+se.types_DefaultInstallation=Standardinstallation
+se.types_CustomInstallation=Anpassad installation
+se.ViewChangelog=Visa ändringslogg
;Slovakian
sk.langid=00000012
-sk.comp_mpciconlib=Icon Library
-sk.comp_mpcresources=Translations
+sk.comp_mpciconlib=Knižnica ikon
+sk.comp_mpcresources=Preklady
sk.msg_DeleteSettings=Chcete vymazať aj nastavenia programu MPC-HC? %nAk plánujete opätovnú inštaláciu programu MPC-HC, tak nie je potrebné ich vymazávať.
+sk.msg_NoD3DX9DLL_found=NajnovÅ¡ie rozhranie DirectX nie je nainÅ¡talované! %n%nProsím stiahnite a nainÅ¡talujte si ho ({#DIRECTX_SDK_DATE}) bez ohľadu na verziu operaÄného systému.
sk.msg_SetupIsRunningWarning=Inštalácia programu MPC-HC je už spustená!
-sk.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-sk.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-sk.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+sk.msg_simd_sse=Toto zostavenie MPC-HC vyžaduje procesor s podporou inštrukcií SSE. Váš procesor ich nepodporuje.
+sk.msg_simd_sse2=Toto zostavenie MPC-HC vyžaduje procesor s podporou inštrukcií SSE2. Váš procesor ich nepodporuje.
+sk.msg_unsupported_cpu=Toto zostavenie MPC-HC vyžaduje procesor typu i686 alebo novší. Váš procesor nie je podporovaný.
sk.tsk_AllUsers=Pre všetkých používateľov
sk.tsk_CurrentUser=Len pre aktuálneho používateľa
sk.tsk_Other=Iné úlohy:
sk.tsk_ResetSettings=Obnoviť pôvodné nastavenia
-sk.types_DefaultInstallation=Default installation
-sk.types_CustomInstallation=Custom installation
-sk.ViewChangelog=View Changelog
+sk.types_DefaultInstallation=Predvolená inštalácia
+sk.types_CustomInstallation=Vlastná inštalácia
+sk.ViewChangelog=Zobraziť zoznam zmien
;Chinese Traditional
tc.langid=00000014
tc.comp_mpciconlib=圖示庫
tc.comp_mpcresources=翻譯
-tc.msg_DeleteSettings=是å¦åŒæ™‚刪除 MPC-HC 設置? %n如果您打算å†æ¬¡å®‰è£ MPC-HC 則無需刪除。
-tc.msg_SetupIsRunningWarning=MPC-HC 安è£ç¨‹å¼å·²åœ¨é‹è¡Œä¸­!
-tc.msg_simd_sse=此版的 MPC-HC 需è¦æœ‰æ”¯æ´ SSE 指令集的 CPU. 您的 CPU 並未相容這些功能.
-tc.msg_simd_sse2=此版的 MPC-HC é ˆè¦æœ‰æ”¯æ´ SSE2 指令集的 CPU. 您的 CPU 並未相容這些功能.
-tc.msg_unsupported_cpu=此版的 MPC-HC éœ€è¦ i686 或更新種類的 CPU. 您的 CPU 並ä¸æ”¯æ´.
-tc.tsk_AllUsers=為所有用戶安è£
-tc.tsk_CurrentUser=僅為當å‰ç”¨æˆ¶å®‰è£
-tc.tsk_Other=其他任務:
-tc.tsk_ResetSettings=é‡ç½®è¨­ç½®
+tc.msg_DeleteSettings=您是å¦ä¹Ÿè¦åˆªé™¤ MPC-HC 設定?%n如果您打算å†æ¬¡å®‰è£ MPC-HC 則無需刪除。
+tc.msg_NoD3DX9DLL_found=未安è£æœ€æ–°ç‰ˆæœ¬çš„ DirectX Runtimeï¼%n%nä¸è«–您使用的作業系統為何,請下載並更新至最新版本的 DirectX Runtime ({#DIRECTX_SDK_DATE})。
+tc.msg_SetupIsRunningWarning=已在執行 MPC-HC 安è£ç¨‹å¼ï¼
+tc.msg_simd_sse=此版的 MPC-HC 需è¦æœ‰æ”¯æ´ SSE 延伸指令集的 CPU。您的 CPU 並未相容這些功能。
+tc.msg_simd_sse2=此版的 MPC-HC é ˆè¦æœ‰æ”¯æ´ SSE2 延伸指令集的 CPU。您的 CPU 並未相容這些功能。
+tc.msg_unsupported_cpu=此版的 MPC-HC éœ€è¦ i686 或更新的 CPU 類型。您的 CPU 並ä¸æ”¯æ´ã€‚
+tc.tsk_AllUsers=安è£çµ¦æ‰€æœ‰ä½¿ç”¨è€…
+tc.tsk_CurrentUser=僅安è£çµ¦ç›®å‰ä½¿ç”¨è€…
+tc.tsk_Other=其它工作:
+tc.tsk_ResetSettings=é‡è¨­è¨­å®š
tc.types_DefaultInstallation=é è¨­å®‰è£
-tc.types_CustomInstallation=自定安è£
+tc.types_CustomInstallation=自訂安è£
tc.ViewChangelog=檢視更新日誌
;Turkish
tr.langid=00000004
-tr.comp_mpciconlib=Icon Library
-tr.comp_mpcresources=Translations
-tr.msg_DeleteSettings=HPC-HC ayarlarını silmek istiyor musunuz? %nEğer tekrar MPC-HC yüklemeyi planlıyorsanız, onları silmeyebilirsiniz.
+tr.comp_mpciconlib=Simge Kütüphanesi
+tr.comp_mpcresources=Çeviriler
+tr.msg_DeleteSettings=MPC-HC ayarlarını silmek istiyor musunuz? %nMPC-HC 'yi tekrar yüklemeyi planlıyorsanız, bu ayarları silmemeniz önerilir.
+tr.msg_NoD3DX9DLL_found=En son DirectX çalıştırılabilir paketi yüklü değil! %n%nLütfen en son DirectX paketini ({#DIRECTX_SDK_DATE}) innDirip kurunuz. İşletim sistemi sürümünüz, bu aşamada önemli değildir.
tr.msg_SetupIsRunningWarning=MPC-HC kurulumu zaten çalışıyor.
-tr.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-tr.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-tr.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+tr.msg_simd_sse=Bu MPC-HC sürümü, SSE eklentisi destekleyen bir işlemci gerektirmektedir. İşlemciniz bu özelliği desteklemiyor.
+tr.msg_simd_sse2=Bu MPC-HC sürümü, SSE2 eklentisi destekleyen bir işlemci gerektirmektedir. İşlemciniz bu özelliği desteklemiyor.
+tr.msg_unsupported_cpu=Bu MPC-HC sürümü, i686 veya daha yeni tabanlı bir işlemci gerektirmektedir. İşlemciniz desteklenmiyor.
tr.tsk_AllUsers=Tüm kullanıcılar için
tr.tsk_CurrentUser=Sadece mevcut kullanıcı için
tr.tsk_Other=Diğer görevler:
tr.tsk_ResetSettings=Ayarları sıfırla
-tr.types_DefaultInstallation=Default installation
-tr.types_CustomInstallation=Custom installation
-tr.ViewChangelog=View Changelog
+tr.types_DefaultInstallation=Varsayılan yükleme
+tr.types_CustomInstallation=Özel yükleme
+tr.ViewChangelog=Sürüm Notları
;Ukrainian
@@ -371,10 +391,11 @@ ua.langid=00000010
ua.comp_mpciconlib=Бібліотека іконок
ua.comp_mpcresources=Локалізації
ua.msg_DeleteSettings=Чи хочете ви видалити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ MPC-HC? %nЯкщо ви плануєте проÑто повторно вÑтановити MPC-HC, то вам не потрібно Ñ—Ñ… видалÑти.
+ua.msg_NoD3DX9DLL_found=ОÑтанню верÑÑ–ÑŽ DirectX не вÑтановлено! %n%nБудь лаÑка, завантажте Ñ– вÑтановіть оÑтанню верÑÑ–ÑŽ DirectX ({#DIRECTX_SDK_DATE}) відповідно до операційної ÑиÑтеми, Ñку ви викориÑтовуєте.
ua.msg_SetupIsRunningWarning=Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ MPC-HC вже запущено!
-ua.msg_simd_sse=This build of MPC-HC requires a CPU with SSE extension support. Your CPU does not have those capabilities.
-ua.msg_simd_sse2=This build of MPC-HC requires a CPU with SSE2 extension support. Your CPU does not have those capabilities.
-ua.msg_unsupported_cpu=This build of MPC-HC requires a CPU of type i686 or newer. Your CPU is not supported.
+ua.msg_simd_sse=Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ— MPC-HC необхідно, щоб ваш процеÑор підтримував SSE розширеннÑ. Ðле ваш процеÑор не підтримує Ñ—Ñ….
+ua.msg_simd_sse2=Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ— MPC-HC необхідно, щоб ваш процеÑор підтримував SSE2 розширеннÑ. Ðле ваш процеÑор не підтримує Ñ—Ñ….
+ua.msg_unsupported_cpu=Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ— MPC-HC необхідно, щоб ваш процеÑор був i686 типу або новіший. Ваш процеÑор не підтримуєтьÑÑ.
ua.tsk_AllUsers=Ð”Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів
ua.tsk_CurrentUser=Лише Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ кориÑтувача
ua.tsk_Other=Інші завданнÑ:
diff --git a/distrib/innosetup_cpu_detection.iss b/distrib/innosetup_cpu_detection.iss
index 0b47a3147..d86163cc3 100644
--- a/distrib/innosetup_cpu_detection.iss
+++ b/distrib/innosetup_cpu_detection.iss
@@ -1,70 +1,70 @@
[Files]
; For CPU detection
-Source: "WinCPUID.dll"; Flags: dontcopy noencryption;
+Source: WinCPUID.dll; Flags: dontcopy noencryption
[Code]
Type
TSystemInfo = record
- wProcessorArchitecture: Word;
- wReserved: Word;
- dwPageSize: DWORD;
- lpMinimumApplicationAddress: Integer;
- lpMaximumApplicationAddress: Integer;
- dwActiveProcessorMask: DWORD;
- dwNumberOfProcessors: DWORD;
- dwProcessorType: DWORD;
- dwAllocationGranularity: DWORD;
- wProcessorLevel: Word;
- wProcessorRevision: Word;
+ wProcessorArchitecture: Word;
+ wReserved: Word;
+ dwPageSize: DWORD;
+ lpMinimumApplicationAddress: Integer;
+ lpMaximumApplicationAddress: Integer;
+ dwActiveProcessorMask: DWORD;
+ dwNumberOfProcessors: DWORD;
+ dwProcessorType: DWORD;
+ dwAllocationGranularity: DWORD;
+ wProcessorLevel: Word;
+ wProcessorRevision: Word;
end;
TCPUCoreInfo_T = record
- dwCPUType,
- dwCPUFamily,
- dwCPUModel,
- dwCPUExtFamily,
- dwCPUExtModel,
- dwCPUStepping,
- dwCPUFeatures, // result from edx when cpuid called with eax=1
- dwCPUAMDExtSignature, // AMD extended features
- dwBrandIndex,
- dwCLFlushLineSize,
- dwCPUExtFeatures: DWORD; // cpuid result when eax = 1
+ dwCPUType,
+ dwCPUFamily,
+ dwCPUModel,
+ dwCPUExtFamily,
+ dwCPUExtModel,
+ dwCPUStepping,
+ dwCPUFeatures, // result from edx when cpuid called with eax=1
+ dwCPUAMDExtSignature, // AMD extended features
+ dwBrandIndex,
+ dwCLFlushLineSize,
+ dwCPUExtFeatures: DWORD; // cpuid result when eax = 1
end;
THTInfo = record
- htResultCode: DWord;
- nPhysicalProcs, // Number of physical processors
- nLogicalProcs, // Number of logical processors (including physical processors)
- nLogicalPerPackage: Integer;
- dwPhysicalAffinity, // Mask for physical CPUs
- dwLogicalAffinity: DWORD; // Mask for non-physical CPUs
- nMaxPhysGetProcAff: Integer; // Max number of physical processors to get Phys/Log Affinity table
- pPhysProcAff: Integer; // Allocate nMaxPhysGetProcAff*sizeof(PHYSPROCAFF_T) before calling WinCPUID_Init
+ htResultCode: DWord;
+ nPhysicalProcs, // Number of physical processors
+ nLogicalProcs, // Number of logical processors (including physical processors)
+ nLogicalPerPackage: Integer;
+ dwPhysicalAffinity, // Mask for physical CPUs
+ dwLogicalAffinity: DWORD; // Mask for non-physical CPUs
+ nMaxPhysGetProcAff: Integer; // Max number of physical processors to get Phys/Log Affinity table
+ pPhysProcAff: Integer; // Allocate nMaxPhysGetProcAff*sizeof(PHYSPROCAFF_T) before calling WinCPUID_Init
end;
TCPUInfo = record
- bIsInitialized, // Check this to see if structure was successfully initialized
- bCPUID_Supported,
- bCloneFlag, // 0 -> Intel CPU, non-zero -> non-Intel CPU
- bMMX_Supported,
- bSSE_Supported,
- bSSE2_Supported,
- bSSEMMXExt_Supported, // Some AMD CPUs support SSE MMX (integer) extensions only
- b3DNow_Supported,
- bExt3DNow_Supported,
- bHT_Supported, // HT supported and available for use, check htInfo for more details
- bDAZ_Supported,
- bRDTSC_Supported,
- bCMOV_Supported,
- EmulCode: Integer;
- llCPUFreqL,
- llCPUFreqH: DWord;
- eCPUVendor: DWORD;
- coreInfo: TCPUCoreInfo_T;
- htInfo: THTInfo;
- pCacheInfo: Integer;
- pProcString: String;
+ bIsInitialized, // Check this to see if structure was successfully initialized
+ bCPUID_Supported,
+ bCloneFlag, // 0 -> Intel CPU, non-zero -> non-Intel CPU
+ bMMX_Supported,
+ bSSE_Supported,
+ bSSE2_Supported,
+ bSSEMMXExt_Supported, // Some AMD CPUs support SSE MMX (integer) extensions only
+ b3DNow_Supported,
+ bExt3DNow_Supported,
+ bHT_Supported, // HT supported and available for use, check htInfo for more details
+ bDAZ_Supported,
+ bRDTSC_Supported,
+ bCMOV_Supported,
+ EmulCode: Integer;
+ llCPUFreqL,
+ llCPUFreqH: DWord;
+ eCPUVendor: DWORD;
+ coreInfo: TCPUCoreInfo_T;
+ htInfo: THTInfo;
+ pCacheInfo: Integer;
+ pProcString: String;
end;
var
@@ -90,22 +90,22 @@ begin
WinCPUID_Init(0, CPUInfo);
if (CPUInfo.bIsInitialized = 0) then begin
- // something went wrong
+ // something went wrong
end
else begin
if (CPUInfo.bSSE_Supported = 1) then begin
- cpu_sse := true;
+ cpu_sse := true;
end;
if (CPUInfo.bSSE2_Supported = 1) then begin
- cpu_sse2 := true;
+ cpu_sse2 := true;
end;
cpu_cores := CPUInfo.htInfo.nPhysicalProcs;
if cpu_cores > 8 then begin
- cpu_cores := 8;
+ cpu_cores := 8;
end;
if cpu_cores < 1 then begin
- cpu_cores := 1;
+ cpu_cores := 1;
end;
cpu_family := CPUInfo.coreInfo.dwCPUFamily;
@@ -136,4 +136,3 @@ function HasSupportedCPU(): Boolean;
begin
Result := (cpu_family >= 6);
end;
-
diff --git a/distrib/mpc-hc_setup.iss b/distrib/mpc-hc_setup.iss
index c5e44efcb..252141d14 100644
--- a/distrib/mpc-hc_setup.iss
+++ b/distrib/mpc-hc_setup.iss
@@ -10,6 +10,10 @@
;If you want to compile the MSVC2010 build installer, change the "VS2010" to "True"
#define VS2010 = False
+;Don't forget to update the DirectX SDK number (not updated so often)
+#define DIRECTX_SDK_NUMBER = 43
+
+
;workaround since ISPP doesn't work with relative paths
#include "Installer\..\..\include\Version.h"
@@ -17,6 +21,7 @@
#define app_version str(VERSION_MAJOR) + "." + str(VERSION_MINOR) + "." + str(VERSION_REV) + "." + str(VERSION_PATCH)
#define app_url "http://mpc-hc.sourceforge.net/"
+
;workaround in order to be able to build the 64bit installer through cmd; we define Buildx64=True for that.
#ifdef Buildx64
#define is64bit = True
@@ -124,7 +129,7 @@ Name: cz; MessagesFile: compiler:Languages\Czech.isl
Name: de; MessagesFile: compiler:Languages\German.isl
Name: es; MessagesFile: compiler:Languages\Spanish.isl
Name: fr; MessagesFile: compiler:Languages\French.isl
-Name: hu; MessagesFile: compiler:Languages\Hungarian.isl
+Name: hu; MessagesFile: Languages\Hungarian.isl
Name: it; MessagesFile: compiler:Languages\Italian.isl
Name: ja; MessagesFile: compiler:Languages\Japanese.isl
Name: kr; MessagesFile: Languages\Korean.isl
@@ -189,16 +194,16 @@ Source: ..\COPYING.txt; DestDir: {app}; Components: main; Flags: ignoreversion
[Run]
-Filename: {app}\{#mpchc_exe}; Description: {cm:LaunchProgram,{#app_name}}; Flags: nowait postinstall skipifsilent unchecked
-Filename: {app}\Changelog.txt; Description: {cm:ViewChangelog}; Flags: shellexec nowait postinstall skipifsilent unchecked
+Filename: {app}\{#mpchc_exe}; Description: {cm:LaunchProgram,{#app_name}}; WorkingDir: {app}; Flags: nowait postinstall skipifsilent unchecked
+Filename: {app}\Changelog.txt; Description: {cm:ViewChangelog}; WorkingDir: {app}; Flags: shellexec nowait postinstall skipifsilent unchecked
[Icons]
#if is64bit
-Name: {group}\{#app_name} x64; Filename: {app}\{#mpchc_exe}; Comment: {#app_name} v{#app_version} x64; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}
+Name: {group}\{#app_name} x64; Filename: {app}\{#mpchc_exe}; Comment: {#app_name} v{#app_version} x64; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}; IconIndex: 0
Name: {commondesktop}\{#app_name} x64; Filename: {app}\{#mpchc_exe}; Tasks: desktopicon\common; Comment: {#app_name} v{#app_version} x64; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}; IconIndex: 0
Name: {userdesktop}\{#app_name} x64; Filename: {app}\{#mpchc_exe}; Tasks: desktopicon\user; Comment: {#app_name} v{#app_version} x64; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}; IconIndex: 0
-Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#app_name} x64; Filename: {app}\{#mpchc_exe}; Tasks: quicklaunchicon; Comment: {#app_name} v{#app_version} x64; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}
+Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#app_name} x64; Filename: {app}\{#mpchc_exe}; Tasks: quicklaunchicon; Comment: {#app_name} v{#app_version} x64; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}; IconIndex: 0
#else
Name: {group}\{#app_name}; Filename: {app}\{#mpchc_exe}; Comment: {#app_name} v{#app_version}; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}; IconIndex: 0
Name: {commondesktop}\{#app_name}; Filename: {app}\{#mpchc_exe}; Tasks: desktopicon\common; Comment: {#app_name} v{#app_version}; WorkingDir: {app}; IconFilename: {app}\{#mpchc_exe}; IconIndex: 0
@@ -224,19 +229,10 @@ Type: files; Name: {app}\COPYING; Check: IsUpdate()
// Global variables and constants
const installer_mutex_name = 'mpchc_setup_mutex';
-Var
+var
is_update: Boolean;
-// Check if MPC-HC's settings exist
-function SettingsExistCheck(): Boolean;
-begin
- Result := False;
- if RegKeyExists(HKEY_CURRENT_USER, 'Software\Gabest\Media Player Classic') OR FileExists(ExpandConstant('{app}\{#mpchc_ini}')) then
- Result := True;
-end;
-
-
function GetInstallFolder(Default: String): String;
var
InstallPath: String;
@@ -253,12 +249,29 @@ begin
end;
+function D3DX9DLLExists(): Boolean;
+begin
+ Result := False;
+ if FileExists(ExpandConstant('{sys}\D3DX9_{#DIRECTX_SDK_NUMBER}.dll')) then
+ Result := True;
+end;
+
+
function IsUpdate(): Boolean;
begin
Result := is_update;
end;
+// Check if MPC-HC's settings exist
+function SettingsExistCheck(): Boolean;
+begin
+ Result := False;
+ if RegKeyExists(HKEY_CURRENT_USER, 'Software\Gabest\Media Player Classic') OR FileExists(ExpandConstant('{app}\{#mpchc_ini}')) then
+ Result := True;
+end;
+
+
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if IsUpdate then begin
@@ -287,7 +300,7 @@ end;
procedure CurStepChanged(CurStep: TSetupStep);
-Var
+var
lang : Integer;
begin
if CurStep = ssPostInstall then begin
@@ -305,6 +318,13 @@ begin
end;
end;
+
+ if CurStep = ssDone then begin
+ if NOT WizardSilent() AND NOT D3DX9DLLExists() then begin
+ MsgBox(ExpandConstant('{cm:msg_NoD3DX9DLL_found}'), mbCriticalError, MB_OK)
+ end;
+ end;
+
end;
@@ -326,7 +346,7 @@ begin
Result := True;
// Create a mutex for the installer and if it's already running display a message and stop installation
if CheckForMutexes(installer_mutex_name) then begin
- if not WizardSilent() then
+ if NOT WizardSilent() then
MsgBox(ExpandConstant('{cm:msg_SetupIsRunningWarning}'), mbError, MB_OK);
Result := False;
end else begin
@@ -362,3 +382,4 @@ begin
end;
end;
+
diff --git a/include/MediaInfoDLL.h b/include/MediaInfoDLL.h
index d39e5c031..b5a9f4982 100644
--- a/include/MediaInfoDLL.h
+++ b/include/MediaInfoDLL.h
@@ -236,36 +236,36 @@ extern "C"
#ifdef MEDIAINFO_GLIBC
#include <gmodule.h>
- static GModule* Module=NULL;
+ static GModule* MediaInfo_Module=NULL;
#elif defined (_WIN32) || defined (WIN32)
#include <windows.h>
- static HMODULE Module=NULL;
+ static HMODULE MediaInfo_Module=NULL;
#else
#include <dlfcn.h>
- static void* Module=NULL;
+ static void* MediaInfo_Module=NULL;
#endif
static size_t Module_Count=0;
#ifdef MEDIAINFO_GLIBC
#define MEDIAINFO_ASSIGN(_Name,_Name2) \
- if (!g_module_symbol (Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfo_##_Name)) \
+ if (!g_module_symbol (MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfo_##_Name)) \
Errors++;
#define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
- if (!g_module_symbol (Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfoList_##_Name)) \
+ if (!g_module_symbol (MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfoList_##_Name)) \
Errors++;
#elif defined (_WIN32) || defined (WIN32)
#define MEDIAINFO_ASSIGN(_Name,_Name2) \
- MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
+ MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
if (MediaInfo_##_Name==NULL) Errors++;
#define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
- MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
+ MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
if (MediaInfoList_##_Name==NULL) Errors++;
#else
#define MEDIAINFO_ASSIGN(_Name,_Name2) \
- MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
+ MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
if (MediaInfo_##_Name==NULL) Errors++;
#define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
- MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
+ MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
if (MediaInfoList_##_Name==NULL) Errors++;
#endif
@@ -311,23 +311,23 @@ static size_t MediaInfoDLL_Load()
/* Load library */
#ifdef MEDIAINFO_GLIBC
- Module=g_module_open(MEDIAINFODLL_NAME, G_MODULE_BIND_LAZY);
+ MediaInfo_Module=g_module_open(MEDIAINFODLL_NAME, G_MODULE_BIND_LAZY);
#elif defined (_WIN32) || defined (WIN32)
- Module=LoadLibrary(_T(MEDIAINFODLL_NAME));
+ MediaInfo_Module=LoadLibrary(_T(MEDIAINFODLL_NAME));
#else
- Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!Module)
- Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!Module)
- Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!Module)
- Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!Module)
- Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!Module)
- Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ MediaInfo_Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!MediaInfo_Module)
+ MediaInfo_Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!MediaInfo_Module)
+ MediaInfo_Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!MediaInfo_Module)
+ MediaInfo_Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!MediaInfo_Module)
+ MediaInfo_Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!MediaInfo_Module)
+ MediaInfo_Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
#endif
- if (!Module)
+ if (!MediaInfo_Module)
return (size_t)-1;
/* Load methods */
@@ -368,7 +368,7 @@ static size_t MediaInfoDLL_Load()
static size_t MediaInfoDLL_IsLoaded()
{
- if (Module)
+ if (MediaInfo_Module)
return 1;
else
return 0;
@@ -381,13 +381,13 @@ static void MediaInfoDLL_UnLoad()
return;
#ifdef MEDIAINFO_GLIBC
- g_module_close(Module);
+ g_module_close(MediaInfo_Module);
#elif defined (_WIN32) || defined (WIN32)
- FreeLibrary(Module);
+ FreeLibrary(MediaInfo_Module);
#else
- dlclose(Module);
+ dlclose(MediaInfo_Module);
#endif
- Module=NULL;
+ MediaInfo_Module=NULL;
}
#ifdef __cplusplus
@@ -487,13 +487,13 @@ const String Unable_Load_DLL=_T("Unable to load ")_T(MEDIAINFODLL_NAME);
#define MEDIAINFO_TEST_STRING \
if (!IsReady()) return Unable_Load_DLL
#define MEDIAINFO_TEST_STRING_STATIC \
- if (!Module) return Unable_Load_DLL
+ if (!MediaInfo_Module) return Unable_Load_DLL
//---------------------------------------------------------------------------
class MediaInfo
{
public :
- MediaInfo () {if (!Module) MediaInfoDLL_Load(); if (!Module) {Handle=NULL; return;}; Handle=MediaInfo_New();};
+ MediaInfo () {if (!MediaInfo_Module) MediaInfoDLL_Load(); if (!MediaInfo_Module) {Handle=NULL; return;}; Handle=MediaInfo_New();};
~MediaInfo () {MEDIAINFO_TEST_VOID; MediaInfo_Delete(Handle);};
//File
@@ -519,7 +519,7 @@ public :
size_t State_Get () {MEDIAINFO_TEST_INT; return MediaInfo_State_Get(Handle);};
size_t Count_Get (stream_t StreamKind, size_t StreamNumber=(size_t)-1) {MEDIAINFO_TEST_INT; return MediaInfo_Count_Get(Handle, (MediaInfo_stream_C)StreamKind, StreamNumber);};
- bool IsReady() {return (Handle && Module)?true:false;}
+ bool IsReady() {return (Handle && MediaInfo_Module)?true:false;}
private :
void* Handle;
@@ -548,7 +548,7 @@ public :
size_t Count_Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber=(size_t)-1) {MEDIAINFO_TEST_INT; return MediaInfoList_Count_Get(Handle, FilePos, (MediaInfo_stream_C)StreamKind, StreamNumber);};
size_t Count_Get () {MEDIAINFO_TEST_INT; return MediaInfoList_Count_Get_Files(Handle);};
- bool IsReady() {return (Handle && Module)?true:false;}
+ bool IsReady() {return (Handle && MediaInfo_Module)?true:false;}
private :
void* Handle;
diff --git a/include/Version.h b/include/Version.h
index d1be2d4eb..fd98921cf 100644
--- a/include/Version.h
+++ b/include/Version.h
@@ -6,5 +6,8 @@
#define MAKE_STR(x) DO_MAKE_STR(x)
#define VERSION_MAJOR 1
-#define VERSION_MINOR 3
+#define VERSION_MINOR 4
#define VERSION_PATCH 0
+
+// The date of the DirectX SDK used for compilation
+#define DIRECTX_SDK_DATE "June 2010"
diff --git a/include/moreuuids.h b/include/moreuuids.h
index 85fbc0129..3d40fb908 100644
--- a/include/moreuuids.h
+++ b/include/moreuuids.h
@@ -277,25 +277,38 @@ DEFINE_GUID(MEDIASUBTYPE_RAAC,
DEFINE_GUID(MEDIASUBTYPE_RACP,
0x50434152, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+// QuickTime PCM
+
+// 454E4F4E-0000-0010-8000-00AA00389B71
+DEFINE_GUID(MEDIASUBTYPE_PCM_NONE,
+ 0x454E4F4E, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+
// 20776172-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_PCM_RAW,
-0x20776172, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+ 0x20776172, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
// 736f7774-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_PCM_TWOS,
-0x736f7774, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+ 0x736f7774, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
// 74776f73-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_PCM_SOWT,
-0x74776f73, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+ 0x74776f73, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+
+// 34326E69-0000-0010-8000-00AA00389B71
+DEFINE_GUID(MEDIASUBTYPE_PCM_IN24,
+ 0x34326E69, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
//32336E69-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_PCM_IN32,
-0x32336E69, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+ 0x32336E69, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
//32336C66-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_PCM_FL32,
-0x32336C66, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+ 0x32336C66, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+// 34366C66-0000-0010-8000-00AA00389B71
+DEFINE_GUID(MEDIASUBTYPE_PCM_FL64,
+ 0x34366C66, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
enum
{
diff --git a/src/DSUtil/DSMPropertyBag.cpp b/src/DSUtil/DSMPropertyBag.cpp
index 841e7c3b8..b63de0042 100644
--- a/src/DSUtil/DSMPropertyBag.cpp
+++ b/src/DSUtil/DSMPropertyBag.cpp
@@ -63,12 +63,12 @@ STDMETHODIMP IDSMPropertyBagImpl::GetPropertyInfo(ULONG iProperty, ULONG cProper
{
CheckPointer(pPropBag, E_POINTER);
CheckPointer(pcProperties, E_POINTER);
- for(ULONG i = 0; i < cProperties; i++, iProperty++, (*pcProperties)++)
+ for(ULONG i = 0; i < cProperties; i++, iProperty++, (*pcProperties)++)
{
CStringW key = GetKeyAt(iProperty);
pPropBag[i].pstrName = (BSTR)CoTaskMemAlloc((key.GetLength()+1)*sizeof(WCHAR));
if(!pPropBag[i].pstrName) return E_FAIL;
- wcscpy_s(pPropBag[i].pstrName, key.GetLength()+1, key);
+ wcscpy_s(pPropBag[i].pstrName, key.GetLength()+1, key);
}
return S_OK;
}
@@ -125,7 +125,7 @@ HRESULT IDSMPropertyBagImpl::DelProperty(LPCWSTR key)
CCritSec CDSMResource::m_csResources;
CAtlMap<DWORD, CDSMResource*> CDSMResource::m_resources;
-CDSMResource::CDSMResource()
+CDSMResource::CDSMResource()
: mime(_T("application/octet-stream"))
, tag(0)
{
@@ -162,14 +162,14 @@ CDSMResource::~CDSMResource()
CDSMResource& CDSMResource::operator = (const CDSMResource& r)
{
- if( this != &r ) {
- tag = r.tag;
- name = r.name;
- desc = r.desc;
- mime = r.mime;
- data.Copy(r.data);
- }
- return *this;
+ if( this != &r ) {
+ tag = r.tag;
+ name = r.name;
+ desc = r.desc;
+ mime = r.mime;
+ data.Copy(r.data);
+ }
+ return *this;
}
//
@@ -199,7 +199,10 @@ STDMETHODIMP IDSMResourceBagImpl::ResGet(DWORD iIndex, BSTR* ppName, BSTR* ppDes
if(ppName) *ppName = r.name.AllocSysString();
if(ppDesc) *ppDesc = r.desc.AllocSysString();
if(ppMime) *ppMime = r.mime.AllocSysString();
- if(ppData) {*pDataLen = r.data.GetCount(); memcpy(*ppData = (BYTE*)CoTaskMemAlloc(*pDataLen), r.data.GetData(), *pDataLen);}
+ if(ppData) {
+ *pDataLen = r.data.GetCount();
+ memcpy(*ppData = (BYTE*)CoTaskMemAlloc(*pDataLen), r.data.GetData(), *pDataLen);
+ }
if(pTag) *pTag = r.tag;
return S_OK;
@@ -215,7 +218,10 @@ STDMETHODIMP IDSMResourceBagImpl::ResSet(DWORD iIndex, LPCWSTR pName, LPCWSTR pD
if(pName) r.name = pName;
if(pDesc) r.desc = pDesc;
if(pMime) r.mime = pMime;
- if(pData || len == 0) {r.data.SetCount(len); if(pData) memcpy(r.data.GetData(), pData, r.data.GetCount());}
+ if(pData || len == 0) {
+ r.data.SetCount(len);
+ if(pData) memcpy(r.data.GetData(), pData, r.data.GetCount());
+ }
r.tag = tag;
return S_OK;
@@ -271,12 +277,12 @@ CDSMChapter::CDSMChapter(REFERENCE_TIME rt, LPCWSTR name)
CDSMChapter& CDSMChapter::operator = (const CDSMChapter& c)
{
- if( this != &c ) {
- order = c.counter;
- rt = c.rt;
- name = c.name;
- }
- return *this;
+ if( this != &c ) {
+ order = c.counter;
+ rt = c.rt;
+ name = c.name;
+ }
+ return *this;
}
int CDSMChapter::counter = 0;
@@ -387,16 +393,16 @@ STDMETHODIMP IDSMChapterBagImpl::ChapSort()
// CDSMChapterBag
//
-CDSMChapterBag::CDSMChapterBag(LPUNKNOWN pUnk, HRESULT* phr)
+CDSMChapterBag::CDSMChapterBag(LPUNKNOWN pUnk, HRESULT* phr)
: CUnknown(_T("CDSMChapterBag"), NULL)
{
}
STDMETHODIMP CDSMChapterBag::NonDelegatingQueryInterface(REFIID riid, void** ppv)
{
- CheckPointer(ppv, E_POINTER);
+ CheckPointer(ppv, E_POINTER);
return
QI(IDSMChapterBag)
- __super::NonDelegatingQueryInterface(riid, ppv);
+ __super::NonDelegatingQueryInterface(riid, ppv);
}
diff --git a/src/DSUtil/DSMPropertyBag.h b/src/DSUtil/DSMPropertyBag.h
index b13172379..73862d3ae 100644
--- a/src/DSUtil/DSMPropertyBag.h
+++ b/src/DSUtil/DSMPropertyBag.h
@@ -5,7 +5,8 @@
// IDSMPropertyBag
interface __declspec(uuid("232FD5D2-4954-41E7-BF9B-09E1257B1A95"))
-IDSMPropertyBag : public IPropertyBag2
+IDSMPropertyBag :
+public IPropertyBag2
{
STDMETHOD(SetProperty) (LPCWSTR key, LPCWSTR value) = 0;
STDMETHOD(SetProperty) (LPCWSTR key, VARIANT* var) = 0;
@@ -16,8 +17,12 @@ IDSMPropertyBag : public IPropertyBag2
class IDSMPropertyBagImpl : public ATL::CSimpleMap<CStringW, CStringW>, public IDSMPropertyBag, public IPropertyBag
{
- BOOL Add(const CStringW& key, const CStringW& val) {return __super::Add(key, val);}
- BOOL SetAt(const CStringW& key, const CStringW& val) {return __super::SetAt(key, val);}
+ BOOL Add(const CStringW& key, const CStringW& val) {
+ return __super::Add(key, val);
+ }
+ BOOL SetAt(const CStringW& key, const CStringW& val) {
+ return __super::SetAt(key, val);
+ }
public:
IDSMPropertyBagImpl();
@@ -25,8 +30,8 @@ public:
// IPropertyBag
- STDMETHODIMP Read(LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog);
- STDMETHODIMP Write(LPCOLESTR pszPropName, VARIANT* pVar);
+ STDMETHODIMP Read(LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog);
+ STDMETHODIMP Write(LPCOLESTR pszPropName, VARIANT* pVar);
// IPropertyBag2
@@ -48,7 +53,8 @@ public:
// IDSMResourceBag
interface __declspec(uuid("EBAFBCBE-BDE0-489A-9789-05D5692E3A93"))
-IDSMResourceBag : public IUnknown
+IDSMResourceBag :
+public IUnknown
{
STDMETHOD_(DWORD, ResGetCount) () = 0;
STDMETHOD(ResGet) (DWORD iIndex, BSTR* ppName, BSTR* ppDesc, BSTR* ppMime, BYTE** ppData, DWORD* pDataLen, DWORD_PTR* pTag) = 0;
@@ -83,7 +89,9 @@ protected:
public:
IDSMResourceBagImpl();
- void operator += (const CDSMResource& r) {m_resources.Add(r);}
+ void operator += (const CDSMResource& r) {
+ m_resources.Add(r);
+ }
// IDSMResourceBag
@@ -98,7 +106,8 @@ public:
// IDSMChapterBag
interface __declspec(uuid("2D0EBE73-BA82-4E90-859B-C7C48ED3650F"))
-IDSMChapterBag : public IUnknown
+IDSMChapterBag :
+public IUnknown
{
STDMETHOD_(DWORD, ChapGetCount) () = 0;
STDMETHOD(ChapGet) (DWORD iIndex, REFERENCE_TIME* prt, BSTR* ppName) = 0;
@@ -133,7 +142,10 @@ protected:
public:
IDSMChapterBagImpl();
- void operator += (const CDSMChapter& c) {m_chapters.Add(c); m_fSorted = false;}
+ void operator += (const CDSMChapter& c) {
+ m_chapters.Add(c);
+ m_fSorted = false;
+ }
// IDSMChapterBag
@@ -165,9 +177,20 @@ int range_bsearch(const CAtlArray<T>& array, REFERENCE_TIME rt)
{
int mid = (i + j) >> 1;
REFERENCE_TIME midrt = array[mid].rt;
- if(rt == midrt) {ret = mid; break;}
- else if(rt < midrt) {ret = -1; if(j == mid) mid--; j = mid;}
- else if(rt > midrt) {ret = mid; if(i == mid) mid++; i = mid;}
+ if(rt == midrt) {
+ ret = mid;
+ break;
+ }
+ else if(rt < midrt) {
+ ret = -1;
+ if(j == mid) mid--;
+ j = mid;
+ }
+ else if(rt > midrt) {
+ ret = mid;
+ if(i == mid) mid++;
+ i = mid;
+ }
}
return ret;
}
diff --git a/src/DSUtil/DSUtil.cpp b/src/DSUtil/DSUtil.cpp
index 7100e6ae8..3242f3b16 100644
--- a/src/DSUtil/DSUtil.cpp
+++ b/src/DSUtil/DSUtil.cpp
@@ -1,20 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -51,7 +53,7 @@ void DumpStreamConfig(TCHAR* fn, IAMStreamConfig* pAMVSCCap)
if(size == sizeof(VIDEO_STREAM_CONFIG_CAPS))
{
- CString ss;
+ CString ss;
for(ptrdiff_t i = 0; i < cnt; i++)
{
AM_MEDIA_TYPE* pmt = NULL;
@@ -60,7 +62,8 @@ void DumpStreamConfig(TCHAR* fn, IAMStreamConfig* pAMVSCCap)
memset(&caps, 0, sizeof(caps));
s.Empty();
- ss.Format(_T("%d\n"), i); s += ss;
+ ss.Format(_T("%d\n"), i);
+ s += ss;
f.WriteString(s);
if(FAILED(pAMVSCCap->GetStreamCaps(i, &pmt, (BYTE*)&caps)))
@@ -68,48 +71,70 @@ void DumpStreamConfig(TCHAR* fn, IAMStreamConfig* pAMVSCCap)
{
s.Empty();
- ss.Format(_T("VIDEO_STREAM_CONFIG_CAPS\n")); s += ss;
- ss.Format(_T("\tVideoStandard 0x%08x\n"), caps.VideoStandard); s += ss;
- ss.Format(_T("\tInputSize %dx%d\n"), caps.InputSize); s += ss;
- ss.Format(_T("\tCroppingSize %dx%d - %dx%d\n"), caps.MinCroppingSize, caps.MaxCroppingSize); s += ss;
- ss.Format(_T("\tCropGranularity %d, %d\n"), caps.CropGranularityX, caps.CropGranularityY); s += ss;
- ss.Format(_T("\tCropAlign %d, %d\n"), caps.CropAlignX, caps.CropAlignY); s += ss;
- ss.Format(_T("\tOutputSize %dx%d - %dx%d\n"), caps.MinOutputSize, caps.MaxOutputSize); s += ss;
- ss.Format(_T("\tOutputGranularity %d, %d\n"), caps.OutputGranularityX, caps.OutputGranularityY); s += ss;
- ss.Format(_T("\tStretchTaps %d, %d\n"), caps.StretchTapsX, caps.StretchTapsY); s += ss;
- ss.Format(_T("\tShrinkTaps %d, %d\n"), caps.ShrinkTapsX, caps.ShrinkTapsY); s += ss;
- ss.Format(_T("\tFrameInterval %I64d, %I64d (%.4f, %.4f)\n"),
- caps.MinFrameInterval, caps.MaxFrameInterval,
- (float)10000000/caps.MinFrameInterval, (float)10000000/caps.MaxFrameInterval); s += ss;
- ss.Format(_T("\tBitsPerSecond %d - %d\n"), caps.MinBitsPerSecond, caps.MaxBitsPerSecond); s += ss;
+ ss.Format(_T("VIDEO_STREAM_CONFIG_CAPS\n"));
+ s += ss;
+ ss.Format(_T("\tVideoStandard 0x%08x\n"), caps.VideoStandard);
+ s += ss;
+ ss.Format(_T("\tInputSize %dx%d\n"), caps.InputSize);
+ s += ss;
+ ss.Format(_T("\tCroppingSize %dx%d - %dx%d\n"), caps.MinCroppingSize, caps.MaxCroppingSize);
+ s += ss;
+ ss.Format(_T("\tCropGranularity %d, %d\n"), caps.CropGranularityX, caps.CropGranularityY);
+ s += ss;
+ ss.Format(_T("\tCropAlign %d, %d\n"), caps.CropAlignX, caps.CropAlignY);
+ s += ss;
+ ss.Format(_T("\tOutputSize %dx%d - %dx%d\n"), caps.MinOutputSize, caps.MaxOutputSize);
+ s += ss;
+ ss.Format(_T("\tOutputGranularity %d, %d\n"), caps.OutputGranularityX, caps.OutputGranularityY);
+ s += ss;
+ ss.Format(_T("\tStretchTaps %d, %d\n"), caps.StretchTapsX, caps.StretchTapsY);
+ s += ss;
+ ss.Format(_T("\tShrinkTaps %d, %d\n"), caps.ShrinkTapsX, caps.ShrinkTapsY);
+ s += ss;
+ ss.Format(_T("\tFrameInterval %I64d, %I64d (%.4f, %.4f)\n"),
+ caps.MinFrameInterval, caps.MaxFrameInterval,
+ (float)10000000/caps.MinFrameInterval, (float)10000000/caps.MaxFrameInterval);
+ s += ss;
+ ss.Format(_T("\tBitsPerSecond %d - %d\n"), caps.MinBitsPerSecond, caps.MaxBitsPerSecond);
+ s += ss;
f.WriteString(s);
}
BITMAPINFOHEADER* pbh;
- if(pmt->formattype == FORMAT_VideoInfo)
+ if(pmt->formattype == FORMAT_VideoInfo)
{
VIDEOINFOHEADER* vih = (VIDEOINFOHEADER*)pmt->pbFormat;
pbh = &vih->bmiHeader;
s.Empty();
- ss.Format(_T("FORMAT_VideoInfo\n")); s += ss;
- ss.Format(_T("\tAvgTimePerFrame %I64d, %.4f\n"), vih->AvgTimePerFrame, (float)10000000/vih->AvgTimePerFrame); s += ss;
- ss.Format(_T("\trcSource %d,%d,%d,%d\n"), vih->rcSource); s += ss;
- ss.Format(_T("\trcTarget %d,%d,%d,%d\n"), vih->rcTarget); s += ss;
+ ss.Format(_T("FORMAT_VideoInfo\n"));
+ s += ss;
+ ss.Format(_T("\tAvgTimePerFrame %I64d, %.4f\n"), vih->AvgTimePerFrame, (float)10000000/vih->AvgTimePerFrame);
+ s += ss;
+ ss.Format(_T("\trcSource %d,%d,%d,%d\n"), vih->rcSource);
+ s += ss;
+ ss.Format(_T("\trcTarget %d,%d,%d,%d\n"), vih->rcTarget);
+ s += ss;
f.WriteString(s);
}
- else if(pmt->formattype == FORMAT_VideoInfo2)
+ else if(pmt->formattype == FORMAT_VideoInfo2)
{
VIDEOINFOHEADER2* vih = (VIDEOINFOHEADER2*)pmt->pbFormat;
pbh = &vih->bmiHeader;
s.Empty();
- ss.Format(_T("FORMAT_VideoInfo2\n")); s += ss;
- ss.Format(_T("\tAvgTimePerFrame %I64d, %.4f\n"), vih->AvgTimePerFrame, (float)10000000/vih->AvgTimePerFrame); s += ss;
- ss.Format(_T("\trcSource %d,%d,%d,%d\n"), vih->rcSource); s += ss;
- ss.Format(_T("\trcTarget %d,%d,%d,%d\n"), vih->rcTarget); s += ss;
- ss.Format(_T("\tdwInterlaceFlags 0x%x\n"), vih->dwInterlaceFlags); s += ss;
- ss.Format(_T("\tdwPictAspectRatio %d:%d\n"), vih->dwPictAspectRatioX, vih->dwPictAspectRatioY); s += ss;
+ ss.Format(_T("FORMAT_VideoInfo2\n"));
+ s += ss;
+ ss.Format(_T("\tAvgTimePerFrame %I64d, %.4f\n"), vih->AvgTimePerFrame, (float)10000000/vih->AvgTimePerFrame);
+ s += ss;
+ ss.Format(_T("\trcSource %d,%d,%d,%d\n"), vih->rcSource);
+ s += ss;
+ ss.Format(_T("\trcTarget %d,%d,%d,%d\n"), vih->rcTarget);
+ s += ss;
+ ss.Format(_T("\tdwInterlaceFlags 0x%x\n"), vih->dwInterlaceFlags);
+ s += ss;
+ ss.Format(_T("\tdwPictAspectRatio %d:%d\n"), vih->dwPictAspectRatioX, vih->dwPictAspectRatioY);
+ s += ss;
f.WriteString(s);
}
else
@@ -119,13 +144,20 @@ void DumpStreamConfig(TCHAR* fn, IAMStreamConfig* pAMVSCCap)
}
s.Empty();
- ss.Format(_T("BITMAPINFOHEADER\n")); s += ss;
- ss.Format(_T("\tbiCompression %x\n"), pbh->biCompression); s += ss;
- ss.Format(_T("\tbiWidth %d\n"), pbh->biWidth); s += ss;
- ss.Format(_T("\tbiHeight %d\n"), pbh->biHeight); s += ss;
- ss.Format(_T("\tbiBitCount %d\n"), pbh->biBitCount); s += ss;
- ss.Format(_T("\tbiPlanes %d\n"), pbh->biPlanes); s += ss;
- ss.Format(_T("\tbiSizeImage %d\n"), pbh->biSizeImage); s += ss;
+ ss.Format(_T("BITMAPINFOHEADER\n"));
+ s += ss;
+ ss.Format(_T("\tbiCompression %x\n"), pbh->biCompression);
+ s += ss;
+ ss.Format(_T("\tbiWidth %d\n"), pbh->biWidth);
+ s += ss;
+ ss.Format(_T("\tbiHeight %d\n"), pbh->biHeight);
+ s += ss;
+ ss.Format(_T("\tbiBitCount %d\n"), pbh->biBitCount);
+ s += ss;
+ ss.Format(_T("\tbiPlanes %d\n"), pbh->biPlanes);
+ s += ss;
+ ss.Format(_T("\tbiSizeImage %d\n"), pbh->biSizeImage);
+ s += ss;
f.WriteString(s);
DeleteMediaType(pmt);
@@ -150,8 +182,14 @@ int CountPins(IBaseFilter* pBF, int& nIn, int& nOut, int& nInC, int& nOutC)
CComPtr<IPin> pPinConnectedTo;
pPin->ConnectedTo(&pPinConnectedTo);
- if(dir == PINDIR_INPUT) {nIn++; if(pPinConnectedTo) nInC++;}
- else if(dir == PINDIR_OUTPUT) {nOut++; if(pPinConnectedTo) nOutC++;}
+ if(dir == PINDIR_INPUT) {
+ nIn++;
+ if(pPinConnectedTo) nInC++;
+ }
+ else if(dir == PINDIR_OUTPUT) {
+ nOut++;
+ if(pPinConnectedTo) nOutC++;
+ }
}
}
EndEnumPins
@@ -184,7 +222,7 @@ bool IsStreamStart(IBaseFilter* pBF)
AM_MEDIA_TYPE mt;
CComPtr<IPin> pIn = GetFirstPin(pBF);
return((nOut > 1)
- || (nOut > 0 && nIn == 1 && pIn && SUCCEEDED(pIn->ConnectionMediaType(&mt)) && mt.majortype == MEDIATYPE_Stream));
+ || (nOut > 0 && nIn == 1 && pIn && SUCCEEDED(pIn->ConnectionMediaType(&mt)) && mt.majortype == MEDIATYPE_Stream));
}
bool IsStreamEnd(IBaseFilter* pBF)
@@ -224,8 +262,8 @@ bool IsVideoRenderer(IBaseFilter* pBF)
#include <initguid.h>
-DEFINE_GUID(CLSID_ReClock,
-0x9dc15360, 0x914c, 0x46b8, 0xb9, 0xdf, 0xbf, 0xe6, 0x7f, 0xd3, 0x6c, 0x6a);
+DEFINE_GUID(CLSID_ReClock,
+ 0x9dc15360, 0x914c, 0x46b8, 0xb9, 0xdf, 0xbf, 0xe6, 0x7f, 0xd3, 0x6c, 0x6a);
bool IsAudioWaveRenderer(IBaseFilter* pBF)
{
@@ -351,8 +389,8 @@ IPin* FindPin(IBaseFilter* pBF, PIN_DIRECTION direction, const AM_MEDIA_TYPE* pR
CComPtr<IPin> pFellow;
if (SUCCEEDED (pPin->QueryDirection(&pindir)) &&
- pindir == direction &&
- pPin->ConnectedTo(&pFellow) == VFW_E_NOT_CONNECTED)
+ pindir == direction &&
+ pPin->ConnectedTo(&pFellow) == VFW_E_NOT_CONNECTED)
{
BeginEnumMediaTypes(pPin, pEM, pmt)
{
@@ -382,7 +420,7 @@ CStringW GetPinName(IPin* pPin)
{
CStringW name;
CPinInfo pi;
- if(pPin && SUCCEEDED(pPin->QueryPinInfo(&pi)))
+ if(pPin && SUCCEEDED(pPin->QueryPinInfo(&pi)))
name = pi.achName;
if(!name.Find(_T("Apple"))) name.Delete(0,1);
@@ -446,16 +484,16 @@ IPin* AppendFilter(IPin* pPin, CString DisplayName, IGraphBuilder* pGB)
break;
pFilters.AddTail(pBF);
- BeginEnumFilters(pGB, pEnum, pBF2)
- pFilters.AddTail(pBF2);
+ BeginEnumFilters(pGB, pEnum, pBF2)
+ pFilters.AddTail(pBF2);
EndEnumFilters
if(FAILED(pGB->AddFilter(pBF, CStringW(var.bstrVal))))
break;
- BeginEnumFilters(pGB, pEnum, pBF2)
- if(!pFilters.Find(pBF2) && SUCCEEDED(pGB->RemoveFilter(pBF2)))
- pEnum->Reset();
+ BeginEnumFilters(pGB, pEnum, pBF2)
+ if(!pFilters.Find(pBF2) && SUCCEEDED(pGB->RemoveFilter(pBF2)))
+ pEnum->Reset();
EndEnumFilters
pPinTo = GetFirstPin(pBF, PINDIR_INPUT);
@@ -473,9 +511,9 @@ IPin* AppendFilter(IPin* pPin, CString DisplayName, IGraphBuilder* pGB)
break;
}
- BeginEnumFilters(pGB, pEnum, pBF2)
- if(!pFilters.Find(pBF2) && SUCCEEDED(pGB->RemoveFilter(pBF2)))
- pEnum->Reset();
+ BeginEnumFilters(pGB, pEnum, pBF2)
+ if(!pFilters.Find(pBF2) && SUCCEEDED(pGB->RemoveFilter(pBF2)))
+ pEnum->Reset();
EndEnumFilters
pRet = GetFirstPin(pBF, PINDIR_OUTPUT);
@@ -514,7 +552,7 @@ IPin* InsertFilter(IPin* pPin, CString DisplayName, IGraphBuilder* pGB)
pFrom = pPin;
pPin->ConnectedTo(&pTo);
}
-
+
if(!pFrom || !pTo)
break;
@@ -589,7 +627,7 @@ void ExtractMediaTypes(IPin* pPin, CAtlArray<GUID>& types)
{
types.RemoveAll();
- BeginEnumMediaTypes(pPin, pEM, pmt)
+ BeginEnumMediaTypes(pPin, pEM, pmt)
{
bool fFound = false;
@@ -612,7 +650,7 @@ void ExtractMediaTypes(IPin* pPin, CAtlList<CMediaType>& mts)
{
mts.RemoveAll();
- BeginEnumMediaTypes(pPin, pEM, pmt)
+ BeginEnumMediaTypes(pPin, pEM, pmt)
{
bool fFound = false;
@@ -634,7 +672,7 @@ void ExtractMediaTypes(IPin* pPin, CAtlList<CMediaType>& mts)
int Eval_Exception(int n_except)
{
- if(n_except == STATUS_ACCESS_VIOLATION)
+ if(n_except == STATUS_ACCESS_VIOLATION)
{
AfxMessageBox(_T("The property page of this filter has just caused a\nmemory access violation. The application will gently die now :)"));
}
@@ -668,7 +706,7 @@ void ShowPPage(CString DisplayName, HWND hParentWnd)
if(FAILED(pMoniker->BindToObject(pBindCtx, 0, IID_IBaseFilter, (void**)&pBF)) || !pBF)
return;
- ShowPPage(pBF, hParentWnd);
+ ShowPPage(pBF, hParentWnd);
}
void ShowPPage(IUnknown* pUnk, HWND hParentWnd)
@@ -694,9 +732,9 @@ void ShowPPage(IUnknown* pUnk, HWND hParentWnd)
IUnknown* lpUnk = NULL;
pSPP.QueryInterface(&lpUnk);
MyOleCreatePropertyFrame(
- hParentWnd, 0, 0, CStringW(str),
- 1, (IUnknown**)&lpUnk,
- caGUID.cElems, caGUID.pElems,
+ hParentWnd, 0, 0, CStringW(str),
+ 1, (IUnknown**)&lpUnk,
+ caGUID.cElems, caGUID.pElems,
0, 0, NULL);
lpUnk->Release();
@@ -751,7 +789,7 @@ void CStringToBin(CString str, CAtlArray<BYTE>& data)
for(size_t i = 0, j = str.GetLength(); i < j; i++)
{
TCHAR c = str[i];
- if(c >= '0' && c <= '9')
+ if(c >= '0' && c <= '9')
{
if(!(i&1)) b = ((char(c-'0')<<4)&0xf0)|(b&0x0f);
else b = (char(c-'0')&0x0f)|(b&0xf0);
@@ -801,7 +839,9 @@ static void FindFiles(CString fn, CAtlList<CString>& files)
HANDLE h = FindFirstFile(fn, &findData);
if(h != INVALID_HANDLE_VALUE)
{
- do {files.AddTail(path + findData.cFileName);}
+ do {
+ files.AddTail(path + findData.cFileName);
+ }
while(FindNextFile(h, &findData));
FindClose(h);
@@ -835,8 +875,8 @@ cdrom_t GetCDROMType(TCHAR drive, CAtlList<CString>& files)
// CDROM_Audio
if(!(GetVersion()&0x80000000))
{
- HANDLE hDrive = CreateFile(CString(_T("\\\\.\\")) + path, GENERIC_READ, FILE_SHARE_READ, NULL,
- OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL);
+ HANDLE hDrive = CreateFile(CString(_T("\\\\.\\")) + path, GENERIC_READ, FILE_SHARE_READ, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL);
if(hDrive != INVALID_HANDLE_VALUE)
{
DWORD BytesReturned;
@@ -847,7 +887,7 @@ cdrom_t GetCDROMType(TCHAR drive, CAtlList<CString>& files)
{
// MMC-3 Draft Revision 10g: Table 222 – Q Sub-channel control field
TOC.TrackData[i-1].Control &= 5;
- if(TOC.TrackData[i-1].Control == 0 || TOC.TrackData[i-1].Control == 1)
+ if(TOC.TrackData[i-1].Control == 0 || TOC.TrackData[i-1].Control == 1)
{
CString fn;
fn.Format(_T("%s\\track%02d.cda"), path, i);
@@ -864,7 +904,7 @@ cdrom_t GetCDROMType(TCHAR drive, CAtlList<CString>& files)
// it is a cdrom but nothing special
return CDROM_Unknown;
}
-
+
return CDROM_NotFound;
}
@@ -876,9 +916,9 @@ CString GetDriveLabel(TCHAR drive)
path.Format(_T("%c:\\"), drive);
TCHAR VolumeNameBuffer[_MAX_PATH], FileSystemNameBuffer[_MAX_PATH];
DWORD VolumeSerialNumber, MaximumComponentLength, FileSystemFlags;
- if(GetVolumeInformation(path,
- VolumeNameBuffer, MAX_PATH, &VolumeSerialNumber, &MaximumComponentLength,
- &FileSystemFlags, FileSystemNameBuffer, MAX_PATH))
+ if(GetVolumeInformation(path,
+ VolumeNameBuffer, MAX_PATH, &VolumeSerialNumber, &MaximumComponentLength,
+ &FileSystemFlags, FileSystemNameBuffer, MAX_PATH))
{
label = VolumeNameBuffer;
}
@@ -894,7 +934,7 @@ bool GetKeyFrames(CString fn, CUIntArray& kfs)
if(fn2.Mid(fn2.ReverseFind('.')+1) == _T("avi"))
{
AVIFileInit();
-
+
PAVIFILE pfile;
if(AVIFileOpen(&pfile, fn, OF_SHARE_DENY_WRITE, 0L) == 0)
{
@@ -940,7 +980,7 @@ bool GetKeyFrames(CString fn, CUIntArray& kfs)
DVD_HMSF_TIMECODE RT2HMSF(REFERENCE_TIME rt, double fps)
{
- DVD_HMSF_TIMECODE hmsf =
+ DVD_HMSF_TIMECODE hmsf =
{
(BYTE)((rt/10000000/60/60)),
(BYTE)((rt/10000000/60)%60),
@@ -953,7 +993,10 @@ DVD_HMSF_TIMECODE RT2HMSF(REFERENCE_TIME rt, double fps)
REFERENCE_TIME HMSF2RT(DVD_HMSF_TIMECODE hmsf, double fps)
{
- if(fps == 0) {hmsf.bFrames = 0; fps = 1;}
+ if(fps == 0) {
+ hmsf.bFrames = 0;
+ fps = 1;
+ }
return (REFERENCE_TIME)((((REFERENCE_TIME)hmsf.bHours*60+hmsf.bMinutes)*60+hmsf.bSeconds)*1000+1.0*hmsf.bFrames*1000/fps)*10000;
}
@@ -1047,7 +1090,7 @@ bool ExtractBIH(const AM_MEDIA_TYPE* pmt, BITMAPINFOHEADER* bih)
return true;
}
}
-
+
return false;
}
@@ -1078,7 +1121,7 @@ bool ExtractBIH(IMediaSample* pMS, BITMAPINFOHEADER* bih)
DeleteMediaType(pmt);
return(fRet);
}
-
+
return(false);
}
@@ -1125,7 +1168,7 @@ bool ExtractDim(const AM_MEDIA_TYPE* pmt, int& w, int& h, int& arx, int& ary)
{
w = (ptr[4]<<4)|(ptr[5]>>4);
h = ((ptr[5]&0xf)<<8)|ptr[6];
- float ar[] =
+ float ar[] =
{
1.0000f,1.0000f,0.6735f,0.7031f,
0.7615f,0.8055f,0.8437f,0.8935f,
@@ -1138,14 +1181,16 @@ bool ExtractDim(const AM_MEDIA_TYPE* pmt, int& w, int& h, int& arx, int& ary)
}
else if(pmt->formattype == FORMAT_MPEG2_VIDEO)
{
- ptr = (BYTE*)((MPEG2VIDEOINFO*)pmt->pbFormat)->dwSequenceHeader;
+ ptr = (BYTE*)((MPEG2VIDEOINFO*)pmt->pbFormat)->dwSequenceHeader;
len = ((MPEG2VIDEOINFO*)pmt->pbFormat)->cbSequenceHeader;
if(ptr && len >= 8 && *(DWORD*)ptr == 0xb3010000)
{
w = (ptr[4]<<4)|(ptr[5]>>4);
h = ((ptr[5]&0xf)<<8)|ptr[6];
- struct {int x, y;} ar[] = {{w,h},{4,3},{16,9},{221,100},{w,h}};
+ struct {
+ int x, y;
+ } ar[] = {{w,h},{4,3},{16,9},{221,100},{w,h}};
int i = min(max(ptr[7]>>4, 1), 5)-1;
arx = ar[i].x;
ary = ar[i].y;
@@ -1158,7 +1203,11 @@ bool ExtractDim(const AM_MEDIA_TYPE* pmt, int& w, int& h, int& arx, int& ary)
}
DWORD a = arx, b = ary;
- while(a) {int tmp = a; a = b % tmp; b = tmp;}
+ while(a) {
+ int tmp = a;
+ a = b % tmp;
+ b = tmp;
+ }
if(b) arx /= b, ary /= b;
return(true);
@@ -1178,11 +1227,14 @@ bool MakeMPEG2MediaType(CMediaType& mt, BYTE* seqhdr, DWORD len, int w, int h)
if(seqhdr_end - seqhdr > (long)len) return false;
seqhdr_end++;
if(seqhdr_end - seqhdr > (long)len) return false;
- if(len - (seqhdr_end - seqhdr) > 4 && *(DWORD*)seqhdr_end == 0xb5010000) {seqhdr_ext = seqhdr_end; seqhdr_end += 10;}
+ if(len - (seqhdr_end - seqhdr) > 4 && *(DWORD*)seqhdr_end == 0xb5010000) {
+ seqhdr_ext = seqhdr_end;
+ seqhdr_end += 10;
+ }
if(seqhdr_end - seqhdr > (long)len) return false;
len = seqhdr_end - seqhdr;
-
+
mt = CMediaType();
mt.majortype = MEDIATYPE_Video;
@@ -1198,18 +1250,18 @@ bool MakeMPEG2MediaType(CMediaType& mt, BYTE* seqhdr, DWORD len, int w, int h)
BYTE* pSequenceHeader = (BYTE*)vih->dwSequenceHeader;
memcpy(pSequenceHeader, seqhdr, len);
vih->cbSequenceHeader = len;
-
- static char profile[8] =
+
+ static char profile[8] =
{
- 0, AM_MPEG2Profile_High, AM_MPEG2Profile_SpatiallyScalable, AM_MPEG2Profile_SNRScalable,
+ 0, AM_MPEG2Profile_High, AM_MPEG2Profile_SpatiallyScalable, AM_MPEG2Profile_SNRScalable,
AM_MPEG2Profile_Main, AM_MPEG2Profile_Simple, 0, 0
};
static char level[16] =
{
- 0, 0, 0, 0,
- AM_MPEG2Level_High, 0, AM_MPEG2Level_High1440, 0,
- AM_MPEG2Level_Main, 0, AM_MPEG2Level_Low, 0,
+ 0, 0, 0, 0,
+ AM_MPEG2Level_High, 0, AM_MPEG2Level_High1440, 0,
+ AM_MPEG2Level_Main, 0, AM_MPEG2Level_Low, 0,
0, 0, 0, 0
};
@@ -1230,19 +1282,19 @@ unsigned __int64 GetFileVersion(LPCTSTR fn)
VS_FIXEDFILEINFO* pvsf = (VS_FIXEDFILEINFO*)buff;
DWORD d; // a variable that GetFileVersionInfoSize sets to zero (but why is it needed ?????????????????????????????? :)
DWORD len = GetFileVersionInfoSize((TCHAR*)fn, &d);
-
+
if(len)
{
TCHAR* b1 = DNew TCHAR[len];
if(b1)
{
- UINT uLen;
- if(GetFileVersionInfo((TCHAR*)fn, 0, len, b1) && VerQueryValue(b1, _T("\\"), (void**)&pvsf, &uLen))
- {
+ UINT uLen;
+ if(GetFileVersionInfo((TCHAR*)fn, 0, len, b1) && VerQueryValue(b1, _T("\\"), (void**)&pvsf, &uLen))
+ {
ret = ((unsigned __int64)pvsf->dwFileVersionMS<<32) | pvsf->dwFileVersionLS;
- }
+ }
- delete [] b1;
+ delete [] b1;
}
}
@@ -1458,7 +1510,7 @@ CString MakeFullPath(LPCTSTR path)
if(full.GetLength() >= 2 && full[0] == '\\' && full[1] != '\\')
{
p.StripToRoot();
- full = CString(p) + full.Mid(1);
+ full = CString(p) + full.Mid(1);
}
else if(full.Find(_T(":\\")) < 0)
{
@@ -1476,9 +1528,9 @@ CString MakeFullPath(LPCTSTR path)
CString GetMediaTypeName(const GUID& guid)
{
- CString ret = guid == GUID_NULL
- ? _T("Any type")
- : CString(GuidNames[guid]);
+ CString ret = guid == GUID_NULL
+ ? _T("Any type")
+ : CString(GuidNames[guid]);
if(ret == _T("FOURCC GUID"))
{
@@ -1538,7 +1590,10 @@ CStringA UTF16To8(LPCWSTR utf16)
return str;
}
-static struct {LPCSTR name, iso6392, iso6391; LCID lcid;} s_isolangs[] = // TODO : fill LCID !!!
+static struct {
+ LPCSTR name, iso6392, iso6391;
+ LCID lcid;
+} s_isolangs[] = // TODO : fill LCID !!!
{
{"Abkhazian", "abk", "ab"},
{"Achinese", "ace", ""},
@@ -2282,8 +2337,8 @@ bool SetRegKeyValue(LPCTSTR pszKey, LPCTSTR pszSubkey, LPCTSTR pszValueName, LPC
if(pszValue != 0)
{
ec = ::RegSetValueEx(hKey, pszValueName, 0, REG_SZ,
- reinterpret_cast<BYTE*>(const_cast<LPTSTR>(pszValue)),
- (_tcslen(pszValue) + 1) * sizeof(TCHAR));
+ reinterpret_cast<BYTE*>(const_cast<LPTSTR>(pszValue)),
+ (_tcslen(pszValue) + 1) * sizeof(TCHAR));
}
bOK = (ec == ERROR_SUCCESS);
@@ -2307,7 +2362,7 @@ void RegisterSourceFilter(const CLSID& clsid, const GUID& subtype2, LPCTSTR chkb
SetRegKeyValue(_T("Media Type\\") + majortype, subtype, _T("0"), chkbytes);
SetRegKeyValue(_T("Media Type\\") + majortype, subtype, _T("Source Filter"), CStringFromGUID(clsid));
-
+
DeleteRegKey(_T("Media Type\\") + null, subtype);
va_list marker;
@@ -2332,7 +2387,7 @@ void RegisterSourceFilter(const CLSID& clsid, const GUID& subtype2, const CAtlLi
}
SetRegKeyValue(_T("Media Type\\") + majortype, subtype, _T("Source Filter"), CStringFromGUID(clsid));
-
+
DeleteRegKey(_T("Media Type\\") + null, subtype);
va_list marker;
@@ -2350,11 +2405,11 @@ void UnRegisterSourceFilter(const GUID& subtype)
typedef struct
{
- const GUID* Guid;
- const LPCTSTR Description;
+ const GUID* Guid;
+ const LPCTSTR Description;
} DXVA2_DECODER;
-static const DXVA2_DECODER DXVA2Decoder[] =
+static const DXVA2_DECODER DXVA2Decoder[] =
{
{ &GUID_NULL, _T("Unknown") },
{ &GUID_NULL, _T("Not using DXVA") },
@@ -2377,7 +2432,7 @@ static const DXVA2_DECODER DXVA2Decoder[] =
{ &DXVA2_ModeVC1_C, _T("VC-1 IDCT") },
{ &DXVA2_ModeVC1_D, _T("VC-1 bitstream decoder") },
{ &DXVA_Intel_VC1_ClearVideo, _T("VC-1 bitstream ClearVideo(tm) decoder") },
- { &DXVA2_ModeWMV8_A, _T("WMV 8 post processing.") },
+ { &DXVA2_ModeWMV8_A, _T("WMV 8 post processing.") },
{ &DXVA2_ModeWMV8_B, _T("WMV8 motion compensation") },
{ &DXVA2_ModeWMV9_A, _T("WMV9 post processing") },
{ &DXVA2_ModeWMV9_B, _T("WMV9 motion compensation") },
@@ -2461,7 +2516,7 @@ CString DVDtimeToString(const DVD_HMSF_TIMECODE rtVal)
{
CString strTemp;
strTemp.Format(_T("%02d:%02d:%02d"), rtVal.bHours, rtVal.bMinutes, rtVal.bSeconds);
- return strTemp;
+ return strTemp;
}
REFERENCE_TIME StringToReftime(LPCTSTR strVal)
@@ -2486,21 +2541,21 @@ const double Rec601_Kg = 0.587;
COLORREF YCrCbToRGB_Rec601(BYTE Y, BYTE Cr, BYTE Cb)
{
- double rp = Y + 2*(Cr-128)*(1.0-Rec601_Kr);
- double gp = Y - 2*(Cb-128)*(1.0-Rec601_Kb)*Rec601_Kb/Rec601_Kg - 2*(Cr-128)*(1.0-Rec601_Kr)*Rec601_Kr/Rec601_Kg;
- double bp = Y + 2*(Cb-128)*(1.0-Rec601_Kb);
+ double rp = Y + 2*(Cr-128)*(1.0-Rec601_Kr);
+ double gp = Y - 2*(Cb-128)*(1.0-Rec601_Kb)*Rec601_Kb/Rec601_Kg - 2*(Cr-128)*(1.0-Rec601_Kr)*Rec601_Kr/Rec601_Kg;
+ double bp = Y + 2*(Cb-128)*(1.0-Rec601_Kb);
- return RGB (fabs(rp), fabs(gp), fabs(bp));
+ return RGB (fabs(rp), fabs(gp), fabs(bp));
}
DWORD YCrCbToRGB_Rec601(BYTE A, BYTE Y, BYTE Cr, BYTE Cb)
{
- double rp = Y + 2*(Cr-128)*(1.0-Rec601_Kr);
- double gp = Y - 2*(Cb-128)*(1.0-Rec601_Kb)*Rec601_Kb/Rec601_Kg - 2*(Cr-128)*(1.0-Rec601_Kr)*Rec601_Kr/Rec601_Kg;
- double bp = Y + 2*(Cb-128)*(1.0-Rec601_Kb);
+ double rp = Y + 2*(Cr-128)*(1.0-Rec601_Kr);
+ double gp = Y - 2*(Cb-128)*(1.0-Rec601_Kb)*Rec601_Kb/Rec601_Kg - 2*(Cr-128)*(1.0-Rec601_Kr)*Rec601_Kr/Rec601_Kg;
+ double bp = Y + 2*(Cb-128)*(1.0-Rec601_Kb);
- return D3DCOLOR_ARGB(A, (BYTE)fabs(rp), (BYTE)fabs(gp), (BYTE)fabs(bp));
+ return D3DCOLOR_ARGB(A, (BYTE)fabs(rp), (BYTE)fabs(gp), (BYTE)fabs(bp));
}
@@ -2510,21 +2565,21 @@ const double Rec709_Kg = 0.7154;
COLORREF YCrCbToRGB_Rec709(BYTE Y, BYTE Cr, BYTE Cb)
{
- double rp = Y + 2*(Cr-128)*(1.0-Rec709_Kr);
- double gp = Y - 2*(Cb-128)*(1.0-Rec709_Kb)*Rec709_Kb/Rec709_Kg - 2*(Cr-128)*(1.0-Rec709_Kr)*Rec709_Kr/Rec709_Kg;
- double bp = Y + 2*(Cb-128)*(1.0-Rec709_Kb);
+ double rp = Y + 2*(Cr-128)*(1.0-Rec709_Kr);
+ double gp = Y - 2*(Cb-128)*(1.0-Rec709_Kb)*Rec709_Kb/Rec709_Kg - 2*(Cr-128)*(1.0-Rec709_Kr)*Rec709_Kr/Rec709_Kg;
+ double bp = Y + 2*(Cb-128)*(1.0-Rec709_Kb);
- return RGB (fabs(rp), fabs(gp), fabs(bp));
+ return RGB (fabs(rp), fabs(gp), fabs(bp));
}
DWORD YCrCbToRGB_Rec709(BYTE A, BYTE Y, BYTE Cr, BYTE Cb)
{
- double rp = Y + 2*(Cr-128)*(1.0-Rec709_Kr);
- double gp = Y - 2*(Cb-128)*(1.0-Rec709_Kb)*Rec709_Kb/Rec709_Kg - 2*(Cr-128)*(1.0-Rec709_Kr)*Rec709_Kr/Rec709_Kg;
- double bp = Y + 2*(Cb-128)*(1.0-Rec709_Kb);
+ double rp = Y + 2*(Cr-128)*(1.0-Rec709_Kr);
+ double gp = Y - 2*(Cb-128)*(1.0-Rec709_Kb)*Rec709_Kb/Rec709_Kg - 2*(Cr-128)*(1.0-Rec709_Kr)*Rec709_Kr/Rec709_Kg;
+ double bp = Y + 2*(Cb-128)*(1.0-Rec709_Kb);
- return D3DCOLOR_ARGB (A, (BYTE)fabs(rp), (BYTE)fabs(gp), (BYTE)fabs(bp));
+ return D3DCOLOR_ARGB (A, (BYTE)fabs(rp), (BYTE)fabs(gp), (BYTE)fabs(bp));
}
@@ -2561,8 +2616,8 @@ void TracePinInfo(IPin* pPin)
ConnectedFilterInfo.pGraph->Release();
}
pPin->QueryPinInfo (&PinInfo);
- TRACE(" %S (%S) -> %S (Filter %S)\n",
- PinInfo.achName,
+ TRACE(" %S (%S) -> %S (Filter %S)\n",
+ PinInfo.achName,
PinInfo.dir == PINDIR_OUTPUT ? _T("Out") : _T("In"),
ConnectedInfo.achName,
ConnectedFilterInfo.achName);
@@ -2574,24 +2629,42 @@ const wchar_t *StreamTypeToName(PES_STREAM_TYPE _Type)
{
switch (_Type)
{
- case VIDEO_STREAM_MPEG1: return L"MPEG-1";
- case VIDEO_STREAM_MPEG2: return L"MPEG-2";
- case AUDIO_STREAM_MPEG1: return L"MPEG-1";
- case AUDIO_STREAM_MPEG2: return L"MPEG-2";
- case VIDEO_STREAM_H264: return L"H264";
- case AUDIO_STREAM_LPCM: return L"LPCM";
- case AUDIO_STREAM_AC3: return L"Dolby Digital";
- case AUDIO_STREAM_DTS: return L"DTS";
- case AUDIO_STREAM_AC3_TRUE_HD: return L"Dolby TrueHD";
- case AUDIO_STREAM_AC3_PLUS: return L"Dolby Digital Plus";
- case AUDIO_STREAM_DTS_HD: return L"DTS-HD High Resolution Audio";
- case AUDIO_STREAM_DTS_HD_MASTER_AUDIO: return L"DTS-HD Master Audio";
- case PRESENTATION_GRAPHICS_STREAM: return L"Presentation Graphics Stream";
- case INTERACTIVE_GRAPHICS_STREAM: return L"Interactive Graphics Stream";
- case SUBTITLE_STREAM: return L"Subtitle";
- case SECONDARY_AUDIO_AC3_PLUS: return L"Secondary Dolby Digital Plus";
- case SECONDARY_AUDIO_DTS_HD: return L"Secondary DTS-HD High Resolution Audio";
- case VIDEO_STREAM_VC1: return L"VC-1";
+ case VIDEO_STREAM_MPEG1:
+ return L"MPEG-1";
+ case VIDEO_STREAM_MPEG2:
+ return L"MPEG-2";
+ case AUDIO_STREAM_MPEG1:
+ return L"MPEG-1";
+ case AUDIO_STREAM_MPEG2:
+ return L"MPEG-2";
+ case VIDEO_STREAM_H264:
+ return L"H264";
+ case AUDIO_STREAM_LPCM:
+ return L"LPCM";
+ case AUDIO_STREAM_AC3:
+ return L"Dolby Digital";
+ case AUDIO_STREAM_DTS:
+ return L"DTS";
+ case AUDIO_STREAM_AC3_TRUE_HD:
+ return L"Dolby TrueHD";
+ case AUDIO_STREAM_AC3_PLUS:
+ return L"Dolby Digital Plus";
+ case AUDIO_STREAM_DTS_HD:
+ return L"DTS-HD High Resolution Audio";
+ case AUDIO_STREAM_DTS_HD_MASTER_AUDIO:
+ return L"DTS-HD Master Audio";
+ case PRESENTATION_GRAPHICS_STREAM:
+ return L"Presentation Graphics Stream";
+ case INTERACTIVE_GRAPHICS_STREAM:
+ return L"Interactive Graphics Stream";
+ case SUBTITLE_STREAM:
+ return L"Subtitle";
+ case SECONDARY_AUDIO_AC3_PLUS:
+ return L"Secondary Dolby Digital Plus";
+ case SECONDARY_AUDIO_DTS_HD:
+ return L"Secondary DTS-HD High Resolution Audio";
+ case VIDEO_STREAM_VC1:
+ return L"VC-1";
}
return NULL;
}
diff --git a/src/DSUtil/DSUtil.h b/src/DSUtil/DSUtil.h
index 31a7223cf..731f53862 100644
--- a/src/DSUtil/DSUtil.h
+++ b/src/DSUtil/DSUtil.h
@@ -1,20 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -124,15 +126,23 @@ extern void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName);
class CPinInfo : public PIN_INFO
{
public:
- CPinInfo() {pFilter = NULL;}
- ~CPinInfo() {if(pFilter) pFilter->Release();}
+ CPinInfo() {
+ pFilter = NULL;
+ }
+ ~CPinInfo() {
+ if(pFilter) pFilter->Release();
+ }
};
class CFilterInfo : public FILTER_INFO
{
public:
- CFilterInfo() {pGraph = NULL;}
- ~CFilterInfo() {if(pGraph) pGraph->Release();}
+ CFilterInfo() {
+ pGraph = NULL;
+ }
+ ~CFilterInfo() {
+ if(pGraph) pGraph->Release();
+ }
};
#define BeginEnumFilters(pFilterGraph, pEnumFilters, pBaseFilter) \
@@ -189,8 +199,8 @@ public:
template <typename T> __inline void INITDDSTRUCT(T& dd)
{
- ZeroMemory(&dd, sizeof(dd));
- dd.dwSize = sizeof(dd);
+ ZeroMemory(&dd, sizeof(dd));
+ dd.dwSize = sizeof(dd);
}
#define countof(array) (sizeof(array)/sizeof(array[0]))
@@ -199,8 +209,8 @@ template <class T>
static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr)
{
*phr = S_OK;
- CUnknown* punk = DNew T(lpunk, phr);
- if(punk == NULL) *phr = E_OUTOFMEMORY;
+ CUnknown* punk = DNew T(lpunk, phr);
+ if(punk == NULL) *phr = E_OUTOFMEMORY;
return punk;
}
diff --git a/src/DSUtil/DSUtil.vcproj b/src/DSUtil/DSUtil.vcproj
index c2ef8eff5..a7d0643d5 100644
--- a/src/DSUtil/DSUtil.vcproj
+++ b/src/DSUtil/DSUtil.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="DSUtil"
ProjectGUID="{FC70988B-1AE5-4381-866D-4F405E28AC42}"
RootNamespace="DSUtil"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;;..\thirdparty\VirtualDub\h"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
/>
@@ -101,7 +100,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;;..\thirdparty\VirtualDub\h"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
DebugInformationFormat="3"
@@ -161,7 +159,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;;..\thirdparty\VirtualDub\h"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -221,7 +218,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;;..\thirdparty\VirtualDub\h"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/DSUtil/DSUtil.vcxproj b/src/DSUtil/DSUtil.vcxproj
index 62e305852..d974840cd 100644
--- a/src/DSUtil/DSUtil.vcxproj
+++ b/src/DSUtil/DSUtil.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{FC70988B-1AE5-4381-866D-4F405E28AC42}</ProjectGuid>
@@ -43,9 +35,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -70,9 +59,6 @@
<Import Project="..\common.props" />
<Import Project="..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
@@ -89,7 +75,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;$(DXSDK_DIR)Include;..\thirdparty\VirtualDub\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -103,7 +88,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;$(DXSDK_DIR)Include;..\thirdparty\VirtualDub\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -119,7 +103,6 @@
</Command>
</CustomBuildStep>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;$(DXSDK_DIR)Include;..\thirdparty\VirtualDub\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -134,7 +117,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;$(DXSDK_DIR)Include;..\thirdparty\VirtualDub\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/DSUtil/FontInstaller.cpp b/src/DSUtil/FontInstaller.cpp
index 842bdd837..b8910de0b 100644
--- a/src/DSUtil/FontInstaller.cpp
+++ b/src/DSUtil/FontInstaller.cpp
@@ -1,5 +1,5 @@
#include "stdafx.h"
-#include "./fontinstaller.h"
+#include "FontInstaller.h"
CFontInstaller::CFontInstaller()
{
@@ -51,7 +51,7 @@ void CFontInstaller::UninstallFonts()
if(!DeleteFile(fn) && pMoveFileEx)
pMoveFileEx(fn, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
}
-
+
m_files.RemoveAll();
}
}
@@ -69,7 +69,7 @@ bool CFontInstaller::InstallFontMemory(const void* pData, UINT len)
bool CFontInstaller::InstallFontFile(const void* pData, UINT len)
{
- if(!pAddFontResourceEx)
+ if(!pAddFontResourceEx)
return false;
CFile f;
diff --git a/src/DSUtil/FontInstaller.h b/src/DSUtil/FontInstaller.h
index 60d1e77e1..c45a6f9d5 100644
--- a/src/DSUtil/FontInstaller.h
+++ b/src/DSUtil/FontInstaller.h
@@ -20,6 +20,6 @@ public:
virtual ~CFontInstaller();
bool InstallFont(const CAtlArray<BYTE>& data);
- bool InstallFont(const void* pData, UINT len);
+ bool InstallFont(const void* pData, UINT len);
void UninstallFonts();
};
diff --git a/src/DSUtil/GolombBuffer.cpp b/src/DSUtil/GolombBuffer.cpp
index 5a9bff625..4e4a15639 100644
--- a/src/DSUtil/GolombBuffer.cpp
+++ b/src/DSUtil/GolombBuffer.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -91,7 +91,7 @@ void CGolombBuffer::ReadBuffer(BYTE* pDest, int nSize)
ASSERT (m_nBitPos + nSize <= m_nSize);
ASSERT (m_bitlen == 0);
nSize = min (nSize, m_nSize - m_nBitPos);
-
+
memcpy (pDest, m_pBuffer+m_nBitPos, nSize);
m_nBitPos += nSize;
}
diff --git a/src/DSUtil/GolombBuffer.h b/src/DSUtil/GolombBuffer.h
index ffb596e02..d9e6df1e9 100644
--- a/src/DSUtil/GolombBuffer.h
+++ b/src/DSUtil/GolombBuffer.h
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -32,20 +32,36 @@ public:
INT64 SExpGolombRead();
void BitByteAlign();
- inline BYTE ReadByte() { return (BYTE) BitRead ( 8); };
- inline SHORT ReadShort() { return (SHORT)BitRead (16); };
- inline DWORD ReadDword() { return (DWORD)BitRead (32); };
+ inline BYTE ReadByte() {
+ return (BYTE) BitRead ( 8);
+ };
+ inline SHORT ReadShort() {
+ return (SHORT)BitRead (16);
+ };
+ inline DWORD ReadDword() {
+ return (DWORD)BitRead (32);
+ };
void ReadBuffer(BYTE* pDest, int nSize);
-
+
void Reset();
void Reset(BYTE* pNewBuffer, int nNewSize);
- void SetSize(int nValue) { m_nSize = nValue; };
- int GetSize() const { return m_nSize; };
- int RemainingSize() const { return m_nSize - m_nBitPos; };
- bool IsEOF() const { return m_nBitPos >= m_nSize; };
+ void SetSize(int nValue) {
+ m_nSize = nValue;
+ };
+ int GetSize() const {
+ return m_nSize;
+ };
+ int RemainingSize() const {
+ return m_nSize - m_nBitPos;
+ };
+ bool IsEOF() const {
+ return m_nBitPos >= m_nSize;
+ };
INT64 GetPos();
- BYTE* GetBufferPos() { return m_pBuffer + m_nBitPos; };
+ BYTE* GetBufferPos() {
+ return m_pBuffer + m_nBitPos;
+ };
void SkipBytes(int nCount);
diff --git a/src/DSUtil/H264Nalu.cpp b/src/DSUtil/H264Nalu.cpp
index dd8fe57f9..67df1a20c 100644
--- a/src/DSUtil/H264Nalu.cpp
+++ b/src/DSUtil/H264Nalu.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -95,4 +95,4 @@ bool CH264Nalu::ReadNext()
nal_unit_type = (NALU_TYPE) (m_pBuffer[m_nNALDataPos] & 0x1f);
return true;
-} \ No newline at end of file
+}
diff --git a/src/DSUtil/H264Nalu.h b/src/DSUtil/H264Nalu.h
index 67548a264..30655b701 100644
--- a/src/DSUtil/H264Nalu.h
+++ b/src/DSUtil/H264Nalu.h
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -43,9 +43,9 @@ typedef enum
class CH264Nalu
{
private :
- int forbidden_bit; //! should be always FALSE
- int nal_reference_idc; //! NALU_PRIORITY_xxxx
- NALU_TYPE nal_unit_type; //! NALU_TYPE_xxxx
+ int forbidden_bit; //! should be always FALSE
+ int nal_reference_idc; //! NALU_PRIORITY_xxxx
+ NALU_TYPE nal_unit_type; //! NALU_TYPE_xxxx
int m_nNALStartPos; //! NALU start (including startcode / size)
int m_nNALDataPos; //! Useful part
@@ -60,20 +60,41 @@ private :
bool MoveToNextStartcode();
public :
- NALU_TYPE GetType() const { return nal_unit_type; };
- bool IsRefFrame() const { return (nal_reference_idc != 0); };
+ NALU_TYPE GetType() const
+ {
+ return nal_unit_type;
+ };
+ bool IsRefFrame() const
+ {
+ return (nal_reference_idc != 0);
+ };
- int GetDataLength() const { return m_nCurPos - m_nNALDataPos; };
- BYTE* GetDataBuffer() { return m_pBuffer + m_nNALDataPos; };
+ int GetDataLength() const
+ {
+ return m_nCurPos - m_nNALDataPos;
+ };
+ BYTE* GetDataBuffer()
+ {
+ return m_pBuffer + m_nNALDataPos;
+ };
int GetRoundedDataLength() const
{
int nSize = m_nCurPos - m_nNALDataPos;
return nSize + 128 - (nSize %128);
}
- int GetLength() const { return m_nCurPos - m_nNALStartPos; };
- BYTE* GetNALBuffer() { return m_pBuffer + m_nNALStartPos; };
- bool IsEOF() const { return m_nCurPos >= m_nSize; };
+ int GetLength() const
+ {
+ return m_nCurPos - m_nNALStartPos;
+ };
+ BYTE* GetNALBuffer()
+ {
+ return m_pBuffer + m_nNALStartPos;
+ };
+ bool IsEOF() const
+ {
+ return m_nCurPos >= m_nSize;
+ };
void SetBuffer (BYTE* pBuffer, int nSize, int nNALSize);
bool ReadNext();
diff --git a/src/DSUtil/HdmvClipInfo.cpp b/src/DSUtil/HdmvClipInfo.cpp
index 432d712a2..1cbe6fb16 100644
--- a/src/DSUtil/HdmvClipInfo.cpp
+++ b/src/DSUtil/HdmvClipInfo.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -86,40 +86,40 @@ HRESULT CHdmvClipInfo::ReadProgramInfo()
number_of_program_sequences = (BYTE)ReadByte();
int iStream = 0;
for (size_t i=0; i<number_of_program_sequences; i++)
- {
+ {
ReadDword(); //SPN_program_sequence_start
ReadShort(); //program_map_PID
number_of_streams_in_ps = (BYTE)ReadByte(); //number_of_streams_in_ps
ReadByte(); //reserved_for_future_use
-
+
for (size_t stream_index=0; stream_index<number_of_streams_in_ps; stream_index++)
- {
+ {
m_Streams.SetCount(iStream + 1);
m_Streams[iStream].m_PID = ReadShort(); // stream_PID
-
+
// == StreamCodingInfo
dwPos = SetFilePointer(m_hFile, 0, NULL, FILE_CURRENT) + 1;
dwPos += ReadByte(); // length
m_Streams[iStream].m_Type = (PES_STREAM_TYPE)ReadByte();
-
+
switch (m_Streams[iStream].m_Type)
{
case VIDEO_STREAM_MPEG1:
case VIDEO_STREAM_MPEG2:
case VIDEO_STREAM_H264:
case VIDEO_STREAM_VC1:
- {
- uint8 Temp = ReadByte();
- BDVM_VideoFormat VideoFormat = (BDVM_VideoFormat)(Temp >> 4);
- BDVM_FrameRate FrameRate = (BDVM_FrameRate)(Temp & 0xf);
- Temp = ReadByte();
- BDVM_AspectRatio AspectRatio = (BDVM_AspectRatio)(Temp >> 4);
-
- m_Streams[iStream].m_VideoFormat = VideoFormat;
- m_Streams[iStream].m_FrameRate = FrameRate;
- m_Streams[iStream].m_AspectRatio = AspectRatio;
- }
- break;
+ {
+ uint8 Temp = ReadByte();
+ BDVM_VideoFormat VideoFormat = (BDVM_VideoFormat)(Temp >> 4);
+ BDVM_FrameRate FrameRate = (BDVM_FrameRate)(Temp & 0xf);
+ Temp = ReadByte();
+ BDVM_AspectRatio AspectRatio = (BDVM_AspectRatio)(Temp >> 4);
+
+ m_Streams[iStream].m_VideoFormat = VideoFormat;
+ m_Streams[iStream].m_FrameRate = FrameRate;
+ m_Streams[iStream].m_AspectRatio = AspectRatio;
+ }
+ break;
case AUDIO_STREAM_MPEG1:
case AUDIO_STREAM_MPEG2:
case AUDIO_STREAM_LPCM:
@@ -131,39 +131,39 @@ HRESULT CHdmvClipInfo::ReadProgramInfo()
case AUDIO_STREAM_DTS_HD_MASTER_AUDIO:
case SECONDARY_AUDIO_AC3_PLUS:
case SECONDARY_AUDIO_DTS_HD:
- {
- uint8 Temp = ReadByte();
- BDVM_ChannelLayout ChannelLayout = (BDVM_ChannelLayout)(Temp >> 4);
- BDVM_SampleRate SampleRate = (BDVM_SampleRate)(Temp & 0xF);
-
- ReadBuffer((BYTE*)m_Streams[iStream].m_LanguageCode, 3);
- m_Streams[iStream].m_LCID = ISO6392ToLcid (m_Streams[iStream].m_LanguageCode);
- m_Streams[iStream].m_ChannelLayout = ChannelLayout;
- m_Streams[iStream].m_SampleRate = SampleRate;
- }
- break;
+ {
+ uint8 Temp = ReadByte();
+ BDVM_ChannelLayout ChannelLayout = (BDVM_ChannelLayout)(Temp >> 4);
+ BDVM_SampleRate SampleRate = (BDVM_SampleRate)(Temp & 0xF);
+
+ ReadBuffer((BYTE*)m_Streams[iStream].m_LanguageCode, 3);
+ m_Streams[iStream].m_LCID = ISO6392ToLcid (m_Streams[iStream].m_LanguageCode);
+ m_Streams[iStream].m_ChannelLayout = ChannelLayout;
+ m_Streams[iStream].m_SampleRate = SampleRate;
+ }
+ break;
case PRESENTATION_GRAPHICS_STREAM:
case INTERACTIVE_GRAPHICS_STREAM:
- {
- ReadBuffer((BYTE*)m_Streams[iStream].m_LanguageCode, 3);
- m_Streams[iStream].m_LCID = ISO6392ToLcid (m_Streams[iStream].m_LanguageCode);
- }
- break;
+ {
+ ReadBuffer((BYTE*)m_Streams[iStream].m_LanguageCode, 3);
+ m_Streams[iStream].m_LCID = ISO6392ToLcid (m_Streams[iStream].m_LanguageCode);
+ }
+ break;
case SUBTITLE_STREAM:
- {
- ReadByte(); // Should this really be here?
- ReadBuffer((BYTE*)m_Streams[iStream].m_LanguageCode, 3);
- m_Streams[iStream].m_LCID = ISO6392ToLcid (m_Streams[iStream].m_LanguageCode);
- }
- break;
+ {
+ ReadByte(); // Should this really be here?
+ ReadBuffer((BYTE*)m_Streams[iStream].m_LanguageCode, 3);
+ m_Streams[iStream].m_LCID = ISO6392ToLcid (m_Streams[iStream].m_LanguageCode);
+ }
+ break;
default :
break;
}
iStream++;
SetFilePointer(m_hFile, dwPos, NULL, FILE_BEGIN);
- }
- }
+ }
+ }
return S_OK;
}
@@ -173,8 +173,8 @@ HRESULT CHdmvClipInfo::ReadInfo(LPCTSTR strFile)
BYTE Buff[100];
m_bIsHdmv = false;
- m_hFile = CreateFile(strFile, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
- OPEN_EXISTING, FILE_ATTRIBUTE_READONLY|FILE_FLAG_SEQUENTIAL_SCAN, NULL);
+ m_hFile = CreateFile(strFile, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_READONLY|FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if(m_hFile != INVALID_HANDLE_VALUE)
{
@@ -193,7 +193,7 @@ HRESULT CHdmvClipInfo::ReadInfo(LPCTSTR strFile)
return CloseFile(S_OK);
}
-
+
return AmHresultFromWin32(GetLastError());
}
@@ -261,13 +261,14 @@ HRESULT CHdmvClipInfo::ReadPlaylist(CString strPlaylistFile, REFERENCE_TIME& rtD
BYTE Buff[100];
CPath Path (strPlaylistFile);
bool bDuplicate = false;
+ rtDuration = 0;
// Get BDMV folder
Path.RemoveFileSpec();
Path.RemoveFileSpec();
- m_hFile = CreateFile(strPlaylistFile, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
- OPEN_EXISTING, FILE_ATTRIBUTE_READONLY|FILE_FLAG_SEQUENTIAL_SCAN, NULL);
+ m_hFile = CreateFile(strPlaylistFile, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_READONLY|FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if(m_hFile != INVALID_HANDLE_VALUE)
{
@@ -277,10 +278,10 @@ HRESULT CHdmvClipInfo::ReadPlaylist(CString strPlaylistFile, REFERENCE_TIME& rtD
ReadBuffer(Buff, 4);
if ((memcmp (Buff, "0200", 4)!=0) && (memcmp (Buff, "0100", 4)!=0)) return CloseFile(VFW_E_INVALID_FILE_FORMAT);
- DWORD dwPos;
+ DWORD dwPos;
DWORD dwTemp;
SHORT nPlaylistItems;
-
+
dwPos = ReadDword();
SetFilePointer(m_hFile, dwPos, NULL, FILE_BEGIN);
@@ -288,9 +289,8 @@ HRESULT CHdmvClipInfo::ReadPlaylist(CString strPlaylistFile, REFERENCE_TIME& rtD
ReadShort();
nPlaylistItems = ReadShort();
ReadShort();
-
+
dwPos += 10;
- rtDuration = 0;
for (size_t i=0; i<nPlaylistItems; i++)
{
PlaylistItem Item;
@@ -331,7 +331,7 @@ HRESULT CHdmvClipInfo::FindMainMovie(LPCTSTR strFolder, CString& strPlaylistFile
CString strPath (strFolder);
CString strFilter;
-
+
CAtlList<PlaylistItem> Playlist;
WIN32_FIND_DATA fd = {0};
@@ -344,14 +344,14 @@ HRESULT CHdmvClipInfo::FindMainMovie(LPCTSTR strFolder, CString& strPlaylistFile
HANDLE hFind = FindFirstFile(strFilter, &fd);
if(hFind != INVALID_HANDLE_VALUE)
{
- REFERENCE_TIME rtMax = 0;
- REFERENCE_TIME rtCurrent;
- CString strCurrentPlaylist;
+ REFERENCE_TIME rtMax = 0;
+ REFERENCE_TIME rtCurrent;
+ CString strCurrentPlaylist;
do
{
strCurrentPlaylist.Format(_T("%sPLAYLIST\\%s"), strPath, fd.cFileName);
Playlist.RemoveAll();
-
+
// Main movie shouldn't have duplicate M2TS filename...
if (ReadPlaylist(strCurrentPlaylist, rtCurrent, Playlist) == S_OK && rtCurrent > rtMax)
{
@@ -366,7 +366,7 @@ HRESULT CHdmvClipInfo::FindMainMovie(LPCTSTR strFolder, CString& strPlaylistFile
}
}
while(FindNextFile(hFind, &fd));
-
+
FindClose(hFind);
}
diff --git a/src/DSUtil/HdmvClipInfo.h b/src/DSUtil/HdmvClipInfo.h
index b178d3529..a5677c464 100644
--- a/src/DSUtil/HdmvClipInfo.h
+++ b/src/DSUtil/HdmvClipInfo.h
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -26,52 +26,52 @@
enum BDVM_VideoFormat
{
- BDVM_VideoFormat_Unknown = 0,
- BDVM_VideoFormat_480i = 1,
- BDVM_VideoFormat_576i = 2,
- BDVM_VideoFormat_480p = 3,
- BDVM_VideoFormat_1080i = 4,
- BDVM_VideoFormat_720p = 5,
- BDVM_VideoFormat_1080p = 6,
- BDVM_VideoFormat_576p = 7,
+ BDVM_VideoFormat_Unknown = 0,
+ BDVM_VideoFormat_480i = 1,
+ BDVM_VideoFormat_576i = 2,
+ BDVM_VideoFormat_480p = 3,
+ BDVM_VideoFormat_1080i = 4,
+ BDVM_VideoFormat_720p = 5,
+ BDVM_VideoFormat_1080p = 6,
+ BDVM_VideoFormat_576p = 7,
};
enum BDVM_FrameRate
{
- BDVM_FrameRate_Unknown = 0,
- BDVM_FrameRate_23_976 = 1,
- BDVM_FrameRate_24 = 2,
- BDVM_FrameRate_25 = 3,
- BDVM_FrameRate_29_97 = 4,
- BDVM_FrameRate_50 = 6,
- BDVM_FrameRate_59_94 = 7
+ BDVM_FrameRate_Unknown = 0,
+ BDVM_FrameRate_23_976 = 1,
+ BDVM_FrameRate_24 = 2,
+ BDVM_FrameRate_25 = 3,
+ BDVM_FrameRate_29_97 = 4,
+ BDVM_FrameRate_50 = 6,
+ BDVM_FrameRate_59_94 = 7
};
enum BDVM_AspectRatio
{
- BDVM_AspectRatio_Unknown = 0,
- BDVM_AspectRatio_4_3 = 2,
- BDVM_AspectRatio_16_9 = 3,
- BDVM_AspectRatio_2_21 = 4
+ BDVM_AspectRatio_Unknown = 0,
+ BDVM_AspectRatio_4_3 = 2,
+ BDVM_AspectRatio_16_9 = 3,
+ BDVM_AspectRatio_2_21 = 4
};
enum BDVM_ChannelLayout
{
- BDVM_ChannelLayout_Unknown = 0,
- BDVM_ChannelLayout_MONO = 1,
- BDVM_ChannelLayout_STEREO = 3,
- BDVM_ChannelLayout_MULTI = 6,
- BDVM_ChannelLayout_COMBO = 12
+ BDVM_ChannelLayout_Unknown = 0,
+ BDVM_ChannelLayout_MONO = 1,
+ BDVM_ChannelLayout_STEREO = 3,
+ BDVM_ChannelLayout_MULTI = 6,
+ BDVM_ChannelLayout_COMBO = 12
};
enum BDVM_SampleRate
{
- BDVM_SampleRate_Unknown = 0,
- BDVM_SampleRate_48 = 1,
- BDVM_SampleRate_96 = 4,
- BDVM_SampleRate_192 = 5,
- BDVM_SampleRate_48_192 = 12,
- BDVM_SampleRate_48_96 = 14
+ BDVM_SampleRate_Unknown = 0,
+ BDVM_SampleRate_48 = 1,
+ BDVM_SampleRate_96 = 4,
+ BDVM_SampleRate_192 = 5,
+ BDVM_SampleRate_48_192 = 12,
+ BDVM_SampleRate_48_96 = 14
};
typedef unsigned char uint8;
@@ -133,9 +133,18 @@ public:
HRESULT ReadInfo(LPCTSTR strFile);
Stream* FindStream(SHORT wPID);
- bool IsHdmv() const { return m_bIsHdmv; };
- size_t GetStreamNumber() { return m_Streams.GetCount(); };
- Stream* GetStreamByIndex(size_t nIndex){ return (nIndex < m_Streams.GetCount()) ? &m_Streams[nIndex] : NULL; };
+ bool IsHdmv() const
+ {
+ return m_bIsHdmv;
+ };
+ size_t GetStreamNumber()
+ {
+ return m_Streams.GetCount();
+ };
+ Stream* GetStreamByIndex(size_t nIndex)
+ {
+ return (nIndex < m_Streams.GetCount()) ? &m_Streams[nIndex] : NULL;
+ };
HRESULT FindMainMovie(LPCTSTR strFolder, CString& strPlaylistFile, CAtlList<PlaylistItem>& MainPlaylist);
HRESULT ReadPlaylist(CString strPlaylistFile, REFERENCE_TIME& rtDuration, CAtlList<PlaylistItem>& Playlist);
diff --git a/src/DSUtil/MediaTypeEx.cpp b/src/DSUtil/MediaTypeEx.cpp
index 027808a3a..95654d4ab 100644
--- a/src/DSUtil/MediaTypeEx.cpp
+++ b/src/DSUtil/MediaTypeEx.cpp
@@ -40,7 +40,7 @@ CString CMediaTypeEx::ToString(IPin* pPin)
{
packing = _T("MPEG2 PES");
}
-
+
if(majortype == MEDIATYPE_Video)
{
type = _T("Video");
@@ -130,7 +130,7 @@ CString CMediaTypeEx::ToString(IPin* pPin)
if(vf->Channels == 1) dim.Format(_T("%s mono"), CString(dim));
else if(vf->Channels == 2) dim.Format(_T("%s stereo"), CString(dim));
else dim.Format(_T("%s %dch"), CString(dim), vf->Channels);
- }
+ }
}
else if(majortype == MEDIATYPE_Text)
{
@@ -169,7 +169,7 @@ CString CMediaTypeEx::ToString(IPin* pPin)
if(!rate.IsEmpty()) str += rate + _T(" ");
if(!dur.IsEmpty()) str += dur + _T(" ");
str.Trim(_T(" ,"));
-
+
if(!str.IsEmpty()) str = type + _T(": ") + str;
else str = type;
@@ -216,7 +216,7 @@ CString CMediaTypeEx::GetVideoCodecName(const GUID& subtype, DWORD biCompression
BYTE* b = (BYTE*)&biCompression;
for(ptrdiff_t i = 0; i < 4; i++)
- if(b[i] >= 'a' && b[i] <= 'z')
+ if(b[i] >= 'a' && b[i] <= 'z')
b[i] = toupper(b[i]);
if(!names.Lookup(MAKEFOURCC(b[3], b[2], b[1], b[0]), str))
@@ -365,7 +365,7 @@ void CMediaTypeEx::Dump(CAtlList<CString>& sl)
CString sub = CStringFromGUID(subtype);
CString format = CStringFromGUID(formattype);
- sl.AddTail(ToString() + _T("\n"));
+ sl.AddTail(ToString() + _T("\n"));
sl.AddTail(_T("AM_MEDIA_TYPE: "));
str.Format(_T("majortype: %s %s"), CString(GuidNames[majortype]), major);
@@ -388,7 +388,7 @@ void CMediaTypeEx::Dump(CAtlList<CString>& sl)
if(formattype == FORMAT_VideoInfo || formattype == FORMAT_VideoInfo2
|| formattype == FORMAT_MPEGVideo || formattype == FORMAT_MPEG2_VIDEO)
{
- fmtsize =
+ fmtsize =
formattype == FORMAT_VideoInfo ? sizeof(VIDEOINFOHEADER) :
formattype == FORMAT_VideoInfo2 ? sizeof(VIDEOINFOHEADER2) :
formattype == FORMAT_MPEGVideo ? sizeof(MPEG1VIDEOINFO)-1 :
@@ -491,7 +491,7 @@ void CMediaTypeEx::Dump(CAtlList<CString>& sl)
sl.AddTail(str);
sl.AddTail(_T(""));
- }
+ }
else if(formattype == FORMAT_WaveFormatEx)
{
fmtsize = sizeof(WAVEFORMATEX);
diff --git a/src/DSUtil/MediaTypeEx.h b/src/DSUtil/MediaTypeEx.h
index a066136d0..ad5c701ac 100644
--- a/src/DSUtil/MediaTypeEx.h
+++ b/src/DSUtil/MediaTypeEx.h
@@ -4,7 +4,9 @@ class CMediaTypeEx : public CMediaType
{
public:
CMediaTypeEx();
- CMediaTypeEx(const CMediaType& mt) {CMediaType::operator = (mt);}
+ CMediaTypeEx(const CMediaType& mt) {
+ CMediaType::operator = (mt);
+ }
CString ToString(IPin* pPin = NULL);
diff --git a/src/DSUtil/MediaTypes.cpp b/src/DSUtil/MediaTypes.cpp
index 5edb08674..b8cf59760 100644
--- a/src/DSUtil/MediaTypes.cpp
+++ b/src/DSUtil/MediaTypes.cpp
@@ -1,20 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -35,140 +37,140 @@ VIH vihs[] =
{
// YUY2
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, mmioFOURCC('Y','U','Y','2'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_YUY2 // subtype
},
// YV12
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 12, mmioFOURCC('Y','V','1','2'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_YV12 // subtype
},
// I420
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 12, mmioFOURCC('I','4','2','0'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_I420 // subtype
},
// IYUV
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 12, mmioFOURCC('I','Y','U','V'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_IYUV // subtype
},
// 8888 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_RGB32 // subtype
},
- // 8888 bitf
+ // 8888 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xFF0000, 0x00FF00, 0x0000FF}, // mask[3]
VIH_BITFIELDS, // size
&MEDIASUBTYPE_RGB32 // subtype
},
// A888 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_ARGB32 // subtype
},
// A888 bitf (I'm not sure if this exist...)
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xFF0000, 0x00FF00, 0x0000FF}, // mask[3]
VIH_BITFIELDS, // size
&MEDIASUBTYPE_ARGB32 // subtype
},
// 888 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 24, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_RGB24 // subtype
},
- // 888 bitf
+ // 888 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 24, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xFF0000, 0x00FF00, 0x0000FF}, // mask[3]
VIH_BITFIELDS, // size
&MEDIASUBTYPE_RGB24 // subtype
},
// 565 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_RGB565 // subtype
},
// 565 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xF800, 0x07E0, 0x001F}, // mask[3]
VIH_BITFIELDS, // size
&MEDIASUBTYPE_RGB565 // subtype
},
// 555 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH_NORMAL, // size
&MEDIASUBTYPE_RGB555 // subtype
},
// 555 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0x7C00, 0x03E0, 0x001F}, // mask[3]
VIH_BITFIELDS, // size
&MEDIASUBTYPE_RGB555 // subtype
@@ -179,140 +181,140 @@ VIH2 vih2s[] =
{
// YUY2
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, mmioFOURCC('Y','U','Y','2'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_YUY2 // subtype
},
// YV12
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 12, mmioFOURCC('Y','V','1','2'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_YV12 // subtype
},
// I420
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 12, mmioFOURCC('I','4','2','0'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_I420 // subtype
},
// IYUV
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 12, mmioFOURCC('I','Y','U','V'), 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_IYUV // subtype
},
// 8888 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_RGB32 // subtype
},
- // 8888 bitf
+ // 8888 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xFF0000, 0x00FF00, 0x0000FF}, // mask[3]
VIH2_BITFIELDS, // size
&MEDIASUBTYPE_RGB32 // subtype
},
// A888 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_ARGB32 // subtype
},
// A888 bitf (I'm not sure if this exist...)
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 32, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xFF0000, 0x00FF00, 0x0000FF}, // mask[3]
VIH2_BITFIELDS, // size
&MEDIASUBTYPE_ARGB32 // subtype
},
// 888 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 24, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_RGB24 // subtype
},
- // 888 bitf
+ // 888 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 24, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xFF0000, 0x00FF00, 0x0000FF}, // mask[3]
VIH2_BITFIELDS, // size
&MEDIASUBTYPE_RGB24 // subtype
},
// 565 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_RGB565 // subtype
},
// 565 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0xF800, 0x07E0, 0x001F}, // mask[3]
VIH2_BITFIELDS, // size
&MEDIASUBTYPE_RGB565 // subtype
},
// 555 normal
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_RGB, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0, 0, 0}, // mask[3]
VIH2_NORMAL, // size
&MEDIASUBTYPE_RGB555 // subtype
},
// 555 bitf
{
- {
+ {
{0, 0, 0, 0}, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{BIH_SIZE, 0, 0, 1, 16, BI_BITFIELDS, 0, 0, 0, 0, 0} // bmiHeader
- },
+ },
{0x7C00, 0x03E0, 0x001F}, // mask[3]
VIH2_BITFIELDS, // size
&MEDIASUBTYPE_RGB555 // subtype
diff --git a/src/DSUtil/MediaTypes.h b/src/DSUtil/MediaTypes.h
index e4beb1733..e18e5eca9 100644
--- a/src/DSUtil/MediaTypes.h
+++ b/src/DSUtil/MediaTypes.h
@@ -1,20 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/DSUtil/Mpeg2Def.h b/src/DSUtil/Mpeg2Def.h
index 5b5c8f71a..b968e1710 100644
--- a/src/DSUtil/Mpeg2Def.h
+++ b/src/DSUtil/Mpeg2Def.h
@@ -1,4 +1,4 @@
-/*
+/*
* $Id: Mpeg2Def.h 1288 2009-09-27 15:50:30Z casimir666 $
*
* (C) 2006-2010 see AUTHORS
@@ -25,11 +25,11 @@
enum PES_STREAM_TYPE
{
- INVALID = 0,
- VIDEO_STREAM_MPEG1 = 0x01,
- VIDEO_STREAM_MPEG2 = 0x02, // ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream
- AUDIO_STREAM_MPEG1 = 0x03, // all layers including mp3 (ISO/IEC 11172-3 Audio)
- AUDIO_STREAM_MPEG2 = 0x04, // ISO/IEC 13818-3 Audio
+ INVALID = 0,
+ VIDEO_STREAM_MPEG1 = 0x01,
+ VIDEO_STREAM_MPEG2 = 0x02, // ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream
+ AUDIO_STREAM_MPEG1 = 0x03, // all layers including mp3 (ISO/IEC 11172-3 Audio)
+ AUDIO_STREAM_MPEG2 = 0x04, // ISO/IEC 13818-3 Audio
PRIVATE = 0x05, // ITU-T Rec. H.222.0 | ISO/IEC 13818-1 private_sections
PES_PRIVATE = 0x06, // ITU-T Rec. H.222.0 | ISO/IEC 13818-1 PES packets containing private data
PES_07 = 0x07, // ISO/IEC 13522 MHEG
@@ -52,25 +52,25 @@ enum PES_STREAM_TYPE
OBJECT_CAROUSEL = 0x18, // Metadata carried in ISO/IEC 13818-6 Object Carousel
SYNCHRONIZED_DOWNLOAD = 0x19, // Metadata carried in ISO/IEC 13818-6 Synchronized Download Protocol
IPMP = 0x1A, // IPMP stream (defined in ISO/IEC 13818-11, MPEG-2 IPMP)
- VIDEO_STREAM_H264 = 0x1B, // AVC video stream conforming to one or more profiles defined in Annex A of ITU-T Rec. H.264
+ VIDEO_STREAM_H264 = 0x1B, // AVC video stream conforming to one or more profiles defined in Annex A of ITU-T Rec. H.264
PES_1C = 0x1C, // ISO/IEC 14496-3 Audio, without using any additional transport syntax, such as DST, ALS and SLS
TEXT = 0x1D, // ISO/IEC 14496-17 Text
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
- AUDIO_STREAM_LPCM = 0x80,
- AUDIO_STREAM_AC3 = 0x81,
- AUDIO_STREAM_DTS = 0x82,
- AUDIO_STREAM_AC3_TRUE_HD = 0x83,
- AUDIO_STREAM_AC3_PLUS = 0x84,
- AUDIO_STREAM_DTS_HD = 0x85,
- AUDIO_STREAM_DTS_HD_MASTER_AUDIO = 0x86,
- PRESENTATION_GRAPHICS_STREAM = 0x90,
- INTERACTIVE_GRAPHICS_STREAM = 0x91,
- SUBTITLE_STREAM = 0x92,
- SECONDARY_AUDIO_AC3_PLUS = 0xa1,
- SECONDARY_AUDIO_DTS_HD = 0xa2,
- VIDEO_STREAM_VC1 = 0xea
+ AUDIO_STREAM_LPCM = 0x80,
+ AUDIO_STREAM_AC3 = 0x81,
+ AUDIO_STREAM_DTS = 0x82,
+ AUDIO_STREAM_AC3_TRUE_HD = 0x83,
+ AUDIO_STREAM_AC3_PLUS = 0x84,
+ AUDIO_STREAM_DTS_HD = 0x85,
+ AUDIO_STREAM_DTS_HD_MASTER_AUDIO = 0x86,
+ PRESENTATION_GRAPHICS_STREAM = 0x90,
+ INTERACTIVE_GRAPHICS_STREAM = 0x91,
+ SUBTITLE_STREAM = 0x92,
+ SECONDARY_AUDIO_AC3_PLUS = 0xa1,
+ SECONDARY_AUDIO_DTS_HD = 0xa2,
+ VIDEO_STREAM_VC1 = 0xea
};
@@ -133,7 +133,7 @@ enum MPEG2_DESCRIPTOR
DT_MAXIMUM_BITRATE = 0x0e,
DT_PRIVATE_DATA_INDICATOR = 0x0f,
DT_SMOOTHING_BUFFER = 0x10,
- DT_STD = 0x11, // System Target Decoder ?
+ DT_STD = 0x11, // System Target Decoder ?
DT_IBP = 0x12,
DT_NETWORK_NAME = 0x40,
DT_SERVICE_LIST = 0x41,
diff --git a/src/DSUtil/NullRenderers.cpp b/src/DSUtil/NullRenderers.cpp
index ebdc0525e..bf27238c5 100644
--- a/src/DSUtil/NullRenderers.cpp
+++ b/src/DSUtil/NullRenderers.cpp
@@ -1,20 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -40,16 +42,16 @@ typedef HRESULT (__stdcall *PTR_DXVA2CreateDirect3DDeviceManager9)(UINT* pResetT
typedef HRESULT (__stdcall *PTR_DXVA2CreateVideoService)(IDirect3DDevice9* pDD, REFIID riid, void** ppService);
-class CNullVideoRendererInputPin : public CRendererInputPin,
+class CNullVideoRendererInputPin : public CRendererInputPin,
public IMFGetService,
public IDirectXVideoMemoryConfiguration,
public IMFVideoDisplayControl
{
public :
- CNullVideoRendererInputPin(CBaseRenderer *pRenderer, HRESULT *phr, LPCWSTR Name);
+ CNullVideoRendererInputPin(CBaseRenderer *pRenderer, HRESULT *phr, LPCWSTR Name);
DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
STDMETHODIMP GetAllocator(IMemAllocator **ppAllocator)
{
@@ -75,22 +77,52 @@ public :
// IMFVideoDisplayControl
- STDMETHODIMP GetNativeVideoSize(SIZE *pszVideo, SIZE *pszARVideo) { return E_NOTIMPL; };
- STDMETHODIMP GetIdealVideoSize(SIZE *pszMin, SIZE *pszMax) { return E_NOTIMPL; };
- STDMETHODIMP SetVideoPosition(const MFVideoNormalizedRect *pnrcSource, const LPRECT prcDest) { return E_NOTIMPL; };
- STDMETHODIMP GetVideoPosition(MFVideoNormalizedRect *pnrcSource, LPRECT prcDest) { return E_NOTIMPL; };
- STDMETHODIMP SetAspectRatioMode(DWORD dwAspectRatioMode) { return E_NOTIMPL; };
- STDMETHODIMP GetAspectRatioMode(DWORD *pdwAspectRatioMode) { return E_NOTIMPL; };
- STDMETHODIMP SetVideoWindow(HWND hwndVideo) { return E_NOTIMPL; };
- STDMETHODIMP GetVideoWindow(HWND *phwndVideo);
- STDMETHODIMP RepaintVideo( void) { return E_NOTIMPL; };
- STDMETHODIMP GetCurrentImage(BITMAPINFOHEADER *pBih, BYTE **pDib, DWORD *pcbDib, LONGLONG *pTimeStamp) { return E_NOTIMPL; };
- STDMETHODIMP SetBorderColor(COLORREF Clr) { return E_NOTIMPL; };
- STDMETHODIMP GetBorderColor(COLORREF *pClr) { return E_NOTIMPL; };
- STDMETHODIMP SetRenderingPrefs(DWORD dwRenderFlags) { return E_NOTIMPL; };
- STDMETHODIMP GetRenderingPrefs(DWORD *pdwRenderFlags) { return E_NOTIMPL; };
- STDMETHODIMP SetFullscreen(BOOL fFullscreen) { return E_NOTIMPL; };
- STDMETHODIMP GetFullscreen(BOOL *pfFullscreen) { return E_NOTIMPL; };
+ STDMETHODIMP GetNativeVideoSize(SIZE *pszVideo, SIZE *pszARVideo) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetIdealVideoSize(SIZE *pszMin, SIZE *pszMax) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP SetVideoPosition(const MFVideoNormalizedRect *pnrcSource, const LPRECT prcDest) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetVideoPosition(MFVideoNormalizedRect *pnrcSource, LPRECT prcDest) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP SetAspectRatioMode(DWORD dwAspectRatioMode) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetAspectRatioMode(DWORD *pdwAspectRatioMode) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP SetVideoWindow(HWND hwndVideo) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetVideoWindow(HWND *phwndVideo);
+ STDMETHODIMP RepaintVideo( void) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetCurrentImage(BITMAPINFOHEADER *pBih, BYTE **pDib, DWORD *pcbDib, LONGLONG *pTimeStamp) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP SetBorderColor(COLORREF Clr) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetBorderColor(COLORREF *pClr) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP SetRenderingPrefs(DWORD dwRenderFlags) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetRenderingPrefs(DWORD *pdwRenderFlags) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP SetFullscreen(BOOL fFullscreen) {
+ return E_NOTIMPL;
+ };
+ STDMETHODIMP GetFullscreen(BOOL *pfFullscreen) {
+ return E_NOTIMPL;
+ };
private :
@@ -140,7 +172,7 @@ void CNullVideoRendererInputPin::CreateSurface()
{
HRESULT hr;
m_pD3D.Attach(Direct3DCreate9(D3D_SDK_VERSION));
- if(!m_pD3D)
+ if(!m_pD3D)
{
m_pD3D.Attach(Direct3DCreate9(D3D9b_SDK_VERSION));
}
@@ -151,29 +183,29 @@ void CNullVideoRendererInputPin::CreateSurface()
ZeroMemory(&d3ddm, sizeof(d3ddm));
m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
- D3DPRESENT_PARAMETERS pp;
- ZeroMemory(&pp, sizeof(pp));
+ D3DPRESENT_PARAMETERS pp;
+ ZeroMemory(&pp, sizeof(pp));
pp.Windowed = TRUE;
pp.hDeviceWindow = m_hWnd;
pp.SwapEffect = D3DSWAPEFFECT_COPY;
pp.Flags = D3DPRESENTFLAG_VIDEO;
- pp.BackBufferCount = 1;
+ pp.BackBufferCount = 1;
pp.BackBufferWidth = d3ddm.Width;
pp.BackBufferHeight = d3ddm.Height;
pp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
hr = m_pD3D->CreateDevice(
- D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hWnd,
- D3DCREATE_SOFTWARE_VERTEXPROCESSING|D3DCREATE_MULTITHREADED, //D3DCREATE_MANAGED
- &pp, &m_pD3DDev);
+ D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hWnd,
+ D3DCREATE_SOFTWARE_VERTEXPROCESSING|D3DCREATE_MULTITHREADED, //D3DCREATE_MANAGED
+ &pp, &m_pD3DDev);
}
STDMETHODIMP CNullVideoRendererInputPin::NonDelegatingQueryInterface(REFIID riid, void** ppv)
{
- CheckPointer(ppv, E_POINTER);
+ CheckPointer(ppv, E_POINTER);
- return
+ return
(riid == __uuidof(IMFGetService)) ? GetInterface((IMFGetService*)this, ppv) :
__super::NonDelegatingQueryInterface(riid, ppv);
}
@@ -252,7 +284,7 @@ STDMETHODIMP CNullVideoRendererInputPin::GetVideoWindow(HWND *phwndVideo)
// CNullRenderer
//
-CNullRenderer::CNullRenderer(REFCLSID clsid, TCHAR* pName, LPUNKNOWN pUnk, HRESULT* phr)
+CNullRenderer::CNullRenderer(REFCLSID clsid, TCHAR* pName, LPUNKNOWN pUnk, HRESULT* phr)
: CBaseRenderer(clsid, pName, pUnk, phr)
{
}
@@ -261,7 +293,7 @@ CNullRenderer::CNullRenderer(REFCLSID clsid, TCHAR* pName, LPUNKNOWN pUnk, HRESU
// CNullVideoRenderer
//
-CNullVideoRenderer::CNullVideoRenderer(LPUNKNOWN pUnk, HRESULT* phr)
+CNullVideoRenderer::CNullVideoRenderer(LPUNKNOWN pUnk, HRESULT* phr)
: CNullRenderer(__uuidof(this), NAME("Null Video Renderer"), pUnk, phr)
{
}
@@ -278,7 +310,7 @@ HRESULT CNullVideoRenderer::CheckMediaType(const CMediaType* pmt)
// CNullUVideoRenderer
//
-CNullUVideoRenderer::CNullUVideoRenderer(LPUNKNOWN pUnk, HRESULT* phr)
+CNullUVideoRenderer::CNullUVideoRenderer(LPUNKNOWN pUnk, HRESULT* phr)
: CNullRenderer(__uuidof(this), NAME("Null Video Renderer (Uncompressed)"), pUnk, phr)
{
#ifdef USE_DXVA
@@ -316,7 +348,7 @@ HRESULT CNullUVideoRenderer::CheckMediaType(const CMediaType* pmt)
: E_FAIL;
}
-HRESULT CNullUVideoRenderer::DoRenderSample(IMediaSample* pSample)
+HRESULT CNullUVideoRenderer::DoRenderSample(IMediaSample* pSample)
{
#ifdef USE_DXVA
CComQIPtr<IMFGetService> pService = pSample;
@@ -335,7 +367,7 @@ HRESULT CNullUVideoRenderer::DoRenderSample(IMediaSample* pSample)
// CNullAudioRenderer
//
-CNullAudioRenderer::CNullAudioRenderer(LPUNKNOWN pUnk, HRESULT* phr)
+CNullAudioRenderer::CNullAudioRenderer(LPUNKNOWN pUnk, HRESULT* phr)
: CNullRenderer(__uuidof(this), NAME("Null Audio Renderer"), pUnk, phr)
{
}
@@ -360,7 +392,7 @@ HRESULT CNullAudioRenderer::CheckMediaType(const CMediaType* pmt)
// CNullUAudioRenderer
//
-CNullUAudioRenderer::CNullUAudioRenderer(LPUNKNOWN pUnk, HRESULT* phr)
+CNullUAudioRenderer::CNullUAudioRenderer(LPUNKNOWN pUnk, HRESULT* phr)
: CNullRenderer(__uuidof(this), NAME("Null Audio Renderer (Uncompressed)"), pUnk, phr)
{
}
@@ -396,7 +428,7 @@ HRESULT CNullTextRenderer::CTextInputPin::CheckMediaType(const CMediaType* pmt)
#pragma warning (disable : 4355)
CNullTextRenderer::CNullTextRenderer(LPUNKNOWN pUnk, HRESULT* phr)
- : CBaseFilter(NAME("CNullTextRenderer"), pUnk, this, __uuidof(this), phr)
+ : CBaseFilter(NAME("CNullTextRenderer"), pUnk, this, __uuidof(this), phr)
{
m_pInput.Attach(DNew CTextInputPin(this, this, phr));
}
diff --git a/src/DSUtil/NullRenderers.h b/src/DSUtil/NullRenderers.h
index 0552508f3..89e15dd18 100644
--- a/src/DSUtil/NullRenderers.h
+++ b/src/DSUtil/NullRenderers.h
@@ -1,20 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -27,14 +29,16 @@
class CNullRenderer : public CBaseRenderer
{
protected:
- virtual HRESULT DoRenderSample(IMediaSample* pSample) {return S_OK;}
+ virtual HRESULT DoRenderSample(IMediaSample* pSample) {
+ return S_OK;
+ }
public:
CNullRenderer(REFCLSID clsid, TCHAR* pName, LPUNKNOWN pUnk, HRESULT* phr);
};
class __declspec(uuid("579883A0-4E2D-481F-9436-467AAFAB7DE8"))
-CNullVideoRenderer : public CNullRenderer
+ CNullVideoRenderer : public CNullRenderer
{
protected:
HRESULT CheckMediaType(const CMediaType* pmt);
@@ -44,7 +48,7 @@ public:
};
class __declspec(uuid("DD9ED57D-6ABF-42E8-89A2-11D04798DC58"))
-CNullUVideoRenderer : public CNullRenderer
+ CNullUVideoRenderer : public CNullRenderer
{
protected:
HRESULT CheckMediaType(const CMediaType* pmt);
@@ -55,7 +59,7 @@ public:
};
class __declspec(uuid("0C38BDFD-8C17-4E00-A344-F89397D3E22A"))
-CNullAudioRenderer : public CNullRenderer
+ CNullAudioRenderer : public CNullRenderer
{
protected:
HRESULT CheckMediaType(const CMediaType* pmt);
@@ -65,7 +69,7 @@ public:
};
class __declspec(uuid("64A45125-7343-4772-9DA4-179FAC9D462C"))
-CNullUAudioRenderer : public CNullRenderer
+ CNullUAudioRenderer : public CNullRenderer
{
protected:
HRESULT CheckMediaType(const CMediaType* pmt);
@@ -75,21 +79,24 @@ public:
};
class __declspec(uuid("655D7613-C26C-4A25-BBBD-3C9C516122CC"))
-CNullTextRenderer : public CBaseFilter, public CCritSec
+ CNullTextRenderer : public CBaseFilter, public CCritSec
{
class CTextInputPin : public CBaseInputPin
{
public:
- CTextInputPin(CBaseFilter* pFilter, CCritSec* pLock, HRESULT* phr)
+ CTextInputPin(CBaseFilter* pFilter, CCritSec* pLock, HRESULT* phr)
: CBaseInputPin(NAME("CTextInputPin"), pFilter, pLock, phr, L"In") {}
- HRESULT CheckMediaType(const CMediaType* pmt);
+ HRESULT CheckMediaType(const CMediaType* pmt);
};
CAutoPtr<CTextInputPin> m_pInput;
public:
CNullTextRenderer(LPUNKNOWN pUnk, HRESULT* phr);
- int GetPinCount() {return (int)!!m_pInput;}
- CBasePin* GetPin(int n) {return n == 0 ? (CBasePin*)m_pInput : NULL;}
+ int GetPinCount() {
+ return (int)!!m_pInput;
+ }
+ CBasePin* GetPin(int n) {
+ return n == 0 ? (CBasePin*)m_pInput : NULL;
+ }
};
-
diff --git a/src/DSUtil/SharedInclude.h b/src/DSUtil/SharedInclude.h
index 7a2ca07ac..6855048ea 100644
--- a/src/DSUtil/SharedInclude.h
+++ b/src/DSUtil/SharedInclude.h
@@ -14,20 +14,18 @@
#pragma warning(disable:4267)
#ifdef _DEBUG
- #define _CRTDBG_MAP_ALLOC // include Microsoft memory leak detection procedures
+ #define _CRTDBG_MAP_ALLOC // include Microsoft memory leak detection procedures
-#if 0
- #include <crtdbg.h>
- #define DNew new(_NORMAL_BLOCK, __FILE__, __LINE__)
-#else
- #define DNew new(__FILE__, __LINE__)
-#endif
+ #if 0
+ #include <crtdbg.h>
+ #define DNew new(_NORMAL_BLOCK, __FILE__, __LINE__)
+ #else
+ #define DNew new(__FILE__, __LINE__)
+ #endif
#else
-#define DNew new
+ #define DNew new
#endif
#endif // IncDSUtil_SharedInclude_h
-
-
diff --git a/src/DSUtil/deinterlace.cpp b/src/DSUtil/deinterlace.cpp
index 0564afa61..ef5ee9ef5 100644
--- a/src/DSUtil/deinterlace.cpp
+++ b/src/DSUtil/deinterlace.cpp
@@ -396,7 +396,7 @@ static void asm_blend_row(void *dst0, const void *src0, uint32 w, ptrdiff_t srcp
mov edx, [esp + 12 + 4]
mov eax, [esp + 16 + 4]
movq mm7, xFEb
-
+
xloop:
movq mm0, [ecx + 15]
movq mm1, [edx + 15]
@@ -589,7 +589,7 @@ xloop:
mov edx, [esp + 12 + 4]
mov eax, [esp + 16 + 4]
movq mm7, xFEb
-
+
xloop:
movq mm0, [ecx + 15]
movq mm1, [edx + 15]
@@ -1098,7 +1098,7 @@ xloop:
psllq mm1, 56
psubb mm7, mm6
por mm1, mm5
- movq mm6, mm7
+ movq mm6, mm7
pxor mm7, mm1
por mm1, mm6
psrlq mm7, 1
@@ -1122,7 +1122,7 @@ xloop:
psllq mm2, 56
psubb mm7, mm6
por mm2, mm5
- movq mm6, mm7
+ movq mm6, mm7
pxor mm7, mm2
por mm2, mm6
psrlq mm7, 1
@@ -1146,7 +1146,7 @@ xloop:
psllq mm3, 56
psubb mm7, mm6
por mm3, mm5
- movq mm6, mm7
+ movq mm6, mm7
pxor mm7, mm3
por mm3, mm6
psrlq mm7, 1
@@ -1170,7 +1170,7 @@ xloop:
psllq mm4, 56
psubb mm7, mm6
por mm4, mm5
- movq mm6, mm7
+ movq mm6, mm7
pxor mm7, mm4
por mm4, mm6
psrlq mm7, 1
diff --git a/src/DSUtil/stdafx.cpp b/src/DSUtil/stdafx.cpp
index 0cde80132..bea3f980a 100644
--- a/src/DSUtil/stdafx.cpp
+++ b/src/DSUtil/stdafx.cpp
@@ -1,29 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// dsutil.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/DSUtil/stdafx.h b/src/DSUtil/stdafx.h
index 46da40b57..2fb536485 100644
--- a/src/DSUtil/stdafx.h
+++ b/src/DSUtil/stdafx.h
@@ -1,44 +1,37 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
+
#include "SharedInclude.h"
-#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <Shlwapi.h>
@@ -47,4 +40,3 @@
#include <streams.h>
#include <dvdmedia.h>
-
diff --git a/src/DSUtil/text.cpp b/src/DSUtil/text.cpp
index 99d61f702..faadaf119 100644
--- a/src/DSUtil/text.cpp
+++ b/src/DSUtil/text.cpp
@@ -19,7 +19,7 @@ CString Explode(CString str, CAtlList<CString>& sl, TCHAR sep, int limit)
sl.AddTail(tmp);
if(limit > 0 && sl.GetCount() == limit-1)
{
- if(j+1 < str.GetLength())
+ if(j+1 < str.GetLength())
{
CString tmp = str.Mid(j+1);
tmp.TrimLeft(sep); tmp.TrimRight(sep);
@@ -44,7 +44,7 @@ CString ExplodeMin(CString str, CAtlList<CString>& sl, TCHAR sep, int limit)
{
Explode(str, sl, sep, limit);
POSITION pos = sl.GetHeadPosition();
- while(pos)
+ while(pos)
{
POSITION tmp = pos;
if(sl.GetNext(pos).IsEmpty())
@@ -72,7 +72,7 @@ DWORD CharSetToCodePage(DWORD dwCharSet)
{
if(dwCharSet == CP_UTF8) return CP_UTF8;
if(dwCharSet == CP_UTF7) return CP_UTF7;
- CHARSETINFO cs={0};
+ CHARSETINFO cs= {0};
::TranslateCharsetInfo((DWORD *)dwCharSet, &cs, TCI_SRCCHARSET);
return cs.ciACP;
}
@@ -86,15 +86,15 @@ CStringA ConvertMBCS(CStringA str, DWORD SrcCharSet, DWORD DstCharSet)
memset(mbcs, 0, str.GetLength()*6+1);
int len = MultiByteToWideChar(
- CharSetToCodePage(SrcCharSet), 0,
- str.GetBuffer(str.GetLength()), str.GetLength(),
- utf16, (str.GetLength()+1)*sizeof(WCHAR));
+ CharSetToCodePage(SrcCharSet), 0,
+ str.GetBuffer(str.GetLength()), str.GetLength(),
+ utf16, (str.GetLength()+1)*sizeof(WCHAR));
len = WideCharToMultiByte(
- CharSetToCodePage(DstCharSet), 0,
- utf16, len,
- mbcs, str.GetLength()*6,
- NULL, NULL);
+ CharSetToCodePage(DstCharSet), 0,
+ utf16, len,
+ mbcs, str.GetLength()*6,
+ NULL, NULL);
str = mbcs;
@@ -114,7 +114,11 @@ CStringA UrlEncode(CStringA str, bool fRaw)
if(fRaw && c == '+') urlstr += "%2B";
else if(c > 0x20 && c < 0x7f && c != '&') urlstr += c;
else if(c == 0x20) urlstr += fRaw ? ' ' : '+';
- else {CStringA tmp; tmp.Format("%%%02x", (BYTE)c); urlstr += tmp;}
+ else {
+ CStringA tmp;
+ tmp.Format("%%%02x", (BYTE)c);
+ urlstr += tmp;
+ }
}
return urlstr;
@@ -134,8 +138,8 @@ CStringA UrlDecode(CStringA str, bool fRaw)
CHAR s12 = (s1 < e-2) ? (__isascii(s1[2]) && isupper(s1[2]) ? tolower(s1[2]) : s1[2]) : 0;
if(*s1 == '%' && s1 < e-2
- && (s1[1] >= '0' && s1[1] <= '9' || s11 >= 'a' && s11 <= 'f')
- && (s1[2] >= '0' && s1[2] <= '9' || s12 >= 'a' && s12 <= 'f'))
+ && (s1[1] >= '0' && s1[1] <= '9' || s11 >= 'a' && s11 <= 'f')
+ && (s1[2] >= '0' && s1[2] <= '9' || s12 >= 'a' && s12 <= 'f'))
{
s1[1] = s11;
s1[2] = s12;
@@ -147,7 +151,7 @@ CStringA UrlDecode(CStringA str, bool fRaw)
else if(s1[2] >= 'a' && s1[2] <= 'f') *s2 |= s1[2]-'a'+10;
s1 += 2;
}
- else
+ else
{
*s2 = *s1 == '+' && !fRaw ? ' ' : *s1;
}
@@ -180,7 +184,10 @@ CString ExtractTag(CString tag, CMapStringToString& attribs, bool& fClosing)
tag = tag.Mid(i+1);
for(i = 0; i < tag.GetLength() && _istspace(tag[i]); i++);
tag = i < tag.GetLength() ? tag.Mid(i) : _T("");
- if(!tag.IsEmpty() && tag[0] == '\"') {tag = tag.Mid(1); i = tag.Find('\"');}
+ if(!tag.IsEmpty() && tag[0] == '\"') {
+ tag = tag.Mid(1);
+ i = tag.Find('\"');
+ }
else i = tag.Find(' ');
if(i < 0) i = tag.GetLength();
CString param = tag.Left(i).Trim();
diff --git a/src/DSUtil/text.h b/src/DSUtil/text.h
index caef07a1a..c9ab75363 100644
--- a/src/DSUtil/text.h
+++ b/src/DSUtil/text.h
@@ -23,7 +23,7 @@ T Explode(T str, CAtlList<T>& sl, SEP sep, size_t limit = 0)
else
{
sl.AddTail(str.Mid(i, j-i).Trim());
- }
+ }
}
return sl.GetHead();
@@ -34,7 +34,7 @@ T ExplodeMin(T str, CAtlList<T>& sl, SEP sep, size_t limit = 0)
{
Explode(str, sl, sep, limit);
POSITION pos = sl.GetHeadPosition();
- while(pos)
+ while(pos)
{
POSITION tmp = pos;
if(sl.GetNext(pos).IsEmpty())
diff --git a/src/DSUtil/vd.cpp b/src/DSUtil/vd.cpp
index 6c0c10bdb..24ab826a6 100644
--- a/src/DSUtil/vd.cpp
+++ b/src/DSUtil/vd.cpp
@@ -16,7 +16,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Notes:
+// Notes:
// - VDPixmapBlt is from VirtualDub
// - sse2 yv12 to yuy2 conversion by Haali
// (- vd.cpp/h should be renamed to something more sensible already :)
@@ -149,9 +149,15 @@ bool BitBltFromI420ToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE*
};
switch(dbpp) {
- case 16: dstpxm.format = nsVDPixmap::kPixFormat_RGB565; break;
- case 24: dstpxm.format = nsVDPixmap::kPixFormat_RGB888; break;
- case 32: dstpxm.format = nsVDPixmap::kPixFormat_XRGB8888; 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);
}
@@ -212,10 +218,18 @@ bool BitBltFromRGBToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE* s
};
switch(dbpp) {
- 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;
+ 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);
}
@@ -229,10 +243,18 @@ bool BitBltFromRGBToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE* s
};
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;
+ 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);
}
@@ -261,9 +283,15 @@ bool BitBltFromYUY2ToRGB(int w, int h, BYTE* dst, int dstpitch, int dbpp, BYTE*
};
switch(dbpp) {
- case 16: dstpxm.format = nsVDPixmap::kPixFormat_RGB565; break;
- case 24: dstpxm.format = nsVDPixmap::kPixFormat_RGB888; break;
- case 32: dstpxm.format = nsVDPixmap::kPixFormat_XRGB8888; 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);
}
@@ -302,7 +330,7 @@ bool BitBltFromI420ToYUY2Interlaced(int w, int h, BYTE* dst, int dstpitch, BYTE*
void (*yuvtoyuy2row_avg)(BYTE* dst, BYTE* srcy, BYTE* srcu, BYTE* srcv, DWORD width, DWORD pitchuv) = NULL;
#ifndef _WIN64
- if((g_cpuid.m_flags & CCpuID::sse2)
+ if((g_cpuid.m_flags & CCpuID::sse2)
&& !((DWORD_PTR)srcy&15) && !((DWORD_PTR)srcu&15) && !((DWORD_PTR)srcv&15) && !(srcpitch&31)
&& !((DWORD_PTR)dst&15) && !(dstpitch&15))
{
@@ -322,7 +350,7 @@ bool BitBltFromI420ToYUY2Interlaced(int w, int h, BYTE* dst, int dstpitch, BYTE*
yuvtoyuy2row_avg = yuvtoyuy2row_avg_c;
}
- if(!yuvtoyuy2row)
+ if(!yuvtoyuy2row)
return(false);
int halfsrcpitch = srcpitch/2;
diff --git a/src/DSUtil/vd.h b/src/DSUtil/vd.h
index ae167a841..d0004f165 100644
--- a/src/DSUtil/vd.h
+++ b/src/DSUtil/vd.h
@@ -16,14 +16,18 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Notes:
+// Notes:
// - VDPixmapBlt is from VirtualDub
// - sse2 yv12 to yuy2 conversion by Haali
// (- vd.cpp/h should be renamed to something more sensible already :)
#pragma once
-class CCpuID {public: CCpuID(); enum flag_t {mmx=1, ssemmx=2, ssefpu=4, sse2=8, _3dnow=16} m_flags;};
+class CCpuID {
+public:
+ CCpuID();
+ enum flag_t {mmx=1, ssemmx=2, ssefpu=4, sse2=8, _3dnow=16} m_flags;
+};
extern CCpuID g_cpuid;
extern bool BitBltFromI420ToI420(int w, int h, BYTE* dsty, BYTE* dstu, BYTE* dstv, int dstpitch, BYTE* srcy, BYTE* srcu, BYTE* srcv, int srcpitch);
diff --git a/src/DSUtil/vd_asm.cpp b/src/DSUtil/vd_asm.cpp
index 3fc521844..2b836465a 100644
--- a/src/DSUtil/vd_asm.cpp
+++ b/src/DSUtil/vd_asm.cpp
@@ -16,7 +16,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Notes:
+// Notes:
// - VDPixmapBlt is from VirtualDub
// - sse2 yv12 to yuy2 conversion by Haali
// (- vd.cpp/h should be renamed to something more sensible already :)
@@ -60,7 +60,7 @@ yuvtoyuy2row_loop:
add ebp, 8
add ebx, 4
add esi, 4
- add edi, 16
+ add edi, 16
dec ecx
jnz yuvtoyuy2row_loop
@@ -123,7 +123,7 @@ yuvtoyuy2row_avg_loop:
add ebp, 8
add ebx, 4
add esi, 4
- add edi, 16
+ add edi, 16
dec ecx
jnz yuvtoyuy2row_avg_loop
@@ -137,296 +137,296 @@ yuvtoyuy2row_avg_loop:
}
void __declspec(naked) yv12_yuy2_row_sse2() {
- __asm {
- // ebx - Y
- // edx - U
- // esi - V
- // edi - dest
- // ecx - halfwidth
- xor eax, eax
+ __asm {
+ // ebx - Y
+ // edx - U
+ // esi - V
+ // edi - dest
+ // ecx - halfwidth
+ xor eax, eax
one:
- movdqa xmm0, [ebx + eax*2] // YYYYYYYY
- movdqa xmm1, [ebx + eax*2 + 16] // YYYYYYYY
+ movdqa xmm0, [ebx + eax*2] // YYYYYYYY
+ movdqa xmm1, [ebx + eax*2 + 16] // YYYYYYYY
- movdqa xmm2, [edx + eax] // UUUUUUUU
- movdqa xmm3, [esi + eax] // VVVVVVVV
+ movdqa xmm2, [edx + eax] // UUUUUUUU
+ movdqa xmm3, [esi + eax] // VVVVVVVV
- movdqa xmm4, xmm2
- movdqa xmm5, xmm0
- movdqa xmm6, xmm1
- punpcklbw xmm2, xmm3 // VUVUVUVU
- punpckhbw xmm4, xmm3 // VUVUVUVU
+ movdqa xmm4, xmm2
+ movdqa xmm5, xmm0
+ movdqa xmm6, xmm1
+ punpcklbw xmm2, xmm3 // VUVUVUVU
+ punpckhbw xmm4, xmm3 // VUVUVUVU
- punpcklbw xmm0, xmm2 // VYUYVYUY
- punpcklbw xmm1, xmm4
- punpckhbw xmm5, xmm2
- punpckhbw xmm6, xmm4
+ punpcklbw xmm0, xmm2 // VYUYVYUY
+ punpcklbw xmm1, xmm4
+ punpckhbw xmm5, xmm2
+ punpckhbw xmm6, xmm4
- movntdq [edi + eax*4], xmm0
- movntdq [edi + eax*4 + 16], xmm5
- movntdq [edi + eax*4 + 32], xmm1
- movntdq [edi + eax*4 + 48], xmm6
+ movntdq [edi + eax*4], xmm0
+ movntdq [edi + eax*4 + 16], xmm5
+ movntdq [edi + eax*4 + 32], xmm1
+ movntdq [edi + eax*4 + 48], xmm6
- add eax, 16
- cmp eax, ecx
+ add eax, 16
+ cmp eax, ecx
- jb one
+ jb one
- ret
- };
+ ret
+ };
}
void __declspec(naked) yv12_yuy2_row_sse2_linear() {
- __asm {
- // ebx - Y
- // edx - U
- // esi - V
- // edi - dest
- // ecx - width
- // ebp - uv_stride
- xor eax, eax
+ __asm {
+ // ebx - Y
+ // edx - U
+ // esi - V
+ // edi - dest
+ // ecx - width
+ // ebp - uv_stride
+ xor eax, eax
one:
- movdqa xmm0, [ebx + eax*2] // YYYYYYYY
- movdqa xmm1, [ebx + eax*2 + 16] // YYYYYYYY
-
- movdqa xmm2, [edx]
- movdqa xmm3, [esi]
- pavgb xmm2, [edx + ebp] // UUUUUUUU
- pavgb xmm3, [esi + ebp] // VVVVVVVV
-
- movdqa xmm4, xmm2
- movdqa xmm5, xmm0
- movdqa xmm6, xmm1
- punpcklbw xmm2, xmm3 // VUVUVUVU
- punpckhbw xmm4, xmm3 // VUVUVUVU
-
- punpcklbw xmm0, xmm2 // VYUYVYUY
- punpcklbw xmm1, xmm4
- punpckhbw xmm5, xmm2
- punpckhbw xmm6, xmm4
-
- movntdq [edi + eax*4], xmm0
- movntdq [edi + eax*4 + 16], xmm5
- movntdq [edi + eax*4 + 32], xmm1
- movntdq [edi + eax*4 + 48], xmm6
-
- add eax, 16
- add edx, 16
- add esi, 16
- cmp eax, ecx
-
- jb one
-
- ret
- };
+ movdqa xmm0, [ebx + eax*2] // YYYYYYYY
+ movdqa xmm1, [ebx + eax*2 + 16] // YYYYYYYY
+
+ movdqa xmm2, [edx]
+ movdqa xmm3, [esi]
+ pavgb xmm2, [edx + ebp] // UUUUUUUU
+ pavgb xmm3, [esi + ebp] // VVVVVVVV
+
+ movdqa xmm4, xmm2
+ movdqa xmm5, xmm0
+ movdqa xmm6, xmm1
+ punpcklbw xmm2, xmm3 // VUVUVUVU
+ punpckhbw xmm4, xmm3 // VUVUVUVU
+
+ punpcklbw xmm0, xmm2 // VYUYVYUY
+ punpcklbw xmm1, xmm4
+ punpckhbw xmm5, xmm2
+ punpckhbw xmm6, xmm4
+
+ movntdq [edi + eax*4], xmm0
+ movntdq [edi + eax*4 + 16], xmm5
+ movntdq [edi + eax*4 + 32], xmm1
+ movntdq [edi + eax*4 + 48], xmm6
+
+ add eax, 16
+ add edx, 16
+ add esi, 16
+ cmp eax, ecx
+
+ jb one
+
+ ret
+ };
}
void __declspec(naked) yv12_yuy2_row_sse2_linear_interlaced() {
- __asm {
- // ebx - Y
- // edx - U
- // esi - V
- // edi - dest
- // ecx - width
- // ebp - uv_stride
- xor eax, eax
+ __asm {
+ // ebx - Y
+ // edx - U
+ // esi - V
+ // edi - dest
+ // ecx - width
+ // ebp - uv_stride
+ xor eax, eax
one:
- movdqa xmm0, [ebx + eax*2] // YYYYYYYY
- movdqa xmm1, [ebx + eax*2 + 16] // YYYYYYYY
-
- movdqa xmm2, [edx]
- movdqa xmm3, [esi]
- pavgb xmm2, [edx + ebp*2] // UUUUUUUU
- pavgb xmm3, [esi + ebp*2] // VVVVVVVV
-
- movdqa xmm4, xmm2
- movdqa xmm5, xmm0
- movdqa xmm6, xmm1
- punpcklbw xmm2, xmm3 // VUVUVUVU
- punpckhbw xmm4, xmm3 // VUVUVUVU
-
- punpcklbw xmm0, xmm2 // VYUYVYUY
- punpcklbw xmm1, xmm4
- punpckhbw xmm5, xmm2
- punpckhbw xmm6, xmm4
-
- movntdq [edi + eax*4], xmm0
- movntdq [edi + eax*4 + 16], xmm5
- movntdq [edi + eax*4 + 32], xmm1
- movntdq [edi + eax*4 + 48], xmm6
-
- add eax, 16
- add edx, 16
- add esi, 16
- cmp eax, ecx
-
- jb one
-
- ret
- };
+ movdqa xmm0, [ebx + eax*2] // YYYYYYYY
+ movdqa xmm1, [ebx + eax*2 + 16] // YYYYYYYY
+
+ movdqa xmm2, [edx]
+ movdqa xmm3, [esi]
+ pavgb xmm2, [edx + ebp*2] // UUUUUUUU
+ pavgb xmm3, [esi + ebp*2] // VVVVVVVV
+
+ movdqa xmm4, xmm2
+ movdqa xmm5, xmm0
+ movdqa xmm6, xmm1
+ punpcklbw xmm2, xmm3 // VUVUVUVU
+ punpckhbw xmm4, xmm3 // VUVUVUVU
+
+ punpcklbw xmm0, xmm2 // VYUYVYUY
+ punpcklbw xmm1, xmm4
+ punpckhbw xmm5, xmm2
+ punpckhbw xmm6, xmm4
+
+ movntdq [edi + eax*4], xmm0
+ movntdq [edi + eax*4 + 16], xmm5
+ movntdq [edi + eax*4 + 32], xmm1
+ movntdq [edi + eax*4 + 48], xmm6
+
+ add eax, 16
+ add edx, 16
+ add esi, 16
+ cmp eax, ecx
+
+ jb one
+
+ ret
+ };
}
void __declspec(naked) yv12_yuy2_sse2(const BYTE *Y, const BYTE *U, const BYTE *V,
- int halfstride, unsigned halfwidth, unsigned height,
- BYTE *YUY2, int d_stride)
+ int halfstride, unsigned halfwidth, unsigned height,
+ BYTE *YUY2, int d_stride)
{
- __asm {
- push ebx
- push esi
- push edi
- push ebp
-
- mov ebx, [esp + 20] // Y
- mov edx, [esp + 24] // U
- mov esi, [esp + 28] // V
- mov edi, [esp + 44] // D
- mov ebp, [esp + 32] // uv_stride
- mov ecx, [esp + 36] // uv_width
-
- mov eax, ecx
- add eax, 15
- and eax, 0xfffffff0
- sub [esp + 32], eax
-
- cmp dword ptr [esp + 40], 2
- jbe last2
+ __asm {
+ push ebx
+ push esi
+ push edi
+ push ebp
+
+ mov ebx, [esp + 20] // Y
+ mov edx, [esp + 24] // U
+ mov esi, [esp + 28] // V
+ mov edi, [esp + 44] // D
+ mov ebp, [esp + 32] // uv_stride
+ mov ecx, [esp + 36] // uv_width
+
+ mov eax, ecx
+ add eax, 15
+ and eax, 0xfffffff0
+ sub [esp + 32], eax
+
+ cmp dword ptr [esp + 40], 2
+ jbe last2
row:
- sub dword ptr [esp + 40], 2
- call yv12_yuy2_row_sse2
+ sub dword ptr [esp + 40], 2
+ call yv12_yuy2_row_sse2
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- call yv12_yuy2_row_sse2_linear
+ call yv12_yuy2_row_sse2_linear
- add edx, [esp + 32]
- add esi, [esp + 32]
+ add edx, [esp + 32]
+ add esi, [esp + 32]
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- cmp dword ptr [esp + 40], 2
- ja row
+ cmp dword ptr [esp + 40], 2
+ ja row
last2:
- call yv12_yuy2_row_sse2
+ call yv12_yuy2_row_sse2
- dec dword ptr [esp + 40]
- jz done
+ dec dword ptr [esp + 40]
+ jz done
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
- call yv12_yuy2_row_sse2
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
+ call yv12_yuy2_row_sse2
done:
- pop ebp
- pop edi
- pop esi
- pop ebx
+ pop ebp
+ pop edi
+ pop esi
+ pop ebx
- ret
- };
+ ret
+ };
}
void __declspec(naked) yv12_yuy2_sse2_interlaced(const BYTE *Y, const BYTE *U, const BYTE *V,
- int halfstride, unsigned halfwidth, unsigned height,
- BYTE *YUY2, int d_stride)
+ int halfstride, unsigned halfwidth, unsigned height,
+ BYTE *YUY2, int d_stride)
{
- __asm {
- push ebx
- push esi
- push edi
- push ebp
-
- mov ebx, [esp + 20] // Y
- mov edx, [esp + 24] // U
- mov esi, [esp + 28] // V
- mov edi, [esp + 44] // D
- mov ebp, [esp + 32] // uv_stride
- mov ecx, [esp + 36] // uv_width
-
- mov eax, ecx
- add eax, 15
- and eax, 0xfffffff0
- sub [esp + 32], eax
-
- cmp dword ptr [esp + 40], 4
- jbe last4
+ __asm {
+ push ebx
+ push esi
+ push edi
+ push ebp
+
+ mov ebx, [esp + 20] // Y
+ mov edx, [esp + 24] // U
+ mov esi, [esp + 28] // V
+ mov edi, [esp + 44] // D
+ mov ebp, [esp + 32] // uv_stride
+ mov ecx, [esp + 36] // uv_width
+
+ mov eax, ecx
+ add eax, 15
+ and eax, 0xfffffff0
+ sub [esp + 32], eax
+
+ cmp dword ptr [esp + 40], 4
+ jbe last4
row:
- sub dword ptr [esp + 40], 4
- call yv12_yuy2_row_sse2 // first row, first field
+ sub dword ptr [esp + 40], 4
+ call yv12_yuy2_row_sse2 // first row, first field
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- add edx, ebp
- add esi, ebp
+ add edx, ebp
+ add esi, ebp
- call yv12_yuy2_row_sse2 // first row, second field
+ call yv12_yuy2_row_sse2 // first row, second field
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- sub edx, ebp
- sub esi, ebp
+ sub edx, ebp
+ sub esi, ebp
- call yv12_yuy2_row_sse2_linear_interlaced // second row, first field
+ call yv12_yuy2_row_sse2_linear_interlaced // second row, first field
- add edx, [esp + 32]
- add esi, [esp + 32]
+ add edx, [esp + 32]
+ add esi, [esp + 32]
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- call yv12_yuy2_row_sse2_linear_interlaced // second row, second field
+ call yv12_yuy2_row_sse2_linear_interlaced // second row, second field
- add edx, [esp + 32]
- add esi, [esp + 32]
+ add edx, [esp + 32]
+ add esi, [esp + 32]
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- cmp dword ptr [esp + 40], 4
- ja row
+ cmp dword ptr [esp + 40], 4
+ ja row
last4:
- call yv12_yuy2_row_sse2
+ call yv12_yuy2_row_sse2
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- add edx, ebp
- add esi, ebp
+ add edx, ebp
+ add esi, ebp
- call yv12_yuy2_row_sse2
+ call yv12_yuy2_row_sse2
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- sub edx, ebp
- sub esi, ebp
+ sub edx, ebp
+ sub esi, ebp
- call yv12_yuy2_row_sse2
+ call yv12_yuy2_row_sse2
- lea ebx, [ebx + ebp*2]
- add edi, [esp + 48]
+ lea ebx, [ebx + ebp*2]
+ add edi, [esp + 48]
- add edx, ebp
- add esi, ebp
+ add edx, ebp
+ add esi, ebp
- call yv12_yuy2_row_sse2
+ call yv12_yuy2_row_sse2
- pop ebp
- pop edi
- pop esi
- pop ebx
+ pop ebp
+ pop edi
+ pop esi
+ pop ebx
- ret
- };
+ ret
+ };
}
#endif
diff --git a/src/DSUtil/vd_asm.h b/src/DSUtil/vd_asm.h
index 7c1f2f134..f30ada9f9 100644
--- a/src/DSUtil/vd_asm.h
+++ b/src/DSUtil/vd_asm.h
@@ -16,7 +16,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Notes:
+// Notes:
// - VDPixmapBlt is from VirtualDub
// (- vd.cpp/h should be renamed to something more sensible already :)
diff --git a/src/DeCSS/DeCSS.vcproj b/src/DeCSS/DeCSS.vcproj
index 92f9efa55..2302e9792 100644
--- a/src/DeCSS/DeCSS.vcproj
+++ b/src/DeCSS/DeCSS.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="DeCSS"
ProjectGUID="{1A2DFD1A-3C6C-44D1-909D-294AF646B575}"
RootNamespace="DeCSS"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -215,7 +212,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/DeCSS/DeCSS.vcxproj b/src/DeCSS/DeCSS.vcxproj
index 756e72fe0..9bcc1638c 100644
--- a/src/DeCSS/DeCSS.vcxproj
+++ b/src/DeCSS/DeCSS.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1A2DFD1A-3C6C-44D1-909D-294AF646B575}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\common.props" />
<Import Project="..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -100,7 +85,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -111,7 +95,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -125,7 +108,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/DeCSS/DeCSSInputPin.cpp b/src/DeCSS/DeCSSInputPin.cpp
index cb28f9c3e..8b343ea49 100644
--- a/src/DeCSS/DeCSSInputPin.cpp
+++ b/src/DeCSS/DeCSSInputPin.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/DeCSS/DeCSSInputPin.h b/src/DeCSS/DeCSSInputPin.h
index 99058dde4..2e6e1a293 100644
--- a/src/DeCSS/DeCSSInputPin.h
+++ b/src/DeCSS/DeCSSInputPin.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/DeCSS/stdafx.h b/src/DeCSS/stdafx.h
index 0a35b4558..a54a001db 100644
--- a/src/DeCSS/stdafx.h
+++ b/src/DeCSS/stdafx.h
@@ -1,20 +1,13 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
+
#include "../DSUtil/SharedInclude.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
diff --git a/src/SubPic/CoordGeom.cpp b/src/SubPic/CoordGeom.cpp
index 47dfcf5bd..2ed276841 100644
--- a/src/SubPic/CoordGeom.cpp
+++ b/src/SubPic/CoordGeom.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/CoordGeom.h b/src/SubPic/CoordGeom.h
index 0649bf61c..1e84acfa0 100644
--- a/src/SubPic/CoordGeom.h
+++ b/src/SubPic/CoordGeom.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/DX7SubPic.cpp b/src/SubPic/DX7SubPic.cpp
index f997a2e60..0f470b3d8 100644
--- a/src/SubPic/DX7SubPic.cpp
+++ b/src/SubPic/DX7SubPic.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/DX7SubPic.h b/src/SubPic/DX7SubPic.h
index 8ce49e25d..cbdcc2de4 100644
--- a/src/SubPic/DX7SubPic.h
+++ b/src/SubPic/DX7SubPic.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/DX9SubPic.cpp b/src/SubPic/DX9SubPic.cpp
index 70a08bdf2..a92311ae3 100644
--- a/src/SubPic/DX9SubPic.cpp
+++ b/src/SubPic/DX9SubPic.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/DX9SubPic.h b/src/SubPic/DX9SubPic.h
index ba7320aa1..24792b03f 100644
--- a/src/SubPic/DX9SubPic.h
+++ b/src/SubPic/DX9SubPic.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/ISubPic.h b/src/SubPic/ISubPic.h
index ce1d970ee..32496ff0a 100644
--- a/src/SubPic/ISubPic.h
+++ b/src/SubPic/ISubPic.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/ISubRender.h b/src/SubPic/ISubRender.h
index 7ccc83ddd..1274044f4 100644
--- a/src/SubPic/ISubRender.h
+++ b/src/SubPic/ISubRender.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/MemSubPic.cpp b/src/SubPic/MemSubPic.cpp
index 491bf61ed..6c76db597 100644
--- a/src/SubPic/MemSubPic.cpp
+++ b/src/SubPic/MemSubPic.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -23,7 +23,7 @@
#include "MemSubPic.h"
// For CPUID usage
-#include "../dsutil/vd.h"
+#include "../DSUtil/vd.h"
#include <emmintrin.h>
// color conv
diff --git a/src/SubPic/MemSubPic.h b/src/SubPic/MemSubPic.h
index b5c577e8f..03d42a1f1 100644
--- a/src/SubPic/MemSubPic.h
+++ b/src/SubPic/MemSubPic.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPic.vcproj b/src/SubPic/SubPic.vcproj
index 8028ccc57..dd42ee5fa 100644
--- a/src/SubPic/SubPic.vcproj
+++ b/src/SubPic/SubPic.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="SubPic"
ProjectGUID="{D514EA4D-EAFB-47A9-A437-A582CA571251}"
RootNamespace="SubPic"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\..\include\dx;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\..\include\dx;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
DebugInformationFormat="3"
@@ -161,7 +159,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\..\include\dx;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -221,7 +218,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\..\include\dx;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/SubPic/SubPic.vcxproj b/src/SubPic/SubPic.vcxproj
index fb35f1cab..70ff1e2f0 100644
--- a/src/SubPic/SubPic.vcxproj
+++ b/src/SubPic/SubPic.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D514EA4D-EAFB-47A9-A437-A582CA571251}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\common.props" />
<Import Project="..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\..\include\dx;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -102,7 +87,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\..\include\dx;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -115,7 +99,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\..\include\dx;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -131,7 +114,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\..\include\dx;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/SubPic/SubPicAllocatorPresenterImpl.cpp b/src/SubPic/SubPicAllocatorPresenterImpl.cpp
index fd4c857e3..1f2a1fa20 100644
--- a/src/SubPic/SubPicAllocatorPresenterImpl.cpp
+++ b/src/SubPic/SubPicAllocatorPresenterImpl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicAllocatorPresenterImpl.h b/src/SubPic/SubPicAllocatorPresenterImpl.h
index 9fc517e5a..42ebc6fdb 100644
--- a/src/SubPic/SubPicAllocatorPresenterImpl.h
+++ b/src/SubPic/SubPicAllocatorPresenterImpl.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicImpl.cpp b/src/SubPic/SubPicImpl.cpp
index bc179dae3..fa688adb5 100644
--- a/src/SubPic/SubPicImpl.cpp
+++ b/src/SubPic/SubPicImpl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicImpl.h b/src/SubPic/SubPicImpl.h
index 4e8731761..57762e2ee 100644
--- a/src/SubPic/SubPicImpl.h
+++ b/src/SubPic/SubPicImpl.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicProviderImpl.cpp b/src/SubPic/SubPicProviderImpl.cpp
index 832f03f19..e65ea326c 100644
--- a/src/SubPic/SubPicProviderImpl.cpp
+++ b/src/SubPic/SubPicProviderImpl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicProviderImpl.h b/src/SubPic/SubPicProviderImpl.h
index f7c252252..e70f0f134 100644
--- a/src/SubPic/SubPicProviderImpl.h
+++ b/src/SubPic/SubPicProviderImpl.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicQueueImpl.cpp b/src/SubPic/SubPicQueueImpl.cpp
index ff477ea89..807489d67 100644
--- a/src/SubPic/SubPicQueueImpl.cpp
+++ b/src/SubPic/SubPicQueueImpl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/SubPicQueueImpl.h b/src/SubPic/SubPicQueueImpl.h
index 766ac7a5b..50dc433dd 100644
--- a/src/SubPic/SubPicQueueImpl.h
+++ b/src/SubPic/SubPicQueueImpl.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/SubPic/stdafx.cpp b/src/SubPic/stdafx.cpp
index 59020e2ef..13934d005 100644
--- a/src/SubPic/stdafx.cpp
+++ b/src/SubPic/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// subpic.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/SubPic/stdafx.h b/src/SubPic/stdafx.h
index 1703b181b..9ae9e2a24 100644
--- a/src/SubPic/stdafx.h
+++ b/src/SubPic/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,31 +14,24 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
+
#include "../DSUtil/SharedInclude.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/Subtitles/CCDecoder.cpp b/src/Subtitles/CCDecoder.cpp
index 735122ac2..b80d6870e 100644
--- a/src/Subtitles/CCDecoder.cpp
+++ b/src/Subtitles/CCDecoder.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/CCDecoder.h b/src/Subtitles/CCDecoder.h
index 5733de9ca..0e3acd765 100644
--- a/src/Subtitles/CCDecoder.h
+++ b/src/Subtitles/CCDecoder.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/GFN.cpp b/src/Subtitles/GFN.cpp
index ed701680f..1981dc797 100644
--- a/src/Subtitles/GFN.cpp
+++ b/src/Subtitles/GFN.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/GFN.h b/src/Subtitles/GFN.h
index 6790124b2..07d47558a 100644
--- a/src/Subtitles/GFN.h
+++ b/src/Subtitles/GFN.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/RTS.cpp b/src/Subtitles/RTS.cpp
index c8d72ccff..d11523994 100644
--- a/src/Subtitles/RTS.cpp
+++ b/src/Subtitles/RTS.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/RTS.h b/src/Subtitles/RTS.h
index 153f1326e..bf2ba5058 100644
--- a/src/Subtitles/RTS.h
+++ b/src/Subtitles/RTS.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/Rasterizer.cpp b/src/Subtitles/Rasterizer.cpp
index 0800d466e..6e2a2ced5 100644
--- a/src/Subtitles/Rasterizer.cpp
+++ b/src/Subtitles/Rasterizer.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -936,7 +936,7 @@ static __forceinline DWORD safe_subtract_sse2(DWORD a, DWORD b)
}
// For CPUID usage in Rasterizer::Draw
-#include "../dsutil/vd.h"
+#include "../DSUtil/vd.h"
static const __int64 _00ff00ff00ff00ff = 0x00ff00ff00ff00ffi64;
diff --git a/src/Subtitles/Rasterizer.h b/src/Subtitles/Rasterizer.h
index 6a261fbb6..6ab5c2faf 100644
--- a/src/Subtitles/Rasterizer.h
+++ b/src/Subtitles/Rasterizer.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/SSF.cpp b/src/Subtitles/SSF.cpp
index 3e5cc062b..8cbebce70 100644
--- a/src/Subtitles/SSF.cpp
+++ b/src/Subtitles/SSF.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* TODO:
diff --git a/src/Subtitles/SSF.h b/src/Subtitles/SSF.h
index cd4cf7c3e..f7fff0e0a 100644
--- a/src/Subtitles/SSF.h
+++ b/src/Subtitles/SSF.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/STS.cpp b/src/Subtitles/STS.cpp
index b679856d9..8468c8d2a 100644
--- a/src/Subtitles/STS.cpp
+++ b/src/Subtitles/STS.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/STS.h b/src/Subtitles/STS.h
index 992ef6345..f033a1bf0 100644
--- a/src/Subtitles/STS.h
+++ b/src/Subtitles/STS.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/SubtitleInputPin.cpp b/src/Subtitles/SubtitleInputPin.cpp
index fae80d1e2..02933f772 100644
--- a/src/Subtitles/SubtitleInputPin.cpp
+++ b/src/Subtitles/SubtitleInputPin.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/SubtitleInputPin.h b/src/Subtitles/SubtitleInputPin.h
index c7cc15657..5ef2b0203 100644
--- a/src/Subtitles/SubtitleInputPin.h
+++ b/src/Subtitles/SubtitleInputPin.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/Subtitles.vcproj b/src/Subtitles/Subtitles.vcproj
index 94c3d9f4f..4a0d35fd4 100644
--- a/src/Subtitles/Subtitles.vcproj
+++ b/src/Subtitles/Subtitles.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="Subtitles"
ProjectGUID="{5E56335F-0FB1-4EEA-B240-D8DC5E0608E4}"
RootNamespace="Subtitles"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\"
PreprocessorDefinitions="WIN32;_DEBUG"
UsePrecompiledHeader="0"
@@ -101,7 +100,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\"
PreprocessorDefinitions="_WIN64;_DEBUG"
UsePrecompiledHeader="0"
@@ -160,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -219,7 +216,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/Subtitles/Subtitles.vcxproj b/src/Subtitles/Subtitles.vcxproj
index 12da24997..9b5c372a6 100644
--- a/src/Subtitles/Subtitles.vcxproj
+++ b/src/Subtitles/Subtitles.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5E56335F-0FB1-4EEA-B240-D8DC5E0608E4}</ProjectGuid>
@@ -43,9 +35,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -70,9 +59,6 @@
<Import Project="..\common.props" />
<Import Project="..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
@@ -89,7 +75,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -104,7 +89,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -117,7 +101,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -131,7 +114,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\filters\BaseClasses;..\libpng\;..\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/Subtitles/TextFile.cpp b/src/Subtitles/TextFile.cpp
index 1dfb62750..e00748d3e 100644
--- a/src/Subtitles/TextFile.cpp
+++ b/src/Subtitles/TextFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/TextFile.h b/src/Subtitles/TextFile.h
index 88adc239b..635613028 100644
--- a/src/Subtitles/TextFile.h
+++ b/src/Subtitles/TextFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/USFSubtitles.cpp b/src/Subtitles/USFSubtitles.cpp
index df762c2e9..41ea1b2ab 100644
--- a/src/Subtitles/USFSubtitles.cpp
+++ b/src/Subtitles/USFSubtitles.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/USFSubtitles.h b/src/Subtitles/USFSubtitles.h
index 0046a7d26..3f79abd75 100644
--- a/src/Subtitles/USFSubtitles.h
+++ b/src/Subtitles/USFSubtitles.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/VobSubFile.cpp b/src/Subtitles/VobSubFile.cpp
index bf29132d4..84e087520 100644
--- a/src/Subtitles/VobSubFile.cpp
+++ b/src/Subtitles/VobSubFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/VobSubFile.h b/src/Subtitles/VobSubFile.h
index 6ffe5feae..93f0a0ba0 100644
--- a/src/Subtitles/VobSubFile.h
+++ b/src/Subtitles/VobSubFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/VobSubFileRipper.cpp b/src/Subtitles/VobSubFileRipper.cpp
index b5ef49f23..1e6a05eb1 100644
--- a/src/Subtitles/VobSubFileRipper.cpp
+++ b/src/Subtitles/VobSubFileRipper.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,14 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#include "stdafx.h"
#include "vobsubfileripper.h"
-#include "../decss/VobDec.h"
+#include "../DeCSS/VobDec.h"
#include "../Subtitles/CCDecoder.h"
//
diff --git a/src/Subtitles/VobSubFileRipper.h b/src/Subtitles/VobSubFileRipper.h
index 781917e22..20408aba0 100644
--- a/src/Subtitles/VobSubFileRipper.h
+++ b/src/Subtitles/VobSubFileRipper.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -22,7 +22,7 @@
#pragma once
#include <atlcoll.h>
-#include "../decss/VobFile.h"
+#include "../DeCSS/VobFile.h"
#include "VobSubFile.h"
#pragma pack(push)
diff --git a/src/Subtitles/VobSubImage.cpp b/src/Subtitles/VobSubImage.cpp
index 33108a63b..d248cfe36 100644
--- a/src/Subtitles/VobSubImage.cpp
+++ b/src/Subtitles/VobSubImage.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/VobSubImage.h b/src/Subtitles/VobSubImage.h
index 12b5165a0..22628371b 100644
--- a/src/Subtitles/VobSubImage.h
+++ b/src/Subtitles/VobSubImage.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Arabic.cpp b/src/Subtitles/libssf/Arabic.cpp
index 123234018..e08e07c36 100644
--- a/src/Subtitles/libssf/Arabic.cpp
+++ b/src/Subtitles/libssf/Arabic.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* The "ArabicForms" table originates from fontforge
diff --git a/src/Subtitles/libssf/Arabic.h b/src/Subtitles/libssf/Arabic.h
index d15d628ef..23aa73d2f 100644
--- a/src/Subtitles/libssf/Arabic.h
+++ b/src/Subtitles/libssf/Arabic.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Array.cpp b/src/Subtitles/libssf/Array.cpp
index 2857cf6f2..5f8155ec3 100644
--- a/src/Subtitles/libssf/Array.cpp
+++ b/src/Subtitles/libssf/Array.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Array.h b/src/Subtitles/libssf/Array.h
index 90d61c004..b50ded1af 100644
--- a/src/Subtitles/libssf/Array.h
+++ b/src/Subtitles/libssf/Array.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Exception.cpp b/src/Subtitles/libssf/Exception.cpp
index 56b72d1e7..00f251cd5 100644
--- a/src/Subtitles/libssf/Exception.cpp
+++ b/src/Subtitles/libssf/Exception.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Exception.h b/src/Subtitles/libssf/Exception.h
index c45a06919..2aff08a90 100644
--- a/src/Subtitles/libssf/Exception.h
+++ b/src/Subtitles/libssf/Exception.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/File.cpp b/src/Subtitles/libssf/File.cpp
index 5d6724924..dc2154dbe 100644
--- a/src/Subtitles/libssf/File.cpp
+++ b/src/Subtitles/libssf/File.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/File.h b/src/Subtitles/libssf/File.h
index 9a4ad3d91..501d3d80d 100644
--- a/src/Subtitles/libssf/File.h
+++ b/src/Subtitles/libssf/File.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/FontWrapper.cpp b/src/Subtitles/libssf/FontWrapper.cpp
index 07bc9cdcf..07d4a665b 100644
--- a/src/Subtitles/libssf/FontWrapper.cpp
+++ b/src/Subtitles/libssf/FontWrapper.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/FontWrapper.h b/src/Subtitles/libssf/FontWrapper.h
index 86c7a601b..176a1341e 100644
--- a/src/Subtitles/libssf/FontWrapper.h
+++ b/src/Subtitles/libssf/FontWrapper.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Glyph.cpp b/src/Subtitles/libssf/Glyph.cpp
index 4d43df190..a8f37dd81 100644
--- a/src/Subtitles/libssf/Glyph.cpp
+++ b/src/Subtitles/libssf/Glyph.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Glyph.h b/src/Subtitles/libssf/Glyph.h
index 157bda03c..68a1e4b98 100644
--- a/src/Subtitles/libssf/Glyph.h
+++ b/src/Subtitles/libssf/Glyph.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/GlyphPath.cpp b/src/Subtitles/libssf/GlyphPath.cpp
index a1947c226..1a6bb4763 100644
--- a/src/Subtitles/libssf/GlyphPath.cpp
+++ b/src/Subtitles/libssf/GlyphPath.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/GlyphPath.h b/src/Subtitles/libssf/GlyphPath.h
index 2a921758b..72247c992 100644
--- a/src/Subtitles/libssf/GlyphPath.h
+++ b/src/Subtitles/libssf/GlyphPath.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Node.cpp b/src/Subtitles/libssf/Node.cpp
index f959d9ca6..0aa04d458 100644
--- a/src/Subtitles/libssf/Node.cpp
+++ b/src/Subtitles/libssf/Node.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Node.h b/src/Subtitles/libssf/Node.h
index af48390f1..586453432 100644
--- a/src/Subtitles/libssf/Node.h
+++ b/src/Subtitles/libssf/Node.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/NodeFactory.cpp b/src/Subtitles/libssf/NodeFactory.cpp
index a20da1ad4..a502778a5 100644
--- a/src/Subtitles/libssf/NodeFactory.cpp
+++ b/src/Subtitles/libssf/NodeFactory.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/NodeFactory.h b/src/Subtitles/libssf/NodeFactory.h
index 9629485e8..0f0cd0b8b 100644
--- a/src/Subtitles/libssf/NodeFactory.h
+++ b/src/Subtitles/libssf/NodeFactory.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Rasterizer.cpp b/src/Subtitles/libssf/Rasterizer.cpp
index 5081b1553..239bbc30e 100644
--- a/src/Subtitles/libssf/Rasterizer.cpp
+++ b/src/Subtitles/libssf/Rasterizer.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* Based on the rasterizer of virtualdub's subtitler plugin
diff --git a/src/Subtitles/libssf/Rasterizer.h b/src/Subtitles/libssf/Rasterizer.h
index 9c6815944..051b61271 100644
--- a/src/Subtitles/libssf/Rasterizer.h
+++ b/src/Subtitles/libssf/Rasterizer.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Renderer.cpp b/src/Subtitles/libssf/Renderer.cpp
index 7597b5b4f..c0ffa24d3 100644
--- a/src/Subtitles/libssf/Renderer.cpp
+++ b/src/Subtitles/libssf/Renderer.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* TODO: do something about bidi (at least handle these ranges: 0590-07BF, FB1D-FDFF, FE70-FEFF)
diff --git a/src/Subtitles/libssf/Renderer.h b/src/Subtitles/libssf/Renderer.h
index b126feaad..ea0bc9b7e 100644
--- a/src/Subtitles/libssf/Renderer.h
+++ b/src/Subtitles/libssf/Renderer.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Split.cpp b/src/Subtitles/libssf/Split.cpp
index c7868eaa0..c7be38489 100644
--- a/src/Subtitles/libssf/Split.cpp
+++ b/src/Subtitles/libssf/Split.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Split.h b/src/Subtitles/libssf/Split.h
index 5347eb25c..5cef60415 100644
--- a/src/Subtitles/libssf/Split.h
+++ b/src/Subtitles/libssf/Split.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Stream.cpp b/src/Subtitles/libssf/Stream.cpp
index 94043b272..7b4a9be02 100644
--- a/src/Subtitles/libssf/Stream.cpp
+++ b/src/Subtitles/libssf/Stream.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Stream.h b/src/Subtitles/libssf/Stream.h
index abfcbf9d6..a95375ad5 100644
--- a/src/Subtitles/libssf/Stream.h
+++ b/src/Subtitles/libssf/Stream.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/StringMap.cpp b/src/Subtitles/libssf/StringMap.cpp
index aa9909528..a3a90383b 100644
--- a/src/Subtitles/libssf/StringMap.cpp
+++ b/src/Subtitles/libssf/StringMap.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/StringMap.h b/src/Subtitles/libssf/StringMap.h
index ff788541a..0952c66a2 100644
--- a/src/Subtitles/libssf/StringMap.h
+++ b/src/Subtitles/libssf/StringMap.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Subtitle.cpp b/src/Subtitles/libssf/Subtitle.cpp
index 673e92fd4..eb56b0531 100644
--- a/src/Subtitles/libssf/Subtitle.cpp
+++ b/src/Subtitles/libssf/Subtitle.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/Subtitle.h b/src/Subtitles/libssf/Subtitle.h
index a1cedc3c0..bf0797d2e 100644
--- a/src/Subtitles/libssf/Subtitle.h
+++ b/src/Subtitles/libssf/Subtitle.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/SubtitleFile.cpp b/src/Subtitles/libssf/SubtitleFile.cpp
index 38736efec..4933a1335 100644
--- a/src/Subtitles/libssf/SubtitleFile.cpp
+++ b/src/Subtitles/libssf/SubtitleFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/SubtitleFile.h b/src/Subtitles/libssf/SubtitleFile.h
index b58798d53..1579c15d6 100644
--- a/src/Subtitles/libssf/SubtitleFile.h
+++ b/src/Subtitles/libssf/SubtitleFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/Subtitles/libssf/libssf.vcproj b/src/Subtitles/libssf/libssf.vcproj
index 907332dc8..f041387e0 100644
--- a/src/Subtitles/libssf/libssf.vcproj
+++ b/src/Subtitles/libssf/libssf.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libssf"
ProjectGUID="{DD9D2D92-2241-408A-859E-B85D444B7E3C}"
RootNamespace="libssf"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\..\filters\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
UsePrecompiledHeader="2"
@@ -103,7 +102,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\..\filters\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
BasicRuntimeChecks="3"
@@ -164,7 +162,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\..\filters\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -223,7 +220,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\include;..\..\filters\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/Subtitles/libssf/libssf.vcxproj b/src/Subtitles/libssf/libssf.vcxproj
index a039e3e59..6bd3c85be 100644
--- a/src/Subtitles/libssf/libssf.vcxproj
+++ b/src/Subtitles/libssf/libssf.vcxproj
@@ -77,7 +77,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -91,7 +90,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -105,7 +103,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -119,7 +116,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\include;..\..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/Subtitles/libssf/stdafx.cpp b/src/Subtitles/libssf/stdafx.cpp
index 87a70aa14..13934d005 100644
--- a/src/Subtitles/libssf/stdafx.cpp
+++ b/src/Subtitles/libssf/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// libssf.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/Subtitles/libssf/stdafx.h b/src/Subtitles/libssf/stdafx.h
index 659ca7fb8..5860671e6 100644
--- a/src/Subtitles/libssf/stdafx.h
+++ b/src/Subtitles/libssf/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,24 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
-#include "../../DSUtil/SharedInclude.h"
-// Modify the following defines if you have to target a platform prior to the ones specified below.
-// Refer to MSDN for the latest info on corresponding values for different platforms.
-#ifndef WINVER // Allow use of features specific to Windows XP or later.
-#define WINVER 0x0600
-#endif
+#include "../../DSUtil/SharedInclude.h"
#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later.
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
@@ -45,7 +35,7 @@
#define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE.
#endif
-#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#ifndef VC_EXTRALEAN
@@ -53,14 +43,14 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-#include <atlcoll.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
+#include <atlcoll.h> // MFC core and standard components
+
-// TODO: reference additional headers your program requires here
#include <streams.h>
#include "../../DSUtil/DSUtil.h"
-#include "../../dsutil/vd.h"
+#include "../../DSUtil/vd.h"
#include <xmmintrin.h>
#include <emmintrin.h>
diff --git a/src/Subtitles/stdafx.cpp b/src/Subtitles/stdafx.cpp
index 3dd05c6af..13934d005 100644
--- a/src/Subtitles/stdafx.cpp
+++ b/src/Subtitles/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// subtitles.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/Subtitles/stdafx.h b/src/Subtitles/stdafx.h
index 214f0c923..01dd731ab 100644
--- a/src/Subtitles/stdafx.h
+++ b/src/Subtitles/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,31 +14,24 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
+
#include "../DSUtil/SharedInclude.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include "../DSUtil/DSUtil.h"
diff --git a/src/apps/MPCTestAPI/MPCTestAPI.vcxproj b/src/apps/MPCTestAPI/MPCTestAPI.vcxproj
index 886f38f60..c32d7877e 100644
--- a/src/apps/MPCTestAPI/MPCTestAPI.vcxproj
+++ b/src/apps/MPCTestAPI/MPCTestAPI.vcxproj
@@ -9,10 +9,6 @@
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A1F84246-B9A1-455F-97E4-D730AB089947}</ProjectGuid>
diff --git a/src/apps/VSRip/VSRip.sln b/src/apps/VSRip/VSRip.sln
index 4495fd791..24bd95785 100644
--- a/src/apps/VSRip/VSRip.sln
+++ b/src/apps/VSRip/VSRip.sln
@@ -8,18 +8,23 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSRip", "VSRip.vcproj", "{6
{0D252872-7542-4232-8D02-53F9182AEE15} = {0D252872-7542-4232-8D02-53F9182AEE15}
{C2082189-3ECB-4079-91FA-89D3C8A305C0} = {C2082189-3ECB-4079-91FA-89D3C8A305C0}
{FC70988B-1AE5-4381-866D-4F405E28AC42} = {FC70988B-1AE5-4381-866D-4F405E28AC42}
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C} = {DD9D2D92-2241-408A-859E-B85D444B7E3C}
{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA} = {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Subtitles", "..\..\Subtitles\Subtitles.vcproj", "{5E56335F-0FB1-4EEA-B240-D8DC5E0608E4}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseClasses", "..\..\filters\BaseClasses\BaseClasses.vcproj", "{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeCSS", "..\..\DeCSS\DeCSS.vcproj", "{1A2DFD1A-3C6C-44D1-909D-294AF646B575}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseClasses", "..\..\filters\BaseClasses\BaseClasses.vcproj", "{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSUtil", "..\..\DSUtil\DSUtil.vcproj", "{FC70988B-1AE5-4381-866D-4F405E28AC42}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libssf", "..\..\Subtitles\libssf\libssf.vcproj", "{DD9D2D92-2241-408A-859E-B85D444B7E3C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SubPic", "..\..\SubPic\SubPic.vcproj", "{D514EA4D-EAFB-47A9-A437-A582CA571251}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSUtil", "..\..\DSUtil\DSUtil.vcproj", "{FC70988B-1AE5-4381-866D-4F405E28AC42}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Subtitles", "..\..\Subtitles\Subtitles.vcproj", "{5E56335F-0FB1-4EEA-B240-D8DC5E0608E4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VD", "VD", "{59844B43-1C66-4E14-B550-716D7AA611CB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kasumi", "..\..\thirdparty\VirtualDub\Kasumi\Kasumi.vcproj", "{0D252872-7542-4232-8D02-53F9182AEE15}"
EndProject
@@ -97,8 +102,20 @@ Global
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.Build.0 = Release|Win32
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|x64.ActiveCfg = Release|x64
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|x64.Build.0 = Release|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|x64.ActiveCfg = Debug|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|x64.Build.0 = Debug|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|Win32.Build.0 = Release|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|x64.ActiveCfg = Release|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0} = {59844B43-1C66-4E14-B550-716D7AA611CB}
+ {0D252872-7542-4232-8D02-53F9182AEE15} = {59844B43-1C66-4E14-B550-716D7AA611CB}
+ EndGlobalSection
EndGlobal
diff --git a/src/apps/VSRip/VSRip.vcproj b/src/apps/VSRip/VSRip.vcproj
index 9c7a0231d..dad173bda 100644
--- a/src/apps/VSRip/VSRip.vcproj
+++ b/src/apps/VSRip/VSRip.vcproj
@@ -45,7 +45,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
DebugInformationFormat="4"
@@ -64,9 +63,9 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib DeCSS.lib SubPic.lib Subtitles.lib Winmm.lib"
+ AdditionalDependencies="Winmm.lib"
LinkIncremental="2"
- AdditionalLibraryDirectories="bin/lib/$(ConfigurationName)_$(PlatformName)"
+ AdditionalLibraryDirectories=""
DelayLoadDLLs=""
SubSystem="2"
RandomizedBaseAddress="1"
@@ -123,7 +122,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;_DEBUG;_WINDOWS"
DebugInformationFormat="3"
@@ -142,9 +140,9 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib DeCSS.lib SubPic.lib Subtitles.lib Winmm.lib"
+ AdditionalDependencies="Winmm.lib"
LinkIncremental="2"
- AdditionalLibraryDirectories="bin/lib/$(ConfigurationName)_$(PlatformName)"
+ AdditionalLibraryDirectories=""
DelayLoadDLLs=""
SubSystem="2"
RandomizedBaseAddress="1"
@@ -201,7 +199,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
/>
@@ -219,8 +216,8 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib DeCSS.lib delayimp.lib SubPic.lib Subtitles.lib Winmm.lib"
- AdditionalLibraryDirectories="bin/lib/$(ConfigurationName)_$(PlatformName)"
+ AdditionalDependencies="delayimp.lib Winmm.lib"
+ AdditionalLibraryDirectories=""
DelayLoadDLLs="oleacc.dll"
SubSystem="2"
LargeAddressAware="2"
@@ -277,7 +274,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;NDEBUG;_WINDOWS"
EnableEnhancedInstructionSet="0"
@@ -297,8 +293,8 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib DeCSS.lib delayimp.lib SubPic.lib Subtitles.lib Winmm.lib"
- AdditionalLibraryDirectories="bin/lib/$(ConfigurationName)_$(PlatformName)"
+ AdditionalDependencies="delayimp.lib Winmm.lib"
+ AdditionalLibraryDirectories=""
DelayLoadDLLs="oleacc.dll"
SubSystem="2"
LargeAddressAware="2"
diff --git a/src/apps/VSRip/VSRip.vcxproj b/src/apps/VSRip/VSRip.vcxproj
index 890316723..ff52561ee 100644
--- a/src/apps/VSRip/VSRip.vcxproj
+++ b/src/apps/VSRip/VSRip.vcxproj
@@ -81,7 +81,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@@ -92,8 +91,7 @@
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;DeCSS.lib;SubPic.lib;Subtitles.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>bin10\lib\$(Configuration)_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -106,7 +104,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -117,8 +114,7 @@
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;DeCSS.lib;SubPic.lib;Subtitles.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>bin10\lib\$(Configuration)_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -131,7 +127,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -142,8 +137,7 @@
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;DeCSS.lib;delayimp.lib;SubPic.lib;Subtitles.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>bin10\lib\$(Configuration)_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>oleacc.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<SubSystem>Windows</SubSystem>
<LargeAddressAware>true</LargeAddressAware>
@@ -154,7 +148,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -166,8 +159,7 @@
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;DeCSS.lib;delayimp.lib;SubPic.lib;Subtitles.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>bin10\lib\$(Configuration)_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>oleacc.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<SubSystem>Windows</SubSystem>
<LargeAddressAware>true</LargeAddressAware>
diff --git a/src/apps/VSRip/VSRipPGCDlg.cpp b/src/apps/VSRip/VSRipPGCDlg.cpp
index bd1889c93..4c88161d5 100644
--- a/src/apps/VSRip/VSRipPGCDlg.cpp
+++ b/src/apps/VSRip/VSRipPGCDlg.cpp
@@ -110,7 +110,7 @@ void CVSRipPGCDlg::SetupPGCList()
m_pgclist.ResetContent();
- for(int i = 0; i < m_rd.pgcs.GetCount(); i++)
+ for(int i = 0; i < (int)m_rd.pgcs.GetCount(); i++)
{
CString str;
str.Format(_T("PGC %d"), i+1);
@@ -189,7 +189,7 @@ void CVSRipPGCDlg::SetupVCList()
CAtlArray<vc_t>& vca =( m_rd.pgcs[m_rd.iSelPGC].angles[m_rd.pgcs[m_rd.iSelPGC].iSelAngle]);
- for(int i = 0; i < vca.GetCount(); i++)
+ for(int i = 0; i < (int)vca.GetCount(); i++)
{
CString str;
str.Format(_T("V%02d C%02d"), vca[i].vob, vca[i].cell);
diff --git a/src/apps/VSRip/VSRip_2010.sln b/src/apps/VSRip/VSRip_2010.sln
index 65cfa6b46..b5b560332 100644
--- a/src/apps/VSRip/VSRip_2010.sln
+++ b/src/apps/VSRip/VSRip_2010.sln
@@ -1,6 +1,9 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSRip", "VSRip.vcxproj", "{63DA240E-54D4-4720-A14C-25E1D6D6745D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C} = {DD9D2D92-2241-408A-859E-B85D444B7E3C}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Subtitles", "..\..\Subtitles\Subtitles.vcxproj", "{5E56335F-0FB1-4EEA-B240-D8DC5E0608E4}"
EndProject
@@ -16,6 +19,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kasumi", "..\..\thirdparty\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "system", "..\..\thirdparty\VirtualDub\system\system.vcxproj", "{C2082189-3ECB-4079-91FA-89D3C8A305C0}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VD", "VD", "{928EAD7B-391D-426F-8D6A-F384AD59C864}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libssf", "..\..\Subtitles\libssf\libssf.vcxproj", "{DD9D2D92-2241-408A-859E-B85D444B7E3C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -88,8 +95,20 @@ Global
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.Build.0 = Release|Win32
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|x64.ActiveCfg = Release|x64
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|x64.Build.0 = Release|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|x64.ActiveCfg = Debug|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Debug|x64.Build.0 = Debug|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|Win32.Build.0 = Release|Win32
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|x64.ActiveCfg = Release|x64
+ {DD9D2D92-2241-408A-859E-B85D444B7E3C}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0} = {928EAD7B-391D-426F-8D6A-F384AD59C864}
+ {0D252872-7542-4232-8D02-53F9182AEE15} = {928EAD7B-391D-426F-8D6A-F384AD59C864}
+ EndGlobalSection
EndGlobal
diff --git a/src/apps/asf2mkv/asf2mkv.cpp b/src/apps/asf2mkv/asf2mkv.cpp
index 1923a92b0..1b19f3815 100644
--- a/src/apps/asf2mkv/asf2mkv.cpp
+++ b/src/apps/asf2mkv/asf2mkv.cpp
@@ -2,6 +2,7 @@
* $Id$
*
* (C) 2003-2005 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This file is part of asf2mkv.
*
@@ -23,16 +24,11 @@
#include "stdafx.h"
#include "asf2mkv.h"
#include "asf2mkvDlg.h"
-#include "./asf2mkv.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#endif
// Casf2mkvApp
BEGIN_MESSAGE_MAP(Casf2mkvApp, CWinApp)
- ON_COMMAND(ID_HELP, CWinApp::OnHelp)
+ ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
@@ -40,8 +36,8 @@ END_MESSAGE_MAP()
Casf2mkvApp::Casf2mkvApp()
{
- // TODO: add construction code here,
- // Place all significant initialization in InitInstance
+ // TODO: add construction code here,
+ // Place all significant initialization in InitInstance
}
@@ -54,51 +50,51 @@ Casf2mkvApp theApp;
BOOL Casf2mkvApp::InitInstance()
{
- // InitCommonControls() is required on Windows XP if an application
- // manifest specifies use of ComCtl32.dll version 6 or later to enable
- // visual styles. Otherwise, any window creation will fail.
- InitCommonControls();
-
- CWinApp::InitInstance();
-
- // Standard initialization
- // If you are not using these features and wish to reduce the size
- // of your final executable, you should remove from the following
- // the specific initialization routines you do not need
- // Change the registry key under which our settings are stored
- // TODO: You should modify this string to be something appropriate
- // such as the name of your company or organization
- SetRegistryKey(_T("Gabest"));
-
- HRESULT hr;
- if(FAILED(hr = OleInitialize(0)))
- {
- AfxMessageBox(_T("OleInitialize failed!"));
- return FALSE;
- }
-
- Casf2mkvDlg dlg;
- m_pMainWnd = &dlg;
- INT_PTR nResponse = dlg.DoModal();
- if (nResponse == IDOK)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with OK
- }
- else if (nResponse == IDCANCEL)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with Cancel
- }
-
- // Since the dialog has been closed, return FALSE so that we exit the
- // application, rather than start the application's message pump.
- return FALSE;
+ // InitCommonControls() is required on Windows XP if an application
+ // manifest specifies use of ComCtl32.dll version 6 or later to enable
+ // visual styles. Otherwise, any window creation will fail.
+ InitCommonControls();
+
+ CWinApp::InitInstance();
+
+ // Standard initialization
+ // If you are not using these features and wish to reduce the size
+ // of your final executable, you should remove from the following
+ // the specific initialization routines you do not need
+ // Change the registry key under which our settings are stored
+ // TODO: You should modify this string to be something appropriate
+ // such as the name of your company or organization
+ SetRegistryKey(_T("Gabest"));
+
+ HRESULT hr;
+ if(FAILED(hr = OleInitialize(0)))
+ {
+ AfxMessageBox(_T("OleInitialize failed!"));
+ return FALSE;
+ }
+
+ Casf2mkvDlg dlg;
+ m_pMainWnd = &dlg;
+ INT_PTR nResponse = dlg.DoModal();
+ if (nResponse == IDOK)
+ {
+ // TODO: Place code here to handle when the dialog is
+ // dismissed with OK
+ }
+ else if (nResponse == IDCANCEL)
+ {
+ // TODO: Place code here to handle when the dialog is
+ // dismissed with Cancel
+ }
+
+ // Since the dialog has been closed, return FALSE so that we exit the
+ // application, rather than start the application's message pump.
+ return FALSE;
}
int Casf2mkvApp::ExitInstance()
{
- OleUninitialize();
+ OleUninitialize();
- return CWinApp::ExitInstance();
+ return CWinApp::ExitInstance();
}
diff --git a/src/apps/asf2mkv/asf2mkv.h b/src/apps/asf2mkv/asf2mkv.h
index 53823ce90..e89d11be4 100644
--- a/src/apps/asf2mkv/asf2mkv.h
+++ b/src/apps/asf2mkv/asf2mkv.h
@@ -2,6 +2,7 @@
* $Id$
*
* (C) 2003-2005 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This file is part of asf2mkv.
*
@@ -36,16 +37,16 @@
class Casf2mkvApp : public CWinApp
{
public:
- Casf2mkvApp();
+ Casf2mkvApp();
// Overrides
public:
- virtual BOOL InitInstance();
+ virtual BOOL InitInstance();
// Implementation
- DECLARE_MESSAGE_MAP()
- virtual int ExitInstance();
+ DECLARE_MESSAGE_MAP()
+ virtual int ExitInstance();
};
extern Casf2mkvApp theApp; \ No newline at end of file
diff --git a/src/apps/asf2mkv/asf2mkv.rc b/src/apps/asf2mkv/asf2mkv.rc
index 4a4b4aa60..b07cd7643 100644
--- a/src/apps/asf2mkv/asf2mkv.rc
+++ b/src/apps/asf2mkv/asf2mkv.rc
@@ -13,50 +13,14 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
-// Hungarian resources
+// English (U.S.) resources
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HUN)
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
-LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
-#pragma code_page(1250)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
#endif //_WIN32
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
- "LANGUAGE 9, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#include ""res\\asf2mkv.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
- "#include ""afxres.rc"" // Standard components\r\n"
- "#endif\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
/////////////////////////////////////////////////////////////////////////////
//
// Icon
@@ -65,18 +29,6 @@ END
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON "res\\asf2mkv.ico"
-#endif // Hungarian resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
@@ -84,30 +36,25 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
- WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About asf2mkv"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
- LTEXT "asf2mkv Version 1.01",IDC_STATIC,40,10,119,8,
- SS_NOPREFIX
- LTEXT "Copyright (C) 2003-2004",IDC_STATIC,40,25,119,8
+ LTEXT "asf2mkv Version 1.0.0.2",IDC_STATIC,40,10,119,8,SS_NOPREFIX
+ LTEXT "Copyright (C) 2003-2010",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,50,16,WS_GROUP
END
IDD_ASF2MKV_DIALOG DIALOGEX 0, 0, 204, 167
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX |
- WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "asf2mkv"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "Record!",IDC_BUTTON1,147,146,50,14
- CONTROL "",IDC_STATIC1,"Static",SS_BLACKRECT,7,7,190,119,
- WS_EX_CLIENTEDGE
- COMBOBOX IDC_COMBO1,7,129,190,91,CBS_DROPDOWN | CBS_AUTOHSCROLL |
- CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ CONTROL "",IDC_STATIC1,"Static",SS_BLACKRECT,7,7,190,119,WS_EX_CLIENTEDGE
+ COMBOBOX IDC_COMBO1,7,129,190,91,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Settings...",IDC_BUTTON2,95,146,50,14
END
@@ -118,8 +65,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
+ FILEVERSION 1,0,0,2
+ PRODUCTVERSION 1,0,0,2
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -132,22 +79,22 @@ VS_VERSION_INFO VERSIONINFO
BEGIN
BLOCK "StringFileInfo"
BEGIN
- BLOCK "040904e4"
+ BLOCK "040904b0"
BEGIN
- VALUE "Comments", "http://gabest.org/"
- VALUE "CompanyName", "Gabest"
+ VALUE "Comments", "Records streaming windows media into the matroska container format."
+ VALUE "CompanyName", "MPC-HC Team"
VALUE "FileDescription", "Records streaming windows media into the matroska container format."
- VALUE "FileVersion", "1, 0, 0, 1"
+ VALUE "FileVersion", "1, 0, 0, 2"
VALUE "InternalName", "asf2mkv.exe"
- VALUE "LegalCopyright", "Copyright (C) 2003-2005 Gabest. All rights reserved."
+ VALUE "LegalCopyright", "2003-2010 (C) see: http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/trunk/src/apps/mplayerc/Authors.txt"
VALUE "OriginalFilename", "asf2mkv.exe"
VALUE "ProductName", "asf2mkv recorder"
- VALUE "ProductVersion", "1, 0, 0, 1"
+ VALUE "ProductVersion", "1, 0, 0, 2"
END
END
BLOCK "VarFileInfo"
BEGIN
- VALUE "Translation", 0x409, 1252
+ VALUE "Translation", 0x409, 1200
END
END
diff --git a/src/apps/asf2mkv/asf2mkv.sln b/src/apps/asf2mkv/asf2mkv.sln
new file mode 100644
index 000000000..1f256beb3
--- /dev/null
+++ b/src/apps/asf2mkv/asf2mkv.sln
@@ -0,0 +1,77 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asf2mkv", "asf2mkv.vcproj", "{B4E3D650-306F-4F9B-A7DD-2F70C2F69007}"
+ ProjectSection(ProjectDependencies) = postProject
+ {03208025-D5C2-426A-B0FA-251D4338F30C} = {03208025-D5C2-426A-B0FA-251D4338F30C}
+ {273B3149-3192-4B75-A791-470320B90812} = {273B3149-3192-4B75-A791-470320B90812}
+ {0D252872-7542-4232-8D02-53F9182AEE15} = {0D252872-7542-4232-8D02-53F9182AEE15}
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0} = {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0} = {C2082189-3ECB-4079-91FA-89D3C8A305C0}
+ {FC70988B-1AE5-4381-866D-4F405E28AC42} = {FC70988B-1AE5-4381-866D-4F405E28AC42}
+ {67827491-8162-4039-9132-F934ABC836A0} = {67827491-8162-4039-9132-F934ABC836A0}
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA} = {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmdUI", "..\..\ui\CmdUI\CmdUI.vcproj", "{03208025-D5C2-426A-B0FA-251D4338F30C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ResizableLib", "..\..\ui\ResizableLib\ResizableLib.vcproj", "{4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSUtil", "..\..\DSUtil\DSUtil.vcproj", "{FC70988B-1AE5-4381-866D-4F405E28AC42}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseClasses", "..\..\filters\BaseClasses\BaseClasses.vcproj", "{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Filters", "..\..\filters\Filters.vcproj", "{273B3149-3192-4B75-A791-470320B90812}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kasumi", "..\..\thirdparty\VirtualDub\Kasumi\Kasumi.vcproj", "{0D252872-7542-4232-8D02-53F9182AEE15}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "system", "..\..\thirdparty\VirtualDub\system\system.vcproj", "{C2082189-3ECB-4079-91FA-89D3C8A305C0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MatroskaMuxer", "..\..\filters\muxer\MatroskaMuxer\MatroskaMuxer.vcproj", "{67827491-8162-4039-9132-F934ABC836A0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Debug|Win32.Build.0 = Debug|Win32
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Release|Win32.ActiveCfg = Release|Win32
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Release|Win32.Build.0 = Release|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Debug|Win32.Build.0 = Debug|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Release|Win32.ActiveCfg = Release|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Release|Win32.Build.0 = Release|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Debug|Win32.Build.0 = Debug|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Release|Win32.ActiveCfg = Release|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Release|Win32.Build.0 = Release|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Debug|Win32.Build.0 = Debug|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Release|Win32.ActiveCfg = Release|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Release|Win32.Build.0 = Release|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug|Win32.Build.0 = Debug|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release|Win32.ActiveCfg = Release|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release|Win32.Build.0 = Release|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Debug|Win32.ActiveCfg = Debug|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Debug|Win32.Build.0 = Debug|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Release|Win32.ActiveCfg = Release|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Release|Win32.Build.0 = Release|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Debug|Win32.Build.0 = Debug|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Release|Win32.ActiveCfg = Release|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Release|Win32.Build.0 = Release|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Debug|Win32.Build.0 = Debug|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.ActiveCfg = Release|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.Build.0 = Release|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Debug|Win32.Build.0 = Debug|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Release|Win32.ActiveCfg = Release|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/apps/asf2mkv/asf2mkv.vcproj b/src/apps/asf2mkv/asf2mkv.vcproj
new file mode 100644
index 000000000..92ce9677a
--- /dev/null
+++ b/src/apps/asf2mkv/asf2mkv.vcproj
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="asf2mkv"
+ ProjectGUID="{B4E3D650-306F-4F9B-A7DD-2F70C2F69007}"
+ RootNamespace="asf2mkv"
+ Keyword="MFCProj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)bin\$(ConfigurationName)_$(PlatformName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
+ UseOfMFC="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="false"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
+ PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ AdditionalIncludeDirectories="$(IntDir)"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="Winmm.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="res\asf2mkv.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)bin\$(ConfigurationName)_$(PlatformName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
+ UseOfMFC="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="false"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
+ PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ AdditionalIncludeDirectories="$(IntDir)"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="Winmm.lib"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="res\asf2mkv.manifest"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\asf2mkv.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\asf2mkvDlg.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\stdafx.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\asf2mkv.h"
+ >
+ </File>
+ <File
+ RelativePath=".\asf2mkvDlg.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\stdafx.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath=".\res\asf2mkv.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\res\asf2mkv.manifest"
+ >
+ </File>
+ <File
+ RelativePath=".\asf2mkv.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\res\asf2mkv.rc2"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ <Global
+ Name="RESOURCE_FILE"
+ Value="asf2mkv.rc"
+ />
+ </Globals>
+</VisualStudioProject>
diff --git a/src/apps/asf2mkv/asf2mkv.vcxproj b/src/apps/asf2mkv/asf2mkv.vcxproj
new file mode 100644
index 000000000..0bbaec4ad
--- /dev/null
+++ b/src/apps/asf2mkv/asf2mkv.vcxproj
@@ -0,0 +1,166 @@
+<?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="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{B4E3D650-306F-4F9B-A7DD-2F70C2F69007}</ProjectGuid>
+ <RootNamespace>asf2mkv</RootNamespace>
+ <Keyword>MFCProj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>Static</UseOfMfc>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>Static</UseOfMfc>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 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="..\..\release.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 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="..\..\debug.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin10\$(Configuration)_$(Platform)\</OutDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin10\$(Configuration)_$(Platform)\</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>false</MkTypLibCompatible>
+ </Midl>
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <Manifest>
+ <AdditionalManifestFiles>res\asf2mkv.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
+ </Manifest>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>false</MkTypLibCompatible>
+ </Midl>
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\atl;..\..\filters\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <Manifest>
+ <AdditionalManifestFiles>res\asf2mkv.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
+ </Manifest>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="asf2mkv.cpp" />
+ <ClCompile Include="asf2mkvDlg.cpp" />
+ <ClCompile Include="stdafx.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="asf2mkv.h" />
+ <ClInclude Include="asf2mkvDlg.h" />
+ <ClInclude Include="Resource.h" />
+ <ClInclude Include="stdafx.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="res\asf2mkv.ico" />
+ <None Include="res\asf2mkv.rc2" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="asf2mkv.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <Manifest Include="res\asf2mkv.manifest" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\DSUtil\dsutil.vcxproj">
+ <Project>{fc70988b-1ae5-4381-866d-4f405e28ac42}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\filters\BaseClasses\BaseClasses.vcxproj">
+ <Project>{e8a3f6fa-ae1c-4c8e-a0b6-9c8480324eaa}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\filters\Filters.vcxproj">
+ <Project>{273b3149-3192-4b75-a791-470320b90812}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\filters\muxer\MatroskaMuxer\MatroskaMuxer.vcxproj">
+ <Project>{67827491-8162-4039-9132-f934abc836a0}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\thirdparty\VirtualDub\Kasumi\Kasumi.vcxproj">
+ <Project>{0d252872-7542-4232-8d02-53f9182aee15}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\thirdparty\VirtualDub\system\system.vcxproj">
+ <Project>{c2082189-3ecb-4079-91fa-89d3c8a305c0}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\ui\CmdUI\CmdUI.vcxproj">
+ <Project>{03208025-d5c2-426a-b0fa-251d4338f30c}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\ui\ResizableLib\ResizableLib.vcxproj">
+ <Project>{4cc7ae86-3e0a-430a-bff4-bf00204cafb0}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+ <ProjectExtensions>
+ <VisualStudio>
+ <UserProperties RESOURCE_FILE="asf2mkv.rc" />
+ </VisualStudio>
+ </ProjectExtensions>
+</Project> \ No newline at end of file
diff --git a/src/apps/asf2mkv/asf2mkv.vcxproj.filters b/src/apps/asf2mkv/asf2mkv.vcxproj.filters
new file mode 100644
index 000000000..3b9141f4f
--- /dev/null
+++ b/src/apps/asf2mkv/asf2mkv.vcxproj.filters
@@ -0,0 +1,60 @@
+<?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;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</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</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="asf2mkv.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="asf2mkvDlg.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="asf2mkv.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="asf2mkvDlg.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="stdafx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="res\asf2mkv.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="res\asf2mkv.rc2">
+ <Filter>Resource Files</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="asf2mkv.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <Manifest Include="res\asf2mkv.manifest">
+ <Filter>Resource Files</Filter>
+ </Manifest>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/apps/asf2mkv/asf2mkvDlg.cpp b/src/apps/asf2mkv/asf2mkvDlg.cpp
index 5bb1100fe..6f07076f2 100644
--- a/src/apps/asf2mkv/asf2mkvDlg.cpp
+++ b/src/apps/asf2mkv/asf2mkvDlg.cpp
@@ -2,6 +2,7 @@
* $Id$
*
* (C) 2003-2005 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This file is part of asf2mkv.
*
@@ -21,36 +22,34 @@
*/
#include "stdafx.h"
+#include <InitGuid.h>
#include "asf2mkv.h"
#include "asf2mkvDlg.h"
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#endif
-
-#include <initguid.h>
-#include "./asf2mkvdlg.h"
// {6B6D0800-9ADA-11d0-A520-00A0D10129C0}
DEFINE_GUID(CLSID_NetShowSource,
- 0x6b6d0800, 0x9ada, 0x11d0, 0xa5, 0x20, 0x0, 0xa0, 0xd1, 0x1, 0x29, 0xc0);
+ 0x6b6d0800, 0x9ada, 0x11d0, 0xa5, 0x20, 0x0, 0xa0, 0xd1, 0x1, 0x29, 0xc0);
+
+DEFINE_GUID(IID_IAMNetworkStatus,
+ 0xFA2AA8F3L,0x8B62,0x11D0,0xA5,0x20,0x00,0x00,0x00,0x00,0x00,0x00);
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
- CAboutDlg();
+ CAboutDlg();
// Dialog Data
- enum { IDD = IDD_ABOUTBOX };
+ enum { IDD = IDD_ABOUTBOX };
protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
- DECLARE_MESSAGE_MAP()
+ DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
@@ -59,7 +58,7 @@ CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
- CDialog::DoDataExchange(pDX);
+ CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
@@ -72,42 +71,42 @@ END_MESSAGE_MAP()
DROPEFFECT CUrlDropTarget::OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point)
{
- return DROPEFFECT_NONE;
+ return DROPEFFECT_NONE;
}
DROPEFFECT CUrlDropTarget::OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point)
{
- UINT CF_URL = RegisterClipboardFormat(_T("UniformResourceLocator"));
- return pDataObject->IsDataAvailable(CF_URL) ? DROPEFFECT_COPY : DROPEFFECT_NONE;
+ UINT CF_URL = RegisterClipboardFormat(_T("UniformResourceLocator"));
+ return pDataObject->IsDataAvailable(CF_URL) ? DROPEFFECT_COPY : DROPEFFECT_NONE;
}
BOOL CUrlDropTarget::OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point)
{
- UINT CF_URL = RegisterClipboardFormat(_T("UniformResourceLocator"));
-
- BOOL bResult = FALSE;
-
- if(pDataObject->IsDataAvailable(CF_URL))
- {
- FORMATETC fmt = {CF_URL, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
- if(HGLOBAL hGlobal = pDataObject->GetGlobalData(CF_URL, &fmt))
- {
- LPCSTR pText = (LPCSTR)GlobalLock(hGlobal);
- if(AfxIsValidString(pText))
- {
- AfxGetMainWnd()->SendMessage(WM_OPENURL, 0, (LPARAM)pText);
- GlobalUnlock(hGlobal);
- bResult = TRUE;
- }
- }
- }
-
- return bResult;
+ UINT CF_URL = RegisterClipboardFormat(_T("UniformResourceLocator"));
+
+ BOOL bResult = FALSE;
+
+ if(pDataObject->IsDataAvailable(CF_URL))
+ {
+ FORMATETC fmt = {CF_URL, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
+ if(HGLOBAL hGlobal = pDataObject->GetGlobalData(CF_URL, &fmt))
+ {
+ LPCSTR pText = (LPCSTR)GlobalLock(hGlobal);
+ if(AfxIsValidString(pText))
+ {
+ AfxGetMainWnd()->SendMessage(WM_OPENURL, 0, (LPARAM)pText);
+ GlobalUnlock(hGlobal);
+ bResult = TRUE;
+ }
+ }
+ }
+
+ return bResult;
}
DROPEFFECT CUrlDropTarget::OnDropEx(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point)
{
- return (DROPEFFECT)-1;
+ return (DROPEFFECT)-1;
}
void CUrlDropTarget::OnDragLeave(CWnd* pWnd)
@@ -116,7 +115,7 @@ void CUrlDropTarget::OnDragLeave(CWnd* pWnd)
DROPEFFECT CUrlDropTarget::OnDragScroll(CWnd* pWnd, DWORD dwKeyState, CPoint point)
{
- return DROPEFFECT_NONE;
+ return DROPEFFECT_NONE;
}
// Casf2mkvDlg dialog
@@ -124,54 +123,62 @@ DROPEFFECT CUrlDropTarget::OnDragScroll(CWnd* pWnd, DWORD dwKeyState, CPoint poi
#define WM_GRAPHNOTIFY (WM_APP+1)
Casf2mkvDlg::Casf2mkvDlg(CWnd* pParent /*=NULL*/)
- : CResizableDialog(Casf2mkvDlg::IDD, pParent)
- , m_fRecording(false)
- , m_mru(0, _T("MRU"), _T("file%d"), 20, 10)
+ : CResizableDialog(Casf2mkvDlg::IDD, pParent)
+ , m_fRecording(false)
+ , m_mru(0, _T("MRU"), _T("file%d"), 20, 10)
{
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
+ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
+
+ OSVERSIONINFO osver;
+
+ osver.dwOSVersionInfoSize = sizeof( OSVERSIONINFO );
+
+ bIsVistaOrAbove = GetVersionEx( &osver ) &&
+ osver.dwPlatformId == VER_PLATFORM_WIN32_NT &&
+ (osver.dwMajorVersion >= 6 );
}
void Casf2mkvDlg::DoDataExchange(CDataExchange* pDX)
{
- __super::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_COMBO1, m_combo);
- DDX_Control(pDX, IDC_STATIC1, m_video);
+ __super::DoDataExchange(pDX);
+ DDX_Control(pDX, IDC_COMBO1, m_combo);
+ DDX_Control(pDX, IDC_STATIC1, m_video);
}
void Casf2mkvDlg::SetupCombo()
{
- m_combo.ResetContent();
- for(int i = 0; i < m_mru.GetSize(); i++)
- if(!m_mru[i].IsEmpty())
- m_combo.AddString(m_mru[i]);
+ m_combo.ResetContent();
+ for(int i = 0; i < m_mru.GetSize(); i++)
+ if(!m_mru[i].IsEmpty())
+ m_combo.AddString(m_mru[i]);
}
void Casf2mkvDlg::SetVideoRect()
{
- if(pVW)
- {
- CRect r;
- m_video.GetWindowRect(r);
- r -= r.TopLeft();
- pVW->SetWindowPosition(r.left, r.top, r.Width(), r.Height());
- }
+ if(pVW)
+ {
+ CRect r;
+ m_video.GetWindowRect(r);
+ r -= r.TopLeft();
+ pVW->SetWindowPosition(r.left, r.top, r.Width(), r.Height());
+ }
}
BEGIN_MESSAGE_MAP(Casf2mkvDlg, CResizableDialog)
- ON_WM_SYSCOMMAND()
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
- ON_MESSAGE(WM_GRAPHNOTIFY, OnGraphNotify)
- ON_BN_CLICKED(IDC_BUTTON1, OnRecord)
- ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateRecord)
- ON_UPDATE_COMMAND_UI(IDC_COMBO1, OnUpdateFileName)
- ON_UPDATE_COMMAND_UI(IDC_BUTTON2, OnUpdateSettings)
- ON_UPDATE_COMMAND_UI(IDC_CHECK2, OnUpdateSettings)
- ON_WM_SIZE()
- ON_WM_TIMER()
- ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
- ON_MESSAGE(WM_APP, OnUrlOpen)
+ ON_WM_SYSCOMMAND()
+ ON_WM_PAINT()
+ ON_WM_QUERYDRAGICON()
+ ON_MESSAGE(WM_GRAPHNOTIFY, OnGraphNotify)
+ ON_BN_CLICKED(IDC_BUTTON1, OnRecord)
+ ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateRecord)
+ ON_UPDATE_COMMAND_UI(IDC_COMBO1, OnUpdateFileName)
+ ON_UPDATE_COMMAND_UI(IDC_BUTTON2, OnUpdateSettings)
+ ON_UPDATE_COMMAND_UI(IDC_CHECK2, OnUpdateSettings)
+ ON_WM_SIZE()
+ ON_WM_TIMER()
+ ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
+ ON_MESSAGE(WM_APP, OnUrlOpen)
END_MESSAGE_MAP()
@@ -179,436 +186,435 @@ END_MESSAGE_MAP()
BOOL Casf2mkvDlg::OnInitDialog()
{
- __super::OnInitDialog();
+ __super::OnInitDialog();
- // Add "About..." menu item to system menu.
+ // Add "About..." menu item to system menu.
- // IDM_ABOUTBOX must be in the system command range.
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
+ // IDM_ABOUTBOX must be in the system command range.
+ ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
+ ASSERT(IDM_ABOUTBOX < 0xF000);
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu != NULL)
- {
- CString strAboutMenu;
- strAboutMenu.LoadString(IDS_ABOUTBOX);
- if (!strAboutMenu.IsEmpty())
- {
- pSysMenu->AppendMenu(MF_SEPARATOR);
- pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
- }
- }
+ CMenu* pSysMenu = GetSystemMenu(FALSE);
+ if (pSysMenu != NULL)
+ {
+ CString strAboutMenu;
+ strAboutMenu.LoadString(IDS_ABOUTBOX);
+ if (!strAboutMenu.IsEmpty())
+ {
+ pSysMenu->AppendMenu(MF_SEPARATOR);
+ pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
+ }
+ }
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- SetIcon(m_hIcon, TRUE); // Set big icon
- SetIcon(m_hIcon, FALSE); // Set small icon
+ // Set the icon for this dialog. The framework does this automatically
+ // when the application's main window is not a dialog
+ SetIcon(m_hIcon, TRUE); // Set big icon
+ SetIcon(m_hIcon, FALSE); // Set small icon
- // TODO: Add extra initialization here
+ // TODO: Add extra initialization here
- AddAnchor(IDC_STATIC1, TOP_LEFT, BOTTOM_RIGHT);
- AddAnchor(IDC_COMBO1, BOTTOM_LEFT, BOTTOM_RIGHT);
- AddAnchor(IDC_BUTTON1, BOTTOM_RIGHT);
- AddAnchor(IDC_BUTTON2, BOTTOM_RIGHT);
+ AddAnchor(IDC_STATIC1, TOP_LEFT, BOTTOM_RIGHT);
+ AddAnchor(IDC_COMBO1, BOTTOM_LEFT, BOTTOM_RIGHT);
+ AddAnchor(IDC_BUTTON1, BOTTOM_RIGHT);
+ AddAnchor(IDC_BUTTON2, BOTTOM_RIGHT);
- m_mru.ReadList();
- SetupCombo();
+ m_mru.ReadList();
+ SetupCombo();
- m_video.ModifyStyle(0, WS_CLIPCHILDREN);
+ m_video.ModifyStyle(0, WS_CLIPCHILDREN);
- SetWindowText(ResStr(IDS_TITLE));
+ SetWindowText(ResStr(IDS_TITLE));
- m_urlDropTarget.Register(this);
+ m_urlDropTarget.Register(this);
- return TRUE; // return TRUE unless you set the focus to a control
+ return TRUE; // return TRUE unless you set the focus to a control
}
BOOL Casf2mkvDlg::DestroyWindow()
{
- m_urlDropTarget.Revoke();
+ m_urlDropTarget.Revoke();
- return __super::DestroyWindow();
+ return __super::DestroyWindow();
}
void Casf2mkvDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
- if ((nID & 0xFFF0) == IDM_ABOUTBOX)
- {
- CAboutDlg dlgAbout;
- dlgAbout.DoModal();
- }
- else
- {
- __super::OnSysCommand(nID, lParam);
- }
+ if ((nID & 0xFFF0) == IDM_ABOUTBOX)
+ {
+ CAboutDlg dlgAbout;
+ dlgAbout.DoModal();
+ }
+ else
+ {
+ __super::OnSysCommand(nID, lParam);
+ }
}
// If you add a minimize button to your dialog, you will need the code below
-// to draw the icon. For MFC applications using the document/view model,
-// this is automatically done for you by the framework.
+// to draw the icon. For MFC applications using the document/view model,
+// this is automatically done for you by the framework.
void Casf2mkvDlg::OnPaint()
{
- if (IsIconic())
- {
- CPaintDC dc(this); // device context for painting
-
- SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
-
- // Center icon in client rectangle
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
-
- // Draw the icon
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- __super::OnPaint();
- }
+ if (IsIconic())
+ {
+ CPaintDC dc(this); // device context for painting
+
+ SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
+
+ // Center icon in client rectangle
+ int cxIcon = GetSystemMetrics(SM_CXICON);
+ int cyIcon = GetSystemMetrics(SM_CYICON);
+ CRect rect;
+ GetClientRect(&rect);
+ int x = (rect.Width() - cxIcon + 1) / 2;
+ int y = (rect.Height() - cyIcon + 1) / 2;
+
+ // Draw the icon
+ dc.DrawIcon(x, y, m_hIcon);
+ }
+ else
+ {
+ __super::OnPaint();
+ }
}
// The system calls this function to obtain the cursor to display while the user drags
-// the minimized window.
+// the minimized window.
HCURSOR Casf2mkvDlg::OnQueryDragIcon()
{
- return static_cast<HCURSOR>(m_hIcon);
+ return static_cast<HCURSOR>(m_hIcon);
}
LRESULT Casf2mkvDlg::OnGraphNotify(WPARAM wParam, LPARAM lParam)
{
- HRESULT hr = S_OK;
-
- LONG evCode, evParam1, evParam2;
- while(pME && SUCCEEDED(pME->GetEvent(&evCode, (LONG_PTR*)&evParam1, (LONG_PTR*)&evParam2, 0)))
- {
- hr = pME->FreeEventParams(evCode, evParam1, evParam2);
-
- if(EC_COMPLETE == evCode)
- {
- if(m_fRecording)
- {
- OnRecord();
- break;
- }
- }
- }
-
- return hr;
+ HRESULT hr = S_OK;
+
+ LONG evCode, evParam1, evParam2;
+ while(pME && SUCCEEDED(pME->GetEvent(&evCode, (LONG_PTR*)&evParam1, (LONG_PTR*)&evParam2, 0)))
+ {
+ hr = pME->FreeEventParams(evCode, evParam1, evParam2);
+
+ if(EC_COMPLETE == evCode)
+ {
+ if(m_fRecording)
+ {
+ OnRecord();
+ break;
+ }
+ }
+ }
+
+ return hr;
}
void Casf2mkvDlg::OnRecord()
{
- UpdateData();
-
- HRESULT hr;
-
- if(!m_fRecording)
- {
- m_fRecording = true;
-
- UpdateDialogControls(this, FALSE);
-
- hr = E_FAIL;
-
- do
- {
- // i/o
-
- CString src;
- m_combo.GetWindowText(src);
-
- CFileDialog fd(
- FALSE, _T("mkv"), m_dst,
- OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXPLORER|OFN_ENABLESIZING,
- _T("Matroska file (*.mkv;*.mka)|*.mkv;*.mka||"),
- this);
- if(fd.DoModal() != IDOK) break;
- m_dst = fd.GetPathName();
-
- m_mru.Add(src);
- m_mru.WriteList();
- SetupCombo();
- m_combo.SetWindowText(src);
-
- if(src.Trim().IsEmpty() || m_dst.Trim().IsEmpty())
- break;
-
- // filer graph
-
- if(FAILED(hr = pGB.CoCreateInstance(CLSID_FilterGraph)))
- break;
-
- pMC = pGB;
- pME = pGB;
- pMS = pGB;
- pVW = pGB;
- pBV = pGB;
- if(!pMC || !pME || !pMS || !pVW || !pBV)
- break;
-
- if(FAILED(hr = pME->SetNotifyWindow((OAHWND)m_hWnd, WM_GRAPHNOTIFY, 0)))
- break;
-
- // windows media source filter
-
- CComPtr<IBaseFilter> pSrc;
- if(FAILED(hr = pSrc.CoCreateInstance(CLSID_NetShowSource))
- || FAILED(hr = pGB->AddFilter(pSrc, CStringW(src)))
- || FAILED(hr = CComQIPtr<IFileSourceFilter>(pSrc)->Load(CStringW(src), NULL)))
- break;
-
- // matroska muxer
-
- CComPtr<IBaseFilter> pMux;
- if(FAILED(hr = pMux.CoCreateInstance(__uuidof(CMatroskaMuxerFilter)))
- && !(pMux = new CMatroskaMuxerFilter(NULL, NULL))
- || FAILED(hr = pGB->AddFilter(pMux, L"Matroska Muxer")))
- break;
-
- BeginEnumPins(pSrc, pEP, pPin)
- if(FAILED(hr = pGB->Connect(pPin, GetFirstDisconnectedPin(pMux, PINDIR_INPUT))))
- break;
- EndEnumPins
-
- if(FAILED(hr))
- break;
-
- // file writer
-
- CComPtr<IBaseFilter> pFW;
- if(FAILED(hr = pFW.CoCreateInstance(CLSID_FileWriter))
- || FAILED(hr = pGB->AddFilter(pFW, CStringW(m_dst)))
- || FAILED(hr = CComQIPtr<IFileSinkFilter2>(pFW)->SetFileName(CStringW(m_dst), NULL))
- || FAILED(hr = CComQIPtr<IFileSinkFilter2>(pFW)->SetMode(AM_FILE_OVERWRITE))
- || FAILED(hr = pGB->Connect(GetFirstDisconnectedPin(pMux, PINDIR_OUTPUT), GetFirstDisconnectedPin(pFW, PINDIR_INPUT))))
- break;
-
- // insert inf. pin tee
-
- BeginEnumPins(pMux, pEP, pPin)
- {
- PIN_DIRECTION dir;
- CComPtr<IPin> pPinTo;
- CMediaType mt;
- if(FAILED(pPin->QueryDirection(&dir)) || dir != PINDIR_INPUT
- || FAILED(pPin->ConnectedTo(&pPinTo))
- || FAILED(pPin->ConnectionMediaType(&mt)))
- continue;
-
- // FIXME: the inf pin tee filter makes the video messed up, like when seeking
- // onto a non-keyframe and starting to decode from that point. (audio seems to be ok)
-
- CComPtr<IBaseFilter> pInfPinTee;
- if(mt.majortype == MEDIATYPE_Video
- || mt.majortype == MEDIATYPE_Audio)
- {
- if(FAILED(pGB->Disconnect(pPin))
- || FAILED(pGB->Disconnect(pPinTo))
- || FAILED(pInfPinTee.CoCreateInstance(CLSID_InfTee))
- || FAILED(pGB->AddFilter(pInfPinTee, L"Infinite Pin Tee")))
- continue;
-
- if(FAILED(pGB->Connect(pPinTo, GetFirstDisconnectedPin(pInfPinTee, PINDIR_INPUT)))
- || FAILED(pGB->Connect(GetFirstDisconnectedPin(pInfPinTee, PINDIR_OUTPUT), pPin)))
- {
- pGB->RemoveFilter(pInfPinTee);
- pGB->ConnectDirect(pPinTo, pPin, NULL);
- continue;
- }
- }
-
- pPin = GetFirstDisconnectedPin(pInfPinTee, PINDIR_OUTPUT);
-
- CComPtr<IBaseFilter> pRenderer;
-
- if(mt.majortype == MEDIATYPE_Video)
- {
- if(SUCCEEDED(pRenderer.CoCreateInstance(CLSID_VideoRendererDefault))
- || SUCCEEDED(pRenderer.CoCreateInstance(CLSID_VideoRenderer)))
- pPinTo = ::GetFirstDisconnectedPin(pRenderer, PINDIR_INPUT);
- }
- else if(mt.majortype == MEDIATYPE_Audio)
- {
- if(SUCCEEDED(pRenderer.CoCreateInstance(CLSID_DSoundRender)))
- pPinTo = ::GetFirstDisconnectedPin(pRenderer, PINDIR_INPUT);
- }
-
- if(pPin && pPinTo && pRenderer)
- {
- if(SUCCEEDED(pGB->AddFilter(pRenderer, L"Renderer"))
- && FAILED(pGB->Connect(pPin, pPinTo)))
- pGB->RemoveFilter(pRenderer);
- }
- }
- EndEnumPins
-
- // setup video window
-
- if(SUCCEEDED(pVW->put_Owner((OAHWND)m_video.m_hWnd))
- && SUCCEEDED(pVW->put_WindowStyle(WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN))
- && SUCCEEDED(pVW->put_MessageDrain((OAHWND)m_hWnd)))
- {
- SetVideoRect();
- }
-
- // timer for polling the position
-
- SetTimer(1, 500, NULL);
-
- // go!
-
- if(FAILED(hr = pMC->Run()))
- break;
-
- hr = S_OK;
- }
- while(false);
-
- if(FAILED(hr)) OnRecord();
- }
- else
- {
- if(pMC) pMC->Stop();
-
- pMC.Release();
- pME.Release();
- pMS.Release();
- pVW.Release();
- pBV.Release();
- pGB.Release();
-
- m_fRecording = false;
-
- SetWindowText(ResStr(IDS_TITLE));
- }
+ UpdateData();
+
+ HRESULT hr;
+
+ if(!m_fRecording)
+ {
+ m_fRecording = true;
+
+ UpdateDialogControls(this, FALSE);
+
+ hr = E_FAIL;
+
+ do
+ {
+ // i/o
+
+ CString src;
+ m_combo.GetWindowText(src);
+
+ CFileDialog fd(
+ FALSE, _T("mkv"), m_dst,
+ OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXPLORER|OFN_ENABLESIZING,
+ _T("Matroska file (*.mkv;*.mka)|*.mkv;*.mka||"),
+ this);
+ if(fd.DoModal() != IDOK) break;
+ m_dst = fd.GetPathName();
+
+ m_mru.Add(src);
+ m_mru.WriteList();
+ SetupCombo();
+ m_combo.SetWindowText(src);
+
+ if(src.Trim().IsEmpty() || m_dst.Trim().IsEmpty())
+ break;
+
+ // filer graph
+
+ if(FAILED(hr = pGB.CoCreateInstance(CLSID_FilterGraph)))
+ break;
+
+ pMC = pGB;
+ pME = pGB;
+ pMS = pGB;
+ pVW = pGB;
+ pBV = pGB;
+ if(!pMC || !pME || !pMS || !pVW || !pBV)
+ break;
+
+ if(FAILED(hr = pME->SetNotifyWindow((OAHWND)m_hWnd, WM_GRAPHNOTIFY, 0)))
+ break;
+
+ // windows media source filter or windows asf reader
+ GUID asfreader = bIsVistaOrAbove? CLSID_WMAsfReader : CLSID_NetShowSource;
+ CComPtr<IBaseFilter> pSrc;
+ if(FAILED(hr = pSrc.CoCreateInstance(asfreader))
+ || FAILED(hr = pGB->AddFilter(pSrc, CStringW(src)))
+ || FAILED(hr = CComQIPtr<IFileSourceFilter>(pSrc)->Load(CStringW(src), NULL)))
+ break;
+
+ // matroska muxer
+
+ CComPtr<IBaseFilter> pMux;
+ if(FAILED(hr = pMux.CoCreateInstance(__uuidof(CMatroskaMuxerFilter)))
+ && !(pMux = new CMatroskaMuxerFilter(NULL, NULL))
+ || FAILED(hr = pGB->AddFilter(pMux, L"Matroska Muxer")))
+ break;
+
+ BeginEnumPins(pSrc, pEP, pPin)
+ if(FAILED(hr = pGB->Connect(pPin, GetFirstDisconnectedPin(pMux, PINDIR_INPUT))))
+ break;
+ EndEnumPins
+
+ if(FAILED(hr))
+ break;
+
+ // file writer
+
+ CComPtr<IBaseFilter> pFW;
+ if(FAILED(hr = pFW.CoCreateInstance(CLSID_FileWriter))
+ || FAILED(hr = pGB->AddFilter(pFW, CStringW(m_dst)))
+ || FAILED(hr = CComQIPtr<IFileSinkFilter2>(pFW)->SetFileName(CStringW(m_dst), NULL))
+ || FAILED(hr = CComQIPtr<IFileSinkFilter2>(pFW)->SetMode(AM_FILE_OVERWRITE))
+ || FAILED(hr = pGB->Connect(GetFirstDisconnectedPin(pMux, PINDIR_OUTPUT), GetFirstDisconnectedPin(pFW, PINDIR_INPUT))))
+ break;
+
+ // insert inf. pin tee
+
+ BeginEnumPins(pMux, pEP, pPin)
+ {
+ PIN_DIRECTION dir;
+ CComPtr<IPin> pPinTo;
+ CMediaType mt;
+ if(FAILED(pPin->QueryDirection(&dir)) || dir != PINDIR_INPUT
+ || FAILED(pPin->ConnectedTo(&pPinTo))
+ || FAILED(pPin->ConnectionMediaType(&mt)))
+ continue;
+
+ // FIXME: the inf pin tee filter makes the video messed up, like when seeking
+ // onto a non-keyframe and starting to decode from that point. (audio seems to be ok)
+
+ CComPtr<IBaseFilter> pInfPinTee;
+ if(mt.majortype == MEDIATYPE_Video
+ || mt.majortype == MEDIATYPE_Audio)
+ {
+ if(FAILED(pGB->Disconnect(pPin))
+ || FAILED(pGB->Disconnect(pPinTo))
+ || FAILED(pInfPinTee.CoCreateInstance(CLSID_InfTee))
+ || FAILED(pGB->AddFilter(pInfPinTee, L"Infinite Pin Tee")))
+ continue;
+
+ if(FAILED(pGB->Connect(pPinTo, GetFirstDisconnectedPin(pInfPinTee, PINDIR_INPUT)))
+ || FAILED(pGB->Connect(GetFirstDisconnectedPin(pInfPinTee, PINDIR_OUTPUT), pPin)))
+ {
+ pGB->RemoveFilter(pInfPinTee);
+ pGB->ConnectDirect(pPinTo, pPin, NULL);
+ continue;
+ }
+ }
+
+ pPin = GetFirstDisconnectedPin(pInfPinTee, PINDIR_OUTPUT);
+
+ CComPtr<IBaseFilter> pRenderer;
+
+ if(mt.majortype == MEDIATYPE_Video)
+ {
+ if(SUCCEEDED(pRenderer.CoCreateInstance(CLSID_VideoRendererDefault))
+ || SUCCEEDED(pRenderer.CoCreateInstance(CLSID_VideoRenderer)))
+ pPinTo = ::GetFirstDisconnectedPin(pRenderer, PINDIR_INPUT);
+ }
+ else if(mt.majortype == MEDIATYPE_Audio)
+ {
+ if(SUCCEEDED(pRenderer.CoCreateInstance(CLSID_DSoundRender)))
+ pPinTo = ::GetFirstDisconnectedPin(pRenderer, PINDIR_INPUT);
+ }
+
+ if(pPin && pPinTo && pRenderer)
+ {
+ if(SUCCEEDED(pGB->AddFilter(pRenderer, L"Renderer"))
+ && FAILED(pGB->Connect(pPin, pPinTo)))
+ pGB->RemoveFilter(pRenderer);
+ }
+ }
+ EndEnumPins
+
+ // setup video window
+
+ if(SUCCEEDED(pVW->put_Owner((OAHWND)m_video.m_hWnd))
+ && SUCCEEDED(pVW->put_WindowStyle(WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN))
+ && SUCCEEDED(pVW->put_MessageDrain((OAHWND)m_hWnd)))
+ {
+ SetVideoRect();
+ }
+
+ // timer for polling the position
+
+ SetTimer(1, 500, NULL);
+
+ // go!
+
+ if(FAILED(hr = pMC->Run()))
+ break;
+
+ hr = S_OK;
+ }
+ while(false);
+
+ if(FAILED(hr)) OnRecord();
+ }
+ else
+ {
+ if(pMC) pMC->Stop();
+
+ pMC.Release();
+ pME.Release();
+ pMS.Release();
+ pVW.Release();
+ pBV.Release();
+ pGB.Release();
+
+ m_fRecording = false;
+
+ SetWindowText(ResStr(IDS_TITLE));
+ }
}
void Casf2mkvDlg::OnUpdateRecord(CCmdUI* pCmdUI)
{
- CString url;
- m_combo.GetWindowText(url);
- url.Trim();
- pCmdUI->Enable(!url.IsEmpty());
- pCmdUI->SetText(ResStr(!m_fRecording ? IDS_RECORD : IDS_STOP));
+ CString url;
+ m_combo.GetWindowText(url);
+ url.Trim();
+ pCmdUI->Enable(!url.IsEmpty());
+ pCmdUI->SetText(ResStr(!m_fRecording ? IDS_RECORD : IDS_STOP));
}
void Casf2mkvDlg::OnUpdateFileName(CCmdUI* pCmdUI)
{
- pCmdUI->Enable(!m_fRecording);
+ pCmdUI->Enable(!m_fRecording);
}
void Casf2mkvDlg::OnUpdateSettings(CCmdUI* pCmdUI)
{
- pCmdUI->Enable(!m_fRecording);
+ pCmdUI->Enable(!bIsVistaOrAbove && !m_fRecording);
}
void Casf2mkvDlg::OnSize(UINT nType, int cx, int cy)
{
- CResizableDialog::OnSize(nType, cx, cy);
+ CResizableDialog::OnSize(nType, cx, cy);
- SetVideoRect();
+ SetVideoRect();
}
-void Casf2mkvDlg::OnTimer(UINT nIDEvent)
+void Casf2mkvDlg::OnTimer(UINT_PTR nIDEvent)
{
- if(nIDEvent == 1)
- {
- if(pMS)
- {
- REFERENCE_TIME rtPos = 0, rtDur = 0;
- pMS->GetCurrentPosition(&rtPos);
- pMS->GetDuration(&rtDur);
-
- CString title;
- if(rtDur > 0) title.Format(_T("%s (progress: %I64d%%)"), ResStr(IDS_TITLE), 100i64 * rtPos / rtDur);
- else title = ResStr(IDS_TITLE) + _T(" (live)");
-
- BeginEnumFilters(pGB, pEF, pBF)
- {
- if(CComQIPtr<IAMNetworkStatus, &IID_IAMNetworkStatus> pAMNS = pBF)
- {
- long BufferingProgress = 0;
- if(SUCCEEDED(pAMNS->get_BufferingProgress(&BufferingProgress)) && BufferingProgress > 0)
- {
- CString str;
- str.Format(_T(" (buffer: %d%%)"), BufferingProgress);
- title += str;
- }
- break;
- }
- }
- EndEnumFilters
-
- SetWindowText(title);
- }
- }
-
- CResizableDialog::OnTimer(nIDEvent);
+ if(nIDEvent == 1)
+ {
+ if(pMS)
+ {
+ REFERENCE_TIME rtPos = 0, rtDur = 0;
+ pMS->GetCurrentPosition(&rtPos);
+ pMS->GetDuration(&rtDur);
+
+ CString title;
+ if(rtDur > 0) title.Format(_T("%s (progress: %I64d%%)"), ResStr(IDS_TITLE), 100i64 * rtPos / rtDur);
+ else title = ResStr(IDS_TITLE) + _T(" (live)");
+
+ BeginEnumFilters(pGB, pEF, pBF)
+ {
+ if(CComQIPtr<IAMNetworkStatus, &IID_IAMNetworkStatus> pAMNS = pBF)
+ {
+ long BufferingProgress = 0;
+ if(SUCCEEDED(pAMNS->get_BufferingProgress(&BufferingProgress)) && BufferingProgress > 0)
+ {
+ CString str;
+ str.Format(_T(" (buffer: %d%%)"), BufferingProgress);
+ title += str;
+ }
+ break;
+ }
+ }
+ EndEnumFilters
+
+ SetWindowText(title);
+ }
+ }
+
+ CResizableDialog::OnTimer(nIDEvent);
}
void Casf2mkvDlg::OnBnClickedButton2()
{
- CComPtr<IBaseFilter> pBF;
- pBF.CoCreateInstance(CLSID_NetShowSource);
- if(pBF) ShowPPage(pBF, m_hWnd);
+ CComPtr<IBaseFilter> pBF;
+ pBF.CoCreateInstance(CLSID_NetShowSource);
+ if(pBF) ShowPPage(pBF, m_hWnd);
}
LRESULT Casf2mkvDlg::OnUrlOpen(WPARAM wParam, LPARAM lParam)
{
- m_combo.SetWindowText(CString((char*)lParam));
- return 0;
+ m_combo.SetWindowText(CString((char*)lParam));
+ return 0;
}
//////////////////
Casf2mkvDlg::CRecentFileAndURLList::CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
- LPCTSTR lpszEntryFormat, int nSize,
- int nMaxDispLen)
- : CRecentFileList(nStart, lpszSection, lpszEntryFormat, nSize, nMaxDispLen)
+ LPCTSTR lpszEntryFormat, int nSize,
+ int nMaxDispLen)
+ : CRecentFileList(nStart, lpszSection, lpszEntryFormat, nSize, nMaxDispLen)
{
}
-//#include <afximpl.h>
extern BOOL AFXAPI AfxFullPath(LPTSTR lpszPathOut, LPCTSTR lpszFileIn);
extern BOOL AFXAPI AfxComparePath(LPCTSTR lpszPath1, LPCTSTR lpszPath2);
void Casf2mkvDlg::CRecentFileAndURLList::Add(LPCTSTR lpszPathName)
{
- ASSERT(m_arrNames != NULL);
- ASSERT(lpszPathName != NULL);
- ASSERT(AfxIsValidString(lpszPathName));
-
- if(CString(lpszPathName).MakeLower().Find(_T("@device:")) >= 0)
- return;
-
- bool fURL = (CString(lpszPathName).Find(_T("://")) >= 0);
-
- // fully qualify the path name
- TCHAR szTemp[_MAX_PATH];
- if(fURL) _tcscpy(szTemp, lpszPathName);
- else AfxFullPath(szTemp, lpszPathName);
-
- // update the MRU list, if an existing MRU string matches file name
- int iMRU;
- for (iMRU = 0; iMRU < m_nSize-1; iMRU++)
- {
- if((fURL && !_tcscmp(m_arrNames[iMRU], szTemp))
- || AfxComparePath(m_arrNames[iMRU], szTemp))
- break; // iMRU will point to matching entry
- }
- // move MRU strings before this one down
- for (; iMRU > 0; iMRU--)
- {
- ASSERT(iMRU > 0);
- ASSERT(iMRU < m_nSize);
- m_arrNames[iMRU] = m_arrNames[iMRU-1];
- }
- // place this one at the beginning
- m_arrNames[0] = szTemp;
+ ASSERT(m_arrNames != NULL);
+ ASSERT(lpszPathName != NULL);
+ ASSERT(AfxIsValidString(lpszPathName));
+
+ if(CString(lpszPathName).MakeLower().Find(_T("@device:")) >= 0)
+ return;
+
+ bool fURL = (CString(lpszPathName).Find(_T("://")) >= 0);
+
+ // fully qualify the path name
+ TCHAR szTemp[_MAX_PATH];
+ if(fURL) _tcscpy(szTemp, lpszPathName);
+ else AfxFullPath(szTemp, lpszPathName);
+
+ // update the MRU list, if an existing MRU string matches file name
+ int iMRU;
+ for (iMRU = 0; iMRU < m_nSize-1; iMRU++)
+ {
+ if((fURL && !_tcscmp(m_arrNames[iMRU], szTemp))
+ || AfxComparePath(m_arrNames[iMRU], szTemp))
+ break; // iMRU will point to matching entry
+ }
+ // move MRU strings before this one down
+ for (; iMRU > 0; iMRU--)
+ {
+ ASSERT(iMRU > 0);
+ ASSERT(iMRU < m_nSize);
+ m_arrNames[iMRU] = m_arrNames[iMRU-1];
+ }
+ // place this one at the beginning
+ m_arrNames[0] = szTemp;
}
diff --git a/src/apps/asf2mkv/asf2mkvDlg.h b/src/apps/asf2mkv/asf2mkvDlg.h
index 5ed817cdc..fa68e2234 100644
--- a/src/apps/asf2mkv/asf2mkvDlg.h
+++ b/src/apps/asf2mkv/asf2mkvDlg.h
@@ -2,6 +2,7 @@
* $Id$
*
* (C) 2003-2005 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This file is part of asf2mkv.
*
@@ -29,81 +30,82 @@
class CUrlDropTarget : public COleDropTarget
{
public:
- CUrlDropTarget() {}
+ CUrlDropTarget() {}
- 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);
+ 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);
- DECLARE_MESSAGE_MAP()
+ DECLARE_MESSAGE_MAP()
};
// Casf2mkvDlg dialog
class Casf2mkvDlg : public CResizableDialog
{
- CComPtr<IGraphBuilder> pGB;
- CComQIPtr<IMediaControl> pMC;
- CComQIPtr<IMediaEventEx> pME;
- CComQIPtr<IMediaSeeking> pMS;
- CComQIPtr<IVideoWindow> pVW;
- CComQIPtr<IBasicVideo> pBV;
+ CComPtr<IGraphBuilder> pGB;
+ CComQIPtr<IMediaControl> pMC;
+ CComQIPtr<IMediaEventEx> pME;
+ CComQIPtr<IMediaSeeking> pMS;
+ CComQIPtr<IVideoWindow> pVW;
+ CComQIPtr<IBasicVideo> pBV;
- bool m_fRecording;
- CString m_dst;
+ bool bIsVistaOrAbove;
+ bool m_fRecording;
+ CString m_dst;
- class CRecentFileAndURLList : public CRecentFileList
- {
- public:
- CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
- LPCTSTR lpszEntryFormat, int nSize,
- int nMaxDispLen = AFX_ABBREV_FILENAME_LEN);
+ class CRecentFileAndURLList : public CRecentFileList
+ {
+ public:
+ CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
+ LPCTSTR lpszEntryFormat, int nSize,
+ int nMaxDispLen = AFX_ABBREV_FILENAME_LEN);
- virtual void Add(LPCTSTR lpszPathName); // we have to override CRecentFileList::Add because the original version can't handle URLs
- };
+ virtual void Add(LPCTSTR lpszPathName); // we have to override CRecentFileList::Add because the original version can't handle URLs
+ };
- CRecentFileAndURLList m_mru;
- void SetupCombo();
+ CRecentFileAndURLList m_mru;
+ void SetupCombo();
- void SetVideoRect();
+ void SetVideoRect();
- CUrlDropTarget m_urlDropTarget;
+ CUrlDropTarget m_urlDropTarget;
// Construction
public:
- Casf2mkvDlg(CWnd* pParent = NULL); // standard constructor
+ Casf2mkvDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
- enum { IDD = IDD_ASF2MKV_DIALOG };
+ enum { IDD = IDD_ASF2MKV_DIALOG };
protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
- HICON m_hIcon;
+ HICON m_hIcon;
- CComboBox m_combo;
- CStatic m_video;
+ CComboBox m_combo;
+ CStatic m_video;
- // Generated message map functions
- virtual BOOL OnInitDialog();
- virtual BOOL DestroyWindow();
- DECLARE_MESSAGE_MAP()
+ // Generated message map functions
+ virtual BOOL OnInitDialog();
+ virtual BOOL DestroyWindow();
+ DECLARE_MESSAGE_MAP()
public:
- afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
- afx_msg void OnPaint();
- afx_msg HCURSOR OnQueryDragIcon();
- afx_msg LRESULT OnGraphNotify(WPARAM wParam, LPARAM lParam);
- afx_msg void OnRecord();
- afx_msg void OnUpdateRecord(CCmdUI* pCmdUI);
- afx_msg void OnUpdateFileName(CCmdUI* pCmdUI);
- afx_msg void OnUpdateSettings(CCmdUI* pCmdUI);
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg void OnTimer(UINT nIDEvent);
- afx_msg void OnBnClickedButton2();
- afx_msg LRESULT OnUrlOpen(WPARAM wParam, LPARAM lParam);
+ afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
+ afx_msg void OnPaint();
+ afx_msg HCURSOR OnQueryDragIcon();
+ afx_msg LRESULT OnGraphNotify(WPARAM wParam, LPARAM lParam);
+ afx_msg void OnRecord();
+ afx_msg void OnUpdateRecord(CCmdUI* pCmdUI);
+ afx_msg void OnUpdateFileName(CCmdUI* pCmdUI);
+ afx_msg void OnUpdateSettings(CCmdUI* pCmdUI);
+ afx_msg void OnSize(UINT nType, int cx, int cy);
+ afx_msg void OnTimer(UINT_PTR nIDEvent);
+ afx_msg void OnBnClickedButton2();
+ afx_msg LRESULT OnUrlOpen(WPARAM wParam, LPARAM lParam);
};
diff --git a/src/apps/asf2mkv/asf2mkv_2010.sln b/src/apps/asf2mkv/asf2mkv_2010.sln
new file mode 100644
index 000000000..1c9627756
--- /dev/null
+++ b/src/apps/asf2mkv/asf2mkv_2010.sln
@@ -0,0 +1,67 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asf2mkv", "asf2mkv.vcxproj", "{B4E3D650-306F-4F9B-A7DD-2F70C2F69007}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmdUI", "..\..\ui\CmdUI\CmdUI.vcxproj", "{03208025-D5C2-426A-B0FA-251D4338F30C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ResizableLib", "..\..\ui\ResizableLib\ResizableLib.vcxproj", "{4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSUtil", "..\..\DSUtil\DSUtil.vcxproj", "{FC70988B-1AE5-4381-866D-4F405E28AC42}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseClasses", "..\..\filters\BaseClasses\BaseClasses.vcxproj", "{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Filters", "..\..\filters\Filters.vcxproj", "{273B3149-3192-4B75-A791-470320B90812}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kasumi", "..\..\thirdparty\VirtualDub\Kasumi\Kasumi.vcxproj", "{0D252872-7542-4232-8D02-53F9182AEE15}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "system", "..\..\thirdparty\VirtualDub\system\system.vcxproj", "{C2082189-3ECB-4079-91FA-89D3C8A305C0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MatroskaMuxer", "..\..\filters\muxer\MatroskaMuxer\MatroskaMuxer.vcxproj", "{67827491-8162-4039-9132-F934ABC836A0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Debug|Win32.Build.0 = Debug|Win32
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Release|Win32.ActiveCfg = Release|Win32
+ {B4E3D650-306F-4F9B-A7DD-2F70C2F69007}.Release|Win32.Build.0 = Release|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Debug|Win32.Build.0 = Debug|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Release|Win32.ActiveCfg = Release|Win32
+ {03208025-D5C2-426A-B0FA-251D4338F30C}.Release|Win32.Build.0 = Release|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Debug|Win32.Build.0 = Debug|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Release|Win32.ActiveCfg = Release|Win32
+ {4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}.Release|Win32.Build.0 = Release|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Debug|Win32.Build.0 = Debug|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Release|Win32.ActiveCfg = Release|Win32
+ {FC70988B-1AE5-4381-866D-4F405E28AC42}.Release|Win32.Build.0 = Release|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug|Win32.Build.0 = Debug|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release|Win32.ActiveCfg = Release|Win32
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release|Win32.Build.0 = Release|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Debug|Win32.ActiveCfg = Debug|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Debug|Win32.Build.0 = Debug|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Release|Win32.ActiveCfg = Release|Win32
+ {273B3149-3192-4B75-A791-470320B90812}.Release|Win32.Build.0 = Release|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Debug|Win32.Build.0 = Debug|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Release|Win32.ActiveCfg = Release|Win32
+ {0D252872-7542-4232-8D02-53F9182AEE15}.Release|Win32.Build.0 = Release|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Debug|Win32.Build.0 = Debug|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.ActiveCfg = Release|Win32
+ {C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.Build.0 = Release|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Debug|Win32.Build.0 = Debug|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Release|Win32.ActiveCfg = Release|Win32
+ {67827491-8162-4039-9132-F934ABC836A0}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/apps/asf2mkv/res/asf2mkv.manifest b/src/apps/asf2mkv/res/asf2mkv.manifest
index d65c9069a..908703404 100644
--- a/src/apps/asf2mkv/res/asf2mkv.manifest
+++ b/src/apps/asf2mkv/res/asf2mkv.manifest
@@ -1,22 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <assemblyIdentity
+ <!--assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.asf2mkv"
type="win32"
- />
- <description>Your app description here</description>
+ /-->
+ <description>asf2mkv</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
- processorArchitecture="X86"
+ processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
+ <!-- Identify the application security requirements -->
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="asInvoker"
+ uiAccess="false"
+ />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
</assembly>
diff --git a/src/apps/asf2mkv/stdafx.cpp b/src/apps/asf2mkv/stdafx.cpp
index 2cca76087..f258a4110 100644
--- a/src/apps/asf2mkv/stdafx.cpp
+++ b/src/apps/asf2mkv/stdafx.cpp
@@ -1,10 +1,8 @@
/*
* $Id$
- * stdafx.cpp : source file that includes just the standard includes
- * asf2mkv.pch will be the pre-compiled header
- * stdafx.obj will contain the pre-compiled type information
*
* (C) 2003-2005 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This file is part of asf2mkv.
*
@@ -24,5 +22,3 @@
*/
#include "stdafx.h"
-
-
diff --git a/src/apps/asf2mkv/stdafx.h b/src/apps/asf2mkv/stdafx.h
index e425658e8..4a3ab7abd 100644
--- a/src/apps/asf2mkv/stdafx.h
+++ b/src/apps/asf2mkv/stdafx.h
@@ -1,10 +1,8 @@
/*
* $Id$
- * stdafx.h : include file for standard system include files,
- * or project specific include files that are used frequently,
- * but are changed infrequently
*
* (C) 2003-2005 Gabest
+ * (C) 2006-2010 see AUTHORS
*
* This file is part of asf2mkv.
*
@@ -32,19 +30,7 @@
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
-#define WINVER 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
-#endif
-
-#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
-#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
-#endif
-
-#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
-#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
-#endif
-
-#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
-#define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
+#define WINVER 0x0600 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
@@ -54,7 +40,6 @@
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
-
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
@@ -69,6 +54,7 @@
#include "../../ui/ui.h"
#include "../../DSUtil/DSUtil.h"
-#include "../../filters/filters.h"
+#include "../../DSUtil/SharedInclude.h"
+#include "../../filters/Filters.h"
-#define ResStr(id) CString(MAKEINTRESOURCE(id)) \ No newline at end of file
+#define ResStr(id) CString(MAKEINTRESOURCE(id))
diff --git a/src/apps/mpcinfo/mpcinfo.vcproj b/src/apps/mpcinfo/mpcinfo.vcproj
index ba0fcfa01..c6283034b 100644
--- a/src/apps/mpcinfo/mpcinfo.vcproj
+++ b/src/apps/mpcinfo/mpcinfo.vcproj
@@ -21,7 +21,7 @@
OutputDirectory="$(SolutionDir)bin\$(ConfigurationName)_$(PlatformName)\"
ConfigurationType="2"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
- UseOfMFC="2"
+ UseOfMFC="1"
CharacterSet="2"
>
<Tool
@@ -45,9 +45,6 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\..\filters\BaseClasses"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
UsePrecompiledHeader="2"
/>
<Tool
@@ -64,12 +61,11 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib Delayimp.lib Winmm.lib"
+ AdditionalDependencies="Winmm.lib"
LinkIncremental="2"
- AdditionalLibraryDirectories="bin/lib/$(ConfigurationName)_$(PlatformName)"
- IgnoreDefaultLibraryNames="LIBCMTD.lib"
- ModuleDefinitionFile=".\mpcinfo.def"
- GenerateDebugInformation="true"
+ AdditionalLibraryDirectories=""
+ IgnoreDefaultLibraryNames=""
+ ModuleDefinitionFile="mpcinfo.def"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
@@ -125,12 +121,10 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\filters\BaseClasses"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
- DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -146,14 +140,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib Delayimp.lib Winmm.lib"
- AdditionalLibraryDirectories="bin/lib/$(ConfigurationName)_$(PlatformName)"
+ AdditionalDependencies="delayimp.lib Winmm.lib"
+ AdditionalLibraryDirectories=""
IgnoreDefaultLibraryNames=""
- ModuleDefinitionFile=".\mpcinfo.def"
+ ModuleDefinitionFile="mpcinfo.def"
DelayLoadDLLs="oleacc.dll"
SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\mpcinfo.lib"
TargetMachine="1"
/>
diff --git a/src/apps/mpcinfo/mpcinfo.vcxproj b/src/apps/mpcinfo/mpcinfo.vcxproj
index a8f70cec2..f86796f31 100644
--- a/src/apps/mpcinfo/mpcinfo.vcxproj
+++ b/src/apps/mpcinfo/mpcinfo.vcxproj
@@ -23,7 +23,7 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseOfMfc>Dynamic</UseOfMfc>
+ <UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -60,10 +60,6 @@
<ClCompile>
<AdditionalIncludeDirectories>..\..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -71,11 +67,8 @@
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;Delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>bin10\lib\$(Configuration)_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <IgnoreSpecificDefaultLibraries>LIBCMTD.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
- <ModuleDefinitionFile>.\mpcinfo.def</ModuleDefinitionFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalDependencies>Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>mpcinfo.def</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
@@ -90,12 +83,10 @@
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\filters\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -103,14 +94,11 @@
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;Delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>bin10\lib\$(Configuration)_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
- <ModuleDefinitionFile>.\mpcinfo.def</ModuleDefinitionFile>
+ <ModuleDefinitionFile>mpcinfo.def</ModuleDefinitionFile>
<DelayLoadDLLs>oleacc.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<SubSystem>Windows</SubSystem>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <DataExecutionPrevention>true</DataExecutionPrevention>
<ImportLibrary>$(OutDir)mpcinfo.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
</Link>
diff --git a/src/apps/mplayerc/AppSettings.cpp b/src/apps/mplayerc/AppSettings.cpp
new file mode 100644
index 000000000..5844d47da
--- /dev/null
+++ b/src/apps/mplayerc/AppSettings.cpp
@@ -0,0 +1,1676 @@
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
+ *
+ * This file is part of mplayerc.
+ *
+ * Mplayerc 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.
+ *
+ * Mplayerc 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 <atlsync.h>
+#include <Tlhelp32.h>
+#include "MainFrm.h"
+#include "../../DSUtil/DSUtil.h"
+#include "Struct.h"
+#include "FileVersionInfo.h"
+#include <psapi.h>
+#include "Ifo.h"
+#include "MiniDump.h"
+#include "SettingsDefines.h"
+#include "internal_filter_config.h"
+
+#include "Monitors.h"
+#include "AppSettings.h"
+// Settings
+
+CAppSettings::CAppSettings()
+ : fInitialized(false)
+ , MRU(0, _T("Recent File List"), _T("File%d"), 20)
+ , MRUDub(0, _T("Recent Dub List"), _T("Dub%d"), 20)
+ , hAccel(NULL)
+ , nCmdlnWebServerPort(-1)
+ , ShowDebugInfo(false)
+{
+}
+
+
+
+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_OPENDVD, '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_SAVE_COPY, 0, FVIRTKEY|FNOINVERT, IDS_AG_SAVE_AS));
+ 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_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_CLOSEPLAYLIST, '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::LDOWN));
+ 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|FNOINVERT, IDS_AG_FRAMESTEP));
+ ADDCMD((ID_PLAY_FRAMESTEPCANCEL, VK_LEFT, FVIRTKEY|FNOINVERT, IDS_MPLAYERC_16));
+ ADDCMD((ID_PLAY_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|FCONTROL|FNOINVERT, IDS_MPLAYERC_25));
+ ADDCMD((ID_PLAY_SEEKBACKWARDMED, VK_LEFT, FVIRTKEY|FCONTROL|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_NAVIGATE_SKIPFORWARD, VK_NEXT, FVIRTKEY|FNOINVERT, IDS_AG_NEXT, APPCOMMAND_MEDIA_NEXTTRACK, wmcmd::X2DOWN));
+ ADDCMD((ID_NAVIGATE_SKIPBACK, VK_PRIOR, FVIRTKEY|FNOINVERT, IDS_AG_PREVIOUS, APPCOMMAND_MEDIA_PREVIOUSTRACK, wmcmd::X1DOWN));
+ ADDCMD((ID_NAVIGATE_SKIPFORWARDPLITEM, VK_NEXT, FVIRTKEY|FCONTROL|FNOINVERT, IDS_MPLAYERC_33));
+ ADDCMD((ID_NAVIGATE_SKIPBACKPLITEM, VK_PRIOR, FVIRTKEY|FCONTROL|FNOINVERT, IDS_MPLAYERC_34));
+ 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_SHADEREDITOR, '9', FVIRTKEY|FCONTROL|FNOINVERT, IDS_AG_TOGGLE_SHADER));
+ 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|FCONTROL|FNOINVERT, IDS_AG_FULLSCREEN, 0, wmcmd::LDBLCLK));
+ ADDCMD((ID_VIEW_FULLSCREEN_SECONDARY, VK_RETURN, FVIRTKEY|FALT|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_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, 'P', 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, APPCOMMAND_VOLUME_UP, wmcmd::WUP));
+ ADDCMD((ID_VOLUME_DOWN, VK_DOWN, FVIRTKEY|FNOINVERT, IDS_AG_VOLUME_DOWN, APPCOMMAND_VOLUME_DOWN, wmcmd::WDOWN));
+ ADDCMD((ID_VOLUME_MUTE, 'M', FVIRTKEY|FCONTROL|FNOINVERT, IDS_AG_VOLUME_MUTE, APPCOMMAND_VOLUME_MUTE));
+ 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_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, VK_SPACE, FVIRTKEY|FALT|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, 0, FVIRTKEY|FNOINVERT, IDS_MPLAYERC_77, 0, 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_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_SHADER_TOGGLE, 'P', FVIRTKEY|FCONTROL|FNOINVERT, IDS_AT_TOGGLE_SHADER));
+ ADDCMD((ID_SHADER_TOGGLESCREENSPACE, 'P', FVIRTKEY|FCONTROL|FALT|FNOINVERT, IDS_AT_TOGGLE_SHADERSCREENSPACE));
+ ADDCMD((ID_D3DFULLSCREEN_TOGGLE, 'F', FVIRTKEY|FCONTROL|FNOINVERT, IDS_MPLAYERC_99));
+ ADDCMD((ID_GOTO_PREV_SUB, 'Y', FVIRTKEY|FNOINVERT, IDS_MPLAYERC_100, APPCOMMAND_BROWSER_BACKWARD));
+ ADDCMD((ID_GOTO_NEXT_SUB, 'U', FVIRTKEY|FNOINVERT, IDS_MPLAYERC_101, APPCOMMAND_BROWSER_FORWARD));
+ 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, 'C', 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_FILE_SAVE_THUMBNAILS, 0, FVIRTKEY|FNOINVERT, IDS_FILE_SAVE_THUMBNAILS));
+
+ 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));
+
+ ResetPositions();
+
+#undef ADDCMD
+}
+
+CAppSettings::~CAppSettings()
+{
+ if(hAccel)
+ DestroyAcceleratorTable(hAccel);
+}
+
+bool CAppSettings::IsD3DFullscreen()
+{
+ if(nCLSwitches&CLSW_D3DFULLSCREEN)
+ return true;
+ else
+ return fD3DFullscreen;
+}
+CString CAppSettings::SelectedAudioRenderer()
+{
+ CString strResult;
+ if(AfxGetMyApp()->m_AudioRendererDisplayName_CL != _T(""))
+ strResult = AfxGetMyApp()->m_AudioRendererDisplayName_CL;
+ else
+ strResult = AfxGetAppSettings().AudioRendererDisplayName;
+
+ return strResult;
+}
+
+void CAppSettings::ResetPositions()
+{
+ nCurrentDvdPosition = -1;
+ nCurrentFilePosition = -1;
+}
+
+DVD_POSITION* CAppSettings::CurrentDVDPosition()
+{
+ if (nCurrentDvdPosition != -1)
+ return &DvdPosition[nCurrentDvdPosition];
+ else
+ return NULL;
+}
+
+bool CAppSettings::NewDvd(ULONGLONG llDVDGuid)
+{
+ int i;
+
+ // Recherche si la position du DVD est connue
+ for (i=0; i<MAX_DVD_POSITION; i++)
+ {
+ if (DvdPosition[i].llDVDGuid == llDVDGuid)
+ {
+ nCurrentDvdPosition = i;
+ return false;
+ }
+ }
+
+ // Si DVD inconnu, le mettre en premier
+ for (int i=MAX_DVD_POSITION-1; i>0; i--)
+ memcpy (&DvdPosition[i], &DvdPosition[i-1], sizeof(DVD_POSITION));
+ DvdPosition[0].llDVDGuid = llDVDGuid;
+ nCurrentDvdPosition = 0;
+ return true;
+}
+
+FILE_POSITION* CAppSettings::CurrentFilePosition()
+{
+ if (nCurrentFilePosition != -1)
+ return &FilePosition[nCurrentFilePosition];
+ else
+ return NULL;
+}
+
+bool CAppSettings::NewFile(LPCTSTR strFileName)
+{
+ int i;
+
+ // Recherche si la position du fichier est connue
+ for (i=0; i<MAX_FILE_POSITION; i++)
+ {
+ if (FilePosition[i].strFile == strFileName)
+ {
+ nCurrentFilePosition = i;
+ return false;
+ }
+ }
+
+ // Si fichier inconnu, le mettre en premier
+ for (int i=MAX_FILE_POSITION-1; i>0; i--)
+ {
+ FilePosition[i].strFile = FilePosition[i-1].strFile;
+ FilePosition[i].llPosition = FilePosition[i-1].llPosition;
+ }
+ FilePosition[0].strFile = strFileName;
+ FilePosition[0].llPosition = 0;
+ nCurrentFilePosition = 0;
+ return true;
+}
+
+
+void CAppSettings::DeserializeHex (LPCTSTR strVal, BYTE* pBuffer, int nBufSize)
+{
+ long lRes;
+
+ for (int i=0; i<nBufSize; i++)
+ {
+ _stscanf_s (strVal+(i*2), _T("%02x"), &lRes);
+ pBuffer[i] = (BYTE)lRes;
+ }
+}
+
+CString CAppSettings::SerializeHex (BYTE* pBuffer, int nBufSize)
+{
+ CString strTemp;
+ CString strResult;
+
+ for (int i=0; i<nBufSize; i++)
+ {
+ strTemp.Format (_T("%02x"), pBuffer[i]);
+ strResult += strTemp;
+ }
+
+ return strResult;
+}
+
+void CAppSettings::UpdateData(bool fSave)
+{
+ CWinApp* pApp = AfxGetApp();
+ ASSERT(pApp);
+
+ UINT len;
+ BYTE* ptr = NULL;
+
+ if(fSave)
+ {
+ if(!fInitialized) return;
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECAPTIONMENU, fHideCaptionMenu);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIDENAVIGATION, fHideNavigation);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_CONTROLSTATE, nCS);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DEFAULTVIDEOFRAME, iDefaultVideoSize);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPASPECTRATIO, fKeepAspectRatio);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_COMPMONDESKARDIFF, fCompMonDeskARDiff);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VOLUME, nVolume);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_BALANCE, nBalance);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MUTE, fMute);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOOPNUM, nLoops);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOOP, fLoopForever);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REWIND, fRewind);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ZOOM, iZoomLevel);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MULTIINST, fAllowMultipleInst);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTSTYLE, iTitleBarTextStyle);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTTITLE, fTitleBarTextTitle);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ONTOP, iOnTop);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TRAYICON, fTrayIcon);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOZOOM, fRememberZoomLevel);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLS, fShowBarsWhenFullScreen);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLSTIMEOUT, nShowBarsWhenFullScreenTimeOut);
+ pApp->WriteProfileBinary(IDS_R_SETTINGS, IDS_RS_FULLSCREENRES, (BYTE*)&AutoChangeFullscrRes, sizeof(AutoChangeFullscrRes));
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_EXITFULLSCREENATTHEEND, fExitFullScreenAtTheEnd);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("RestoreResAfterExit"), fRestoreResAfterExit);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWPOS, fRememberWindowPos);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWSIZE, fRememberWindowSize);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SNAPTODESKTOPEDGES, fSnapToDesktopEdges);
+ pApp->WriteProfileBinary(IDS_R_SETTINGS, IDS_RS_LASTWINDOWRECT, (BYTE*)&rcLastWindowPos, sizeof(rcLastWindowPos));
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LASTWINDOWTYPE, lastWindowType);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_X, AspectRatio.cx);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_Y, AspectRatio.cy);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPHISTORY, fKeepHistory);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DSVIDEORENDERERTYPE, iDSVideoRendererType);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_RMVIDEORENDERERTYPE, iRMVideoRendererType);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_QTVIDEORENDERERTYPE, iQTVideoRendererType);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_APSURACEFUSAGE, m_RenderersSettings.iAPSurfaceUsage);
+// pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VMRSYNCFIX, m_RenderersSettings.fVMRSyncFix);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DX9_RESIZER, m_RenderersSettings.iDX9Resizer);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERMODE, m_RenderersSettings.fVMR9MixerMode);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERYUV, m_RenderersSettings.fVMR9MixerYUV);
+
+ CRenderersSettings::CRendererSettingsEVR& rendererSettings = m_RenderersSettings.m_RenderSettings;
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRAlternateVSync"), rendererSettings.fVMR9AlterativeVSync);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRVSyncOffset"), rendererSettings.iVMR9VSyncOffset);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRVSyncAccurate2"), rendererSettings.iVMR9VSyncAccurate);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFullscreenGUISupport"), rendererSettings.iVMR9FullscreenGUISupport);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRVSync"), rendererSettings.iVMR9VSync);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRDisableDesktopComposition"), rendererSettings.iVMRDisableDesktopComposition);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFullFloatingPointProcessing"), rendererSettings.iVMR9FullFloatingPointProcessing);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementEnable"), rendererSettings.iVMR9ColorManagementEnable);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementInput"), rendererSettings.iVMR9ColorManagementInput);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementAmbientLight"), rendererSettings.iVMR9ColorManagementAmbientLight);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementIntent"), rendererSettings.iVMR9ColorManagementIntent);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVROutputRange"), rendererSettings.iEVROutputRange);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVRHighColorRes"), rendererSettings.iEVRHighColorResolution);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVRForceInputHighColorRes"), rendererSettings.iEVRForceInputHighColorResolution);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVREnableFrameTimeCorrection"), rendererSettings.iEVREnableFrameTimeCorrection);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUBeforeVSync"), rendererSettings.iVMRFlushGPUBeforeVSync);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUAfterPresent"), rendererSettings.iVMRFlushGPUAfterPresent);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUWait"), rendererSettings.iVMRFlushGPUWait);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SynchronizeClock"), rendererSettings.bSynchronizeVideo);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SynchronizeDisplay"), rendererSettings.bSynchronizeDisplay);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SynchronizeNearest"), rendererSettings.bSynchronizeNearest);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("LineDelta"), rendererSettings.iLineDelta);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("ColumnDelta"), rendererSettings.iColumnDelta);
+
+ pApp->WriteProfileBinary(IDS_R_SETTINGS, _T("CycleDelta"), (LPBYTE)&(rendererSettings.fCycleDelta), sizeof(rendererSettings.fCycleDelta));
+ pApp->WriteProfileBinary(IDS_R_SETTINGS, _T("TargetSyncOffset"), (LPBYTE)&(rendererSettings.fTargetSyncOffset), sizeof(rendererSettings.fTargetSyncOffset));
+ pApp->WriteProfileBinary(IDS_R_SETTINGS, _T("ControlLimit"), (LPBYTE)&(rendererSettings.fControlLimit), sizeof(rendererSettings.fControlLimit));
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("ResetDevice"), m_RenderersSettings.fResetDevice);
+
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_AUDIORENDERERTYPE, CString(AudioRendererDisplayName));
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADAUDIO, fAutoloadAudio);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADSUBTITLES, fAutoloadSubtitles);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANGORDER, CString(m_subtitlesLanguageOrder));
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOSLANGORDER, CString(m_audiosLanguageOrder));
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_BLOCKVSFILTER, fBlockVSFilter);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWORKERTHREADFOROPENING, fEnableWorkerThreadForOpening);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REPORTFAILEDPINS, fReportFailedPins);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_DVDPATH, sDVDPath);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_USEDVDPATH, fUseDVDPath);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MENULANG, idMenuLang);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOLANG, idAudioLang);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANG, idSubtitlesLang);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOSPEAKERCONF, fAutoSpeakerConf);
+ CString style;
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SPLOGFONT, style <<= subdefstyle);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPOVERRIDEPLACEMENT, fOverridePlacement);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPHORPOS, nHorPos);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPVERPOS, nVerPos);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPCSIZE, m_RenderersSettings.nSPCSize);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPCMAXRES, m_RenderersSettings.nSPCMaxRes);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SUBDELAYINTERVAL, nSubDelayInterval);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_POW2TEX, m_RenderersSettings.fSPCPow2Tex);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SPCAllowAnimationWhenBuffering"), m_RenderersSettings.fSPCAllowAnimationWhenBuffering);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLESUBTITLES, fEnableSubtitles);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_PRIORITIZEEXTERNALSUBTITLES, fPrioritizeExternalSubtitles);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLEINTERNALSUBTITLES, fDisableInternalSubtitles);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SUBTITLEPATHS, szSubtitlePaths);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_USEDEFAULTSUBTITLESSTYLE, fUseDefaultSubtitlesStyle);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOSWITCHER, fEnableAudioSwitcher);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOTIMESHIFT, fAudioTimeShift);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOTIMESHIFT, tAudioTimeShift);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DOWNSAMPLETO441, fDownSampleTo441);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_CUSTOMCHANNELMAPPING, fCustomChannelMapping);
+ pApp->WriteProfileBinary(IDS_R_SETTINGS, IDS_RS_SPEAKERTOCHANNELMAPPING, (BYTE*)pSpeakerToChannelMap, sizeof(pSpeakerToChannelMap));
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZE, fAudioNormalize);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZERECOVER, fAudioNormalizeRecover);
+
+ CString strTemp;
+ strTemp.Format( _T("%f"), AudioBoost);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOBOOST, strTemp);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPEAKERCHANNELS, fnChannels);
+
+ // Multi-monitor code
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_FULLSCREENMONITOR, CString(f_hmonitor));
+ // Prevent Minimize when in Fullscreen mode on non default monitor
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_PREVENT_MINIMIZE, m_fPreventMinimize);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_WIN7TASKBAR, m_fUseWin7TaskBar);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_EXIT_AFTER_PB, m_fExitAfterPlayback);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NEXT_AFTER_PB, m_fNextInDirAfterPlayback);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NO_SEARCH_IN_FOLDER, m_fDontUseSearchInFolder);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_OSD_SIZE, nOSD_Size);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_MPC_OSD_FONT, m_OSD_Font);
+
+ // Associated types with icon or not...
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ASSOCIATED_WITH_ICON, fAssociatedWithIcons);
+ // Last Open Dir
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_LAST_OPEN_DIR, f_lastOpenDir);
+
+
+ // CASIMIR666 : nouveau settings
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_D3DFULLSCREEN, fD3DFullscreen);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MONITOR_AUTOREFRESHRATE, fMonitorAutoRefreshRate);
+
+ strTemp.Format (_T("%f"), dBrightness);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_BRIGHTNESS, strTemp);
+ strTemp.Format (_T("%f"), dContrast);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_CONTRAST, strTemp);
+ strTemp.Format (_T("%f"), dHue);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_HUE, strTemp);
+ strTemp.Format (_T("%f"), dSaturation);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_SATURATION, strTemp);
+
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLIST, strShaderList);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLISTSCREENSPACE, strShaderListScreenSpace);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADER, (int)m_bToggleShader);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADERSSCREENSPACE, (int)m_bToggleShaderScreenSpace);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_EVR_BUFFERS, m_RenderersSettings.iEvrBuffers);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SHOWOSD, (int)fShowOSD);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEEDLEDITOR, (int)fEnableEDLEditor);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LANGUAGE, (int)iLanguage);
+
+ // Save analog capture settings
+ pApp->WriteProfileInt (IDS_R_SETTINGS, IDS_RS_DEFAULT_CAPTURE, iDefaultCaptureDevice);
+ pApp->WriteProfileString(IDS_RS_CAPTURE, IDS_RS_VIDEO_DISP_NAME, strAnalogVideo);
+ pApp->WriteProfileString(IDS_RS_CAPTURE, IDS_RS_AUDIO_DISP_NAME, strAnalogAudio);
+ pApp->WriteProfileInt (IDS_RS_CAPTURE, IDS_RS_COUNTRY, iAnalogCountry);
+
+ // Save digital capture settings (BDA)
+ pApp->WriteProfileString(IDS_RS_DVB, IDS_RS_BDA_NETWORKPROVIDER, BDANetworkProvider);
+ pApp->WriteProfileString(IDS_RS_DVB, IDS_RS_BDA_TUNER, BDATuner);
+ pApp->WriteProfileString(IDS_RS_DVB, IDS_RS_BDA_RECEIVER, BDAReceiver);
+ pApp->WriteProfileInt(IDS_RS_DVB, IDS_RS_DVB_LAST_CHANNEL, DVBLastChannel);
+
+ int iChannel = 0;
+ POSITION pos = DVBChannels.GetHeadPosition();
+ while (pos)
+ {
+ CString strTemp;
+ CString strChannel;
+ CDVBChannel& Channel = DVBChannels.GetNext(pos);
+ strTemp.Format(_T("%d"), iChannel);
+ pApp->WriteProfileString(IDS_RS_DVB, strTemp, Channel.ToString());
+ iChannel++;
+ }
+
+
+ // Position de lecture des derniers DVD's
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DVDPOS, (int)fRememberDVDPos);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_FILEPOS, (int)fRememberFilePos);
+ if (fKeepHistory)
+ {
+ for (int i=0; i<MAX_DVD_POSITION; i++)
+ {
+ CString strDVDPos;
+ CString strValue;
+
+ strDVDPos.Format (_T("DVD Position %d"), i);
+ strValue = SerializeHex((BYTE*)&DvdPosition[i], sizeof(DVD_POSITION));
+ pApp->WriteProfileString(IDS_R_SETTINGS, strDVDPos, strValue);
+ }
+
+ // Position de lecture des derniers fichiers
+ for (int i=0; i<MAX_FILE_POSITION; i++)
+ {
+ CString strFilePos;
+ CString strValue;
+
+ strFilePos.Format (_T("File Name %d"), i);
+ pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, FilePosition[i].strFile);
+ strFilePos.Format (_T("File Position %d"), i);
+ strValue.Format (_T("%I64d"), FilePosition[i].llPosition);
+ pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, strValue);
+ }
+ }
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LASTFULLSCREEN, (int)fLastFullScreen);
+ // CASIMIR666 : fin nouveaux settings
+
+ {
+ for(int i = 0; ; i++)
+ {
+ CString key;
+ key.Format(_T("%s\\%04d"), IDS_R_FILTERS, i);
+ int j = pApp->GetProfileInt(key, _T("Enabled"), -1);
+ pApp->WriteProfileString(key, NULL, NULL);
+ if(j < 0) break;
+ }
+ pApp->WriteProfileString(IDS_R_FILTERS, NULL, NULL);
+
+ POSITION pos = filters.GetHeadPosition();
+ for(int i = 0; pos; i++)
+ {
+ FilterOverride* f = filters.GetNext(pos);
+
+ if(f->fTemporary)
+ continue;
+
+ CString key;
+ key.Format(_T("%s\\%04d"), IDS_R_FILTERS, i);
+
+ pApp->WriteProfileInt(key, _T("SourceType"), (int)f->type);
+ pApp->WriteProfileInt(key, _T("Enabled"), (int)!f->fDisabled);
+ if(f->type == FilterOverride::REGISTERED)
+ {
+ pApp->WriteProfileString(key, _T("DisplayName"), CString(f->dispname));
+ pApp->WriteProfileString(key, _T("Name"), f->name);
+ }
+ else if(f->type == FilterOverride::EXTERNAL)
+ {
+ pApp->WriteProfileString(key, _T("Path"), f->path);
+ pApp->WriteProfileString(key, _T("Name"), f->name);
+ pApp->WriteProfileString(key, _T("CLSID"), CStringFromGUID(f->clsid));
+ }
+ POSITION pos2 = f->backup.GetHeadPosition();
+ for(int i = 0; pos2; i++)
+ {
+ CString val;
+ val.Format(_T("org%04d"), i);
+ pApp->WriteProfileString(key, val, CStringFromGUID(f->backup.GetNext(pos2)));
+ }
+ pos2 = f->guids.GetHeadPosition();
+ for(int i = 0; pos2; i++)
+ {
+ CString val;
+ val.Format(_T("mod%04d"), i);
+ pApp->WriteProfileString(key, val, CStringFromGUID(f->guids.GetNext(pos2)));
+ }
+ pApp->WriteProfileInt(key, _T("LoadType"), f->iLoadType);
+ pApp->WriteProfileInt(key, _T("Merit"), f->dwMerit);
+ }
+ }
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_INTREALMEDIA, fIntRealMedia);
+ // pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIARENDERLESS, fRealMediaRenderless);
+ // pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_QUICKTIMERENDERER, iQuickTimeRenderer);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIAFPS, *((DWORD*)&RealMediaQuickTimeFPS));
+
+ pApp->WriteProfileString(IDS_R_SETTINGS _T("\\") IDS_RS_PNSPRESETS, NULL, NULL);
+ for(int i = 0, j = m_pnspresets.GetCount(); i < j; i++)
+ {
+ CString str;
+ str.Format(_T("Preset%d"), i);
+ pApp->WriteProfileString(IDS_R_SETTINGS _T("\\") IDS_RS_PNSPRESETS, str, m_pnspresets[i]);
+ }
+
+ pApp->WriteProfileString(IDS_R_COMMANDS, NULL, NULL);
+ pos = wmcmds.GetHeadPosition();
+ for(int i = 0; pos; )
+ {
+ wmcmd& wc = wmcmds.GetNext(pos);
+ if(wc.IsModified())
+ {
+ CString str;
+ str.Format(_T("CommandMod%d"), i);
+ CString str2;
+ str2.Format(_T("%d %x %x %s %d %d %d"),
+ wc.cmd, wc.fVirt, wc.key,
+ _T("\"") + CString(wc.rmcmd) + _T("\""), wc.rmrepcnt,
+ wc.mouse, wc.appcmd);
+ pApp->WriteProfileString(IDS_R_COMMANDS, str, str2);
+ i++;
+ }
+ }
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WINLIRC, fWinLirc);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WINLIRCADDR, WinLircAddr);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_UICE, fUIce);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_UICEADDR, UIceAddr);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_GLOBALMEDIA, fGlobalMedia);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLEXPTOOLBARS, fDisableXPToolbars);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_USEWMASFREADER, fUseWMASFReader);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTS, nJumpDistS);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTM, nJumpDistM);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTL, nJumpDistL);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LIMITWINDOWPROPORTIONS, fLimitWindowProportions);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYMSN, fNotifyMSN);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYGTSDLL, fNotifyGTSdll);
+
+ Formats.UpdateData(true);
+
+ pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_SRCFILTERS, SrcFilters|~(SRC_LAST-1));
+ pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_TRAFILTERS, TraFilters|~(TRA_LAST-1));
+ pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_DXVAFILTERS, DXVAFilters|~(DXVA_LAST-1));
+ pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_FFMPEGFILTERS, FFmpegFilters|~(FFM_LAST-1));
+
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_LOGOFILE, logofn);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOID, logoid);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOEXT, logoext);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECDROMSSUBMENU, fHideCDROMsSubMenu);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_PRIORITY, priority);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LAUNCHFULLSCREEN, launchfullscreen);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWEBSERVER, fEnableWebServer);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPORT, nWebServerPort);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPRINTDEBUGINFO, fWebServerPrintDebugInfo);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERUSECOMPRESSION, fWebServerUseCompression);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERLOCALHOSTONLY, fWebServerLocalhostOnly);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WEBROOT, WebRoot);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WEBDEFINDEX, WebDefIndex);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WEBSERVERCGI, WebServerCGI);
+
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTPATH, SnapShotPath);
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTEXT, SnapShotExt);
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBROWS, ThumbRows);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBCOLS, ThumbCols);
+ pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBWIDTH, ThumbWidth);
+
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_ISDB, ISDb);
+
+ pApp->WriteProfileString(IDS_R_SETTINGS, IDS_D3D9RENDERDEVICE, D3D9RenderDevice);
+
+ pApp->WriteProfileString(_T("Shaders"), NULL, NULL);
+ pApp->WriteProfileInt(_T("Shaders"), _T("Initialized"), 1);
+ pApp->WriteProfileString(_T("Shaders"), _T("Combine"), m_shadercombine);
+ pApp->WriteProfileString(_T("Shaders"), _T("CombineScreenSpace"), m_shadercombineScreenSpace);
+
+
+ pos = m_shaders.GetHeadPosition();
+ for(int i = 0; pos; i++)
+ {
+ const Shader& s = m_shaders.GetNext(pos);
+
+ if(!s.label.IsEmpty())
+ {
+ CString index;
+ index.Format(_T("%d"), i);
+ CString srcdata = s.srcdata;
+ srcdata.Replace(_T("\r"), _T(""));
+ srcdata.Replace(_T("\n"), _T("\\n"));
+ srcdata.Replace(_T("\t"), _T("\\t"));
+ AfxGetApp()->WriteProfileString(_T("Shaders"), index, s.label + _T("|") + s.target + _T("|") + srcdata);
+ }
+ }
+
+ if(pApp->m_pszRegistryKey)
+ {
+ // WINBUG: on win2k this would crash WritePrivateProfileString
+ pApp->WriteProfileInt(_T(""), _T(""), pApp->GetProfileInt(_T(""), _T(""), 0)?0:1);
+ }
+ }
+ else
+ {
+ if(fInitialized) return;
+
+ iDXVer = 0;
+ CRegKey dxver;
+ if(ERROR_SUCCESS == dxver.Open(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\DirectX"), KEY_READ))
+ {
+ CString str;
+ ULONG len = 64;
+ if(ERROR_SUCCESS == dxver.QueryStringValue(_T("Version"), str.GetBuffer(len), &len))
+ {
+ str.ReleaseBuffer(len);
+ int ver[4];
+ _stscanf_s(str, _T("%d.%d.%d.%d"), ver+0, ver+1, ver+2, ver+3);
+ iDXVer = ver[1];
+ }
+ }
+
+ // Set interface language first!
+ iLanguage = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LANGUAGE, CMPlayerCApp::GetDefLanguage());
+ if (iLanguage != 0) CMPlayerCApp::SetLanguage(iLanguage);
+ CreateCommands();
+
+ fHideCaptionMenu = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECAPTIONMENU, 0);
+ fHideNavigation = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIDENAVIGATION, 0);
+ nCS = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_CONTROLSTATE, CS_SEEKBAR|CS_TOOLBAR|CS_STATUSBAR);
+ iDefaultVideoSize = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DEFAULTVIDEOFRAME, DVS_FROMINSIDE);
+ fKeepAspectRatio = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPASPECTRATIO, TRUE);
+ fCompMonDeskARDiff = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_COMPMONDESKARDIFF, FALSE);
+ nVolume = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VOLUME, 100);
+ nBalance = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_BALANCE, 0);
+ fMute = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MUTE, 0);
+ nLoops = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOOPNUM, 1);
+ fLoopForever = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOOP, 0);
+ fRewind = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REWIND, FALSE);
+ iZoomLevel = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ZOOM, 1);
+ iDSVideoRendererType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DSVIDEORENDERERTYPE, (IsVistaOrAbove() ? (CMPlayerCApp::HasEVR() ? VIDRNDT_DS_EVR_CUSTOM : VIDRNDT_DS_DEFAULT) : VIDRNDT_DS_OVERLAYMIXER) );
+ iRMVideoRendererType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_RMVIDEORENDERERTYPE, VIDRNDT_RM_DEFAULT);
+ iQTVideoRendererType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_QTVIDEORENDERERTYPE, VIDRNDT_QT_DEFAULT);
+
+ m_RenderersSettings.iAPSurfaceUsage = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_APSURACEFUSAGE, (IsVistaOrAbove() ? VIDRNDT_AP_TEXTURE3D : VIDRNDT_AP_TEXTURE2D));
+// m_RenderersSettings.fVMRSyncFix = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VMRSYNCFIX, FALSE);
+ m_RenderersSettings.iDX9Resizer = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DX9_RESIZER, 1);
+ m_RenderersSettings.fVMR9MixerMode = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERMODE, TRUE);
+ m_RenderersSettings.fVMR9MixerYUV = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERYUV, FALSE);
+
+ CRenderersSettings::CRendererSettingsEVR& rendererSettings = m_RenderersSettings.m_RenderSettings;
+ CRenderersSettings::CRendererSettingsEVR DefaultSettings;
+ rendererSettings.fVMR9AlterativeVSync = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRAlternateVSync"), DefaultSettings.fVMR9AlterativeVSync);
+ rendererSettings.iVMR9VSyncOffset = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRVSyncOffset"), DefaultSettings.iVMR9VSyncOffset);
+ rendererSettings.iVMR9VSyncAccurate = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRVSyncAccurate2"), DefaultSettings.iVMR9VSyncAccurate);
+ rendererSettings.iVMR9FullscreenGUISupport = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFullscreenGUISupport"), DefaultSettings.iVMR9FullscreenGUISupport);
+ rendererSettings.iEVRHighColorResolution = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVRHighColorRes"), DefaultSettings.iEVRHighColorResolution);
+ rendererSettings.iEVRForceInputHighColorResolution = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVRForceInputHighColorRes"), DefaultSettings.iEVRForceInputHighColorResolution);
+ rendererSettings.iEVREnableFrameTimeCorrection = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVREnableFrameTimeCorrection"), DefaultSettings.iEVREnableFrameTimeCorrection);
+ rendererSettings.iVMR9VSync = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRVSync"), DefaultSettings.iVMR9VSync);
+ rendererSettings.iVMRDisableDesktopComposition = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRDisableDesktopComposition"), DefaultSettings.iVMRDisableDesktopComposition);
+ rendererSettings.iVMR9FullFloatingPointProcessing = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFullFloatingPointProcessing"), DefaultSettings.iVMR9FullFloatingPointProcessing);
+
+ rendererSettings.iVMR9ColorManagementEnable = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementEnable"), DefaultSettings.iVMR9ColorManagementEnable);
+ rendererSettings.iVMR9ColorManagementInput = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementInput"), DefaultSettings.iVMR9ColorManagementInput);
+ rendererSettings.iVMR9ColorManagementAmbientLight = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementAmbientLight"), DefaultSettings.iVMR9ColorManagementAmbientLight);
+ rendererSettings.iVMR9ColorManagementIntent = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementIntent"), DefaultSettings.iVMR9ColorManagementIntent);
+
+ rendererSettings.iEVROutputRange = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVROutputRange"), DefaultSettings.iEVROutputRange);
+
+ rendererSettings.iVMRFlushGPUBeforeVSync = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUBeforeVSync"), DefaultSettings.iVMRFlushGPUBeforeVSync);
+ rendererSettings.iVMRFlushGPUAfterPresent = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUAfterPresent"), DefaultSettings.iVMRFlushGPUAfterPresent);
+ rendererSettings.iVMRFlushGPUWait = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUWait"), DefaultSettings.iVMRFlushGPUWait);
+
+ rendererSettings.bSynchronizeVideo = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SynchronizeClock"), DefaultSettings.bSynchronizeVideo);
+ rendererSettings.bSynchronizeDisplay = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SynchronizeDisplay"), DefaultSettings.bSynchronizeDisplay);
+ rendererSettings.bSynchronizeNearest = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SynchronizeNearest"), DefaultSettings.bSynchronizeNearest);
+ rendererSettings.iLineDelta = pApp->GetProfileInt(IDS_R_SETTINGS, _T("LineDelta"), DefaultSettings.iLineDelta);
+ rendererSettings.iColumnDelta = pApp->GetProfileInt(IDS_R_SETTINGS, _T("ColumnDelta"), DefaultSettings.iColumnDelta);
+
+ double *dPtr;
+ UINT dSize;
+ if(pApp->GetProfileBinary(IDS_R_SETTINGS, _T("CycleDelta"), (LPBYTE*)&dPtr, &dSize))
+ {
+ rendererSettings.fCycleDelta = *dPtr;
+ delete [] dPtr;
+ }
+
+ if(pApp->GetProfileBinary(IDS_R_SETTINGS, _T("TargetSyncOffset"), (LPBYTE*)&dPtr, &dSize))
+ {
+ rendererSettings.fTargetSyncOffset = *dPtr;
+ delete [] dPtr;
+ }
+ if(pApp->GetProfileBinary(IDS_R_SETTINGS, _T("ControlLimit"), (LPBYTE*)&dPtr, &dSize))
+ {
+ rendererSettings.fControlLimit = *dPtr;
+ delete [] dPtr;
+ }
+
+ m_RenderersSettings.fResetDevice = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("ResetDevice"), TRUE);
+
+ AudioRendererDisplayName = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_AUDIORENDERERTYPE, _T(""));
+ fAutoloadAudio = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADAUDIO, TRUE);
+ fAutoloadSubtitles = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADSUBTITLES, !CMPlayerCApp::IsVSFilterInstalled() || (IsVistaOrAbove() && CMPlayerCApp::HasEVR()) );
+ m_subtitlesLanguageOrder = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANGORDER, _T(""));
+ m_audiosLanguageOrder = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOSLANGORDER, _T(""));
+ fBlockVSFilter = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_BLOCKVSFILTER, TRUE);
+ fEnableWorkerThreadForOpening = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWORKERTHREADFOROPENING, TRUE);
+ fReportFailedPins = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REPORTFAILEDPINS, TRUE);
+ fAllowMultipleInst = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MULTIINST, 0);
+ iTitleBarTextStyle = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTSTYLE, 1);
+ fTitleBarTextTitle = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTTITLE, FALSE);
+ iOnTop = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ONTOP, 0);
+ fTrayIcon = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TRAYICON, 0);
+ fRememberZoomLevel = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOZOOM, 1);
+ fShowBarsWhenFullScreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLS, 1);
+ nShowBarsWhenFullScreenTimeOut = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLSTIMEOUT, 0);
+
+ //Multi-monitor code
+ f_hmonitor = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_FULLSCREENMONITOR, _T(""));
+ // Prevent Minimize when in Fullscreen mode on non default monitor
+ m_fPreventMinimize = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_PREVENT_MINIMIZE, 0);
+ m_fUseWin7TaskBar = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_WIN7TASKBAR, 1);
+ m_fExitAfterPlayback = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_EXIT_AFTER_PB, 0);
+ m_fNextInDirAfterPlayback = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NEXT_AFTER_PB, 0);
+ m_fDontUseSearchInFolder = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NO_SEARCH_IN_FOLDER, 0);
+ nOSD_Size = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_OSD_SIZE, 20);
+ m_OSD_Font= pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_MPC_OSD_FONT, _T("Arial"));
+
+ // Associated types with icon or not...
+ fAssociatedWithIcons = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ASSOCIATED_WITH_ICON, 1);
+ // Last Open Dir
+ f_lastOpenDir = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_LAST_OPEN_DIR, _T("C:\\"));
+
+ if ( pApp->GetProfileBinary(IDS_R_SETTINGS, IDS_RS_FULLSCREENRES, &ptr, &len) )
+ {
+ if ( len == sizeof(AChFR) )
+ memcpy( &AutoChangeFullscrRes, ptr, sizeof(AChFR) );
+ else
+ AutoChangeFullscrRes.bEnabled = false;
+ delete [] ptr;
+ }
+ else
+ {
+ AutoChangeFullscrRes.bEnabled = false;
+ }
+
+ fExitFullScreenAtTheEnd = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_EXITFULLSCREENATTHEEND, 1);
+ fRestoreResAfterExit = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("RestoreResAfterExit"), 1);
+ fRememberWindowPos = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWPOS, 0);
+ fRememberWindowSize = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWSIZE, 0);
+ fSnapToDesktopEdges = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SNAPTODESKTOPEDGES, 0);
+ AspectRatio.cx = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_X, 0);
+ AspectRatio.cy = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_Y, 0);
+ fKeepHistory = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPHISTORY, 1);
+ if ( pApp->GetProfileBinary(IDS_R_SETTINGS, IDS_RS_LASTWINDOWRECT, &ptr, &len) )
+ {
+ if ( len == sizeof(CRect) )
+ memcpy( &rcLastWindowPos, ptr, sizeof(CRect) );
+ else
+ fRememberWindowPos = false;
+ delete [] ptr;
+ }
+ else
+ {
+ fRememberWindowPos = false;
+ }
+ lastWindowType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LASTWINDOWTYPE, SIZE_RESTORED);
+ sDVDPath = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_DVDPATH, _T(""));
+ fUseDVDPath = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_USEDVDPATH, 0);
+ idMenuLang = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MENULANG, ::GetUserDefaultLCID());
+ idAudioLang = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOLANG, ::GetUserDefaultLCID());
+ idSubtitlesLang = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANG, ::GetUserDefaultLCID());
+ fAutoSpeakerConf = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOSPEAKERCONF, 1);
+ // TODO: rename subdefstyle -> defStyle, IDS_RS_SPLOGFONT -> IDS_RS_SPSTYLE
+ subdefstyle <<= pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SPLOGFONT, _T(""));
+ fOverridePlacement = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPOVERRIDEPLACEMENT, 0);
+ nHorPos = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPHORPOS, 50);
+ nVerPos = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPVERPOS, 90);
+ m_RenderersSettings.nSPCSize = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPCSIZE, 3);
+ m_RenderersSettings.nSPCMaxRes = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPCMAXRES, 2);
+ nSubDelayInterval = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SUBDELAYINTERVAL, 500);
+ m_RenderersSettings.fSPCPow2Tex = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_POW2TEX, TRUE);
+
+ bool bAllowAnimationWhenBuffering = true;
+ SYSTEM_INFO SysInfo;
+ GetSystemInfo(&SysInfo);
+ if (SysInfo.dwNumberOfProcessors < 3)
+ bAllowAnimationWhenBuffering = false;
+
+
+ m_RenderersSettings.fSPCAllowAnimationWhenBuffering = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SPCAllowAnimationWhenBuffering"), bAllowAnimationWhenBuffering);
+ fEnableSubtitles = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLESUBTITLES, TRUE);
+ fPrioritizeExternalSubtitles = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_PRIORITIZEEXTERNALSUBTITLES, FALSE);
+ fDisableInternalSubtitles = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLEINTERNALSUBTITLES, FALSE);
+ szSubtitlePaths = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SUBTITLEPATHS, _T(".;.\\subtitles;.\\subs"));
+ fUseDefaultSubtitlesStyle = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_USEDEFAULTSUBTITLESSTYLE, FALSE);
+ fEnableAudioSwitcher = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOSWITCHER, TRUE);
+ fAudioTimeShift = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOTIMESHIFT, 0);
+ tAudioTimeShift = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOTIMESHIFT, 0);
+ fDownSampleTo441 = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DOWNSAMPLETO441, 0);
+ fCustomChannelMapping = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_CUSTOMCHANNELMAPPING, 0);
+
+ BOOL bResult = pApp->GetProfileBinary( IDS_R_SETTINGS, IDS_RS_SPEAKERTOCHANNELMAPPING, &ptr, &len );
+ if ( bResult && len == sizeof(pSpeakerToChannelMap) )
+ {
+ memcpy( pSpeakerToChannelMap, ptr, sizeof(pSpeakerToChannelMap) );
+ }
+ else
+ {
+ memset(pSpeakerToChannelMap, 0, sizeof(pSpeakerToChannelMap));
+ for(int j = 0; j < 18; j++)
+ for(int i = 0; i <= j; i++)
+ pSpeakerToChannelMap[j][i] = 1<<i;
+
+ pSpeakerToChannelMap[0][0] = 1<<0;
+ pSpeakerToChannelMap[0][1] = 1<<0;
+
+ pSpeakerToChannelMap[3][0] = 1<<0;
+ pSpeakerToChannelMap[3][1] = 1<<1;
+ pSpeakerToChannelMap[3][2] = 0;
+ pSpeakerToChannelMap[3][3] = 0;
+ pSpeakerToChannelMap[3][4] = 1<<2;
+ pSpeakerToChannelMap[3][5] = 1<<3;
+
+ pSpeakerToChannelMap[4][0] = 1<<0;
+ pSpeakerToChannelMap[4][1] = 1<<1;
+ pSpeakerToChannelMap[4][2] = 1<<2;
+ pSpeakerToChannelMap[4][3] = 0;
+ pSpeakerToChannelMap[4][4] = 1<<3;
+ pSpeakerToChannelMap[4][5] = 1<<4;
+ }
+ if ( bResult )
+ delete [] ptr;
+
+ fAudioNormalize = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZE, FALSE);
+ fAudioNormalizeRecover = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZERECOVER, TRUE);
+ AudioBoost = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOBOOST, _T("1")));
+
+ fnChannels = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPEAKERCHANNELS, 2);
+
+ {
+ for(int i = 0; ; i++)
+ {
+ CString key;
+ key.Format(_T("%s\\%04d"), IDS_R_FILTERS, i);
+
+ CAutoPtr<FilterOverride> f(DNew FilterOverride);
+
+ f->fDisabled = !pApp->GetProfileInt(key, _T("Enabled"), 0);
+
+ UINT j = pApp->GetProfileInt(key, _T("SourceType"), -1);
+ if(j == 0)
+ {
+ f->type = FilterOverride::REGISTERED;
+ f->dispname = CStringW(pApp->GetProfileString(key, _T("DisplayName"), _T("")));
+ f->name = pApp->GetProfileString(key, _T("Name"), _T(""));
+ }
+ else if(j == 1)
+ {
+ f->type = FilterOverride::EXTERNAL;
+ f->path = pApp->GetProfileString(key, _T("Path"), _T(""));
+ f->name = pApp->GetProfileString(key, _T("Name"), _T(""));
+ f->clsid = GUIDFromCString(pApp->GetProfileString(key, _T("CLSID"), _T("")));
+ }
+ else
+ {
+ pApp->WriteProfileString(key, NULL, 0);
+ break;
+ }
+
+ f->backup.RemoveAll();
+ for(int i = 0; ; i++)
+ {
+ CString val;
+ val.Format(_T("org%04d"), i);
+ CString guid = pApp->GetProfileString(key, val, _T(""));
+ if(guid.IsEmpty()) break;
+ f->backup.AddTail(GUIDFromCString(guid));
+ }
+
+ f->guids.RemoveAll();
+ for(int i = 0; ; i++)
+ {
+ CString val;
+ val.Format(_T("mod%04d"), i);
+ CString guid = pApp->GetProfileString(key, val, _T(""));
+ if(guid.IsEmpty()) break;
+ f->guids.AddTail(GUIDFromCString(guid));
+ }
+
+ f->iLoadType = (int)pApp->GetProfileInt(key, _T("LoadType"), -1);
+ if(f->iLoadType < 0) break;
+
+ f->dwMerit = pApp->GetProfileInt(key, _T("Merit"), MERIT_DO_NOT_USE+1);
+
+ filters.AddTail(f);
+ }
+ }
+
+ fIntRealMedia = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_INTREALMEDIA, 0);
+ //fRealMediaRenderless = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIARENDERLESS, 0);
+ //iQuickTimeRenderer = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_QUICKTIMERENDERER, 2);
+ RealMediaQuickTimeFPS = 25.0;
+ *((DWORD*)&RealMediaQuickTimeFPS) = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIAFPS, *((DWORD*)&RealMediaQuickTimeFPS));
+
+ m_pnspresets.RemoveAll();
+ for(int i = 0; i < (ID_PANNSCAN_PRESETS_END - ID_PANNSCAN_PRESETS_START); i++)
+ {
+ CString str;
+ str.Format(_T("Preset%d"), i);
+ str = pApp->GetProfileString(IDS_R_SETTINGS _T("\\") IDS_RS_PNSPRESETS, str, _T(""));
+ if(str.IsEmpty()) break;
+ m_pnspresets.Add(str);
+ }
+ if(m_pnspresets.IsEmpty())
+ {
+ double _4p3 = 4.0/3.0;
+ double _16p9 = 16.0/9.0;
+ double _185p1 = 1.85/1.0;
+ double _235p1 = 2.35/1.0;
+ UNUSED_ALWAYS(_185p1);
+
+ CString str;
+ str.Format(ResStr(IDS_SCALE_16_9), 0.5, 0.5, _4p3/_4p3, _16p9/_4p3);
+ m_pnspresets.Add(str);
+ str.Format(ResStr(IDS_SCALE_WIDESCREEN), 0.5, 0.5, _16p9/_4p3, _16p9/_4p3);
+ m_pnspresets.Add(str);
+ str.Format(ResStr(IDS_SCALE_ULTRAWIDE), 0.5, 0.5, _235p1/_4p3, _235p1/_4p3);
+ m_pnspresets.Add(str);
+ }
+
+ for(int i = 0; i < wmcmds.GetCount(); i++)
+ {
+ CString str;
+ str.Format(_T("CommandMod%d"), i);
+ str = pApp->GetProfileString(IDS_R_COMMANDS, str, _T(""));
+ if(str.IsEmpty()) break;
+ int cmd, fVirt, key, repcnt, mouse, appcmd;
+ TCHAR buff[128];
+ int n;
+ if(5 > (n = _stscanf_s(str, _T("%d %x %x %s %d %d %d"), &cmd, &fVirt, &key, buff, countof(buff), &repcnt, &mouse, &appcmd)))
+ break;
+ if(POSITION pos = wmcmds.Find(cmd))
+ {
+ wmcmd& wc = wmcmds.GetAt(pos);
+ wc.cmd = cmd;
+ wc.fVirt = fVirt;
+ wc.key = key;
+ if(n >= 6) wc.mouse = (UINT)mouse;
+ if(n >= 7) wc.appcmd = (UINT)appcmd;
+ wc.rmcmd = CStringA(buff).Trim('\"');
+ wc.rmrepcnt = repcnt;
+ }
+ }
+
+ CAtlArray<ACCEL> pAccel;
+ pAccel.SetCount(wmcmds.GetCount());
+ POSITION pos = wmcmds.GetHeadPosition();
+ for(int i = 0; pos; i++) pAccel[i] = wmcmds.GetNext(pos);
+ hAccel = CreateAcceleratorTable(pAccel.GetData(), pAccel.GetCount());
+
+ WinLircAddr = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WINLIRCADDR, _T("127.0.0.1:8765"));
+ fWinLirc = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WINLIRC, 0);
+ UIceAddr = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_UICEADDR, _T("127.0.0.1:1234"));
+ fUIce = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_UICE, 0);
+ fGlobalMedia = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_GLOBALMEDIA, 0);
+
+ fDisableXPToolbars = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLEXPTOOLBARS, 0);
+ fUseWMASFReader = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_USEWMASFREADER, FALSE);
+ nJumpDistS = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTS, 1000);
+ nJumpDistM = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTM, 5000);
+ nJumpDistL = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTL, 20000);
+ fLimitWindowProportions = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LIMITWINDOWPROPORTIONS, FALSE);
+ fNotifyMSN = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYMSN, FALSE);
+ fNotifyGTSdll = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYGTSDLL, FALSE);
+
+ Formats.UpdateData(false);
+
+ SrcFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_SRCFILTERS, ~0);
+ TraFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_TRAFILTERS, ~0);
+ DXVAFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_DXVAFILTERS, ~0);
+ FFmpegFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_FFMPEGFILTERS, ~0);
+
+ logofn = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_LOGOFILE, _T(""));
+ logoid = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOID, DEF_LOGO);
+ logoext = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOEXT, 0);
+
+ fHideCDROMsSubMenu = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECDROMSSUBMENU, 0);
+
+ priority = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_PRIORITY, NORMAL_PRIORITY_CLASS);
+ ::SetPriorityClass(::GetCurrentProcess(), priority);
+ launchfullscreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LAUNCHFULLSCREEN, FALSE);
+
+ fEnableWebServer = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWEBSERVER, FALSE);
+ nWebServerPort = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPORT, 13579);
+ fWebServerPrintDebugInfo = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPRINTDEBUGINFO, FALSE);
+ fWebServerUseCompression = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERUSECOMPRESSION, TRUE);
+ fWebServerLocalhostOnly = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERLOCALHOSTONLY, FALSE);
+ WebRoot = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WEBROOT, _T("*./webroot"));
+ WebDefIndex = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WEBDEFINDEX, _T("index.html;index.php"));
+ WebServerCGI = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WEBSERVERCGI, _T(""));
+
+ CString MyPictures;
+
+ CRegKey key;
+ // grrrrr
+ // if(!SHGetSpecialFolderPath(NULL, MyPictures.GetBufferSetLength(MAX_PATH), CSIDL_MYPICTURES, TRUE)) MyPictures.Empty();
+ // else MyPictures.ReleaseBuffer();
+ if(ERROR_SUCCESS == key.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"), KEY_READ))
+ {
+ ULONG len = MAX_PATH;
+ if(ERROR_SUCCESS == key.QueryStringValue(_T("My Pictures"), MyPictures.GetBuffer(MAX_PATH), &len)) MyPictures.ReleaseBufferSetLength(len);
+ else MyPictures.Empty();
+ }
+ SnapShotPath = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTPATH, MyPictures);
+ SnapShotExt = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTEXT, _T(".jpg"));
+
+ ThumbRows = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBROWS, 4);
+ ThumbCols = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBCOLS, 4);
+ ThumbWidth = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBWIDTH, 1024);
+
+ ISDb = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_ISDB, _T("www.opensubtitles.org/isdb"));
+
+ D3D9RenderDevice = pApp->GetProfileString(IDS_R_SETTINGS, IDS_D3D9RENDERDEVICE, _T(""));
+
+ pApp->WriteProfileInt(IDS_R_SETTINGS, _T("LastUsedPage"), 0);
+
+ //
+
+ m_shaders.RemoveAll();
+
+ CAtlStringMap<UINT> shaders;
+
+ shaders[_T("16-235 -> 0-255 [SD][HD]")] = IDF_SHADER_LEVELS;
+ shaders[_T("16-235 -> 0-255 [SD]")] = IDF_SHADER_LEVELS2;
+ shaders[_T("0-255 -> 16-235")] = IDF_SHADER_LEVELS3;
+ shaders[_T("BT.601 -> BT.709")] = IDF_SHADER_BT601_BT709;
+ shaders[_T("contour")] = IDF_SHADER_CONTOUR;
+ shaders[_T("deinterlace (blend)")] = IDF_SHADER_DEINTERLACE;
+ shaders[_T("edge sharpen")] = IDF_SHADER_EDGE_SHARPEN;
+ shaders[_T("emboss")] = IDF_SHADER_EMBOSS;
+ shaders[_T("grayscale")] = IDF_SHADER_GRAYSCALE;
+ shaders[_T("invert")] = IDF_SHADER_INVERT;
+ shaders[_T("letterbox")] = IDF_SHADER_LETTERBOX;
+ shaders[_T("nightvision")] = IDF_SHADER_NIGHTVISION;
+ shaders[_T("procamp")] = IDF_SHADER_PROCAMP;
+ shaders[_T("sharpen")] = IDF_SHADER_SHARPEN;
+ shaders[_T("sharpen complex")] = IDF_SHADER_SHARPEN_COMPLEX;
+ shaders[_T("sharpen complex 2")] = IDF_SHADER_SHARPEN_COMPLEX2;
+ shaders[_T("sphere")] = IDF_SHADER_SPHERE;
+ shaders[_T("spotlight")] = IDF_SHADER_SPOTLIGHT;
+ shaders[_T("wave")] = IDF_SHADER_WAVE;
+ shaders[_T("denoise")] = IDF_SHADER_DENOISE;
+ shaders[_T("YV12 Chroma Upsampling")] = IDF_SHADER_YV12CHROMAUP;
+
+ int iShader = 0;
+
+ for(; ; iShader++)
+ {
+ CString str;
+ str.Format(_T("%d"), iShader);
+ str = pApp->GetProfileString(_T("Shaders"), str);
+
+ CAtlList<CString> sl;
+ CString label = Explode(str, sl, '|');
+ if(label.IsEmpty()) break;
+ if(sl.GetCount() < 3) continue;
+
+ Shader s;
+ s.label = sl.RemoveHead();
+ s.target = sl.RemoveHead();
+ s.srcdata = sl.RemoveHead();
+ s.srcdata.Replace(_T("\\n"), _T("\n"));
+ s.srcdata.Replace(_T("\\t"), _T("\t"));
+ m_shaders.AddTail(s);
+
+ shaders.RemoveKey(s.label);
+ }
+
+ pos = shaders.GetStartPosition();
+ for(; pos; iShader++)
+ {
+ CAtlStringMap<UINT>::CPair* pPair = shaders.GetNext(pos);
+
+ CStringA srcdata;
+ if(LoadResource(pPair->m_value, srcdata, _T("FILE")))
+ {
+ Shader s;
+ s.label = pPair->m_key;
+
+ // Select minimum version for each shader!
+ switch (pPair->m_value)
+ {
+ case IDF_SHADER_DENOISE :
+ s.target = _T("ps_3_0");
+ break;
+ case IDF_SHADER_SHARPEN_COMPLEX2 :
+ s.target = _T("ps_2_a");
+ break;
+ default :
+ s.target = _T("ps_2_0");
+ break;
+ }
+ s.srcdata = CString(srcdata);
+ m_shaders.AddTail(s);
+ }
+ }
+
+ // CASIMIR666 : nouveaux settings
+ fD3DFullscreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_D3DFULLSCREEN, FALSE);
+ fMonitorAutoRefreshRate = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MONITOR_AUTOREFRESHRATE, FALSE);
+
+ dBrightness = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_BRIGHTNESS, _T("1")));
+ dContrast = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_CONTRAST, _T("1")));
+ dHue = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_HUE, _T("0")));
+ dSaturation = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_SATURATION, _T("1")));
+ strShaderList = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLIST, _T(""));
+ strShaderListScreenSpace = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLISTSCREENSPACE, _T(""));
+ m_bToggleShader = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADER, 0);
+ m_bToggleShaderScreenSpace = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADERSSCREENSPACE, 0);
+
+ m_RenderersSettings.iEvrBuffers = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_EVR_BUFFERS, 5);
+ fShowOSD = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SHOWOSD, 1);
+ fEnableEDLEditor= !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEEDLEDITOR, FALSE);
+
+ // Save analog capture settings
+ iDefaultCaptureDevice = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DEFAULT_CAPTURE, 0);
+ strAnalogVideo = pApp->GetProfileString(IDS_RS_CAPTURE, IDS_RS_VIDEO_DISP_NAME, _T(""));
+ strAnalogAudio = pApp->GetProfileString(IDS_RS_CAPTURE, IDS_RS_AUDIO_DISP_NAME, _T(""));
+ iAnalogCountry = pApp->GetProfileInt(IDS_RS_CAPTURE, IDS_RS_COUNTRY, 1);
+
+ BDANetworkProvider = pApp->GetProfileString(IDS_RS_DVB, IDS_RS_BDA_NETWORKPROVIDER, _T(""));
+ BDATuner = pApp->GetProfileString(IDS_RS_DVB, IDS_RS_BDA_TUNER, _T(""));
+ BDAReceiver = pApp->GetProfileString(IDS_RS_DVB, IDS_RS_BDA_RECEIVER, _T(""));
+ DVBLastChannel = pApp->GetProfileInt(IDS_RS_DVB, IDS_RS_DVB_LAST_CHANNEL, 1);
+
+ for(int iChannel = 0; ; iChannel++)
+ {
+ CString strTemp;
+ CString strChannel;
+ CDVBChannel Channel;
+ strTemp.Format(_T("%d"), iChannel);
+ strChannel = pApp->GetProfileString(IDS_RS_DVB, strTemp, _T(""));
+ if (strChannel.IsEmpty()) break;
+ Channel.FromString(strChannel);
+ DVBChannels.AddTail (Channel);
+ }
+
+ // Position de lecture des derniers DVD's
+ fRememberDVDPos = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DVDPOS, 0);
+ nCurrentDvdPosition = -1;
+ memset (DvdPosition, 0, sizeof(DvdPosition));
+ for (int i=0; i<MAX_DVD_POSITION; i++)
+ {
+ CString strDVDPos;
+ CString strValue;
+
+ strDVDPos.Format (_T("DVD Position %d"), i);
+ strValue = pApp->GetProfileString(IDS_R_SETTINGS, strDVDPos, _T(""));
+ if (strValue.GetLength()/2 == sizeof(DVD_POSITION))
+ {
+ DeserializeHex(strValue, (BYTE*)&DvdPosition[i], sizeof(DVD_POSITION));
+ }
+ }
+
+ // Position de lecture des derniers fichiers
+ fRememberFilePos = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_FILEPOS, 0);
+ nCurrentFilePosition = -1;
+ for (int i=0; i<MAX_FILE_POSITION; i++)
+ {
+ CString strFilePos;
+ CString strValue;
+
+ strFilePos.Format (_T("File Name %d"), i);
+ FilePosition[i].strFile = pApp->GetProfileString(IDS_R_SETTINGS, strFilePos, _T(""));
+
+ strFilePos.Format (_T("File Position %d"), i);
+ strValue = pApp->GetProfileString(IDS_R_SETTINGS, strFilePos, _T(""));
+ FilePosition[i].llPosition = _tstoi64 (strValue);
+ }
+
+ fLastFullScreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LASTFULLSCREEN, 0);
+
+ // CASIMIR666 : fin nouveaux settings
+
+ // TODO: sort shaders by label
+
+ m_shadercombine = pApp->GetProfileString(_T("Shaders"), _T("Combine"), _T(""));
+ m_shadercombineScreenSpace = pApp->GetProfileString(_T("Shaders"), _T("CombineScreenSpace"), _T(""));
+
+ if(launchfullscreen) nCLSwitches |= CLSW_FULLSCREEN;
+
+ fInitialized = true;
+ }
+}
+
+void CAppSettings::SaveCurrentFilePosition( )
+{
+ CWinApp* pApp = AfxGetApp();
+ CString strFilePos;
+ CString strValue;
+ int i = nCurrentFilePosition;
+
+ strFilePos.Format (_T("File Name %d"), i);
+ pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, FilePosition[i].strFile);
+ strFilePos.Format (_T("File Position %d"), i);
+ strValue.Format (_T("%I64d"), FilePosition[i].llPosition);
+ pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, strValue);
+}
+
+void CAppSettings::SaveCurrentDVDPosition( )
+{
+ CWinApp* pApp = AfxGetApp();
+ CString strDVDPos;
+ CString strValue;
+ int i = nCurrentDvdPosition;
+
+ strDVDPos.Format (_T("DVD Position %d"), i);
+ strValue = SerializeHex((BYTE*)&DvdPosition[i], sizeof(DVD_POSITION));
+ pApp->WriteProfileString(IDS_R_SETTINGS, strDVDPos, strValue);
+}
+
+__int64 CAppSettings::ConvertTimeToMSec(CString& time)
+{
+ __int64 Sec = 0;
+ __int64 mSec = 0;
+ __int64 mult = 1;
+
+ int pos = time.GetLength() - 1;
+ if (pos < 3) return 0;
+
+ while (pos >= 0)
+ {
+ TCHAR ch = time[pos];
+ if (ch == '.')
+ {
+ mSec = Sec * 1000 / mult;
+ Sec = 0;
+ mult = 1;
+ }
+ else if (ch == ':')
+ {
+ mult = mult * 6 / 10;
+ }
+ else if (ch >= '0' && ch <= '9')
+ {
+ Sec += (ch - '0') * mult;
+ mult *= 10;
+ }
+ else
+ {
+ mSec = Sec = 0;
+ break;
+ }
+ pos--;
+ }
+ return Sec*1000 + mSec;
+}
+
+void CAppSettings::ExtractDVDStartPos(CString& strParam)
+{
+ int i = 0, j = 0;
+ for(CString token = strParam.Tokenize(_T("#"), i);
+ j < 3 && !token.IsEmpty();
+ token = strParam.Tokenize(_T("#"), i), j++)
+ {
+ switch (j)
+ {
+ case 0 :
+ lDVDTitle = token.IsEmpty() ? 0 : (ULONG)_wtol(token);
+ break;
+ case 1 :
+ if (token.Find(':') >0)
+ {
+ _stscanf_s(token, _T("%02d:%02d:%02d.%03d"), &DVDPosition.bHours, &DVDPosition.bMinutes, &DVDPosition.bSeconds, &DVDPosition.bFrames);
+ /* Hack by Ron. If bFrames >= 30, PlayTime commands fail due to invalid arg */
+ DVDPosition.bFrames = 0;
+ }
+ else
+ lDVDChapter = token.IsEmpty() ? 0 : (ULONG)_wtol(token);
+ break;
+ }
+ }
+}
+
+void CAppSettings::ParseCommandLine(CAtlList<CString>& cmdln)
+{
+ nCLSwitches = 0;
+ slFiles.RemoveAll();
+ slDubs.RemoveAll();
+ slSubs.RemoveAll();
+ slFilters.RemoveAll();
+ rtStart = 0;
+ rtShift = 0;
+ lDVDTitle = 0;
+ lDVDChapter = 0;
+ memset (&DVDPosition, 0, sizeof(DVDPosition));
+ iAdminOption=0;
+ fixedWindowSize.SetSize(0, 0);
+ iMonitor = 0;
+ hMasterWnd = 0;
+ sPnSPreset.Empty();
+
+ POSITION pos = cmdln.GetHeadPosition();
+ while(pos)
+ {
+ CString param = cmdln.GetNext(pos);
+ if(param.IsEmpty()) continue;
+
+ if((param[0] == '-' || param[0] == '/') && param.GetLength() > 1)
+ {
+ CString sw = param.Mid(1).MakeLower();
+ if(sw == _T("open")) nCLSwitches |= CLSW_OPEN;
+ else if(sw == _T("play")) nCLSwitches |= CLSW_PLAY;
+ else if(sw == _T("fullscreen")) nCLSwitches |= CLSW_FULLSCREEN;
+ else if(sw == _T("minimized")) nCLSwitches |= CLSW_MINIMIZED;
+ else if(sw == _T("new")) nCLSwitches |= CLSW_NEW;
+ else if(sw == _T("help") || sw == _T("h") || sw == _T("?")) nCLSwitches |= CLSW_HELP;
+ else if(sw == _T("dub") && pos) slDubs.AddTail(cmdln.GetNext(pos));
+ else if(sw == _T("dubdelay") && pos)
+ {
+ CString strFile = cmdln.GetNext(pos);
+ int nPos = strFile.Find (_T("DELAY"));
+ if (nPos != -1)
+ rtShift = 10000 * _tstol(strFile.Mid(nPos + 6));
+ slDubs.AddTail(strFile);
+ }
+ else if(sw == _T("sub") && pos) slSubs.AddTail(cmdln.GetNext(pos));
+ else if(sw == _T("filter") && pos) slFilters.AddTail(cmdln.GetNext(pos));
+ else if(sw == _T("dvd")) nCLSwitches |= CLSW_DVD;
+ else if(sw == _T("dvdpos")) ExtractDVDStartPos(cmdln.GetNext(pos));
+ else if(sw == _T("cd")) nCLSwitches |= CLSW_CD;
+ else if(sw == _T("add")) nCLSwitches |= CLSW_ADD;
+ else if(sw == _T("regvid")) nCLSwitches |= CLSW_REGEXTVID;
+ else if(sw == _T("regaud")) nCLSwitches |= CLSW_REGEXTAUD;
+ else if(sw == _T("unregall")) nCLSwitches |= CLSW_UNREGEXT;
+ else if(sw == _T("unregvid")) nCLSwitches |= CLSW_UNREGEXT; /* keep for compatibility with old versions */
+ else if(sw == _T("unregaud")) nCLSwitches |= CLSW_UNREGEXT; /* keep for compatibility with old versions */
+ else if(sw == _T("start") && pos)
+ {
+ rtStart = 10000i64*_tcstol(cmdln.GetNext(pos), NULL, 10);
+ nCLSwitches |= CLSW_STARTVALID;
+ }
+ else if(sw == _T("startpos") && pos)
+ {
+ rtStart = 10000i64 * ConvertTimeToMSec(cmdln.GetNext(pos));
+ nCLSwitches |= CLSW_STARTVALID;
+ }
+ else if(sw == _T("nofocus")) nCLSwitches |= CLSW_NOFOCUS;
+ else if(sw == _T("close")) nCLSwitches |= CLSW_CLOSE;
+ else if(sw == _T("standby")) nCLSwitches |= CLSW_STANDBY;
+ else if(sw == _T("hibernate")) nCLSwitches |= CLSW_HIBERNATE;
+ else if(sw == _T("shutdown")) nCLSwitches |= CLSW_SHUTDOWN;
+ else if(sw == _T("logoff")) nCLSwitches |= CLSW_LOGOFF;
+ else if(sw == _T("d3dfs")) nCLSwitches |= CLSW_D3DFULLSCREEN;
+ else if(sw == _T("adminoption"))
+ {
+ nCLSwitches |= CLSW_ADMINOPTION;
+ iAdminOption = _ttoi (cmdln.GetNext(pos));
+ }
+ else if(sw == _T("slave"))
+ {
+ nCLSwitches |= CLSW_SLAVE;
+ hMasterWnd = (HWND)_ttol (cmdln.GetNext(pos));
+ }
+ else if(sw == _T("fixedsize") && pos)
+ {
+ CAtlList<CString> sl;
+ Explode(cmdln.GetNext(pos), sl, ',', 2);
+ if(sl.GetCount() == 2)
+ {
+ fixedWindowSize.SetSize(_ttol(sl.GetHead()), _ttol(sl.GetTail()));
+ if(fixedWindowSize.cx > 0 && fixedWindowSize.cy > 0)
+ nCLSwitches |= CLSW_FIXEDSIZE;
+ }
+ }
+ else if(sw == _T("monitor") && pos)
+ {
+ iMonitor = _tcstol(cmdln.GetNext(pos), NULL, 10);
+ nCLSwitches |= CLSW_MONITOR;
+ }
+ else if(sw == _T("minidump"))
+ {
+ CMiniDump::Enable();
+ }
+ else if(sw == _T("pns")) sPnSPreset = cmdln.GetNext(pos);
+ else if(sw == _T("webport") && pos)
+ {
+ int tmpport = _tcstol(cmdln.GetNext(pos), NULL, 10);
+ if ( tmpport >= 0 && tmpport <= 65535 )
+ nCmdlnWebServerPort = tmpport;
+ }
+ else if(sw == _T("debug"))
+ {
+ ShowDebugInfo = true;
+ }
+ else if(sw == _T("audiorenderer") && pos)
+ {
+ SetAudioRenderer(_ttoi(cmdln.GetNext(pos)));
+ }
+ else nCLSwitches |= CLSW_HELP|CLSW_UNRECOGNIZEDSWITCH;
+ }
+ else
+ {
+ slFiles.AddTail(param);
+ }
+ }
+}
+
+void CAppSettings::GetFav(favtype ft, CAtlList<CString>& sl)
+{
+ sl.RemoveAll();
+
+ CString root;
+
+ switch(ft)
+ {
+ case FAV_FILE:
+ root = IDS_R_FAVFILES;
+ break;
+ case FAV_DVD:
+ root = IDS_R_FAVDVDS;
+ break;
+ case FAV_DEVICE:
+ root = IDS_R_FAVDEVICES;
+ break;
+ default:
+ return;
+ }
+
+ for(int i = 0; ; i++)
+ {
+ CString s;
+ s.Format(_T("Name%d"), i);
+ s = AfxGetApp()->GetProfileString(root, s, NULL);
+ if(s.IsEmpty()) break;
+ sl.AddTail(s);
+ }
+}
+
+void CAppSettings::SetFav(favtype ft, CAtlList<CString>& sl)
+{
+ CString root;
+
+ switch(ft)
+ {
+ case FAV_FILE:
+ root = IDS_R_FAVFILES;
+ break;
+ case FAV_DVD:
+ root = IDS_R_FAVDVDS;
+ break;
+ case FAV_DEVICE:
+ root = IDS_R_FAVDEVICES;
+ break;
+ default:
+ return;
+ }
+
+ AfxGetApp()->WriteProfileString(root, NULL, NULL);
+
+ int i = 0;
+ POSITION pos = sl.GetHeadPosition();
+ while(pos)
+ {
+ CString s;
+ s.Format(_T("Name%d"), i++);
+ AfxGetApp()->WriteProfileString(root, s, sl.GetNext(pos));
+ }
+}
+
+void CAppSettings::AddFav(favtype ft, CString s)
+{
+ CAtlList<CString> sl;
+ GetFav(ft, sl);
+ if(sl.Find(s)) return;
+ sl.AddTail(s);
+ SetFav(ft, sl);
+}
+
+CDVBChannel* CAppSettings::FindChannelByPref(int nPrefNumber)
+{
+ POSITION pos = DVBChannels.GetHeadPosition();
+ while (pos)
+ {
+ CDVBChannel& Channel = DVBChannels.GetNext (pos);
+ if (Channel.GetPrefNumber() == nPrefNumber)
+ {
+ return &Channel;
+ }
+ }
+
+ return NULL;
+}
+
+// Settings::CRecentFileAndURLList
+
+CAppSettings::CRecentFileAndURLList::CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
+ LPCTSTR lpszEntryFormat, int nSize,
+ int nMaxDispLen)
+ : CRecentFileList(nStart, lpszSection, lpszEntryFormat, nSize, nMaxDispLen)
+{
+}
+
+//#include <afximpl.h>
+extern BOOL AFXAPI AfxFullPath(LPTSTR lpszPathOut, LPCTSTR lpszFileIn);
+extern BOOL AFXAPI AfxComparePath(LPCTSTR lpszPath1, LPCTSTR lpszPath2);
+
+void CAppSettings::CRecentFileAndURLList::Add(LPCTSTR lpszPathName)
+{
+ ASSERT(m_arrNames != NULL);
+ ASSERT(lpszPathName != NULL);
+ ASSERT(AfxIsValidString(lpszPathName));
+
+ if(CString(lpszPathName).MakeLower().Find(_T("@device:")) >= 0)
+ return;
+
+ bool fURL = (CString(lpszPathName).Find(_T("://")) >= 0);
+
+ // fully qualify the path name
+ TCHAR szTemp[1024];
+ if(fURL) _tcscpy_s(szTemp, lpszPathName);
+ else AfxFullPath(szTemp, lpszPathName);
+
+ // update the MRU list, if an existing MRU string matches file name
+ int iMRU;
+ for (iMRU = 0; iMRU < m_nSize-1; iMRU++)
+ {
+ if((fURL && !_tcscmp(m_arrNames[iMRU], szTemp))
+ || AfxComparePath(m_arrNames[iMRU], szTemp))
+ break; // iMRU will point to matching entry
+ }
+ // move MRU strings before this one down
+ for (; iMRU > 0; iMRU--)
+ {
+ ASSERT(iMRU > 0);
+ ASSERT(iMRU < m_nSize);
+ m_arrNames[iMRU] = m_arrNames[iMRU-1];
+ }
+ // place this one at the beginning
+ m_arrNames[0] = szTemp;
+}
diff --git a/src/apps/mplayerc/AppSettings.h b/src/apps/mplayerc/AppSettings.h
new file mode 100644
index 000000000..fea09828c
--- /dev/null
+++ b/src/apps/mplayerc/AppSettings.h
@@ -0,0 +1,621 @@
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
+ *
+ * This file is part of mplayerc.
+ *
+ * Mplayerc 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.
+ *
+ * Mplayerc 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 "resource.h" // main symbols
+#include <afxadv.h>
+#include <atlsync.h>
+#include "RenderersSettings.h"
+
+// flags for AppSettings::nCS
+enum
+{
+ CS_NONE=0,
+ CS_SEEKBAR=1,
+ CS_TOOLBAR=CS_SEEKBAR<<1,
+ CS_INFOBAR=CS_TOOLBAR<<1,
+ CS_STATSBAR=CS_INFOBAR<<1,
+ CS_STATUSBAR=CS_STATSBAR<<1,
+ CS_LAST=CS_STATUSBAR
+};
+
+enum
+{
+ CLSW_NONE=0,
+ CLSW_OPEN=1,
+ CLSW_PLAY=CLSW_OPEN<<1,
+ CLSW_CLOSE=CLSW_PLAY<<1,
+ CLSW_STANDBY=CLSW_CLOSE<<1,
+ CLSW_HIBERNATE=CLSW_STANDBY<<1,
+ CLSW_SHUTDOWN=CLSW_HIBERNATE<<1,
+ CLSW_LOGOFF=CLSW_SHUTDOWN<<1,
+ CLSW_AFTERPLAYBACK_MASK=CLSW_CLOSE|CLSW_STANDBY|CLSW_SHUTDOWN|CLSW_HIBERNATE|CLSW_LOGOFF,
+ CLSW_FULLSCREEN=CLSW_LOGOFF<<1,
+ CLSW_NEW=CLSW_FULLSCREEN<<1,
+ CLSW_HELP=CLSW_NEW<<1,
+ CLSW_DVD=CLSW_HELP<<1,
+ CLSW_CD=CLSW_DVD<<1,
+ CLSW_ADD=CLSW_CD<<1,
+ CLSW_MINIMIZED=CLSW_ADD<<1,
+ CLSW_REGEXTVID=CLSW_MINIMIZED<<1, // 16
+ CLSW_REGEXTAUD=CLSW_REGEXTVID<<1,
+ CLSW_UNREGEXT=CLSW_REGEXTAUD<<1,
+ CLSW_STARTVALID=CLSW_UNREGEXT<<2,
+ CLSW_NOFOCUS=CLSW_STARTVALID<<1,
+ CLSW_FIXEDSIZE=CLSW_NOFOCUS<<1,
+ CLSW_MONITOR=CLSW_FIXEDSIZE<<1,
+ CLSW_D3DFULLSCREEN=CLSW_MONITOR<<1,
+ CLSW_ADMINOPTION=CLSW_D3DFULLSCREEN<<1,
+ CLSW_SLAVE=CLSW_ADMINOPTION<<1,
+ CLSW_AUDIORENDERER=CLSW_SLAVE<<1,
+ CLSW_UNRECOGNIZEDSWITCH=CLSW_AUDIORENDERER<<1
+};
+
+enum
+{
+ VIDRNDT_DS_DEFAULT,
+ VIDRNDT_DS_OLDRENDERER,
+ VIDRNDT_DS_OVERLAYMIXER,
+ VIDRNDT_DS_VMR7WINDOWED,
+ VIDRNDT_DS_VMR9WINDOWED,
+ VIDRNDT_DS_VMR7RENDERLESS,
+ VIDRNDT_DS_VMR9RENDERLESS,
+ VIDRNDT_DS_DXR,
+ VIDRNDT_DS_NULL_COMP,
+ VIDRNDT_DS_NULL_UNCOMP,
+ VIDRNDT_DS_EVR,
+ VIDRNDT_DS_EVR_CUSTOM,
+ VIDRNDT_DS_MADVR,
+ VIDRNDT_DS_SYNC
+};
+
+// Enumeration for MCE remotecontrol (careful : add 0x010000 for all keys!)
+enum MCE_RAW_INPUT
+{
+ MCE_DETAILS = 0x010209,
+ MCE_GUIDE = 0x01008D,
+ MCE_TVJUMP = 0x010025,
+ MCE_STANDBY = 0x010082,
+ MCE_OEM1 = 0x010080,
+ MCE_OEM2 = 0x010081,
+ MCE_MYTV = 0x010046,
+ MCE_MYVIDEOS = 0x01004A,
+ MCE_MYPICTURES = 0x010049,
+ MCE_MYMUSIC = 0x010047,
+ MCE_RECORDEDTV = 0x010048,
+ MCE_DVDANGLE = 0x01004B,
+ MCE_DVDAUDIO = 0x01004C,
+ MCE_DVDMENU = 0x010024,
+ MCE_DVDSUBTITLE = 0x01004D,
+ MCE_RED = 0x01005B,
+ MCE_GREEN = 0x01005C,
+ MCE_YELLOW = 0x01005D,
+ MCE_BLUE = 0x01005E,
+ MCE_MEDIA_NEXTTRACK = 0x0100B5,
+ MCE_MEDIA_PREVIOUSTRACK = 0x0100B6,
+};
+
+
+#define AUDRNDT_NULL_COMP _T("Null Audio Renderer (Any)")
+#define AUDRNDT_NULL_UNCOMP _T("Null Audio Renderer (Uncompressed)")
+#define AUDRNDT_MPC _T("MPC Audio Renderer")
+
+enum
+{
+ SRC_CDDA = 1,
+ SRC_CDXA = SRC_CDDA<<1,
+ SRC_VTS = SRC_CDXA<<1,
+ SRC_FLIC = SRC_VTS<<1,
+ SRC_D2V = SRC_FLIC<<1,
+ SRC_DTSAC3 = SRC_D2V<<1,
+ SRC_MATROSKA = SRC_DTSAC3<<1,
+ SRC_SHOUTCAST = SRC_MATROSKA<<1,
+ SRC_REALMEDIA = SRC_SHOUTCAST<<1,
+ SRC_AVI = SRC_REALMEDIA<<1,
+ SRC_ROQ = SRC_AVI<<1,
+ SRC_OGG = SRC_ROQ<<1,
+ SRC_NUT = SRC_OGG<<1,
+ SRC_MPEG = SRC_NUT<<1,
+ SRC_DIRAC = SRC_MPEG<<1,
+ SRC_MPA = SRC_DIRAC<<1,
+ SRC_DSM = SRC_MPA<<1,
+ SRC_SUBS = SRC_DSM<<1,
+ SRC_MP4 = SRC_SUBS<<1,
+ SRC_FLV = SRC_MP4<<1,
+ SRC_FLAC = SRC_FLV<<1,
+ SRC_LAST = SRC_FLAC<<1
+};
+
+enum
+{
+ TRA_MPEG1 = 1,
+ TRA_MPEG2 = TRA_MPEG1<<1,
+ TRA_RV = TRA_MPEG2<<1,
+ TRA_RA = TRA_RV<<1,
+ TRA_MPA = TRA_RA<<1,
+ TRA_LPCM = TRA_MPA<<1,
+ TRA_AC3 = TRA_LPCM<<1,
+ TRA_DTS = TRA_AC3<<1,
+ TRA_AAC = TRA_DTS<<1,
+ TRA_PS2AUD = TRA_AAC<<1,
+ TRA_DIRAC = TRA_PS2AUD<<1,
+ TRA_VORBIS = TRA_DIRAC<<1,
+ TRA_FLAC = TRA_VORBIS<<1,
+ TRA_NELLY = TRA_FLAC<<1,
+ TRA_AMR = TRA_NELLY<<1,
+ TRA_PCM = TRA_AMR<<1,
+ TRA_LAST = TRA_PCM<<1
+};
+
+enum
+{
+ DXVA_H264 = 1,
+ DXVA_VC1 = DXVA_H264<<1,
+ DXVA_MPEG2 = DXVA_VC1<<1,
+ DXVA_LAST = DXVA_MPEG2<<1
+};
+
+enum
+{
+ FFM_H264 = 1,
+ FFM_VC1 = FFM_H264<<1,
+ FFM_FLV4 = FFM_VC1<<1,
+ FFM_VP62 = FFM_FLV4<<1,
+ FFM_VP8 = FFM_VP62<<1,
+ FFM_XVID = FFM_VP8<<1,
+ FFM_DIVX = FFM_XVID<<1,
+ FFM_MSMPEG4 = FFM_DIVX<<1,
+ FFM_WMV = FFM_MSMPEG4<<1,
+ FFM_SVQ3 = FFM_WMV<<1,
+ FFM_H263 = FFM_SVQ3<<1,
+ FFM_THEORA = FFM_H263<<1,
+ FFM_AMVV = FFM_THEORA<<1,
+ FFM_LAST = FFM_AMVV<<1
+};
+
+typedef enum
+{
+ DVS_HALF,
+ DVS_NORMAL,
+ DVS_DOUBLE,
+ DVS_STRETCH,
+ DVS_FROMINSIDE,
+ DVS_FROMOUTSIDE,
+ DVS_ZOOM1,
+ DVS_ZOOM2
+} dvstype;
+
+typedef enum
+{
+ FAV_FILE,
+ FAV_DVD,
+ FAV_DEVICE
+} favtype;
+
+#define MAX_DVD_POSITION 20
+typedef struct
+{
+ ULONGLONG llDVDGuid;
+ ULONG lTitle;
+ DVD_HMSF_TIMECODE Timecode;
+} DVD_POSITION;
+
+#define MAX_FILE_POSITION 20
+typedef struct
+{
+ CString strFile;
+ LONGLONG llPosition;
+} FILE_POSITION;
+
+#pragma pack(push, 1)
+typedef struct
+{
+ bool fValid;
+ CSize size;
+ int bpp, freq;
+ DWORD dmDisplayFlags;
+} dispmode;
+typedef struct
+{
+ bool bEnabled;
+ dispmode dmFullscreenRes24Hz;
+ dispmode dmFullscreenRes25Hz;
+ dispmode dmFullscreenRes30Hz;
+ dispmode dmFullscreenResOther;
+ bool bApplyDefault;
+ dispmode dmFullscreenRes23d976Hz;
+ dispmode dmFullscreenRes29d97Hz;
+} AChFR; //AutoChangeFullscrRes
+#pragma pack(pop)
+
+class wmcmd : public ACCEL
+{
+ ACCEL backup;
+ UINT appcmdorg;
+ UINT mouseorg;
+public:
+ DWORD dwname;
+ UINT appcmd;
+ enum {NONE,LDOWN,LUP,LDBLCLK,MDOWN,MUP,MDBLCLK,RDOWN,RUP,RDBLCLK,X1DOWN,X1UP,X1DBLCLK,X2DOWN,X2UP,X2DBLCLK,WUP,WDOWN,LAST};
+ UINT mouse;
+ CStringA rmcmd;
+ int rmrepcnt;
+ wmcmd(WORD cmd = 0)
+ {
+ this->cmd = cmd;
+ }
+ wmcmd(WORD cmd, WORD key, BYTE fVirt, DWORD dwname, UINT appcmd = 0, UINT mouse = NONE, LPCSTR rmcmd = "", int rmrepcnt = 5)
+ {
+ this->cmd = cmd;
+ this->key = key;
+ this->fVirt = fVirt;
+ this->appcmd = appcmdorg = appcmd;
+ this->dwname = dwname;
+ this->mouse = mouseorg = mouse;
+ this->rmcmd = rmcmd;
+ this->rmrepcnt = rmrepcnt;
+ backup = *this;
+ }
+ bool operator == (const wmcmd& wc) const
+ {
+ return(cmd > 0 && cmd == wc.cmd);
+ }
+
+ CString GetName()
+ {
+ return ResStr (dwname);
+ }
+ void Restore()
+ {
+ *(ACCEL*)this = backup;
+ appcmd = appcmdorg;
+ mouse = mouseorg;
+ rmcmd.Empty();
+ rmrepcnt = 5;
+ }
+ bool IsModified()
+ {
+ return(memcmp((const ACCEL*)this, &backup, sizeof(ACCEL)) || appcmd != appcmdorg || mouse != mouseorg || !rmcmd.IsEmpty() || rmrepcnt != 5);
+ }
+};
+
+#include <afxsock.h>
+
+class CRemoteCtrlClient : public CAsyncSocket
+{
+protected:
+ CCritSec m_csLock;
+ CWnd* m_pWnd;
+ enum {DISCONNECTED, CONNECTED, CONNECTING} m_nStatus;
+ CString m_addr;
+
+ virtual void OnConnect(int nErrorCode);
+ virtual void OnClose(int nErrorCode);
+ virtual void OnReceive(int nErrorCode);
+
+ virtual void OnCommand(CStringA str) = 0;
+
+ void ExecuteCommand(CStringA cmd, int repcnt);
+
+public:
+ CRemoteCtrlClient();
+ void SetHWND(HWND hWnd);
+ void Connect(CString addr);
+ int GetStatus()
+ {
+ return(m_nStatus);
+ }
+};
+
+class CWinLircClient : public CRemoteCtrlClient
+{
+protected:
+ virtual void OnCommand(CStringA str);
+
+public:
+ CWinLircClient();
+};
+
+class CUIceClient : public CRemoteCtrlClient
+{
+protected:
+ virtual void OnCommand(CStringA str);
+
+public:
+ CUIceClient();
+};
+
+class CAppSettings
+{
+ friend class CMPlayerCApp;
+
+ bool fInitialized;
+
+ class CRecentFileAndURLList : public CRecentFileList
+ {
+ public:
+ CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
+ LPCTSTR lpszEntryFormat, int nSize,
+ int nMaxDispLen = AFX_ABBREV_FILENAME_LEN);
+
+ virtual void Add(LPCTSTR lpszPathName); // we have to override CRecentFileList::Add because the original version can't handle URLs
+ };
+
+public:
+ // cmdline params
+ int nCLSwitches;
+ CAtlList<CString> slFiles, slDubs, slSubs, slFilters;
+
+ // Initial position (used by command line flags)
+ __int64 rtShift;
+ __int64 rtStart;
+ ULONG lDVDTitle;
+ ULONG lDVDChapter;
+ DVD_HMSF_TIMECODE DVDPosition;
+
+ CSize fixedWindowSize;
+ bool HasFixedWindowSize() const
+ {
+ return fixedWindowSize.cx > 0 || fixedWindowSize.cy > 0;
+ }
+ // int iFixedWidth, iFixedHeight;
+ int iMonitor;
+
+ CString sPnSPreset;
+
+ void ParseCommandLine(CAtlList<CString>& cmdln);
+
+ // Added a Debug display to the screen (/debug option)
+ bool ShowDebugInfo;
+
+ int iDXVer;
+ int iAdminOption;
+
+ int nCS;
+ bool fHideCaptionMenu;
+ bool fHideNavigation;
+ int iDefaultVideoSize;
+ bool fKeepAspectRatio;
+ bool fCompMonDeskARDiff;
+
+ CRecentFileAndURLList MRU;
+ CRecentFileAndURLList MRUDub;
+
+ CAutoPtrList<FilterOverride> filters;
+
+ CRenderersSettings m_RenderersSettings;
+
+ int iDSVideoRendererType;
+ int iRMVideoRendererType;
+ int iQTVideoRendererType;
+
+ int nVolume;
+ int nBalance;
+ bool fMute;
+ int nLoops;
+ bool fLoopForever;
+ bool fRewind;
+ int iZoomLevel;
+ // int iVideoRendererType;
+ CStringW AudioRendererDisplayName;
+ bool fAutoloadAudio;
+ bool fAutoloadSubtitles;
+ bool fBlockVSFilter;
+ bool fEnableWorkerThreadForOpening;
+ bool fReportFailedPins;
+
+ CStringW f_hmonitor;
+ bool fAssociatedWithIcons;
+ CStringW f_lastOpenDir;
+
+ bool fAllowMultipleInst;
+ int iTitleBarTextStyle;
+ bool fTitleBarTextTitle;
+ int iOnTop;
+ bool fTrayIcon;
+ bool fRememberZoomLevel;
+ bool fShowBarsWhenFullScreen;
+ int nShowBarsWhenFullScreenTimeOut;
+ AChFR AutoChangeFullscrRes;
+ bool fExitFullScreenAtTheEnd;
+ bool fRestoreResAfterExit;
+ bool fRememberWindowPos;
+ bool fRememberWindowSize;
+ bool fSnapToDesktopEdges;
+ CRect rcLastWindowPos;
+ UINT lastWindowType;
+ CSize AspectRatio;
+ bool fKeepHistory;
+
+ CString sDVDPath;
+ bool fUseDVDPath;
+ LCID idMenuLang, idAudioLang, idSubtitlesLang;
+ bool fAutoSpeakerConf;
+
+ STSStyle subdefstyle;
+ bool fOverridePlacement;
+ int nHorPos, nVerPos;
+ int nSubDelayInterval;
+ bool fEnableSubtitles;
+ bool fUseDefaultSubtitlesStyle;
+ bool fPrioritizeExternalSubtitles;
+ bool fDisableInternalSubtitles;
+ CString szSubtitlePaths;
+
+ bool fDisableXPToolbars;
+ bool fUseWMASFReader;
+ int nJumpDistS;
+ int nJumpDistM;
+ int nJumpDistL;
+ bool fLimitWindowProportions;
+ bool fNotifyMSN;
+ bool fNotifyGTSdll;
+
+ bool fEnableAudioSwitcher;
+ bool fDownSampleTo441;
+ bool fAudioTimeShift;
+ int tAudioTimeShift;
+ bool fCustomChannelMapping;
+ DWORD pSpeakerToChannelMap[18][18];
+ bool fAudioNormalize;
+ bool fAudioNormalizeRecover;
+ float AudioBoost;
+
+ bool fIntRealMedia;
+ //bool fRealMediaRenderless;
+ int iQuickTimeRenderer;
+ float RealMediaQuickTimeFPS;
+
+ CStringArray m_pnspresets;
+
+ CList<wmcmd> wmcmds;
+ HACCEL hAccel;
+
+ bool fWinLirc;
+ CString WinLircAddr;
+ CWinLircClient WinLircClient;
+ bool fUIce;
+ CString UIceAddr;
+ CUIceClient UIceClient;
+ bool fGlobalMedia;
+
+ CMediaFormats Formats;
+
+ UINT SrcFilters, TraFilters, DXVAFilters, FFmpegFilters;
+
+ CString logofn;
+ UINT logoid;
+ bool logoext;
+
+ bool fHideCDROMsSubMenu;
+
+ DWORD priority;
+ bool launchfullscreen;
+
+ BOOL fEnableWebServer;
+ int nWebServerPort;
+ int nCmdlnWebServerPort;
+ bool fWebServerPrintDebugInfo;
+ bool fWebServerUseCompression;
+ bool fWebServerLocalhostOnly;
+ CString WebRoot, WebDefIndex;
+ CString WebServerCGI;
+
+ CString SnapShotPath, SnapShotExt;
+ int ThumbRows, ThumbCols, ThumbWidth;
+
+ CString ISDb;
+
+ struct Shader
+ {
+ CString label;
+ CString target;
+ CString srcdata;
+ };
+ CAtlList<Shader> m_shaders;
+ CString m_shadercombine;
+ CString m_shadercombineScreenSpace;
+
+ // === CASIMIR666 : nouveau settings
+ bool fD3DFullscreen;
+ bool fMonitorAutoRefreshRate;
+ bool fLastFullScreen;
+ bool fEnableEDLEditor;
+ float dBrightness;
+ float dContrast;
+ float dHue;
+ float dSaturation;
+ CString strShaderList;
+ CString strShaderListScreenSpace;
+ bool m_bToggleShader;
+ bool m_bToggleShaderScreenSpace;
+
+ bool fRememberDVDPos;
+ bool fRememberFilePos;
+ bool fShowOSD;
+ int iLanguage;
+
+ // BDA configuration
+ int iDefaultCaptureDevice; // Default capture device (analog=0, 1=digital)
+ CString strAnalogVideo;
+ CString strAnalogAudio;
+ int iAnalogCountry;
+ CString BDANetworkProvider;
+ CString BDATuner;
+ CString BDAReceiver;
+ int DVBLastChannel;
+ CAtlList<CDVBChannel> DVBChannels;
+
+ HWND hMasterWnd;
+
+ bool IsD3DFullscreen();
+ CString SelectedAudioRenderer();
+ void ResetPositions();
+ DVD_POSITION* CurrentDVDPosition();
+ bool NewDvd(ULONGLONG llDVDGuid);
+ FILE_POSITION* CurrentFilePosition();
+ bool NewFile(LPCTSTR strFileName);
+
+ void SaveCurrentDVDPosition();
+ void SaveCurrentFilePosition();
+
+ void DeserializeHex (LPCTSTR strVal, BYTE* pBuffer, int nBufSize);
+ CString SerializeHex (BYTE* pBuffer, int nBufSize);
+
+private :
+ DVD_POSITION DvdPosition[MAX_DVD_POSITION];
+ int nCurrentDvdPosition;
+ FILE_POSITION FilePosition[MAX_FILE_POSITION];
+ int nCurrentFilePosition;
+
+ __int64 ConvertTimeToMSec(CString& time);
+ void ExtractDVDStartPos(CString& strParam);
+
+ void CreateCommands();
+
+public:
+ CAppSettings();
+ virtual ~CAppSettings();
+ void UpdateData(bool fSave);
+
+ void GetFav(favtype ft, CAtlList<CString>& sl);
+ void SetFav(favtype ft, CAtlList<CString>& sl);
+ void AddFav(favtype ft, CString s);
+ CDVBChannel* FindChannelByPref(int nPrefNumber);
+
+ bool m_fPreventMinimize;
+ bool m_fUseWin7TaskBar;
+ bool m_fExitAfterPlayback;
+ bool m_fNextInDirAfterPlayback;
+ bool m_fDontUseSearchInFolder;
+ int nOSD_Size;
+ CString m_OSD_Font;
+ CStringW m_subtitlesLanguageOrder;
+ CStringW m_audiosLanguageOrder;
+
+ int fnChannels;
+
+ CString D3D9RenderDevice;
+};
+
diff --git a/src/apps/mplayerc/Authors.txt b/src/apps/mplayerc/Authors.txt
index 62ae9904b..0c4f5ff57 100644
--- a/src/apps/mplayerc/Authors.txt
+++ b/src/apps/mplayerc/Authors.txt
@@ -16,8 +16,9 @@ jonasno <jonasno@users.sourceforge.net> (Code; Swedish)
XhmikosR <xhmikosr@users.sourceforge.net> (Various stuff)
KindDragon <kinddragon@users.sourceforge.net> (Code)
nevcairiel <nevcairiel@users.sourceforge.net> (Code)
-heksesang <heksesang@users.sourceforge.net> (Code)
Attila T. Afra <attila.afra@gmail.com> (Code)
+Di Luo (sansnom05) <sansnom05@users.sourceforge.net> (Code)
+xpc1000 <xpc1000@users.sourceforge.net> (Code)
Translators:
@@ -45,10 +46,11 @@ roytam1 <roytam1@users.sourceforge.net> (Japanese, Chine
Contributors: (listed alphabetically)
------------------------------------------------
-Alexx999, foxx1337, mrtz, nielsm, skaarj1, thevbm, v0lt, X-Dron, XPC
+Alexx999, foxx1337, heksesang, mtrz, nielsm, skaarj1, thevbm, Underground78,
+v0lt, VSFilterMod team, X-Dron
Many thanks to everyone who supported development without having
svn write access.
-Based on the original version (C) 2002-2006 by gabest (e-mail unknown)
+Based on the original version (C) 2002-2006 by Gabest (e-mail unknown)
diff --git a/src/apps/mplayerc/Changelog.txt b/src/apps/mplayerc/Changelog.txt
index 60a773e96..ca815794c 100644
--- a/src/apps/mplayerc/Changelog.txt
+++ b/src/apps/mplayerc/Changelog.txt
@@ -1,59 +1,91 @@
-v1.4.x.0 - unreleased
-======================
+v1.5.xxxx.0 - unreleased
+========================
+ NEW : Added new options to always default to external subtitles, ignore
+ embedded subtitles and to set the autoload subtitle paths
+ NEW : LCN support for DVB
+ NEW : Added support for 'in24', 'fl64' and 8-bit 'sowt' audio
+ NEW : Added support for 'IMA4' audio
+ NEW : Added support for 'NONE' audio (old QuickTime PCM)
+ NEW : Added channel encryption detection for DVB-t during scan
+ CHANGED: Updated FFmpeg
+ CHANGED: Cleaned up and optimized code for QT PCM, small corrections in MP4Splitter
+ FIXED : Ticket #564, EVR Sync enabled when it shouldn't be
+ FIXED : Ticket #651, Make EVR CP stats graph smaller
+ FIXED : Ticket #652, Escape key on certain form causes form to collapse
+ FIXED : Ticket #698, VMR-9 (Renderless) + pixel shaders crashes
+ FIXED : Ticket #699, fix EAC3 mediatype and string
+ FIXED : Ticket #724, Frequency range and bandwidth value are currently
+ not taken into account when doing a scan
+
+
+v1.4.2499.0 - 7 September 2010
+==============================
NEW : Seamless playback support for multi files BRD
NEW : Support for Windows 7 taskbar and thumbnails features
- NEW : Added Catalan, Dutch and Japanese translation
+ NEW : Added Catalan, Dutch and Japanese translations
NEW : VSFilter x64 is available
NEW : Added internal VP8 Decoder
NEW : MPC-HC can be compiled with MSVC2010 and Intel C++ Compiler
- NEW : Support for MCE remote control (values added in AppCommand column in "Options/Player/Keys")
- NEW : Support of Broadcom Video decoder for VC1, H264 and Mpeg2 (hardware acceleration)
+ NEW : Support for MCE remote control (values added in AppCommand column in
+ "Options/Player/Keys")
+ NEW : Support of Broadcom Video decoder for VC1, H.264 and MPEG-2
+ (hardware acceleration)
NEW : Support for DVB subtitles
NEW : Open files to Recent Documents
NEW : AUTO HDMI MODE 1080p/24 support for fullscreen mode
NEW : Ticket #46, add number to AudioDevice list
NEW : Sync Renderer dialogs
NEW : Real Video decoder in MPCVideoDecoder
- NEW : Support interlace mode in fullscreen resolution list
+ NEW : Support interlaced mode in fullscreen resolution list
NEW : Auto change fullscreen resolution for different video content
- NEW : Add fullscreen Option page
+ NEW : Fullscreen Options page
NEW : Video decoder, options for DXVA Compatibility check
- NEW : Support for Mpeg2 bitstream in DXVA decoder
- NEW : Full screen resolution - support for native 23.976 and 29.97 mode (Vista and above only)
+ NEW : Support for MPEG-2 bitstreaming in the DXVA decoder
+ NEW : Full screen resolution - support for native 23.976 and 29.97 mode
+ (Vista and above only)
NEW : Auto resolution change for DVD
- NEW : Exit after playback always option
+ NEW : Always Exit after playback option
NEW : Support for SRM7500 remote control
- NEW : Add number to AudioDevice list
- NEW : New panel for switching DVB channels, audio and tuner scan accessible through View-->Navigation menu when in Capture mode
+ NEW : New panel for switching DVB channels, audio and tuner scan
+ accessible through View-->Navigation menu when in Capture mode
NEW : Automatically play next files in a folder
- NEW : Implemented 'Quick add favorite' shortcut (default: Shift + Q), will use current settings from 'Add Favorite' dialog
- NEW : Select D3D device for render, incl. DXVA(EVR Custom & VMR9-Renderless only) if 2 ore more video adapter in system
- NEW : Statistics - add render device
+ NEW : Implemented 'Quick add favorite' shortcut (default: Shift + Q)
+ will use current settings from 'Add Favorite' dialog
+ NEW : Select D3D device for render, including DXVA if two or more video
+ adapters are in the system (EVR Custom & VMR9-Renderless only)
+ NEW : Statistics - added render device
NEW : Ability to select OSD font & size
- NEW : Option "Don't use 'search in folder' on commands 'Skip back/forward' when only one item in playlist"
- NEW : H.264 L5.1 DXVA support for ATI cards with drivers > v8.14.1.6105 (Catalyst 10.4)
- NEW : MPCVIdeoDecoder, disable DXVA(H.264) for SD video(width < 1280)
+ NEW : Option "Don't use 'search in folder' on commands 'Skip back/forward'
+ when only one item in playlist"
+ NEW : H.264 L5.1 DXVA support for ATI cards with drivers > v8.14.1.6105
+ (Catalyst 10.4)
+ NEW : MPCVideoDecoder, disable DXVA (H.264) for SD video (width < 1280)
NEW : Improved DXVA compatibility check
NEW : Implemented drag and drop folders with sub-folders
- NEW : Support for MPEG1/Layer1 audio stream in Matroska splitter
- NEW : Command that switch video frame mode (key 'P')
+ NEW : Support for MPEG-1/Layer1 audio stream in the Matroska splitter
+ NEW : Command to switch video frame mode (key 'P')
NEW : Video frame options like in TV: Zoom 1 and Zoom 2
NEW : Auto saving position every 30 seconds
- NEW : Internal filters context menu added (disable/enable)
- NEW : Command reopen file (Ctrl+E)
- NEW : Support for Matroska presentation graphics
+ NEW : Added internal filters context menu (disable/enable)
+ NEW : Command to reopen file (Ctrl+E)
+ NEW : Support for PGS in Matroska
NEW : Open root BD movie from command line & shell context menu
- NEW : OSD messages added when switched audio stream or subtitles
- NEW : OSD on Jump Forward/Backward(keyframe)
+ NEW : OSD messages added when switching audio stream or subtitles
+ NEW : OSD on Jump Forward/Backward (keyframe)
NEW : OSD when open DVD/BD
NEW : OSD for jump to chapter in file
NEW : Detect system UI language and set interface language at first run
- NEW : Full ICC color management (Little CMS v2.0a library added)
+ NEW : Full ICC color management (Little CMS v2.1a library added)
NEW : Full floating point processing (FP16 temporary textures)
- NEW : High-quality dithering (color management, full floating point processing, 10-bit -> 8-bit)
- NEW : Option to force 10-bit EVR mixer input (probably hackish, but in many cases it seems to work)
- NEW : Added MediaInfoLib (v0.7.34) so there's no need for MediaInfo.dll anymore
- CHANGED: Updated UnrarDll. It is now possible to use the 64bit unrardll with the 64bit MPC-HC
+ NEW : High-quality dithering (color management, full floating point
+ processing, 10-bit -> 8-bit)
+ NEW : Option to force 10-bit EVR mixer input (probably hackish,
+ but in many cases it seems to work)
+ NEW : Added MediaInfoLib (v0.7.35) (no need for MediaInfo.dll anymore)
+ NEW : Added support for MPEG-2_VLD DXVA for Intel G31/33
+ (and maybe other Intel) chipset
+ CHANGED: Updated UnrarDll. It is now possible to use the 64bit UnrarDll
+ with the 64bit MPC-HC
CHANGED: Updated Detours to v2.1 build 216
CHANGED: Updated Bento4 to v1.2.3.0
CHANGED: Updated libpng to v1.4.3
@@ -64,44 +96,55 @@ v1.4.x.0 - unreleased
CHANGED: Updated PNGDIB to v3.1.0
CHANGED: Updated sizecbar to v2.45
CHANGED: Better support for madVR
- CHANGED: Updated Hungarian, Russian, Polish, Slovak, Portuguese, Ukrainian, Spanish, Swedish, Czech, Traditional Chinese, German translation
+ CHANGED: Updated Hungarian, Russian, Polish, Slovak, Portuguese, Ukrainian,
+ Spanish, Swedish, Czech, Traditional Chinese, German, Italian, Turkish
+ and Hungarian translations
CHANGED: Updated FFmpeg
CHANGED: Updated installer script
CHANGED: "DirectShow Audio" label on playback->output now says "Audio Renderer"
- CHANGED: Ticket #27: Allow screensaver to activate when audio only (sleep is still stopped).
- CHANGED: Add open file to Recent Document only if "Keep history of recently opened files" checked
+ CHANGED: Ticket #27: Allow screensaver to activate when audio only
+ (sleep is still stopped)
+ CHANGED: Add open file to Recent Document only if "Keep history of recently
+ opened files" is checked
CHANGED: Select and change resolution for selected fullscreen monitor
CHANGED: Improve options for fullscreen monitor and resolution
- CHANGED: Open DVD root folder(include VIDEO_TS) from explorer context menu
+ CHANGED: Open DVD root folder (include VIDEO_TS) from explorer context menu
CHANGED: Many internal code improvements for more stability
- CHANGED: Improved play list
+ CHANGED: Improved playlist
CHANGED: Improved subtitle handling
CHANGED: Rewritten DVXA check for better readability
- CHANGED: Disabled internal H264(AVC) decoder for interlaced files (bad supported by ffmpeg)
- CHANGED: "Pause" message in OSD stay until play command
+ CHANGED: Disabled internal H.264 (AVC) decoder for interlaced files
+ (bad supported by FFmpeg)
CHANGED: Show filename in OSD at open, instead "Pause/Play"
- CHANGED: Add 'x64' suffix in Title and 'About' for x64 build
+ CHANGED: Add 'x64' suffix in Title and in the About dialog for the x64 build
CHANGED: OSD file name at open show delay up to 3 sec.
- CHANGED: Core rendering code in the DX9AllocatorPresenter class moved to a new class: DX9RenderingEngine
- CHANGED: "10 bit RGB" option changed to "10-bit RGB Output", does not affect internal processing anymore
+ CHANGED: Core rendering code in the DX9AllocatorPresenter class is moved
+ to a new class: DX9RenderingEngine
+ CHANGED: "10 bit RGB" option changed to "10-bit RGB Output", does not affect
+ internal processing anymore
CHANGED: Removed unnecessary temporary texture allocations
+ CHANGED: Removed old player logos and added a new one
FIXED : Name of MPC-HC in title bar (Bug #2826963)
- FIXED : Web interface status.html not showing status/media state when Status bar is turned off (Bug #2025675)
- FIXED : Ticket #12, crash/hang after standby, hibernate, UAC or CTRL+ALT+DEL
- FIXED : Ticket #74, [MP4] AAC sound stops playing
- FIXED : Ticket #116, issue some MPEG(mono) audio playback
+ FIXED : Web interface status.html not showing status/media state when
+ Status bar is turned off (Bug #2025675)
+ FIXED : Ticket #12, crash/hang after standby, hibernate, UAC or CTRL+ALT+DEL
+ FIXED : Ticket #74, [MP4] AAC sound stops playing
+ FIXED : Ticket #116, issue with some MPEG (mono) audio playback
FIXED : Ticket #120, Inner PCM inside QT .mov is supported now
FIXED : Ticket #150, issue with playback AMR sound
FIXED : Ticket #161 and #414, "no audio capture device"
FIXED : Ticket #163, Crash with RealMedia
FIXED : Ticket #237, DVB channels are all saved as number 0 when tuning
FIXED : Ticket #242, No PCM sowt audio in MOV
- FIXED : Ticket #258, speaker configuration (>Audio Switcher) isn't stored
+ FIXED : Ticket #258, speaker configuration in Audio Switcher isn't stored
+ FIXED : Ticket #281, [CAPTURE] No video decoding when capturing from DVB-T
+ card with internal MPEG2 DVXA Decoder enabled
FIXED : Ticket #282, Auto-zoom function problem
FIXED : Ticket #295, SSA/ASS and other save subtitle formats problem
FIXED : Ticket #300, Regression when hiding Caption and Menubar
FIXED : Ticket #333, Missing tracks when playing a TS file
FIXED : Ticket #363, #563, Can't open some mp3
+ FIXED : Ticket #385, no chapters with MP4Splitter
FIXED : Ticket #455, Bug with PGS subtitles
FIXED : Ticket #456, Problem with auto-loading subtitles fixed
FIXED : Ticket #465, MPEG/TS splitter can't recognize some video track
@@ -111,287 +154,390 @@ v1.4.x.0 - unreleased
FIXED : Ticket #513, .rmvb interlaced decoding
FIXED : Ticket #511, Subtitle renderer crash fixed
FIXED : Ticket #528, Unable to scan for dvb-t
- FIXED : Ticket #536, [MKV] Default values of the spec should be strictly followed
+ FIXED : Ticket #536, [MKV] Default values of the specification should be
+ strictly followed
FIXED : Ticket #576, Next AR Preset Issue
FIXED : Ticket #578, VSFilter crash fix with certain malformed drawing lines
FIXED : Ticket #599, ignores /audiorender option
FIXED : Ticket #601, BD movie length detect wrong
+ FIXED : Ticket #660, Pressing left arrow under Options->Logo causes right
+ arrow to disappear
+ FIXED : Ticket #661, Ctrl+C / File->Close form size discrepancy
+ FIXED : Ticket #672, DVB-T - image problems after changing from tv channel
+ to radio & back
FIXED : Ticket #677, Wrong colors using Color Management
- FIXED : Ticket #679, add color management status in evr cp graph settings
- FIXED : Ticket #680, don't hide controls in full screen does not work unless you move the mouse
+ FIXED : Ticket #679, add color management status in EVR CP graph settings
+ FIXED : Ticket #680, "Don't hide controls in full screen" does not work
+ unless you move the mouse
+ FIXED : Ticket #694, DLL preloading vulnerability
+ FIXED : Ticket #696, [GUI] use options dialog causes main window elements
+ to disappear
+ FIXED : Ticket #714, MPEG2 detected as H264
+ FIXED : Ticket #717, Fullscreen controls are not displayed until mouse is moved
FIXED : Opening multiple files via Explorer context menu
FIXED : Memory leak in libavcodec
FIXED : Memory leak in DXVA decoder
- FIXED : Playing some broken avi files
+ FIXED : Playback of some broken avi files
FIXED : Fix VCD playback
- FIXED : Better detection of "Used For Reference Flags" (fix some broken DXVA samples)
+ FIXED : Better detection of "Used For Reference Flags" (fixes some broken
+ DXVA samples)
FIXED : Screensaver activating during video playback on XP
FIXED : Audio language detection for HDMV (broken by seamless playback feature)
FIXED : Bug with prevent sleep mode
FIXED : Bug in "Open File" dialog & "Add to Playlist" checked
- FIXED : Default(center) window position after file close
+ FIXED : Default (center) window position after file close
FIXED : Issue with a switch to fullscreen mode
FIXED : FavoriteAdd dialog
FIXED : Possible buffer overflows
FIXED : Bug with launch in fullscreen
- FIXED : Incorrect decoding with Mpeg2 bitstream decoder on video with alternative scan
- FIXED : Seeking problem with mpeg files
- FIXED : Don't show OSD message when auto play disable
+ FIXED : Incorrect decoding with MPEG-2 bitstream decoder on video with
+ alternative scan
+ FIXED : Seeking problem with MPEG files
+ FIXED : Don't show OSD message when auto play is disabled
FIXED : Checking for duplicates in display modes
- FIXED : Correct state when done playback(rewind fix)
+ FIXED : Correct state when done playback (rewind fix)
FIXED : Incorrect minimal window height calculation when caption is on
FIXED : Search in dir function
FIXED : Play video from network share
- FIXED : Incorrect position(desktop) after fullscreen when play multiple files on multi-monitor system
- FIXED : Playback issue for some h264 media files that captured from distal cameras
- FIXED : Some small DVB-T fixes
+ FIXED : Incorrect position (desktop) after fullscreen when playing multiple
+ files on multi-monitor systems
+ FIXED : Playback issue for some H.264 media files captured from digital cameras
+ FIXED : Various DVB-T fixes
FIXED : DXVA regression: black video with some files
FIXED : Crash in Matroska splitter with unknown streams
- FIXED : OSD show wrong(previous) audio stream on change
+ FIXED : OSD shown wrong (previous) audio stream on change
FIXED : Improved DVD resume
- FIXED : Crash with some VOB subtitles fixed
- FIXED : Undetected H264 video streams in Mpeg splitter
- FIXED : Incorrect identification of the video stream (H.264 instead of MPEG2) in MPEG splitter
+ FIXED : Crash with some VOB subtitles
+ FIXED : Undetected H.264 video streams in MPEG splitter
+ FIXED : Incorrect identification of the video stream in MPEG splitter
+ (H.264 instead of MPEG-2)
FIXED : Logical/numeric sorting in Playlist, "Play next in the folder"
FIXED : OSD on open BD
FIXED : MPEGSplitter - could not read some MPEG files
FIXED : Crashes with MSVC2010 builds
- FIXED : The EVR mixer output media subtype matches the surface format (as a consequence, it's always RGB)
+ FIXED : The EVR mixer output media subtype matches the surface format
+ (as a consequence, it's always RGB)
+ FIXED : Incorrect length detection of MPEG, DVD (.ifo)
-v1.3.1249.0 - 26 august 2009
-======================
+v1.3.1249.0 - 26 August 2009
+============================
NEW : Support for Flac audio streams
- NEW : Support for Dolby Digital+ (Eac3) and Dolby true HD (MLP)
+ NEW : Support for Dolby Digital+ (EAC3) and Dolby true HD (MLP)
NEW : Nellymoser audio decoder
NEW : Belarussian, Brazilian and Swedish translation
- NEW : New shader "Sharpen Complex 2" (required hardware compatible with pixel shader 2.A)
+ NEW : New shader "Sharpen Complex 2" (required hardware compatible with
+ pixel shader 2.A)
NEW : Support for madVR video renderer (http://madshi.net/madVR.zip)
- NEW : Additional information on video using MediaInfo (DLL can be download from http://mediainfo.sourceforge.net and placed in mpc-hc directory)
- NEW : Internal DXVA decoder support for H264 with Intel G45 (thanks for people who help me at Intel Corp.)
- CHANGED: Add support of interlaced flags in software mode for MPCVideoDecoder filter
- CHANGED: D3DFullScreen mode now takes into account the monitor to full-screen mode in options, if monitor is not specified on the command line.
- CHANGED: Auto-hide playlist on fullscreen (feature request #2219561)
+ NEW : Additional information on video using MediaInfo
+ (DLL can be download from http://mediainfo.sourceforge.net
+ and placed in MPC-HC directory)
+ NEW : Internal DXVA decoder support for H.264 with Intel G45
+ (thanks to the people who helped me at Intel Corp.)
+ CHANGED: Add support of interlaced flags in software mode for MPCVideoDecoder
+ filter
+ CHANGED: D3DFullScreen mode now takes into account the monitor to full-screen
+ mode in options, if monitor is not specified on the command line
+ CHANGED: Auto-hide playlist on fullscreen (feature request #2219561)
CHANGED: Detours library updated to v2.1
CHANGED: Support for AC3 in MP4 splitter
- CHANGED: Support for EAc3 in Matroska splitter
+ CHANGED: Support for EAC3 in Matroska splitter
CHANGED: Hotkeys added to support more remote control keys
CHANGED: Support for Theora in Matroska internal splitter
CHANGED: LibVorbis updated to v1.2.3
CHANGED: LibOgg updated to v1.1.4
CHANGED: Improved streaming performances
CHANGED: Prevent display or computer to sleep during playback
- CHANGED: Faad library updated to rev 2.2.7
- CHANGED: LibPNG updated to release 1.2.38 (fix security bug)
- CHANGED: Playlist file is now saved in mpc folder (patch # 2671496)
- CHANGED: frame by frame modify to support step frame back functionality (except for VMR9)
- CHANGED: support for AC3 in MP4 files created by Nero Digital
- CHANGED: EVR custom and VMR9 renderless revamped (Beliyaal), better synchronization, remove tearing in windowed mode, support for dialog box in DirectX exclusive mode, ...
+ CHANGED: FAAD library updated to rev 2.2.7
+ CHANGED: libpng updated to release 1.2.38 (fix security bug)
+ CHANGED: Playlist file is now saved in the MPC-HC folder (patch # 2671496)
+ CHANGED: frame by frame modify to support step frame back functionality
+ (except for VMR9)
+ CHANGED: support for AC3 in MP4 files created with Nero Digital
+ CHANGED: EVR Custom and VMR9 Renderless revamped (Beliyaal),
+ better synchronization, remove tearing in windowed mode,
+ support for dialog box in DirectX exclusive mode, ...
FIXED : Support for Theora stream in Ogg internal splitter
FIXED : Save thumbnails crash in x64
- FIXED : Bugs on presentation graphics (missing subtitles, better synchronization)
+ FIXED : Bugs on presentation graphics
+ (missing subtitles, better synchronization)
FIXED : Audio change on M2TS files reset the selected subtitle
FIXED : Switch to "Minimal view" reset main menu language to English
- FIXED : Bug in Mpeg splitter for VC1
- FIXED : Maximum texture resolution to "Desktop" not working with Haali renderer (Bug #2456735)
- FIXED : Better synchronization with EVR custom to improve playback smoothness
+ FIXED : Bug in MPEG splitter for VC1
+ FIXED : Maximum texture resolution to "Desktop" not working with Haali
+ renderer (Bug #2456735)
+ FIXED : Better synchronization with EVR Custom to improve playback smoothness
FIXED : 24 bits LPCM not properly play
FIXED : Possible deadlock with Reclock
- FIXED : Support of framestep backward, even if the codec didn't support it natively (bug #2600542)
- FIXED : DXVA decoder support multiple graphics cards (PCI vendor id detection on the fly)
- FIXED : Incorrect aspect ratio for some H264 files with DXVA1 decoder (extended SAR)
- FIXED : H264 files with 16 reference frames freeze during playback (bug #2795785 and #2784256)
- FIXED : AVI with H264 not decoded properly (bug #2794854)
- FIXED : Revamped DXVA h264 decoder based on new insights, fixing black screen, macroblock, support for AVI, ...
+ FIXED : Support of framestep backward, even if the codec didn't support it
+ natively (bug #2600542)
+ FIXED : DXVA decoder support multiple graphics cards
+ (PCI vendor id detection on the fly)
+ FIXED : Incorrect aspect ratio for some H.264 files with DXVA1 decoder
+ (extended SAR)
+ FIXED : H.264 files with 16 reference frames freeze during playback
+ (bug #2795785 and #2784256)
+ FIXED : AVI with H.264 not decoded properly (bug #2794854)
+ FIXED : Revamped DXVA H.264 decoder based on new insights, fixing black screen
+ macroblock, support for AVI, ...
FIXED : Incorrect playback for padded DTS
- FIXED : Hang when moving player between monitors
+ FIXED : Hang when moving player between monitors
v1.2.908.0 - 30 November 2008
-======================
- NEW : support Multi-Monitor configuration, select Monitor for full-screen playback
- NEW : creation of minidump when mpc crash
+=============================
+ NEW : support Multi-Monitor configuration, select Monitor for full-screen
+ playback
+ NEW : a minidump file is created when MPC-HC crashes
NEW : Simplified Chinese & Traditional Chinese translations
NEW : Pixel shader to convert BT601 -> BT701 (request #1911511)
- NEW : YV12 Chroma Upsampling pixel shader added (http://forum.doom9.org/showthread.php?p=1184975#post1184975)
- NEW : Recursively adding directories to the Playlist (feature request #2013805), add as New Menu item
- NEW : Support for M2TS presentation graphics streams (only for EVR Custom and VMR9 Renderless)
- NEW : Command lines "/startpos hh:mm:ss.ff", "/dvdpos title#chapter" and "/dvdpos title#hh:mm:ss.ff" to start playback to position
- NEW : Different icons for each format associated with mpc
- NEW : support H264 and AAC in FLV splitter
+ NEW : YV12 Chroma Upsampling pixel shader added
+ (http://forum.doom9.org/showthread.php?p=1184975#post1184975)
+ NEW : Recursively adding directories to the Playlist
+ (feature request #2013805), add as New Menu item
+ NEW : Support for M2TS presentation graphics streams
+ (only for EVR Custom and VMR9 Renderless)
+ NEW : Command line switches "/startpos hh:mm:ss.ff", "/dvdpos title#chapter"
+ and "/dvdpos title#hh:mm:ss.ff" to start playback to position
+ NEW : Different icons for each format associated with MPC-HC
+ NEW : support H.264 and AAC in FLV splitter
CHANGED: Add VIRTKEY for "Save Thumbnails" (request #1964399)
- CHANGED: Store the settings for the internal DXVA/FFmpeg decoders in a different value than the other internal decoders. This makes the settings better interchangeable with old MPC builds. Also gives more room in the bitvector for adding more (FFmpeg based) decoders in the future.
- CHANGED: PAR correction option (for anamorphic video)in VSFilter and RealText support
- CHANGED: liba52 & libdts library updated
- CHANGED: x64 edition of MPCVideodec is now build using GCC/MingW64 (improve performances)
- CHANGED: Gui option for Explorer Context menu->Files(see Formats Page)
- CHANGED: Gui option for Explorer Context menu->Directory(see Formats Page)
- CHANGED: Open directory(shell context menu or MPC-HC menu) - load only enqueue audio/video files, those with file extensions from the Formats page in MPC options
- CHANGED: Replaced command line switches /unregvid and /unregaud with a new switch /unregall. That cleans up all file associations, including image/playlist formats.
- CHANGED: Change in VideoDecoder Settings for rev.681(read AR from stream)
+ CHANGED: Store the settings for the internal DXVA/FFmpeg decoders
+ in a different value than the other internal decoders. This makes
+ the settings better interchangeable with older MPC-HC builds.
+ Also gives more room in the bitvector for adding more decoders
+ in the future (FFmpeg based)
+ CHANGED: PAR correction option (for anamorphic video)in VSFilter
+ and RealText support
+ CHANGED: Updated liba52 & libdts libraries
+ CHANGED: The x64 version of MPCVideodec is now built using GCC/MinGW64
+ (improves performance)
+ CHANGED: GUI option for Explorer Context menu->Files (see Formats Page)
+ CHANGED: GUI option for Explorer Context menu->Directory (see Formats Page)
+ CHANGED: Open directory (shell context menu or MPC-HC menu) -
+ load only enqueues audio/video files, those with file extensions
+ from the Formats page in MPC-HC options
+ CHANGED: Replaced command line switches /unregvid and /unregaud with
+ a new switch /unregall. This cleans up all file associations,
+ including image/playlist formats
+ CHANGED: Change in VideoDecoder Settings for rev.681 (read AR from stream)
CHANGED: Open DVD detect and open Blu Ray main movie
- CHANGED: Eac3 support in Mpeg splitter
- CHANGED: Number of file and DVD position increase from 5 to 20 (req #1819709)
- CHANGED: Bypass of UOPs for DVD (req #1811508). This feature didn't works for x64 build
- CHANGED: LibPNG updated to release 1.2.32 (fix memory leaks)
+ CHANGED: EAC3 support in MPEG splitter
+ CHANGED: Number of files and DVD position increase from 5 to 20 (req #1819709)
+ CHANGED: Bypass of UOPs for DVD (req #1811508). This feature didn't work
+ for the x64 build
+ CHANGED: libpng updated to release 1.2.32 (fixes a memory leak)
FIXED : Chapter message improperly displayed in status bar (for file only)
- FIXED : Crash with CoreAVC when changing "preferred decoder" setting during playback
- FIXED : Missing checkmarks on "tearing test" and "display stats" options (bug #2010857)
+ FIXED : Crash with CoreAVC when changing "preferred decoder" setting
+ during playback
+ FIXED : Missing checkmarks on "tearing test" and "display stats" options
+ (bug #2010857)
FIXED : Save image/thumbnail not working with EVR (bug #2010681)
- FIXED : Workaround to prevent GraphEdit crash when MPCVideoDec.ax was registered (when opening menu "Graph/Insert filter/Direct show filters")
- FIXED : Fix rare seeking issue with VobSubs in VSFilter
- FIXED : Subtitle style not save in settings.
- FIXED : random freeze when using mpc-hc, vsfilter and Haali renderer at the same time
- FIXED : shortcuts with MEDIA_PLAY, MEDIA_PAUSE not working with some remote control
+ FIXED : Workaround to prevent GraphEdit crash when MPCVideoDec.ax
+ was registered.
+ (when opening menu "Graph/Insert filter/Direct show filters")
+ FIXED : Fix rare seeking issue with VobSub in VSFilter
+ FIXED : Subtitle style not save in settings
+ FIXED : random freeze when using MPC-HC, VSFilter and Haali renderer
+ at the same time
+ FIXED : shortcuts with MEDIA_PLAY, MEDIA_PAUSE not working with some
+ remote controls
FIXED : shortcuts label in "Option / Key" dialog box is now localized
- FIXED : MPC-HC file association cleanup bug (rev.731), these commands are not working: mplayerc /unregvid, mplayerc /unregaud
- FIXED : Freeze when play Mpeg2 or XVid file
+ FIXED : MPC-HC file association cleanup bug (rev.731), these commands
+ are not working: mplayerc /unregvid, mplayerc /unregaud
+ FIXED : Freeze when playing MPEG-2 or Xvid file
FIXED : Remember position not working with some DVDs
- FIXED : DXVA decoder now support H264 interlaced video
+ FIXED : DXVA decoder now support H.264 interlaced video
FIXED : Crash/black screen with DXVA decoder with some ATI cards
- FIXED : Incorrect aspect ratio with some H264 files (extended SAR)
+ FIXED : Incorrect aspect ratio with some H.264 files (extended SAR)
v1.1.604.0 - 28 June 2008
-======================
+=========================
NEW : Subtitle delay support (this one does not modify the subtitle file)
NEW : Polish, Ukrainian, Italian & Slovak translations
- NEW : Support for M2TS files with H264, VC1, AC3, DTS, LPCM
- NEW : Mpeg2 support for x64 edition
- CHANGED: Improved support for audio and subtitle switching with internal Mpeg splitter.
- CHANGED: Size shrink for translation DLLs
- CHANGED: New property page for "MPC - Video decoder" standalone filter to select activated codecs
- CHANGED: Option added in "MPC Video Decoder" property page to disable ffmpeg software decoding (to use other decoder instead)
- CHANGED: Added file extensions Evo, M2ts and m4a in option / format
- CHANGED: Force using 3D surface with EVR custom
- CHANGED: x64 executable is now mplayerc64.exe
- FIXED : Sorenson video was not played when DXVA was activated on internal filter
+ NEW : Support for M2TS files with H.264, VC1, AC3, DTS, LPCM
+ NEW : MPEG-2 support for x64 edition
+ CHANGED: Improved support for audio and subtitle switching with the
+ internal MPEG splitter
+ CHANGED: Size shrink for the translation DLLs
+ CHANGED: New property page for "MPC - Video decoder" standalone filter
+ to select activated codecs
+ CHANGED: Option added in "MPC - Video Decoder" property page to disable
+ FFmpeg software decoding (to use other decoder instead)
+ CHANGED: Added file extensions EVO, M2TS and M4A in option / format
+ CHANGED: Force using 3D surface with EVR Custom Presenter
+ CHANGED: x64 executable is now named mplayerc64.exe
+ FIXED : Sorenson video was not played when DXVA was activated
FIXED : Minimum EVR buffer set to 3 (instead of 1)
- FIXED : Better subtitle synchronization with EVR custom (delay due to buffering remove)
- FIXED : DXVA compatibility improved with some nVidia cards
- FIXED : Report subtitle fixes from Guliverkli2
- FIXED : Incorrect colors with DXVA internal decoder for H264 files with multiple PPS / SPS settings
+ FIXED : Better subtitle synchronization with EVR Custom Presenter
+ (delay due to buffering remove)
+ FIXED : DXVA compatibility improved with some NVIDIA cards
+ FIXED : Reported subtitle fixes from Guliverkli2
+ FIXED : Incorrect colors with DXVA internal decoder for H.264 files
+ with multiple PPS / SPS settings
FIXED : Broken FLV playback
- FIXED : EVR custom presenter incompatibility with Microsoft Mpeg2 & Cyberlink decoder
- FIXED : DXVA decoding bugs for some H264 files
- FIXED : Memory leak in DXVA decoder (bug #1962448)
- FIXED : Crash on stop/play with DXVA decoder
- FIXED : Random crash with EVR custom
- FIXED : Macroblocks with nVidia card (appear on H264 streams with custom quantization matrix)
+ FIXED : EVR Custom Presenter incompatibility with Microsoft MPEG-2
+ and Cyberlink decoder
+ FIXED : DXVA decoding bugs for some H.264 files
+ FIXED : Memory leak in the DXVA decoder (bug #1962448)
+ FIXED : Crash on stop/play with the DXVA decoder
+ FIXED : Random crash with EVR Custom Presenter
+ FIXED : Macroblocks with NVIDIA card
+ (appear on H.264 streams with custom quantization matrix)
FIXED : Access violation using VSFilter as AviSynth plugin
- FIXED : Some H264 streams was not recognized by internal Mpeg splitter (PPS and SPS present on different packets)
+ FIXED : Some H.264 streams was not recognized by internal MPEG splitter
+ (PPS and SPS present on different packets)
FIXED : Black screen when OSD or subtitles was displayed in x64 release
- FIXED : Wrong Aspect Ratio when using "Save thumbnails" with EVR-Custom
+ FIXED : Wrong Aspect Ratio when using "Save thumbnails" with EVR CP
v1.1.0.0 - 6 March 2008
-======================
- NEW : Custom presenter now support DXVA2, and display hardware acceleration mode in Jitter test information.
- NEW : Internal video decoder based on ffmpeg for Flash video (FLV4, VP5,VP6), AMV, Mpeg4, SQV, Theora, VC1, XVID, and DivX
- NEW : Internal video decoder H264 with DXVA 1 acceleration (using VMR9 or overlay on XP) and DXVA2 (using EVR on Vista).
+=======================
+ NEW : Custom presenter now support DXVA2, and display hardware acceleration
+ mode in Jitter test information
+ NEW : Internal video decoder based on FFmpeg for Flash video
+ (FLV4, VP5, VP6), AMV, MPEG4, SQV, Theora, VC1, XVID, and DivX
+ NEW : Internal video decoder H.264 with DXVA 1 acceleration
+ (using VMR9 or overlay on XP) and DXVA2 (using EVR on Vista)
NEW : Korean translation
CHANGED: FAAD library updated to 2.6
CHANGED: Standalone filter renamed to be prefixed by "MPC - xxx"
CHANGED: CSS classes added in WebServer (request #1885296)
- FIXED : Incorrect colors on video when using YUV mixing and "VMR Color controls"
+ FIXED : Incorrect colors on video when using YUV mixing
+ and "VMR Color controls"
FIXED : PN31 driver installation was not working
- FIXED : MPC graph manager now use the same filter priority as WMP and graphedit (clsid patch)
- FIXED : MPC-HC is now recognize as an application by SUMo (http://www.kcsoftwares.com/index.php?sumo)
- FIXED : Ghost horizontal and vertical lines with Pixel Shader resizer (especially on ATI graphics card)
+ FIXED : MPC-HC graph manager now use the same filter priority as WMP
+ and graphedit (clsid's patch)
+ FIXED : MPC-HC is now recognized as an application by SUMo
+ (http://www.kcsoftwares.com/index.php?sumo)
+ FIXED : Ghost horizontal and vertical lines with Pixel Shader resizer
+ (especially on ATI graphics card)
FIXED : Crash in FLV splitter with file containing 0 bytes packets
FIXED : Button "Video" in format property page didn't select images anymore
- FIXED : So sound in some FLV video with Nellymoser audio track
- FIXED : Multimedia keys (mute, vol+-, ...) was captured by MPC even if option "global media keys" was off
- FIXED : YUV mixing is now disable with Vista (not supported by Vista VMR9, and cause black screen)
-
-
-v1.0.11.0 - 14 Oct 2007
-======================
- NEW : Command Line Option "/dubdelay" applies a positive or negative audio delay of ???ms, if filename contains "DELAY ???ms" (internal Audio Switcher required)
+ FIXED : No sound in some FLV video with Nellymoser audio track
+ FIXED : Multimedia keys (mute, vol+-, ...)
+ was captured by MPC-HC even if option "global media keys" was off
+ FIXED : YUV mixing is now disable with Vista
+ (not supported by Vista VMR9, and cause black screen)
+
+
+v1.0.11.0 - 14 October 2007
+===========================
+ NEW : Command Line Option "/dubdelay" applies a positive or negative
+ audio delay of ???ms, if filename contains "DELAY ???ms"
+ (internal Audio Switcher required)
NEW : Russian, Turkish, Czech, Spanish and Hungarian translations
- NEW : Internal AVI splitter support AMV files (need an ffdshow update to decode)
- CHANGED: Filetype association. MPC is now recognized as a registered media player application. Filetype registration now compatible with UAC. (Vista)
- CHANGED: Matroska internal subtitles are not loaded if "auto-load subtitles" option is off
- CHANGED: Allow DirectShow to use a disabled internal source and transform filters when no other suitable filter is available
+ NEW : Internal AVI splitter support AMV files
+ (need an ffdshow update to decode)
+ CHANGED: File type association. MPC-HC is now recognized as a registered media
+ player application. File type registration now compatible with UAC (Vista)
+ CHANGED: Matroska internal subtitles are not loaded
+ if "auto-load subtitles" option is off
+ CHANGED: Allow DirectShow to use a disabled internal source
+ and transform filters when no other suitable filter is available
FIXED : Subtitle popup menu not working in French
- FIXED : Remember file position option not working properly in playlist mode
- FIXED : Crash when opening "Navigation" menu while playing dvd (German locale only)
+ FIXED : "Remember file position" option is not working properly
+ in playlist mode
+ FIXED : Crash when opening "Navigation" menu while playing DVD
+ (German locale only)
FIXED : Memory leak with window resize
FIXED : Many GUI related things
FIXED : Crash when opening zero byte length MP3 files
- FIXED : Crash when using "Save thumbnails" with number of row or column greater than 8 (now internally limited to 8)
+ FIXED : Crash when using "Save thumbnails" with number of row or column
+ greater than 8 (now internally limited to 8)
-v1.0.10.0 - 15 Sep 2007
-======================
- CHANGED: Latest Clsid Patches (Bento4 0.9.3, faad2 2.6b, dtsdec 0.0.2, libmad 0.15.1b, zlib 1.2.3, mpeg decoder: progressive frames fix, mpeg decoder: dsutil interlaced fix v2)
+v1.0.10.0 - 15 September 2007
+=============================
+ CHANGED: Latest clsid's patches (Bento4 0.9.3, FAAD2 2.6b, dtsdec 0.0.2,
+ libmad 0.15.1b, zlib 1.2.3, MPEG decoder: progressive frames fix,
+ MPEG decoder: DSUtil interlaced fix v2)
CHANGED: libpng 1.2.20
- NEW : Command Line Option "/d3dfs" to start MPC in D3D fullscreen mode
- NEW : Logitech LCD support (e.g., G15 keyboard)
- CHANGED: Remember File and DVD position works only when "Keep history" is active (preserve privacy issue)
- CHANGED: Kick off Screen Saver from Power Options only while video is playing (Vista)
+ NEW : Command Line Option "/d3dfs" to start MPC-HC in D3D Fullscreen mode
+ NEW : Logitech LCD support (e.g. G15 keyboard)
+ CHANGED: Remember File and DVD position works only when "Keep history"
+ is active (preserve privacy issue)
+ CHANGED: Kick off Screen Saver from Power Options only while video is playing
+ (Vista)
NEW : Build for x64 platforms
- NEW : Multilingual support for English, French and German.
+ NEW : Multilingual support for English, French and German
CHANGED: DirectX SDK updated to August 2007 (v35)
- FIXED : Wrong Aspect Ratio with EVR-Custom (definitely i hope :-)
- FIXED : Internal Mpeg2 Decoder was not working with EVR and EVR-Custom
- FIXED : Audio async problems with Blu-Ray/HD DVD DTS files [wrong AvgTimePerFrame calculation for DTS and AC3 (madshi)]
- FIXED : OSD was not working when D3DX9_... dll was not present (random pixels shown in top of video)
- FIXED : Mouse now working in DVD menu with EVR-Custom (Vista)
+ FIXED : Wrong Aspect Ratio with EVR CP (definitely i hope :-)
+ FIXED : Internal MPEG-2 Decoder was not working with EVR and EVR CP
+ FIXED : Audio sync problems with Blu-Ray/HD DVD DTS files
+ [wrong AvgTimePerFrame calculation for DTS and AC3 (madshi)]
+ FIXED : OSD was not working when D3DX9_XX dll was not present
+ (random pixels shown in top of video)
+ FIXED : Mouse now working in DVD menu with EVR Custom Presenter (Vista)
FIXED : FLV Splitter when video does not start with keyframe
- FIXED : Vulnerability CAL-20070912-1 in AVI Source Filter (arbitrary code execute with users privileges)
+ FIXED : Vulnerability CAL-20070912-1 in AVI Source Filter
+ (arbitrary code execute with users privileges)
FIXED : Vulnerability in FLI internal source filter
-v1.0.9.0 - 14 Jul 2007
-======================
- CHANGED: OSD improved for EVR-Custom
- FIXED : EVR-Custom rendering thread stability
- FIXED : EVR-Custom does not need mfplat.dll anymore (dll is installed with WMP11)
+v1.0.9.0 - 14 July 2007
+=======================
+ CHANGED: OSD improved for EVR Custom Presenter
+ FIXED : EVR Custom Presenter rendering thread stability
+ FIXED : EVR Custom Presenter doesn't need mfplat.dll anymore
+ (the dll is installed with WMP 11)
NEW : Exit Option in popup menu
FIXED : Use same registry key like original Gabest Media Player Classic
- FIXED : Freeze when playing audio only file with EVR-Custom
- FIXED : Wrong Aspect Ratio with anamorphic video using EVR-custom
- FIXED : When Video pause, frame stepping with EVR-Custom started video playback at normal speed
- FIXED : Save thumbnail with EVR-Custom froze MPC
- FIXED : FLV splitter did not read width and height out of metadata (thanks to Chobits for this fix)
- FIXED : If more than one subtile text rows shown, the background ("Outline" color) vertically overlapped the other one
+ FIXED : Freeze when playing audio only file with EVR Custom Presenter
+ FIXED : Wrong Aspect Ratio with anamorphic video using EVR Custom Presenter
+ FIXED : When Video pause, frame stepping with EVR Custom Presenter started
+ video playback at normal speed
+ FIXED : Save thumbnail with EVR Custom Presenter froze MPC-HC
+ FIXED : FLV splitter did not read width and height out of metadata
+ (thanks to Chobits for this fix)
+ FIXED : If more than one subtitle text rows shown, the background
+ ("Outline" color) vertically overlapped the other one
v1.0.8.0 - 31 May 2007
======================
- NEW : Kick off Screen Saver from Power Options, only when MPC has focus (Vista)
+ NEW : Kick off Screen Saver from Power Options, only when MPC-HC has focus
+ (Vista)
FIXED : Jitter test was not displayed with some files
- FIXED : Crash if statistics should be displayed, when d3dx9_29.dll was not present
+ FIXED : Crash if statistics should be displayed, when d3dx9_29.dll
+ was not present
FIXED : Possible crash when closing file, while OSD was displayed
- FIXED : DVD menu freeze with EVR-Custom and nVidia Pure Video decoder (Windows XP)
+ FIXED : DVD menu freeze with EVR CP and NVIDIA Pure Video decoder (Win XP)
FIXED : Mouse-click to play not working at the bottom of video
FIXED : MKV internal subtitles were not displayed from time to time
- FIXED : Video disapeared when moving MPC to other screen with EVR-Custom presenter on dual display
+ FIXED : Video disappeared when moving MPC-HC to other screen
+ with EVR Custom Presenter on dual display
v1.0.7.0 - 27 May 2007
======================
- NEW : "EVR-Custom presenter" mode added as output renderer. In this mode EVR supports internal MPC subtitles, D3D fullscreen, tearing test and Pixels Shaders
- NEW : Statistics option currently displays the jitter curve (Ctrl + J to activate) for VMR9 renderless and EVR-Custom presenter
- CHANGED: Output property page, options now disabled when not supported by selected renderer
+ NEW : "EVR Custom Presenter" mode added as output renderer. In this mode
+ EVR supports internal MPC-HC subtitles, D3D Fullscreen, tearing test
+ and Pixels Shaders
+ NEW : Statistics option currently displays the jitter curve
+ (Ctrl + J to activate) for VMR9 Renderless and EVR Custom Presenter
+ CHANGED: Output property page, options now are disabled when not supported
+ by the selected renderer
FIXED : Mouse cursor invisible in Fullscreen mode
FIXED : Mouse-click to play was not working with some renderers
- FIXED : A one pixel width rectangle was not displayed around the video window (refresh problem)
- FIXED : Crash when switching from VMR9 renderless to VRM7 renderless (Vista)
+ FIXED : A one pixel width rectangle was not displayed around the video window
+ (refresh problem)
+ FIXED : Crash when switching from VMR9 Renderless to VRM7 Renderless (Vista)
v1.0.6.0 - 07 May 2007
======================
NEW : VP62 codec internal filter re-activated
- NEW : Mpeg4 splitter internal filter re-activated
- CHANGED: _xxl patches included (VP62 codec internal filter, Mpeg4 splitter internal filter)
+ NEW : MPEG4 splitter internal filter re-activated
+ CHANGED: _xxl patches included (VP62 codec internal filter, MPEG4 splitter
+ internal filter)
FIXED : Window "flashing" during resize, after video loaded
v1.0.5.0 - 05 May 2007
======================
- NEW : MPC now Vista ready, Enhanced Video Renderer (EVR) with OSD support added
+ NEW : MPC-HC is now Vista ready, added Enhanced Video Renderer (EVR) with OSD support
NEW : Shuttle PN31 Remote Control support
NEW : Subtitle synchronization with keyboard shortcuts or remote control
FIXED : Fixed bug at internal filter property page
@@ -399,10 +545,12 @@ v1.0.5.0 - 05 May 2007
v1.0.4.0 - 09 May 2006
======================
- CHANGED: OSD inprovement
+ CHANGED: OSD improvement
NEW : Remaining time displayed (Ctrl + I or "Remaining_Time" with WinLIRC)
NEW : OSD Fast forward / rewind speed display
- CHANGED: OSD FF/Rew for DVD playback: slow forward replaced by rewind, no more predefined speed limits (feature depends on Mpeg2 decoder capabilities).
+ CHANGED: OSD FF/Rew for DVD playback: slow forward replaced by rewind,
+ no more predefined speed limits (feature depends on MPEG-2 decoder
+ capabilities)
FIXED : Taskbar Display bug in D3D Fullscreen mode
FIXED : Mouse cursor invisible in D3D Fullscreen mode
@@ -410,26 +558,30 @@ v1.0.4.0 - 09 May 2006
v1.0.3.0 - 02 May 2006
======================
NEW : YUV mixer mode for VMR9
- NEW : OSD for VMR9 ouput for languages selection
- NEW : "DVD Menu Activate" can also be used to start playback (useful when using remote control via WinLIRC)
+ NEW : OSD for VMR9 output for languages selection
+ NEW : "DVD Menu Activate" can also be used to start playback
+ (useful when using remote control via WinLIRC)
FIXED : Aspect Ratio bug in D3D Fullscreen mode
-v1.0.2.0 - 23 Apr 2006
-======================
- CHANGED: D3D fullscreen mode improved
+v1.0.2.0 - 23 April 2006
+========================
+ CHANGED: D3D Fullscreen mode improved
FIXED : VMR9 Color control bug
-v1.0.1.0 - 09 Apr 2006
-======================
- NEW : DVD open dialog now allows to select source folder or drive
- NEW : Possibility to save video position for the last 5 DVDs and/or files to resume playback at this position when MPC is restarted
- NEW : Shortcut to inhibit Pixel Shaders (Ctrl + P). Only additional Pixel Shaders effects are concerned (always used if resize active)
+v1.0.1.0 - 09 April 2006
+========================
+ NEW : DVD open dialog now allows selecting the source folder or drive
+ NEW : Possibility to save video position for the last 5 DVDs and/or files
+ to resume playback at this position when MPC-HC is restarted
+ NEW : Shortcut to inhibit Pixel Shaders (Ctrl + P). Only additional
+ Pixel Shaders effects are concerned (always used if resize active)
-v1.0.0.0 - 29 Mar 2006
-======================
+v1.0.0.0 - 29 March 2006
+========================
NEW : Color control option for VMR renderer
NEW : Automatically reload Pixel Shaders at startup
- NEW : Tearing test function (Ctrl+T): displays 2 moving bars (useful to also show judder)
+ NEW : Tearing test function (Ctrl+T): displays 2 moving bars
+ (useful to also show judder)
diff --git a/src/apps/mplayerc/ChildView.cpp b/src/apps/mplayerc/ChildView.cpp
index d839f1e0d..d26e4d63a 100644
--- a/src/apps/mplayerc/ChildView.cpp
+++ b/src/apps/mplayerc/ChildView.cpp
@@ -126,23 +126,22 @@ void CChildView::SetVideoRect(CRect r)
void CChildView::LoadLogo()
{
AppSettings& s = AfxGetAppSettings();
+ bool bHaveLogo = false;
CAutoLock cAutoLock(&m_csLogo);
m_logo.Destroy();
if(s.logoext)
- {
- if(AfxGetAppSettings().fXpOrBetter)
- m_logo.Load(s.logofn);
- else if(HANDLE h = LoadImage(NULL, s.logofn, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE))
- m_logo.Attach((HBITMAP)h); // win9x bug: Inside Attach GetObject() will return all zeros in DIBSECTION and silly CImage uses that to init width, height, bpp, ... so we can't use CImage::Draw later
- }
+ bHaveLogo = SUCCEEDED(m_logo.Load(s.logofn));
- if(m_logo.IsNull())
+ if(!bHaveLogo)
{
- m_logo.LoadFromResource(s.logoid);
- // m_logo.LoadFromResource(AfxGetInstanceHandle(), s.logoid);
+ s.logoext = 0; // use the built-in logo instead
+ s.logofn = ""; // clear logo file name
+
+ if (!m_logo.LoadFromResource(s.logoid)) // try the latest selected build-in logo
+ m_logo.LoadFromResource(s.logoid=DEF_LOGO); // if fail then use the default logo, should never fail
}
if(m_hWnd) Invalidate();
diff --git a/src/apps/mplayerc/DVBChannel.cpp b/src/apps/mplayerc/DVBChannel.cpp
index 0e932b814..c70a21b67 100644
--- a/src/apps/mplayerc/DVBChannel.cpp
+++ b/src/apps/mplayerc/DVBChannel.cpp
@@ -24,13 +24,12 @@
#include "stdafx.h"
#include "DVBChannel.h"
-#define FORMAT_VERSION 0
-
CDVBChannel::CDVBChannel(void)
{
m_ulFrequency = 0;
m_nPrefNumber = 0;
m_nOriginNumber = 0;
+ m_bEncrypted = false;
m_ulONID = 0;
m_ulTSID = 0;
m_ulSID = 0;
@@ -57,6 +56,8 @@ void CDVBChannel::FromString(CString strValue)
m_ulFrequency = _tstol(strValue.Tokenize(_T("|"), i));
m_nPrefNumber = _tstol(strValue.Tokenize(_T("|"), i));
m_nOriginNumber = _tstol(strValue.Tokenize(_T("|"), i));
+ if (nVersion > FORMAT_VERSION_0)
+ m_bEncrypted = _tstol(strValue.Tokenize(_T("|"), i));
m_ulONID = _tstol(strValue.Tokenize(_T("|"), i));
m_ulTSID = _tstol(strValue.Tokenize(_T("|"), i));
m_ulSID = _tstol(strValue.Tokenize(_T("|"), i));
@@ -88,12 +89,13 @@ void CDVBChannel::FromString(CString strValue)
CString CDVBChannel::ToString()
{
CString strValue;
- strValue.AppendFormat (_T("%d|%s|%ld|%d|%d|%ld|%ld|%ld|%ld|%ld|%ld|%d|%ld|%ld"),
- FORMAT_VERSION,
+ strValue.AppendFormat (_T("%d|%s|%ld|%d|%d|%d|%ld|%ld|%ld|%ld|%ld|%ld|%d|%ld|%ld"),
+ FORMAT_VERSION_CURRENT,
m_strName,
m_ulFrequency,
m_nPrefNumber,
m_nOriginNumber,
+ m_bEncrypted,
m_ulONID,
m_ulTSID,
m_ulSID,
diff --git a/src/apps/mplayerc/DVBChannel.h b/src/apps/mplayerc/DVBChannel.h
index f9959ff14..9efa35936 100644
--- a/src/apps/mplayerc/DVBChannel.h
+++ b/src/apps/mplayerc/DVBChannel.h
@@ -23,6 +23,9 @@
#pragma once
+#define FORMAT_VERSION_0 0
+#define FORMAT_VERSION_CURRENT 1
+
#define DVB_MAX_AUDIO 10
#define DVB_MAX_SUBTITLE 10
@@ -141,6 +144,10 @@ public:
{
return !m_strName.IsEmpty();
};
+ bool IsEncrypted()
+ {
+ return m_bEncrypted;
+ };
void SetName(BYTE* Value);
void SetName(LPCTSTR Value)
@@ -159,6 +166,10 @@ public:
{
m_nOriginNumber = m_nPrefNumber = Value;
};
+ void SetEncrypted(bool Value)
+ {
+ m_bEncrypted = Value;
+ };
void SetONID(ULONG Value)
{
m_ulONID = Value;
@@ -191,6 +202,7 @@ private :
ULONG m_ulFrequency;
int m_nPrefNumber;
int m_nOriginNumber;
+ bool m_bEncrypted;
ULONG m_ulONID;
ULONG m_ulTSID;
ULONG m_ulSID;
diff --git a/src/apps/mplayerc/EditListEditor.cpp b/src/apps/mplayerc/EditListEditor.cpp
index ae4074c9e..8518fefaa 100644
--- a/src/apps/mplayerc/EditListEditor.cpp
+++ b/src/apps/mplayerc/EditListEditor.cpp
@@ -104,7 +104,7 @@ END_MESSAGE_MAP()
BOOL CEditListEditor::Create(CWnd* pParentWnd)
{
- if(!CSizingControlBarG::Create(_T("Edit list editor"), pParentWnd, ID_VIEW_EDITLISTEDITOR))
+ if(!CSizingControlBarG::Create(_T("Edit List Editor"), pParentWnd, ID_VIEW_EDITLISTEDITOR))
return FALSE;
m_stUsers.Create (_T("User :"), WS_VISIBLE|WS_CHILD, CRect (5,5,100,21), this, 0);
diff --git a/src/apps/mplayerc/FGManager.cpp b/src/apps/mplayerc/FGManager.cpp
index 401b0c804..2052c3693 100644
--- a/src/apps/mplayerc/FGManager.cpp
+++ b/src/apps/mplayerc/FGManager.cpp
@@ -694,12 +694,7 @@ HRESULT CFGManager::Connect(IPin* pPinOut, IPin* pPinIn, bool bContinueRender)
if(FAILED(hr = AddFilter(pBF, pFGF->GetName())))
continue;
- hr = E_FAIL;
-
- if(FAILED(hr))
- {
- hr = ConnectFilterDirect(pPinOut, pBF, NULL);
- }
+ hr = ConnectFilterDirect(pPinOut, pBF, NULL);
/*
if(FAILED(hr))
{
@@ -770,8 +765,8 @@ HRESULT CFGManager::Connect(IPin* pPinOut, IPin* pPinIn, bool bContinueRender)
}
EXECUTE_ASSERT(SUCCEEDED(RemoveFilter(pBF)));
-
TRACE(_T("FGM: Connecting '%s' FAILED!\n"), pFGF->GetName());
+ pBF.Release();
}
}
@@ -1813,11 +1808,15 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk)
pFGF = new CFGFilterInternal<CMpaDecFilter>(
(tra & TRA_PCM) ? ResStr(IDS_AG_PCM_DECODER) : L"PCM Audio Decoder (low merit)",
(tra & TRA_PCM) ? MERIT64_ABOVE_DSHOW : MERIT64_DO_USE);
+ pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_NONE);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_RAW);
- pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_SOWT);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_TWOS);
+ pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_SOWT);
+ pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_IN24);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_IN32);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_FL32);
+ pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_FL64);
+ pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_IMA4);
m_transform.AddTail(pFGF);
#endif
@@ -2564,28 +2563,28 @@ CFGManagerPlayer::CFGManagerPlayer(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd)
break;
}
- CString SelAudioRender = s.SelectedAudioRender();
- if(SelAudioRender == AUDRNDT_NULL_COMP)
+ CString SelAudioRenderer = s.SelectedAudioRenderer();
+ if(SelAudioRenderer == AUDRNDT_NULL_COMP)
{
pFGF = DNew CFGFilterInternal<CNullAudioRenderer>(AUDRNDT_NULL_COMP, MERIT64_ABOVE_DSHOW+2);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_NULL);
m_transform.AddTail(pFGF);
}
- else if(SelAudioRender == AUDRNDT_NULL_UNCOMP)
+ else if(SelAudioRenderer == AUDRNDT_NULL_UNCOMP)
{
pFGF = DNew CFGFilterInternal<CNullUAudioRenderer>(AUDRNDT_NULL_UNCOMP, MERIT64_ABOVE_DSHOW+2);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_NULL);
m_transform.AddTail(pFGF);
}
- else if(SelAudioRender == AUDRNDT_MPC)
+ else if(SelAudioRenderer == AUDRNDT_MPC)
{
pFGF = DNew CFGFilterInternal<CMpcAudioRenderer>(AUDRNDT_MPC, MERIT64_ABOVE_DSHOW+2);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_NULL);
m_transform.AddTail(pFGF);
}
- else if(SelAudioRender!="")
+ else if(SelAudioRenderer!="")
{
- pFGF = DNew CFGFilterRegistry(SelAudioRender, m_armerit);
+ pFGF = DNew CFGFilterRegistry(SelAudioRenderer, m_armerit);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_NULL);
m_transform.AddTail(pFGF);
}
@@ -2616,7 +2615,7 @@ CFGManagerDVD::CFGManagerDVD(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd)
AppSettings& s = AfxGetAppSettings();
// have to avoid the old video renderer
- if(!s.fXpOrBetter && s.iDSVideoRendererType != VIDRNDT_DS_OVERLAYMIXER || s.iDSVideoRendererType == VIDRNDT_DS_OLDRENDERER)
+ if(s.iDSVideoRendererType == VIDRNDT_DS_OLDRENDERER)
m_transform.AddTail(DNew CFGFilterVideoRenderer(m_hWnd, CLSID_OverlayMixer, L"Overlay Mixer", m_vrmerit-1));
// elecard's decoder isn't suited for dvd playback (atm)
diff --git a/src/apps/mplayerc/FGManagerBDA.cpp b/src/apps/mplayerc/FGManagerBDA.cpp
index 139c014f7..3c5bbfde4 100644
--- a/src/apps/mplayerc/FGManagerBDA.cpp
+++ b/src/apps/mplayerc/FGManagerBDA.cpp
@@ -28,6 +28,7 @@
#include <streams.h>
#include <mpeg2data.h>
#include <tuner.h>
+#include <time.h>
#include "../../DSUtil/DSUtil.h"
#include "../../DSUtil/GolombBuffer.h"
@@ -37,9 +38,10 @@
#include "FGManagerBDA.h"
#include "DVBChannel.h"
#include "Mpeg2SectionData.h"
+#include "MainFrm.h"
-/// Format, Vidéo MPEG2
+/// Format, Video MPEG2
static const MPEG2VIDEOINFO sMpv_fmt =
{
{
@@ -51,8 +53,8 @@ static const MPEG2VIDEOINFO sMpv_fmt =
0, // AvgTimePerFrame
0, // dwInterlaceFlags
0, // dwCopyProtectFlags
- 4, // dwPictAspectRatioX
- 3, // dwPictAspectRatioY
+ 16, // dwPictAspectRatioX
+ 9, // dwPictAspectRatioY
{0}, // dwControlFlag & dwReserved1
0, // dwReserved2
{
@@ -65,7 +67,7 @@ static const MPEG2VIDEOINFO sMpv_fmt =
}
};
-/// Media type, Vidéo MPEG2
+/// Media type, Video MPEG2
static const AM_MEDIA_TYPE mt_Mpv =
{
MEDIATYPE_Video, // majortype
@@ -80,9 +82,8 @@ static const AM_MEDIA_TYPE mt_Mpv =
};
#define FCC_h264 MAKEFOURCC('h', '2', '6', '4')
-#define MS_NETWORK_PROVIDER "Microsoft Network Provider"
-/// Format, Vidéo H264
+/// Format, Video H264
static const VIDEOINFOHEADER2 vih2_H264 =
{
{0,0,0,0}, // rcSource
@@ -101,7 +102,7 @@ static const VIDEOINFOHEADER2 vih2_H264 =
sizeof(BITMAPINFOHEADER), // biSize
// 720, // biWidth
// 576, // biHeight
- 1440, // biWidth
+ 1920, // biWidth
1080, // biHeight
0, // biPlanes
0, // biBitCount
@@ -110,7 +111,7 @@ static const VIDEOINFOHEADER2 vih2_H264 =
// le reste à zéro (implicite)
};
-/// Media type, Vidéo H264
+/// Media type, Video H264
static const AM_MEDIA_TYPE mt_H264 =
{
MEDIATYPE_Video, // majortype
@@ -124,7 +125,7 @@ static const AM_MEDIA_TYPE mt_H264 =
(LPBYTE)&vih2_H264 // pbFormat
};
-/// Format, Audio (commun)
+/// Format, Audio (common)
static const WAVEFORMATEX wf_Audio =
{
WAVE_FORMAT_PCM, // wFormatTag
@@ -175,7 +176,7 @@ static const AM_MEDIA_TYPE mt_Eac3 =
FORMAT_WaveFormatEx, // formattype
NULL, // pUnk
sizeof(wf_Audio), // cbFormat
- (LPBYTE)&wf_Audio, // pbFormat
+ (LPBYTE)&wf_Audio, // pbFormat
};
/// Media type, PSI
@@ -249,7 +250,8 @@ static const AM_MEDIA_TYPE mt_Subtitle =
sizeof(SubFormat), // cbFormat
(LPBYTE)&SubFormat // pbFormat
};
-/// CLSID pour TIF
+
+/// CLSID for TIF
// FC772AB0-0C7F-11D3-8FF2-00A0C9224CF4
static CLSID CLSID_BDA_MPEG2_TIF =
{0xFC772AB0, 0x0C7F, 0x11D3, {0x8F, 0xF2, 0x00, 0xA0, 0xC9, 0x22, 0x4C, 0xF4}};
@@ -257,6 +259,7 @@ static CLSID CLSID_BDA_MPEG2_TIF =
CFGManagerBDA::CFGManagerBDA(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd)
: CFGManagerPlayer (pName, pUnk, hWnd)
{
+ LOG (_T("\nStarting session ------------------------------------------------->"));
m_DVBStreams[DVB_MPV] = CDVBStream(L"mpv", &mt_Mpv);
m_DVBStreams[DVB_H264] = CDVBStream(L"h264", &mt_H264);
m_DVBStreams[DVB_MPA] = CDVBStream(L"mpa", &mt_Mpa);
@@ -266,7 +269,7 @@ CFGManagerBDA::CFGManagerBDA(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd)
m_DVBStreams[DVB_TIF] = CDVBStream(L"tif", &mt_Tif, true);
m_DVBStreams[DVB_EPG] = CDVBStream(L"epg", &mt_Epg);
- // Warning : MEDIA_ELEMENTARY_STREAM didn't works for subtitles with Windows XP!
+ // Warning : MEDIA_ELEMENTARY_STREAM didn't work for subtitles with Windows XP!
if (IsVistaOrAbove())
m_DVBStreams[DVB_SUB] = CDVBStream(L"sub", &mt_Subtitle/*, false, MEDIA_TRANSPORT_PAYLOAD*/);
else
@@ -274,6 +277,7 @@ CFGManagerBDA::CFGManagerBDA(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd)
m_nCurVideoType = DVB_MPV;
m_nCurAudioType = DVB_MPA;
+ m_fHideWindow = false;
// Hack : remove audio switcher !
POSITION pos = m_transform.GetHeadPosition();
@@ -288,11 +292,13 @@ CFGManagerBDA::CFGManagerBDA(LPCTSTR pName, LPUNKNOWN pUnk, HWND hWnd)
}
m_transform.GetNext(pos);
}
+ LOG (_T("CFGManagerBDA object created."));
}
CFGManagerBDA::~CFGManagerBDA()
{
m_DVBStreams.RemoveAll();
+ LOG (_T("\nCFGManagerBDA object destroyed."));
}
@@ -374,19 +380,19 @@ HRESULT CFGManagerBDA::ConnectFilters(IBaseFilter* pOutFiter, IBaseFilter* pInFi
{
hr = this->ConnectDirect(pOutPin, pInPin, NULL);
-//#ifdef _DEBUG
-// PIN_INFO InfoPinIn, InfoPinOut;
-// FILTER_INFO InfoFilterIn, InfoFilterOut;
-// pInPin->QueryPinInfo (&InfoPinIn);
-// pOutPin->QueryPinInfo (&InfoPinOut);
-// InfoPinIn.pFilter->QueryFilterInfo(&InfoFilterIn);
-// InfoPinOut.pFilter->QueryFilterInfo(&InfoFilterOut);
-//
-// TRACE ("%S - %S => %S - %S (hr=0x%08x)\n", InfoFilterOut.achName, InfoPinOut.achName, InfoFilterIn.achName, InfoPinIn.achName, hr);
-//
-// InfoPinIn.pFilter->Release();
-// InfoPinOut.pFilter->Release();
-//#endif
+/*#ifdef _DEBUG
+ PIN_INFO InfoPinIn, InfoPinOut;
+ FILTER_INFO InfoFilterIn, InfoFilterOut;
+ pInPin->QueryPinInfo (&InfoPinIn);
+ pOutPin->QueryPinInfo (&InfoPinOut);
+ InfoPinIn.pFilter->QueryFilterInfo(&InfoFilterIn);
+ InfoPinOut.pFilter->QueryFilterInfo(&InfoFilterOut);
+
+ TRACE ("%S - %S => %S - %S (hr=0x%08x)\n", InfoFilterOut.achName, InfoPinOut.achName, InfoFilterIn.achName, InfoPinIn.achName, hr);
+
+ InfoPinIn.pFilter->Release();
+ InfoPinOut.pFilter->Release();
+#endif*/
if (SUCCEEDED (hr)) return hr;
}
}
@@ -408,8 +414,9 @@ STDMETHODIMP CFGManagerBDA::RenderFile(LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayL
CComPtr<IBaseFilter> pTuner;
CComPtr<IBaseFilter> pReceiver;
- CheckAndLog (CreateKSFilter (&pNetwork, KSCATEGORY_BDA_NETWORK_PROVIDER, s.BDANetworkProvider), "BDA : Network provider creation");
-// CheckAndLog (CreateKSFilter (&pTuner, KSCATEGORY_BDA_NETWORK_TUNER, s.BDATuner), "BDA : Network tuner creation");
+ LOG (_T("\nCreating BDA filters..."));
+ CheckAndLog (CreateKSFilter (&pNetwork, KSCATEGORY_BDA_NETWORK_PROVIDER, s.BDANetworkProvider), "BDA : Network provider creation");
+// CheckAndLog (CreateKSFilter (&pTuner, KSCATEGORY_BDA_NETWORK_TUNER, s.BDATuner), "BDA : Network tuner creation");
if (FAILED(hr = CreateKSFilter (&pTuner, KSCATEGORY_BDA_NETWORK_TUNER, s.BDATuner)))
{
AfxMessageBox(_T("BDA Error: could not create Network tuner. "), MB_OK);
@@ -425,31 +432,32 @@ STDMETHODIMP CFGManagerBDA::RenderFile(LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayL
TRACE("BDA : Receiver creation"" :0x%08x\n",hr);
return hr;
}
-// CheckAndLog (ConnectFilters (pNetwork, pTuner), "BDA : Network <-> Tuner");
+// CheckAndLog (ConnectFilters (pNetwork, pTuner), "BDA : Network <-> Tuner");
if (FAILED(hr = ConnectFilters (pNetwork, pTuner)))
{
AfxMessageBox(_T("BDA Error: could not connect Network and Tuner."), MB_OK);
TRACE("BDA : Network <-> Tuner"" :0x%08x\n",hr);
return hr;
}
-// CheckAndLog (ConnectFilters (pTuner, pReceiver), "BDA : Tuner <-> Receiver");
+// CheckAndLog (ConnectFilters (pTuner, pReceiver), "BDA : Tuner <-> Receiver");
if (FAILED(hr = ConnectFilters (pTuner, pReceiver)))
{
AfxMessageBox(_T("BDA Error: could not connect Tuner and Receiver."), MB_OK);
TRACE("BDA : Tuner <-> Receiver"" :0x%08x\n",hr);
return hr;
}
+ LOG (_T("Network -> Tuner -> Receiver connected."));
CComPtr<IBaseFilter> pMpeg2Demux;
m_pBDAControl = pTuner;
-// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAFreq), "BDA : IBDA_FrequencyFilter topology");
+// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAFreq), "BDA : IBDA_FrequencyFilter topology");
if (FAILED(hr = SearchIBDATopology (pTuner, m_pBDAFreq)))
{
AfxMessageBox(_T("BDA Error: IBDA_FrequencyFilter topology."), MB_OK);
TRACE("BDA : IBDA_FrequencyFilter topology"" :0x%08x\n",hr);
return hr;
}
-// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAStats), "BDA : IBDA_SignalStatistics topology");
+// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAStats), "BDA : IBDA_SignalStatistics topology");
if (FAILED(hr = SearchIBDATopology (pTuner, m_pBDAStats)))
{
AfxMessageBox(_T("BDA Error: IBDA_SignalStatistics topology."), MB_OK);
@@ -458,7 +466,7 @@ STDMETHODIMP CFGManagerBDA::RenderFile(LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayL
}
// Create Mpeg2 demux
-// CheckAndLog (CreateMicrosoftDemux (pReceiver, pMpeg2Demux), "BDA : Microsoft demux creation");
+// CheckAndLog (CreateMicrosoftDemux (pReceiver, pMpeg2Demux), "BDA : Microsoft demux creation");
if (FAILED(hr = CreateMicrosoftDemux (pReceiver, pMpeg2Demux)))
{
AfxMessageBox(_T("BDA Error: could not create Demux."), MB_OK);
@@ -466,9 +474,9 @@ STDMETHODIMP CFGManagerBDA::RenderFile(LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayL
return hr;
}
}
- else // if same filters, connect pNetwork to pTuner directly
+ else // if same filters, connect pNetwork to pTuner directly
{
-// CheckAndLog (ConnectFilters (pNetwork, pTuner), "BDA : Network <-> Tuner/Receiver");
+// CheckAndLog (ConnectFilters (pNetwork, pTuner), "BDA : Network <-> Tuner/Receiver");
if (FAILED(hr = ConnectFilters (pNetwork, pTuner)))
{
AfxMessageBox(_T("BDA Error: could not connect Network <-> Tuner/Receiver."), MB_OK);
@@ -478,23 +486,24 @@ STDMETHODIMP CFGManagerBDA::RenderFile(LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayL
CComPtr<IBaseFilter> pMpeg2Demux;
m_pBDAControl = pTuner;
-// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAFreq), "BDA : IBDA_FrequencyFilter topology");
+// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAFreq), "BDA : IBDA_FrequencyFilter topology");
if (FAILED(hr = SearchIBDATopology (pTuner, m_pBDAFreq)))
{
AfxMessageBox(_T("BDA Error: IBDA_FrequencyFilter topology."), MB_OK);
TRACE("BDA : IBDA_FrequencyFilter topology"" :0x%08x\n",hr);
return hr;
}
-// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAStats), "BDA : IBDA_SignalStatistics topology");
+// CheckAndLog (SearchIBDATopology (pTuner, m_pBDAStats), "BDA : IBDA_SignalStatistics topology");
if (FAILED(hr = SearchIBDATopology (pTuner, m_pBDAStats)))
{
AfxMessageBox(_T("BDA Error: IBDA_SignalStatistics topology."), MB_OK);
TRACE("BDA : IBDA_SignalStatistics topology"" :0x%08x\n",hr);
return hr;
}
+ LOG (_T("Network -> Receiver connected."));
// Create Mpeg2 demux
-// CheckAndLog (CreateMicrosoftDemux (pTuner, pMpeg2Demux), "BDA : Microsoft demux creation");
+// CheckAndLog (CreateMicrosoftDemux (pTuner, pMpeg2Demux), "BDA : Microsoft demux creation");
if (FAILED(hr = CreateMicrosoftDemux (pTuner, pMpeg2Demux)))
{
AfxMessageBox(_T("BDA Error: could not create Demux."), MB_OK);
@@ -503,8 +512,14 @@ STDMETHODIMP CFGManagerBDA::RenderFile(LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayL
}
}
- if (s.BDANetworkProvider.Find(_T(MS_NETWORK_PROVIDER), 0) != -1)
- m_BDANetworkProvider = _T(MS_NETWORK_PROVIDER);
+#ifdef _DEBUG
+ LOG (_T("\nFilter list:"));
+ BeginEnumFilters(this, pEF, pBF)
+ {
+ LOG(GetFilterName(pBF));
+ }
+ EndEnumFilters;
+#endif
return S_OK;
}
@@ -602,12 +617,12 @@ STDMETHODIMP CFGManagerBDA::Count(DWORD* pcStreams)
STDMETHODIMP CFGManagerBDA::Enable(long lIndex, DWORD dwFlags)
{
- HRESULT hr = E_INVALIDARG;
- AppSettings& s = AfxGetAppSettings();
- CDVBChannel* pChannel = s.FindChannelByPref(s.DVBLastChannel);
- DVBStreamInfo* pStreamInfo = NULL;
- CDVBStream* pStream = NULL;
- FILTER_STATE nState;
+ HRESULT hr = E_INVALIDARG;
+ AppSettings& s = AfxGetAppSettings();
+ CDVBChannel* pChannel = s.FindChannelByPref(s.DVBLastChannel);
+ DVBStreamInfo* pStreamInfo = NULL;
+ CDVBStream* pStream = NULL;
+ FILTER_STATE nState;
if (pChannel)
{
@@ -656,8 +671,8 @@ STDMETHODIMP CFGManagerBDA::Info(long lIndex, AM_MEDIA_TYPE** ppmt, DWORD* pdwFl
{
pCurrentStream = &m_DVBStreams[m_nCurAudioType];
pStreamInfo = pChannel->GetAudio(lIndex);
- if(pStreamInfo) pStream = &m_DVBStreams[pStreamInfo->Type];
- if(pdwGroup) *pdwGroup = 1; // Audio group
+ if(pStreamInfo) pStream = &m_DVBStreams[pStreamInfo->Type];
+ if(pdwGroup) *pdwGroup = 1; // Audio group
}
else if (lIndex > 0 && lIndex < pChannel->GetAudioCount()+pChannel->GetSubtitleCount())
{
@@ -671,7 +686,7 @@ STDMETHODIMP CFGManagerBDA::Info(long lIndex, AM_MEDIA_TYPE** ppmt, DWORD* pdwFl
{
if(ppmt) *ppmt = CreateMediaType(pStream->GetMediaType());
if(pdwFlags) *pdwFlags = (pCurrentStream->GetMappedPID() == pStreamInfo->PID) ? AMSTREAMSELECTINFO_ENABLED|AMSTREAMSELECTINFO_EXCLUSIVE : 0;
- if(plcid) *plcid = pStreamInfo->GetLCID();
+ if(plcid) *plcid = pStreamInfo->GetLCID();
if(ppObject) *ppObject = NULL;
if(ppUnk) *ppUnk = NULL;
if(ppszName)
@@ -723,6 +738,7 @@ HRESULT CFGManagerBDA::CreateMicrosoftDemux(IBaseFilter* pReceiver, CComPtr<IBas
// pDemux->DeleteOutputPin((LPWSTR)(LPCWSTR)strPin);
//}
+ LOG (_T("Receiver -> Demux connected."));
POSITION pos = m_DVBStreams.GetStartPosition();
while (pos)
@@ -731,21 +747,34 @@ HRESULT CFGManagerBDA::CreateMicrosoftDemux(IBaseFilter* pReceiver, CComPtr<IBas
DVB_STREAM_TYPE nType = m_DVBStreams.GetNextKey(pos);
CDVBStream& Stream = m_DVBStreams[nType];
- if ((nType != DVB_EPG) && (nType != DVB_TIF)) // Hack: DVB_EPG and DVB_TIF not used
+ if (nType != DVB_EPG) // Hack: DVB_EPG not required
{
if (!Stream.GetFindExisting() ||
(pPin = FindPin (pMpeg2Demux, PINDIR_OUTPUT, Stream.GetMediaType())) == NULL)
{
CheckNoLog (pDemux->CreateOutputPin ((AM_MEDIA_TYPE*)Stream.GetMediaType(), Stream.GetName(), &pPin));
}
- CheckNoLog (Connect (pPin, NULL, false));
- Stream.SetPin (pPin);
+// CheckNoLog (Connect (pPin, NULL, false));
+// Stream.SetPin (pPin);
// Complete graph for one audio stream and one video stream (using standard graph builder rules)
+// if (nType == m_nCurVideoType || nType == m_nCurAudioType)
+// {
+// Connect (GetFirstDisconnectedPin (Stream.GetFilter(), PINDIR_OUTPUT), NULL);
+// }
if (nType == m_nCurVideoType || nType == m_nCurAudioType)
{
- Connect (GetFirstDisconnectedPin (Stream.GetFilter(), PINDIR_OUTPUT), NULL);
+ CheckNoLog (Connect (pPin, NULL, true));
+ Stream.SetPin (pPin);
+ LOG (_T("Graph completed for stream type %d."),nType);
+ }
+ else
+ {
+ CheckNoLog (Connect (pPin, NULL, false));
+ Stream.SetPin (pPin);
+ LOG (_T("Filter connected to Demux for media type %d."),nType);
}
+
}
}
@@ -755,25 +784,48 @@ HRESULT CFGManagerBDA::CreateMicrosoftDemux(IBaseFilter* pReceiver, CComPtr<IBas
HRESULT CFGManagerBDA::SetChannelInternal (CDVBChannel* pChannel)
{
- HRESULT hr;
+ HRESULT hr = S_OK;
ULONG ulCurFreq;
+ bool fRadioToTV = false;
int nState = GetState();
-// if (m_BDANetworkProvider == MS_NETWORK_PROVIDER)
-// ChangeState (State_Stopped); // Stop only if using Microsoft Network Provider (W7)
- SwitchStream (m_nCurVideoType, pChannel->GetVideoType());
+
+ if (pChannel->GetVideoPID() != 0)
+ {
+ SwitchStream (m_nCurVideoType, pChannel->GetVideoType());
+ if (m_fHideWindow)
+ fRadioToTV = true;
+ }
+ else
+ {
+ m_fHideWindow = true;
+ ((CMainFrame*)AfxGetMainWnd())->HideVideoWindow(m_fHideWindow);
+ }
+
SwitchStream (m_nCurAudioType, pChannel->GetDefaultAudioType());
CheckNoLog (SetFrequency (pChannel->GetFrequency()));
- CheckNoLog (m_DVBStreams[m_nCurVideoType].Map (pChannel->GetVideoPID()));
+ if (pChannel->GetVideoPID() != 0)
+ {
+ CheckNoLog (m_DVBStreams[m_nCurVideoType].Map (pChannel->GetVideoPID()));
+ }
+
CheckNoLog (m_DVBStreams[m_nCurAudioType].Map (pChannel->GetDefaultAudioPID()));
+
if (GetState() == State_Stopped)
- ChangeState ((FILTER_STATE)nState);
+ hr = ChangeState ((FILTER_STATE)nState);
+
+ if (fRadioToTV)
+ {
+ m_fHideWindow = false;
+ Sleep(1800);
+ ((CMainFrame*)AfxGetMainWnd())->HideVideoWindow(m_fHideWindow);
+ }
// TODO : remove sub later!
// CheckNoLog (m_DVBStreams[DVB_SUB].Map (pChannel->GetDefaultSubtitlePID()));
- return S_OK;
+ return hr;
}
@@ -801,6 +853,7 @@ HRESULT CFGManagerBDA::SwitchStream (DVB_STREAM_TYPE& nOldType, DVB_STREAM_TYPE
HRESULT CFGManagerBDA::ChangeState(FILTER_STATE nRequested)
{
+ HRESULT hr = S_OK;
OAFilterState nState = nRequested+1;
CComPtr<IMediaControl> pMC;
@@ -811,14 +864,35 @@ HRESULT CFGManagerBDA::ChangeState(FILTER_STATE nRequested)
switch (nRequested)
{
case State_Stopped :
- return pMC->Stop();
+ {
+ if (SUCCEEDED(hr = pMC->Stop()))
+ ((CMainFrame*)AfxGetMainWnd())->KillTimersStop();
+ LOG (_T("IMediaControl stop: %d."),hr);
+ return hr;
+ }
case State_Paused :
- return pMC->Pause();
+ {
+ LOG (_T("IMediaControl pause."));
+ return pMC->Pause();
+ }
case State_Running :
- return pMC->Run();
+ {
+ int iCount = 0;
+ hr = S_FALSE;
+ while ((hr == S_FALSE) && (iCount++ < 10))
+ {
+ hr = pMC->Run();
+ if (hr == S_FALSE)
+ Sleep(50);
+ }
+ if (SUCCEEDED(hr))
+ ((CMainFrame*)AfxGetMainWnd())->SetTimersPlay();
+ LOG (_T("IMediaControl play: %d."),hr);
+ return hr;
+ }
}
}
- return S_OK;
+ return hr;
}
diff --git a/src/apps/mplayerc/FGManagerBDA.h b/src/apps/mplayerc/FGManagerBDA.h
index d95930021..21cd940e1 100644
--- a/src/apps/mplayerc/FGManagerBDA.h
+++ b/src/apps/mplayerc/FGManagerBDA.h
@@ -167,6 +167,7 @@ private :
DVB_STREAM_TYPE m_nCurVideoType;
DVB_STREAM_TYPE m_nCurAudioType;
CString m_BDANetworkProvider;
+ bool m_fHideWindow;
HRESULT CreateKSFilter(IBaseFilter** ppBF, CLSID KSCategory, CStringW& DisplayName);
HRESULT ConnectFilters(IBaseFilter* pOutFiter, IBaseFilter* pInFilter);
@@ -190,4 +191,34 @@ private :
}
HRESULT SearchIBDATopology(const CComPtr<IBaseFilter>& pTuner, REFIID iid, CComPtr<IUnknown>& pUnk);
+
+ void Sleep(unsigned int mseconds)
+ {
+ clock_t goal = mseconds + clock();
+ while (goal > clock());
+ }
};
+
+#define LOG_FILE _T("bda.log")
+
+#ifdef _DEBUG
+static void LOG(LPCTSTR fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+// int nCount = _vsctprintf(fmt, args) + 1;
+ TCHAR buff[3000];
+ FILE* f;
+ _vstprintf_s(buff, countof(buff), fmt, args);
+ if(_tfopen_s(&f, LOG_FILE, _T("at")) == 0)
+ {
+ fseek(f, 0, 2);
+ _ftprintf(f, _T("%s\n"), buff);
+ fclose(f);
+ }
+
+ va_end(args);
+}
+#else
+inline void LOG(LPCTSTR fmt, ...) {}
+#endif
diff --git a/src/apps/mplayerc/MainFrm.cpp b/src/apps/mplayerc/MainFrm.cpp
index 6643eb2d5..0294d5d09 100644
--- a/src/apps/mplayerc/MainFrm.cpp
+++ b/src/apps/mplayerc/MainFrm.cpp
@@ -48,6 +48,7 @@
#include "ShaderCombineDlg.h"
#include "FullscreenWnd.h"
#include "TunerScanDlg.h"
+#include "OpenDirHelper.h"
#include <mtype.h>
#include <Mpconfig.h>
@@ -274,6 +275,7 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_COMMAND(ID_FILE_PROPERTIES, OnFileProperties)
ON_UPDATE_COMMAND_UI(ID_FILE_PROPERTIES, OnUpdateFileProperties)
ON_COMMAND(ID_FILE_CLOSEPLAYLIST, OnFileClosePlaylist)
+ ON_UPDATE_COMMAND_UI(ID_FILE_CLOSEPLAYLIST, OnUpdateFileClose)
ON_COMMAND(ID_FILE_CLOSEMEDIA, OnFileCloseMedia)
ON_UPDATE_COMMAND_UI(ID_FILE_CLOSEMEDIA, OnUpdateFileClose)
@@ -355,10 +357,9 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_INPUT_HDTV, OnUpdateViewColorManagementInput)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_INPUT_SDTV_NTSC, OnUpdateViewColorManagementInput)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_INPUT_SDTV_PAL, OnUpdateViewColorManagementInput)
- ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_GAMMA_2_2, OnUpdateViewColorManagementGamma)
- ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_GAMMA_2_3, OnUpdateViewColorManagementGamma)
- ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_GAMMA_2_35, OnUpdateViewColorManagementGamma)
- ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_GAMMA_2_4, OnUpdateViewColorManagementGamma)
+ ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_BRIGHT, OnUpdateViewColorManagementAmbientLight)
+ ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_DIM, OnUpdateViewColorManagementAmbientLight)
+ ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_DARK, OnUpdateViewColorManagementAmbientLight)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_INTENT_PERCEPTUAL, OnUpdateViewColorManagementIntent)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_INTENT_RELATIVECOLORIMETRIC, OnUpdateViewColorManagementIntent)
ON_UPDATE_COMMAND_UI(ID_VIEW_COLORMANAGEMENT_INTENT_SATURATION, OnUpdateViewColorManagementIntent)
@@ -395,10 +396,9 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_COMMAND(ID_VIEW_COLORMANAGEMENT_INPUT_HDTV, OnViewColorManagementInputHDTV)
ON_COMMAND(ID_VIEW_COLORMANAGEMENT_INPUT_SDTV_NTSC, OnViewColorManagementInputSDTV_NTSC)
ON_COMMAND(ID_VIEW_COLORMANAGEMENT_INPUT_SDTV_PAL, OnViewColorManagementInputSDTV_PAL)
- ON_COMMAND(ID_VIEW_COLORMANAGEMENT_GAMMA_2_2, OnViewColorManagementGamma_2_2)
- ON_COMMAND(ID_VIEW_COLORMANAGEMENT_GAMMA_2_3, OnViewColorManagementGamma_2_3)
- ON_COMMAND(ID_VIEW_COLORMANAGEMENT_GAMMA_2_35, OnViewColorManagementGamma_2_35)
- ON_COMMAND(ID_VIEW_COLORMANAGEMENT_GAMMA_2_4, OnViewColorManagementGamma_2_4)
+ ON_COMMAND(ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_BRIGHT, OnViewColorManagementAmbientLightBright)
+ ON_COMMAND(ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_DIM, OnViewColorManagementAmbientLightDim)
+ ON_COMMAND(ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_DARK, OnViewColorManagementAmbientLightDark)
ON_COMMAND(ID_VIEW_COLORMANAGEMENT_INTENT_PERCEPTUAL, OnViewColorManagementIntentPerceptual)
ON_COMMAND(ID_VIEW_COLORMANAGEMENT_INTENT_RELATIVECOLORIMETRIC, OnViewColorManagementIntentRelativeColorimetric)
ON_COMMAND(ID_VIEW_COLORMANAGEMENT_INTENT_SATURATION, OnViewColorManagementIntentSaturation)
@@ -4299,7 +4299,7 @@ BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCDS)
{
SendMessage(WM_COMMAND, ID_FILE_CLOSEMEDIA);
fSetForegroundWindow = true;
-
+
CAutoPtr<OpenDVDData> p(DNew OpenDVDData());
if(p)
{
@@ -4531,7 +4531,7 @@ void CMainFrame::OnDropFiles(HDROP hDropInfo)
if(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
if(fn[fn.GetLength()-1] != '\\') fn += '\\';
- RecurseAddDir(fn, &sl);
+ COpenDirHelper::RecurseAddDir(fn, &sl);
}
FindClose(hFind);
}
@@ -5743,7 +5743,7 @@ void CMainFrame::OnUpdateViewColorManagementEnable(CCmdUI* pCmdUI)
CRenderersData& rd = AfxGetMyApp()->m_Renderers;
bool supported = ((s.iDSVideoRendererType == VIDRNDT_DS_EVR_CUSTOM ||
s.iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS) &&
- r.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) &&
+ r.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) &&
rd.m_bFP16Support;
pCmdUI->Enable (supported);
@@ -5783,7 +5783,7 @@ void CMainFrame::OnUpdateViewColorManagementInput(CCmdUI* pCmdUI)
}
}
-void CMainFrame::OnUpdateViewColorManagementGamma(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateViewColorManagementAmbientLight(CCmdUI* pCmdUI)
{
AppSettings& s = AfxGetAppSettings();
CRenderersSettings& r = s.m_RenderersSettings;
@@ -5798,20 +5798,16 @@ void CMainFrame::OnUpdateViewColorManagementGamma(CCmdUI* pCmdUI)
switch (pCmdUI->m_nID)
{
- case ID_VIEW_COLORMANAGEMENT_GAMMA_2_2:
- pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementGamma == GAMMA_CURVE_2_2);
- break;
-
- case ID_VIEW_COLORMANAGEMENT_GAMMA_2_3:
- pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementGamma == GAMMA_CURVE_2_3);
+ case ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_BRIGHT:
+ pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementAmbientLight == AMBIENT_LIGHT_BRIGHT);
break;
- case ID_VIEW_COLORMANAGEMENT_GAMMA_2_35:
- pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementGamma == GAMMA_CURVE_2_35);
+ case ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_DIM:
+ pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementAmbientLight == AMBIENT_LIGHT_DIM);
break;
- case ID_VIEW_COLORMANAGEMENT_GAMMA_2_4:
- pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementGamma == GAMMA_CURVE_2_4);
+ case ID_VIEW_COLORMANAGEMENT_AMBIENTLIGHT_DARK:
+ pCmdUI->SetCheck(r.m_RenderSettings.iVMR9ColorManagementAmbientLight == AMBIENT_LIGHT_DARK);
break;
}
}
@@ -5944,7 +5940,7 @@ void CMainFrame::OnUpdateViewHighColorResolution(CCmdUI* pCmdUI)
bool supported = ((s.iDSVideoRendererType == VIDRNDT_DS_EVR_CUSTOM ||
s.iDSVideoRendererType == VIDRNDT_DS_SYNC) &&
r.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) &&
- rd.m_b10bitSupport;
+ rd.m_b10bitSupport;
pCmdUI->Enable (supported);
pCmdUI->SetCheck(r.m_RenderSettings.iEVRHighColorResolution);
@@ -5957,7 +5953,7 @@ void CMainFrame::OnUpdateViewForceInputHighColorResolution(CCmdUI* pCmdUI)
CRenderersData& rd = AfxGetMyApp()->m_Renderers;
bool supported = ((s.iDSVideoRendererType == VIDRNDT_DS_EVR_CUSTOM) &&
r.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) &&
- rd.m_b10bitSupport;
+ rd.m_b10bitSupport;
pCmdUI->Enable (supported);
pCmdUI->SetCheck(r.m_RenderSettings.iEVRForceInputHighColorResolution);
@@ -5970,7 +5966,7 @@ void CMainFrame::OnUpdateViewFullFloatingPointProcessing(CCmdUI* pCmdUI)
CRenderersData& rd = AfxGetMyApp()->m_Renderers;
bool supported = ((s.iDSVideoRendererType == VIDRNDT_DS_EVR_CUSTOM ||
s.iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS) &&
- r.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) &&
+ r.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) &&
rd.m_bFP16Support;
pCmdUI->Enable (supported);
@@ -6141,43 +6137,33 @@ void CMainFrame::OnViewColorManagementInputSDTV_PAL()
m_OSD.DisplayMessage (OSD_TOPRIGHT, Format);
}
-void CMainFrame::OnViewColorManagementGamma_2_2()
-{
- CRenderersSettings& s = AfxGetAppSettings().m_RenderersSettings;
- s.m_RenderSettings.iVMR9ColorManagementGamma = GAMMA_CURVE_2_2;
- AfxGetAppSettings().UpdateData(true);
- CString Format;
- Format.Format(L"Gamma: 2.2");
- m_OSD.DisplayMessage (OSD_TOPRIGHT, Format);
-}
-
-void CMainFrame::OnViewColorManagementGamma_2_3()
+void CMainFrame::OnViewColorManagementAmbientLightBright()
{
CRenderersSettings& s = AfxGetAppSettings().m_RenderersSettings;
- s.m_RenderSettings.iVMR9ColorManagementGamma = GAMMA_CURVE_2_3;
+ s.m_RenderSettings.iVMR9ColorManagementAmbientLight = AMBIENT_LIGHT_BRIGHT;
AfxGetAppSettings().UpdateData(true);
CString Format;
- Format.Format(L"Gamma: 2.3");
+ Format.Format(L"Ambient Light: Bright (2.2 Gamma)");
m_OSD.DisplayMessage (OSD_TOPRIGHT, Format);
}
-void CMainFrame::OnViewColorManagementGamma_2_35()
+void CMainFrame::OnViewColorManagementAmbientLightDim()
{
CRenderersSettings& s = AfxGetAppSettings().m_RenderersSettings;
- s.m_RenderSettings.iVMR9ColorManagementGamma = GAMMA_CURVE_2_35;
+ s.m_RenderSettings.iVMR9ColorManagementAmbientLight = AMBIENT_LIGHT_DIM;
AfxGetAppSettings().UpdateData(true);
CString Format;
- Format.Format(L"Gamma: 2.35");
+ Format.Format(L"Ambient Light: Dim (2.35 Gamma)");
m_OSD.DisplayMessage (OSD_TOPRIGHT, Format);
}
-void CMainFrame::OnViewColorManagementGamma_2_4()
+void CMainFrame::OnViewColorManagementAmbientLightDark()
{
CRenderersSettings& s = AfxGetAppSettings().m_RenderersSettings;
- s.m_RenderSettings.iVMR9ColorManagementGamma = GAMMA_CURVE_2_4;
+ s.m_RenderSettings.iVMR9ColorManagementAmbientLight = AMBIENT_LIGHT_DARK;
AfxGetAppSettings().UpdateData(true);
CString Format;
- Format.Format(L"Gamma: 2.4");
+ Format.Format(L"Ambient Light: Dark (2.4 Gamma)");
m_OSD.DisplayMessage (OSD_TOPRIGHT, Format);
}
@@ -7127,10 +7113,7 @@ void CMainFrame::OnPlayPlay()
}
}
- SetTimer(TIMER_STREAMPOSPOLLER, 40, NULL);
- SetTimer(TIMER_STREAMPOSPOLLER2, 500, NULL);
- SetTimer(TIMER_STATS, 1000, NULL);
-
+ SetTimersPlay();
if(m_fFrameSteppingActive) // FIXME
{
m_fFrameSteppingActive = false;
@@ -7166,10 +7149,7 @@ void CMainFrame::OnPlayPauseI()
pMC->Pause();
}
- SetTimer(TIMER_STREAMPOSPOLLER, 40, NULL);
- SetTimer(TIMER_STREAMPOSPOLLER2, 500, NULL);
- SetTimer(TIMER_STATS, 1000, NULL);
-
+ SetTimersPlay();
SetAlwaysOnTop(AfxGetAppSettings().iOnTop);
}
@@ -7257,10 +7237,7 @@ void CMainFrame::OnPlayStop()
if(m_hWnd)
{
- KillTimer(TIMER_STREAMPOSPOLLER2);
- KillTimer(TIMER_STREAMPOSPOLLER);
- KillTimer(TIMER_STATS);
-
+ KillTimersStop();
MoveVideoWindow();
if(m_iMediaLoadState == MLS_LOADED)
@@ -7269,7 +7246,8 @@ void CMainFrame::OnPlayStop()
m_wndSeekBar.GetRange(start, stop);
GUID tf;
pMS->GetTimeFormat(&tf);
- m_wndStatusBar.SetStatusTimer(m_wndSeekBar.GetPosReal(), stop, !!m_wndSubresyncBar.IsWindowVisible(), &tf);
+ if (GetPlaybackMode() != PM_CAPTURE)
+ m_wndStatusBar.SetStatusTimer(m_wndSeekBar.GetPosReal(), stop, !!m_wndSubresyncBar.IsWindowVisible(), &tf);
SetAlwaysOnTop(AfxGetAppSettings().iOnTop);
}
@@ -7440,6 +7418,20 @@ void CMainFrame::OnPlaySeek(UINT nID)
SeekTo(m_wndSeekBar.GetPos() + dt);
}
+void CMainFrame::SetTimersPlay()
+{
+ SetTimer(TIMER_STREAMPOSPOLLER, 40, NULL);
+ SetTimer(TIMER_STREAMPOSPOLLER2, 500, NULL);
+ SetTimer(TIMER_STATS, 1000, NULL);
+}
+
+void CMainFrame::KillTimersStop()
+{
+ KillTimer(TIMER_STREAMPOSPOLLER2);
+ KillTimer(TIMER_STREAMPOSPOLLER);
+ KillTimer(TIMER_STATS);
+}
+
static int rangebsearch(REFERENCE_TIME val, CAtlArray<REFERENCE_TIME>& rta)
{
int i = 0, j = rta.GetCount() - 1, ret = -1;
@@ -8393,23 +8385,23 @@ void CMainFrame::OnNavigateSkip(UINT nID)
m_strTitle.Format(IDS_AG_TITLE, Location.TitleNum);
__int64 start, stop;
m_wndSeekBar.GetRange(start, stop);
-
+
CString m_strOSD;
if(stop>0)
m_strOSD.Format(_T("%02d:%02d:%02d/%s %s, %s: %d/%d"), Location.TimeCode.bHours, Location.TimeCode.bMinutes, Location.TimeCode.bSeconds,
DVDtimeToString(RT2HMSF(stop)), m_strTitle, ResStr(IDS_AG_CHAPTER2), Location.ChapterNum, ulNumOfChapters);
else
m_strOSD.Format(_T("%s, %s: %d/%d"), m_strTitle, ResStr(IDS_AG_CHAPTER2), Location.ChapterNum, ulNumOfChapters);
-
+
m_OSD.DisplayMessage(OSD_TOPLEFT, m_strOSD, 3000);
}
- /*
- if(nID == ID_NAVIGATE_SKIPBACK)
- pDVDC->PlayPrevChapter(DVD_CMD_FLAG_Block, NULL);
- else if(nID == ID_NAVIGATE_SKIPFORWARD)
- pDVDC->PlayNextChapter(DVD_CMD_FLAG_Block, NULL);
- */
+/*
+ if(nID == ID_NAVIGATE_SKIPBACK)
+ pDVDC->PlayPrevChapter(DVD_CMD_FLAG_Block, NULL);
+ else if(nID == ID_NAVIGATE_SKIPFORWARD)
+ pDVDC->PlayNextChapter(DVD_CMD_FLAG_Block, NULL);
+*/
}
else if(GetPlaybackMode() == PM_CAPTURE)
{
@@ -8628,7 +8620,7 @@ void CMainFrame::OnNavigateChapters(UINT nID)
else
{
nID -= ulNumOfTitles;
-
+
if(nID > 0 && nID <= ulNumOfChapters)
{
pDVDC->PlayChapter(nID, DVD_CMD_FLAG_Block|DVD_CMD_FLAG_Flush, NULL);
@@ -8642,14 +8634,14 @@ void CMainFrame::OnNavigateChapters(UINT nID)
m_strTitle.Format(IDS_AG_TITLE, Location.TitleNum);
__int64 start, stop;
m_wndSeekBar.GetRange(start, stop);
-
+
CString m_strOSD;
if(stop>0)
m_strOSD.Format(_T("%02d:%02d:%02d/%s %s, %s: %d/%d"), Location.TimeCode.bHours, Location.TimeCode.bMinutes, Location.TimeCode.bSeconds,
DVDtimeToString(RT2HMSF(stop)), m_strTitle, ResStr(IDS_AG_CHAPTER2), Location.ChapterNum, ulNumOfChapters);
else
m_strOSD.Format(_T("%s, %s: %d/%d"), m_strTitle, ResStr(IDS_AG_CHAPTER2), Location.ChapterNum, ulNumOfChapters);
-
+
m_OSD.DisplayMessage(OSD_TOPLEFT, m_strOSD, 3000);
}
}
@@ -9721,12 +9713,12 @@ void CMainFrame::AutoChangeMonitorMode()
if (IsVistaOrAbove())
{
- if ((MediaFPS > 23.971) && (MediaFPS < 23.981) && IsVistaOrAbove())
+ if ((MediaFPS > 23.971) && (MediaFPS < 23.981))
{
SetDispMode(AfxGetAppSettings().AutoChangeFullscrRes.dmFullscreenRes23d976Hz, mf_hmonitor);
return;
}
- if ((MediaFPS > 29.965) && (MediaFPS < 29.975) && IsVistaOrAbove())
+ if ((MediaFPS > 29.965) && (MediaFPS < 29.975))
{
SetDispMode(AfxGetAppSettings().AutoChangeFullscrRes.dmFullscreenRes29d97Hz, mf_hmonitor);
return;
@@ -9878,6 +9870,36 @@ void CMainFrame::MoveVideoWindow(bool fShowStats)
UpdateThumbnailClip();
}
+void CMainFrame::HideVideoWindow(bool fHide)
+{
+ CRect wr;
+ if (m_pFullscreenWnd->IsWindow())
+ m_pFullscreenWnd->GetClientRect(&wr);
+ else if(!m_fFullScreen)
+ {
+ m_wndView.GetClientRect(&wr);
+ }
+ else
+ {
+ GetWindowRect(&wr);
+
+ // this code is needed to work in fullscreen on secondary monitor
+ CRect r;
+ m_wndView.GetWindowRect(&r);
+ wr -= r.TopLeft();
+ }
+
+ CRect vr = CRect(0,0,0,0);
+ if(m_pCAP)
+ {
+ if (fHide)
+ m_pCAP->SetPosition(wr, vr); //hide
+ else
+ m_pCAP->SetPosition(wr, wr); // show
+ }
+
+}
+
void CMainFrame::ZoomVideoWindow(double scale)
{
if(m_iMediaLoadState != MLS_LOADED)
@@ -11567,11 +11589,41 @@ bool CMainFrame::OpenMediaPrivate(CAutoPtr<OpenMediaData> pOMD)
if(m_pCAP && (!m_fAudioOnly || m_fRealMediaGraph))
{
+ int nInternalSubCount = m_pSubStreams.GetCount();
+
+ if(s.fDisableInternalSubtitles && nInternalSubCount > 0)
+ {
+ m_pSubStreams.RemoveAll(); // Needs to be replaced with code that checks for forced subtitles.
+
+ // Update the the internal subtitle count
+ nInternalSubCount = m_pSubStreams.GetCount();
+ }
+
POSITION pos = pOMD->subs.GetHeadPosition();
while(pos) LoadSubtitle(pOMD->subs.GetNext(pos));
if(AfxGetAppSettings().fEnableSubtitles && m_pSubStreams.GetCount() > 0)
- SetSubtitle(m_pSubStreams.GetHead());
+ {
+ CComPtr<ISubStream> pSub = m_pSubStreams.GetHead();
+
+ if(s.fPrioritizeExternalSubtitles && m_pSubStreams.GetCount() > nInternalSubCount)
+ {
+ int nCurrentSubIndex = -1;
+ POSITION pos = m_pSubStreams.GetHeadPosition();
+
+ while(pos)
+ {
+ pSub = m_pSubStreams.GetNext(pos);
+
+ nCurrentSubIndex++;
+
+ if(nCurrentSubIndex == nInternalSubCount)
+ break;
+ }
+ }
+
+ SetSubtitle(pSub);
+ }
}
if(m_fOpeningAborted) throw aborted;
@@ -11787,7 +11839,9 @@ void CMainFrame::CloseMediaPrivate()
SetLoadState (MLS_CLOSED);
}
-typedef struct {CString fn;} fileName;
+typedef struct {
+ CString fn;
+} fileName;
int compare(const void* arg1, const void* arg2)
{
return StrCmpLogicalW(((fileName*)arg1)->fn, ((fileName*)arg2)->fn);
@@ -13911,7 +13965,9 @@ void CMainFrame::ShowOptions(int idPage)
m_wndView.LoadLogo();
s.UpdateData(true);
+
}
+ Invalidate();
m_bInOptions = false;
}
@@ -14937,119 +14993,6 @@ void CMainFrame::JumpOfNSeconds(int nSeconds)
// }
//}
-WNDPROC CBProc;
-bool m_incl_subdir;
-CString f_lastOpenDir;
-
-void SetFont(HWND hwnd,LPTSTR FontName,int FontSize)
-{
- HFONT hf;
- LOGFONT lf= {0};
- HDC hdc=GetDC(hwnd);
-
- GetObject(GetWindowFont(hwnd),sizeof(lf),&lf);
- lf.lfWeight = FW_REGULAR;
- lf.lfHeight = (LONG)FontSize;
- lstrcpy( lf.lfFaceName, FontName );
- hf=CreateFontIndirect(&lf);
- SetBkMode(hdc,OPAQUE);
- SendMessage(hwnd,WM_SETFONT,(WPARAM)hf,TRUE);
- ReleaseDC(hwnd,hdc);
-
-}
-
-// Subclass procedure
-LRESULT APIENTRY CheckBoxSubclassProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
-{
- if(uMsg==WM_LBUTTONUP)
- {
- if((SendMessage(hwnd,BM_GETCHECK,0,0))==1)
- {
- m_incl_subdir = FALSE;
- }
- else
- {
- m_incl_subdir = TRUE;
- }
- }
- return CallWindowProc(CBProc, hwnd, uMsg, wParam, lParam);
-}
-
-int __stdcall BrowseCallbackProcDIR(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)
-{
- HWND checkbox;
-
- //Initialization callback message
- if(uMsg==BFFM_INITIALIZED)
- {
- SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)(LPCTSTR)f_lastOpenDir);
-
- RECT ListViewRect;
- RECT Dialog;
- RECT ClientArea;
- RECT ButtonRect;
-
- checkbox = CreateWindowEx(0, _T("BUTTON"), ResStr(IDS_MAINFRM_DIR_CHECK),
- WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | BS_AUTOCHECKBOX | BS_MULTILINE, 0, 100, 100,
- 50, hwnd, 0, AfxGetApp()->m_hInstance, NULL);
-
- HWND ListView=FindWindowEx(hwnd,NULL,_T("SysTreeView32"),NULL);
-
- HWND id_ok = GetDlgItem(hwnd, IDOK);
- HWND id_cancel = GetDlgItem(hwnd, IDCANCEL);
-
- GetWindowRect(hwnd,&Dialog);
- MoveWindow(hwnd, Dialog.left, Dialog.top, Dialog.right-Dialog.left+50, Dialog.bottom-Dialog.top+70, TRUE);
- GetWindowRect(hwnd,&Dialog);
-
- GetClientRect(hwnd,&ClientArea);
-
- GetWindowRect(ListView,&ListViewRect);
- MoveWindow(ListView, ListViewRect.left-Dialog.left-3, ListViewRect.top-Dialog.top-55, ListViewRect.right-ListViewRect.left+49, ListViewRect.bottom-ListViewRect.top+115, TRUE);
- GetWindowRect(ListView,&ListViewRect);
-
- GetWindowRect(id_ok,&ButtonRect);
- MoveWindow(id_ok, ButtonRect.left-Dialog.left+49, ButtonRect.top-Dialog.top+50, ButtonRect.right-ButtonRect.left, ButtonRect.bottom-ButtonRect.top, TRUE);
-
- GetWindowRect(id_cancel,&ButtonRect);
- MoveWindow(id_cancel, ButtonRect.left-Dialog.left+49, ButtonRect.top-Dialog.top+50, ButtonRect.right-ButtonRect.left, ButtonRect.bottom-ButtonRect.top, TRUE);
-
- SetWindowPos(checkbox, HWND_BOTTOM, (ListViewRect.left-Dialog.left-3), ClientArea.bottom - 35, 120, 27, SWP_SHOWWINDOW);
- SetFont(checkbox,_T("Tahoma"),13);
-
- CBProc = (WNDPROC) SetWindowLongPtr(checkbox, GWLP_WNDPROC, (LONG_PTR) CheckBoxSubclassProc);
- SendMessage(checkbox,BM_SETCHECK,(WPARAM)m_incl_subdir,0);
- }
- return 0;
-}
-
-void RecurseAddDir(CString path, CAtlList<CString>* sl)
-{
- WIN32_FIND_DATA fd = {0};
-
- 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);
- }
-}
-
void CMainFrame::OnFileOpendirectory()
{
if(m_iMediaLoadState == MLS_LOADING || !IsWindow(m_wndPlaylistBar)) return;
@@ -15060,10 +15003,10 @@ void CMainFrame::OnFileOpendirectory()
CAtlArray<CString> mask;
s.Formats.GetFilter(filter, mask);
- f_lastOpenDir = s.f_lastOpenDir;
+ COpenDirHelper::f_lastOpenDir = s.f_lastOpenDir;
TCHAR path[_MAX_PATH];
- m_incl_subdir = TRUE;
+ COpenDirHelper::m_incl_subdir = TRUE;
CString strTitle = ResStr(IDS_MAINFRM_DIR_TITLE);
BROWSEINFO bi;
@@ -15072,7 +15015,7 @@ void CMainFrame::OnFileOpendirectory()
bi.pszDisplayName = path;
bi.lpszTitle = strTitle;
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_VALIDATE | BIF_STATUSTEXT;
- bi.lpfn = BrowseCallbackProcDIR;
+ bi.lpfn = COpenDirHelper::BrowseCallbackProcDIR;
bi.lParam = 0;
bi.iImage = 0;
@@ -15088,7 +15031,7 @@ void CMainFrame::OnFileOpendirectory()
CAtlList<CString> sl;
sl.AddTail(_path);
- if(m_incl_subdir) RecurseAddDir(_path, &sl);
+ if(COpenDirHelper::m_incl_subdir) COpenDirHelper::RecurseAddDir(_path, &sl);
if(m_wndPlaylistBar.IsWindowVisible())
{
@@ -15106,11 +15049,11 @@ void CMainFrame::OnFileOpendirectory()
HRESULT CMainFrame::CreateThumbnailToolbar()
{
- if(!AfxGetAppSettings().m_fUseWin7TaskBar) return false;
+ if(!AfxGetAppSettings().m_fUseWin7TaskBar) return E_FAIL;
DWORD dwMajor = LOBYTE(LOWORD(GetVersion()));
DWORD dwMinor = HIBYTE(LOWORD(GetVersion()));
- if (!( dwMajor > 6 || ( dwMajor == 6 && dwMinor > 0 ))) return false;
+ if (!( dwMajor > 6 || ( dwMajor == 6 && dwMinor > 0 ))) return E_FAIL;
if(m_pTaskbarList) m_pTaskbarList->Release();
HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pTaskbarList));
@@ -15125,7 +15068,7 @@ HRESULT CMainFrame::CreateThumbnailToolbar()
delete pBitmap;
Gdiplus::GdiplusShutdown(m_gdiplusToken);
m_pTaskbarList->Release();
- return false;
+ return E_FAIL;
}
unsigned long Color = 0xFFFFFFFF;
unsigned int A = GetAValue(Color);
@@ -15141,7 +15084,7 @@ HRESULT CMainFrame::CreateThumbnailToolbar()
m_pTaskbarList->Release();
delete pBitmap;
Gdiplus::GdiplusShutdown(m_gdiplusToken);
- return false;
+ return E_FAIL;
}
// Check dimensions
@@ -15153,7 +15096,7 @@ HRESULT CMainFrame::CreateThumbnailToolbar()
m_pTaskbarList->Release();
delete pBitmap;
Gdiplus::GdiplusShutdown(m_gdiplusToken);
- return false;
+ return E_FAIL;
}
int nI = bi.bmWidth/bi.bmHeight;
@@ -15216,7 +15159,7 @@ HRESULT CMainFrame::CreateThumbnailToolbar()
HRESULT CMainFrame::UpdateThumbarButton()
{
if ( !m_pTaskbarList )
- return false;
+ return E_FAIL;
if ( !AfxGetAppSettings().m_fUseWin7TaskBar )
{
@@ -15344,7 +15287,7 @@ HRESULT CMainFrame::UpdateThumbarButton()
HRESULT CMainFrame::UpdateThumbnailClip()
{
if ( !m_pTaskbarList )
- return false;
+ return E_FAIL;
if ( (!AfxGetAppSettings().m_fUseWin7TaskBar) || (m_iMediaLoadState != MLS_LOADED) || (m_fAudioOnly) || m_fFullScreen )
{
diff --git a/src/apps/mplayerc/MainFrm.h b/src/apps/mplayerc/MainFrm.h
index 62708568f..98bab7749 100644
--- a/src/apps/mplayerc/MainFrm.h
+++ b/src/apps/mplayerc/MainFrm.h
@@ -463,6 +463,7 @@ public:
void ToggleFullscreen(bool fToNearest, bool fSwitchScreenResWhenHasTo);
void MoveVideoWindow(bool fShowStats = false);
void RepaintVideo();
+ void HideVideoWindow(bool fHide);
OAFilterState GetMediaState();
REFERENCE_TIME GetPos(), GetDur();
@@ -747,7 +748,7 @@ public:
afx_msg void OnUpdateViewColorManagementEnable(CCmdUI* pCmdUI);
afx_msg void OnUpdateViewColorManagementInput(CCmdUI* pCmdUI);
- afx_msg void OnUpdateViewColorManagementGamma(CCmdUI* pCmdUI);
+ afx_msg void OnUpdateViewColorManagementAmbientLight(CCmdUI* pCmdUI);
afx_msg void OnUpdateViewColorManagementIntent(CCmdUI* pCmdUI);
afx_msg void OnUpdateViewEVROutputRange(CCmdUI* pCmdUI);
@@ -770,10 +771,9 @@ public:
afx_msg void OnViewColorManagementInputHDTV();
afx_msg void OnViewColorManagementInputSDTV_NTSC();
afx_msg void OnViewColorManagementInputSDTV_PAL();
- afx_msg void OnViewColorManagementGamma_2_2();
- afx_msg void OnViewColorManagementGamma_2_3();
- afx_msg void OnViewColorManagementGamma_2_35();
- afx_msg void OnViewColorManagementGamma_2_4();
+ afx_msg void OnViewColorManagementAmbientLightBright();
+ afx_msg void OnViewColorManagementAmbientLightDim();
+ afx_msg void OnViewColorManagementAmbientLightDark();
afx_msg void OnViewColorManagementIntentPerceptual();
afx_msg void OnViewColorManagementIntentRelativeColorimetric();
afx_msg void OnViewColorManagementIntentSaturation();
@@ -917,6 +917,8 @@ public:
void SetSubtitleDelay(int delay_ms);
// void AutoSelectTracks();
bool IsRealEngineCompatible(CString strFilename);
+ void SetTimersPlay();
+ void KillTimersStop();
// MPC API functions
diff --git a/src/apps/mplayerc/Mpeg2SectionData.cpp b/src/apps/mplayerc/Mpeg2SectionData.cpp
index bf49dde3e..69e81f483 100644
--- a/src/apps/mplayerc/Mpeg2SectionData.cpp
+++ b/src/apps/mplayerc/Mpeg2SectionData.cpp
@@ -172,7 +172,7 @@ HRESULT CMpeg2DataParser::ParseSDT(ULONG ulFreq)
gb.BitRead(1); // EIT_schedule_flag bslbf
gb.BitRead(1); // EIT_present_following_flag bslbf
gb.BitRead(3); // running_status uimsbf
- gb.BitRead(1); // free_CA_mode bslbf
+ Channel.SetEncrypted (gb.BitRead(1)); // free_CA_mode bslbf
BeginEnumDescriptors(gb, nType, nLength)
{
diff --git a/src/apps/mplayerc/OpenDirHelper.cpp b/src/apps/mplayerc/OpenDirHelper.cpp
new file mode 100644
index 000000000..58cd5a49f
--- /dev/null
+++ b/src/apps/mplayerc/OpenDirHelper.cpp
@@ -0,0 +1,143 @@
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
+ *
+ * This file is part of mplayerc.
+ *
+ * Mplayerc 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.
+ *
+ * Mplayerc 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 "MainFrm.h"
+#include "OpenDirHelper.h"
+
+WNDPROC COpenDirHelper::CBProc;
+bool COpenDirHelper::m_incl_subdir;
+CString COpenDirHelper::f_lastOpenDir;
+
+void COpenDirHelper::SetFont(HWND hwnd,LPTSTR FontName,int FontSize)
+{
+ HFONT hf, hfOld;
+ LOGFONT lf= {0};
+ HDC hdc=GetDC(hwnd);
+
+ GetObject(GetWindowFont(hwnd),sizeof(lf),&lf);
+ lf.lfWeight = FW_REGULAR;
+ lf.lfHeight = (LONG)FontSize;
+ lstrcpy( lf.lfFaceName, FontName );
+ hf=CreateFontIndirect(&lf);
+ SetBkMode(hdc,OPAQUE);
+
+ hfOld = (HFONT)SendMessage(hwnd,WM_GETFONT,NULL,NULL); //get old font
+ SendMessage(hwnd,WM_SETFONT,(WPARAM)hf,TRUE); // set new font
+
+ if(!hfOld && (hfOld!=hf)) DeleteObject(hfOld); //if the old font is not system font or the same as newfont, release it.
+ ReleaseDC(hwnd,hdc);
+
+}
+
+// Subclass procedure
+LRESULT APIENTRY COpenDirHelper::CheckBoxSubclassProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+ if(uMsg==WM_LBUTTONUP)
+ {
+ if((SendMessage(hwnd,BM_GETCHECK,0,0))==1)
+ {
+ m_incl_subdir = FALSE;
+ }
+ else
+ {
+ m_incl_subdir = TRUE;
+ }
+ }
+ return CallWindowProc(CBProc, hwnd, uMsg, wParam, lParam);
+}
+
+int __stdcall COpenDirHelper::BrowseCallbackProcDIR(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)
+{
+ HWND checkbox;
+
+ //Initialization callback message
+ if(uMsg==BFFM_INITIALIZED)
+ {
+ SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)(LPCTSTR)f_lastOpenDir);
+
+ RECT ListViewRect;
+ RECT Dialog;
+ RECT ClientArea;
+ RECT ButtonRect;
+
+ checkbox = CreateWindowEx(0, _T("BUTTON"), ResStr(IDS_MAINFRM_DIR_CHECK),
+ WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | BS_AUTOCHECKBOX | BS_MULTILINE, 0, 100, 100,
+ 50, hwnd, 0, AfxGetApp()->m_hInstance, NULL);
+
+ HWND ListView=FindWindowEx(hwnd,NULL,_T("SysTreeView32"),NULL);
+
+ HWND id_ok = GetDlgItem(hwnd, IDOK);
+ HWND id_cancel = GetDlgItem(hwnd, IDCANCEL);
+
+ GetWindowRect(hwnd,&Dialog);
+ MoveWindow(hwnd, Dialog.left, Dialog.top, Dialog.right-Dialog.left+50, Dialog.bottom-Dialog.top+70, TRUE);
+ GetWindowRect(hwnd,&Dialog);
+
+ GetClientRect(hwnd,&ClientArea);
+
+ GetWindowRect(ListView,&ListViewRect);
+ MoveWindow(ListView, ListViewRect.left-Dialog.left-3, ListViewRect.top-Dialog.top-55, ListViewRect.right-ListViewRect.left+49, ListViewRect.bottom-ListViewRect.top+115, TRUE);
+ GetWindowRect(ListView,&ListViewRect);
+
+ GetWindowRect(id_ok,&ButtonRect);
+ MoveWindow(id_ok, ButtonRect.left-Dialog.left+49, ButtonRect.top-Dialog.top+50, ButtonRect.right-ButtonRect.left, ButtonRect.bottom-ButtonRect.top, TRUE);
+
+ GetWindowRect(id_cancel,&ButtonRect);
+ MoveWindow(id_cancel, ButtonRect.left-Dialog.left+49, ButtonRect.top-Dialog.top+50, ButtonRect.right-ButtonRect.left, ButtonRect.bottom-ButtonRect.top, TRUE);
+
+ SetWindowPos(checkbox, HWND_BOTTOM, (ListViewRect.left-Dialog.left-3), ClientArea.bottom - 35, 120, 27, SWP_SHOWWINDOW);
+ SetFont(checkbox,_T("Tahoma"),13);
+
+ CBProc = (WNDPROC) SetWindowLongPtr(checkbox, GWLP_WNDPROC, (LONG_PTR) CheckBoxSubclassProc);
+ SendMessage(checkbox,BM_SETCHECK,(WPARAM)m_incl_subdir,0);
+ }
+ return 0;
+}
+
+void COpenDirHelper::RecurseAddDir(CString path, CAtlList<CString>* sl)
+{
+ WIN32_FIND_DATA fd = {0};
+
+ 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/apps/mplayerc/OpenDirHelper.h b/src/apps/mplayerc/OpenDirHelper.h
new file mode 100644
index 000000000..fff8fe730
--- /dev/null
+++ b/src/apps/mplayerc/OpenDirHelper.h
@@ -0,0 +1,39 @@
+/*
+ * $Id$
+ *
+ * (C) 2003-2006 Gabest
+ * (C) 2006-2010 see AUTHORS
+ *
+ * This file is part of mplayerc.
+ *
+ * Mplayerc 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.
+ *
+ * Mplayerc 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
+
+class COpenDirHelper {
+public:
+ static WNDPROC CBProc;
+ static bool m_incl_subdir;
+ static CString f_lastOpenDir;
+
+ static void SetFont(HWND hwnd,LPTSTR FontName,int FontSize);
+ // Subclass procedure
+ static LRESULT APIENTRY CheckBoxSubclassProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+ static int __stdcall BrowseCallbackProcDIR(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData);
+
+ static void RecurseAddDir(CString path, CAtlList<CString>* sl);
+};
diff --git a/src/apps/mplayerc/PPageFileInfoClip.cpp b/src/apps/mplayerc/PPageFileInfoClip.cpp
index a47120947..62b60d520 100644
--- a/src/apps/mplayerc/PPageFileInfoClip.cpp
+++ b/src/apps/mplayerc/PPageFileInfoClip.cpp
@@ -73,6 +73,26 @@ BOOL CPPageFileInfoClip::OnInitDialog()
{
__super::OnInitDialog();
+ if(m_fn == _T(""))
+ {
+ BeginEnumFilters(m_pFG, pEF, pBF)
+ {
+ CComQIPtr<IFileSourceFilter> pFSF = pBF;
+ if(pFSF)
+ {
+ LPOLESTR pFN = NULL;
+ AM_MEDIA_TYPE mt;
+ if(SUCCEEDED(pFSF->GetCurFile(&pFN, &mt)) && pFN && *pFN)
+ {
+ m_fn = CStringW(pFN);
+ CoTaskMemFree(pFN);
+ }
+ break;
+ }
+ }
+ EndEnumFilters
+ }
+
m_hIcon = LoadIcon(m_fn, false);
if(m_hIcon)
m_icon.SetIcon(m_hIcon);
diff --git a/src/apps/mplayerc/PPageFileInfoDetails.cpp b/src/apps/mplayerc/PPageFileInfoDetails.cpp
index 946f62ec6..5d43cac24 100644
--- a/src/apps/mplayerc/PPageFileInfoDetails.cpp
+++ b/src/apps/mplayerc/PPageFileInfoDetails.cpp
@@ -115,6 +115,26 @@ BOOL CPPageFileInfoDetails::OnInitDialog()
{
__super::OnInitDialog();
+ if(m_fn == _T(""))
+ {
+ BeginEnumFilters(m_pFG, pEF, pBF)
+ {
+ CComQIPtr<IFileSourceFilter> pFSF = pBF;
+ if(pFSF)
+ {
+ LPOLESTR pFN = NULL;
+ AM_MEDIA_TYPE mt;
+ if(SUCCEEDED(pFSF->GetCurFile(&pFN, &mt)) && pFN && *pFN)
+ {
+ m_fn = CStringW(pFN);
+ CoTaskMemFree(pFN);
+ }
+ break;
+ }
+ }
+ EndEnumFilters
+ }
+
CString ext = m_fn.Left(m_fn.Find(_T("://"))+1).TrimRight(':');
if(ext.IsEmpty() || !ext.CompareNoCase(_T("file")))
ext = _T(".") + m_fn.Mid(m_fn.ReverseFind('.')+1);
diff --git a/src/apps/mplayerc/PPageFileInfoSheet.cpp b/src/apps/mplayerc/PPageFileInfoSheet.cpp
index 26f30cb35..655e04196 100644
--- a/src/apps/mplayerc/PPageFileInfoSheet.cpp
+++ b/src/apps/mplayerc/PPageFileInfoSheet.cpp
@@ -35,7 +35,7 @@ CPPageFileInfoSheet::CPPageFileInfoSheet(CString fn, CMainFrame* pMainFrame, CWn
, m_clip(fn, pMainFrame->pGB)
, m_details(fn, pMainFrame->pGB, pMainFrame->m_pCAP)
, m_res(fn, pMainFrame->pGB)
- , m_mi(fn)
+ , m_mi(fn, pMainFrame->pGB)
, m_fn(fn)
{
AddPage(&m_clip);
diff --git a/src/apps/mplayerc/PPageFileMediaInfo.cpp b/src/apps/mplayerc/PPageFileMediaInfo.cpp
index 7b380fdd5..be3b6321d 100644
--- a/src/apps/mplayerc/PPageFileMediaInfo.cpp
+++ b/src/apps/mplayerc/PPageFileMediaInfo.cpp
@@ -39,9 +39,10 @@ using namespace MediaInfoDLL;
// CPPageFileMediaInfo dialog
IMPLEMENT_DYNAMIC(CPPageFileMediaInfo, CPropertyPage)
-CPPageFileMediaInfo::CPPageFileMediaInfo(CString fn)
+CPPageFileMediaInfo::CPPageFileMediaInfo(CString fn, IFilterGraph* pFG)
: CPropertyPage(CPPageFileMediaInfo::IDD, CPPageFileMediaInfo::IDD)
, m_fn(fn)
+ , m_pFG(pFG)
, m_pCFont(NULL)
{
}
@@ -72,6 +73,26 @@ BOOL CPPageFileMediaInfo::OnInitDialog()
if(!m_pCFont) m_pCFont = DNew CFont;
if(!m_pCFont) return TRUE;
+ if(m_fn == _T(""))
+ {
+ BeginEnumFilters(m_pFG, pEF, pBF)
+ {
+ CComQIPtr<IFileSourceFilter> pFSF = pBF;
+ if(pFSF)
+ {
+ LPOLESTR pFN = NULL;
+ AM_MEDIA_TYPE mt;
+ if(SUCCEEDED(pFSF->GetCurFile(&pFN, &mt)) && pFN && *pFN)
+ {
+ m_fn = CStringW(pFN);
+ CoTaskMemFree(pFN);
+ }
+ break;
+ }
+ }
+ EndEnumFilters
+ }
+
#ifdef USE_MEDIAINFO_STATIC
MediaInfoLib::String f_name = m_fn;
MediaInfoLib::MediaInfo MI;
diff --git a/src/apps/mplayerc/PPageFileMediaInfo.h b/src/apps/mplayerc/PPageFileMediaInfo.h
index 638f2a4c0..24d522006 100644
--- a/src/apps/mplayerc/PPageFileMediaInfo.h
+++ b/src/apps/mplayerc/PPageFileMediaInfo.h
@@ -30,8 +30,11 @@ class CPPageFileMediaInfo : public CPropertyPage
{
DECLARE_DYNAMIC(CPPageFileMediaInfo)
+private:
+ CComPtr<IFilterGraph> m_pFG;
+
public:
- CPPageFileMediaInfo(CString fn); // standard constructor
+ CPPageFileMediaInfo(CString fn, IFilterGraph* pFG);
virtual ~CPPageFileMediaInfo();
// Dialog Data
diff --git a/src/apps/mplayerc/PPageFormats.cpp b/src/apps/mplayerc/PPageFormats.cpp
index 0f64f159f..de9929ec6 100644
--- a/src/apps/mplayerc/PPageFormats.cpp
+++ b/src/apps/mplayerc/PPageFormats.cpp
@@ -350,8 +350,6 @@ static struct
void CPPageFormats::AddAutoPlayToRegistry(autoplay_t ap, bool fRegister)
{
- if(!AfxGetAppSettings().fXpOrBetter) return;
-
TCHAR buff[_MAX_PATH];
if(::GetModuleFileName(AfxGetInstanceHandle(), buff, MAX_PATH) == 0) return;
CString exe = buff;
@@ -517,21 +515,10 @@ BOOL CPPageFormats::OnInitDialog()
}
m_fContextFiles.SetCheck(f_setContextFiles);
- if(AfxGetAppSettings().fXpOrBetter)
- {
- m_apvideo.SetCheck(IsAutoPlayRegistered(AP_VIDEO));
- m_apmusic.SetCheck(IsAutoPlayRegistered(AP_MUSIC));
- m_apaudiocd.SetCheck(IsAutoPlayRegistered(AP_AUDIOCD));
- m_apdvd.SetCheck(IsAutoPlayRegistered(AP_DVDMOVIE));
- }
- else
- {
- m_autoplay.ShowWindow(SW_HIDE);
- m_apvideo.ShowWindow(SW_HIDE);
- m_apmusic.ShowWindow(SW_HIDE);
- m_apaudiocd.ShowWindow(SW_HIDE);
- m_apdvd.ShowWindow(SW_HIDE);
- }
+ m_apvideo.SetCheck(IsAutoPlayRegistered(AP_VIDEO));
+ m_apmusic.SetCheck(IsAutoPlayRegistered(AP_MUSIC));
+ m_apaudiocd.SetCheck(IsAutoPlayRegistered(AP_AUDIOCD));
+ m_apdvd.SetCheck(IsAutoPlayRegistered(AP_DVDMOVIE));
CreateToolTip();
diff --git a/src/apps/mplayerc/PPageInternalFilters.cpp b/src/apps/mplayerc/PPageInternalFilters.cpp
index 77564839e..291ac564e 100644
--- a/src/apps/mplayerc/PPageInternalFilters.cpp
+++ b/src/apps/mplayerc/PPageInternalFilters.cpp
@@ -131,7 +131,7 @@ s_filters[] =
{_T("PS2 Audio (PCM/ADPCM)"), 1, TRA_PS2AUD, IDS_TRA_PS2AUD, CreateInstance<CMpaDecFilter>},
#endif
#if INTERNAL_DECODER_PCM
- {_T("PCM"), 1, TRA_PCM, 0, NULL /* TODO: CreateInstance<CMpaDecFilter>*/},
+ {_T("QT PCM"), 1, TRA_PCM, 0, NULL /* TODO: CreateInstance<CMpaDecFilter>*/},
#endif
#if INTERNAL_DECODER_MPEG1
diff --git a/src/apps/mplayerc/PPageLogo.cpp b/src/apps/mplayerc/PPageLogo.cpp
index 086191977..6eaf8d804 100644
--- a/src/apps/mplayerc/PPageLogo.cpp
+++ b/src/apps/mplayerc/PPageLogo.cpp
@@ -114,16 +114,7 @@ void CPPageLogo::OnBnClickedRadio1()
{
ASSERT(m_logoidpos);
- m_author.Empty();
-
- m_logobm.Destroy();
- UINT id = m_logoids.GetAt(m_logoidpos);
- if(IDF_LOGO0 != id)
- {
- m_logobm.LoadFromResource(id);
- if(!m_author.LoadString(id)) m_author = ResStr(IDS_LOGO_AUTHOR);
- }
- m_logopreview.SetBitmap(m_logobm);
+ GetDataFromRes();
Invalidate();
m_intext = 0;
@@ -140,10 +131,7 @@ void CPPageLogo::OnBnClickedRadio2()
m_author.Empty();
m_logobm.Destroy();
- if(AfxGetAppSettings().fXpOrBetter)
- m_logobm.Load(m_logofn);
- else if(HANDLE h = LoadImage(NULL, m_logofn, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE))
- m_logobm.Attach((HBITMAP)h);
+ m_logobm.Load(m_logofn);
m_logopreview.SetBitmap(m_logobm);
Invalidate();
@@ -168,8 +156,10 @@ void CPPageLogo::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
if(!m_logoidpos) m_logoidpos = m_logoids.GetTailPosition();
}
- OnBnClickedRadio1();
+ GetDataFromRes();
+ UpdateData(FALSE);
+ SetModified();
*pResult = 0;
}
@@ -177,10 +167,8 @@ void CPPageLogo::OnBnClickedButton2()
{
CFileDialog dlg(TRUE, NULL, m_logofn,
OFN_EXPLORER|OFN_ENABLESIZING|OFN_HIDEREADONLY,
- AfxGetAppSettings().fXpOrBetter
- ? _T("Images (*.bmp;*.gif;*.jpg;*.png)|*.bmp;*.gif;*.jpg;*.png|All files (*.*)|*.*||")
- : _T("Images (*.bmp)|*.bmp|All files (*.*)|*.*||")
- , this, 0);
+ _T("Images (*.bmp;*.gif;*.jpg;*.png)|*.bmp;*.gif;*.jpg;*.png|All files (*.*)|*.*||"),
+ this, 0);
if(dlg.DoModal() == IDOK)
{
@@ -189,3 +177,17 @@ void CPPageLogo::OnBnClickedButton2()
OnBnClickedRadio2();
}
}
+
+void CPPageLogo::GetDataFromRes()
+{
+ m_author.Empty();
+
+ m_logobm.Destroy();
+ UINT id = m_logoids.GetAt(m_logoidpos);
+ if(IDF_LOGO0 != id)
+ {
+ m_logobm.LoadFromResource(id);
+ if(!m_author.LoadString(id)) m_author = ResStr(IDS_LOGO_AUTHOR);
+ }
+ m_logopreview.SetBitmap(m_logobm);
+}
diff --git a/src/apps/mplayerc/PPageLogo.h b/src/apps/mplayerc/PPageLogo.h
index 446ba73ee..7dc37ece8 100644
--- a/src/apps/mplayerc/PPageLogo.h
+++ b/src/apps/mplayerc/PPageLogo.h
@@ -36,6 +36,7 @@ private:
CList<UINT> m_logoids;
POSITION m_logoidpos;
CMPCPngImage m_logobm;
+ void GetDataFromRes();
public:
CPPageLogo();
diff --git a/src/apps/mplayerc/PPageOutput.cpp b/src/apps/mplayerc/PPageOutput.cpp
index 1bbc16a25..ca8a17d3a 100644
--- a/src/apps/mplayerc/PPageOutput.cpp
+++ b/src/apps/mplayerc/PPageOutput.cpp
@@ -262,6 +262,7 @@ BOOL CPPageOutput::OnInitDialog()
{
DisableRadioButton(IDC_EVR, IDC_DSSYSDEF);
DisableRadioButton(IDC_EVR_CUSTOM, IDC_DSSYSDEF);
+ DisableRadioButton(IDC_DSSYNC, IDC_DSSYSDEF); // EVR Sync
}
if(!IsCLSIDRegistered(CLSID_DXR))
@@ -431,7 +432,7 @@ void CPPageOutput::OnFullscreenCheck()
{
UpdateData();
if (m_fD3DFullscreen &&
- (MessageBox(ResStr(IDS_D3DFS_WARNING), NULL, MB_YESNO) == IDNO))
+ (MessageBox(ResStr(IDS_D3DFS_WARNING), NULL, MB_YESNO) == IDNO))
{
m_fD3DFullscreen = false;
UpdateData(FALSE);
diff --git a/src/apps/mplayerc/PPageSheet.cpp b/src/apps/mplayerc/PPageSheet.cpp
index bc1a9d862..84dce8e80 100644
--- a/src/apps/mplayerc/PPageSheet.cpp
+++ b/src/apps/mplayerc/PPageSheet.cpp
@@ -53,6 +53,7 @@ CPPageSheet::CPPageSheet(LPCTSTR pszCaption, IFilterGraph* pFG, CWnd* pParentWnd
AddPage(&m_subtitles);
AddPage(&m_substyle);
AddPage(&m_subdb);
+ AddPage(&m_subMisc);
AddPage(&m_tweaks);
AddPage(&m_casimir);
diff --git a/src/apps/mplayerc/PPageSheet.h b/src/apps/mplayerc/PPageSheet.h
index bd64d825b..b181c4036 100644
--- a/src/apps/mplayerc/PPageSheet.h
+++ b/src/apps/mplayerc/PPageSheet.h
@@ -39,6 +39,7 @@
#include "PPageSubtitles.h"
#include "PPageSubStyle.h"
#include "PPageSubDB.h"
+#include "PPageSubMisc.h"
#include "PPageTweaks.h"
#include "PPageCasimir.h"
#include "PPageCapture.h"
@@ -82,6 +83,7 @@ private:
CPPageSubtitles m_subtitles;
CPPageSubStyle m_substyle;
CPPageSubDB m_subdb;
+ CPPageSubMisc m_subMisc;
CPPageInternalFilters m_internalfilters;
CPPageAudioSwitcher m_audioswitcher;
CPPageExternalFilters m_externalfilters;
diff --git a/src/apps/mplayerc/PPageSubMisc.cpp b/src/apps/mplayerc/PPageSubMisc.cpp
new file mode 100644
index 000000000..39fd42635
--- /dev/null
+++ b/src/apps/mplayerc/PPageSubMisc.cpp
@@ -0,0 +1,83 @@
+/*
+ * $Id$
+ *
+ * (C) 2006-2010 see AUTHORS
+ *
+ * This file is part of mplayerc.
+ *
+ * Mplayerc 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.
+ *
+ * Mplayerc 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 "PPageSubMisc.h"
+
+
+// CPPageSubMisc dialog
+
+IMPLEMENT_DYNAMIC(CPPageSubMisc, CPPageBase)
+
+CPPageSubMisc::CPPageSubMisc()
+ : CPPageBase(CPPageSubMisc::IDD, CPPageSubMisc::IDD)
+ , m_fPrioritizeExternalSubtitles(FALSE)
+ , m_fDisableInternalSubtitles(FALSE)
+ , m_szAutoloadPaths("")
+{
+
+}
+
+CPPageSubMisc::~CPPageSubMisc()
+{
+}
+
+void CPPageSubMisc::DoDataExchange(CDataExchange* pDX)
+{
+ CPPageBase::DoDataExchange(pDX);
+ DDX_Check(pDX, IDC_CHECK1, m_fPrioritizeExternalSubtitles);
+ DDX_Check(pDX, IDC_CHECK2, m_fDisableInternalSubtitles);
+ DDX_Text(pDX, IDC_EDIT1, m_szAutoloadPaths);
+}
+
+BOOL CPPageSubMisc::OnInitDialog()
+{
+ __super::OnInitDialog();
+
+ AppSettings& s = AfxGetAppSettings();
+
+ m_fPrioritizeExternalSubtitles = s.fPrioritizeExternalSubtitles;
+ m_fDisableInternalSubtitles = s.fDisableInternalSubtitles;
+ m_szAutoloadPaths = s.szSubtitlePaths;
+
+ UpdateData(FALSE);
+
+ return TRUE;
+}
+
+BOOL CPPageSubMisc::OnApply()
+{
+ UpdateData();
+
+ AppSettings& s = AfxGetAppSettings();
+
+ s.fPrioritizeExternalSubtitles = m_fPrioritizeExternalSubtitles;
+ s.fDisableInternalSubtitles = m_fDisableInternalSubtitles;
+ s.szSubtitlePaths = m_szAutoloadPaths;
+
+ return __super::OnApply();
+}
+
+
+BEGIN_MESSAGE_MAP(CPPageSubMisc, CPPageBase)
+END_MESSAGE_MAP()
diff --git a/src/apps/mplayerc/PPageSubMisc.h b/src/apps/mplayerc/PPageSubMisc.h
new file mode 100644
index 000000000..8b1d8fa35
--- /dev/null
+++ b/src/apps/mplayerc/PPageSubMisc.h
@@ -0,0 +1,50 @@
+/*
+ * $Id$
+ *
+ * (C) 2006-2010 see AUTHORS
+ *
+ * This file is part of mplayerc.
+ *
+ * Mplayerc 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.
+ *
+ * Mplayerc 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 "PPageBase.h"
+
+// CPPageSubMisc dialog
+
+class CPPageSubMisc : public CPPageBase
+{
+ DECLARE_DYNAMIC(CPPageSubMisc)
+
+public:
+ CPPageSubMisc();
+ virtual ~CPPageSubMisc();
+
+// Dialog Data
+ enum { IDD = IDD_PPAGESUBMISC };
+ BOOL m_fPrioritizeExternalSubtitles;
+ BOOL m_fDisableInternalSubtitles;
+ CString m_szAutoloadPaths;
+
+protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ virtual BOOL OnInitDialog();
+ virtual BOOL OnApply();
+
+ DECLARE_MESSAGE_MAP()
+public:
+};
diff --git a/src/apps/mplayerc/PPageTweaks.cpp b/src/apps/mplayerc/PPageTweaks.cpp
index 719fb6007..39a7e491b 100644
--- a/src/apps/mplayerc/PPageTweaks.cpp
+++ b/src/apps/mplayerc/PPageTweaks.cpp
@@ -177,11 +177,6 @@ END_MESSAGE_MAP()
void CPPageTweaks::OnUpdateCheck3(CCmdUI* pCmdUI)
{
- if(!AfxGetAppSettings().fXpOrBetter)
- {
- pCmdUI->Enable(FALSE);
- pCmdUI->SetCheck(TRUE);
- }
}
void CPPageTweaks::OnUpdateCheck2(CCmdUI* pCmdUI)
diff --git a/src/apps/mplayerc/PlayerNavigationBar.cpp b/src/apps/mplayerc/PlayerNavigationBar.cpp
index 811f9f945..921b61fc4 100644
--- a/src/apps/mplayerc/PlayerNavigationBar.cpp
+++ b/src/apps/mplayerc/PlayerNavigationBar.cpp
@@ -71,6 +71,7 @@ BOOL CPlayerNavigationBar::PreTranslateMessage(MSG* pMsg)
BEGIN_MESSAGE_MAP(CPlayerNavigationBar, baseCPlayerNavigationBar)
ON_WM_SIZE()
+ ON_WM_NCLBUTTONUP()
END_MESSAGE_MAP()
// CPlayerShaderEditorBar message handlers
@@ -84,12 +85,13 @@ void CPlayerNavigationBar::OnSize(UINT nType, int cx, int cy)
CRect r;
GetClientRect(r);
m_navdlg.MoveWindow(r);
- r.DeflateRect(8,8,8,40);
+ r.DeflateRect(8,8,8,50);
m_navdlg.m_ChannelList.MoveWindow(r);
m_navdlg.m_ComboAudio.SetWindowPos(NULL, r.left,r.bottom +5, 0,0, SWP_NOSIZE | SWP_NOZORDER);
- m_navdlg.m_ButtonInfo.SetWindowPos(NULL, r.left+90,r.bottom +5, 0,0, SWP_NOSIZE | SWP_NOZORDER);
- m_navdlg.m_ButtonScan.SetWindowPos(NULL, r.left+145,r.bottom +5, 0,0, SWP_NOSIZE | SWP_NOZORDER);
+ m_navdlg.m_ButtonInfo.SetWindowPos(NULL, r.left+85,r.bottom +5, 0,0, SWP_NOSIZE | SWP_NOZORDER);
+ m_navdlg.m_ButtonScan.SetWindowPos(NULL, r.left+135,r.bottom +5, 0,0, SWP_NOSIZE | SWP_NOZORDER);
+ m_navdlg.m_ButtonFilterStations.SetWindowPos(NULL, r.left,r.bottom +30, 0,0, SWP_NOSIZE | SWP_NOZORDER);
}
@@ -107,6 +109,15 @@ void CPlayerNavigationBar::OnSize(UINT nType, int cx, int cy)
*/
}
+void CPlayerNavigationBar::OnNcLButtonUp(UINT nHitTest, CPoint point)
+{
+ __super::OnNcLButtonUp(nHitTest, point);
+
+ if (nHitTest == HTCLOSE)
+ AfxGetAppSettings().fHideNavigation = true;
+}
+
+
void CPlayerNavigationBar::ShowControls(CWnd* pMainfrm, bool bShow)
{
CSize s = this->CalcFixedLayout(FALSE, TRUE);
diff --git a/src/apps/mplayerc/PlayerNavigationBar.h b/src/apps/mplayerc/PlayerNavigationBar.h
index 649787a3f..c53e5636c 100644
--- a/src/apps/mplayerc/PlayerNavigationBar.h
+++ b/src/apps/mplayerc/PlayerNavigationBar.h
@@ -52,4 +52,5 @@ protected:
public:
afx_msg void OnSize(UINT nType, int cx, int cy);
+ afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point);
};
diff --git a/src/apps/mplayerc/PlayerNavigationDialog.cpp b/src/apps/mplayerc/PlayerNavigationDialog.cpp
index fe6247a00..a1c6f03a5 100644
--- a/src/apps/mplayerc/PlayerNavigationDialog.cpp
+++ b/src/apps/mplayerc/PlayerNavigationDialog.cpp
@@ -57,6 +57,7 @@ void CPlayerNavigationDialog::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_NAVIGATION_AUDIO, m_ComboAudio);
DDX_Control(pDX, IDC_NAVIGATION_INFO, m_ButtonInfo);
DDX_Control(pDX, IDC_NAVIGATION_SCAN, m_ButtonScan);
+ DDX_Control(pDX, IDC_NAVIGATION_FILTERSTATIONS, m_ButtonFilterStations);
}
BOOL CPlayerNavigationDialog::PreTranslateMessage(MSG* pMsg)
@@ -78,6 +79,7 @@ BEGIN_MESSAGE_MAP(CPlayerNavigationDialog, CResizableDialog)
ON_CBN_SELCHANGE(IDC_NAVIGATION_AUDIO, OnSelChangeComboAudio)
ON_BN_CLICKED (IDC_NAVIGATION_INFO, OnButtonInfo)
ON_BN_CLICKED(IDC_NAVIGATION_SCAN, OnTunerScan)
+ ON_BN_CLICKED(IDC_NAVIGATION_FILTERSTATIONS, OnTvRadioStations)
END_MESSAGE_MAP()
@@ -87,6 +89,8 @@ END_MESSAGE_MAP()
BOOL CPlayerNavigationDialog::OnInitDialog()
{
__super::OnInitDialog();
+ m_bTVStations = true;
+ m_ButtonFilterStations.SetWindowText(_T(BTN_CAPTION_SEERADIO));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
@@ -159,14 +163,17 @@ void CPlayerNavigationDialog::UpdateElementList()
while (pos)
{
CDVBChannel& Channel = s.DVBChannels.GetNext(pos);
-
- nItem = m_ChannelList.AddString (Channel.GetName());
- if (nItem < MAX_CHANNELS_ALLOWED)
- p_nItems [nItem] = Channel.GetPrefNumber();
- if (nCurrentChannel == Channel.GetPrefNumber())
+ if ((m_bTVStations && (Channel.GetVideoPID() != 0)) ||
+ (!m_bTVStations && (Channel.GetAudioCount() > 0)) && (Channel.GetVideoPID() == 0))
{
- m_ChannelList.SetCurSel(nItem);
- SetupAudioSwitcherSubMenu(&Channel);
+ nItem = m_ChannelList.AddString (Channel.GetName());
+ if (nItem < MAX_CHANNELS_ALLOWED)
+ p_nItems [nItem] = Channel.GetPrefNumber();
+ if (nCurrentChannel == Channel.GetPrefNumber())
+ {
+ m_ChannelList.SetCurSel(nItem);
+ SetupAudioSwitcherSubMenu(&Channel);
+ }
}
}
}
@@ -211,3 +218,13 @@ void CPlayerNavigationDialog::OnButtonInfo()
// TODO: Retrieve and show channel info
}
+
+void CPlayerNavigationDialog::OnTvRadioStations()
+{
+ m_bTVStations = !m_bTVStations;
+ UpdateElementList();
+ if (m_bTVStations)
+ m_ButtonFilterStations.SetWindowText(_T(BTN_CAPTION_SEERADIO));
+ else
+ m_ButtonFilterStations.SetWindowText(_T(BTN_CAPTION_SEETV));
+}
diff --git a/src/apps/mplayerc/PlayerNavigationDialog.h b/src/apps/mplayerc/PlayerNavigationDialog.h
index 4920c5f74..b9b44cd48 100644
--- a/src/apps/mplayerc/PlayerNavigationDialog.h
+++ b/src/apps/mplayerc/PlayerNavigationDialog.h
@@ -29,6 +29,8 @@
#include "DVBChannel.h"
#define MAX_CHANNELS_ALLOWED 200
+#define BTN_CAPTION_SEERADIO "Click to see Radio Stations"
+#define BTN_CAPTION_SEETV "Click to see TV Stations"
// CPlayerNavigationDialog dialog
@@ -45,6 +47,7 @@ public:
void SetupAudioSwitcherSubMenu(CDVBChannel* Channel = NULL);
int p_nItems[MAX_CHANNELS_ALLOWED];
DVBStreamInfo m_audios[DVB_MAX_AUDIO];
+ bool m_bTVStations;
// Dialog Data
enum { IDD = IDD_NAVIGATION_DLG };
@@ -53,6 +56,7 @@ public:
CComboBox m_ComboAudio;
CButton m_ButtonInfo;
CButton m_ButtonScan;
+ CButton m_ButtonFilterStations;
CWnd* m_pParent;
// CMenu m_subtitles, m_audios;
@@ -70,4 +74,5 @@ public:
afx_msg void OnTunerScan();
afx_msg void OnSelChangeComboAudio();
afx_msg void OnButtonInfo();
+ afx_msg void OnTvRadioStations();
};
diff --git a/src/apps/mplayerc/PlayerShaderEditorBar.cpp b/src/apps/mplayerc/PlayerShaderEditorBar.cpp
index a29aceefa..c9bc45546 100644
--- a/src/apps/mplayerc/PlayerShaderEditorBar.cpp
+++ b/src/apps/mplayerc/PlayerShaderEditorBar.cpp
@@ -38,7 +38,7 @@ CPlayerShaderEditorBar::~CPlayerShaderEditorBar()
BOOL CPlayerShaderEditorBar::Create(CWnd* pParentWnd)
{
- if(!__super::Create(ResStr(IDS_AG_SHADER_EDITOR), pParentWnd, ID_VIEW_SHADEREDITOR))
+ if(!__super::Create(_T("Shader Editor"), pParentWnd, ID_VIEW_SHADEREDITOR))
return FALSE;
m_dlg.Create(this);
diff --git a/src/apps/mplayerc/Playlist.cpp b/src/apps/mplayerc/Playlist.cpp
index 3d642f530..dcc7b07e1 100644
--- a/src/apps/mplayerc/Playlist.cpp
+++ b/src/apps/mplayerc/Playlist.cpp
@@ -186,10 +186,16 @@ void CPlaylistItem::AutoLoadFiles()
if(AfxGetAppSettings().fAutoloadSubtitles)
{
+ CString& pathList = AfxGetAppSettings().szSubtitlePaths;
+
CAtlArray<CString> paths;
- paths.Add(_T("."));
- paths.Add(_T(".\\subtitles"));
- paths.Add(_T("c:\\subtitles"));
+
+ int pos = 0;
+ do
+ {
+ CString path = pathList.Tokenize(_T(";"), pos);
+ paths.Add(path);
+ } while(pos != -1);
CString dir = fn;
dir.Replace('\\', '/');
diff --git a/src/apps/mplayerc/SettingsDefines.h b/src/apps/mplayerc/SettingsDefines.h
index cd38ee255..40dac55d7 100644
--- a/src/apps/mplayerc/SettingsDefines.h
+++ b/src/apps/mplayerc/SettingsDefines.h
@@ -55,6 +55,9 @@
#define IDS_RS_LOOP _T("Loop")
#define IDS_RS_SNAPTODESKTOPEDGES _T("SnapToDesktopEdges")
#define IDS_RS_ENABLESUBTITLES _T("EnableSubtitles")
+#define IDS_RS_PRIORITIZEEXTERNALSUBTITLES _T("PrioritizeExternalSubtitles")
+#define IDS_RS_DISABLEINTERNALSUBTITLES _T("DisableInternalSubtitles")
+#define IDS_RS_SUBTITLEPATHS _T("SubtitlePaths")
#define IDS_RS_USEDEFAULTSUBTITLESSTYLE _T("UseDefaultsubtitlesStyle")
#define IDS_RS_MPEGINTERLACED _T("MPEGInterlaced")
#define IDS_RS_THUMBWIDTH _T("ThumbWidth")
diff --git a/src/apps/mplayerc/StaticLink.h b/src/apps/mplayerc/StaticLink.h
index 6ec6d8929..a887b890f 100644
--- a/src/apps/mplayerc/StaticLink.h
+++ b/src/apps/mplayerc/StaticLink.h
@@ -42,7 +42,7 @@ public:
/*virtual*/ HINSTANCE Navigate()
{
return IsEmpty() ? NULL :
- ShellExecute(0, _T("open"), *this, 0, 0, SW_SHOWNORMAL);
+ ShellExecute(0, _T("open"), *this, 0, 0, SW_SHOWNORMAL);
}
};
diff --git a/src/apps/mplayerc/TextPassThruFilter.cpp b/src/apps/mplayerc/TextPassThruFilter.cpp
index 3965f906c..a334392d3 100644
--- a/src/apps/mplayerc/TextPassThruFilter.cpp
+++ b/src/apps/mplayerc/TextPassThruFilter.cpp
@@ -68,7 +68,7 @@ public:
STDMETHODIMP BeginFlush();
STDMETHODIMP EndFlush();
- HRESULT CompleteConnect(IPin* pReceivePin);
+ HRESULT CompleteConnect(IPin* pReceivePin);
};
//
@@ -136,9 +136,9 @@ STDMETHODIMP CTextPassThruInputPin::EndFlush()
HRESULT CTextPassThruInputPin::CompleteConnect(IPin* pReceivePin)
{
- HRESULT hr = __super::CompleteConnect(pReceivePin);
- if(FAILED(hr) || !m_pTPTFilter->m_pOutput->IsConnected()) return hr;
- return m_pTPTFilter->ReconnectPin(m_pTPTFilter->m_pOutput, &m_mt);
+ HRESULT hr = __super::CompleteConnect(pReceivePin);
+ if(FAILED(hr) || !m_pTPTFilter->m_pOutput->IsConnected()) return hr;
+ return m_pTPTFilter->ReconnectPin(m_pTPTFilter->m_pOutput, &m_mt);
}
//
diff --git a/src/apps/mplayerc/TunerScanDlg.cpp b/src/apps/mplayerc/TunerScanDlg.cpp
index 25b975595..8ce69596e 100644
--- a/src/apps/mplayerc/TunerScanDlg.cpp
+++ b/src/apps/mplayerc/TunerScanDlg.cpp
@@ -34,6 +34,7 @@ enum TSC_COLUMN
TSCC_NUMBER,
TSCC_NAME,
TSCC_FREQUENCY,
+ TSCC_ENCRYPTED,
TSCC_CHANNEL
};
@@ -62,6 +63,7 @@ BOOL CTunerScanDlg::OnInitDialog()
m_ChannelList.InsertColumn(TSCC_NUMBER, _T("N"), LVCFMT_LEFT, 50);
m_ChannelList.InsertColumn(TSCC_NAME, _T("Name"), LVCFMT_LEFT, 250);
m_ChannelList.InsertColumn(TSCC_FREQUENCY, _T("Frequency"), LVCFMT_LEFT, 100);
+ m_ChannelList.InsertColumn(TSCC_ENCRYPTED, _T("Encrypted"), LVCFMT_LEFT, 80);
m_ChannelList.InsertColumn(TSCC_CHANNEL, _T("Channel"), LVCFMT_LEFT, 0);
m_Progress.SetRange(0, 100);
@@ -122,6 +124,7 @@ void CTunerScanDlg::OnBnClickedStart()
{
if (!m_bInProgress)
{
+ UpdateData(true);
CAutoPtr<TunerScanData> pTSD (DNew TunerScanData);
pTSD->Hwnd = m_hWnd;
pTSD->FrequencyStart = m_ulFrequencyStart;
@@ -170,19 +173,35 @@ LRESULT CTunerScanDlg::OnNewChannel(WPARAM wParam, LPARAM lParam)
CDVBChannel Channel;
CString strTemp;
int nItem;
+ int nChannelNumber;
Channel.FromString ((LPCTSTR) lParam);
- strTemp.Format(_T("%03d"), Channel.GetOriginNumber());
- nItem = m_ChannelList.InsertItem (m_ChannelList.GetItemCount(), strTemp);
+ if (Channel.GetOriginNumber() != 0) // LCN is available
+ {
+ nChannelNumber = Channel.GetOriginNumber();
+ // Insert new channel so that channels are sorted by their logical number
+ for (nItem=0; nItem<m_ChannelList.GetItemCount(); nItem++)
+ {
+ if (m_ChannelList.GetItemData(nItem) > nChannelNumber)
+ break;
+ }
+ }
+ else
+ nChannelNumber = nItem = m_ChannelList.GetItemCount();
- strTemp.Format(_T("%d"), m_ChannelList.GetItemCount());
- m_ChannelList.SetItemText (nItem, TSCC_NUMBER, strTemp);
+ strTemp.Format(_T("%d"), nChannelNumber);
+ nItem = m_ChannelList.InsertItem (nItem, strTemp);
+
+ m_ChannelList.SetItemData (nItem, Channel.GetOriginNumber());
m_ChannelList.SetItemText (nItem, TSCC_NAME, Channel.GetName());
strTemp.Format(_T("%d"), Channel.GetFrequency());
m_ChannelList.SetItemText (nItem, TSCC_FREQUENCY, strTemp);
+ strTemp = Channel.IsEncrypted() ? _T("Yes") : _T("No");
+ m_ChannelList.SetItemText (nItem, TSCC_ENCRYPTED, strTemp);
+
m_ChannelList.SetItemText (nItem, TSCC_CHANNEL, (LPCTSTR) lParam);
diff --git a/src/apps/mplayerc/WebServer.cpp b/src/apps/mplayerc/WebServer.cpp
index 091476e57..b60a1de9b 100644
--- a/src/apps/mplayerc/WebServer.cpp
+++ b/src/apps/mplayerc/WebServer.cpp
@@ -74,7 +74,7 @@ CWebServer::CWebServer(CMainFrame* pMainFrame, int nPort)
m_downloads[_T("/seekbarmid.png")] = IDF_SEEKBARMID_PNG;
m_downloads[_T("/seekbarright.png")] = IDF_SEEKBARRIGHT_PNG;
m_downloads[_T("/seekbargrip.png")] = IDF_SEEKBARGRIP_PNG;
- m_downloads[_T("/logo.png")] = IDF_LOGO2;
+ m_downloads[_T("/logo.png")] = IDF_LOGO1;
m_downloads[_T("/controlback.png")] = IDF_CONTROLBACK_PNG;
m_downloads[_T("/controlbuttonplay.png")] = IDF_CONTROLBUTTONPLAY_PNG;
m_downloads[_T("/controlbuttonpause.png")] = IDF_CONTROLBUTTONPAUSE_PNG;
@@ -353,7 +353,7 @@ void CWebServer::OnRequest(CWebClientSocket* pClient, CStringA& hdr, CStringA& b
CString redir;
if(pClient->m_get.Lookup(_T("redir"), redir)
- || pClient->m_post.Lookup(_T("redir"), redir))
+ || pClient->m_post.Lookup(_T("redir"), redir))
{
if(redir.IsEmpty()) redir = '/';
diff --git a/src/apps/mplayerc/internal_filter_config.h b/src/apps/mplayerc/internal_filter_config.h
index 99c5fea1f..7eeef3dff 100644
--- a/src/apps/mplayerc/internal_filter_config.h
+++ b/src/apps/mplayerc/internal_filter_config.h
@@ -64,6 +64,9 @@
#define INTERNAL_DECODER_AC3 1 /* also E-AC3,TrueHD,MLP */
#define INTERNAL_DECODER_NELLYMOSER 1
#define INTERNAL_DECODER_AMR 1
+//#define INTERNAL_DECODER_IMA4 1
+
+//#define INCLUDE_FFMPEG_AUDIO_DECODER (INTERNAL_DECODER_AC3|INTERNAL_DECODER_NELLYMOSER|INTERNAL_DECODER_AMR|INTERNAL_DECODER_IMA4)
// Internal video decoders
#define INTERNAL_DECODER_MPEG1 1
diff --git a/src/apps/mplayerc/Icons/aac.ico b/src/apps/mplayerc/mpciconlib/icons/aac.ico
index a513227a3..a513227a3 100644
--- a/src/apps/mplayerc/Icons/aac.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/aac.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/aiff.ico b/src/apps/mplayerc/mpciconlib/icons/aiff.ico
index 81104f92b..81104f92b 100644
--- a/src/apps/mplayerc/Icons/aiff.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/aiff.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/alac.ico b/src/apps/mplayerc/mpciconlib/icons/alac.ico
index 410eea5f2..410eea5f2 100644
--- a/src/apps/mplayerc/Icons/alac.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/alac.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/au.ico b/src/apps/mplayerc/mpciconlib/icons/au.ico
index 8d11d5343..8d11d5343 100644
--- a/src/apps/mplayerc/Icons/au.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/au.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/avi.ico b/src/apps/mplayerc/mpciconlib/icons/avi.ico
index e3ed4bcd8..e3ed4bcd8 100644
--- a/src/apps/mplayerc/Icons/avi.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/avi.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/bik.ico b/src/apps/mplayerc/mpciconlib/icons/bik.ico
index d37bc710f..d37bc710f 100644
--- a/src/apps/mplayerc/Icons/bik.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/bik.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/cda.ico b/src/apps/mplayerc/mpciconlib/icons/cda.ico
index 3702a2f86..3702a2f86 100644
--- a/src/apps/mplayerc/Icons/cda.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/cda.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/d2v.ico b/src/apps/mplayerc/mpciconlib/icons/d2v.ico
index e8dac4993..e8dac4993 100644
--- a/src/apps/mplayerc/Icons/d2v.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/d2v.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/drc.ico b/src/apps/mplayerc/mpciconlib/icons/drc.ico
index 270094350..270094350 100644
--- a/src/apps/mplayerc/Icons/drc.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/drc.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/dsm.ico b/src/apps/mplayerc/mpciconlib/icons/dsm.ico
index 2f3fac41d..2f3fac41d 100644
--- a/src/apps/mplayerc/Icons/dsm.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/dsm.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/dvda.ico b/src/apps/mplayerc/mpciconlib/icons/dvda.ico
index e6e4636cc..e6e4636cc 100644
--- a/src/apps/mplayerc/Icons/dvda.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/dvda.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/dvdf.ico b/src/apps/mplayerc/mpciconlib/icons/dvdf.ico
index f01cab14c..f01cab14c 100644
--- a/src/apps/mplayerc/Icons/dvdf.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/dvdf.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/flac.ico b/src/apps/mplayerc/mpciconlib/icons/flac.ico
index e48fe2aef..e48fe2aef 100644
--- a/src/apps/mplayerc/Icons/flac.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/flac.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/flic.ico b/src/apps/mplayerc/mpciconlib/icons/flic.ico
index 09a6f169c..09a6f169c 100644
--- a/src/apps/mplayerc/Icons/flic.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/flic.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/flv.ico b/src/apps/mplayerc/mpciconlib/icons/flv.ico
index 1e8884903..1e8884903 100644
--- a/src/apps/mplayerc/Icons/flv.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/flv.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/icon_list.txt b/src/apps/mplayerc/mpciconlib/icons/icon_list.txt
index 28555f764..28555f764 100644
--- a/src/apps/mplayerc/Icons/icon_list.txt
+++ b/src/apps/mplayerc/mpciconlib/icons/icon_list.txt
diff --git a/src/apps/mplayerc/Icons/ifv.ico b/src/apps/mplayerc/mpciconlib/icons/ifv.ico
index 82375cd9c..82375cd9c 100644
--- a/src/apps/mplayerc/Icons/ifv.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/ifv.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/jpeg.ico b/src/apps/mplayerc/mpciconlib/icons/jpeg.ico
index cd3045497..cd3045497 100644
--- a/src/apps/mplayerc/Icons/jpeg.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/jpeg.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mid.ico b/src/apps/mplayerc/mpciconlib/icons/mid.ico
index 4468b18d8..4468b18d8 100644
--- a/src/apps/mplayerc/Icons/mid.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mid.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mka.ico b/src/apps/mplayerc/mpciconlib/icons/mka.ico
index 595c45ddf..595c45ddf 100644
--- a/src/apps/mplayerc/Icons/mka.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mka.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mkv.ico b/src/apps/mplayerc/mpciconlib/icons/mkv.ico
index 003c85298..003c85298 100644
--- a/src/apps/mplayerc/Icons/mkv.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mkv.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mov.ico b/src/apps/mplayerc/mpciconlib/icons/mov.ico
index 5c6670328..5c6670328 100644
--- a/src/apps/mplayerc/Icons/mov.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mov.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mp3.ico b/src/apps/mplayerc/mpciconlib/icons/mp3.ico
index de57e2135..de57e2135 100644
--- a/src/apps/mplayerc/Icons/mp3.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mp3.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mp4.ico b/src/apps/mplayerc/mpciconlib/icons/mp4.ico
index 2a1cfb39b..2a1cfb39b 100644
--- a/src/apps/mplayerc/Icons/mp4.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mp4.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mpa.ico b/src/apps/mplayerc/mpciconlib/icons/mpa.ico
index aea3337bb..aea3337bb 100644
--- a/src/apps/mplayerc/Icons/mpa.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mpa.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mpc.ico b/src/apps/mplayerc/mpciconlib/icons/mpc.ico
index 8f4b5f3ad..8f4b5f3ad 100644
--- a/src/apps/mplayerc/Icons/mpc.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mpc.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/mpg.ico b/src/apps/mplayerc/mpciconlib/icons/mpg.ico
index 1f9ee287e..1f9ee287e 100644
--- a/src/apps/mplayerc/Icons/mpg.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/mpg.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/ogg.ico b/src/apps/mplayerc/mpciconlib/icons/ogg.ico
index 6424537e7..6424537e7 100644
--- a/src/apps/mplayerc/Icons/ogg.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/ogg.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/ogm.ico b/src/apps/mplayerc/mpciconlib/icons/ogm.ico
index f006a3e82..f006a3e82 100644
--- a/src/apps/mplayerc/Icons/ogm.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/ogm.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/other.ico b/src/apps/mplayerc/mpciconlib/icons/other.ico
index 7b63c2b90..7b63c2b90 100644
--- a/src/apps/mplayerc/Icons/other.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/other.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/plc.ico b/src/apps/mplayerc/mpciconlib/icons/plc.ico
index 68acfdd87..68acfdd87 100644
--- a/src/apps/mplayerc/Icons/plc.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/plc.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/ra.ico b/src/apps/mplayerc/mpciconlib/icons/ra.ico
index ef2e486fe..ef2e486fe 100644
--- a/src/apps/mplayerc/Icons/ra.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/ra.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/ratdvd.ico b/src/apps/mplayerc/mpciconlib/icons/ratdvd.ico
index cf745aa84..cf745aa84 100644
--- a/src/apps/mplayerc/Icons/ratdvd.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/ratdvd.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/rm.ico b/src/apps/mplayerc/mpciconlib/icons/rm.ico
index d90ea4ecc..d90ea4ecc 100644
--- a/src/apps/mplayerc/Icons/rm.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/rm.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/roq.ico b/src/apps/mplayerc/mpciconlib/icons/roq.ico
index e6cb26c09..e6cb26c09 100644
--- a/src/apps/mplayerc/Icons/roq.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/roq.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/rt.ico b/src/apps/mplayerc/mpciconlib/icons/rt.ico
index a0fed938a..a0fed938a 100644
--- a/src/apps/mplayerc/Icons/rt.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/rt.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/swf.ico b/src/apps/mplayerc/mpciconlib/icons/swf.ico
index d863af772..d863af772 100644
--- a/src/apps/mplayerc/Icons/swf.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/swf.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/wav.ico b/src/apps/mplayerc/mpciconlib/icons/wav.ico
index 17067bde8..17067bde8 100644
--- a/src/apps/mplayerc/Icons/wav.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/wav.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/wma.ico b/src/apps/mplayerc/mpciconlib/icons/wma.ico
index 4a6de5338..4a6de5338 100644
--- a/src/apps/mplayerc/Icons/wma.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/wma.ico
Binary files differ
diff --git a/src/apps/mplayerc/Icons/wmv.ico b/src/apps/mplayerc/mpciconlib/icons/wmv.ico
index b34b7c450..b34b7c450 100644
--- a/src/apps/mplayerc/Icons/wmv.ico
+++ b/src/apps/mplayerc/mpciconlib/icons/wmv.ico
Binary files differ
diff --git a/src/apps/mplayerc/mpciconlib/mpciconlib.rc b/src/apps/mplayerc/mpciconlib/mpciconlib.rc
index ab9a7c947..d5d07fd99 100644
--- a/src/apps/mplayerc/mpciconlib/mpciconlib.rc
+++ b/src/apps/mplayerc/mpciconlib/mpciconlib.rc
@@ -55,44 +55,44 @@ END
// The icons should have the exact same order as in "mpciconlib.h" !
-IDI_AVI_ICON ICON "..\\Icons\\avi.ico"
-IDI_MPG_ICON ICON "..\\Icons\\mpg.ico"
-IDI_MP4_ICON ICON "..\\Icons\\mp4.ico"
-IDI_MKV_ICON ICON "..\\Icons\\mkv.ico"
-IDI_OGM_ICON ICON "..\\Icons\\ogm.ico"
-IDI_FLV_ICON ICON "..\\Icons\\flv.ico"
-IDI_WMV_ICON ICON "..\\Icons\\wmv.ico"
-IDI_MOV_ICON ICON "..\\Icons\\mov.ico"
-IDI_RM_ICON ICON "..\\Icons\\rm.ico"
-IDI_MP3_ICON ICON "..\\Icons\\mp3.ico"
-IDI_OGG_ICON ICON "..\\Icons\\ogg.ico"
-IDI_AAC_ICON ICON "..\\Icons\\aac.ico"
-IDI_MKA_ICON ICON "..\\Icons\\mka.ico"
-IDI_WMA_ICON ICON "..\\Icons\\wma.ico"
-IDI_RA_ICON ICON "..\\Icons\\ra.ico"
-IDI_WAV_ICON ICON "..\\Icons\\wav.ico"
-IDI_MPA_ICON ICON "..\\Icons\\mpa.ico"
-IDI_CDA_ICON ICON "..\\Icons\\cda.ico"
-IDI_MPC_ICON ICON "..\\Icons\\mpc.ico"
-IDI_FLAC_ICON ICON "..\\Icons\\flac.ico"
-IDI_ALAC_ICON ICON "..\\Icons\\alac.ico"
-IDI_PLC_ICON ICON "..\\Icons\\plc.ico"
-IDI_D2V_ICON ICON "..\\Icons\\d2v.ico"
-IDI_MID_ICON ICON "..\\Icons\\mid.ico"
-IDI_AIFF_ICON ICON "..\\Icons\\aiff.ico"
-IDI_AU_ICON ICON "..\\Icons\\au.ico"
-IDI_IVF_ICON ICON "..\\Icons\\ifv.ico"
-IDI_FLIC_ICON ICON "..\\Icons\\flic.ico"
-IDI_BIK_ICON ICON "..\\Icons\\bik.ico"
-IDI_RATDVD_ICON ICON "..\\Icons\\ratdvd.ico"
-IDI_ROQ_ICON ICON "..\\Icons\\roq.ico"
-IDI_RT_ICON ICON "..\\Icons\\rt.ico"
-IDI_DRC_ICON ICON "..\\Icons\\drc.ico"
-IDI_DSM_ICON ICON "..\\Icons\\dsm.ico"
-IDI_SWF_ICON ICON "..\\Icons\\swf.ico"
-IDI_OTHER_ICON ICON "..\\Icons\\other.ico"
-IDI_DVDA_ICON ICON "..\\Icons\\dvda.ico"
-IDI_DVDF_ICON ICON "..\\Icons\\dvdf.ico"
+IDI_AVI_ICON ICON "icons\\avi.ico"
+IDI_MPG_ICON ICON "icons\\mpg.ico"
+IDI_MP4_ICON ICON "icons\\mp4.ico"
+IDI_MKV_ICON ICON "icons\\mkv.ico"
+IDI_OGM_ICON ICON "icons\\ogm.ico"
+IDI_FLV_ICON ICON "icons\\flv.ico"
+IDI_WMV_ICON ICON "icons\\wmv.ico"
+IDI_MOV_ICON ICON "icons\\mov.ico"
+IDI_RM_ICON ICON "icons\\rm.ico"
+IDI_MP3_ICON ICON "icons\\mp3.ico"
+IDI_OGG_ICON ICON "icons\\ogg.ico"
+IDI_AAC_ICON ICON "icons\\aac.ico"
+IDI_MKA_ICON ICON "icons\\mka.ico"
+IDI_WMA_ICON ICON "icons\\wma.ico"
+IDI_RA_ICON ICON "icons\\ra.ico"
+IDI_WAV_ICON ICON "icons\\wav.ico"
+IDI_MPA_ICON ICON "icons\\mpa.ico"
+IDI_CDA_ICON ICON "icons\\cda.ico"
+IDI_MPC_ICON ICON "icons\\mpc.ico"
+IDI_FLAC_ICON ICON "icons\\flac.ico"
+IDI_ALAC_ICON ICON "icons\\alac.ico"
+IDI_PLC_ICON ICON "icons\\plc.ico"
+IDI_D2V_ICON ICON "icons\\d2v.ico"
+IDI_MID_ICON ICON "icons\\mid.ico"
+IDI_AIFF_ICON ICON "icons\\aiff.ico"
+IDI_AU_ICON ICON "icons\\au.ico"
+IDI_IVF_ICON ICON "icons\\ifv.ico"
+IDI_FLIC_ICON ICON "icons\\flic.ico"
+IDI_BIK_ICON ICON "icons\\bik.ico"
+IDI_RATDVD_ICON ICON "icons\\ratdvd.ico"
+IDI_ROQ_ICON ICON "icons\\roq.ico"
+IDI_RT_ICON ICON "icons\\rt.ico"
+IDI_DRC_ICON ICON "icons\\drc.ico"
+IDI_DSM_ICON ICON "icons\\dsm.ico"
+IDI_SWF_ICON ICON "icons\\swf.ico"
+IDI_OTHER_ICON ICON "icons\\other.ico"
+IDI_DVDA_ICON ICON "icons\\dvda.ico"
+IDI_DVDF_ICON ICON "icons\\dvdf.ico"
/////////////////////////////////////////////////////////////////////////////
//
diff --git a/src/apps/mplayerc/mpciconlib/mpciconlib.vcproj b/src/apps/mplayerc/mpciconlib/mpciconlib.vcproj
index e94707274..af8348d87 100644
--- a/src/apps/mplayerc/mpciconlib/mpciconlib.vcproj
+++ b/src/apps/mplayerc/mpciconlib/mpciconlib.vcproj
@@ -24,9 +24,9 @@
OutputDirectory="$(SolutionDir)bin\mpc-hc_x86\"
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops;..\..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -98,8 +98,9 @@
OutputDirectory="$(SolutionDir)bin\mpc-hc_x64\"
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops;..\..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -192,161 +193,169 @@
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
- RelativePath="..\Icons\aac.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\aiff.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\alac.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\au.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\avi.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\bik.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\cda.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\d2v.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\drc.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\dsm.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\dvda.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\dvdf.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\flac.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\flic.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\flv.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\ifv.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mid.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mka.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mkv.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mov.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mp3.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mp4.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mpa.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\mpc.ico"
- >
- </File>
- <File
RelativePath=".\mpciconlib.rc"
>
</File>
- <File
- RelativePath="..\Icons\mpg.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\ogg.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\ogm.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\other.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\plc.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\ra.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\ratdvd.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\rm.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\roq.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\rt.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\swf.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\wav.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\wma.ico"
- >
- </File>
- <File
- RelativePath="..\Icons\wmv.ico"
- >
- </File>
+ <Filter
+ Name="icons"
+ >
+ <File
+ RelativePath=".\icons\aac.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\aiff.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\alac.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\au.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\avi.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\bik.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\cda.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\d2v.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\drc.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\dsm.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\dvda.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\dvdf.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\flac.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\flic.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\flv.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ifv.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\jpeg.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mid.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mka.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mkv.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mov.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mp3.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mp4.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mpa.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mpc.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\mpg.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ogg.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ogm.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\other.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\plc.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ra.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ratdvd.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\rm.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\roq.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\rt.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\swf.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\wav.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\wma.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\wmv.ico"
+ >
+ </File>
+ </Filter>
</Filter>
<File
RelativePath=".\mpciconlib.def"
diff --git a/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj b/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj
index b6aa84fbd..f490679ef 100644
--- a/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj
+++ b/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj
@@ -18,13 +18,10 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -90,45 +87,45 @@
<ResourceCompile Include="mpciconlib.rc" />
</ItemGroup>
<ItemGroup>
- <None Include="..\Icons\aac.ico" />
- <None Include="..\Icons\aiff.ico" />
- <None Include="..\Icons\alac.ico" />
- <None Include="..\Icons\au.ico" />
- <None Include="..\Icons\avi.ico" />
- <None Include="..\Icons\bik.ico" />
- <None Include="..\Icons\cda.ico" />
- <None Include="..\Icons\d2v.ico" />
- <None Include="..\Icons\drc.ico" />
- <None Include="..\Icons\dsm.ico" />
- <None Include="..\Icons\dvda.ico" />
- <None Include="..\Icons\dvdf.ico" />
- <None Include="..\Icons\flac.ico" />
- <None Include="..\Icons\flic.ico" />
- <None Include="..\Icons\flv.ico" />
- <None Include="..\Icons\ifv.ico" />
- <None Include="..\Icons\jpeg.ico" />
- <None Include="..\Icons\mid.ico" />
- <None Include="..\Icons\mka.ico" />
- <None Include="..\Icons\mkv.ico" />
- <None Include="..\Icons\mov.ico" />
- <None Include="..\Icons\mp3.ico" />
- <None Include="..\Icons\mp4.ico" />
- <None Include="..\Icons\mpa.ico" />
- <None Include="..\Icons\mpc.ico" />
- <None Include="..\Icons\mpg.ico" />
- <None Include="..\Icons\ogg.ico" />
- <None Include="..\Icons\ogm.ico" />
- <None Include="..\Icons\other.ico" />
- <None Include="..\Icons\plc.ico" />
- <None Include="..\Icons\ra.ico" />
- <None Include="..\Icons\ratdvd.ico" />
- <None Include="..\Icons\rm.ico" />
- <None Include="..\Icons\roq.ico" />
- <None Include="..\Icons\rt.ico" />
- <None Include="..\Icons\swf.ico" />
- <None Include="..\Icons\wav.ico" />
- <None Include="..\Icons\wma.ico" />
- <None Include="..\Icons\wmv.ico" />
+ <None Include="icons\aac.ico" />
+ <None Include="icons\aiff.ico" />
+ <None Include="icons\alac.ico" />
+ <None Include="icons\au.ico" />
+ <None Include="icons\avi.ico" />
+ <None Include="icons\bik.ico" />
+ <None Include="icons\cda.ico" />
+ <None Include="icons\d2v.ico" />
+ <None Include="icons\drc.ico" />
+ <None Include="icons\dsm.ico" />
+ <None Include="icons\dvda.ico" />
+ <None Include="icons\dvdf.ico" />
+ <None Include="icons\flac.ico" />
+ <None Include="icons\flic.ico" />
+ <None Include="icons\flv.ico" />
+ <None Include="icons\ifv.ico" />
+ <None Include="icons\jpeg.ico" />
+ <None Include="icons\mid.ico" />
+ <None Include="icons\mka.ico" />
+ <None Include="icons\mkv.ico" />
+ <None Include="icons\mov.ico" />
+ <None Include="icons\mp3.ico" />
+ <None Include="icons\mp4.ico" />
+ <None Include="icons\mpa.ico" />
+ <None Include="icons\mpc.ico" />
+ <None Include="icons\mpg.ico" />
+ <None Include="icons\ogg.ico" />
+ <None Include="icons\ogm.ico" />
+ <None Include="icons\other.ico" />
+ <None Include="icons\plc.ico" />
+ <None Include="icons\ra.ico" />
+ <None Include="icons\ratdvd.ico" />
+ <None Include="icons\rm.ico" />
+ <None Include="icons\roq.ico" />
+ <None Include="icons\rt.ico" />
+ <None Include="icons\swf.ico" />
+ <None Include="icons\wav.ico" />
+ <None Include="icons\wma.ico" />
+ <None Include="icons\wmv.ico" />
<None Include="mpciconlib.def" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj.filters b/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj.filters
index 09eb63b81..b1ae6d418 100644
--- a/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj.filters
+++ b/src/apps/mplayerc/mpciconlib/mpciconlib.vcxproj.filters
@@ -13,6 +13,9 @@
<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</Extensions>
</Filter>
+ <Filter Include="Resource Files\icons">
+ <UniqueIdentifier>{a30fae36-ef1d-4888-83c4-6ef86520877d}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="mpciconlib.cpp">
@@ -33,122 +36,122 @@
<None Include="mpciconlib.def">
<Filter>Source Files</Filter>
</None>
- <None Include="..\Icons\aac.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\aac.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\aiff.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\aiff.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\alac.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\alac.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\au.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\au.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\avi.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\avi.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\bik.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\bik.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\cda.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\cda.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\d2v.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\d2v.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\drc.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\drc.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\dsm.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\dsm.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\dvda.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\dvda.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\dvdf.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\dvdf.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\flac.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\flac.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\flic.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\flic.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\flv.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\flv.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\ifv.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\ifv.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\jpeg.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\jpeg.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mid.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mid.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mka.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mka.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mkv.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mkv.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mov.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mov.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mp3.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mp3.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mp4.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mp4.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mpa.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mpa.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mpc.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mpc.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\mpg.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\mpg.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\ogg.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\ogg.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\ogm.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\ogm.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\other.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\other.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\plc.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\plc.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\ra.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\ra.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\ratdvd.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\ratdvd.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\rm.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\rm.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\roq.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\roq.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\rt.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\rt.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\swf.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\swf.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\wav.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\wav.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\wma.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\wma.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
- <None Include="..\Icons\wmv.ico">
- <Filter>Resource Files</Filter>
+ <None Include="icons\wmv.ico">
+ <Filter>Resource Files\icons</Filter>
</None>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/apps/mplayerc/mpcresources/ConvertRcFilesToPoFiles.vbs b/src/apps/mplayerc/mpcresources/ConvertRcFilesToPoFiles.vbs
deleted file mode 100644
index 7f67dcad7..000000000
--- a/src/apps/mplayerc/mpcresources/ConvertRcFilesToPoFiles.vbs
+++ /dev/null
@@ -1,329 +0,0 @@
-' Run "cscript.exe //X "ConvertRcFilesToPoFiles.vbs"" for debugging
-
-Option Explicit
-''
-' This script converts the language RC files to the language PO files.
-'
-' Copyright (C) 2007 by Tim Gerundt
-' Released under the "GNU General Public License"
-'
-' ID line follows -- this is updated by SVN
-' $Id$
-
-Const ForReading = 1
-
-Const NO_BLOCK = 0
-Const MENU_BLOCK = 1
-Const DIALOGEX_BLOCK = 2
-Const STRINGTABLE_BLOCK = 3
-Const VERSIONINFO_BLOCK = 4
-
-Dim oFSO, bRunFromCmd
-
-Set oFSO = CreateObject("Scripting.FileSystemObject")
-
-bRunFromCmd = False
-If (LCase(Right(Wscript.FullName, 11))) = "cscript.exe" Then
- bRunFromCmd = True
-End If
-
-Call Main
-
-''
-' ...
-Sub Main
- Dim oLanguages, sLanguage
- Dim oOriginalTranslations, oLanguageTranslations, oMergedTranslations
- Dim StartTime, EndTime, Seconds
-
- StartTime = Time
-
- Wscript.Echo "Warning: " & Wscript.ScriptName & " can take several minutes to finish!"
-
- If (oFSO.FileExists("English.pot") = True) Then 'If the master POT file exists...
- Set oOriginalTranslations = GetTranslationsFromRcFile("../mplayerc.rc")
-
- '~ Set oLanguageTranslations = GetTranslationsFromRcFile("German\MergeGerman.rc")
- '~ Set oMergedTranslations = MergeTranslations(oOriginalTranslations, oLanguageTranslations)
- '~ CreatePoFileWithTranslations "English.pot", "German\German.po", oMergedTranslations
-
- '~ Set oLanguageTranslations = GetTranslationsFromRcFile("ChineseSimplified\MergeChineseSimplified.rc")
- '~ Set oMergedTranslations = MergeTranslations(oOriginalTranslations, oLanguageTranslations)
- '~ CreatePoFileWithTranslations "English.pot", "ChineseSimplified\ChineseSimplified.po", oMergedTranslations
-
- Set oLanguages = GetLanguages
- For Each sLanguage In oLanguages.Keys 'For all languages...
- If (bRunFromCmd = True) Then 'If run from command line...
- Wscript.Echo sLanguage
- End If
- Set oLanguageTranslations = GetTranslationsFromRcFile(oLanguages(sLanguage))
- Set oMergedTranslations = MergeTranslations(oOriginalTranslations, oLanguageTranslations)
- If (oMergedTranslations.Count > 0) Then 'If translations exists...
- CreatePoFileWithTranslations "English.pot", sLanguage & ".po", oMergedTranslations
- End If
- Next
- End If
-
- EndTime = Time
- Seconds = DateDiff("s", StartTime, EndTime)
-
- Wscript.Echo Wscript.ScriptName & " finished after " & Seconds & " seconds!"
-End Sub
-
-''
-' ...
-Function GetLanguages()
- Dim oLanguages, oFile, name, ext
-
- Set oLanguages = CreateObject("Scripting.Dictionary")
-
- For Each oFile In oFSO.GetFolder(".").Files 'For all subfolders in the current folder...
- ext = oFSO.GetExtensionName(oFile)
- name = oFSO.GetBaseName(oFile)
- If (ext = "rc") Then
- oLanguages.Add name, oFile.Name
- End If
- Next
- Set GetLanguages = oLanguages
-End Function
-
-''
-' ...
-Function GetTranslationsFromRcFile(ByVal sRcPath)
- Dim oTranslations, oTextFile, sLine
- Dim oMatch, iBlockType, sKey1, sKey2, iPosition, sValue
- Dim sLang, sSubLang, sCodePage
-
- Set oTranslations = CreateObject("Scripting.Dictionary")
-
- If (oFSO.FileExists(sRcPath) = True) Then
- iBlockType = NO_BLOCK
- sKey1 = ""
- sKey2 = ""
- iPosition = 0
- sCodePage = ""
- Set oTextFile = oFSO.OpenTextFile(sRcPath, ForReading, False, -1)
- Do Until oTextFile.AtEndOfStream = True
- sLine = Trim(oTextFile.ReadLine)
-
- sValue = ""
-
- If (FoundRegExpMatch(sLine, "(IDR_.*) MENU", oMatch) = True) Then 'MENU...
- iBlockType = MENU_BLOCK
- sKey1 = oMatch.SubMatches(0)
- iPosition = 0
- ElseIf (FoundRegExpMatch(sLine, "(IDD_.*) DIALOGEX", oMatch) = True) Then 'DIALOGEX...
- iBlockType = DIALOGEX_BLOCK
- sKey1 = oMatch.SubMatches(0)
- iPosition = 0
- ElseIf (sLine = "STRINGTABLE") Then 'STRINGTABLE...
- iBlockType = STRINGTABLE_BLOCK
- sKey1 = "STRINGTABLE"
- 'iPosition = 0
- ElseIf (FoundRegExpMatch(sLine, "(VS_.*) VERSIONINFO", oMatch) = True) Then 'VERSIONINFO...
- iBlockType = VERSIONINFO_BLOCK
- sKey1 = "VERSIONINFO"
- iPosition = 0
- ElseIf (sLine = "END") Then 'END...
- If (iBlockType = STRINGTABLE_BLOCK) Then 'If inside stringtable...
- iBlockType = NO_BLOCK
- sKey1 = ""
- 'iPosition = 0
- End If
- ElseIf (sLine <> "") Then 'If NOT empty line...
- Select Case iBlockType
- Case NO_BLOCK:
- If (FoundRegExpMatch(sLine, "LANGUAGE (LANG_\w*), (SUBLANG_\w*)", oMatch) = True) Then 'LANGUAGE...
- sLang = oMatch.SubMatches(0)
- sSubLang = oMatch.SubMatches(1)
- ElseIf (FoundRegExpMatch(sLine, "code_page\(([\d]+)\)", oMatch) = True) Then 'code_page...
- sCodePage = oMatch.SubMatches(0)
- End If
-
- Case MENU_BLOCK:
- If (FoundRegExpMatch(sLine, "POPUP ""(.*)""", oMatch) = True) Then 'POPUP...
- If (InStr(oMatch.SubMatches(0), "_POPUP_") = 0) Then
- sKey2 = iPosition
- iPosition = iPosition + 1
- sValue = oMatch.SubMatches(0)
- End If
- ElseIf (FoundRegExpMatch(sLine, "MENUITEM.*""(.*)"".*(ID_.*)", oMatch) = True) Then 'MENUITEM...
- sKey2 = oMatch.SubMatches(1)
- sValue = oMatch.SubMatches(0)
- End If
-
- Case DIALOGEX_BLOCK:
- If (FoundRegExpMatch(sLine, "CAPTION.*""(.*)""", oMatch) = True) Then 'CAPTION...
- sKey2 = "CAPTION"
- sValue = oMatch.SubMatches(0)
- ElseIf (FoundRegExpMatch(sLine, "PUSHBUTTON.*""(.*)"",(\w+)", oMatch) = True) Then 'DEFPUSHBUTTON/PUSHBUTTON...
- sKey2 = oMatch.SubMatches(1)
- sValue = oMatch.SubMatches(0)
- ElseIf (FoundRegExpMatch(sLine, "[L|R|C]TEXT.*""(.*)"",(\w+)", oMatch) = True) Then 'LTEXT/RTEXT...
- If (oMatch.SubMatches(0) <> "") And (oMatch.SubMatches(0) <> "Static") Then
- If (oMatch.SubMatches(1) <> "IDC_STATIC") Then
- sKey2 = oMatch.SubMatches(1)
- Else
- sKey2 = iPosition & "_TEXT"
- iPosition = iPosition + 1
- End If
- sValue = oMatch.SubMatches(0)
- End If
- ElseIf (FoundRegExpMatch(sLine, "[L|R]TEXT.*""(.*)"",", oMatch) = True) Then 'LTEXT/RTEXT (without ID)...
- sKey2 = iPosition & "_TEXT"
- iPosition = iPosition + 1
- sValue = oMatch.SubMatches(0)
- ElseIf (FoundRegExpMatch(sLine, "CONTROL +""(.*?)"",(\w+)", oMatch) = True) Then 'CONTROL...
- If (oMatch.SubMatches(0) <> "Dif") And (oMatch.SubMatches(0) <> "Btn") And (oMatch.SubMatches(0) <> "Button1") Then
- sKey2 = oMatch.SubMatches(1)
- sValue = oMatch.SubMatches(0)
- End If
- ElseIf (FoundRegExpMatch(sLine, "CONTROL +""(.*?)"",", oMatch) = True) Then 'CONTROL (without ID)...
- sKey2 = iPosition & "_CONTROL"
- iPosition = iPosition + 1
- sValue = oMatch.SubMatches(0)
- ElseIf (FoundRegExpMatch(sLine, "GROUPBOX +""(.*?)"",(\w+)", oMatch) = True) Then 'GROUPBOX...
- If (oMatch.SubMatches(1) <> "IDC_STATIC") Then
- sKey2 = oMatch.SubMatches(1)
- Else
- sKey2 = iPosition & "_GROUPBOX"
- iPosition = iPosition + 1
- End If
- sValue = oMatch.SubMatches(0)
- End If
-
- Case STRINGTABLE_BLOCK:
- If (FoundRegExpMatch(sLine, "(\w+).*""(.*)""", oMatch) = True) Then 'String...
- sKey2 = oMatch.SubMatches(0)
- sValue = oMatch.SubMatches(1)
- ElseIf (FoundRegExpMatch(sLine, """(.*)""", oMatch) = True) Then 'String (without ID)...
- sKey2 = iPosition
- iPosition = iPosition + 1
- sValue = oMatch.SubMatches(0)
- End If
-
- Case VERSIONINFO_BLOCK:
- If (FoundRegExpMatch(sLine, "BLOCK ""([0-9A-F]+)""", oMatch) = True) Then 'StringFileInfo.Block...
- sKey2 = "STRINGFILEINFO_BLOCK"
- sValue = oMatch.SubMatches(0)
- ElseIf (FoundRegExpMatch(sLine, "VALUE ""(.*?)"", ""(.*?)\\?0?""", oMatch) = True) Then 'StringFileInfo.Value...
- sKey2 = "STRINGFILEINFO_" & oMatch.SubMatches(0)
- sValue = oMatch.SubMatches(1)
- ElseIf (FoundRegExpMatch(sLine, "VALUE ""Translation"", (.*?)$", oMatch) = True) Then 'VarFileInfo.Translation...
- sKey2 = "VARFILEINFO_TRANSLATION"
- sValue = oMatch.SubMatches(0)
- End If
-
- End Select
- End If
-
- If (sValue <> "") Then
- Dim key
- key = sKey1 & "." & sKey2
- If (not oTranslations.Exists(key)) Then
- oTranslations.Add key, sValue
- Else
- Dim newKey, oldValue, iNum
- iNum = 1
- newKey = key
- Do Until not oTranslations.Exists(newKey)
- oldValue = oTranslations(newKey)
- iNum = iNum + 1
- newKey = key & iNum
- Loop
- oTranslations.Add newKey, sValue
- End If
- End If
- Loop
- oTextFile.Close
-
- oTranslations.Add "__LANGUAGE__", sLang & ", " & sSubLang
- oTranslations.Add "__CODEPAGE__", sCodePage
- End If
- Set GetTranslationsFromRcFile = oTranslations
-End Function
-
-''
-' ...
-Function MergeTranslations(ByVal oOriginalTranslations, ByVal oLanguageTranslations)
- Dim oMergedTranslations, sKey
- Dim sOriginalTranslation, sLanguageTranslation
-
- Set oMergedTranslations = CreateObject("Scripting.Dictionary")
- For Each sKey In oOriginalTranslations.Keys 'For all original translations...
- sOriginalTranslation = oOriginalTranslations(sKey)
- sLanguageTranslation = oLanguageTranslations(sKey)
-
- If (sOriginalTranslation <> "") And (sOriginalTranslation <> sLanguageTranslation) Then
- If (oMergedTranslations.Exists(sOriginalTranslation) = False) Then
- oMergedTranslations.Add oOriginalTranslations(sKey), oLanguageTranslations(sKey)
- End If
- End If
- Next
- oMergedTranslations.Add "__CODEPAGE__", oLanguageTranslations("__CODEPAGE__")
- Set MergeTranslations = oMergedTranslations
-End Function
-
-''
-' ...
-Sub CreatePoFileWithTranslations(ByVal sMasterPotPath, ByVal sLanguagePoPath, ByVal oTranslations)
- Dim oMasterPotFile, sMasterLine
- Dim oLanguagePoFile, sLanguageLine
- Dim oMatch, sMsgId, sMsgStr, sKey
-
- If (oFSO.FileExists(sMasterPotPath) = True) Then 'If the master POT file exists...
- sMsgId = ""
- sMsgStr = ""
- Set oMasterPotFile = oFSO.OpenTextFile(sMasterPotPath, ForReading, False, -1)
- Set oLanguagePoFile = oFSO.CreateTextFile(sLanguagePoPath, True, True)
- Do Until oMasterPotFile.AtEndOfStream = True 'For all lines...
- sMasterLine = oMasterPotFile.ReadLine
- sLanguageLine = sMasterLine
-
- If (Trim(sMasterLine) <> "") Then 'If NOT empty line...
- If (FoundRegExpMatch(sMasterLine, "msgid ""(.*)""", oMatch) = True) Then 'If "msgid"...
- sMsgId = oMatch.SubMatches(0)
- If (oTranslations.Exists(sMsgId) = True) Then 'If translation located...
- sMsgStr = oTranslations(sMsgId)
- End If
- ElseIf (FoundRegExpMatch(sMasterLine, "msgstr """"", oMatch) = True) Then 'If "msgstr"...
- If (sMsgId = "1252") And (sMsgStr = "") Then 'If same codepage...
- sMsgStr = oTranslations("__CODEPAGE__")
- End If
- If (sMsgStr <> "") Then 'If translated...
- sLanguageLine = Replace(sMasterLine, "msgstr """"", "msgstr """ & sMsgStr & """")
- End If
- ElseIf (FoundRegExpMatch(sMasterLine, "CP1252", oMatch) = True) Then 'If "Codepage"...
- sLanguageLine = Replace(sMasterLine, "CP1252", "CP" & oTranslations("__CODEPAGE__"))
- ElseIf (FoundRegExpMatch(sMasterLine, "English", oMatch) = True) Then 'If "English"...
- sLanguageLine = Replace(sMasterLine, "English", oFSO.GetBaseName(sLanguagePoPath))
- End If
- Else 'If empty line
- sMsgId = ""
- sMsgStr = ""
- End If
-
- oLanguagePoFile.WriteLine sLanguageLine
- Loop
- oMasterPotFile.Close
- oLanguagePoFile.Close
- End If
-End Sub
-
-''
-' ...
-Function FoundRegExpMatch(ByVal sString, ByVal sPattern, ByRef oMatchReturn)
- Dim oRegExp, oMatches
-
- Set oRegExp = New RegExp
- oRegExp.Pattern = sPattern
- oRegExp.IgnoreCase = True
-
- oMatchReturn = Null
- FoundRegExpMatch = False
- If (oRegExp.Test(sString) = True) Then
- Set oMatches = oRegExp.Execute(sString)
- Set oMatchReturn = oMatches(0)
- FoundRegExpMatch = True
- End If
-End Function
diff --git a/src/apps/mplayerc/mpcresources/CreateMasterPotFile.vbs b/src/apps/mplayerc/mpcresources/CreateMasterPotFile.vbs
deleted file mode 100644
index 40fec6b73..000000000
--- a/src/apps/mplayerc/mpcresources/CreateMasterPotFile.vbs
+++ /dev/null
@@ -1,274 +0,0 @@
-Option Explicit
-''
-' This script creates the master POT file (English.pot).
-'
-' Copyright (C) 2007 by Tim Gerundt
-' Released under the "GNU General Public License"
-'
-' ID line follows -- this is updated by SVN
-' $Id$
-
-Const ForReading = 1
-
-Const NO_BLOCK = 0
-Const MENU_BLOCK = 1
-Const DIALOGEX_BLOCK = 2
-Const STRINGTABLE_BLOCK = 3
-Const VERSIONINFO_BLOCK = 4
-Const ACCELERATORS_BLOCK = 5
-
-Dim oFSO
-
-Set oFSO = CreateObject("Scripting.FileSystemObject")
-
-Call Main
-
-''
-' ...
-Sub Main
- Dim oStrings, oComments, sCodePage
- Dim StartTime, EndTime, Seconds
-
- StartTime = Time
-
- Wscript.Echo "Warning: " & Wscript.ScriptName & " can take several seconds to finish!"
-
- Set oStrings = GetStringsFromRcFile("../mplayerc.rc", oComments, sCodePage)
- CreateMasterPotFile "English.pot", oStrings, oComments, sCodePage
-
- EndTime = Time
- Seconds = DateDiff("s", StartTime, EndTime)
-
- Wscript.Echo Wscript.ScriptName & " finished after " & Seconds & " seconds!"
-End Sub
-
-''
-' ...
-Function GetStringsFromRcFile(ByVal sRcFilePath, ByRef oComments, ByRef sCodePage)
- Dim oBlacklist, oStrings, oRcFile, sLine, iLine
- Dim sRcFileName, iBlockType, sReference, sString, sComment, oMatches, oMatch, sTemp
-
- '--------------------------------------------------------------------------------
- ' Blacklist...
- '--------------------------------------------------------------------------------
- Set oBlacklist = CreateObject("Scripting.Dictionary")
- oBlacklist.Add "_HDR_POPUP_", True
- oBlacklist.Add "_ITEM_POPUP_", True
- oBlacklist.Add "_POPUP_", True
- oBlacklist.Add "Btn", True
- oBlacklist.Add "Button", True
- oBlacklist.Add "Button1", True
- oBlacklist.Add "Dif", True
- oBlacklist.Add "IDS_SAVEVSS_FMT", True
- oBlacklist.Add "List1", True
- oBlacklist.Add "msctls_progress32", True
- oBlacklist.Add "Static", True
- oBlacklist.Add "SysListView32", True
- oBlacklist.Add "SysTreeView32", True
- oBlacklist.Add "Tree1", True
- '--------------------------------------------------------------------------------
-
- Set oStrings = CreateObject("Scripting.Dictionary")
- Set oComments = CreateObject("Scripting.Dictionary")
-
- If (oFSO.FileExists(sRcFilePath) = True) Then 'If the RC file exists...
- sRcFileName = oFSO.GetFileName(sRcFilePath)
- iLine = 0
- iBlockType = NO_BLOCK
- sCodePage = ""
- Set oRcFile = oFSO.OpenTextFile(sRcFilePath, ForReading, False, -1)
- Do Until oRcFile.AtEndOfStream = True 'For all lines...
- sLine = Trim(oRcFile.ReadLine)
- iLine = iLine + 1
-
- sReference = sRcFileName & ":" & iLine
- sString = ""
- sComment = ""
-
- If (FoundRegExpMatch(sLine, "IDR_.* MENU", oMatch) = True) Then 'MENU...
- iBlockType = MENU_BLOCK
- ElseIf (FoundRegExpMatch(sLine, "IDD_.* DIALOGEX", oMatch) = True) Then 'DIALOGEX...
- iBlockType = DIALOGEX_BLOCK
- ElseIf (sLine = "STRINGTABLE") Then 'STRINGTABLE...
- iBlockType = STRINGTABLE_BLOCK
- ElseIf (FoundRegExpMatch(sLine, "VS_.* VERSIONINFO", oMatch) = True) Then 'VERSIONINFO...
- iBlockType = VERSIONINFO_BLOCK
- ElseIf (FoundRegExpMatch(sLine, "IDR_.* ACCELERATORS", oMatch) = True) Then 'ACCELERATORS...
- iBlockType = ACCELERATORS_BLOCK
- ElseIf (sLine = "END") Then 'END...
- If (iBlockType = STRINGTABLE_BLOCK) Then 'If inside stringtable...
- iBlockType = NO_BLOCK
- End If
- ElseIf (sLine <> "") Then 'If NOT empty line...
- Select Case iBlockType
- Case NO_BLOCK:
- If (FoundRegExpMatch(sLine, "LANGUAGE (LANG_\w*, SUBLANG_\w*)", oMatch) = True) Then 'LANGUAGE...
- sString = oMatch.SubMatches(0)
- sComment = "LANGUAGE, SUBLANGUAGE"
- ElseIf (FoundRegExpMatch(sLine, "code_page\(([\d]+)\)", oMatch) = True) Then 'code_page...
- sString = oMatch.SubMatches(0)
- sComment = "Codepage"
- sCodePage = oMatch.SubMatches(0)
- End If
-
- Case MENU_BLOCK, DIALOGEX_BLOCK, STRINGTABLE_BLOCK:
- If (FoundRegExpMatches(sLine, """(.*?)""", oMatches) = True) Then 'String...
- For Each oMatch In oMatches 'For all strings...
- sTemp = oMatch.SubMatches(0)
- If (sTemp <> "") And (oBlacklist.Exists(sTemp) = False) Then 'If NOT blacklisted...
- If (oStrings.Exists(sTemp) = True) Then 'If the key is already used...
- oStrings(sTemp) = oStrings(sTemp) & vbTab & sReference
- Else 'If the key is NOT already used...
- oStrings.Add sTemp, sReference
- End If
- End If
- Next
- End If
-
- Case VERSIONINFO_BLOCK:
- If (FoundRegExpMatch(sLine, "BLOCK ""([0-9A-F]+)""", oMatch) = True) Then 'StringFileInfo.Block...
- sString = oMatch.SubMatches(0)
- sComment = "StringFileInfo.Block"
- ElseIf (FoundRegExpMatch(sLine, "VALUE ""(.*?)"", ""(.*?)\\?0?""", oMatch) = True) Then 'StringFileInfo.Value...
- If (oMatch.SubMatches(0) <> "FileVersion") And (oMatch.SubMatches(0) <> "ProductVersion") Then 'If NOT file or product version...
- sString = oMatch.SubMatches(1)
- sComment = "StringFileInfo." & oMatch.SubMatches(0)
- End If
- ElseIf (FoundRegExpMatch(sLine, "VALUE ""Translation"", (.*?)$", oMatch) = True) Then 'VarFileInfo.Translation...
- sString = oMatch.SubMatches(0)
- sComment = "VarFileInfo.Translation"
- End If
-
- End Select
- End If
-
- If (sString <> "") Then
- If (oStrings.Exists(sString) = True) Then 'If the key is already used...
- oStrings(sString) = oStrings(sString) & vbTab & sReference
- Else 'If the key is NOT already used...
- oStrings.Add sString, sReference
- End If
-
- If (sComment <> "") Then
- If (oComments.Exists(sString) = True) Then 'If the comment key is already used...
- If (oComments(sString) <> sComment) Then 'If new comment...
- oComments(sString) = oComments(sString) & vbTab & sComment
- End If
- Else 'If the comment key is NOT already used...
- oComments.Add sString, sComment
- End If
- End If
- End If
- Loop
- oRcFile.Close
- End If
- Set GetStringsFromRcFile = oStrings
-End Function
-
-''
-' ...
-Sub CreateMasterPotFile(ByVal sPotPath, ByVal oStrings, ByVal oComments, ByVal sCodePage)
- Dim oPotFile, sMsgId, aComments, aReferences, i
-
- Set oPotFile = oFSO.CreateTextFile(sPotPath, True, True)
-
- oPotFile.WriteLine "# This file is part from MPC-HC <http://mpc-hc.sourceforge.net/>"
- oPotFile.WriteLine "# Released under the ""GNU General Public License"""
- oPotFile.WriteLine "#"
- oPotFile.WriteLine "msgid """""
- oPotFile.WriteLine "msgstr """""
- oPotFile.WriteLine """Project-Id-Version: MPC-HC\n"""
- oPotFile.WriteLine """Report-Msgid-Bugs-To: https://sourceforge.net/apps/trac/mpc-hc/report\n"""
- oPotFile.WriteLine """POT-Creation-Date: " & GetPotCreationDate() & "\n"""
- oPotFile.WriteLine """PO-Revision-Date: \n"""
- oPotFile.WriteLine """Last-Translator: \n"""
- oPotFile.WriteLine """Language-Team: English <mpchc-translate@lists.sourceforge.net>\n"""
- oPotFile.WriteLine """MIME-Version: 1.0\n"""
- oPotFile.WriteLine """Content-Type: text/plain; charset=CP" & sCodePage & "\n"""
- oPotFile.WriteLine """Content-Transfer-Encoding: 8bit\n"""
- oPotFile.WriteLine """X-Poedit-Language: English\n"""
- oPotFile.WriteLine """X-Poedit-SourceCharset: CP" & sCodePage & "\n"""
- oPotFile.WriteLine """X-Generator: CreateMasterPotFile.vbs\n"""
- oPotFile.WriteLine
- For Each sMsgId In oStrings.Keys 'For all strings...
- aComments = SplitByTab(oComments(sMsgId))
- For i = LBound(aComments) To UBound(aComments) 'For all comments...
- oPotFile.WriteLine "#. " & aComments(i)
- Next
- aReferences = SplitByTab(oStrings(sMsgId))
- For i = LBound(aReferences) To UBound(aReferences) 'For all references...
- oPotFile.WriteLine "#: " & aReferences(i)
- Next
- oPotFile.WriteLine "#, c-format"
- oPotFile.WriteLine "msgid """ & sMsgId & """"
- oPotFile.WriteLine "msgstr """""
- oPotFile.WriteLine
- Next
- oPotFile.Close
-End Sub
-
-''
-' ...
-Function FoundRegExpMatch(ByVal sString, ByVal sPattern, ByRef oMatchReturn)
- Dim oRegExp, oMatches
-
- Set oRegExp = New RegExp
- oRegExp.Pattern = sPattern
- oRegExp.IgnoreCase = True
-
- oMatchReturn = Null
- FoundRegExpMatch = False
- If (oRegExp.Test(sString) = True) Then
- Set oMatches = oRegExp.Execute(sString)
- Set oMatchReturn = oMatches(0)
- FoundRegExpMatch = True
- End If
-End Function
-
-''
-' ...
-Function FoundRegExpMatches(ByVal sString, ByVal sPattern, ByRef oMatchesReturn)
- Dim oRegExp
-
- Set oRegExp = New RegExp
- oRegExp.Pattern = sPattern
- oRegExp.IgnoreCase = True
- oRegExp.Global = True
-
- oMatchesReturn = Null
- FoundRegExpMatches = False
- If (oRegExp.Test(sString) = True) Then
- Set oMatchesReturn = oRegExp.Execute(sString)
- FoundRegExpMatches = True
- End If
-End Function
-
-''
-' ...
-Function SplitByTab(ByVal sString)
- SplitByTab = Array()
- If (InStr(sString, vbTab) > 0) Then
- SplitByTab = Split(sString, vbTab, -1)
- Else
- SplitByTab = Array(sString)
- End If
-End Function
-
-''
-' ...
-Function GetPotCreationDate()
- Dim oNow, sYear, sMonth, sDay, sHour, sMinute
-
- oNow = Now()
- sYear = Year(oNow)
- sMonth = Month(oNow)
- If (sMonth < 10) Then sMonth = "0" & sMonth
- sDay = Day(oNow)
- If (sDay < 10) Then sDay = "0" & sDay
- sHour = Hour(oNow)
- If (sHour < 10) Then sHour = "0" & sHour
- sMinute = Minute(oNow)
- If (sMinute < 10) Then sMinute = "0" & sMinute
-
- GetPotCreationDate = sYear & "-" & sMonth & "-" & sDay & " " & sHour & ":" & sMinute & "+0000"
-End Function
diff --git a/src/apps/mplayerc/mpcresources/CreateTranslatedRcFiles.vbs b/src/apps/mplayerc/mpcresources/CreateTranslatedRcFiles.vbs
deleted file mode 100644
index aff7d38f2..000000000
--- a/src/apps/mplayerc/mpcresources/CreateTranslatedRcFiles.vbs
+++ /dev/null
@@ -1,250 +0,0 @@
-Option Explicit
-''
-' This script creates the translated RC files for the shell extension.
-'
-' Copyright (C) 2007-2009 by Tim Gerundt
-' Released under the "GNU General Public License"
-'
-' ID line follows -- this is updated by SVN
-' $Id: CreateTranslatedRcFiles.vbs 6780 2009-05-23 11:58:54Z gerundt $
-
-Const ForReading = 1
-
-Const NO_BLOCK = 0
-Const STRINGTABLE_BLOCK = 1
-
-Const PATH_SHELLEXTTEMPLATE_RC = "../mplayerc.rc"
-
-Dim oFSO, bRunFromCmd
-
-Set oFSO = CreateObject("Scripting.FileSystemObject")
-
-bRunFromCmd = False
-If LCase(oFSO.GetFileName(Wscript.FullName)) = "cscript.exe" Then
- bRunFromCmd = True
-End If
-
-Call Main
-
-''
-' ...
-Sub Main
- Dim oLanguages, sLanguage
- Dim oLanguageTranslations, sLanguagePoFilePath
- Dim StartTime, EndTime, Seconds
-
- StartTime = Time
-
- InfoBox "Warning: " & Wscript.ScriptName & " can take several seconds to finish!", 3
-
- Set oLanguages = GetLanguages
- For Each sLanguage In oLanguages.Keys 'For all languages...
- If (bRunFromCmd = True) Then 'If run from command line...
- Wscript.Echo sLanguage
- End If
- Set oLanguageTranslations = GetTranslationsFromPoFile(oLanguages(sLanguage))
- If (oLanguageTranslations.Count > 0) Then 'If translations exists...
- CreateRcFileWithTranslations PATH_SHELLEXTTEMPLATE_RC, sLanguage & "_gen.rc", oLanguageTranslations
- End If
- Next
-
- EndTime = Time
- Seconds = DateDiff("s", StartTime, EndTime)
-
- InfoBox Wscript.ScriptName & " finished after " & Seconds & " seconds!", 3
-End Sub
-
-''
-' ...
-Function GetLanguages()
- Dim oLanguages, oFile
-
- Set oLanguages = CreateObject("Scripting.Dictionary")
-
- For Each oFile In oFSO.GetFolder(".").Files 'For all files in the current folder...
- If (LCase(oFSO.GetExtensionName(oFile.Name)) = "po") Then 'If a PO file...
- oLanguages.Add oFSO.GetBaseName(oFile.Name), oFile.Path
- End If
- Next
- Set GetLanguages = oLanguages
-End Function
-
-''
-' ...
-Function GetTranslationsFromPoFile(ByVal sPoPath)
- Dim oTranslations, oTextFile, sLine
- Dim oMatch, iMsgStarted, sMsgId, sMsgStr
- Dim reMsgId, reMsgStr, reMsgContinued
-
- Set reMsgId = New RegExp
- reMsgId.Pattern = "^msgid ""(.*)""$"
- reMsgId.IgnoreCase = True
-
- Set reMsgStr = New RegExp
- reMsgStr.Pattern = "^msgstr ""(.*)""$"
- reMsgStr.IgnoreCase = True
-
- Set reMsgContinued = New RegExp
- reMsgContinued.Pattern = "^""(.*)""$"
- reMsgContinued.IgnoreCase = True
-
- Set oTranslations = CreateObject("Scripting.Dictionary")
-
- If (oFSO.FileExists(sPoPath) = True) Then 'If the PO file exists...
- iMsgStarted = 0
- sMsgId = ""
- sMsgStr = ""
- Set oTextFile = oFSO.OpenTextFile(sPoPath, ForReading, False, -1)
- Do Until oTextFile.AtEndOfStream = True 'For all lines...
- sLine = Trim(oTextFile.ReadLine)
-
- If (sLine <> "") Then 'If NOT empty line...
- If (Left(sLine, 1) <> "#") Then 'If NOT comment line...
- '--------------------------------------------------------------------------------
- ' Note: We must replace \" temporary with FormFeed and convert them later to ""
- '--------------------------------------------------------------------------------
- sLine = Replace(sLine, "\""", vbFormFeed)
- If reMsgId.Test(sLine) Then 'If "msgid"...
- iMsgStarted = 1
- Set oMatch = reMsgId.Execute(sLine)(0)
- sMsgId = oMatch.SubMatches(0)
- ElseIf reMsgStr.Test(sLine) Then 'If "msgstr"...
- iMsgStarted = 2
- Set oMatch = reMsgStr.Execute(sLine)(0)
- sMsgStr = oMatch.SubMatches(0)
- ElseIf reMsgContinued.Test(sLine) Then 'If "msgid" or "msgstr" continued...
- Set oMatch = reMsgContinued.Execute(sLine)(0)
- If (iMsgStarted = 1) Then
- sMsgId = sMsgId & oMatch.SubMatches(0)
- ElseIf (iMsgStarted = 2) Then
- sMsgStr = sMsgStr & oMatch.SubMatches(0)
- End If
- End If
- sMsgId = Replace(sMsgId, vbFormFeed, """""")
- sMsgStr = Replace(sMsgStr, vbFormFeed, """""")
- End If
- Else 'If empty line
- iMsgStarted = 0
- End If
-
- If (iMsgStarted = 0) Then 'If NOT inside a translation...
- If (sMsgId <> "") And (sMsgStr <> "") And (sMsgId <> sMsgStr) Then 'If translated...
- oTranslations.Add sMsgId, sMsgStr
- End If
- sMsgId = ""
- sMsgStr = ""
- End If
- Loop
- oTextFile.Close
- End If
- Set GetTranslationsFromPoFile = oTranslations
-End Function
-
-''
-' ...
-Sub CreateRcFileWithTranslations(ByVal sMasterRcPath, ByVal sLanguageRcPath, ByVal oTranslations)
- Dim oMasterRcFile, sMasterLine
- Dim oLanguageRcFile, sLanguageLine
- Dim iBlockType, oMatches, oMatch, sMsgId, sMsgStr
- Dim reAfxTarg, reLanguage, reCodePage, reString, sTemp
-
- Set reAfxTarg = New RegExp
- reAfxTarg.Pattern = "defined\((AFX_TARG_\w*)\)"
- reAfxTarg.IgnoreCase = True
-
- Set reLanguage = New RegExp
- reLanguage.Pattern = "LANGUAGE (LANG_\w*, SUBLANG_\w*)"
- reLanguage.IgnoreCase = True
-
- Set reCodePage = New RegExp
- reCodePage.Pattern = "code_page\(([\d]+)\)"
- reCodePage.IgnoreCase = True
-
- Set reString = New RegExp
- reString.Pattern = """(.*?)"""
- reString.IgnoreCase = True
-
- If (oFSO.FileExists(sMasterRcPath) = True) Then 'If the master RC file exists...
- iBlockType = NO_BLOCK
- Set oMasterRcFile = oFSO.OpenTextFile(sMasterRcPath, ForReading, False, -1)
- Set oLanguageRcFile = oFSO.CreateTextFile(sLanguageRcPath, True, True)
- Do Until oMasterRcFile.AtEndOfStream = True 'For all lines...
- sMasterLine = oMasterRcFile.ReadLine
- sLanguageLine = sMasterLine
- sMasterLine = Trim(sMasterLine) 'Save Masterline trimmed!
-
- If (sMasterLine = "STRINGTABLE") Then 'STRINGTABLE...
- iBlockType = STRINGTABLE_BLOCK
- ElseIf (sMasterLine = "BEGIN") Then 'BEGIN...
- 'IGNORE FOR SPEEDUP!
- ElseIf (sMasterLine = "END") Then 'END...
- If (iBlockType = STRINGTABLE_BLOCK) Then 'If inside stringtable...
- iBlockType = NO_BLOCK
- End If
- ElseIf (Left(sMasterLine, 2) = "//") Then 'If comment line...
- 'IGNORE FOR SPEEDUP!
- ElseIf (sMasterLine <> "") Then 'If NOT empty line...
- Select Case iBlockType
- Case NO_BLOCK:
- If reAfxTarg.Test(sMasterLine) Then 'AFX_TARG_*...
- Set oMatch = reAfxTarg.Execute(sMasterLine)(0)
- sMsgId = oMatch.SubMatches(0)
- If (sMsgId <> "") And (oTranslations.Exists(sMsgId) = True) Then 'If translation located...
- sMsgStr = oTranslations(sMsgId)
- sLanguageLine = Replace(sLanguageLine, "defined(" & sMsgId, "defined(" & sMsgStr)
- End If
- ElseIf reLanguage.Test(sMasterLine) Then 'LANGUAGE...
- Set oMatch = reLanguage.Execute(sMasterLine)(0)
- sMsgId = oMatch.SubMatches(0)
- If (sMsgId <> "") And (oTranslations.Exists(sMsgId) = True) Then 'If translation located...
- sMsgStr = oTranslations(sMsgId)
- sLanguageLine = Replace(sLanguageLine, "LANGUAGE " & sMsgId, "LANGUAGE " & sMsgStr)
- End If
- ElseIf reCodePage.Test(sMasterLine) Then 'code_page...
- Set oMatch = reCodePage.Execute(sMasterLine)(0)
- sMsgId = oMatch.SubMatches(0)
- If (sMsgId <> "") And (oTranslations.Exists(sMsgId) = True) Then 'If translation located...
- sMsgStr = oTranslations(sMsgId)
- sLanguageLine = Replace(sLanguageLine, "code_page(" & sMsgId & ")", "code_page(" & sMsgStr & ")")
- End If
- End If
-
- Case STRINGTABLE_BLOCK:
- If (InStr(sMasterLine, """") > 0) Then 'If quote found (for speedup)...
- '--------------------------------------------------------------------------------
- ' Note: We must replace "" temporary with FormFeed...
- '--------------------------------------------------------------------------------
- sTemp = Replace(sMasterLine, """""", vbFormFeed)
- If reString.Test(sTemp) Then 'String...
- Set oMatches = reString.Execute(sTemp)
- For Each oMatch In oMatches 'For all strings...
- sMsgId = Replace(oMatch.SubMatches(0), vbFormFeed, """""")
- If (sMsgId <> "") And (oTranslations.Exists(sMsgId) = True) Then 'If translation located...
- sMsgStr = oTranslations(sMsgId)
- sLanguageLine = Replace(sLanguageLine, """" & sMsgId & """", """" & sMsgStr & """")
- End If
- Next
- End If
- End If
-
- End Select
- End If
- oLanguageRcFile.WriteLine sLanguageLine
- Loop
- oMasterRcFile.Close
- oLanguageRcFile.Close
- End If
-End Sub
-
-''
-' ...
-Function InfoBox(ByVal sText, ByVal iSecondsToWait)
- Dim oShell
-
- If (bRunFromCmd = False) Then 'If run from command line...
- Set oShell = Wscript.CreateObject("WScript.Shell")
- InfoBox = oShell.Popup(sText, iSecondsToWait, Wscript.ScriptName, 64)
- Else 'If NOT run from command line...
- Wscript.Echo sText
- End If
-End Function
diff --git a/src/apps/mplayerc/mpcresources/GetTranslationsStatus.vbs b/src/apps/mplayerc/mpcresources/GetTranslationsStatus.vbs
deleted file mode 100644
index 027055c42..000000000
--- a/src/apps/mplayerc/mpcresources/GetTranslationsStatus.vbs
+++ /dev/null
@@ -1,566 +0,0 @@
-Option Explicit
-''
-' This script gets the status of the translations.
-'
-' Copyright (C) 2007 by Tim Gerundt
-' Released under the "GNU General Public License"
-'
-' ID line follows -- this is updated by SVN
-' $Id$
-
-Const ForReading = 1
-Const SvnWebUrlLanguages = "http://winmerge.svn.sourceforge.net/viewvc/winmerge/trunk/Translations/WinMerge/"
-
-Dim oFSO, bRunFromCmd
-
-Set oFSO = CreateObject("Scripting.FileSystemObject")
-
-bRunFromCmd = False
-If LCase(oFSO.GetFileName(Wscript.FullName)) = "cscript.exe" Then
- bRunFromCmd = True
-End If
-
-Call Main
-
-''
-' ...
-Sub Main
- Dim oTranslationsStatus
- Dim oLanguages, sLanguage
- Dim StartTime, EndTime, Seconds
-
- StartTime = Time
-
- InfoBox "Creating translations status files...", 3
-
- Set oTranslationsStatus = CreateObject("Scripting.Dictionary")
-
- If (bRunFromCmd = True) Then 'If run from command line...
- Wscript.Echo "English"
- End If
- oTranslationsStatus.Add "English", GetTranslationsStatusFromPoFile("English.pot")
-
- Set oLanguages = GetLanguages
- For Each sLanguage In oLanguages.Keys 'For all languages...
- If (bRunFromCmd = True) Then 'If run from command line...
- Wscript.Echo sLanguage
- End If
- oTranslationsStatus.Add sLanguage, GetTranslationsStatusFromPoFile(oLanguages(sLanguage))
- Next
-
- CreateTranslationsStatusHtmlFile "TranslationsStatus.html", oTranslationsStatus
-
- CreateTranslationsStatusWikiFile "TranslationsStatus.wiki", oTranslationsStatus
-
- CreateTranslationsStatusXmlFile "TranslationsStatus.xml", oTranslationsStatus
-
- CreateTranslatorsListFile "Translators.html", oTranslationsStatus
-
- EndTime = Time
- Seconds = DateDiff("s", StartTime, EndTime)
-
- InfoBox "Translations status files created, after " & Seconds & " second(s).", 10
-End Sub
-
-''
-' ...
-Function GetLanguages()
- Dim oLanguages, oFile, ext, name
-
- Set oLanguages = CreateObject("Scripting.Dictionary")
-
- For Each oFile In oFSO.GetFolder(".").Files 'For all subfolders in the current folder...
- ext = oFSO.GetExtensionName(oFile)
- name = oFSO.GetBaseName(oFile)
- If (ext = "po") Then
- oLanguages.Add name, oFile.Name
- End If
- Next
- Set GetLanguages = oLanguages
-End Function
-
-''
-' ...
-Class CStatus
- Public Count, Translated, Untranslated, Fuzzy
- Public PoRevisionDate, PotCreationDate
- Public Translators
-
- Private Sub Class_Initialize
- Count = 0
- Translated = 0
- Untranslated = 0
- Fuzzy = 0
- PoRevisionDate = ""
- PotCreationDate = ""
- Set Translators = CreateObject("Scripting.Dictionary")
- End Sub
-
- Public Sub AddTranslator(ByVal sTranslator, ByVal bMaintainer)
- Dim Translator
-
- Set Translator = New CTranslator
- Translator.Maintainer = bMaintainer
- Translator.Mail = Trim(GetRegExpSubMatch(sTranslator, "<(.*)>"))
- If (Translator.Mail <> "") Then 'If mail address exists...
- Translator.Name = Trim(GetRegExpSubMatch(sTranslator, "(.*) <.*>"))
- Else 'If mail address NOT exists...
- Translator.Name = sTranslator
- End If
- Translators.Add Translators.Count, Translator
- End Sub
-End Class
-
-''
-' ...
-Class CTranslator
- Public Name, Mail, Maintainer
-End Class
-
-''
-' ...
-Function GetTranslationsStatusFromPoFile(ByVal sPoPath)
- Dim oStatus, oTextFile, sLine
- Dim oMatch, iMsgStarted, sMsgId, sMsgStr, bFuzzy, bMaintainer
- Dim reMsgId, reMsgStr, reMsgContinued
-
- Set reMsgId = New RegExp
- reMsgId.Pattern = "^msgid ""(.*)""$"
- reMsgId.IgnoreCase = True
-
- Set reMsgStr = New RegExp
- reMsgStr.Pattern = "^msgstr ""(.*)""$"
- reMsgStr.IgnoreCase = True
-
- Set reMsgContinued = New RegExp
- reMsgContinued.Pattern = "^""(.*)""$"
- reMsgContinued.IgnoreCase = True
-
- Set oStatus = New CStatus
- If (oFSO.FileExists(sPoPath) = True) Then 'If the PO file exists...
- iMsgStarted = 0
- sMsgId = ""
- sMsgStr = ""
- bFuzzy = False
- bMaintainer = False
- Set oTextFile = oFSO.OpenTextFile(sPoPath, ForReading, False, -1)
- Do Until oTextFile.AtEndOfStream = True 'For all lines...
- sLine = Trim(oTextFile.ReadLine)
-
- If (sLine <> "") Then 'If NOT empty line...
- If (Left(sLine, 1) <> "#") Then 'If NOT comment line...
- If reMsgId.Test(sLine) Then 'If "msgid"...
- iMsgStarted = 1
- Set oMatch = reMsgId.Execute(sLine)(0)
- sMsgId = oMatch.SubMatches(0)
- ElseIf reMsgStr.Test(sLine) Then 'If "msgstr"...
- iMsgStarted = 2
- Set oMatch = reMsgStr.Execute(sLine)(0)
- sMsgStr = oMatch.SubMatches(0)
- ElseIf reMsgContinued.Test(sLine) Then 'If "msgid" or "msgstr" continued...
- Set oMatch = reMsgContinued.Execute(sLine)(0)
- If (iMsgStarted = 1) Then
- sMsgId = sMsgId & oMatch.SubMatches(0)
- ElseIf (iMsgStarted = 2) Then
- sMsgStr = sMsgStr & oMatch.SubMatches(0)
- End If
- End If
- Else 'If comment line...
- iMsgStarted = -1
- If (Left(sLine, 2) = "#,") Then 'If "Reference" line...
- If (InStr(sLine, "fuzzy") > 0) Then 'If "fuzzy"...
- bFuzzy = True
- End If
- ElseIf (sLine = "# Maintainer:") Then 'If maintainer list starts...
- bMaintainer = True
- ElseIf (sLine = "# Translators:") Then 'If translators list starts...
- bMaintainer = False
- ElseIf (Left(sLine, 4) = "# * ") Then 'If translator/maintainer...
- oStatus.AddTranslator Trim(Mid(sLine, 5)), bMaintainer
- End If
- End If
- Else 'If empty line
- iMsgStarted = 0
- End If
-
- If (iMsgStarted = 0) Then 'If NOT inside a translation...
- If (sMsgId <> "") Then
- oStatus.Count = oStatus.Count + 1
- If (bFuzzy = False) Then 'If NOT a fuzzy translation...
- If (sMsgStr <> "") Then
- oStatus.Translated = oStatus.Translated + 1
- Else
- oStatus.Untranslated = oStatus.Untranslated + 1
- End If
- Else 'If a fuzzy translation...
- oStatus.Fuzzy = oStatus.Fuzzy + 1
- End If
- ElseIf(sMsgStr <> "") Then
- oStatus.PoRevisionDate = GetRegExpSubMatch(sMsgStr, "PO-Revision-Date: ([0-9 :\+\-]+)")
- oStatus.PotCreationDate = GetRegExpSubMatch(sMsgStr, "POT-Creation-Date: ([0-9 :\+\-]+)")
- End If
- sMsgId = ""
- sMsgStr = ""
- bFuzzy = False
- End If
- Loop
- oTextFile.Close
- End If
- Set GetTranslationsStatusFromPoFile = oStatus
-End Function
-
-''
-' ...
-Sub CreateTranslationsStatusHtmlFile(ByVal sHtmlPath, ByVal oTranslationsStatus)
- Dim oHtmlFile, sLanguage, oLanguageStatus, i
- Dim sMaintainerStart, sMaintainerEnd
-
- Set oHtmlFile = oFSO.CreateTextFile(sHtmlPath, True)
-
- oHtmlFile.WriteLine "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"""
- oHtmlFile.WriteLine " ""http://www.w3.org/TR/html4/loose.dtd"">"
- oHtmlFile.WriteLine "<html>"
- oHtmlFile.WriteLine "<head>"
- oHtmlFile.WriteLine " <title>Translations Status</title>"
- oHtmlFile.WriteLine " <meta http-equiv=""content-type"" content=""text/html; charset=ISO-8859-1"">"
- oHtmlFile.WriteLine " <style type=""text/css"">"
- oHtmlFile.WriteLine " <!--"
- oHtmlFile.WriteLine " body {"
- oHtmlFile.WriteLine " font-family: Verdana,Helvetica,Arial,sans-serif;"
- oHtmlFile.WriteLine " font-size: small;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " code,pre {"
- oHtmlFile.WriteLine " font-family: ""Courier New"",Courier,monospace;"
- oHtmlFile.WriteLine " font-size: 1em;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " .status {"
- oHtmlFile.WriteLine " border-collapse: collapse;"
- oHtmlFile.WriteLine " border: 1px solid #aaaaaa;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " .status th {"
- oHtmlFile.WriteLine " padding: 3px;"
- oHtmlFile.WriteLine " background: #f2f2f2;"
- oHtmlFile.WriteLine " border: 1px solid #aaaaaa;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " .status td {"
- oHtmlFile.WriteLine " padding: 3px;"
- oHtmlFile.WriteLine " background: #f9f9f9;"
- oHtmlFile.WriteLine " border: 1px solid #aaaaaa;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " .left { text-align: left; }"
- oHtmlFile.WriteLine " .center { text-align: center; }"
- oHtmlFile.WriteLine " .right { text-align: right; }"
- oHtmlFile.WriteLine " -->"
- oHtmlFile.WriteLine " </style>"
- oHtmlFile.WriteLine "</head>"
- oHtmlFile.WriteLine "<body>"
- oHtmlFile.WriteLine "<h1>Translations Status</h1>"
- oHtmlFile.WriteLine "<p>Status from <strong>" & GetCreationDate() & "</strong>:</p>"
- oHtmlFile.WriteLine "<table class=""status"">"
- oHtmlFile.WriteLine " <tr>"
- oHtmlFile.WriteLine " <th class=""left"">Language</th>"
- oHtmlFile.WriteLine " <th class=""right"">Total</th>"
- oHtmlFile.WriteLine " <th class=""right"">Translated</th>"
- oHtmlFile.WriteLine " <th class=""right"">Fuzzy</th>"
- oHtmlFile.WriteLine " <th class=""right"">Untranslated</th>"
- oHtmlFile.WriteLine " <th class=""center"">Last Update</th>"
- oHtmlFile.WriteLine " </tr>"
- For Each sLanguage In oTranslationsStatus.Keys 'For all languages...
- If (sLanguage <> "English") Then 'If NOT English...
- Set oLanguageStatus = oTranslationsStatus(sLanguage)
- oHtmlFile.WriteLine " <tr>"
- oHtmlFile.WriteLine " <td class=""left"">" & sLanguage & "</td>"
- oHtmlFile.WriteLine " <td class=""right"">" & oLanguageStatus.Count & "</td>"
- oHtmlFile.WriteLine " <td class=""right"">" & oLanguageStatus.Translated & "</td>"
- oHtmlFile.WriteLine " <td class=""right"">" & oLanguageStatus.Fuzzy & "</td>"
- oHtmlFile.WriteLine " <td class=""right"">" & oLanguageStatus.Untranslated & "</td>"
- oHtmlFile.WriteLine " <td class=""center"">" & Left(oLanguageStatus.PoRevisionDate, 10) & "</td>"
- oHtmlFile.WriteLine " </tr>"
- End If
- Next
- Set oLanguageStatus = oTranslationsStatus("English")
- oHtmlFile.WriteLine " <tr>"
- oHtmlFile.WriteLine " <td class=""left"">English</td>"
- oHtmlFile.WriteLine " <td class=""right"">" & oLanguageStatus.Count & "</td>"
- oHtmlFile.WriteLine " <td class=""right"">" & oLanguageStatus.Count & "</td>"
- oHtmlFile.WriteLine " <td class=""right"">0</td>"
- oHtmlFile.WriteLine " <td class=""right"">0</td>"
- oHtmlFile.WriteLine " <td class=""center"">" & Left(oLanguageStatus.PotCreationDate, 10) & "</td>"
- oHtmlFile.WriteLine " </tr>"
- oHtmlFile.WriteLine "</table>"
- oHtmlFile.WriteLine "<h2>Translators</h2>"
- oHtmlFile.WriteLine "<table class=""status"">"
- oHtmlFile.WriteLine " <tr>"
- oHtmlFile.WriteLine " <th class=""left"">Language</th>"
- oHtmlFile.WriteLine " <th class=""left"">Translator(s)</th>"
- oHtmlFile.WriteLine " </tr>"
- For Each sLanguage In oTranslationsStatus.Keys 'For all languages...
- If (sLanguage <> "English") Then 'If NOT English...
- Set oLanguageStatus = oTranslationsStatus(sLanguage)
- oHtmlFile.WriteLine " <tr>"
- oHtmlFile.WriteLine " <td>" & sLanguage & "</td>"
- oHtmlFile.WriteLine " <td>"
- For i = 0 To oLanguageStatus.Translators.Count - 1 'For all translators...
- sMaintainerStart = ""
- sMaintainerEnd = ""
- If (oLanguageStatus.Translators(i).Maintainer = True) Then 'If maintainer...
- sMaintainerStart = "<strong title=""Maintainer"">"
- sMaintainerEnd = "</strong>"
- End If
- If (oLanguageStatus.Translators(i).Mail <> "") Then 'If mail address exists...
- oHtmlFile.WriteLine " " & sMaintainerStart & "<a href=""mailto:" & oLanguageStatus.Translators(i).Mail & """>" & oLanguageStatus.Translators(i).Name & "</a>" & sMaintainerEnd & "<br>"
- Else 'If mail address NOT exists...
- oHtmlFile.WriteLine " " & sMaintainerStart & oLanguageStatus.Translators(i).Name & sMaintainerEnd & "<br>"
- End If
- Next
- oHtmlFile.WriteLine " </td>"
- oHtmlFile.WriteLine " </tr>"
- End If
- Next
- oHtmlFile.WriteLine "</table>"
- oHtmlFile.WriteLine "</body>"
- oHtmlFile.WriteLine "</html>"
- oHtmlFile.Close
-End Sub
-
-''
-' ...
-Sub CreateTranslationsStatusWikiFile(ByVal sWikiPath, ByVal oTranslationsStatus)
- Dim oWikiFile, sLanguage, oLanguageStatus
-
- Set oWikiFile = oFSO.CreateTextFile(sWikiPath, True)
-
- oWikiFile.WriteLine "== Translations Status =="
- oWikiFile.WriteLine "Status from '''" & GetCreationDate() & "''':"
- oWikiFile.WriteLine "{| class=""wikitable"" border=""1"""
- oWikiFile.WriteLine "! Language"
- oWikiFile.WriteLine "! Total"
- oWikiFile.WriteLine "! Translated"
- oWikiFile.WriteLine "! Fuzzy"
- oWikiFile.WriteLine "! Untranslated"
- oWikiFile.WriteLine "! Last Update"
- For Each sLanguage In oTranslationsStatus.Keys 'For all languages...
- If (sLanguage <> "English") Then 'If NOT English...
- Set oLanguageStatus = oTranslationsStatus(sLanguage)
- oWikiFile.WriteLine "|-"
- oWikiFile.WriteLine "|align=""left""| " & sLanguage
- oWikiFile.WriteLine "|align=""right""| " & oLanguageStatus.Count
- oWikiFile.WriteLine "|align=""right""| " & oLanguageStatus.Translated
- oWikiFile.WriteLine "|align=""right""| " & oLanguageStatus.Fuzzy
- oWikiFile.WriteLine "|align=""right""| " & oLanguageStatus.Untranslated
- oWikiFile.WriteLine "|align=""center""| " & Left(oLanguageStatus.PoRevisionDate, 10)
- End If
- Next
- Set oLanguageStatus = oTranslationsStatus("English")
- oWikiFile.WriteLine "|-"
- oWikiFile.WriteLine "|align=""left""| English"
- oWikiFile.WriteLine "|align=""right""| " & oLanguageStatus.Count
- oWikiFile.WriteLine "|align=""right""| " & oLanguageStatus.Count
- oWikiFile.WriteLine "|align=""right""| 0"
- oWikiFile.WriteLine "|align=""right""| 0"
- oWikiFile.WriteLine "|align=""center""| " & Left(oLanguageStatus.PotCreationDate, 10)
- oWikiFile.WriteLine "|}"
- oWikiFile.Close
-End Sub
-
-''
-' ...
-Sub CreateTranslationsStatusXmlFile(ByVal sXmlPath, ByVal oTranslationsStatus)
- Dim oXmlFile, sLanguage, oLanguageStatus, i
-
- Set oXmlFile = oFSO.CreateTextFile(sXmlPath, True)
-
- oXmlFile.WriteLine "<translations>"
- oXmlFile.WriteLine " <update>" & GetCreationDate() & "</update>"
- For Each sLanguage In oTranslationsStatus.Keys 'For all languages...
- If (sLanguage <> "English") Then 'If NOT English...
- Set oLanguageStatus = oTranslationsStatus(sLanguage)
- oXmlFile.WriteLine " <translation>"
- oXmlFile.WriteLine " <language>" & sLanguage & "</language>"
- oXmlFile.WriteLine " <file>" & sLanguage & ".po</file>"
- oXmlFile.WriteLine " <update>" & Left(oLanguageStatus.PoRevisionDate, 10) & "</update>"
- oXmlFile.WriteLine " <strings>"
- oXmlFile.WriteLine " <count>" & oLanguageStatus.Count & "</count>"
- oXmlFile.WriteLine " <translated>" & oLanguageStatus.Translated & "</translated>"
- oXmlFile.WriteLine " <fuzzy>" & oLanguageStatus.Fuzzy & "</fuzzy>"
- oXmlFile.WriteLine " <untranslated>" & oLanguageStatus.Untranslated & "</untranslated>"
- oXmlFile.WriteLine " </strings>"
- oXmlFile.WriteLine " <translators>"
- For i = 0 To oLanguageStatus.Translators.Count - 1 'For all translators...
- If (oLanguageStatus.Translators(i).Maintainer = True) Then 'If maintainer...
- oXmlFile.WriteLine " <translator maintainer=""1"">"
- Else 'If NOT maintainer...
- oXmlFile.WriteLine " <translator>"
- End If
- oXmlFile.WriteLine " <name>" & oLanguageStatus.Translators(i).Name & "</name>"
- If (oLanguageStatus.Translators(i).Mail <> "") Then 'If mail address exists...
- oXmlFile.WriteLine " <mail>" & oLanguageStatus.Translators(i).Mail & "</mail>"
- End If
- oXmlFile.WriteLine " </translator>"
- Next
- oXmlFile.WriteLine " </translators>"
- oXmlFile.WriteLine " </translation>"
- End If
- Next
- Set oLanguageStatus = oTranslationsStatus("English")
- oXmlFile.WriteLine " <translation>"
- oXmlFile.WriteLine " <language>English</language>"
- oXmlFile.WriteLine " <file>English.pot</file>"
- oXmlFile.WriteLine " <update>" & Left(oLanguageStatus.PotCreationDate, 10) & "</update>"
- oXmlFile.WriteLine " <strings>"
- oXmlFile.WriteLine " <count>" & oLanguageStatus.Count & "</count>"
- oXmlFile.WriteLine " <translated>" & oLanguageStatus.Count & "</translated>"
- oXmlFile.WriteLine " <fuzzy>0</fuzzy>"
- oXmlFile.WriteLine " <untranslated>0</untranslated>"
- oXmlFile.WriteLine " </strings>"
- oXmlFile.WriteLine " </translation>"
- oXmlFile.WriteLine "</translations>"
- oXmlFile.Close
-End Sub
-
-''
-' ...
-Sub CreateTranslatorsListFile(ByVal sHtmlPath, ByVal oTranslationsStatus)
- Dim oHtmlFile, sLanguage, oLanguageStatus, i
- Dim sLastUpdated, sMaintainer, sTranslators
-
- Set oHtmlFile = oFSO.CreateTextFile(sHtmlPath, True)
-
- oHtmlFile.WriteLine "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"""
- oHtmlFile.WriteLine " ""http://www.w3.org/TR/html4/loose.dtd"">"
- oHtmlFile.WriteLine "<html>"
- oHtmlFile.WriteLine "<head>"
- oHtmlFile.WriteLine " <title>WinMerge Translators</title>"
- oHtmlFile.WriteLine " <meta http-equiv=""content-type"" content=""text/html; charset=ISO-8859-1"">"
- oHtmlFile.WriteLine " <style type=""text/css"">"
- oHtmlFile.WriteLine " <!--"
- oHtmlFile.WriteLine " body {"
- oHtmlFile.WriteLine " font-family: Verdana,Helvetica,Arial,sans-serif;"
- oHtmlFile.WriteLine " font-size: small;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " dl {"
- oHtmlFile.WriteLine " width: 30em;"
- oHtmlFile.WriteLine " margin: 1em;"
- oHtmlFile.WriteLine " padding: .5em;"
- oHtmlFile.WriteLine " background: #F9F9F9;"
- oHtmlFile.WriteLine " border: 1px solid #AAAAAA;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " dt {"
- oHtmlFile.WriteLine " margin-top: .5em;"
- oHtmlFile.WriteLine " font-weight: bold;"
- oHtmlFile.WriteLine " }"
- oHtmlFile.WriteLine " -->"
- oHtmlFile.WriteLine " </style>"
- oHtmlFile.WriteLine "</head>"
- oHtmlFile.WriteLine "<body>"
- oHtmlFile.WriteLine "<h1>WinMerge Translators</h1>"
- oHtmlFile.WriteLine "<ul>"
- For Each sLanguage In oTranslationsStatus.Keys 'For all languages...
- If (sLanguage <> "English") Then 'If NOT English...
- oHtmlFile.WriteLine " <li><a href=""#" & sLanguage & """>" & sLanguage & "</a></li>"
- End If
- Next
- oHtmlFile.WriteLine "</ul>"
- For Each sLanguage In oTranslationsStatus.Keys 'For all languages...
- If (sLanguage <> "English") Then 'If NOT English...
- sMaintainer = ""
- sTranslators = ""
-
- Set oLanguageStatus = oTranslationsStatus(sLanguage)
- oHtmlFile.WriteLine "<h2><a name=""" & sLanguage & """>" & sLanguage & "</a></h2>"
- oHtmlFile.WriteLine "<dl>"
- For i = 0 To oLanguageStatus.Translators.Count - 1 'For all translators...
- If (oLanguageStatus.Translators(i).Maintainer = True) Then 'If maintainer...
- If (oLanguageStatus.Translators(i).Mail <> "") Then 'If mail address exists...
- sMaintainer = "<dd><strong><a href=""mailto:" & oLanguageStatus.Translators(i).Mail & """>" & oLanguageStatus.Translators(i).Name & "</a></strong></dd>"
- Else 'If mail address NOT exists...
- sMaintainer = "<dd><strong>" & oLanguageStatus.Translators(i).Name & "</strong></dd>"
- End If
- Else 'If NO maintainer...
- If (oLanguageStatus.Translators(i).Mail <> "") Then 'If mail address exists...
- sTranslators = sTranslators & "<dd><a href=""mailto:" & oLanguageStatus.Translators(i).Mail & """>" & oLanguageStatus.Translators(i).Name & "</a></dd>"
- Else 'If mail address NOT exists...
- sTranslators = sTranslators & "<dd>" & oLanguageStatus.Translators(i).Name & "</dd>"
- End If
- End If
- Next
- If (sMaintainer <> "") Then 'If maintainer exists...
- oHtmlFile.WriteLine " <dt>Maintainer:</dt>"
- oHtmlFile.WriteLine " " & sMaintainer
- End If
- If (sTranslators <> "") Then 'If translators exists...
- oHtmlFile.WriteLine " <dt>Translators:</dt>"
- oHtmlFile.WriteLine " " & sTranslators
- End If
- sLastUpdated = Left(oLanguageStatus.PoRevisionDate, 10)
- If (sLastUpdated <> "") Then 'If PO revision date exists...
- oHtmlFile.WriteLine " <dt>Last Update:</dt>"
- oHtmlFile.WriteLine " <dd>" & Left(oLanguageStatus.PoRevisionDate, 10) & "</dd>"
- End If
- oHtmlFile.WriteLine " <dt>Translation File:</dt>"
- oHtmlFile.WriteLine " <dd><a href=""" & SvnWebUrlLanguages & sLanguage & ".po"" rel=""nofollow"">" & sLanguage & ".po</a></dd>"
- oHtmlFile.WriteLine "</dl>"
- End If
- Next
- oHtmlFile.WriteLine "<p>Status from <strong>" & GetCreationDate() & "</strong>. Look at <a href=""http://winmerge.org/translations/"">winmerge.org</a> for updates.</p>"
- oHtmlFile.WriteLine "</body>"
- oHtmlFile.WriteLine "</html>"
- oHtmlFile.Close
-End Sub
-
-''
-' ...
-Function FoundRegExpMatch(ByVal sString, ByVal sPattern, ByRef oMatchReturn)
- Dim oRegExp, oMatches
-
- Set oRegExp = New RegExp
- oRegExp.Pattern = sPattern
- oRegExp.IgnoreCase = True
-
- oMatchReturn = Null
- FoundRegExpMatch = False
- If (oRegExp.Test(sString) = True) Then
- Set oMatches = oRegExp.Execute(sString)
- Set oMatchReturn = oMatches(0)
- FoundRegExpMatch = True
- End If
-End Function
-
-''
-' ...
-Function GetRegExpSubMatch(ByVal sString, ByVal sPattern)
- Dim oMatch
-
- GetRegExpSubMatch = ""
- If (FoundRegExpMatch(sString, sPattern, oMatch)) Then 'If pattern found...
- GetRegExpSubMatch = oMatch.SubMatches(0)
- End If
-End Function
-
-''
-' ...
-Function GetCreationDate()
- Dim oNow, sYear, sMonth, sDay, sHour, sMinute
-
- oNow = Now()
- sYear = Year(oNow)
- sMonth = Month(oNow)
- If (sMonth < 10) Then sMonth = "0" & sMonth
- sDay = Day(oNow)
- If (sDay < 10) Then sDay = "0" & sDay
-
- GetCreationDate = sYear & "-" & sMonth & "-" & sDay
-End Function
-
-''
-' ...
-Function InfoBox(ByVal sText, ByVal iSecondsToWait)
- Dim oShell
-
- If (bRunFromCmd = False) Then 'If run from command line...
- Set oShell = Wscript.CreateObject("WScript.Shell")
- InfoBox = oShell.Popup(sText, iSecondsToWait, Wscript.ScriptName, 64)
- Else 'If NOT run from command line...
- Wscript.Echo sText
- End If
-End Function
diff --git a/src/apps/mplayerc/mpcresources/StringBlacklist.txt b/src/apps/mplayerc/mpcresources/StringBlacklist.txt
deleted file mode 100644
index 3c497da18..000000000
--- a/src/apps/mplayerc/mpcresources/StringBlacklist.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-(filter name)
-[VERSION COPYRIGHT GOES HERE]
-_HDR_POPUP_
-_ITEM_POPUP_
-_POPUP_
-<PlaceHolder>
-0
-0.00
-%
-...
-IDS_SAVEVSS_FMT
-MS Shell Dlg
-msctls_updown32
-msctls_trackbar32
-Static
-Version 1.0
-SysLink
-MPC-HC
-Media Player Classic - Home Cinema
-<a>http://mpc-hc.sourceforge.net/</a>
-VIDEO_TS \ No newline at end of file
diff --git a/src/apps/mplayerc/mpcresources/UpdatePoFilesFromPotFile.vbs b/src/apps/mplayerc/mpcresources/UpdatePoFilesFromPotFile.vbs
deleted file mode 100644
index c7e7107e2..000000000
--- a/src/apps/mplayerc/mpcresources/UpdatePoFilesFromPotFile.vbs
+++ /dev/null
@@ -1,239 +0,0 @@
-Option Explicit
-''
-' This script updates the language PO files from the master POT file.
-'
-' Copyright (C) 2007-2008 by Tim Gerundt
-' Released under the "GNU General Public License"
-'
-' ID line follows -- this is updated by SVN
-' $Id$
-
-Const ForReading = 1
-
-Dim oFSO, bRunFromCmd
-
-Set oFSO = CreateObject("Scripting.FileSystemObject")
-
-bRunFromCmd = False
-If LCase(oFSO.GetFileName(Wscript.FullName)) = "cscript.exe" Then
- bRunFromCmd = True
-End If
-
-Call Main
-
-''
-' ...
-Sub Main
- Dim oLanguages, oLanguage, sLanguage, sDir, bPotChanged
- Dim oEnglishPotContent, oLanguagePoContent
- Dim StartTime, EndTime, Seconds
-
- StartTime = Time
-
- InfoBox "Updating PO files from POT file...", 3
-
- sDir = oFSO.GetParentFolderName(Wscript.ScriptFullName)
- Set oEnglishPotContent = GetContentFromPoFile("English.pot")
- If oEnglishPotContent.Count = 0 Then Err.Raise vbObjectError, "Sub Main", "Error reading content from English.pot"
- bPotChanged = GetArchiveBit("English.pot")
- Set oLanguages = Wscript.Arguments
- If oLanguages.Count = 0 Then Set oLanguages = oFSO.GetFolder(".").Files
- For Each oLanguage In oLanguages 'For all languages...
- sLanguage = CStr(oLanguage)
- If LCase(oFSO.GetExtensionName(sLanguage)) = "po" Then
- If bPotChanged Or GetArchiveBit(sLanguage) Then 'If update necessary...
- If bRunFromCmd Then 'If run from command line...
- Wscript.Echo oFSO.GetFileName(sLanguage)
- End If
- Set oLanguagePoContent = GetContentFromPoFile(sLanguage)
- If oLanguagePoContent.Count > 0 Then 'If content exists...
- CreateUpdatedPoFile sLanguage, oEnglishPotContent, oLanguagePoContent
- End If
- SetArchiveBit sLanguage, False
- End If
- End If
- Next
-
- EndTime = Time
- Seconds = DateDiff("s", StartTime, EndTime)
-
- InfoBox "All PO files updated, after " & Seconds & " second(s).", 10
-End Sub
-
-''
-' ...
-Class CSubContent
- Dim sMsgCtxt2, sMsgId2, sMsgStr2, sTranslatorComments, sExtractedComments, sReferences, sFlags
-End Class
-
-''
-' ...
-Function GetContentFromPoFile(ByVal sPoPath)
- Dim oContent, oSubContent, oTextFile, sLine
- Dim oMatch, iMsgStarted, sMsgCtxt, sMsgId
- Dim reMsgCtxt, reMsgId, reMsgContinued
-
- Set reMsgCtxt = New RegExp
- reMsgCtxt.Pattern = "^msgctxt ""(.*)""$"
- reMsgCtxt.IgnoreCase = True
-
- Set reMsgId = New RegExp
- reMsgId.Pattern = "^msgid ""(.*)""$"
- reMsgId.IgnoreCase = True
-
- Set reMsgContinued = New RegExp
- reMsgContinued.Pattern = "^""(.*)""$"
- reMsgContinued.IgnoreCase = True
-
- Set oContent = CreateObject("Scripting.Dictionary")
-
- iMsgStarted = 0
- sMsgCtxt = ""
- Set oSubContent = New CSubContent
- Set oTextFile = oFSO.OpenTextFile(sPoPath, ForReading, False, -1)
- Do Until oTextFile.AtEndOfStream 'For all lines...
- sLine = Trim(oTextFile.ReadLine)
- If sLine <> "" Then 'If NOT empty line...
- If Left(sLine, 1) <> "#" Then 'If NOT comment line...
- If reMsgCtxt.Test(sLine) Then 'If "msgctxt"...
- iMsgStarted = 1
- Set oMatch = reMsgCtxt.Execute(sLine)(0)
- sMsgCtxt = oMatch.SubMatches(0)
- oSubContent.sMsgCtxt2 = sLine & vbCrLf
- ElseIf reMsgId.Test(sLine) Then 'If "msgid"...
- iMsgStarted = 2
- Set oMatch = reMsgId.Execute(sLine)(0)
- sMsgId = oMatch.SubMatches(0)
- oSubContent.sMsgId2 = sLine & vbCrLf
- ElseIf Left(sLine, 8) = "msgstr """ Then 'If "msgstr"...
- iMsgStarted = 3
- oSubContent.sMsgStr2 = sLine & vbCrLf
- ElseIf reMsgContinued.Test(sLine) Then 'If "msgctxt", "msgid" or "msgstr" continued...
- If iMsgStarted = 1 Then
- sMsgCtxt = sMsgCtxt & oMatch.SubMatches(0)
- oSubContent.sMsgCtxt2 = oSubContent.sMsgCtxt2 & sLine & vbCrLf
- ElseIf iMsgStarted = 2 Then
- Set oMatch = reMsgContinued.Execute(sLine)(0)
- sMsgId = sMsgId & oMatch.SubMatches(0)
- oSubContent.sMsgId2 = oSubContent.sMsgId2 & sLine & vbCrLf
- ElseIf iMsgStarted = 3 Then
- oSubContent.sMsgStr2 = oSubContent.sMsgStr2 & sLine & vbCrLf
- End If
- End If
- Else 'If comment line...
- iMsgStarted = -1
- Select Case Left(sLine, 2)
- Case "#~" 'Obsolete message...
- iMsgStarted = 0
- Case "#." 'Extracted comment...
- oSubContent.sExtractedComments = oSubContent.sExtractedComments & sLine & vbCrLf
- Case "#:" 'Reference...
- oSubContent.sReferences = oSubContent.sReferences & sLine & vbCrLf
- Case "#," 'Flag...
- oSubContent.sFlags = oSubContent.sFlags & sLine & vbCrLf
- Case Else 'Translator comment...
- oSubContent.sTranslatorComments = oSubContent.sTranslatorComments & sLine & vbCrLf
- End Select
- End If
- ElseIf iMsgStarted <> 0 Then 'If empty line AND there is pending translation...
- iMsgStarted = 0 'Don't process same translation twice
- If sMsgId = "" Then sMsgId = "__head__"
- If (oContent.Exists(sMsgCtxt & sMsgId) = False) Then 'If the key is NOT already used...
- oContent.Add sMsgCtxt & sMsgId, oSubContent
- End If
- sMsgCtxt = ""
- Set oSubContent = New CSubContent
- End If
- Loop
- oTextFile.Close
- Set GetContentFromPoFile = oContent
-End Function
-
-''
-' ...
-Sub CreateUpdatedPoFile(ByVal sPoPath, ByVal oEnglishPotContent, ByVal oLanguagePoContent)
- Dim sBakPath, oPoFile, sKey, oEnglish, oLanguage
-
- '--------------------------------------------------------------------------------
- ' Backup the old PO file...
- '--------------------------------------------------------------------------------
- sBakPath = sPoPath & ".bak"
- If oFSO.FileExists(sBakPath) Then
- oFSO.DeleteFile sBakPath
- End If
- oFSO.MoveFile sPoPath, sBakPath
- '--------------------------------------------------------------------------------
-
- Set oPoFile = oFSO.CreateTextFile(sPoPath, True, True)
-
- Set oLanguage = oLanguagePoContent("__head__")
- oPoFile.Write oLanguage.sTranslatorComments
- oPoFile.Write oLanguage.sMsgId2
- oPoFile.Write oLanguage.sMsgStr2
- oPoFile.Write vbCrLf
- For Each sKey In oEnglishPotContent.Keys 'For all English content...
- If sKey <> "__head__" Then
- Set oEnglish = oEnglishPotContent(sKey)
- If oLanguagePoContent.Exists(sKey) Then 'If translation exists...
- Set oLanguage = oLanguagePoContent(sKey)
- Else 'If translation NOT exists...
- Set oLanguage = oEnglish
- End If
- oPoFile.Write oLanguage.sTranslatorComments
- oPoFile.Write oEnglish.sExtractedComments
- oPoFile.Write oEnglish.sReferences
- oPoFile.Write oLanguage.sFlags
- oPoFile.Write oLanguage.sMsgCtxt2
- oPoFile.Write oLanguage.sMsgId2
- oPoFile.Write oLanguage.sMsgStr2
- oPoFile.Write vbCrLf
- End If
- Next
- oPoFile.Close
-End Sub
-
-''
-' ...
-Function InfoBox(ByVal sText, ByVal iSecondsToWait)
- Dim oShell
-
- If (bRunFromCmd = False) Then 'If run from command line...
- Set oShell = Wscript.CreateObject("WScript.Shell")
- InfoBox = oShell.Popup(sText, iSecondsToWait, Wscript.ScriptName, 64)
- Else 'If NOT run from command line...
- Wscript.Echo sText
- End If
-End Function
-
-''
-' ...
-Function GetArchiveBit(ByVal sFilePath)
- Dim oFile
-
- GetArchiveBit = False
- If (oFSO.FileExists(sFilePath) = True) Then 'If the file exists...
- Set oFile = oFSO.GetFile(sFilePath)
- If (oFile.Attributes AND 32) Then 'If archive bit set...
- GetArchiveBit = True
- End If
- End If
-End Function
-
-''
-' ...
-Sub SetArchiveBit(ByVal sFilePath, ByVal bValue)
- Dim oFile
-
- If (oFSO.FileExists(sFilePath) = True) Then 'If the file exists...
- Set oFile = oFSO.GetFile(sFilePath)
- If (oFile.Attributes AND 32) Then 'If archive bit set...
- If (bValue = False) Then
- oFile.Attributes = oFile.Attributes - 32
- End If
- Else 'If archive bit NOT set...
- If (bValue = True) Then
- oFile.Attributes = oFile.Attributes + 32
- End If
- End If
- End If
-End Sub
diff --git a/src/apps/mplayerc/mpcresources/mpcresources.vcproj b/src/apps/mplayerc/mpcresources/mpcresources.vcproj
index b349b4764..19eecaa5e 100644
--- a/src/apps/mplayerc/mpcresources/mpcresources.vcproj
+++ b/src/apps/mplayerc/mpcresources/mpcresources.vcproj
@@ -26,7 +26,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -102,7 +102,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -179,7 +179,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -255,7 +255,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -332,7 +332,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -408,7 +408,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -485,7 +485,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -561,7 +561,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -638,7 +638,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -714,7 +714,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -791,7 +791,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -867,7 +867,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -944,7 +944,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1020,7 +1020,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1097,7 +1097,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1173,7 +1173,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1250,7 +1250,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1326,7 +1326,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1403,7 +1403,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1479,7 +1479,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1556,7 +1556,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1632,7 +1632,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1709,7 +1709,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1785,7 +1785,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1862,7 +1862,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -1938,7 +1938,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2015,7 +2015,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2091,7 +2091,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2168,7 +2168,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2244,7 +2244,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2321,7 +2321,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2397,7 +2397,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2474,7 +2474,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2550,7 +2550,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2627,7 +2627,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2703,7 +2703,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2780,7 +2780,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2856,7 +2856,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -2933,7 +2933,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -3009,7 +3009,7 @@
ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops"
CharacterSet="1"
- WholeProgramOptimization="1"
+ WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
@@ -9281,7 +9281,7 @@
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
- RelativePath=".\resource.h"
+ RelativePath="..\resource.h"
>
</File>
</Filter>
diff --git a/src/apps/mplayerc/mpcresources/mpcresources.vcxproj b/src/apps/mplayerc/mpcresources/mpcresources.vcxproj
index e07cdef89..fe3091674 100644
--- a/src/apps/mplayerc/mpcresources/mpcresources.vcxproj
+++ b/src/apps/mplayerc/mpcresources/mpcresources.vcxproj
@@ -171,202 +171,162 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Japanese|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Catalan|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dutch|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Portuguese|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Swedish|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Belarusian|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Chinese traditional|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Chinese simplified|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Slovak|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Italian|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Ukrainian|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Polish|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Korean|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Hungarian|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Spanish|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Czech|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Turkish|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Russian|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release German|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release French|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Japanese|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Catalan|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dutch|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Portuguese|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Swedish|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Belarusian|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Chinese traditional|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Chinese simplified|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Slovak|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Italian|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Ukrainian|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Polish|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Korean|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Hungarian|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Spanish|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Czech|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Turkish|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Russian|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release German|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release French|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -2443,7 +2403,7 @@
</ResourceCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="resource.h" />
+ <ClInclude Include="..\resource.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\res\ani.avi" />
diff --git a/src/apps/mplayerc/mpcresources/mpcresources.vcxproj.filters b/src/apps/mplayerc/mpcresources/mpcresources.vcxproj.filters
index ac4ae2a87..631bd7df8 100644
--- a/src/apps/mplayerc/mpcresources/mpcresources.vcxproj.filters
+++ b/src/apps/mplayerc/mpcresources/mpcresources.vcxproj.filters
@@ -83,7 +83,7 @@
</ResourceCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="resource.h">
+ <ClInclude Include="..\resource.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.br.rc b/src/apps/mplayerc/mpcresources/mplayerc.br.rc
index f7e220f58..9ccb7fc7d 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.br.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.br.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.by.rc b/src/apps/mplayerc/mpcresources/mplayerc.by.rc
index 00ef6af37..59faa174d 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.by.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.by.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.ca.rc b/src/apps/mplayerc/mpcresources/mplayerc.ca.rc
index 7ac06355c..97385576d 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.ca.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.ca.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.cz.rc b/src/apps/mplayerc/mpcresources/mplayerc.cz.rc
index b33826248..963a21808 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.cz.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.cz.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.de.rc b/src/apps/mplayerc/mpcresources/mplayerc.de.rc
index 29afc08de..32b129994 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.de.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.de.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.es.rc b/src/apps/mplayerc/mpcresources/mplayerc.es.rc
index 458488f07..2084060f0 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.es.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.es.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.fr.rc b/src/apps/mplayerc/mpcresources/mplayerc.fr.rc
index ed21bdeed..880aa272c 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.fr.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.fr.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.hu.rc b/src/apps/mplayerc/mpcresources/mplayerc.hu.rc
index 1bea16b69..98b1f596d 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.hu.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.hu.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.it.rc b/src/apps/mplayerc/mpcresources/mplayerc.it.rc
index a4dffb089..f7be26a66 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.it.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.it.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.ja.rc b/src/apps/mplayerc/mpcresources/mplayerc.ja.rc
index 12016af64..68cff7942 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.ja.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.ja.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.kr.rc b/src/apps/mplayerc/mpcresources/mplayerc.kr.rc
index f6cd3217d..6417d9a26 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.kr.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.kr.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.nl.rc b/src/apps/mplayerc/mpcresources/mplayerc.nl.rc
index c6c99a3eb..99fd49b3a 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.nl.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.nl.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.pl.rc b/src/apps/mplayerc/mpcresources/mplayerc.pl.rc
index ddf70abd2..6e4967f3e 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.pl.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.pl.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.ru.rc b/src/apps/mplayerc/mpcresources/mplayerc.ru.rc
index 42ddd7631..4a0137d7a 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.ru.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.ru.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.sc.rc b/src/apps/mplayerc/mpcresources/mplayerc.sc.rc
index a24e0695b..8dde5ff28 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.sc.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.sc.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.sk.rc b/src/apps/mplayerc/mpcresources/mplayerc.sk.rc
index a7a7d9902..ae36fbf63 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.sk.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.sk.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.sv.rc b/src/apps/mplayerc/mpcresources/mplayerc.sv.rc
index 203f0b163..dbd5c413a 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.sv.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.sv.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.tc.rc b/src/apps/mplayerc/mpcresources/mplayerc.tc.rc
index 8a1787ba4..17b3c2569 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.tc.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.tc.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.tr.rc b/src/apps/mplayerc/mpcresources/mplayerc.tr.rc
index 2fdb67d47..fae62e656 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.tr.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.tr.rc
Binary files differ
diff --git a/src/apps/mplayerc/mpcresources/mplayerc.ua.rc b/src/apps/mplayerc/mpcresources/mplayerc.ua.rc
index 0ebef33f2..e831d59df 100644
--- a/src/apps/mplayerc/mpcresources/mplayerc.ua.rc
+++ b/src/apps/mplayerc/mpcresources/mplayerc.ua.rc
Binary files differ
diff --git a/src/apps/mplayerc/mplayerc.cpp b/src/apps/mplayerc/mplayerc.cpp
index f0fa42c54..4e8a9a562 100644
--- a/src/apps/mplayerc/mplayerc.cpp
+++ b/src/apps/mplayerc/mplayerc.cpp
@@ -34,8 +34,8 @@
#include "MiniDump.h"
#include "SettingsDefines.h"
#include "internal_filter_config.h"
-
#include "Monitors.h"
+#include "..\..\..\include\Version.h"
extern "C" {
int mingw_app_type = 1;
@@ -148,10 +148,16 @@ bool LoadType(CString fn, CString& type)
if(ext.IsEmpty() || !ext.CompareNoCase(_T("file")))
ext = _T(".") + fn.Mid(fn.ReverseFind('.')+1);
- if(ERROR_SUCCESS != key.Open(HKEY_CLASSES_ROOT, ext))
+ CString tmp = _T("");
+ CString mplayerc_ext = _T("mplayerc") + ext;
+
+ if(ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, mplayerc_ext))
+ tmp = mplayerc_ext;
+
+ if((tmp == _T("")) && (ERROR_SUCCESS != key.Open(HKEY_CLASSES_ROOT, ext)))
return(false);
- CString tmp = ext;
+ if(tmp == _T("")) tmp = ext;
while(ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, tmp))
{
@@ -187,20 +193,6 @@ bool LoadResource(UINT resid, CStringA& str, LPCTSTR restype)
return(true);
}
-bool IsVistaOrAbove()
-{
- OSVERSIONINFO osver;
-
- osver.dwOSVersionInfoSize = sizeof( OSVERSIONINFO );
-
- if ( ::GetVersionEx( &osver ) &&
- osver.dwPlatformId == VER_PLATFORM_WIN32_NT &&
- (osver.dwMajorVersion >= 6 ) )
- return TRUE;
-
- return FALSE;
-}
-
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
@@ -368,10 +360,10 @@ bool CMPlayerCApp::StoreSettingsToIni()
{
CString ini = GetIniPath();
/*
- FILE* f;
- if(!(f = _tfopen(ini, _T("r+"))) && !(f = _tfopen(ini, _T("w"))))
- return StoreSettingsToRegistry();
- fclose(f);
+ FILE* f;
+ if(!(f = _tfopen(ini, _T("r+"))) && !(f = _tfopen(ini, _T("w"))))
+ return StoreSettingsToRegistry();
+ fclose(f);
*/
free((void*)m_pszRegistryKey);
m_pszRegistryKey = NULL;
@@ -718,7 +710,7 @@ BOOL WINAPI Mine_DeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID l
return ret;
}
-// Class ssftest is nowhere to see except here. Right now remove it from release build, should we just remove it completely?
+// Class ssftest is nowhere to see except here. Right now remove it from release build, should we just remove it completely?
#ifdef _DEBUG
#include "../../Subtitles/SSF.h"
#include "../../Subtitles/RTS.h"
@@ -789,7 +781,7 @@ BOOL SetHeapOptions() {
if (hLib == NULL) return FALSE;
typedef BOOL (WINAPI *HSI)
- (HANDLE, HEAP_INFORMATION_CLASS ,PVOID, SIZE_T);
+ (HANDLE, HEAP_INFORMATION_CLASS ,PVOID, SIZE_T);
HSI pHsi = (HSI)GetProcAddress(hLib,"HeapSetInformation");
if (!pHsi) {
FreeLibrary(hLib);
@@ -800,9 +792,9 @@ BOOL SetHeapOptions() {
# define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS)1
#endif
- BOOL fRet = (pHsi)(NULL,HeapEnableTerminationOnCorruption,NULL,0)
- ? TRUE
- : FALSE;
+ BOOL fRet = (pHsi)(NULL,HeapEnableTerminationOnCorruption,NULL,0)
+ ? TRUE
+ : FALSE;
if (hLib) FreeLibrary(hLib);
return fRet;
@@ -811,6 +803,9 @@ BOOL SetHeapOptions() {
BOOL CMPlayerCApp::InitInstance()
{
+ // Remove the working directory from the search path to work around the DLL preloading vulnerability
+ SetDllDirectory(L"");
+
long lError;
#ifdef GOTHTRACE
@@ -1371,7 +1366,7 @@ void CRemoteCtrlClient::ExecuteCommand(CStringA cmd, int repcnt)
if(cmd.IsEmpty()) return;
cmd.Replace(' ', '_');
- AppSettings& s = AfxGetAppSettings();
+ CAppSettings& s = AfxGetAppSettings();
POSITION pos = s.wmcmds.GetHeadPosition();
while(pos)
@@ -1435,1644 +1430,6 @@ void CUIceClient::OnCommand(CStringA str)
}
}
-// CMPlayerCApp::Settings
-
-CMPlayerCApp::Settings::Settings()
- : fInitialized(false)
- , MRU(0, _T("Recent File List"), _T("File%d"), 20)
- , MRUDub(0, _T("Recent Dub List"), _T("Dub%d"), 20)
- , hAccel(NULL)
- , nCmdlnWebServerPort(-1)
- , ShowDebugInfo(false)
-{
-}
-
-
-
-void CMPlayerCApp::Settings::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_OPENDVD, '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_SAVE_COPY, 0, FVIRTKEY|FNOINVERT, IDS_AG_SAVE_AS));
- 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_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_CLOSEPLAYLIST, '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::LDOWN));
- 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|FNOINVERT, IDS_AG_FRAMESTEP));
- ADDCMD((ID_PLAY_FRAMESTEPCANCEL, VK_LEFT, FVIRTKEY|FNOINVERT, IDS_MPLAYERC_16));
- ADDCMD((ID_PLAY_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|FCONTROL|FNOINVERT, IDS_MPLAYERC_25));
- ADDCMD((ID_PLAY_SEEKBACKWARDMED, VK_LEFT, FVIRTKEY|FCONTROL|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_NAVIGATE_SKIPFORWARD, VK_NEXT, FVIRTKEY|FNOINVERT, IDS_AG_NEXT, APPCOMMAND_MEDIA_NEXTTRACK, wmcmd::X2DOWN));
- ADDCMD((ID_NAVIGATE_SKIPBACK, VK_PRIOR, FVIRTKEY|FNOINVERT, IDS_AG_PREVIOUS, APPCOMMAND_MEDIA_PREVIOUSTRACK, wmcmd::X1DOWN));
- ADDCMD((ID_NAVIGATE_SKIPFORWARDPLITEM, VK_NEXT, FVIRTKEY|FCONTROL|FNOINVERT, IDS_MPLAYERC_33));
- ADDCMD((ID_NAVIGATE_SKIPBACKPLITEM, VK_PRIOR, FVIRTKEY|FCONTROL|FNOINVERT, IDS_MPLAYERC_34));
- 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_SHADEREDITOR, '9', FVIRTKEY|FCONTROL|FNOINVERT, IDS_AG_TOGGLE_SHADER));
- 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|FCONTROL|FNOINVERT, IDS_AG_FULLSCREEN, 0, wmcmd::LDBLCLK));
- ADDCMD((ID_VIEW_FULLSCREEN_SECONDARY, VK_RETURN, FVIRTKEY|FALT|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_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, 'P', 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, APPCOMMAND_VOLUME_UP, wmcmd::WUP));
- ADDCMD((ID_VOLUME_DOWN, VK_DOWN, FVIRTKEY|FNOINVERT, IDS_AG_VOLUME_DOWN, APPCOMMAND_VOLUME_DOWN, wmcmd::WDOWN));
- ADDCMD((ID_VOLUME_MUTE, 'M', FVIRTKEY|FCONTROL|FNOINVERT, IDS_AG_VOLUME_MUTE, APPCOMMAND_VOLUME_MUTE));
- 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_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, VK_SPACE, FVIRTKEY|FALT|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, 0, FVIRTKEY|FNOINVERT, IDS_MPLAYERC_77, 0, 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_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_SHADER_TOGGLE, 'P', FVIRTKEY|FCONTROL|FNOINVERT, IDS_AT_TOGGLE_SHADER));
- ADDCMD((ID_SHADER_TOGGLESCREENSPACE, 'P', FVIRTKEY|FCONTROL|FALT|FNOINVERT, IDS_AT_TOGGLE_SHADERSCREENSPACE));
- ADDCMD((ID_D3DFULLSCREEN_TOGGLE, 'F', FVIRTKEY|FCONTROL|FNOINVERT, IDS_MPLAYERC_99));
- ADDCMD((ID_GOTO_PREV_SUB, 'Y', FVIRTKEY|FNOINVERT, IDS_MPLAYERC_100, APPCOMMAND_BROWSER_BACKWARD));
- ADDCMD((ID_GOTO_NEXT_SUB, 'U', FVIRTKEY|FNOINVERT, IDS_MPLAYERC_101, APPCOMMAND_BROWSER_FORWARD));
- 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, 'C', 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_FILE_SAVE_THUMBNAILS, 0, FVIRTKEY|FNOINVERT, IDS_FILE_SAVE_THUMBNAILS));
-
- 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));
-
- ResetPositions();
-
-#undef ADDCMD
-}
-
-CMPlayerCApp::Settings::~Settings()
-{
- if(hAccel)
- DestroyAcceleratorTable(hAccel);
-}
-
-bool CMPlayerCApp::Settings::IsD3DFullscreen()
-{
- if(nCLSwitches&CLSW_D3DFULLSCREEN)
- return true;
- else
- return fD3DFullscreen;
-}
-CString CMPlayerCApp::Settings::SelectedAudioRender()
-{
- CString strResult;
- if(AfxGetMyApp()->m_AudioRendererDisplayName_CL != _T(""))
- strResult = AfxGetMyApp()->m_AudioRendererDisplayName_CL;
- else
- strResult = AfxGetAppSettings().AudioRendererDisplayName;
-
- return strResult;
-}
-
-void CMPlayerCApp::Settings::ResetPositions()
-{
- nCurrentDvdPosition = -1;
- nCurrentFilePosition = -1;
-}
-
-DVD_POSITION* CMPlayerCApp::Settings::CurrentDVDPosition()
-{
- if (nCurrentDvdPosition != -1)
- return &DvdPosition[nCurrentDvdPosition];
- else
- return NULL;
-}
-
-bool CMPlayerCApp::Settings::NewDvd(ULONGLONG llDVDGuid)
-{
- int i;
-
- // Recherche si la position du DVD est connue
- for (i=0; i<MAX_DVD_POSITION; i++)
- {
- if (DvdPosition[i].llDVDGuid == llDVDGuid)
- {
- nCurrentDvdPosition = i;
- return false;
- }
- }
-
- // Si DVD inconnu, le mettre en premier
- for (int i=MAX_DVD_POSITION-1; i>0; i--)
- memcpy (&DvdPosition[i], &DvdPosition[i-1], sizeof(DVD_POSITION));
- DvdPosition[0].llDVDGuid = llDVDGuid;
- nCurrentDvdPosition = 0;
- return true;
-}
-
-FILE_POSITION* CMPlayerCApp::Settings::CurrentFilePosition()
-{
- if (nCurrentFilePosition != -1)
- return &FilePosition[nCurrentFilePosition];
- else
- return NULL;
-}
-
-bool CMPlayerCApp::Settings::NewFile(LPCTSTR strFileName)
-{
- int i;
-
- // Recherche si la position du fichier est connue
- for (i=0; i<MAX_FILE_POSITION; i++)
- {
- if (FilePosition[i].strFile == strFileName)
- {
- nCurrentFilePosition = i;
- return false;
- }
- }
-
- // Si fichier inconnu, le mettre en premier
- for (int i=MAX_FILE_POSITION-1; i>0; i--)
- {
- FilePosition[i].strFile = FilePosition[i-1].strFile;
- FilePosition[i].llPosition = FilePosition[i-1].llPosition;
- }
- FilePosition[0].strFile = strFileName;
- FilePosition[0].llPosition = 0;
- nCurrentFilePosition = 0;
- return true;
-}
-
-
-void CMPlayerCApp::Settings::DeserializeHex (LPCTSTR strVal, BYTE* pBuffer, int nBufSize)
-{
- long lRes;
-
- for (int i=0; i<nBufSize; i++)
- {
- _stscanf_s (strVal+(i*2), _T("%02x"), &lRes);
- pBuffer[i] = (BYTE)lRes;
- }
-}
-
-CString CMPlayerCApp::Settings::SerializeHex (BYTE* pBuffer, int nBufSize)
-{
- CString strTemp;
- CString strResult;
-
- for (int i=0; i<nBufSize; i++)
- {
- strTemp.Format (_T("%02x"), pBuffer[i]);
- strResult += strTemp;
- }
-
- return strResult;
-}
-
-void CMPlayerCApp::Settings::UpdateData(bool fSave)
-{
- CWinApp* pApp = AfxGetApp();
- ASSERT(pApp);
-
- UINT len;
- BYTE* ptr = NULL;
-
- if(fSave)
- {
- if(!fInitialized) return;
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECAPTIONMENU, fHideCaptionMenu);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIDENAVIGATION, fHideNavigation);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_CONTROLSTATE, nCS);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DEFAULTVIDEOFRAME, iDefaultVideoSize);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPASPECTRATIO, fKeepAspectRatio);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_COMPMONDESKARDIFF, fCompMonDeskARDiff);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VOLUME, nVolume);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_BALANCE, nBalance);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MUTE, fMute);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOOPNUM, nLoops);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOOP, fLoopForever);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REWIND, fRewind);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ZOOM, iZoomLevel);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MULTIINST, fAllowMultipleInst);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTSTYLE, iTitleBarTextStyle);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTTITLE, fTitleBarTextTitle);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ONTOP, iOnTop);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TRAYICON, fTrayIcon);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOZOOM, fRememberZoomLevel);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLS, fShowBarsWhenFullScreen);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLSTIMEOUT, nShowBarsWhenFullScreenTimeOut);
- pApp->WriteProfileBinary(IDS_R_SETTINGS, IDS_RS_FULLSCREENRES, (BYTE*)&AutoChangeFullscrRes, sizeof(AutoChangeFullscrRes));
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_EXITFULLSCREENATTHEEND, fExitFullScreenAtTheEnd);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("RestoreResAfterExit"), fRestoreResAfterExit);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWPOS, fRememberWindowPos);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWSIZE, fRememberWindowSize);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SNAPTODESKTOPEDGES, fSnapToDesktopEdges);
- pApp->WriteProfileBinary(IDS_R_SETTINGS, IDS_RS_LASTWINDOWRECT, (BYTE*)&rcLastWindowPos, sizeof(rcLastWindowPos));
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LASTWINDOWTYPE, lastWindowType);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_X, AspectRatio.cx);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_Y, AspectRatio.cy);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPHISTORY, fKeepHistory);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DSVIDEORENDERERTYPE, iDSVideoRendererType);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_RMVIDEORENDERERTYPE, iRMVideoRendererType);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_QTVIDEORENDERERTYPE, iQTVideoRendererType);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_APSURACEFUSAGE, m_RenderersSettings.iAPSurfaceUsage);
-// pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VMRSYNCFIX, m_RenderersSettings.fVMRSyncFix);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DX9_RESIZER, m_RenderersSettings.iDX9Resizer);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERMODE, m_RenderersSettings.fVMR9MixerMode);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERYUV, m_RenderersSettings.fVMR9MixerYUV);
-
- CRenderersSettings::CRendererSettingsEVR& rendererSettings = m_RenderersSettings.m_RenderSettings;
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRAlternateVSync"), rendererSettings.fVMR9AlterativeVSync);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRVSyncOffset"), rendererSettings.iVMR9VSyncOffset);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRVSyncAccurate2"), rendererSettings.iVMR9VSyncAccurate);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFullscreenGUISupport"), rendererSettings.iVMR9FullscreenGUISupport);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRVSync"), rendererSettings.iVMR9VSync);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRDisableDesktopComposition"), rendererSettings.iVMRDisableDesktopComposition);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFullFloatingPointProcessing"), rendererSettings.iVMR9FullFloatingPointProcessing);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementEnable"), rendererSettings.iVMR9ColorManagementEnable);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementInput"), rendererSettings.iVMR9ColorManagementInput);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementGamma"), rendererSettings.iVMR9ColorManagementGamma);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementIntent"), rendererSettings.iVMR9ColorManagementIntent);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVROutputRange"), rendererSettings.iEVROutputRange);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVRHighColorRes"), rendererSettings.iEVRHighColorResolution);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVRForceInputHighColorRes"), rendererSettings.iEVRForceInputHighColorResolution);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("EVREnableFrameTimeCorrection"), rendererSettings.iEVREnableFrameTimeCorrection);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUBeforeVSync"), rendererSettings.iVMRFlushGPUBeforeVSync);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUAfterPresent"), rendererSettings.iVMRFlushGPUAfterPresent);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUWait"), rendererSettings.iVMRFlushGPUWait);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SynchronizeClock"), rendererSettings.bSynchronizeVideo);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SynchronizeDisplay"), rendererSettings.bSynchronizeDisplay);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SynchronizeNearest"), rendererSettings.bSynchronizeNearest);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("LineDelta"), rendererSettings.iLineDelta);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("ColumnDelta"), rendererSettings.iColumnDelta);
-
- pApp->WriteProfileBinary(IDS_R_SETTINGS, _T("CycleDelta"), (LPBYTE)&(rendererSettings.fCycleDelta), sizeof(rendererSettings.fCycleDelta));
- pApp->WriteProfileBinary(IDS_R_SETTINGS, _T("TargetSyncOffset"), (LPBYTE)&(rendererSettings.fTargetSyncOffset), sizeof(rendererSettings.fTargetSyncOffset));
- pApp->WriteProfileBinary(IDS_R_SETTINGS, _T("ControlLimit"), (LPBYTE)&(rendererSettings.fControlLimit), sizeof(rendererSettings.fControlLimit));
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("ResetDevice"), m_RenderersSettings.fResetDevice);
-
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_AUDIORENDERERTYPE, CString(AudioRendererDisplayName));
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADAUDIO, fAutoloadAudio);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADSUBTITLES, fAutoloadSubtitles);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANGORDER, CString(m_subtitlesLanguageOrder));
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOSLANGORDER, CString(m_audiosLanguageOrder));
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_BLOCKVSFILTER, fBlockVSFilter);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWORKERTHREADFOROPENING, fEnableWorkerThreadForOpening);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REPORTFAILEDPINS, fReportFailedPins);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_DVDPATH, sDVDPath);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_USEDVDPATH, fUseDVDPath);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MENULANG, idMenuLang);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOLANG, idAudioLang);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANG, idSubtitlesLang);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOSPEAKERCONF, fAutoSpeakerConf);
- CString style;
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SPLOGFONT, style <<= subdefstyle);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPOVERRIDEPLACEMENT, fOverridePlacement);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPHORPOS, nHorPos);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPVERPOS, nVerPos);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPCSIZE, m_RenderersSettings.nSPCSize);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPCMAXRES, m_RenderersSettings.nSPCMaxRes);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SUBDELAYINTERVAL, nSubDelayInterval);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_POW2TEX, m_RenderersSettings.fSPCPow2Tex);
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("SPCAllowAnimationWhenBuffering"), m_RenderersSettings.fSPCAllowAnimationWhenBuffering);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLESUBTITLES, fEnableSubtitles);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_USEDEFAULTSUBTITLESSTYLE, fUseDefaultSubtitlesStyle);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOSWITCHER, fEnableAudioSwitcher);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOTIMESHIFT, fAudioTimeShift);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOTIMESHIFT, tAudioTimeShift);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DOWNSAMPLETO441, fDownSampleTo441);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_CUSTOMCHANNELMAPPING, fCustomChannelMapping);
- pApp->WriteProfileBinary(IDS_R_SETTINGS, IDS_RS_SPEAKERTOCHANNELMAPPING, (BYTE*)pSpeakerToChannelMap, sizeof(pSpeakerToChannelMap));
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZE, fAudioNormalize);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZERECOVER, fAudioNormalizeRecover);
-
- CString strTemp;
- strTemp.Format( _T("%f"), AudioBoost);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOBOOST, strTemp);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SPEAKERCHANNELS, fnChannels);
-
- // Multi-monitor code
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_FULLSCREENMONITOR, CString(f_hmonitor));
- // Prevent Minimize when in Fullscreen mode on non default monitor
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_PREVENT_MINIMIZE, m_fPreventMinimize);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_WIN7TASKBAR, m_fUseWin7TaskBar);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_EXIT_AFTER_PB, m_fExitAfterPlayback);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NEXT_AFTER_PB, m_fNextInDirAfterPlayback);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NO_SEARCH_IN_FOLDER, m_fDontUseSearchInFolder);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_OSD_SIZE, nOSD_Size);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_MPC_OSD_FONT, m_OSD_Font);
-
- // Associated types with icon or not...
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ASSOCIATED_WITH_ICON, fAssociatedWithIcons);
- // Last Open Dir
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_LAST_OPEN_DIR, f_lastOpenDir);
-
-
- // CASIMIR666 : nouveau settings
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_D3DFULLSCREEN, fD3DFullscreen);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_MONITOR_AUTOREFRESHRATE, fMonitorAutoRefreshRate);
-
- strTemp.Format (_T("%f"), dBrightness);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_BRIGHTNESS, strTemp);
- strTemp.Format (_T("%f"), dContrast);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_CONTRAST, strTemp);
- strTemp.Format (_T("%f"), dHue);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_HUE, strTemp);
- strTemp.Format (_T("%f"), dSaturation);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_SATURATION, strTemp);
-
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLIST, strShaderList);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLISTSCREENSPACE, strShaderListScreenSpace);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADER, (int)m_bToggleShader);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADERSSCREENSPACE, (int)m_bToggleShaderScreenSpace);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_EVR_BUFFERS, m_RenderersSettings.iEvrBuffers);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_SHOWOSD, (int)fShowOSD);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEEDLEDITOR, (int)fEnableEDLEditor);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LANGUAGE, (int)iLanguage);
-
- // Save analog capture settings
- pApp->WriteProfileInt (IDS_R_SETTINGS, IDS_RS_DEFAULT_CAPTURE, iDefaultCaptureDevice);
- pApp->WriteProfileString(IDS_RS_CAPTURE, IDS_RS_VIDEO_DISP_NAME, strAnalogVideo);
- pApp->WriteProfileString(IDS_RS_CAPTURE, IDS_RS_AUDIO_DISP_NAME, strAnalogAudio);
- pApp->WriteProfileInt (IDS_RS_CAPTURE, IDS_RS_COUNTRY, iAnalogCountry);
-
- // Save digital capture settings (BDA)
- pApp->WriteProfileString(IDS_RS_DVB, IDS_RS_BDA_NETWORKPROVIDER, BDANetworkProvider);
- pApp->WriteProfileString(IDS_RS_DVB, IDS_RS_BDA_TUNER, BDATuner);
- pApp->WriteProfileString(IDS_RS_DVB, IDS_RS_BDA_RECEIVER, BDAReceiver);
- pApp->WriteProfileInt(IDS_RS_DVB, IDS_RS_DVB_LAST_CHANNEL, DVBLastChannel);
-
- int iChannel = 0;
- POSITION pos = DVBChannels.GetHeadPosition();
- while (pos)
- {
- CString strTemp;
- CString strChannel;
- CDVBChannel& Channel = DVBChannels.GetNext(pos);
- strTemp.Format(_T("%d"), iChannel);
- pApp->WriteProfileString(IDS_RS_DVB, strTemp, Channel.ToString());
- iChannel++;
- }
-
-
- // Position de lecture des derniers DVD's
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DVDPOS, (int)fRememberDVDPos);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_FILEPOS, (int)fRememberFilePos);
- if (fKeepHistory)
- {
- for (int i=0; i<MAX_DVD_POSITION; i++)
- {
- CString strDVDPos;
- CString strValue;
-
- strDVDPos.Format (_T("DVD Position %d"), i);
- strValue = SerializeHex((BYTE*)&DvdPosition[i], sizeof(DVD_POSITION));
- pApp->WriteProfileString(IDS_R_SETTINGS, strDVDPos, strValue);
- }
-
- // Position de lecture des derniers fichiers
- for (int i=0; i<MAX_FILE_POSITION; i++)
- {
- CString strFilePos;
- CString strValue;
-
- strFilePos.Format (_T("File Name %d"), i);
- pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, FilePosition[i].strFile);
- strFilePos.Format (_T("File Position %d"), i);
- strValue.Format (_T("%I64d"), FilePosition[i].llPosition);
- pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, strValue);
- }
- }
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LASTFULLSCREEN, (int)fLastFullScreen);
- // CASIMIR666 : fin nouveaux settings
-
- {
- for(int i = 0; ; i++)
- {
- CString key;
- key.Format(_T("%s\\%04d"), IDS_R_FILTERS, i);
- int j = pApp->GetProfileInt(key, _T("Enabled"), -1);
- pApp->WriteProfileString(key, NULL, NULL);
- if(j < 0) break;
- }
- pApp->WriteProfileString(IDS_R_FILTERS, NULL, NULL);
-
- POSITION pos = filters.GetHeadPosition();
- for(int i = 0; pos; i++)
- {
- FilterOverride* f = filters.GetNext(pos);
-
- if(f->fTemporary)
- continue;
-
- CString key;
- key.Format(_T("%s\\%04d"), IDS_R_FILTERS, i);
-
- pApp->WriteProfileInt(key, _T("SourceType"), (int)f->type);
- pApp->WriteProfileInt(key, _T("Enabled"), (int)!f->fDisabled);
- if(f->type == FilterOverride::REGISTERED)
- {
- pApp->WriteProfileString(key, _T("DisplayName"), CString(f->dispname));
- pApp->WriteProfileString(key, _T("Name"), f->name);
- }
- else if(f->type == FilterOverride::EXTERNAL)
- {
- pApp->WriteProfileString(key, _T("Path"), f->path);
- pApp->WriteProfileString(key, _T("Name"), f->name);
- pApp->WriteProfileString(key, _T("CLSID"), CStringFromGUID(f->clsid));
- }
- POSITION pos2 = f->backup.GetHeadPosition();
- for(int i = 0; pos2; i++)
- {
- CString val;
- val.Format(_T("org%04d"), i);
- pApp->WriteProfileString(key, val, CStringFromGUID(f->backup.GetNext(pos2)));
- }
- pos2 = f->guids.GetHeadPosition();
- for(int i = 0; pos2; i++)
- {
- CString val;
- val.Format(_T("mod%04d"), i);
- pApp->WriteProfileString(key, val, CStringFromGUID(f->guids.GetNext(pos2)));
- }
- pApp->WriteProfileInt(key, _T("LoadType"), f->iLoadType);
- pApp->WriteProfileInt(key, _T("Merit"), f->dwMerit);
- }
- }
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_INTREALMEDIA, fIntRealMedia);
- // pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIARENDERLESS, fRealMediaRenderless);
- // pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_QUICKTIMERENDERER, iQuickTimeRenderer);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIAFPS, *((DWORD*)&RealMediaQuickTimeFPS));
-
- pApp->WriteProfileString(IDS_R_SETTINGS _T("\\") IDS_RS_PNSPRESETS, NULL, NULL);
- for(int i = 0, j = m_pnspresets.GetCount(); i < j; i++)
- {
- CString str;
- str.Format(_T("Preset%d"), i);
- pApp->WriteProfileString(IDS_R_SETTINGS _T("\\") IDS_RS_PNSPRESETS, str, m_pnspresets[i]);
- }
-
- pApp->WriteProfileString(IDS_R_COMMANDS, NULL, NULL);
- pos = wmcmds.GetHeadPosition();
- for(int i = 0; pos; )
- {
- wmcmd& wc = wmcmds.GetNext(pos);
- if(wc.IsModified())
- {
- CString str;
- str.Format(_T("CommandMod%d"), i);
- CString str2;
- str2.Format(_T("%d %x %x %s %d %d %d"),
- wc.cmd, wc.fVirt, wc.key,
- _T("\"") + CString(wc.rmcmd) + _T("\""), wc.rmrepcnt,
- wc.mouse, wc.appcmd);
- pApp->WriteProfileString(IDS_R_COMMANDS, str, str2);
- i++;
- }
- }
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WINLIRC, fWinLirc);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WINLIRCADDR, WinLircAddr);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_UICE, fUIce);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_UICEADDR, UIceAddr);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_GLOBALMEDIA, fGlobalMedia);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLEXPTOOLBARS, fDisableXPToolbars);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_USEWMASFREADER, fUseWMASFReader);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTS, nJumpDistS);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTM, nJumpDistM);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTL, nJumpDistL);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LIMITWINDOWPROPORTIONS, fLimitWindowProportions);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYMSN, fNotifyMSN);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYGTSDLL, fNotifyGTSdll);
-
- Formats.UpdateData(true);
-
- pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_SRCFILTERS, SrcFilters|~(SRC_LAST-1));
- pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_TRAFILTERS, TraFilters|~(TRA_LAST-1));
- pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_DXVAFILTERS, DXVAFilters|~(DXVA_LAST-1));
- pApp->WriteProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_FFMPEGFILTERS, FFmpegFilters|~(FFM_LAST-1));
-
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_LOGOFILE, logofn);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOID, logoid);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOEXT, logoext);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECDROMSSUBMENU, fHideCDROMsSubMenu);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_PRIORITY, priority);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_LAUNCHFULLSCREEN, launchfullscreen);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWEBSERVER, fEnableWebServer);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPORT, nWebServerPort);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPRINTDEBUGINFO, fWebServerPrintDebugInfo);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERUSECOMPRESSION, fWebServerUseCompression);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERLOCALHOSTONLY, fWebServerLocalhostOnly);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WEBROOT, WebRoot);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WEBDEFINDEX, WebDefIndex);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_WEBSERVERCGI, WebServerCGI);
-
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTPATH, SnapShotPath);
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTEXT, SnapShotExt);
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBROWS, ThumbRows);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBCOLS, ThumbCols);
- pApp->WriteProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBWIDTH, ThumbWidth);
-
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_RS_ISDB, ISDb);
-
- pApp->WriteProfileString(IDS_R_SETTINGS, IDS_D3D9RENDERDEVICE, D3D9RenderDevice);
-
- pApp->WriteProfileString(_T("Shaders"), NULL, NULL);
- pApp->WriteProfileInt(_T("Shaders"), _T("Initialized"), 1);
- pApp->WriteProfileString(_T("Shaders"), _T("Combine"), m_shadercombine);
- pApp->WriteProfileString(_T("Shaders"), _T("CombineScreenSpace"), m_shadercombineScreenSpace);
-
-
- pos = m_shaders.GetHeadPosition();
- for(int i = 0; pos; i++)
- {
- const Shader& s = m_shaders.GetNext(pos);
-
- if(!s.label.IsEmpty())
- {
- CString index;
- index.Format(_T("%d"), i);
- CString srcdata = s.srcdata;
- srcdata.Replace(_T("\r"), _T(""));
- srcdata.Replace(_T("\n"), _T("\\n"));
- srcdata.Replace(_T("\t"), _T("\\t"));
- AfxGetApp()->WriteProfileString(_T("Shaders"), index, s.label + _T("|") + s.target + _T("|") + srcdata);
- }
- }
-
- if(pApp->m_pszRegistryKey)
- {
- // WINBUG: on win2k this would crash WritePrivateProfileString
- pApp->WriteProfileInt(_T(""), _T(""), pApp->GetProfileInt(_T(""), _T(""), 0)?0:1);
- }
- }
- else
- {
- if(fInitialized) return;
-
- OSVERSIONINFO vi;
- vi.dwOSVersionInfoSize = sizeof(vi);
- GetVersionEx(&vi);
- fXpOrBetter = (vi.dwMajorVersion >= 5 && vi.dwMinorVersion >= 1 || vi.dwMajorVersion >= 6);
-
- iDXVer = 0;
- CRegKey dxver;
- if(ERROR_SUCCESS == dxver.Open(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\DirectX"), KEY_READ))
- {
- CString str;
- ULONG len = 64;
- if(ERROR_SUCCESS == dxver.QueryStringValue(_T("Version"), str.GetBuffer(len), &len))
- {
- str.ReleaseBuffer(len);
- int ver[4];
- _stscanf_s(str, _T("%d.%d.%d.%d"), ver+0, ver+1, ver+2, ver+3);
- iDXVer = ver[1];
- }
- }
-
- // Set interface language first!
- iLanguage = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LANGUAGE, GetDefLanguage());
- if (iLanguage != 0) SetLanguage(iLanguage);
- CreateCommands();
-
- fHideCaptionMenu = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECAPTIONMENU, 0);
- fHideNavigation = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIDENAVIGATION, 0);
- nCS = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_CONTROLSTATE, CS_SEEKBAR|CS_TOOLBAR|CS_STATUSBAR);
- iDefaultVideoSize = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DEFAULTVIDEOFRAME, DVS_FROMINSIDE);
- fKeepAspectRatio = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPASPECTRATIO, TRUE);
- fCompMonDeskARDiff = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_COMPMONDESKARDIFF, FALSE);
- nVolume = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VOLUME, 100);
- nBalance = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_BALANCE, 0);
- fMute = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MUTE, 0);
- nLoops = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOOPNUM, 1);
- fLoopForever = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOOP, 0);
- fRewind = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REWIND, FALSE);
- iZoomLevel = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ZOOM, 1);
- iDSVideoRendererType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DSVIDEORENDERERTYPE, (IsVistaOrAbove() ? (HasEVR() ? VIDRNDT_DS_EVR_CUSTOM : VIDRNDT_DS_DEFAULT) : VIDRNDT_DS_OVERLAYMIXER) );
- iRMVideoRendererType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_RMVIDEORENDERERTYPE, VIDRNDT_RM_DEFAULT);
- iQTVideoRendererType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_QTVIDEORENDERERTYPE, VIDRNDT_QT_DEFAULT);
-
- m_RenderersSettings.iAPSurfaceUsage = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_APSURACEFUSAGE, (IsVistaOrAbove() ? VIDRNDT_AP_TEXTURE3D : VIDRNDT_AP_TEXTURE2D));
-// m_RenderersSettings.fVMRSyncFix = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VMRSYNCFIX, FALSE);
- m_RenderersSettings.iDX9Resizer = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DX9_RESIZER, 1);
- m_RenderersSettings.fVMR9MixerMode = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERMODE, TRUE);
- m_RenderersSettings.fVMR9MixerYUV = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_VMR9MIXERYUV, FALSE);
-
- CRenderersSettings::CRendererSettingsEVR& rendererSettings = m_RenderersSettings.m_RenderSettings;
- CRenderersSettings::CRendererSettingsEVR DefaultSettings;
- rendererSettings.fVMR9AlterativeVSync = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRAlternateVSync"), DefaultSettings.fVMR9AlterativeVSync);
- rendererSettings.iVMR9VSyncOffset = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRVSyncOffset"), DefaultSettings.iVMR9VSyncOffset);
- rendererSettings.iVMR9VSyncAccurate = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRVSyncAccurate2"), DefaultSettings.iVMR9VSyncAccurate);
- rendererSettings.iVMR9FullscreenGUISupport = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFullscreenGUISupport"), DefaultSettings.iVMR9FullscreenGUISupport);
- rendererSettings.iEVRHighColorResolution = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVRHighColorRes"), DefaultSettings.iEVRHighColorResolution);
- rendererSettings.iEVRForceInputHighColorResolution = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVRForceInputHighColorRes"), DefaultSettings.iEVRForceInputHighColorResolution);
- rendererSettings.iEVREnableFrameTimeCorrection = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVREnableFrameTimeCorrection"), DefaultSettings.iEVREnableFrameTimeCorrection);
- rendererSettings.iVMR9VSync = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRVSync"), DefaultSettings.iVMR9VSync);
- rendererSettings.iVMRDisableDesktopComposition = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRDisableDesktopComposition"), DefaultSettings.iVMRDisableDesktopComposition);
- rendererSettings.iVMR9FullFloatingPointProcessing = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFullFloatingPointProcessing"), DefaultSettings.iVMR9FullFloatingPointProcessing);
-
- rendererSettings.iVMR9ColorManagementEnable = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementEnable"), DefaultSettings.iVMR9ColorManagementEnable);
- rendererSettings.iVMR9ColorManagementInput = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementInput"), DefaultSettings.iVMR9ColorManagementInput);
- rendererSettings.iVMR9ColorManagementGamma = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementGamma"), DefaultSettings.iVMR9ColorManagementGamma);
- rendererSettings.iVMR9ColorManagementIntent = pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRColorManagementIntent"), DefaultSettings.iVMR9ColorManagementIntent);
-
- rendererSettings.iEVROutputRange = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("EVROutputRange"), DefaultSettings.iEVROutputRange);
-
- rendererSettings.iVMRFlushGPUBeforeVSync = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUBeforeVSync"), DefaultSettings.iVMRFlushGPUBeforeVSync);
- rendererSettings.iVMRFlushGPUAfterPresent = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUAfterPresent"), DefaultSettings.iVMRFlushGPUAfterPresent);
- rendererSettings.iVMRFlushGPUWait = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("VMRFlushGPUWait"), DefaultSettings.iVMRFlushGPUWait);
-
- rendererSettings.bSynchronizeVideo = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SynchronizeClock"), DefaultSettings.bSynchronizeVideo);
- rendererSettings.bSynchronizeDisplay = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SynchronizeDisplay"), DefaultSettings.bSynchronizeDisplay);
- rendererSettings.bSynchronizeNearest = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SynchronizeNearest"), DefaultSettings.bSynchronizeNearest);
- rendererSettings.iLineDelta = pApp->GetProfileInt(IDS_R_SETTINGS, _T("LineDelta"), DefaultSettings.iLineDelta);
- rendererSettings.iColumnDelta = pApp->GetProfileInt(IDS_R_SETTINGS, _T("ColumnDelta"), DefaultSettings.iColumnDelta);
-
- double *dPtr;
- UINT dSize;
- if(pApp->GetProfileBinary(IDS_R_SETTINGS, _T("CycleDelta"), (LPBYTE*)&dPtr, &dSize))
- {
- rendererSettings.fCycleDelta = *dPtr;
- delete [] dPtr;
- }
-
- if(pApp->GetProfileBinary(IDS_R_SETTINGS, _T("TargetSyncOffset"), (LPBYTE*)&dPtr, &dSize))
- {
- rendererSettings.fTargetSyncOffset = *dPtr;
- delete [] dPtr;
- }
- if(pApp->GetProfileBinary(IDS_R_SETTINGS, _T("ControlLimit"), (LPBYTE*)&dPtr, &dSize))
- {
- rendererSettings.fControlLimit = *dPtr;
- delete [] dPtr;
- }
-
- m_RenderersSettings.fResetDevice = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("ResetDevice"), TRUE);
-
- AudioRendererDisplayName = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_AUDIORENDERERTYPE, _T(""));
- fAutoloadAudio = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADAUDIO, TRUE);
- fAutoloadSubtitles = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOLOADSUBTITLES, !IsVSFilterInstalled() || (IsVistaOrAbove() && HasEVR()) );
- m_subtitlesLanguageOrder = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANGORDER, _T(""));
- m_audiosLanguageOrder = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOSLANGORDER, _T(""));
- fBlockVSFilter = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_BLOCKVSFILTER, TRUE);
- fEnableWorkerThreadForOpening = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWORKERTHREADFOROPENING, TRUE);
- fReportFailedPins = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REPORTFAILEDPINS, TRUE);
- fAllowMultipleInst = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MULTIINST, 0);
- iTitleBarTextStyle = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTSTYLE, 1);
- fTitleBarTextTitle = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TITLEBARTEXTTITLE, FALSE);
- iOnTop = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ONTOP, 0);
- fTrayIcon = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TRAYICON, 0);
- fRememberZoomLevel = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOZOOM, 1);
- fShowBarsWhenFullScreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLS, 1);
- nShowBarsWhenFullScreenTimeOut = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_FULLSCREENCTRLSTIMEOUT, 0);
-
- //Multi-monitor code
- f_hmonitor = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_FULLSCREENMONITOR, _T(""));
- // Prevent Minimize when in Fullscreen mode on non default monitor
- m_fPreventMinimize = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_PREVENT_MINIMIZE, 0);
- m_fUseWin7TaskBar = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_WIN7TASKBAR, 1);
- m_fExitAfterPlayback = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_EXIT_AFTER_PB, 0);
- m_fNextInDirAfterPlayback = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NEXT_AFTER_PB, 0);
- m_fDontUseSearchInFolder = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_NO_SEARCH_IN_FOLDER, 0);
- nOSD_Size = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MPC_OSD_SIZE, 20);
- m_OSD_Font= pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_MPC_OSD_FONT, _T("Arial"));
-
- // Associated types with icon or not...
- fAssociatedWithIcons = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ASSOCIATED_WITH_ICON, 1);
- // Last Open Dir
- f_lastOpenDir = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_LAST_OPEN_DIR, _T("C:\\"));
-
- if ( pApp->GetProfileBinary(IDS_R_SETTINGS, IDS_RS_FULLSCREENRES, &ptr, &len) )
- {
- if ( len == sizeof(AChFR) )
- memcpy( &AutoChangeFullscrRes, ptr, sizeof(AChFR) );
- else
- AutoChangeFullscrRes.bEnabled = false;
- delete [] ptr;
- }
- else
- {
- AutoChangeFullscrRes.bEnabled = false;
- }
-
- fExitFullScreenAtTheEnd = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_EXITFULLSCREENATTHEEND, 1);
- fRestoreResAfterExit = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("RestoreResAfterExit"), 1);
- fRememberWindowPos = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWPOS, 0);
- fRememberWindowSize = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REMEMBERWINDOWSIZE, 0);
- fSnapToDesktopEdges = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SNAPTODESKTOPEDGES, 0);
- AspectRatio.cx = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_X, 0);
- AspectRatio.cy = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ASPECTRATIO_Y, 0);
- fKeepHistory = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_KEEPHISTORY, 1);
- if ( pApp->GetProfileBinary(IDS_R_SETTINGS, IDS_RS_LASTWINDOWRECT, &ptr, &len) )
- {
- if ( len == sizeof(CRect) )
- memcpy( &rcLastWindowPos, ptr, sizeof(CRect) );
- else
- fRememberWindowPos = false;
- delete [] ptr;
- }
- else
- {
- fRememberWindowPos = false;
- }
- lastWindowType = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LASTWINDOWTYPE, SIZE_RESTORED);
- sDVDPath = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_DVDPATH, _T(""));
- fUseDVDPath = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_USEDVDPATH, 0);
- idMenuLang = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MENULANG, ::GetUserDefaultLCID());
- idAudioLang = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOLANG, ::GetUserDefaultLCID());
- idSubtitlesLang = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SUBTITLESLANG, ::GetUserDefaultLCID());
- fAutoSpeakerConf = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUTOSPEAKERCONF, 1);
- // TODO: rename subdefstyle -> defStyle, IDS_RS_SPLOGFONT -> IDS_RS_SPSTYLE
- subdefstyle <<= pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SPLOGFONT, _T(""));
- fOverridePlacement = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPOVERRIDEPLACEMENT, 0);
- nHorPos = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPHORPOS, 50);
- nVerPos = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPVERPOS, 90);
- m_RenderersSettings.nSPCSize = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPCSIZE, 3);
- m_RenderersSettings.nSPCMaxRes = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPCMAXRES, 2);
- nSubDelayInterval = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SUBDELAYINTERVAL, 500);
- m_RenderersSettings.fSPCPow2Tex = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_POW2TEX, TRUE);
-
- bool bAllowAnimationWhenBuffering = true;
- SYSTEM_INFO SysInfo;
- GetSystemInfo(&SysInfo);
- if (SysInfo.dwNumberOfProcessors < 3)
- bAllowAnimationWhenBuffering = false;
-
-
- m_RenderersSettings.fSPCAllowAnimationWhenBuffering = !!pApp->GetProfileInt(IDS_R_SETTINGS, _T("SPCAllowAnimationWhenBuffering"), bAllowAnimationWhenBuffering);
- fEnableSubtitles = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLESUBTITLES, TRUE);
- fUseDefaultSubtitlesStyle = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_USEDEFAULTSUBTITLESSTYLE, FALSE);
- fEnableAudioSwitcher = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOSWITCHER, TRUE);
- fAudioTimeShift = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEAUDIOTIMESHIFT, 0);
- tAudioTimeShift = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIOTIMESHIFT, 0);
- fDownSampleTo441 = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DOWNSAMPLETO441, 0);
- fCustomChannelMapping = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_CUSTOMCHANNELMAPPING, 0);
-
- BOOL bResult = pApp->GetProfileBinary( IDS_R_SETTINGS, IDS_RS_SPEAKERTOCHANNELMAPPING, &ptr, &len );
- if ( bResult && len == sizeof(pSpeakerToChannelMap) )
- {
- memcpy( pSpeakerToChannelMap, ptr, sizeof(pSpeakerToChannelMap) );
- }
- else
- {
- memset(pSpeakerToChannelMap, 0, sizeof(pSpeakerToChannelMap));
- for(int j = 0; j < 18; j++)
- for(int i = 0; i <= j; i++)
- pSpeakerToChannelMap[j][i] = 1<<i;
-
- pSpeakerToChannelMap[0][0] = 1<<0;
- pSpeakerToChannelMap[0][1] = 1<<0;
-
- pSpeakerToChannelMap[3][0] = 1<<0;
- pSpeakerToChannelMap[3][1] = 1<<1;
- pSpeakerToChannelMap[3][2] = 0;
- pSpeakerToChannelMap[3][3] = 0;
- pSpeakerToChannelMap[3][4] = 1<<2;
- pSpeakerToChannelMap[3][5] = 1<<3;
-
- pSpeakerToChannelMap[4][0] = 1<<0;
- pSpeakerToChannelMap[4][1] = 1<<1;
- pSpeakerToChannelMap[4][2] = 1<<2;
- pSpeakerToChannelMap[4][3] = 0;
- pSpeakerToChannelMap[4][4] = 1<<3;
- pSpeakerToChannelMap[4][5] = 1<<4;
- }
- if ( bResult )
- delete [] ptr;
-
- fAudioNormalize = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZE, FALSE);
- fAudioNormalizeRecover = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_AUDIONORMALIZERECOVER, TRUE);
- AudioBoost = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_AUDIOBOOST, _T("1")));
-
- fnChannels = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SPEAKERCHANNELS, 2);
-
- {
- for(int i = 0; ; i++)
- {
- CString key;
- key.Format(_T("%s\\%04d"), IDS_R_FILTERS, i);
-
- CAutoPtr<FilterOverride> f(DNew FilterOverride);
-
- f->fDisabled = !pApp->GetProfileInt(key, _T("Enabled"), 0);
-
- UINT j = pApp->GetProfileInt(key, _T("SourceType"), -1);
- if(j == 0)
- {
- f->type = FilterOverride::REGISTERED;
- f->dispname = CStringW(pApp->GetProfileString(key, _T("DisplayName"), _T("")));
- f->name = pApp->GetProfileString(key, _T("Name"), _T(""));
- }
- else if(j == 1)
- {
- f->type = FilterOverride::EXTERNAL;
- f->path = pApp->GetProfileString(key, _T("Path"), _T(""));
- f->name = pApp->GetProfileString(key, _T("Name"), _T(""));
- f->clsid = GUIDFromCString(pApp->GetProfileString(key, _T("CLSID"), _T("")));
- }
- else
- {
- pApp->WriteProfileString(key, NULL, 0);
- break;
- }
-
- f->backup.RemoveAll();
- for(int i = 0; ; i++)
- {
- CString val;
- val.Format(_T("org%04d"), i);
- CString guid = pApp->GetProfileString(key, val, _T(""));
- if(guid.IsEmpty()) break;
- f->backup.AddTail(GUIDFromCString(guid));
- }
-
- f->guids.RemoveAll();
- for(int i = 0; ; i++)
- {
- CString val;
- val.Format(_T("mod%04d"), i);
- CString guid = pApp->GetProfileString(key, val, _T(""));
- if(guid.IsEmpty()) break;
- f->guids.AddTail(GUIDFromCString(guid));
- }
-
- f->iLoadType = (int)pApp->GetProfileInt(key, _T("LoadType"), -1);
- if(f->iLoadType < 0) break;
-
- f->dwMerit = pApp->GetProfileInt(key, _T("Merit"), MERIT_DO_NOT_USE+1);
-
- filters.AddTail(f);
- }
- }
-
- fIntRealMedia = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_INTREALMEDIA, 0);
- //fRealMediaRenderless = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIARENDERLESS, 0);
- //iQuickTimeRenderer = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_QUICKTIMERENDERER, 2);
- RealMediaQuickTimeFPS = 25.0;
- *((DWORD*)&RealMediaQuickTimeFPS) = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_REALMEDIAFPS, *((DWORD*)&RealMediaQuickTimeFPS));
-
- m_pnspresets.RemoveAll();
- for(int i = 0; i < (ID_PANNSCAN_PRESETS_END - ID_PANNSCAN_PRESETS_START); i++)
- {
- CString str;
- str.Format(_T("Preset%d"), i);
- str = pApp->GetProfileString(IDS_R_SETTINGS _T("\\") IDS_RS_PNSPRESETS, str, _T(""));
- if(str.IsEmpty()) break;
- m_pnspresets.Add(str);
- }
- if(m_pnspresets.IsEmpty())
- {
- double _4p3 = 4.0/3.0;
- double _16p9 = 16.0/9.0;
- double _185p1 = 1.85/1.0;
- double _235p1 = 2.35/1.0;
- UNUSED_ALWAYS(_185p1);
-
- CString str;
- str.Format(ResStr(IDS_SCALE_16_9), 0.5, 0.5, _4p3/_4p3, _16p9/_4p3);
- m_pnspresets.Add(str);
- str.Format(ResStr(IDS_SCALE_WIDESCREEN), 0.5, 0.5, _16p9/_4p3, _16p9/_4p3);
- m_pnspresets.Add(str);
- str.Format(ResStr(IDS_SCALE_ULTRAWIDE), 0.5, 0.5, _235p1/_4p3, _235p1/_4p3);
- m_pnspresets.Add(str);
- }
-
- for(int i = 0; i < wmcmds.GetCount(); i++)
- {
- CString str;
- str.Format(_T("CommandMod%d"), i);
- str = pApp->GetProfileString(IDS_R_COMMANDS, str, _T(""));
- if(str.IsEmpty()) break;
- int cmd, fVirt, key, repcnt, mouse, appcmd;
- TCHAR buff[128];
- int n;
- if(5 > (n = _stscanf_s(str, _T("%d %x %x %s %d %d %d"), &cmd, &fVirt, &key, buff, countof(buff), &repcnt, &mouse, &appcmd)))
- break;
- if(POSITION pos = wmcmds.Find(cmd))
- {
- wmcmd& wc = wmcmds.GetAt(pos);
- wc.cmd = cmd;
- wc.fVirt = fVirt;
- wc.key = key;
- if(n >= 6) wc.mouse = (UINT)mouse;
- if(n >= 7) wc.appcmd = (UINT)appcmd;
- wc.rmcmd = CStringA(buff).Trim('\"');
- wc.rmrepcnt = repcnt;
- }
- }
-
- CAtlArray<ACCEL> pAccel;
- pAccel.SetCount(wmcmds.GetCount());
- POSITION pos = wmcmds.GetHeadPosition();
- for(int i = 0; pos; i++) pAccel[i] = wmcmds.GetNext(pos);
- hAccel = CreateAcceleratorTable(pAccel.GetData(), pAccel.GetCount());
-
- WinLircAddr = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WINLIRCADDR, _T("127.0.0.1:8765"));
- fWinLirc = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WINLIRC, 0);
- UIceAddr = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_UICEADDR, _T("127.0.0.1:1234"));
- fUIce = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_UICE, 0);
- fGlobalMedia = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_GLOBALMEDIA, 0);
-
- fDisableXPToolbars = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DISABLEXPTOOLBARS, 0);
- fUseWMASFReader = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_USEWMASFREADER, FALSE);
- nJumpDistS = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTS, 1000);
- nJumpDistM = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTM, 5000);
- nJumpDistL = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_JUMPDISTL, 20000);
- fLimitWindowProportions = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LIMITWINDOWPROPORTIONS, FALSE);
- fNotifyMSN = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYMSN, FALSE);
- fNotifyGTSdll = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_NOTIFYGTSDLL, FALSE);
-
- Formats.UpdateData(false);
-
- SrcFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_SRCFILTERS, ~0);
- TraFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_TRAFILTERS, ~0);
- DXVAFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_DXVAFILTERS, ~0);
- FFmpegFilters = pApp->GetProfileInt(IDS_R_INTERNAL_FILTERS, IDS_RS_FFMPEGFILTERS, ~0);
-
- logofn = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_LOGOFILE, _T(""));
- logoid = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOID, IDF_LOGO1);
- logoext = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LOGOEXT, 0);
-
- fHideCDROMsSubMenu = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_HIDECDROMSSUBMENU, 0);
-
- priority = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_PRIORITY, NORMAL_PRIORITY_CLASS);
- ::SetPriorityClass(::GetCurrentProcess(), priority);
- launchfullscreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LAUNCHFULLSCREEN, FALSE);
-
- fEnableWebServer = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEWEBSERVER, FALSE);
- nWebServerPort = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPORT, 13579);
- fWebServerPrintDebugInfo = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERPRINTDEBUGINFO, FALSE);
- fWebServerUseCompression = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERUSECOMPRESSION, TRUE);
- fWebServerLocalhostOnly = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_WEBSERVERLOCALHOSTONLY, FALSE);
- WebRoot = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WEBROOT, _T("*./webroot"));
- WebDefIndex = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WEBDEFINDEX, _T("index.html;index.php"));
- WebServerCGI = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_WEBSERVERCGI, _T(""));
-
- CString MyPictures;
-
- CRegKey key;
- // grrrrr
- // if(!SHGetSpecialFolderPath(NULL, MyPictures.GetBufferSetLength(MAX_PATH), CSIDL_MYPICTURES, TRUE)) MyPictures.Empty();
- // else MyPictures.ReleaseBuffer();
- if(ERROR_SUCCESS == key.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"), KEY_READ))
- {
- ULONG len = MAX_PATH;
- if(ERROR_SUCCESS == key.QueryStringValue(_T("My Pictures"), MyPictures.GetBuffer(MAX_PATH), &len)) MyPictures.ReleaseBufferSetLength(len);
- else MyPictures.Empty();
- }
- SnapShotPath = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTPATH, MyPictures);
- SnapShotExt = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SNAPSHOTEXT, _T(".jpg"));
-
- ThumbRows = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBROWS, 4);
- ThumbCols = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBCOLS, 4);
- ThumbWidth = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_THUMBWIDTH, 1024);
-
- ISDb = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_ISDB, _T("www.opensubtitles.org/isdb"));
-
- D3D9RenderDevice = pApp->GetProfileString(IDS_R_SETTINGS, IDS_D3D9RENDERDEVICE, _T(""));
-
- pApp->WriteProfileInt(IDS_R_SETTINGS, _T("LastUsedPage"), 0);
-
- //
-
- m_shaders.RemoveAll();
-
- CAtlStringMap<UINT> shaders;
-
- shaders[_T("16-235 -> 0-255 [SD][HD]")] = IDF_SHADER_LEVELS;
- shaders[_T("16-235 -> 0-255 [SD]")] = IDF_SHADER_LEVELS2;
- shaders[_T("0-255 -> 16-235")] = IDF_SHADER_LEVELS3;
- shaders[_T("BT.601 -> BT.709")] = IDF_SHADER_BT601_BT709;
- shaders[_T("contour")] = IDF_SHADER_CONTOUR;
- shaders[_T("deinterlace (blend)")] = IDF_SHADER_DEINTERLACE;
- shaders[_T("edge sharpen")] = IDF_SHADER_EDGE_SHARPEN;
- shaders[_T("emboss")] = IDF_SHADER_EMBOSS;
- shaders[_T("grayscale")] = IDF_SHADER_GRAYSCALE;
- shaders[_T("invert")] = IDF_SHADER_INVERT;
- shaders[_T("letterbox")] = IDF_SHADER_LETTERBOX;
- shaders[_T("nightvision")] = IDF_SHADER_NIGHTVISION;
- shaders[_T("procamp")] = IDF_SHADER_PROCAMP;
- shaders[_T("sharpen")] = IDF_SHADER_SHARPEN;
- shaders[_T("sharpen complex")] = IDF_SHADER_SHARPEN_COMPLEX;
- shaders[_T("sharpen complex 2")] = IDF_SHADER_SHARPEN_COMPLEX2;
- shaders[_T("sphere")] = IDF_SHADER_SPHERE;
- shaders[_T("spotlight")] = IDF_SHADER_SPOTLIGHT;
- shaders[_T("wave")] = IDF_SHADER_WAVE;
- shaders[_T("denoise")] = IDF_SHADER_DENOISE;
- shaders[_T("YV12 Chroma Upsampling")] = IDF_SHADER_YV12CHROMAUP;
-
- int iShader = 0;
-
- for(; ; iShader++)
- {
- CString str;
- str.Format(_T("%d"), iShader);
- str = pApp->GetProfileString(_T("Shaders"), str);
-
- CAtlList<CString> sl;
- CString label = Explode(str, sl, '|');
- if(label.IsEmpty()) break;
- if(sl.GetCount() < 3) continue;
-
- Shader s;
- s.label = sl.RemoveHead();
- s.target = sl.RemoveHead();
- s.srcdata = sl.RemoveHead();
- s.srcdata.Replace(_T("\\n"), _T("\n"));
- s.srcdata.Replace(_T("\\t"), _T("\t"));
- m_shaders.AddTail(s);
-
- shaders.RemoveKey(s.label);
- }
-
- pos = shaders.GetStartPosition();
- for(; pos; iShader++)
- {
- CAtlStringMap<UINT>::CPair* pPair = shaders.GetNext(pos);
-
- CStringA srcdata;
- if(LoadResource(pPair->m_value, srcdata, _T("FILE")))
- {
- Shader s;
- s.label = pPair->m_key;
-
- // Select minimum version for each shader!
- switch (pPair->m_value)
- {
- case IDF_SHADER_DENOISE :
- s.target = _T("ps_3_0");
- break;
- case IDF_SHADER_SHARPEN_COMPLEX2 :
- s.target = _T("ps_2_a");
- break;
- default :
- s.target = _T("ps_2_0");
- break;
- }
- s.srcdata = CString(srcdata);
- m_shaders.AddTail(s);
- }
- }
-
- // CASIMIR666 : nouveaux settings
- fD3DFullscreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_D3DFULLSCREEN, FALSE);
- fMonitorAutoRefreshRate = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_MONITOR_AUTOREFRESHRATE, FALSE);
-
- dBrightness = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_BRIGHTNESS, _T("1")));
- dContrast = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_CONTRAST, _T("1")));
- dHue = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_HUE, _T("0")));
- dSaturation = (float)_tstof(pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_COLOR_SATURATION, _T("1")));
- strShaderList = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLIST, _T(""));
- strShaderListScreenSpace = pApp->GetProfileString(IDS_R_SETTINGS, IDS_RS_SHADERLISTSCREENSPACE, _T(""));
- m_bToggleShader = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADER, 0);
- m_bToggleShaderScreenSpace = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_TOGGLESHADERSSCREENSPACE, 0);
-
- m_RenderersSettings.iEvrBuffers = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_EVR_BUFFERS, 5);
- fShowOSD = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_SHOWOSD, 1);
- fEnableEDLEditor= !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_ENABLEEDLEDITOR, FALSE);
-
- // Save analog capture settings
- iDefaultCaptureDevice = pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DEFAULT_CAPTURE, 0);
- strAnalogVideo = pApp->GetProfileString(IDS_RS_CAPTURE, IDS_RS_VIDEO_DISP_NAME, _T(""));
- strAnalogAudio = pApp->GetProfileString(IDS_RS_CAPTURE, IDS_RS_AUDIO_DISP_NAME, _T(""));
- iAnalogCountry = pApp->GetProfileInt(IDS_RS_CAPTURE, IDS_RS_COUNTRY, 1);
-
- BDANetworkProvider = pApp->GetProfileString(IDS_RS_DVB, IDS_RS_BDA_NETWORKPROVIDER, _T(""));
- BDATuner = pApp->GetProfileString(IDS_RS_DVB, IDS_RS_BDA_TUNER, _T(""));
- BDAReceiver = pApp->GetProfileString(IDS_RS_DVB, IDS_RS_BDA_RECEIVER, _T(""));
- DVBLastChannel = pApp->GetProfileInt(IDS_RS_DVB, IDS_RS_DVB_LAST_CHANNEL, 1);
-
- for(int iChannel = 0; ; iChannel++)
- {
- CString strTemp;
- CString strChannel;
- CDVBChannel Channel;
- strTemp.Format(_T("%d"), iChannel);
- strChannel = pApp->GetProfileString(IDS_RS_DVB, strTemp, _T(""));
- if (strChannel.IsEmpty()) break;
- Channel.FromString(strChannel);
- DVBChannels.AddTail (Channel);
- }
-
- // Position de lecture des derniers DVD's
- fRememberDVDPos = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_DVDPOS, 0);
- nCurrentDvdPosition = -1;
- memset (DvdPosition, 0, sizeof(DvdPosition));
- for (int i=0; i<MAX_DVD_POSITION; i++)
- {
- CString strDVDPos;
- CString strValue;
-
- strDVDPos.Format (_T("DVD Position %d"), i);
- strValue = pApp->GetProfileString(IDS_R_SETTINGS, strDVDPos, _T(""));
- if (strValue.GetLength()/2 == sizeof(DVD_POSITION))
- {
- DeserializeHex(strValue, (BYTE*)&DvdPosition[i], sizeof(DVD_POSITION));
- }
- }
-
- // Position de lecture des derniers fichiers
- fRememberFilePos = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_FILEPOS, 0);
- nCurrentFilePosition = -1;
- for (int i=0; i<MAX_FILE_POSITION; i++)
- {
- CString strFilePos;
- CString strValue;
-
- strFilePos.Format (_T("File Name %d"), i);
- FilePosition[i].strFile = pApp->GetProfileString(IDS_R_SETTINGS, strFilePos, _T(""));
-
- strFilePos.Format (_T("File Position %d"), i);
- strValue = pApp->GetProfileString(IDS_R_SETTINGS, strFilePos, _T(""));
- FilePosition[i].llPosition = _tstoi64 (strValue);
- }
-
- fLastFullScreen = !!pApp->GetProfileInt(IDS_R_SETTINGS, IDS_RS_LASTFULLSCREEN, 0);
-
- // CASIMIR666 : fin nouveaux settings
-
- // TODO: sort shaders by label
-
- m_shadercombine = pApp->GetProfileString(_T("Shaders"), _T("Combine"), _T(""));
- m_shadercombineScreenSpace = pApp->GetProfileString(_T("Shaders"), _T("CombineScreenSpace"), _T(""));
-
- if(launchfullscreen) nCLSwitches |= CLSW_FULLSCREEN;
-
- fInitialized = true;
- }
-}
-
-void CMPlayerCApp::Settings::SaveCurrentFilePosition( )
-{
- CWinApp* pApp = AfxGetApp();
- CString strFilePos;
- CString strValue;
- int i = nCurrentFilePosition;
-
- strFilePos.Format (_T("File Name %d"), i);
- pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, FilePosition[i].strFile);
- strFilePos.Format (_T("File Position %d"), i);
- strValue.Format (_T("%I64d"), FilePosition[i].llPosition);
- pApp->WriteProfileString(IDS_R_SETTINGS, strFilePos, strValue);
-}
-
-void CMPlayerCApp::Settings::SaveCurrentDVDPosition( )
-{
- CWinApp* pApp = AfxGetApp();
- CString strDVDPos;
- CString strValue;
- int i = nCurrentDvdPosition;
-
- strDVDPos.Format (_T("DVD Position %d"), i);
- strValue = SerializeHex((BYTE*)&DvdPosition[i], sizeof(DVD_POSITION));
- pApp->WriteProfileString(IDS_R_SETTINGS, strDVDPos, strValue);
-}
-
-__int64 CMPlayerCApp::Settings::ConvertTimeToMSec(CString& time)
-{
- __int64 Sec = 0;
- __int64 mSec = 0;
- __int64 mult = 1;
-
- int pos = time.GetLength() - 1;
- if (pos < 3) return 0;
-
- while (pos >= 0)
- {
- TCHAR ch = time[pos];
- if (ch == '.')
- {
- mSec = Sec * 1000 / mult;
- Sec = 0;
- mult = 1;
- }
- else if (ch == ':')
- {
- mult = mult * 6 / 10;
- }
- else if (ch >= '0' && ch <= '9')
- {
- Sec += (ch - '0') * mult;
- mult *= 10;
- }
- else
- {
- mSec = Sec = 0;
- break;
- }
- pos--;
- }
- return Sec*1000 + mSec;
-}
-
-void CMPlayerCApp::Settings::ExtractDVDStartPos(CString& strParam)
-{
- int i = 0, j = 0;
- for(CString token = strParam.Tokenize(_T("#"), i);
- j < 3 && !token.IsEmpty();
- token = strParam.Tokenize(_T("#"), i), j++)
- {
- switch (j)
- {
- case 0 :
- lDVDTitle = token.IsEmpty() ? 0 : (ULONG)_wtol(token);
- break;
- case 1 :
- if (token.Find(':') >0)
- {
- _stscanf_s(token, _T("%02d:%02d:%02d.%03d"), &DVDPosition.bHours, &DVDPosition.bMinutes, &DVDPosition.bSeconds, &DVDPosition.bFrames);
- /* Hack by Ron. If bFrames >= 30, PlayTime commands fail due to invalid arg */
- DVDPosition.bFrames = 0;
- }
- else
- lDVDChapter = token.IsEmpty() ? 0 : (ULONG)_wtol(token);
- break;
- }
- }
-}
-
-void CMPlayerCApp::Settings::ParseCommandLine(CAtlList<CString>& cmdln)
-{
- nCLSwitches = 0;
- slFiles.RemoveAll();
- slDubs.RemoveAll();
- slSubs.RemoveAll();
- slFilters.RemoveAll();
- rtStart = 0;
- rtShift = 0;
- lDVDTitle = 0;
- lDVDChapter = 0;
- memset (&DVDPosition, 0, sizeof(DVDPosition));
- iAdminOption=0;
- fixedWindowSize.SetSize(0, 0);
- iMonitor = 0;
- hMasterWnd = 0;
- sPnSPreset.Empty();
-
- POSITION pos = cmdln.GetHeadPosition();
- while(pos)
- {
- CString param = cmdln.GetNext(pos);
- if(param.IsEmpty()) continue;
-
- if((param[0] == '-' || param[0] == '/') && param.GetLength() > 1)
- {
- CString sw = param.Mid(1).MakeLower();
- if(sw == _T("open")) nCLSwitches |= CLSW_OPEN;
- else if(sw == _T("play")) nCLSwitches |= CLSW_PLAY;
- else if(sw == _T("fullscreen")) nCLSwitches |= CLSW_FULLSCREEN;
- else if(sw == _T("minimized")) nCLSwitches |= CLSW_MINIMIZED;
- else if(sw == _T("new")) nCLSwitches |= CLSW_NEW;
- else if(sw == _T("help") || sw == _T("h") || sw == _T("?")) nCLSwitches |= CLSW_HELP;
- else if(sw == _T("dub") && pos) slDubs.AddTail(cmdln.GetNext(pos));
- else if(sw == _T("dubdelay") && pos)
- {
- CString strFile = cmdln.GetNext(pos);
- int nPos = strFile.Find (_T("DELAY"));
- if (nPos != -1)
- rtShift = 10000 * _tstol(strFile.Mid(nPos + 6));
- slDubs.AddTail(strFile);
- }
- else if(sw == _T("sub") && pos) slSubs.AddTail(cmdln.GetNext(pos));
- else if(sw == _T("filter") && pos) slFilters.AddTail(cmdln.GetNext(pos));
- else if(sw == _T("dvd")) nCLSwitches |= CLSW_DVD;
- else if(sw == _T("dvdpos")) ExtractDVDStartPos(cmdln.GetNext(pos));
- else if(sw == _T("cd")) nCLSwitches |= CLSW_CD;
- else if(sw == _T("add")) nCLSwitches |= CLSW_ADD;
- else if(sw == _T("regvid")) nCLSwitches |= CLSW_REGEXTVID;
- else if(sw == _T("regaud")) nCLSwitches |= CLSW_REGEXTAUD;
- else if(sw == _T("unregall")) nCLSwitches |= CLSW_UNREGEXT;
- else if(sw == _T("unregvid")) nCLSwitches |= CLSW_UNREGEXT; /* keep for compatibility with old versions */
- else if(sw == _T("unregaud")) nCLSwitches |= CLSW_UNREGEXT; /* keep for compatibility with old versions */
- else if(sw == _T("start") && pos)
- {
- rtStart = 10000i64*_tcstol(cmdln.GetNext(pos), NULL, 10);
- nCLSwitches |= CLSW_STARTVALID;
- }
- else if(sw == _T("startpos") && pos)
- {
- rtStart = 10000i64 * ConvertTimeToMSec(cmdln.GetNext(pos));
- nCLSwitches |= CLSW_STARTVALID;
- }
- else if(sw == _T("nofocus")) nCLSwitches |= CLSW_NOFOCUS;
- else if(sw == _T("close")) nCLSwitches |= CLSW_CLOSE;
- else if(sw == _T("standby")) nCLSwitches |= CLSW_STANDBY;
- else if(sw == _T("hibernate")) nCLSwitches |= CLSW_HIBERNATE;
- else if(sw == _T("shutdown")) nCLSwitches |= CLSW_SHUTDOWN;
- else if(sw == _T("logoff")) nCLSwitches |= CLSW_LOGOFF;
- else if(sw == _T("d3dfs")) nCLSwitches |= CLSW_D3DFULLSCREEN;
- else if(sw == _T("adminoption"))
- {
- nCLSwitches |= CLSW_ADMINOPTION;
- iAdminOption = _ttoi (cmdln.GetNext(pos));
- }
- else if(sw == _T("slave"))
- {
- nCLSwitches |= CLSW_SLAVE;
- hMasterWnd = (HWND)_ttol (cmdln.GetNext(pos));
- }
- else if(sw == _T("fixedsize") && pos)
- {
- CAtlList<CString> sl;
- Explode(cmdln.GetNext(pos), sl, ',', 2);
- if(sl.GetCount() == 2)
- {
- fixedWindowSize.SetSize(_ttol(sl.GetHead()), _ttol(sl.GetTail()));
- if(fixedWindowSize.cx > 0 && fixedWindowSize.cy > 0)
- nCLSwitches |= CLSW_FIXEDSIZE;
- }
- }
- else if(sw == _T("monitor") && pos)
- {
- iMonitor = _tcstol(cmdln.GetNext(pos), NULL, 10);
- nCLSwitches |= CLSW_MONITOR;
- }
- else if(sw == _T("minidump"))
- {
- CMiniDump::Enable();
- }
- else if(sw == _T("pns")) sPnSPreset = cmdln.GetNext(pos);
- else if(sw == _T("webport") && pos)
- {
- int tmpport = _tcstol(cmdln.GetNext(pos), NULL, 10);
- if ( tmpport >= 0 && tmpport <= 65535 )
- nCmdlnWebServerPort = tmpport;
- }
- else if(sw == _T("debug"))
- {
- ShowDebugInfo = true;
- }
- else if(sw == _T("audiorenderer") && pos)
- {
- SetAudioRender(_ttoi(cmdln.GetNext(pos)));
- }
- else nCLSwitches |= CLSW_HELP|CLSW_UNRECOGNIZEDSWITCH;
- }
- else
- {
- slFiles.AddTail(param);
- }
- }
-}
-
-void CMPlayerCApp::Settings::GetFav(favtype ft, CAtlList<CString>& sl)
-{
- sl.RemoveAll();
-
- CString root;
-
- switch(ft)
- {
- case FAV_FILE:
- root = IDS_R_FAVFILES;
- break;
- case FAV_DVD:
- root = IDS_R_FAVDVDS;
- break;
- case FAV_DEVICE:
- root = IDS_R_FAVDEVICES;
- break;
- default:
- return;
- }
-
- for(int i = 0; ; i++)
- {
- CString s;
- s.Format(_T("Name%d"), i);
- s = AfxGetApp()->GetProfileString(root, s, NULL);
- if(s.IsEmpty()) break;
- sl.AddTail(s);
- }
-}
-
-void CMPlayerCApp::Settings::SetFav(favtype ft, CAtlList<CString>& sl)
-{
- CString root;
-
- switch(ft)
- {
- case FAV_FILE:
- root = IDS_R_FAVFILES;
- break;
- case FAV_DVD:
- root = IDS_R_FAVDVDS;
- break;
- case FAV_DEVICE:
- root = IDS_R_FAVDEVICES;
- break;
- default:
- return;
- }
-
- AfxGetApp()->WriteProfileString(root, NULL, NULL);
-
- int i = 0;
- POSITION pos = sl.GetHeadPosition();
- while(pos)
- {
- CString s;
- s.Format(_T("Name%d"), i++);
- AfxGetApp()->WriteProfileString(root, s, sl.GetNext(pos));
- }
-}
-
-void CMPlayerCApp::Settings::AddFav(favtype ft, CString s)
-{
- CAtlList<CString> sl;
- GetFav(ft, sl);
- if(sl.Find(s)) return;
- sl.AddTail(s);
- SetFav(ft, sl);
-}
-
-CDVBChannel* CMPlayerCApp::Settings::FindChannelByPref(int nPrefNumber)
-{
- POSITION pos = DVBChannels.GetHeadPosition();
- while (pos)
- {
- CDVBChannel& Channel = DVBChannels.GetNext (pos);
- if (Channel.GetPrefNumber() == nPrefNumber)
- {
- return &Channel;
- }
- }
-
- return NULL;
-}
-
-// CMPlayerCApp::Settings::CRecentFileAndURLList
-
-CMPlayerCApp::Settings::CRecentFileAndURLList::CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
- LPCTSTR lpszEntryFormat, int nSize,
- int nMaxDispLen)
- : CRecentFileList(nStart, lpszSection, lpszEntryFormat, nSize, nMaxDispLen)
-{
-}
-
-//#include <afximpl.h>
-extern BOOL AFXAPI AfxFullPath(LPTSTR lpszPathOut, LPCTSTR lpszFileIn);
-extern BOOL AFXAPI AfxComparePath(LPCTSTR lpszPath1, LPCTSTR lpszPath2);
-
-void CMPlayerCApp::Settings::CRecentFileAndURLList::Add(LPCTSTR lpszPathName)
-{
- ASSERT(m_arrNames != NULL);
- ASSERT(lpszPathName != NULL);
- ASSERT(AfxIsValidString(lpszPathName));
-
- if(CString(lpszPathName).MakeLower().Find(_T("@device:")) >= 0)
- return;
-
- bool fURL = (CString(lpszPathName).Find(_T("://")) >= 0);
-
- // fully qualify the path name
- TCHAR szTemp[1024];
- if(fURL) _tcscpy_s(szTemp, lpszPathName);
- else AfxFullPath(szTemp, lpszPathName);
-
- // update the MRU list, if an existing MRU string matches file name
- int iMRU;
- for (iMRU = 0; iMRU < m_nSize-1; iMRU++)
- {
- if((fURL && !_tcscmp(m_arrNames[iMRU], szTemp))
- || AfxComparePath(m_arrNames[iMRU], szTemp))
- break; // iMRU will point to matching entry
- }
- // move MRU strings before this one down
- for (; iMRU > 0; iMRU--)
- {
- ASSERT(iMRU > 0);
- ASSERT(iMRU < m_nSize);
- m_arrNames[iMRU] = m_arrNames[iMRU-1];
- }
- // place this one at the beginning
- m_arrNames[0] = szTemp;
-}
-
-
void CMPlayerCApp::OnHelpShowcommandlineswitches()
{
ShowCmdlnSwitches();
@@ -3153,7 +1510,7 @@ void SetDispMode(dispmode& dm, CString& DisplayName)
ChangeDisplaySettingsEx(DisplayName1, &dmScreenSettings, NULL, NULL, NULL);
}
-void SetAudioRender(int AudioDevNo)
+void SetAudioRenderer(int AudioDevNo)
{
CStringArray m_AudioRendererDisplayNames;
AfxGetMyApp()->m_AudioRendererDisplayName_CL = _T("");
@@ -3546,15 +1903,15 @@ LPCTSTR CMPlayerCApp::GetSatelliteDll(int nLanguage)
return _T("mpcresources.it.dll");
case 12 : // Slovak
return _T("mpcresources.sk.dll");
- case 13 : // Chinese (simplified)
+ case 13 : // Chinese (Simplified)
return _T("mpcresources.sc.dll");
- case 14 : // Chinese (traditional)
+ case 14 : // Chinese (Traditional)
return _T("mpcresources.tc.dll");
case 15 : // Belarusian
return _T("mpcresources.by.dll");
case 16 : // Swedish
return _T("mpcresources.sv.dll");
- case 17 : // Portuguese (brasil)
+ case 17 : // Portuguese (Brasil)
return _T("mpcresources.br.dll");
case 18 : // Dutch
return _T("mpcresources.nl.dll");
@@ -3631,14 +1988,20 @@ void CMPlayerCApp::SetLanguage (int nLanguage)
{
strSatVersion = Version.GetFileVersionEx();
- if ( strSatVersion == _T("1.3.0.0") )
+ CString needVersion = L"";
+ needVersion += MAKE_STR(VERSION_MAJOR);
+ needVersion += L".";
+ needVersion += MAKE_STR(VERSION_MINOR);
+ needVersion += L".0.0";
+
+ if ( strSatVersion == needVersion )
{
hMod = LoadLibrary( strSatellite );
s.iLanguage = nLanguage;
}
else
{
- // This message should stay in english!
+ // This message should stay in English!
MessageBox(NULL, _T("Your language pack will not work with this version. Please download a compatible one from the MPC-HC homepage."),
_T("Media Player Classic - Home Cinema"), MB_OK);
}
diff --git a/src/apps/mplayerc/mplayerc.h b/src/apps/mplayerc/mplayerc.h
index 63d435d31..3d6953315 100644
--- a/src/apps/mplayerc/mplayerc.h
+++ b/src/apps/mplayerc/mplayerc.h
@@ -36,8 +36,12 @@
#include "DVBChannel.h"
#include "RenderersSettings.h"
+#include "AppSettings.h"
#define MPC_WND_CLASS_NAME L"MediaPlayerClassicW"
+//define the default logo we use
+#define DEF_LOGO IDF_LOGO1
+
enum
{
WM_GRAPHNOTIFY = WM_RESET_DEVICE+1,
@@ -57,7 +61,7 @@ extern HICON LoadIcon(CString fn, bool fSmall);
extern bool LoadType(CString fn, CString& type);
extern bool LoadResource(UINT resid, CStringA& str, LPCTSTR restype);
extern CStringA GetContentType(CString fn, CAtlList<CString>* redir = NULL);
-extern bool IsVistaOrAbove();
+extern "C" BOOL IsVistaOrAbove();
/////////////////////////////////////////////////////////////////////////////
// Casimir666
@@ -80,334 +84,16 @@ typedef struct // _VMR9ProcAmpControlRange
float StepSize;
} COLORPROPERTY_RANGE;
-#define MAX_DVD_POSITION 20
-typedef struct
-{
- ULONGLONG llDVDGuid;
- ULONG lTitle;
- DVD_HMSF_TIMECODE Timecode;
-} DVD_POSITION;
-
-#define MAX_FILE_POSITION 20
-typedef struct
-{
- CString strFile;
- LONGLONG llPosition;
-} FILE_POSITION;
-
-
/////////////////////////////////////////////////////////////////////////////
// CMPlayerCApp:
// See mplayerc.cpp for the implementation of this class
//
-// flags for AppSettings::nCS
-enum
-{
- CS_NONE=0,
- CS_SEEKBAR=1,
- CS_TOOLBAR=CS_SEEKBAR<<1,
- CS_INFOBAR=CS_TOOLBAR<<1,
- CS_STATSBAR=CS_INFOBAR<<1,
- CS_STATUSBAR=CS_STATSBAR<<1,
- CS_LAST=CS_STATUSBAR
-};
-
-enum
-{
- CLSW_NONE=0,
- CLSW_OPEN=1,
- CLSW_PLAY=CLSW_OPEN<<1,
- CLSW_CLOSE=CLSW_PLAY<<1,
- CLSW_STANDBY=CLSW_CLOSE<<1,
- CLSW_HIBERNATE=CLSW_STANDBY<<1,
- CLSW_SHUTDOWN=CLSW_HIBERNATE<<1,
- CLSW_LOGOFF=CLSW_SHUTDOWN<<1,
- CLSW_AFTERPLAYBACK_MASK=CLSW_CLOSE|CLSW_STANDBY|CLSW_SHUTDOWN|CLSW_HIBERNATE|CLSW_LOGOFF,
- CLSW_FULLSCREEN=CLSW_LOGOFF<<1,
- CLSW_NEW=CLSW_FULLSCREEN<<1,
- CLSW_HELP=CLSW_NEW<<1,
- CLSW_DVD=CLSW_HELP<<1,
- CLSW_CD=CLSW_DVD<<1,
- CLSW_ADD=CLSW_CD<<1,
- CLSW_MINIMIZED=CLSW_ADD<<1,
- CLSW_REGEXTVID=CLSW_MINIMIZED<<1, // 16
- CLSW_REGEXTAUD=CLSW_REGEXTVID<<1,
- CLSW_UNREGEXT=CLSW_REGEXTAUD<<1,
- CLSW_STARTVALID=CLSW_UNREGEXT<<2,
- CLSW_NOFOCUS=CLSW_STARTVALID<<1,
- CLSW_FIXEDSIZE=CLSW_NOFOCUS<<1,
- CLSW_MONITOR=CLSW_FIXEDSIZE<<1,
- CLSW_D3DFULLSCREEN=CLSW_MONITOR<<1,
- CLSW_ADMINOPTION=CLSW_D3DFULLSCREEN<<1,
- CLSW_SLAVE=CLSW_ADMINOPTION<<1,
- CLSW_AUDIORENDER=CLSW_SLAVE<<1,
- CLSW_UNRECOGNIZEDSWITCH=CLSW_AUDIORENDER<<1
-};
-
-enum
-{
- VIDRNDT_DS_DEFAULT,
- VIDRNDT_DS_OLDRENDERER,
- VIDRNDT_DS_OVERLAYMIXER,
- VIDRNDT_DS_VMR7WINDOWED,
- VIDRNDT_DS_VMR9WINDOWED,
- VIDRNDT_DS_VMR7RENDERLESS,
- VIDRNDT_DS_VMR9RENDERLESS,
- VIDRNDT_DS_DXR,
- VIDRNDT_DS_NULL_COMP,
- VIDRNDT_DS_NULL_UNCOMP,
- VIDRNDT_DS_EVR,
- VIDRNDT_DS_EVR_CUSTOM,
- VIDRNDT_DS_MADVR,
- VIDRNDT_DS_SYNC
-};
-
-// Enumeration for MCE remotecontrol (careful : add 0x010000 for all keys!)
-enum MCE_RAW_INPUT
-{
- MCE_DETAILS = 0x010209,
- MCE_GUIDE = 0x01008D,
- MCE_TVJUMP = 0x010025,
- MCE_STANDBY = 0x010082,
- MCE_OEM1 = 0x010080,
- MCE_OEM2 = 0x010081,
- MCE_MYTV = 0x010046,
- MCE_MYVIDEOS = 0x01004A,
- MCE_MYPICTURES = 0x010049,
- MCE_MYMUSIC = 0x010047,
- MCE_RECORDEDTV = 0x010048,
- MCE_DVDANGLE = 0x01004B,
- MCE_DVDAUDIO = 0x01004C,
- MCE_DVDMENU = 0x010024,
- MCE_DVDSUBTITLE = 0x01004D,
- MCE_RED = 0x01005B,
- MCE_GREEN = 0x01005C,
- MCE_YELLOW = 0x01005D,
- MCE_BLUE = 0x01005E,
- MCE_MEDIA_NEXTTRACK = 0x0100B5,
- MCE_MEDIA_PREVIOUSTRACK = 0x0100B6,
-};
-
-
-#define AUDRNDT_NULL_COMP _T("Null Audio Renderer (Any)")
-#define AUDRNDT_NULL_UNCOMP _T("Null Audio Renderer (Uncompressed)")
-#define AUDRNDT_MPC _T("MPC Audio Renderer")
-
-enum
-{
- SRC_CDDA = 1,
- SRC_CDXA = SRC_CDDA<<1,
- SRC_VTS = SRC_CDXA<<1,
- SRC_FLIC = SRC_VTS<<1,
- SRC_D2V = SRC_FLIC<<1,
- SRC_DTSAC3 = SRC_D2V<<1,
- SRC_MATROSKA = SRC_DTSAC3<<1,
- SRC_SHOUTCAST = SRC_MATROSKA<<1,
- SRC_REALMEDIA = SRC_SHOUTCAST<<1,
- SRC_AVI = SRC_REALMEDIA<<1,
- SRC_ROQ = SRC_AVI<<1,
- SRC_OGG = SRC_ROQ<<1,
- SRC_NUT = SRC_OGG<<1,
- SRC_MPEG = SRC_NUT<<1,
- SRC_DIRAC = SRC_MPEG<<1,
- SRC_MPA = SRC_DIRAC<<1,
- SRC_DSM = SRC_MPA<<1,
- SRC_SUBS = SRC_DSM<<1,
- SRC_MP4 = SRC_SUBS<<1,
- SRC_FLV = SRC_MP4<<1,
- SRC_FLAC = SRC_FLV<<1,
- SRC_LAST = SRC_FLAC<<1
-};
-
-enum
-{
- TRA_MPEG1 = 1,
- TRA_MPEG2 = TRA_MPEG1<<1,
- TRA_RV = TRA_MPEG2<<1,
- TRA_RA = TRA_RV<<1,
- TRA_MPA = TRA_RA<<1,
- TRA_LPCM = TRA_MPA<<1,
- TRA_AC3 = TRA_LPCM<<1,
- TRA_DTS = TRA_AC3<<1,
- TRA_AAC = TRA_DTS<<1,
- TRA_PS2AUD = TRA_AAC<<1,
- TRA_DIRAC = TRA_PS2AUD<<1,
- TRA_VORBIS = TRA_DIRAC<<1,
- TRA_FLAC = TRA_VORBIS<<1,
- TRA_NELLY = TRA_FLAC<<1,
- TRA_AMR = TRA_NELLY<<1,
- TRA_PCM = TRA_AMR<<1,
- TRA_LAST = TRA_PCM<<1
-};
-
-enum
-{
- DXVA_H264 = 1,
- DXVA_VC1 = DXVA_H264<<1,
- DXVA_MPEG2 = DXVA_VC1<<1,
- DXVA_LAST = DXVA_MPEG2<<1
-};
-
-enum
-{
- FFM_H264 = 1,
- FFM_VC1 = FFM_H264<<1,
- FFM_FLV4 = FFM_VC1<<1,
- FFM_VP62 = FFM_FLV4<<1,
- FFM_VP8 = FFM_VP62<<1,
- FFM_XVID = FFM_VP8<<1,
- FFM_DIVX = FFM_XVID<<1,
- FFM_MSMPEG4 = FFM_DIVX<<1,
- FFM_WMV = FFM_MSMPEG4<<1,
- FFM_SVQ3 = FFM_WMV<<1,
- FFM_H263 = FFM_SVQ3<<1,
- FFM_THEORA = FFM_H263<<1,
- FFM_AMVV = FFM_THEORA<<1,
- FFM_LAST = FFM_AMVV<<1
-};
-
-typedef enum
-{
- DVS_HALF,
- DVS_NORMAL,
- DVS_DOUBLE,
- DVS_STRETCH,
- DVS_FROMINSIDE,
- DVS_FROMOUTSIDE,
- DVS_ZOOM1,
- DVS_ZOOM2
-} dvstype;
-
-typedef enum
-{
- FAV_FILE,
- FAV_DVD,
- FAV_DEVICE
-} favtype;
-
-#pragma pack(push, 1)
-typedef struct
-{
- bool fValid;
- CSize size;
- int bpp, freq;
- DWORD dmDisplayFlags;
-} dispmode;
-typedef struct
-{
- bool bEnabled;
- dispmode dmFullscreenRes24Hz;
- dispmode dmFullscreenRes25Hz;
- dispmode dmFullscreenRes30Hz;
- dispmode dmFullscreenResOther;
- bool bApplyDefault;
- dispmode dmFullscreenRes23d976Hz;
- dispmode dmFullscreenRes29d97Hz;
-} AChFR; //AutoChangeFullscrRes
-
-class wmcmd : public ACCEL
-{
- ACCEL backup;
- UINT appcmdorg;
- UINT mouseorg;
-public:
- DWORD dwname;
- UINT appcmd;
- enum {NONE,LDOWN,LUP,LDBLCLK,MDOWN,MUP,MDBLCLK,RDOWN,RUP,RDBLCLK,X1DOWN,X1UP,X1DBLCLK,X2DOWN,X2UP,X2DBLCLK,WUP,WDOWN,LAST};
- UINT mouse;
- CStringA rmcmd;
- int rmrepcnt;
- wmcmd(WORD cmd = 0)
- {
- this->cmd = cmd;
- }
- wmcmd(WORD cmd, WORD key, BYTE fVirt, DWORD dwname, UINT appcmd = 0, UINT mouse = NONE, LPCSTR rmcmd = "", int rmrepcnt = 5)
- {
- this->cmd = cmd;
- this->key = key;
- this->fVirt = fVirt;
- this->appcmd = appcmdorg = appcmd;
- this->dwname = dwname;
- this->mouse = mouseorg = mouse;
- this->rmcmd = rmcmd;
- this->rmrepcnt = rmrepcnt;
- backup = *this;
- }
- bool operator == (const wmcmd& wc) const
- {
- return(cmd > 0 && cmd == wc.cmd);
- }
-
- CString GetName()
- {
- return ResStr (dwname);
- }
- void Restore()
- {
- *(ACCEL*)this = backup;
- appcmd = appcmdorg;
- mouse = mouseorg;
- rmcmd.Empty();
- rmrepcnt = 5;
- }
- bool IsModified()
- {
- return(memcmp((const ACCEL*)this, &backup, sizeof(ACCEL)) || appcmd != appcmdorg || mouse != mouseorg || !rmcmd.IsEmpty() || rmrepcnt != 5);
- }
-};
-#pragma pack(pop)
-
-#include <afxsock.h>
-
-class CRemoteCtrlClient : public CAsyncSocket
-{
-protected:
- CCritSec m_csLock;
- CWnd* m_pWnd;
- enum {DISCONNECTED, CONNECTED, CONNECTING} m_nStatus;
- CString m_addr;
-
- virtual void OnConnect(int nErrorCode);
- virtual void OnClose(int nErrorCode);
- virtual void OnReceive(int nErrorCode);
-
- virtual void OnCommand(CStringA str) = 0;
-
- void ExecuteCommand(CStringA cmd, int repcnt);
-
-public:
- CRemoteCtrlClient();
- void SetHWND(HWND hWnd);
- void Connect(CString addr);
- int GetStatus()
- {
- return(m_nStatus);
- }
-};
-
-class CWinLircClient : public CRemoteCtrlClient
-{
-protected:
- virtual void OnCommand(CStringA str);
-
-public:
- CWinLircClient();
-};
-
-class CUIceClient : public CRemoteCtrlClient
-{
-protected:
- virtual void OnCommand(CStringA str);
-
-public:
- CUIceClient();
-};
extern void GetCurDispMode(dispmode& dm, CString& DisplayName);
extern bool GetDispMode(int i, dispmode& dm, CString& DisplayName);
extern void SetDispMode(dispmode& dm, CString& DisplayName);
-extern void SetAudioRender(int AudioDevNo);
+extern void SetAudioRenderer(int AudioDevNo);
extern void SetHandCursor(HWND m_hWnd, UINT nID);
@@ -443,6 +129,8 @@ public:
CString m_strVersion;
CString m_AudioRendererDisplayName_CL;
+ CAppSettings m_s;
+
typedef UINT (*PTR_GetRemoteControlCode)(UINT nInputcode, HRAWINPUT hRawInput);
PTR_GetRemoteControlCode GetRemoteControlCode;
@@ -467,277 +155,6 @@ public:
// Implementation
- class Settings
- {
- friend class CMPlayerCApp;
-
- bool fInitialized;
-
- class CRecentFileAndURLList : public CRecentFileList
- {
- public:
- CRecentFileAndURLList(UINT nStart, LPCTSTR lpszSection,
- LPCTSTR lpszEntryFormat, int nSize,
- int nMaxDispLen = AFX_ABBREV_FILENAME_LEN);
-
- virtual void Add(LPCTSTR lpszPathName); // we have to override CRecentFileList::Add because the original version can't handle URLs
- };
-
- public:
- // cmdline params
- int nCLSwitches;
- CAtlList<CString> slFiles, slDubs, slSubs, slFilters;
-
- // Initial position (used by command line flags)
- __int64 rtShift;
- __int64 rtStart;
- ULONG lDVDTitle;
- ULONG lDVDChapter;
- DVD_HMSF_TIMECODE DVDPosition;
-
- CSize fixedWindowSize;
- bool HasFixedWindowSize() const
- {
- return fixedWindowSize.cx > 0 || fixedWindowSize.cy > 0;
- }
- // int iFixedWidth, iFixedHeight;
- int iMonitor;
-
- CString sPnSPreset;
-
- void ParseCommandLine(CAtlList<CString>& cmdln);
-
- // Added a Debug display to the screen (/debug option)
- bool ShowDebugInfo;
-
- bool fXpOrBetter;
- int iDXVer;
- int iAdminOption;
-
- int nCS;
- bool fHideCaptionMenu;
- bool fHideNavigation;
- int iDefaultVideoSize;
- bool fKeepAspectRatio;
- bool fCompMonDeskARDiff;
-
- CRecentFileAndURLList MRU;
- CRecentFileAndURLList MRUDub;
-
- CAutoPtrList<FilterOverride> filters;
-
- CRenderersSettings m_RenderersSettings;
-
- int iDSVideoRendererType;
- int iRMVideoRendererType;
- int iQTVideoRendererType;
-
- int nVolume;
- int nBalance;
- bool fMute;
- int nLoops;
- bool fLoopForever;
- bool fRewind;
- int iZoomLevel;
- // int iVideoRendererType;
- CStringW AudioRendererDisplayName;
- bool fAutoloadAudio;
- bool fAutoloadSubtitles;
- bool fBlockVSFilter;
- bool fEnableWorkerThreadForOpening;
- bool fReportFailedPins;
-
- CStringW f_hmonitor;
- bool fAssociatedWithIcons;
- CStringW f_lastOpenDir;
-
- bool fAllowMultipleInst;
- int iTitleBarTextStyle;
- bool fTitleBarTextTitle;
- int iOnTop;
- bool fTrayIcon;
- bool fRememberZoomLevel;
- bool fShowBarsWhenFullScreen;
- int nShowBarsWhenFullScreenTimeOut;
- AChFR AutoChangeFullscrRes;
- bool fExitFullScreenAtTheEnd;
- bool fRestoreResAfterExit;
- bool fRememberWindowPos;
- bool fRememberWindowSize;
- bool fSnapToDesktopEdges;
- CRect rcLastWindowPos;
- UINT lastWindowType;
- CSize AspectRatio;
- bool fKeepHistory;
-
- CString sDVDPath;
- bool fUseDVDPath;
- LCID idMenuLang, idAudioLang, idSubtitlesLang;
- bool fAutoSpeakerConf;
-
- STSStyle subdefstyle;
- bool fOverridePlacement;
- int nHorPos, nVerPos;
- int nSubDelayInterval;
- bool fEnableSubtitles;
- bool fUseDefaultSubtitlesStyle;
-
- bool fDisableXPToolbars;
- bool fUseWMASFReader;
- int nJumpDistS;
- int nJumpDistM;
- int nJumpDistL;
- bool fLimitWindowProportions;
- bool fNotifyMSN;
- bool fNotifyGTSdll;
-
- bool fEnableAudioSwitcher;
- bool fDownSampleTo441;
- bool fAudioTimeShift;
- int tAudioTimeShift;
- bool fCustomChannelMapping;
- DWORD pSpeakerToChannelMap[18][18];
- bool fAudioNormalize;
- bool fAudioNormalizeRecover;
- float AudioBoost;
-
- bool fIntRealMedia;
- //bool fRealMediaRenderless;
- int iQuickTimeRenderer;
- float RealMediaQuickTimeFPS;
-
- CStringArray m_pnspresets;
-
- CList<wmcmd> wmcmds;
- HACCEL hAccel;
-
- bool fWinLirc;
- CString WinLircAddr;
- CWinLircClient WinLircClient;
- bool fUIce;
- CString UIceAddr;
- CUIceClient UIceClient;
- bool fGlobalMedia;
-
- CMediaFormats Formats;
-
- UINT SrcFilters, TraFilters, DXVAFilters, FFmpegFilters;
-
- CString logofn;
- UINT logoid;
- bool logoext;
-
- bool fHideCDROMsSubMenu;
-
- DWORD priority;
- bool launchfullscreen;
-
- BOOL fEnableWebServer;
- int nWebServerPort;
- int nCmdlnWebServerPort;
- bool fWebServerPrintDebugInfo;
- bool fWebServerUseCompression;
- bool fWebServerLocalhostOnly;
- CString WebRoot, WebDefIndex;
- CString WebServerCGI;
-
- CString SnapShotPath, SnapShotExt;
- int ThumbRows, ThumbCols, ThumbWidth;
-
- CString ISDb;
-
- struct Shader
- {
- CString label;
- CString target;
- CString srcdata;
- };
- CAtlList<Shader> m_shaders;
- CString m_shadercombine;
- CString m_shadercombineScreenSpace;
-
- // === CASIMIR666 : nouveau settings
- bool fD3DFullscreen;
- bool fMonitorAutoRefreshRate;
- bool fLastFullScreen;
- bool fEnableEDLEditor;
- float dBrightness;
- float dContrast;
- float dHue;
- float dSaturation;
- CString strShaderList;
- CString strShaderListScreenSpace;
- bool m_bToggleShader;
- bool m_bToggleShaderScreenSpace;
-
- bool fRememberDVDPos;
- bool fRememberFilePos;
- bool fShowOSD;
- int iLanguage;
-
- // BDA configuration
- int iDefaultCaptureDevice; // Default capture device (analog=0, 1=digital)
- CString strAnalogVideo;
- CString strAnalogAudio;
- int iAnalogCountry;
- CString BDANetworkProvider;
- CString BDATuner;
- CString BDAReceiver;
- int DVBLastChannel;
- CAtlList<CDVBChannel> DVBChannels;
-
-
- HWND hMasterWnd;
-
- bool IsD3DFullscreen();
- CString SelectedAudioRender();
- void ResetPositions();
- DVD_POSITION* CurrentDVDPosition();
- bool NewDvd(ULONGLONG llDVDGuid);
- FILE_POSITION* CurrentFilePosition();
- bool NewFile(LPCTSTR strFileName);
-
- void SaveCurrentDVDPosition();
- void SaveCurrentFilePosition();
-
- void DeserializeHex (LPCTSTR strVal, BYTE* pBuffer, int nBufSize);
- CString SerializeHex (BYTE* pBuffer, int nBufSize);
-
- private :
- DVD_POSITION DvdPosition[MAX_DVD_POSITION];
- int nCurrentDvdPosition;
- FILE_POSITION FilePosition[MAX_FILE_POSITION];
- int nCurrentFilePosition;
-
- __int64 ConvertTimeToMSec(CString& time);
- void ExtractDVDStartPos(CString& strParam);
-
- void CreateCommands();
- public:
- Settings();
- virtual ~Settings();
- void UpdateData(bool fSave);
-
- void GetFav(favtype ft, CAtlList<CString>& sl);
- void SetFav(favtype ft, CAtlList<CString>& sl);
- void AddFav(favtype ft, CString s);
- CDVBChannel* FindChannelByPref(int nPrefNumber);
-
- bool m_fPreventMinimize;
- bool m_fUseWin7TaskBar;
- bool m_fExitAfterPlayback;
- bool m_fNextInDirAfterPlayback;
- bool m_fDontUseSearchInFolder;
- int nOSD_Size;
- CString m_OSD_Font;
- CStringW m_subtitlesLanguageOrder;
- CStringW m_audiosLanguageOrder;
-
- int fnChannels;
-
- CString D3D9RenderDevice;
- } m_s;
-
public:
DECLARE_MESSAGE_MAP()
afx_msg void OnAppAbout();
@@ -747,4 +164,4 @@ public:
#define AfxGetMyApp() static_cast<CMPlayerCApp*>(AfxGetApp())
#define AfxGetAppSettings() static_cast<CMPlayerCApp*>(AfxGetApp())->m_s
-#define AppSettings CMPlayerCApp::Settings
+#define AppSettings CAppSettings
diff --git a/src/apps/mplayerc/mplayerc.rc b/src/apps/mplayerc/mplayerc.rc
index 38b7aee1a..36a209db6 100644
--- a/src/apps/mplayerc/mplayerc.rc
+++ b/src/apps/mplayerc/mplayerc.rc
Binary files differ
diff --git a/src/apps/mplayerc/mplayerc.vcproj b/src/apps/mplayerc/mplayerc.vcproj
index 392337a41..7528a4883 100644
--- a/src/apps/mplayerc/mplayerc.vcproj
+++ b/src/apps/mplayerc/mplayerc.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="mpc-hc"
ProjectGUID="{8CE7E5D0-C821-47AC-A247-28EC95B34670}"
RootNamespace="mpc-hc"
@@ -52,7 +52,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;DETOURS_X32"
UsePrecompiledHeader="2"
@@ -73,7 +72,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib qtmlClient.lib SetupAPI.lib AsyncReader.lib AudioSwitcher.lib AVI2AC3Filter.lib AviSplitter.lib BaseClasses.lib BaseMuxer.lib BaseSource.lib BaseSplitter.lib BufferFilter.lib CDDAReader.lib CDXAReader.lib CmdUI.lib D2VSource.lib DeCSS.lib DeCSSFilter.lib DSMMuxer.lib DSMSplitter.lib DSUtil.lib DTSAC3Source.lib Filters.lib FlacSource.lib FLICSource.lib FLVSplitter.lib LCDUI.lib lgLcd.lib libpng.lib libssf.lib libvorbisidec.lib MatroskaMuxer.lib MatroskaSplitter.lib MediaInfoLib.lib MP4Splitter.lib MpaDecFilter.lib MpaSplitter.lib MpcAudioRendererFilter.lib Mpeg2DecFilter.lib MpegSplitter.lib NutSplitter.lib OggSplitter.lib RealMediaSplitter.lib ResizableLib.lib RoQSplitter.lib sizecbar.lib ShoutcastSource.lib SSFSplitter.lib StreamDriveThru.lib SubPic.lib Subtitles.lib SubtitleSource.lib SyncClock.lib TreePropSheet.lib UDPReader.lib VTSReader.lib WavDest.lib ZenLib.lib zlib.lib MPCVideoDec.lib"
+ AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib qtmlClient.lib SetupAPI.lib SubPic.lib MPCVideoDec.lib"
OutputFile="$(OutDir)\$(ProjectName).exe"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\$(ConfigurationName)_$(PlatformName);$(SolutionDir)lib;$(SolutionDir)lib\qt6;$(SolutionDir)lib\detours;$(SolutionDir)lib\lglcd;$(SolutionDir)lib\dx;$(DXSDK_DIR)Lib\x86"
IgnoreDefaultLibraryNames=""
@@ -141,7 +140,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;NDEBUG;_WINDOWS;DETOURS_X64"
EnableEnhancedInstructionSet="0"
@@ -163,7 +161,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib SetupAPI.lib strmiids.lib Uuid.Lib AsyncReader.lib AudioSwitcher.lib AVI2AC3Filter.lib AviSplitter.lib BaseClasses.lib BaseMuxer.lib BaseSource.lib BaseSplitter.lib BufferFilter.lib CDDAReader.lib CDXAReader.lib CmdUI.lib D2VSource.lib DeCSS.lib DeCSSFilter.lib DSMMuxer.lib DSMSplitter.lib DSUtil.lib DTSAC3Source.lib Filters.lib FlacSource.lib FLICSource.lib FLVSplitter.lib LCDUI.lib lgLcd.lib libpng.lib libssf.lib libvorbisidec.lib MatroskaMuxer.lib MatroskaSplitter.lib MediaInfoLib.lib MP4Splitter.lib MpaDecFilter.lib MpaSplitter.lib MpcAudioRendererFilter.lib Mpeg2DecFilter.lib MpegSplitter.lib NutSplitter.lib OggSplitter.lib RealMediaSplitter.lib ResizableLib.lib RoQSplitter.lib sizecbar.lib ShoutcastSource.lib SSFSplitter.lib StreamDriveThru.lib SubPic.lib Subtitles.lib SubtitleSource.lib SyncClock.lib TreePropSheet.lib UDPReader.lib VTSReader.lib WavDest.lib ZenLib.lib zlib.lib MPCVideoDec.lib"
+ AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib SetupAPI.lib strmiids.lib Uuid.Lib SubPic.lib MPCVideoDec.lib"
OutputFile="$(OutDir)\$(ProjectName)64.exe"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\$(ConfigurationName)_$(PlatformName);$(SolutionDir)lib64;$(SolutionDir)lib64\lglcd;$(SolutionDir)lib64\detours;$(SolutionDir)lib64\dx;$(DXSDK_DIR)Lib\x64"
IgnoreDefaultLibraryNames=""
@@ -229,7 +227,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;DETOURS_X32"
UsePrecompiledHeader="2"
@@ -249,7 +246,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib qtmlClient.lib SetupAPI.lib AsyncReader.lib AudioSwitcher.lib AVI2AC3Filter.lib AviSplitter.lib BaseClasses.lib BaseMuxer.lib BaseSource.lib BaseSplitter.lib BufferFilter.lib CDDAReader.lib CDXAReader.lib CmdUI.lib D2VSource.lib DeCSS.lib DeCSSFilter.lib DSMMuxer.lib DSMSplitter.lib DSUtil.lib DTSAC3Source.lib Filters.lib FlacSource.lib FLICSource.lib FLVSplitter.lib LCDUI.lib lgLcd.lib libpng.lib libssf.lib libvorbisidec.lib MatroskaMuxer.lib MatroskaSplitter.lib MediaInfoLib.lib MP4Splitter.lib MpaDecFilter.lib MpaSplitter.lib MpcAudioRendererFilter.lib MPCVideoDec.lib Mpeg2DecFilter.lib MpegSplitter.lib NutSplitter.lib OggSplitter.lib RealMediaSplitter.lib ResizableLib.lib RoQSplitter.lib ShoutcastSource.lib sizecbar.lib SSFSplitter.lib StreamDriveThru.lib SubPic.lib Subtitles.lib SubtitleSource.lib SyncClock.lib TreePropSheet.lib UDPReader.lib VTSReader.lib WavDest.lib ZenLib.lib zlib.lib"
+ AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib qtmlClient.lib SetupAPI.lib"
OutputFile="$(OutDir)\$(ProjectName).exe"
LinkIncremental="2"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\$(ConfigurationName)_$(PlatformName);$(SolutionDir)lib\qt6;$(SolutionDir)lib\detours;$(SolutionDir)lib\lglcd;$(SolutionDir)lib\dx;$(DXSDK_DIR)Lib\x86"
@@ -315,7 +312,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;_DEBUG;_WINDOWS;DETOURS_X64"
UsePrecompiledHeader="2"
@@ -336,7 +332,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib SetupAPI.lib strmiids.lib AsyncReader.lib AudioSwitcher.lib AVI2AC3Filter.lib AviSplitter.lib BaseClasses.lib BaseMuxer.lib BaseSource.lib BaseSplitter.lib BufferFilter.lib CDDAReader.lib CDXAReader.lib CmdUI.lib D2VSource.lib DeCSS.lib DeCSSFilter.lib DSMMuxer.lib DSMSplitter.lib DSUtil.lib DTSAC3Source.lib Filters.lib FlacSource.lib FLICSource.lib FLVSplitter.lib LCDUI.lib lgLcd.lib libpng.lib libssf.lib libvorbisidec.lib MatroskaMuxer.lib MatroskaSplitter.lib MediaInfoLib.lib MP4Splitter.lib MpaDecFilter.lib MpaSplitter.lib MpcAudioRendererFilter.lib MPCVideoDec.lib Mpeg2DecFilter.lib MpegSplitter.lib NutSplitter.lib OggSplitter.lib RealMediaSplitter.lib ResizableLib.lib RoQSplitter.lib ShoutcastSource.lib sizecbar.lib SSFSplitter.lib StreamDriveThru.lib SubPic.lib Subtitles.lib SubtitleSource.lib SyncClock.lib TreePropSheet.lib UDPReader.lib VTSReader.lib WavDest.lib ZenLib.lib zlib.lib"
+ AdditionalDependencies="comsuppw.lib Delayimp.lib detours.lib dsound.lib dxguid.lib gdiplus.lib Psapi.lib SetupAPI.lib strmiids.lib"
OutputFile="$(OutDir)\$(ProjectName)64.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\$(ConfigurationName)_$(PlatformName);$(SolutionDir)lib64\lglcd;$(SolutionDir)lib64\detours;$(SolutionDir)lib64\dx;$(DXSDK_DIR)Lib\x64"
@@ -379,6 +375,10 @@
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
+ RelativePath=".\AppSettings.cpp"
+ >
+ </File>
+ <File
RelativePath=".\AuthDlg.cpp"
>
</File>
@@ -575,6 +575,10 @@
>
</File>
<File
+ RelativePath=".\OpenDirHelper.cpp"
+ >
+ </File>
+ <File
RelativePath=".\OpenDlg.cpp"
>
</File>
@@ -763,6 +767,10 @@
>
</File>
<File
+ RelativePath=".\PPageSubMisc.cpp"
+ >
+ </File>
+ <File
RelativePath=".\PPageSubStyle.cpp"
>
</File>
@@ -928,6 +936,10 @@
Filter="h;hpp;hxx;hm;inl"
>
<File
+ RelativePath=".\AppSettings.h"
+ >
+ </File>
+ <File
RelativePath=".\AuthDlg.h"
>
</File>
@@ -1108,6 +1120,10 @@
>
</File>
<File
+ RelativePath=".\OpenDirHelper.h"
+ >
+ </File>
+ <File
RelativePath=".\OpenDlg.h"
>
</File>
@@ -1260,6 +1276,10 @@
>
</File>
<File
+ RelativePath=".\PPageSubMisc.h"
+ >
+ </File>
+ <File
RelativePath=".\PPageSubStyle.h"
>
</File>
diff --git a/src/apps/mplayerc/mplayerc.vcxproj b/src/apps/mplayerc/mplayerc.vcxproj
index 97f8b3d42..f9ad83fed 100644
--- a/src/apps/mplayerc/mplayerc.vcxproj
+++ b/src/apps/mplayerc/mplayerc.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>mpc-hc</ProjectName>
@@ -43,9 +35,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -69,9 +58,6 @@
<Import Project="..\..\common.props" />
<Import Project="..\..\release.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\common.props" />
@@ -107,7 +93,6 @@ update_version.bat
<TypeLibraryName>.\Release_unicode/mplayerc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;DETOURS_X32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -120,7 +105,7 @@ update_version.bat
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;qtmlClient.lib;SetupAPI.lib;AsyncReader.lib;AudioSwitcher.lib;AVI2AC3Filter.lib;AviSplitter.lib;BaseClasses.lib;BaseMuxer.lib;BaseSource.lib;BaseSplitter.lib;BufferFilter.lib;CDDAReader.lib;CDXAReader.lib;CmdUI.lib;D2VSource.lib;DeCSS.lib;DeCSSFilter.lib;DSMMuxer.lib;DSMSplitter.lib;DSUtil.lib;DTSAC3Source.lib;Filters.lib;FlacSource.lib;FLICSource.lib;FLVSplitter.lib;LCDUI.lib;lgLcd.lib;libpng.lib;libssf.lib;libvorbisidec.lib;MatroskaMuxer.lib;MatroskaSplitter.lib;MediaInfoLib.lib;MP4Splitter.lib;MpaDecFilter.lib;MpaSplitter.lib;MpcAudioRendererFilter.lib;Mpeg2DecFilter.lib;MpegSplitter.lib;NutSplitter.lib;OggSplitter.lib;RealMediaSplitter.lib;ResizableLib.lib;RoQSplitter.lib;sizecbar.lib;ShoutcastSource.lib;SSFSplitter.lib;StreamDriveThru.lib;SubPic.lib;Subtitles.lib;SubtitleSource.lib;SyncClock.lib;TreePropSheet.lib;UDPReader.lib;VTSReader.lib;WavDest.lib;ZenLib.lib;zlib.lib;MPCVideoDec.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;qtmlClient.lib;SetupAPI.lib;SubPic.lib;MPCVideoDec.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\$(Configuration)_$(Platform);$(SolutionDir)lib;$(SolutionDir)lib\qt6;$(SolutionDir)lib\detours;$(SolutionDir)lib\lglcd;$(SolutionDir)lib\dx;$(DXSDK_DIR)Lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
@@ -150,7 +135,6 @@ update_version.bat
<TypeLibraryName>.\Release_unicode/mplayerc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_WINDOWS;DETOURS_X64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -164,7 +148,7 @@ update_version.bat
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
- <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;SetupAPI.lib;strmiids.lib;Uuid.Lib;AsyncReader.lib;AudioSwitcher.lib;AVI2AC3Filter.lib;AviSplitter.lib;BaseClasses.lib;BaseMuxer.lib;BaseSource.lib;BaseSplitter.lib;BufferFilter.lib;CDDAReader.lib;CDXAReader.lib;CmdUI.lib;D2VSource.lib;DeCSS.lib;DeCSSFilter.lib;DSMMuxer.lib;DSMSplitter.lib;DSUtil.lib;DTSAC3Source.lib;Filters.lib;FlacSource.lib;FLICSource.lib;FLVSplitter.lib;LCDUI.lib;lgLcd.lib;libpng.lib;libssf.lib;libvorbisidec.lib;MatroskaMuxer.lib;MatroskaSplitter.lib;MediaInfoLib.lib;MP4Splitter.lib;MpaDecFilter.lib;MpaSplitter.lib;MpcAudioRendererFilter.lib;Mpeg2DecFilter.lib;MpegSplitter.lib;NutSplitter.lib;OggSplitter.lib;RealMediaSplitter.lib;ResizableLib.lib;RoQSplitter.lib;sizecbar.lib;ShoutcastSource.lib;SSFSplitter.lib;StreamDriveThru.lib;SubPic.lib;Subtitles.lib;SubtitleSource.lib;SyncClock.lib;TreePropSheet.lib;UDPReader.lib;VTSReader.lib;WavDest.lib;ZenLib.lib;zlib.lib;MPCVideoDec.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;SetupAPI.lib;strmiids.lib;Uuid.Lib;SubPic.lib;MPCVideoDec.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\$(Configuration)_$(Platform);$(SolutionDir)lib64;$(SolutionDir)lib64\lglcd;$(SolutionDir)lib64\detours;$(SolutionDir)lib64\dx;$(DXSDK_DIR)Lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
@@ -192,7 +176,6 @@ update_version.bat
<TypeLibraryName>$(OutDir)$(ProjectName).tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;DETOURS_X32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -204,7 +187,7 @@ update_version.bat
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;qtmlClient.lib;SetupAPI.lib;AsyncReader.lib;AudioSwitcher.lib;AVI2AC3Filter.lib;AviSplitter.lib;BaseClasses.lib;BaseMuxer.lib;BaseSource.lib;BaseSplitter.lib;BufferFilter.lib;CDDAReader.lib;CDXAReader.lib;CmdUI.lib;D2VSource.lib;DeCSS.lib;DeCSSFilter.lib;DSMMuxer.lib;DSMSplitter.lib;DSUtil.lib;DTSAC3Source.lib;Filters.lib;FlacSource.lib;FLICSource.lib;FLVSplitter.lib;LCDUI.lib;lgLcd.lib;libpng.lib;libssf.lib;libvorbisidec.lib;MatroskaMuxer.lib;MatroskaSplitter.lib;MediaInfoLib.lib;MP4Splitter.lib;MpaDecFilter.lib;MpaSplitter.lib;MpcAudioRendererFilter.lib;MPCVideoDec.lib;Mpeg2DecFilter.lib;MpegSplitter.lib;NutSplitter.lib;OggSplitter.lib;RealMediaSplitter.lib;ResizableLib.lib;RoQSplitter.lib;ShoutcastSource.lib;sizecbar.lib;SSFSplitter.lib;StreamDriveThru.lib;SubPic.lib;Subtitles.lib;SubtitleSource.lib;SyncClock.lib;TreePropSheet.lib;UDPReader.lib;VTSReader.lib;WavDest.lib;ZenLib.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;qtmlClient.lib;SetupAPI.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\$(Configuration)_$(Platform);$(SolutionDir)lib\qt6;$(SolutionDir)lib\detours;$(SolutionDir)lib\lglcd;$(SolutionDir)lib\dx;$(DXSDK_DIR)Lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>msvcrtd;libcmt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
@@ -233,7 +216,6 @@ update_version.bat
<TypeLibraryName>$(OutDir)$(ProjectName).tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;..\..\..\include\dx;..\..\..\include\atl;..\..\filters\BaseClasses;..\..\thirdparty;..\..\thirdparty\libpng;..\..\thirdparty\MediaInfo;..\..\thirdparty\zlib;..\..\filters\renderer\VideoRenderers;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_WINDOWS;DETOURS_X64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -246,7 +228,7 @@ update_version.bat
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;SetupAPI.lib;strmiids.lib;AsyncReader.lib;AudioSwitcher.lib;AVI2AC3Filter.lib;AviSplitter.lib;BaseClasses.lib;BaseMuxer.lib;BaseSource.lib;BaseSplitter.lib;BufferFilter.lib;CDDAReader.lib;CDXAReader.lib;CmdUI.lib;D2VSource.lib;DeCSS.lib;DeCSSFilter.lib;DSMMuxer.lib;DSMSplitter.lib;DSUtil.lib;DTSAC3Source.lib;Filters.lib;FlacSource.lib;FLICSource.lib;FLVSplitter.lib;LCDUI.lib;lgLcd.lib;libpng.lib;libssf.lib;libvorbisidec.lib;MatroskaMuxer.lib;MatroskaSplitter.lib;MediaInfoLib.lib;MP4Splitter.lib;MpaDecFilter.lib;MpaSplitter.lib;MpcAudioRendererFilter.lib;MPCVideoDec.lib;Mpeg2DecFilter.lib;MpegSplitter.lib;NutSplitter.lib;OggSplitter.lib;RealMediaSplitter.lib;ResizableLib.lib;RoQSplitter.lib;ShoutcastSource.lib;sizecbar.lib;SSFSplitter.lib;StreamDriveThru.lib;SubPic.lib;Subtitles.lib;SubtitleSource.lib;SyncClock.lib;TreePropSheet.lib;UDPReader.lib;VTSReader.lib;WavDest.lib;ZenLib.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppw.lib;Delayimp.lib;detours.lib;dsound.lib;dxguid.lib;gdiplus.lib;Psapi.lib;SetupAPI.lib;strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\$(Configuration)_$(Platform);$(SolutionDir)lib64\lglcd;$(SolutionDir)lib64\detours;$(SolutionDir)lib64\dx;$(DXSDK_DIR)Lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>msvcrtd;libcmt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
@@ -263,6 +245,7 @@ update_version.bat
</Manifest>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="AppSettings.cpp" />
<ClCompile Include="AuthDlg.cpp" />
<ClCompile Include="BaseGraph.cpp" />
<ClCompile Include="ChildView.cpp" />
@@ -316,6 +299,7 @@ update_version.bat
<ClCompile Include="mplayerc.cpp" />
<ClCompile Include="MultiMonitor.cpp" />
<ClCompile Include="OpenCapDeviceDlg.cpp" />
+ <ClCompile Include="OpenDirHelper.cpp" />
<ClCompile Include="OpenDlg.cpp" />
<ClCompile Include="OpenFileDlg.cpp" />
<ClCompile Include="PlayerCaptureBar.cpp" />
@@ -367,6 +351,7 @@ update_version.bat
<ClCompile Include="PPagePlayer.cpp" />
<ClCompile Include="PPageSheet.cpp" />
<ClCompile Include="PPageSubDB.cpp" />
+ <ClCompile Include="PPageSubMisc.cpp" />
<ClCompile Include="PPageSubStyle.cpp" />
<ClCompile Include="PPageSubtitles.cpp" />
<ClCompile Include="PPageSync.cpp" />
@@ -405,6 +390,7 @@ update_version.bat
<ClCompile Include="WebServerSocket.cpp" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="AppSettings.h" />
<ClInclude Include="AuthDlg.h" />
<ClInclude Include="BaseGraph.h" />
<ClInclude Include="CGdiPlusBitmap.h" />
@@ -450,6 +436,7 @@ update_version.bat
<ClInclude Include="mplayerc.h" />
<ClInclude Include="MultiMonitor.h" />
<ClInclude Include="OpenCapDeviceDlg.h" />
+ <ClInclude Include="OpenDirHelper.h" />
<ClInclude Include="OpenDlg.h" />
<ClInclude Include="OpenFileDlg.h" />
<ClInclude Include="PlayerCaptureBar.h" />
@@ -488,6 +475,7 @@ update_version.bat
<ClInclude Include="PPagePlayer.h" />
<ClInclude Include="PPageSheet.h" />
<ClInclude Include="PPageSubDB.h" />
+ <ClInclude Include="PPageSubMisc.h" />
<ClInclude Include="PPageSubStyle.h" />
<ClInclude Include="PPageSubtitles.h" />
<ClInclude Include="PPageSync.h" />
@@ -714,10 +702,6 @@ update_version.bat
<Project>{4628c665-ede4-40d2-b525-32be8b8551c8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
- <ProjectReference Include="..\..\filters\parser\NutSplitter\NutSplitter.vcxproj">
- <Project>{e776d3c2-5bfa-41b9-b998-a35b549af737}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
<ProjectReference Include="..\..\filters\parser\OggSplitter\OggSplitter.vcxproj">
<Project>{7fe0a205-3f39-4ac3-bc3c-c2d9e4d02475}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
@@ -866,7 +850,7 @@ update_version.bat
<Project>{d514ea4d-eafb-47a9-a437-a582ca571251}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
- <ProjectReference Include="..\..\subtitles\libssf\libssf.vcxproj">
+ <ProjectReference Include="..\..\Subtitles\libssf\libssf.vcxproj">
<Project>{dd9d2d92-2241-408a-859e-b85d444b7e3c}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
diff --git a/src/apps/mplayerc/mplayerc.vcxproj.filters b/src/apps/mplayerc/mplayerc.vcxproj.filters
index d3bc59704..05dfb8ca5 100644
--- a/src/apps/mplayerc/mplayerc.vcxproj.filters
+++ b/src/apps/mplayerc/mplayerc.vcxproj.filters
@@ -339,6 +339,15 @@
<ClCompile Include="WebServerSocket.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="PPageSubMisc.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="OpenDirHelper.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="AppSettings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="AuthDlg.h">
@@ -680,6 +689,15 @@
<ClInclude Include="WebServerSocket.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="PPageSubMisc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="OpenDirHelper.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="AppSettings.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="res\ani.avi">
diff --git a/src/apps/mplayerc/res/mpc-hc.exe.manifest.conf b/src/apps/mplayerc/res/mpc-hc.exe.manifest.conf
index d201c1c69..a4d6a94ee 100644
--- a/src/apps/mplayerc/res/mpc-hc.exe.manifest.conf
+++ b/src/apps/mplayerc/res/mpc-hc.exe.manifest.conf
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
- version="1.3.$WCREV$.0"
+ version="1.4.$WCREV$.0"
processorArchitecture="*"
name="Media Player Classic Home Cinema"
type="win32"
diff --git a/src/apps/mplayerc/res/mpc-hc.exe.manifest.template b/src/apps/mplayerc/res/mpc-hc.exe.manifest.template
index e143a67cc..89cab0020 100644
--- a/src/apps/mplayerc/res/mpc-hc.exe.manifest.template
+++ b/src/apps/mplayerc/res/mpc-hc.exe.manifest.template
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
- version="1.3.0.0"
+ version="1.4.0.0"
processorArchitecture="*"
name="Media Player Classic Home Cinema"
type="win32"
diff --git a/src/apps/mplayerc/res/multi.ico b/src/apps/mplayerc/res/multi.ico
index 96584e103..2bb13afa9 100644
--- a/src/apps/mplayerc/res/multi.ico
+++ b/src/apps/mplayerc/res/multi.ico
Binary files differ
diff --git a/src/apps/mplayerc/res/single.ico b/src/apps/mplayerc/res/single.ico
index 626da9bc2..414241f39 100644
--- a/src/apps/mplayerc/res/single.ico
+++ b/src/apps/mplayerc/res/single.ico
Binary files differ
diff --git a/src/apps/mplayerc/res/web/logo.png b/src/apps/mplayerc/res/web/logo.png
index 9ee6a389b..53c2c66cd 100644
--- a/src/apps/mplayerc/res/web/logo.png
+++ b/src/apps/mplayerc/res/web/logo.png
Binary files differ
diff --git a/src/apps/mplayerc/resource.h b/src/apps/mplayerc/resource.h
index 5b8ec01df..880255c88 100644
--- a/src/apps/mplayerc/resource.h
+++ b/src/apps/mplayerc/resource.h
Binary files differ
diff --git a/src/apps/mplayerc/stdafx.h b/src/apps/mplayerc/stdafx.h
index ec246d372..b8e3a052a 100644
--- a/src/apps/mplayerc/stdafx.h
+++ b/src/apps/mplayerc/stdafx.h
@@ -28,10 +28,6 @@
#include "../../DSUtil/SharedInclude.h"
-#ifndef WINVER
-#define WINVER 0x0600
-#endif
-
#define HITTEST_RET LRESULT
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
diff --git a/src/filters/BaseClasses/BaseClasses.vcproj b/src/filters/BaseClasses/BaseClasses.vcproj
index 096e303b5..3569de45b 100644
--- a/src/filters/BaseClasses/BaseClasses.vcproj
+++ b/src/filters/BaseClasses/BaseClasses.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="BaseClasses"
ProjectGUID="{E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}"
RootNamespace="BaseClasses"
@@ -43,12 +43,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- Optimization="0"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
- BasicRuntimeChecks="3"
- UsePrecompiledHeader="0"
DebugInformationFormat="4"
/>
<Tool
@@ -106,12 +102,10 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
BasicRuntimeChecks="3"
- UsePrecompiledHeader="0"
DebugInformationFormat="3"
/>
<Tool
@@ -168,11 +162,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- Optimization="2"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
- RuntimeLibrary="0"
DebugInformationFormat="3"
/>
<Tool
@@ -229,11 +220,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- Optimization="2"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
- RuntimeLibrary="0"
EnableEnhancedInstructionSet="0"
DebugInformationFormat="3"
/>
diff --git a/src/filters/BaseClasses/BaseClasses.vcxproj b/src/filters/BaseClasses/BaseClasses.vcxproj
index a46f27c49..eda2b61dd 100644
--- a/src/filters/BaseClasses/BaseClasses.vcxproj
+++ b/src/filters/BaseClasses/BaseClasses.vcxproj
@@ -85,13 +85,8 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <PrecompiledHeader>
- </PrecompiledHeader>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Lib>
@@ -105,13 +100,8 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <PrecompiledHeader>
- </PrecompiledHeader>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
@@ -122,11 +112,8 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
@@ -139,11 +126,8 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
diff --git a/src/filters/Filters.vcproj b/src/filters/Filters.vcproj
index 0a80701c4..29db2d6ad 100644
--- a/src/filters/Filters.vcproj
+++ b/src/filters/Filters.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="Filters"
ProjectGUID="{273B3149-3192-4B75-A791-470320B90812}"
RootNamespace="Filters"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -321,10 +317,6 @@
>
</File>
<File
- RelativePath=".\ISpecifyPropertyPages2.h"
- >
- </File>
- <File
RelativePath=".\PinInfoWnd.h"
>
</File>
diff --git a/src/filters/Filters.vcxproj b/src/filters/Filters.vcxproj
index 5f1ec8944..a43dd666c 100644
--- a/src/filters/Filters.vcxproj
+++ b/src/filters/Filters.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{273B3149-3192-4B75-A791-470320B90812}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\common.props" />
<Import Project="..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -100,7 +85,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -111,7 +95,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -124,7 +107,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -148,7 +130,6 @@
<ClInclude Include="FilterApp.h" />
<ClInclude Include="Filters.h" />
<ClInclude Include="InternalPropertyPage.h" />
- <ClInclude Include="ISpecifyPropertyPages2.h" />
<ClInclude Include="PinInfoWnd.h" />
<ClInclude Include="stdafx.h" />
</ItemGroup>
diff --git a/src/filters/Filters.vcxproj.filters b/src/filters/Filters.vcxproj.filters
index 165be02ea..07513538f 100644
--- a/src/filters/Filters.vcxproj.filters
+++ b/src/filters/Filters.vcxproj.filters
@@ -34,9 +34,6 @@
<ClInclude Include="InternalPropertyPage.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="ISpecifyPropertyPages2.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="PinInfoWnd.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/src/filters/PinInfoWnd.cpp b/src/filters/PinInfoWnd.cpp
index 8219154eb..f52f83d69 100644
--- a/src/filters/PinInfoWnd.cpp
+++ b/src/filters/PinInfoWnd.cpp
@@ -50,6 +50,15 @@ void CPinInfoWnd::OnDisconnect()
m_pBF.Release();
}
+static WNDPROC OldControlProc;
+static LRESULT CALLBACK ControlProc(HWND control, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ if(message == WM_KEYDOWN && LOWORD(wParam)==VK_ESCAPE)
+ return 0; // just ignore ESCAPE in edit control
+ else
+ return CallWindowProc(OldControlProc, control, message, wParam, lParam); // call edit control's own windowproc
+}
+
bool CPinInfoWnd::OnActivate()
{
DWORD dwStyle = WS_VISIBLE|WS_CHILD|WS_TABSTOP;
@@ -84,6 +93,9 @@ bool CPinInfoWnd::OnActivate()
m_info_edit.SetFont(&m_monospacefont);
+ // subclass the edit control
+ OldControlProc = (WNDPROC) SetWindowLongPtr(m_info_edit.m_hWnd, GWLP_WNDPROC, (LONG_PTR) ControlProc);
+
return true;
}
@@ -205,4 +217,4 @@ void CPinInfoWnd::OnCbnSelchangeCombo1()
EndEnumMediaTypes(pmt)
m_info_edit.SetSel(0, 0);
-}
+} \ No newline at end of file
diff --git a/src/filters/muxer/BaseMuxer/BaseMuxer.vcproj b/src/filters/muxer/BaseMuxer/BaseMuxer.vcproj
index 8dc8682cb..c63ad363e 100644
--- a/src/filters/muxer/BaseMuxer/BaseMuxer.vcproj
+++ b/src/filters/muxer/BaseMuxer/BaseMuxer.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="BaseMuxer"
ProjectGUID="{DB5F93B2-54D0-4474-A588-D259BE36C832}"
RootNamespace="BaseMuxer"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -160,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -218,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/muxer/BaseMuxer/BaseMuxer.vcxproj b/src/filters/muxer/BaseMuxer/BaseMuxer.vcxproj
index 8c9b4cda1..2321b3485 100644
--- a/src/filters/muxer/BaseMuxer/BaseMuxer.vcxproj
+++ b/src/filters/muxer/BaseMuxer/BaseMuxer.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{DB5F93B2-54D0-4474-A588-D259BE36C832}</ProjectGuid>
@@ -44,9 +36,6 @@
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -72,9 +61,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -91,7 +77,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -104,7 +89,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -115,7 +99,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -129,7 +112,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/muxer/DSMMuxer/DSMMuxer.vcproj b/src/filters/muxer/DSMMuxer/DSMMuxer.vcproj
index 5622818d9..715f56457 100644
--- a/src/filters/muxer/DSMMuxer/DSMMuxer.vcproj
+++ b/src/filters/muxer/DSMMuxer/DSMMuxer.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="DSMMuxer"
ProjectGUID="{65361C7C-83D6-42E4-870C-4DC85AE641FE}"
RootNamespace="DSMMuxer"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/muxer/DSMMuxer/DSMMuxer.vcxproj b/src/filters/muxer/DSMMuxer/DSMMuxer.vcxproj
index ba49e0ff7..6af5bd4e8 100644
--- a/src/filters/muxer/DSMMuxer/DSMMuxer.vcxproj
+++ b/src/filters/muxer/DSMMuxer/DSMMuxer.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{65361C7C-83D6-42E4-870C-4DC85AE641FE}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/muxer/DSMMuxer/stdafx.cpp b/src/filters/muxer/DSMMuxer/stdafx.cpp
index aab1450a7..bea3f980a 100644
--- a/src/filters/muxer/DSMMuxer/stdafx.cpp
+++ b/src/filters/muxer/DSMMuxer/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,4 +20,3 @@
*/
#include "stdafx.h"
-
diff --git a/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcproj b/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcproj
index e17ef3467..57dd5c6a6 100644
--- a/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcproj
+++ b/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MatroskaMuxer"
ProjectGUID="{67827491-8162-4039-9132-F934ABC836A0}"
RootNamespace="MatroskaMuxer"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcxproj b/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcxproj
index 5eb457b43..56427c127 100644
--- a/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcxproj
+++ b/src/filters/muxer/MatroskaMuxer/MatroskaMuxer.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{67827491-8162-4039-9132-F934ABC836A0}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/muxer/WavDest/WavDest.vcproj b/src/filters/muxer/WavDest/WavDest.vcproj
index 207b2d883..6312a6bb7 100644
--- a/src/filters/muxer/WavDest/WavDest.vcproj
+++ b/src/filters/muxer/WavDest/WavDest.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="WavDest"
ProjectGUID="{EB202B68-8029-4985-B914-E94B44D2E230}"
RootNamespace="WavDest"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -215,7 +212,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -274,7 +270,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
UsePrecompiledHeader="0"
@@ -347,7 +342,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -419,7 +413,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -493,7 +486,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/muxer/WavDest/WavDest.vcxproj b/src/filters/muxer/WavDest/WavDest.vcxproj
index e2ae3e21b..7a1625e23 100644
--- a/src/filters/muxer/WavDest/WavDest.vcxproj
+++ b/src/filters/muxer/WavDest/WavDest.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{EB202B68-8029-4985-B914-E94B44D2E230}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -190,7 +173,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -202,7 +184,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -225,7 +206,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -244,7 +224,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -266,7 +245,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/AviSplitter/AviSplitter.cpp b/src/filters/parser/AviSplitter/AviSplitter.cpp
index 59cd8b621..3f1e5a0c7 100644
--- a/src/filters/parser/AviSplitter/AviSplitter.cpp
+++ b/src/filters/parser/AviSplitter/AviSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/AviSplitter/AviSplitter.h b/src/filters/parser/AviSplitter/AviSplitter.h
index 4ba8cdf35..e022cc0c9 100644
--- a/src/filters/parser/AviSplitter/AviSplitter.h
+++ b/src/filters/parser/AviSplitter/AviSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/AviSplitter/AviSplitter.vcproj b/src/filters/parser/AviSplitter/AviSplitter.vcproj
index 844a68a7f..f69150fea 100644
--- a/src/filters/parser/AviSplitter/AviSplitter.vcproj
+++ b/src/filters/parser/AviSplitter/AviSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="AviSplitter"
ProjectGUID="{9738B023-FC46-48A2-953A-0035FD897678}"
RootNamespace="AviSplitter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -160,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -218,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -276,7 +272,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -349,7 +344,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -422,7 +416,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
UsePrecompiledHeader="0"
@@ -497,7 +490,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/AviSplitter/AviSplitter.vcxproj b/src/filters/parser/AviSplitter/AviSplitter.vcxproj
index ae50922b1..1deaa5197 100644
--- a/src/filters/parser/AviSplitter/AviSplitter.vcxproj
+++ b/src/filters/parser/AviSplitter/AviSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9738B023-FC46-48A2-953A-0035FD897678}</ProjectGuid>
@@ -70,9 +62,6 @@
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -118,9 +107,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -155,7 +141,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -168,7 +153,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -179,7 +163,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -193,7 +176,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -204,7 +186,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -226,7 +207,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -246,7 +226,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -270,7 +249,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/AviSplitter/stdafx.cpp b/src/filters/parser/AviSplitter/stdafx.cpp
index c356f5dba..13934d005 100644
--- a/src/filters/parser/AviSplitter/stdafx.cpp
+++ b/src/filters/parser/AviSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// AviSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/AviSplitter/stdafx.h b/src/filters/parser/AviSplitter/stdafx.h
index 5f53f59b5..7e2652f5d 100644
--- a/src/filters/parser/AviSplitter/stdafx.h
+++ b/src/filters/parser/AviSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/BaseSplitter/AsyncReader.cpp b/src/filters/parser/BaseSplitter/AsyncReader.cpp
index ac940a118..deb21fd1d 100644
--- a/src/filters/parser/BaseSplitter/AsyncReader.cpp
+++ b/src/filters/parser/BaseSplitter/AsyncReader.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/AsyncReader.h b/src/filters/parser/BaseSplitter/AsyncReader.h
index 466f95557..64c4e9113 100644
--- a/src/filters/parser/BaseSplitter/AsyncReader.h
+++ b/src/filters/parser/BaseSplitter/AsyncReader.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/BaseSplitter.cpp b/src/filters/parser/BaseSplitter/BaseSplitter.cpp
index 50e89c493..173442b29 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitter.cpp
+++ b/src/filters/parser/BaseSplitter/BaseSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/BaseSplitter.h b/src/filters/parser/BaseSplitter/BaseSplitter.h
index e9e8e231d..656fafa81 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitter.h
+++ b/src/filters/parser/BaseSplitter/BaseSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/BaseSplitter.vcproj b/src/filters/parser/BaseSplitter/BaseSplitter.vcproj
index 14fed889d..a3b6966a8 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitter.vcproj
+++ b/src/filters/parser/BaseSplitter/BaseSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="BaseSplitter"
ProjectGUID="{37768B3F-89BC-4C16-B2A8-767C5DA84C3F}"
RootNamespace="BaseSplitter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -160,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -218,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/BaseSplitter/BaseSplitter.vcxproj b/src/filters/parser/BaseSplitter/BaseSplitter.vcxproj
index 60da3774b..5d98c7986 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitter.vcxproj
+++ b/src/filters/parser/BaseSplitter/BaseSplitter.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{37768B3F-89BC-4C16-B2A8-767C5DA84C3F}</ProjectGuid>
@@ -44,9 +36,6 @@
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -72,9 +61,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -91,7 +77,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -104,7 +89,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -115,7 +99,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -129,7 +112,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/BaseSplitter/BaseSplitterFile.cpp b/src/filters/parser/BaseSplitter/BaseSplitterFile.cpp
index 64571d736..483c3c7a2 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitterFile.cpp
+++ b/src/filters/parser/BaseSplitter/BaseSplitterFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/BaseSplitterFile.h b/src/filters/parser/BaseSplitter/BaseSplitterFile.h
index e7498223e..8b61961e1 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitterFile.h
+++ b/src/filters/parser/BaseSplitter/BaseSplitterFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/BaseSplitterFileEx.cpp b/src/filters/parser/BaseSplitter/BaseSplitterFileEx.cpp
index 8048f043d..85e259fc3 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitterFileEx.cpp
+++ b/src/filters/parser/BaseSplitter/BaseSplitterFileEx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -593,6 +593,7 @@ bool CBaseSplitterFileEx::Read(aachdr& h, int len, CMediaType* pmt)
bool CBaseSplitterFileEx::Read(ac3hdr& h, int len, CMediaType* pmt)
{
static int freq[] = {48000, 44100, 32000, 0};
+ bool e_ac3 = false;
memset(&h, 0, sizeof(h));
@@ -627,6 +628,7 @@ bool CBaseSplitterFileEx::Read(ac3hdr& h, int len, CMediaType* pmt)
h.sr_shift = max(h.bsid, 8) - 8;
} else {
/* Enhanced AC-3 */
+ e_ac3 = true;
Seek(pos);
h.frame_type = BitRead(2);
h.substreamid = BitRead(3);
@@ -679,7 +681,10 @@ bool CBaseSplitterFileEx::Read(ac3hdr& h, int len, CMediaType* pmt)
wfe.nBlockAlign = (WORD)(1536 * wfe.nAvgBytesPerSec / wfe.nSamplesPerSec);
pmt->majortype = MEDIATYPE_Audio;
- pmt->subtype = MEDIASUBTYPE_DOLBY_AC3;
+ if(e_ac3)
+ pmt->subtype = MEDIASUBTYPE_DOLBY_DDPLUS;
+ else
+ pmt->subtype = MEDIASUBTYPE_DOLBY_AC3;
pmt->formattype = FORMAT_WaveFormatEx;
pmt->SetFormat((BYTE*)&wfe, sizeof(wfe));
@@ -1493,7 +1498,12 @@ bool CBaseSplitterFileEx::Read(avchdr& h, int len, CMediaType* pmt)
if(!h.spspos || !h.spslen || !h.ppspos || !h.ppslen)
return(false);
- if(!h.AvgTimePerFrame || (h.level<10))
+ if(!h.AvgTimePerFrame || !(
+ (h.level == 10) || (h.level == 11) || (h.level == 12) || (h.level == 13) ||
+ (h.level == 20) || (h.level == 21) || (h.level == 22) ||
+ (h.level == 30) || (h.level == 31) || (h.level == 32) ||
+ (h.level == 40) || (h.level == 41) || (h.level == 42) ||
+ (h.level == 50) || (h.level == 51)))
return(false);
if(!pmt) return(true);
diff --git a/src/filters/parser/BaseSplitter/BaseSplitterFileEx.h b/src/filters/parser/BaseSplitter/BaseSplitterFileEx.h
index c60776311..0d55a9366 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitterFileEx.h
+++ b/src/filters/parser/BaseSplitter/BaseSplitterFileEx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/BaseSplitter/stdafx.cpp b/src/filters/parser/BaseSplitter/stdafx.cpp
index 4c0a34f8e..13934d005 100644
--- a/src/filters/parser/BaseSplitter/stdafx.cpp
+++ b/src/filters/parser/BaseSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// basesplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/BaseSplitter/stdafx.h b/src/filters/parser/BaseSplitter/stdafx.h
index f7ba733d1..4811c9499 100644
--- a/src/filters/parser/BaseSplitter/stdafx.h
+++ b/src/filters/parser/BaseSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/DSMSplitter/DSMSplitter.cpp b/src/filters/parser/DSMSplitter/DSMSplitter.cpp
index 3329bb666..3b562b417 100644
--- a/src/filters/parser/DSMSplitter/DSMSplitter.cpp
+++ b/src/filters/parser/DSMSplitter/DSMSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/DSMSplitter/DSMSplitter.h b/src/filters/parser/DSMSplitter/DSMSplitter.h
index 70343053e..ef57df9a3 100644
--- a/src/filters/parser/DSMSplitter/DSMSplitter.h
+++ b/src/filters/parser/DSMSplitter/DSMSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/DSMSplitter/DSMSplitter.vcproj b/src/filters/parser/DSMSplitter/DSMSplitter.vcproj
index 1b3c067c5..575ee32d0 100644
--- a/src/filters/parser/DSMSplitter/DSMSplitter.vcproj
+++ b/src/filters/parser/DSMSplitter/DSMSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="DSMSplitter"
ProjectGUID="{1E91F58C-0BAE-4021-8087-D1864D8EC066}"
RootNamespace="DSMSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -346,7 +341,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -420,7 +414,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -494,7 +487,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/DSMSplitter/DSMSplitter.vcxproj b/src/filters/parser/DSMSplitter/DSMSplitter.vcxproj
index d0f770478..fb4cdf09c 100644
--- a/src/filters/parser/DSMSplitter/DSMSplitter.vcxproj
+++ b/src/filters/parser/DSMSplitter/DSMSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1E91F58C-0BAE-4021-8087-D1864D8EC066}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -223,7 +204,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -244,7 +224,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -266,7 +245,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/DSMSplitter/stdafx.cpp b/src/filters/parser/DSMSplitter/stdafx.cpp
index 0a00e1846..13934d005 100644
--- a/src/filters/parser/DSMSplitter/stdafx.cpp
+++ b/src/filters/parser/DSMSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// DSMSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/DSMSplitter/stdafx.h b/src/filters/parser/DSMSplitter/stdafx.h
index e8beccd47..cdc946aa0 100644
--- a/src/filters/parser/DSMSplitter/stdafx.h
+++ b/src/filters/parser/DSMSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,11 +30,9 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <atlcoll.h>
-// TODO: reference additional headers your program requires here
-
#include <dshow.h>
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/parser/DiracSplitter/DiracSplitter.cpp b/src/filters/parser/DiracSplitter/DiracSplitter.cpp
index 8e6adb524..1d5a483dc 100644
--- a/src/filters/parser/DiracSplitter/DiracSplitter.cpp
+++ b/src/filters/parser/DiracSplitter/DiracSplitter.cpp
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/DiracSplitter/DiracSplitter.h b/src/filters/parser/DiracSplitter/DiracSplitter.h
index e40d52627..d11f1db82 100644
--- a/src/filters/parser/DiracSplitter/DiracSplitter.h
+++ b/src/filters/parser/DiracSplitter/DiracSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -39,7 +39,7 @@ public:
CDiracSplitterFilter(LPUNKNOWN pUnk, HRESULT* phr);
DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
};
class __declspec(uuid("09E7F58E-71A1-419D-B0A0-E524AE1454A9"))
@@ -52,7 +52,7 @@ public:
class __declspec(uuid("F78CF248-180E-4713-B107-B13F7B5C31E1"))
CDiracVideoDecoder : public CTransformFilter
{
- void* m_decoder; // dirac_decoder_t*
+ void* m_decoder; // dirac_decoder_t*
void InitDecoder(), FreeDecoder();
BYTE* m_pYUV[4];
bool m_fDropFrames;
@@ -74,7 +74,7 @@ public:
HRESULT StartStreaming();
HRESULT StopStreaming();
- HRESULT NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
+ HRESULT NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
HRESULT AlterQuality(Quality q);
-}; \ No newline at end of file
+};
diff --git a/src/filters/parser/DiracSplitter/DiracSplitter.vcproj b/src/filters/parser/DiracSplitter/DiracSplitter.vcproj
index 1c1fd3767..0e91f5023 100644
--- a/src/filters/parser/DiracSplitter/DiracSplitter.vcproj
+++ b/src/filters/parser/DiracSplitter/DiracSplitter.vcproj
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -161,7 +159,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -220,7 +217,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -280,7 +276,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -353,7 +348,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -426,7 +420,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -500,7 +493,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\libdirac;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/DiracSplitter/libdirac/libdirac.vcproj b/src/filters/parser/DiracSplitter/libdirac/libdirac.vcproj
index 757ea673f..9c62464d5 100644
--- a/src/filters/parser/DiracSplitter/libdirac/libdirac.vcproj
+++ b/src/filters/parser/DiracSplitter/libdirac/libdirac.vcproj
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_SCL_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -103,7 +102,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;_SCL_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -162,7 +160,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;HAVE_MMX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -221,7 +218,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB;HAVE_MMX;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/DiracSplitter/stdafx.cpp b/src/filters/parser/DiracSplitter/stdafx.cpp
index 8d2e22fce..13934d005 100644
--- a/src/filters/parser/DiracSplitter/stdafx.cpp
+++ b/src/filters/parser/DiracSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// DiracSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/DiracSplitter/stdafx.h b/src/filters/parser/DiracSplitter/stdafx.h
index b76a35484..b0322e83d 100644
--- a/src/filters/parser/DiracSplitter/stdafx.h
+++ b/src/filters/parser/DiracSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
@@ -76,4 +69,3 @@ using namespace dirac;
const unsigned char AU_START_CODE = 0x00;
//! Sequence end code
const unsigned char SEQ_END_CODE = 0x10;
-
diff --git a/src/filters/parser/FLVSplitter/FLVSplitter.cpp b/src/filters/parser/FLVSplitter/FLVSplitter.cpp
index 51c773902..e7495dc5a 100644
--- a/src/filters/parser/FLVSplitter/FLVSplitter.cpp
+++ b/src/filters/parser/FLVSplitter/FLVSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/FLVSplitter/FLVSplitter.h b/src/filters/parser/FLVSplitter/FLVSplitter.h
index 4ccdb000b..4899ef8cc 100644
--- a/src/filters/parser/FLVSplitter/FLVSplitter.h
+++ b/src/filters/parser/FLVSplitter/FLVSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/FLVSplitter/FLVSplitter.vcproj b/src/filters/parser/FLVSplitter/FLVSplitter.vcproj
index ed8f47118..d6ea29046 100644
--- a/src/filters/parser/FLVSplitter/FLVSplitter.vcproj
+++ b/src/filters/parser/FLVSplitter/FLVSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="FLVSplitter"
ProjectGUID="{E62223EF-8263-41EB-8174-CD78BBEEF368}"
RootNamespace="FLVSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -346,7 +341,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -420,7 +414,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -494,7 +487,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/FLVSplitter/FLVSplitter.vcxproj b/src/filters/parser/FLVSplitter/FLVSplitter.vcxproj
index 98454ab6b..a7772244e 100644
--- a/src/filters/parser/FLVSplitter/FLVSplitter.vcxproj
+++ b/src/filters/parser/FLVSplitter/FLVSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E62223EF-8263-41EB-8174-CD78BBEEF368}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -223,7 +204,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -244,7 +224,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -266,7 +245,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/FLVSplitter/stdafx.cpp b/src/filters/parser/FLVSplitter/stdafx.cpp
index d6ab481ba..13934d005 100644
--- a/src/filters/parser/FLVSplitter/stdafx.cpp
+++ b/src/filters/parser/FLVSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// FLVSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/FLVSplitter/stdafx.h b/src/filters/parser/FLVSplitter/stdafx.h
index e8beccd47..cdc946aa0 100644
--- a/src/filters/parser/FLVSplitter/stdafx.h
+++ b/src/filters/parser/FLVSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,11 +30,9 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <atlcoll.h>
-// TODO: reference additional headers your program requires here
-
#include <dshow.h>
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h b/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h
index b661f2a43..16b5c1bf2 100644
--- a/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h
+++ b/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h
@@ -251,10 +251,13 @@ const AP4_Atom::Type AP4_ATOM_TYPE__MP3 = AP4_ATOM_TYPE('.','m','p','3');
const AP4_Atom::Type AP4_ATOM_TYPE_IMA4 = AP4_ATOM_TYPE('i','m','a','4');
const AP4_Atom::Type AP4_ATOM_TYPE_QDMC = AP4_ATOM_TYPE('Q','D','M','C');
const AP4_Atom::Type AP4_ATOM_TYPE_QDM2 = AP4_ATOM_TYPE('Q','D','M','2');
+const AP4_Atom::Type AP4_ATOM_TYPE_NONE = AP4_ATOM_TYPE('N','O','N','E');
const AP4_Atom::Type AP4_ATOM_TYPE_TWOS = AP4_ATOM_TYPE('t','w','o','s');
const AP4_Atom::Type AP4_ATOM_TYPE_SOWT = AP4_ATOM_TYPE('s','o','w','t');
+const AP4_Atom::Type AP4_ATOM_TYPE_IN24 = AP4_ATOM_TYPE('i','n','2','4');
const AP4_Atom::Type AP4_ATOM_TYPE_IN32 = AP4_ATOM_TYPE('i','n','3','2');
const AP4_Atom::Type AP4_ATOM_TYPE_FL32 = AP4_ATOM_TYPE('f','l','3','2');
+const AP4_Atom::Type AP4_ATOM_TYPE_FL64 = AP4_ATOM_TYPE('f','l','6','4');
const AP4_Atom::Type AP4_ATOM_TYPE_CHPL = AP4_ATOM_TYPE('c','h','p','l');
const AP4_Atom::Type AP4_ATOM_TYPE_NAM = AP4_ATOM_TYPE(169,'n','a','m');
const AP4_Atom::Type AP4_ATOM_TYPE_ART = AP4_ATOM_TYPE(169,'A','R','T');
@@ -267,6 +270,7 @@ const AP4_Atom::Type AP4_ATOM_TYPE_GEN = AP4_ATOM_TYPE(169,'g','e','n');
const AP4_Atom::Type AP4_ATOM_TYPE_TRKN = AP4_ATOM_TYPE('t','r','k','n');
const AP4_Atom::Type AP4_ATOM_TYPE_DATA = AP4_ATOM_TYPE('d','a','t','a');
const AP4_Atom::Type AP4_ATOM_TYPE_WAVE = AP4_ATOM_TYPE('w','a','v','e');
+const AP4_Atom::Type AP4_ATOM_TYPE_ENDA = AP4_ATOM_TYPE('e','n','d','a');
const AP4_Atom::Type AP4_ATOM_TYPE_CMOV = AP4_ATOM_TYPE('c','m','o','v');
const AP4_Atom::Type AP4_ATOM_TYPE_DCOM = AP4_ATOM_TYPE('d','c','o','m');
const AP4_Atom::Type AP4_ATOM_TYPE_CMVD = AP4_ATOM_TYPE('c','m','v','d');
@@ -276,10 +280,15 @@ const AP4_Atom::Type AP4_ATOM_TYPE_EAC3 = AP4_ATOM_TYPE('e','c','-','3');
const AP4_Atom::Type AP4_ATOM_TYPE_DTSC = AP4_ATOM_TYPE('d','t','s','c');
const AP4_Atom::Type AP4_ATOM_TYPE_DTSH = AP4_ATOM_TYPE('d','t','s','h');
const AP4_Atom::Type AP4_ATOM_TYPE_DTSL = AP4_ATOM_TYPE('d','t','s','l');
-const AP4_Atom::Type AP4_ATOM_TYPE_RAW = AP4_ATOM_TYPE('r','a','w',' ');
+const AP4_Atom::Type AP4_ATOM_TYPE_RAW = AP4_ATOM_TYPE('r','a','w',' ');
const AP4_Atom::Type AP4_ATOM_TYPE_JPEG = AP4_ATOM_TYPE('j','p','e','g');
+const AP4_Atom::Type AP4_ATOM_TYPE_ALAW = AP4_ATOM_TYPE('a','l','a','w');
const AP4_Atom::Type AP4_ATOM_TYPE_ULAW = AP4_ATOM_TYPE('u','l','a','w');
-const AP4_Atom::Type AP4_ATOM_TYPE_RLE = AP4_ATOM_TYPE('r','l','e',' ');
+const AP4_Atom::Type AP4_ATOM_TYPE_RLE = AP4_ATOM_TYPE('r','l','e',' ');
+const AP4_Atom::Type AP4_ATOM_TYPE_MJPA = AP4_ATOM_TYPE('m','j','p','a');
+const AP4_Atom::Type AP4_ATOM_TYPE_MJPG = AP4_ATOM_TYPE('M','J','P','G');
+const AP4_Atom::Type AP4_ATOM_TYPE_RPZA = AP4_ATOM_TYPE('r','p','z','a');
+const AP4_Atom::Type AP4_ATOM_TYPE_DVC = AP4_ATOM_TYPE('d','v','c',' ');
/*----------------------------------------------------------------------
| AP4_AtomListInspector
diff --git a/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp b/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp
index 99d74643d..9c5f29382 100644
--- a/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp
+++ b/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp
@@ -395,6 +395,10 @@ AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream& stream,
case AP4_ATOM_TYPE_S263:
case AP4_ATOM_TYPE_JPEG:
case AP4_ATOM_TYPE_RLE:
+ case AP4_ATOM_TYPE_MJPA:
+ case AP4_ATOM_TYPE_MJPG:
+ case AP4_ATOM_TYPE_RPZA:
+ case AP4_ATOM_TYPE_DVC:
atom = DNew AP4_VisualSampleEntry(type, size, stream, *this);
break;
@@ -403,11 +407,15 @@ AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream& stream,
case AP4_ATOM_TYPE_IMA4:
case AP4_ATOM_TYPE_QDMC:
case AP4_ATOM_TYPE_QDM2:
+ case AP4_ATOM_TYPE_NONE:
+ case AP4_ATOM_TYPE_RAW:
case AP4_ATOM_TYPE_TWOS:
case AP4_ATOM_TYPE_SOWT:
+ case AP4_ATOM_TYPE_IN24:
case AP4_ATOM_TYPE_IN32:
case AP4_ATOM_TYPE_FL32:
- case AP4_ATOM_TYPE_RAW:
+ case AP4_ATOM_TYPE_FL64:
+ case AP4_ATOM_TYPE_ALAW:
case AP4_ATOM_TYPE_ULAW:
atom = DNew AP4_AudioSampleEntry(type, size, stream, *this);
break;
diff --git a/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp b/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp
index 85d4a88dd..059c8943c 100644
--- a/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp
+++ b/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp
@@ -328,6 +328,37 @@ AP4_AudioSampleEntry::AP4_AudioSampleEntry(AP4_Atom::Type format,
// read fields
ReadFields(stream);
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ //hack to support the formats using more than 16 bits per sample
+ //in the future will have to be moved to MP4Splitter.cpp
+ if(m_DescriptionVersion == 1 && m_SampleSize == 16){
+ //QuickTime File Format Specification->Sound Sample Description (Version 1)->Bytes per packet
+ m_SampleSize = m_BytesPerPacket * 8;
+ }
+ //
+ //hack to get the correct WAVEFORMATEX in MP4Splitter.cpp
+ //need more information about audio formats used in older movs (QuickTime 2.x).
+ if(m_DescriptionVersion == 0)
+ {
+ switch( format )
+ {
+ case AP4_ATOM_TYPE_NONE:
+ case AP4_ATOM_TYPE_RAW:
+ case AP4_ATOM_TYPE_TWOS:
+ case AP4_ATOM_TYPE_SOWT:
+ //m_SamplesPerPacket = 1;
+ //m_BytesPerPacket = m_SampleSize / 8;
+ m_BytesPerFrame = m_ChannelCount * m_SampleSize / 8;
+ break;
+ case AP4_ATOM_TYPE_IMA4:
+ m_BytesPerFrame = m_ChannelCount * 34;
+ break;
+ }
+ //if (m_SampleSize == 8) m_BytesPerSample = 1;
+ //else m_BytesPerSample = 2;
+ }
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+
// must be called after m_DescriptionVersion was already set
AP4_Size fields_size = GetFieldsSize();
@@ -385,8 +416,6 @@ AP4_AudioSampleEntry::ReadFields(AP4_ByteStream& stream)
{
stream.ReadUI32(m_SamplesPerPacket);
stream.ReadUI32(m_BytesPerPacket);
- //QuickTime File Format Specification->Sound Sample Description (Version 1)->Bytes per packet
- if (m_SampleSize == 16) {m_SampleSize = m_BytesPerPacket * 8;}
stream.ReadUI32(m_BytesPerFrame);
stream.ReadUI32(m_BytesPerSample);
}
diff --git a/src/filters/parser/MP4Splitter/MP4Splitter.cpp b/src/filters/parser/MP4Splitter/MP4Splitter.cpp
index e0bf6fc9b..ac543fb29 100644
--- a/src/filters/parser/MP4Splitter/MP4Splitter.cpp
+++ b/src/filters/parser/MP4Splitter/MP4Splitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -539,9 +539,7 @@ HRESULT CMP4SplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
wfe->nChannels = ase->GetChannelCount();
wfe->wBitsPerSample = ase->GetSampleSize();
wfe->nBlockAlign = ase->GetBytesPerFrame();
- if(wfe->nBlockAlign == 0)
- wfe->nBlockAlign = wfe->wBitsPerSample / 8;
- wfe->nAvgBytesPerSec = wfe->wBitsPerSample * wfe->nSamplesPerSec / 8;
+ wfe->nAvgBytesPerSec = wfe->nSamplesPerSec * wfe->nChannels * wfe->wBitsPerSample / 8;
wfe->cbSize = db.GetDataSize();
memcpy(wfe+1, db.GetData(), db.GetDataSize());
mts.Add(mt);
diff --git a/src/filters/parser/MP4Splitter/MP4Splitter.h b/src/filters/parser/MP4Splitter/MP4Splitter.h
index 5ad051ecf..62d4e9c30 100644
--- a/src/filters/parser/MP4Splitter/MP4Splitter.h
+++ b/src/filters/parser/MP4Splitter/MP4Splitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MP4Splitter/MP4Splitter.vcproj b/src/filters/parser/MP4Splitter/MP4Splitter.vcproj
index d3a7a138b..46fa73968 100644
--- a/src/filters/parser/MP4Splitter/MP4Splitter.vcproj
+++ b/src/filters/parser/MP4Splitter/MP4Splitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MP4Splitter"
ProjectGUID="{9ED4B036-7399-4128-868D-6E71188E0277}"
RootNamespace="MP4Splitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
DisableSpecificWarnings="4812"
@@ -101,7 +100,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -159,7 +157,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
DisableSpecificWarnings="4812"
@@ -218,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -278,7 +274,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DisableSpecificWarnings="4812"
@@ -353,7 +348,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -428,7 +422,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
DisableSpecificWarnings="4812"
@@ -503,7 +496,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/MP4Splitter/MP4Splitter.vcxproj b/src/filters/parser/MP4Splitter/MP4Splitter.vcxproj
index 125af647f..6cfb1d5cd 100644
--- a/src/filters/parser/MP4Splitter/MP4Splitter.vcxproj
+++ b/src/filters/parser/MP4Splitter/MP4Splitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9ED4B036-7399-4128-868D-6E71188E0277}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -165,7 +150,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -177,7 +161,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -192,7 +175,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -205,7 +187,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -229,7 +210,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -251,7 +231,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -274,7 +253,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.\AP4\Core;.\AP4\Config;.\AP4\Crypto;..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/MP4Splitter/stdafx.cpp b/src/filters/parser/MP4Splitter/stdafx.cpp
index ae7410104..13934d005 100644
--- a/src/filters/parser/MP4Splitter/stdafx.cpp
+++ b/src/filters/parser/MP4Splitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// MP4Splitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/MP4Splitter/stdafx.h b/src/filters/parser/MP4Splitter/stdafx.h
index e8beccd47..cdc946aa0 100644
--- a/src/filters/parser/MP4Splitter/stdafx.h
+++ b/src/filters/parser/MP4Splitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,11 +30,9 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <atlcoll.h>
-// TODO: reference additional headers your program requires here
-
#include <dshow.h>
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/parser/MatroskaSplitter/MatroskaFile.cpp b/src/filters/parser/MatroskaSplitter/MatroskaFile.cpp
index 3e1f90132..e498af087 100644
--- a/src/filters/parser/MatroskaSplitter/MatroskaFile.cpp
+++ b/src/filters/parser/MatroskaSplitter/MatroskaFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MatroskaSplitter/MatroskaFile.h b/src/filters/parser/MatroskaSplitter/MatroskaFile.h
index 0458960ff..183fca217 100644
--- a/src/filters/parser/MatroskaSplitter/MatroskaFile.h
+++ b/src/filters/parser/MatroskaSplitter/MatroskaFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.cpp b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.cpp
index 29d690628..f9ded756e 100644
--- a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.cpp
+++ b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.h b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.h
index dc73dc417..ae47a7d83 100644
--- a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.h
+++ b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcproj b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcproj
index 0a79ad98c..be5a8a757 100644
--- a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcproj
+++ b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MatroskaSplitter"
ProjectGUID="{3F5EA225-F4B7-4413-AEB3-4E4E5751E438}"
RootNamespace="MatroskaSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcxproj b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcxproj
index 4c540f88c..85b68852b 100644
--- a/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcxproj
+++ b/src/filters/parser/MatroskaSplitter/MatroskaSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3F5EA225-F4B7-4413-AEB3-4E4E5751E438}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/MatroskaSplitter/stdafx.cpp b/src/filters/parser/MatroskaSplitter/stdafx.cpp
index c3b346d99..13934d005 100644
--- a/src/filters/parser/MatroskaSplitter/stdafx.cpp
+++ b/src/filters/parser/MatroskaSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// MatroskaSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/MatroskaSplitter/stdafx.h b/src/filters/parser/MatroskaSplitter/stdafx.h
index 5f53f59b5..7e2652f5d 100644
--- a/src/filters/parser/MatroskaSplitter/stdafx.h
+++ b/src/filters/parser/MatroskaSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/MpaSplitter/MpaSplitter.cpp b/src/filters/parser/MpaSplitter/MpaSplitter.cpp
index eb0ccbf0c..fef3f7d1a 100644
--- a/src/filters/parser/MpaSplitter/MpaSplitter.cpp
+++ b/src/filters/parser/MpaSplitter/MpaSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpaSplitter/MpaSplitter.h b/src/filters/parser/MpaSplitter/MpaSplitter.h
index 946ec8647..cae3c8b9a 100644
--- a/src/filters/parser/MpaSplitter/MpaSplitter.h
+++ b/src/filters/parser/MpaSplitter/MpaSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpaSplitter/MpaSplitter.vcproj b/src/filters/parser/MpaSplitter/MpaSplitter.vcproj
index fd293cb12..628354aef 100644
--- a/src/filters/parser/MpaSplitter/MpaSplitter.vcproj
+++ b/src/filters/parser/MpaSplitter/MpaSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MpaSplitter"
ProjectGUID="{C0F7A036-FC2D-40DF-9852-C37518DB6B3E}"
RootNamespace="MpaSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/MpaSplitter/MpaSplitter.vcxproj b/src/filters/parser/MpaSplitter/MpaSplitter.vcxproj
index 19b8e762c..f700b486d 100644
--- a/src/filters/parser/MpaSplitter/MpaSplitter.vcxproj
+++ b/src/filters/parser/MpaSplitter/MpaSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{C0F7A036-FC2D-40DF-9852-C37518DB6B3E}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp b/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp
index 42e329352..fc5f8399c 100644
--- a/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp
+++ b/src/filters/parser/MpaSplitter/MpaSplitterFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpaSplitter/MpaSplitterFile.h b/src/filters/parser/MpaSplitter/MpaSplitterFile.h
index ee2e0d799..2bd3a9a40 100644
--- a/src/filters/parser/MpaSplitter/MpaSplitterFile.h
+++ b/src/filters/parser/MpaSplitter/MpaSplitterFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpaSplitter/stdafx.cpp b/src/filters/parser/MpaSplitter/stdafx.cpp
index 845bd92b0..13934d005 100644
--- a/src/filters/parser/MpaSplitter/stdafx.cpp
+++ b/src/filters/parser/MpaSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// MpaSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/MpaSplitter/stdafx.h b/src/filters/parser/MpaSplitter/stdafx.h
index 32d2f51d8..7fbf4d9ac 100644
--- a/src/filters/parser/MpaSplitter/stdafx.h
+++ b/src/filters/parser/MpaSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
@@ -48,6 +41,3 @@
#include "../../../DSUtil/DSUtil.h"
#include "../../../DSUtil/MediaTypes.h"
#include "../../../DSUtil/vd.h"
-
-
-
diff --git a/src/filters/parser/MpegSplitter/MpegSplitter.cpp b/src/filters/parser/MpegSplitter/MpegSplitter.cpp
index 4f3c9e1c9..955e5ddb1 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitter.cpp
+++ b/src/filters/parser/MpegSplitter/MpegSplitter.cpp
@@ -1,7 +1,7 @@
/*
* (C) 2003-2006 Gabest
* (C) 2006-2010 see AUTHORS
- * http://www.gabest.org
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -325,6 +325,10 @@ CString GetMediaTypeDesc(const CMediaType *_pMediaType, const CHdmvClipInfo::Str
UNUSED_ALWAYS(pInfoHDMV);
Infos.AddTail(L"HDMV LPCM");
}
+ if (_pMediaType->subtype == MEDIASUBTYPE_DOLBY_DDPLUS)
+ {
+ Infos.AddTail(L"Dolby Digital Plus");
+ }
else
{
switch (pInfo->wFormatTag)
@@ -460,6 +464,7 @@ CString GetMediaTypeDesc(const CMediaType *_pMediaType, const CHdmvClipInfo::Str
CMpegSplitterFilter::CMpegSplitterFilter(LPUNKNOWN pUnk, HRESULT* phr, const CLSID& clsid)
: CBaseSplitterFilter(NAME("CMpegSplitterFilter"), pUnk, phr, clsid)
, m_pPipoBimbo(false)
+ , m_rtPlaylistDuration(0)
{
}
diff --git a/src/filters/parser/MpegSplitter/MpegSplitter.h b/src/filters/parser/MpegSplitter/MpegSplitter.h
index 68b1072c7..a5155fa8c 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitter.h
+++ b/src/filters/parser/MpegSplitter/MpegSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpegSplitter/MpegSplitter.vcproj b/src/filters/parser/MpegSplitter/MpegSplitter.vcproj
index 431d7dca8..2eeaf3337 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitter.vcproj
+++ b/src/filters/parser/MpegSplitter/MpegSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MpegSplitter"
ProjectGUID="{4628C665-EDE4-40D2-B525-32BE8B8551C8}"
RootNamespace="MpegSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/MpegSplitter/MpegSplitter.vcxproj b/src/filters/parser/MpegSplitter/MpegSplitter.vcxproj
index 3a42ee427..3ae4daa74 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitter.vcxproj
+++ b/src/filters/parser/MpegSplitter/MpegSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4628C665-EDE4-40D2-B525-32BE8B8551C8}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/MpegSplitter/MpegSplitterFile.cpp b/src/filters/parser/MpegSplitter/MpegSplitterFile.cpp
index 095034519..61f1be041 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitterFile.cpp
+++ b/src/filters/parser/MpegSplitter/MpegSplitterFile.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpegSplitter/MpegSplitterFile.h b/src/filters/parser/MpegSplitter/MpegSplitterFile.h
index d9bee0f42..1e52ea697 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitterFile.h
+++ b/src/filters/parser/MpegSplitter/MpegSplitterFile.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/MpegSplitter/stdafx.cpp b/src/filters/parser/MpegSplitter/stdafx.cpp
index 4284c08d9..13934d005 100644
--- a/src/filters/parser/MpegSplitter/stdafx.cpp
+++ b/src/filters/parser/MpegSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// RoQSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/MpegSplitter/stdafx.h b/src/filters/parser/MpegSplitter/stdafx.h
index aefacf4f0..a72e6f179 100644
--- a/src/filters/parser/MpegSplitter/stdafx.h
+++ b/src/filters/parser/MpegSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/NutSplitter/NutSplitter.cpp b/src/filters/parser/NutSplitter/NutSplitter.cpp
index 92dee697b..3edb5a328 100644
--- a/src/filters/parser/NutSplitter/NutSplitter.cpp
+++ b/src/filters/parser/NutSplitter/NutSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/NutSplitter/NutSplitter.vcproj b/src/filters/parser/NutSplitter/NutSplitter.vcproj
index 775e45ac4..1bef2d2be 100644
--- a/src/filters/parser/NutSplitter/NutSplitter.vcproj
+++ b/src/filters/parser/NutSplitter/NutSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="NutSplitter"
ProjectGUID="{E776D3C2-5BFA-41B9-B998-A35B549AF737}"
RootNamespace="NutSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
UsePrecompiledHeader="0"
@@ -158,7 +156,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -215,7 +212,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -273,7 +269,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -346,7 +341,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -419,7 +413,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -493,7 +486,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/NutSplitter/stdafx.cpp b/src/filters/parser/NutSplitter/stdafx.cpp
index 4284c08d9..13934d005 100644
--- a/src/filters/parser/NutSplitter/stdafx.cpp
+++ b/src/filters/parser/NutSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// RoQSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/NutSplitter/stdafx.h b/src/filters/parser/NutSplitter/stdafx.h
index e3ebbbb58..dcc6b12a6 100644
--- a/src/filters/parser/NutSplitter/stdafx.h
+++ b/src/filters/parser/NutSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -35,9 +35,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
@@ -48,4 +46,3 @@
#include "../../../DSUtil/DSUtil.h"
#include "../../../DSUtil/MediaTypes.h"
#include "../../../DSUtil/vd.h"
-
diff --git a/src/filters/parser/OggSplitter/OggSplitter.cpp b/src/filters/parser/OggSplitter/OggSplitter.cpp
index fc0ce3e51..fa348c31f 100644
--- a/src/filters/parser/OggSplitter/OggSplitter.cpp
+++ b/src/filters/parser/OggSplitter/OggSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/OggSplitter/OggSplitter.h b/src/filters/parser/OggSplitter/OggSplitter.h
index 212a9504c..5790ccad0 100644
--- a/src/filters/parser/OggSplitter/OggSplitter.h
+++ b/src/filters/parser/OggSplitter/OggSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/OggSplitter/OggSplitter.vcproj b/src/filters/parser/OggSplitter/OggSplitter.vcproj
index d0cc2539a..2fb480ca5 100644
--- a/src/filters/parser/OggSplitter/OggSplitter.vcproj
+++ b/src/filters/parser/OggSplitter/OggSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="OggSplitter"
ProjectGUID="{7FE0A205-3F39-4AC3-BC3C-C2D9E4D02475}"
RootNamespace="OggSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/OggSplitter/OggSplitter.vcxproj b/src/filters/parser/OggSplitter/OggSplitter.vcxproj
index 653b21cb8..2efee172a 100644
--- a/src/filters/parser/OggSplitter/OggSplitter.vcxproj
+++ b/src/filters/parser/OggSplitter/OggSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{7FE0A205-3F39-4AC3-BC3C-C2D9E4D02475}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/OggSplitter/stdafx.cpp b/src/filters/parser/OggSplitter/stdafx.cpp
index 804db5e5a..13934d005 100644
--- a/src/filters/parser/OggSplitter/stdafx.cpp
+++ b/src/filters/parser/OggSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// OggSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/OggSplitter/stdafx.h b/src/filters/parser/OggSplitter/stdafx.h
index 0910f1e05..01aef1f91 100644
--- a/src/filters/parser/OggSplitter/stdafx.h
+++ b/src/filters/parser/OggSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.cpp b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.cpp
index 8ac4852f9..a3da7019f 100644
--- a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.cpp
+++ b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.cpp
@@ -1,20 +1,20 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -30,11 +30,10 @@
#include "RealMediaSplitter.h"
#include "../../../Subtitles/SubtitleInputPin.h"
-//
-
#include <initguid.h>
#include <moreuuids.h>
+
template<typename T>
static void bswap(T& var)
{
@@ -46,9 +45,13 @@ static void bswap(T& var)
void rvinfo::bswap()
{
::bswap(dwSize);
- ::bswap(w); ::bswap(h); ::bswap(bpp);
- ::bswap(unk1); ::bswap(fps);
- ::bswap(type1); ::bswap(type2);
+ ::bswap(w);
+ ::bswap(h);
+ ::bswap(bpp);
+ ::bswap(unk1);
+ ::bswap(fps);
+ ::bswap(type1);
+ ::bswap(type2);
}
void rainfo::bswap()
@@ -90,8 +93,8 @@ const AMOVIESETUP_MEDIATYPE sudPinTypesIn[] =
const AMOVIESETUP_PIN sudpPins[] =
{
- {L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesIn), sudPinTypesIn},
- {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, 0, NULL}
+ {L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesIn), sudPinTypesIn},
+ {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, 0, NULL}
};
const AMOVIESETUP_MEDIATYPE sudPinTypesIn2[] =
@@ -109,8 +112,8 @@ const AMOVIESETUP_MEDIATYPE sudPinTypesOut2[] =
const AMOVIESETUP_PIN sudpPins2[] =
{
- {L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesIn2), sudPinTypesIn2},
- {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesOut2), sudPinTypesOut2}
+ {L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesIn2), sudPinTypesIn2},
+ {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesOut2), sudPinTypesOut2}
};
const AMOVIESETUP_MEDIATYPE sudPinTypesIn3[] =
@@ -133,8 +136,8 @@ const AMOVIESETUP_MEDIATYPE sudPinTypesOut3[] =
const AMOVIESETUP_PIN sudpPins3[] =
{
- {L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesIn3), sudPinTypesIn3},
- {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesOut3), sudPinTypesOut3}
+ {L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesIn3), sudPinTypesIn3},
+ {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, countof(sudPinTypesOut3), sudPinTypesOut3}
};
const AMOVIESETUP_FILTER sudFilter[] =
@@ -149,8 +152,8 @@ CFactoryTemplate g_Templates[] =
{
{sudFilter[0].strName, sudFilter[0].clsID, CreateInstance<CRealMediaSplitterFilter>, NULL, &sudFilter[0]},
{sudFilter[1].strName, sudFilter[1].clsID, CreateInstance<CRealMediaSourceFilter>, NULL, &sudFilter[1]},
- {sudFilter[2].strName, sudFilter[2].clsID, CreateInstance<CRealVideoDecoder>, NULL, &sudFilter[2]},
- {sudFilter[3].strName, sudFilter[3].clsID, CreateInstance<CRealAudioDecoder>, NULL, &sudFilter[3]},
+ {sudFilter[2].strName, sudFilter[2].clsID, CreateInstance<CRealVideoDecoder>, NULL, &sudFilter[2]},
+ {sudFilter[3].strName, sudFilter[3].clsID, CreateInstance<CRealAudioDecoder>, NULL, &sudFilter[3]},
};
int g_cTemplates = countof(g_Templates);
@@ -204,7 +207,10 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
m_pFile.Attach(DNew CRMFile(pAsyncReader, hr));
if(!m_pFile) return E_OUTOFMEMORY;
- if(FAILED(hr)) {m_pFile.Free(); return hr;}
+ if(FAILED(hr)) {
+ m_pFile.Free();
+ return hr;
+ }
m_rtNewStart = m_rtCurrent = 0;
m_rtNewStop = m_rtStop = 0;
@@ -241,8 +247,8 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
ASSERT(rvi.fcc1 == 'ODIV');
mt.subtype = FOURCCMap(rvi.fcc2);
- if(rvi.fps > 0x10000) pvih->AvgTimePerFrame = REFERENCE_TIME(10000000i64 / ((float)rvi.fps/0x10000));
- pvih->dwBitRate = pmp->avgBitRate;
+ if(rvi.fps > 0x10000) pvih->AvgTimePerFrame = REFERENCE_TIME(10000000i64 / ((float)rvi.fps/0x10000));
+ pvih->dwBitRate = pmp->avgBitRate;
pvih->bmiHeader.biSize = sizeof(pvih->bmiHeader);
pvih->bmiHeader.biWidth = rvi.w;
pvih->bmiHeader.biHeight = rvi.h;
@@ -280,8 +286,8 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
memcpy(pwfe + 1, pmp->typeSpecData.GetData(), pmp->typeSpecData.GetCount());
union {
- DWORD fcc;
- char fccstr[5];
+ DWORD fcc;
+ char fccstr[5];
};
fcc = 0;
@@ -308,9 +314,12 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
pwfe->nSamplesPerSec = rai4.sample_rate;
pwfe->nBlockAlign = rai4.frame_size;
BYTE* p = (BYTE*)((rainfo4*)fmt+1);
- int len = *p++; p += len; len = *p++; ASSERT(len == 4);
+ int len = *p++;
+ p += len;
+ len = *p++;
+ ASSERT(len == 4);
if(len == 4)
- fcc = MAKEFOURCC(p[0],p[1],p[2],p[3]);
+ fcc = MAKEFOURCC(p[0],p[1],p[2],p[3]);
extra = p + len + 3;
}
else if(rai.version2 == 5)
@@ -337,14 +346,30 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
switch(fcc)
{
- case '14_4': pwfe->wFormatTag = WAVE_FORMAT_14_4; break;
- case '28_8': pwfe->wFormatTag = WAVE_FORMAT_28_8; break;
- case 'ATRC': pwfe->wFormatTag = WAVE_FORMAT_ATRC; break;
- case 'COOK': pwfe->wFormatTag = WAVE_FORMAT_COOK; break;
- case 'DNET': pwfe->wFormatTag = WAVE_FORMAT_DNET; break;
- case 'SIPR': pwfe->wFormatTag = WAVE_FORMAT_SIPR; break;
- case 'RAAC': pwfe->wFormatTag = WAVE_FORMAT_RAAC; break;
- case 'RACP': pwfe->wFormatTag = WAVE_FORMAT_RACP; break;
+ case '14_4':
+ pwfe->wFormatTag = WAVE_FORMAT_14_4;
+ break;
+ case '28_8':
+ pwfe->wFormatTag = WAVE_FORMAT_28_8;
+ break;
+ case 'ATRC':
+ pwfe->wFormatTag = WAVE_FORMAT_ATRC;
+ break;
+ case 'COOK':
+ pwfe->wFormatTag = WAVE_FORMAT_COOK;
+ break;
+ case 'DNET':
+ pwfe->wFormatTag = WAVE_FORMAT_DNET;
+ break;
+ case 'SIPR':
+ pwfe->wFormatTag = WAVE_FORMAT_SIPR;
+ break;
+ case 'RAAC':
+ pwfe->wFormatTag = WAVE_FORMAT_RAAC;
+ break;
+ case 'RACP':
+ pwfe->wFormatTag = WAVE_FORMAT_RACP;
+ break;
}
if(pwfe->wFormatTag)
@@ -353,18 +378,20 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
if(fcc == 'DNET')
{
- mt.subtype = FOURCCMap(pwfe->wFormatTag = WAVE_FORMAT_DOLBY_AC3);
+ mt.subtype = FOURCCMap(pwfe->wFormatTag = WAVE_FORMAT_DOLBY_AC3);
mts.InsertAt(0, mt);
}
else if(fcc == 'RAAC' || fcc == 'RACP')
{
- mt.subtype = FOURCCMap(pwfe->wFormatTag = WAVE_FORMAT_AAC);
- int extralen = *(DWORD*)extra; extra += 4;
+ mt.subtype = FOURCCMap(pwfe->wFormatTag = WAVE_FORMAT_AAC);
+ int extralen = *(DWORD*)extra;
+ extra += 4;
::bswap(extralen);
- ASSERT(*extra == 2); // always 2? why? what does it mean?
+ ASSERT(*extra == 2); // always 2? why? what does it mean?
if(*extra == 2)
{
- extra++; extralen--;
+ extra++;
+ extralen--;
WAVEFORMATEX* pwfe = (WAVEFORMATEX*)mt.ReallocFormatBuffer(sizeof(WAVEFORMATEX) + extralen);
pwfe->cbSize = extralen;
memcpy(pwfe + 1, extra, extralen);
@@ -387,33 +414,43 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
BYTE* end = p + pmp->typeSpecData.GetCount();
p += 8;
- DWORD cnt = p <= end-4 ? *(DWORD*)p : 0; bswap(cnt); p += 4;
-
- if(cnt > 0xffff) // different format?
+ DWORD cnt = p <= end-4 ? *(DWORD*)p : 0;
+ bswap(cnt);
+ p += 4;
+
+ if(cnt > 0xffff) // different format?
{
p += 2;
- cnt = p <= end-4 ? *(DWORD*)p : 0; bswap(cnt); p += 4;
+ cnt = p <= end-4 ? *(DWORD*)p : 0;
+ bswap(cnt);
+ p += 4;
}
while(p < end-4 && cnt-- > 0)
{
BYTE* base = p;
- DWORD len = *(DWORD*)p; bswap(len); p += 4;
+ DWORD len = *(DWORD*)p;
+ bswap(len);
+ p += 4;
if(base + len > end) break;
p++;
- WORD keylen = *(WORD*)p; bswap(keylen); p += 2;
+ WORD keylen = *(WORD*)p;
+ bswap(keylen);
+ p += 2;
memcpy(key.GetBufferSetLength(keylen), p, keylen);
p += keylen;
p+=4;
- WORD valuelen = *(WORD*)p; bswap(valuelen); p += 2;
+ WORD valuelen = *(WORD*)p;
+ bswap(valuelen);
+ p += 2;
memcpy(value.GetBufferSetLength(valuelen), p, valuelen);
p += valuelen;
ASSERT(p == base + len);
p = base + len;
-
+
lfi[key] = value;
}
@@ -424,7 +461,7 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
int n = 0;
if(key.Find("CHAPTER") == 0 && key.Find("TIME") == key.GetLength()-4
- && (n = strtol(key.Mid(7), NULL, 10)) > 0)
+ && (n = strtol(key.Mid(7), NULL, 10)) > 0)
{
int h, m, s, ms;
char c;
@@ -436,7 +473,7 @@ HRESULT CRealMediaSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
value.Format("Chapter %d", n);
ChapAppend(
- ((((REFERENCE_TIME)h*60+m)*60+s)*1000+ms)*10000,
+ ((((REFERENCE_TIME)h*60+m)*60+s)*1000+ms)*10000,
CStringW(CString(value)));
}
}
@@ -508,7 +545,7 @@ bool CRealMediaSplitterFilter::DemuxInit()
UINT32 tLastStart = (UINT32)-1;
UINT32 nPacket = 0;
- POSITION pos = m_pFile->m_dcs.GetHeadPosition();
+ POSITION pos = m_pFile->m_dcs.GetHeadPosition();
while(pos && !m_fAbort)
{
DataChunk* pdc = m_pFile->m_dcs.GetNext(pos);
@@ -567,13 +604,13 @@ void CRealMediaSplitterFilter::DemuxSeek(REFERENCE_TIME rt)
{
if(rt <= 0)
{
- m_seekpos = m_pFile->m_dcs.GetHeadPosition();
+ m_seekpos = m_pFile->m_dcs.GetHeadPosition();
m_seekpacket = 0;
m_seekfilepos = m_pFile->m_dcs.GetHead()->pos;
}
else
{
- m_seekpos = NULL;
+ m_seekpos = NULL;
POSITION pos = m_pFile->m_irs.GetTailPosition();
while(pos && !m_seekpos)
@@ -642,7 +679,7 @@ void CRealMediaSplitterFilter::DemuxSeek(REFERENCE_TIME rt)
if(!m_seekpos)
{
- m_seekpos = m_pFile->m_dcs.GetHeadPosition();
+ m_seekpos = m_pFile->m_dcs.GetHeadPosition();
m_seekpacket = 0;
m_seekfilepos = m_pFile->m_dcs.GetAt(m_seekpos)->pos;
}
@@ -669,20 +706,27 @@ bool CRealMediaSplitterFilter::DemuxLoop()
p->SetCount((4+1) + (2+4+(s.name.GetLength()+1)*2) + (2+4+s.data.GetLength()));
BYTE* ptr = p->GetData();
- strcpy((char*)ptr, "GAB2"); ptr += 4+1;
+ strcpy((char*)ptr, "GAB2");
+ ptr += 4+1;
- *(WORD*)ptr = 2; ptr += 2;
- *(DWORD*)ptr = (s.name.GetLength()+1)*2; ptr += 4;
- wcscpy((WCHAR*)ptr, CStringW(s.name)); ptr += (s.name.GetLength()+1)*2;
+ *(WORD*)ptr = 2;
+ ptr += 2;
+ *(DWORD*)ptr = (s.name.GetLength()+1)*2;
+ ptr += 4;
+ wcscpy((WCHAR*)ptr, CStringW(s.name));
+ ptr += (s.name.GetLength()+1)*2;
- *(WORD*)ptr = 4; ptr += 2;
- *(DWORD*)ptr = s.data.GetLength(); ptr += 4;
- memcpy((char*)ptr, s.data, s.data.GetLength()); ptr += s.name.GetLength();
+ *(WORD*)ptr = 4;
+ ptr += 2;
+ *(DWORD*)ptr = s.data.GetLength();
+ ptr += 4;
+ memcpy((char*)ptr, s.data, s.data.GetLength());
+ ptr += s.name.GetLength();
hr = DeliverPacket(p);
}
- pos = m_seekpos;
+ pos = m_seekpos;
while(pos && SUCCEEDED(hr) && !CheckRequest(NULL))
{
DataChunk* pdc = m_pFile->m_dcs.GetNext(pos);
@@ -788,7 +832,7 @@ HRESULT CRealMediaSplitterOutputPin::DeliverSegments()
}
ASSERT(len == total);
len += 1 + 2*4*(!m_segments.fMerged ? m_segments.GetCount() : 1);
-
+
p->SetCount(len);
BYTE* pData = p->GetData();
@@ -797,16 +841,20 @@ HRESULT CRealMediaSplitterOutputPin::DeliverSegments()
if(m_segments.fMerged)
{
- *((DWORD*)pData) = 1; pData += 4;
- *((DWORD*)pData) = 0; pData += 4;
+ *((DWORD*)pData) = 1;
+ pData += 4;
+ *((DWORD*)pData) = 0;
+ pData += 4;
}
else
{
pos = m_segments.GetHeadPosition();
while(pos)
{
- *((DWORD*)pData) = 1; pData += 4;
- *((DWORD*)pData) = m_segments.GetNext(pos)->offset; pData += 4;
+ *((DWORD*)pData) = 1;
+ pData += 4;
+ *((DWORD*)pData) = m_segments.GetNext(pos)->offset;
+ pData += 4;
}
}
@@ -838,8 +886,8 @@ HRESULT CRealMediaSplitterOutputPin::DeliverPacket(CAutoPtr<Packet> p)
}
if(m_mt.subtype == MEDIASUBTYPE_RV10 || m_mt.subtype == MEDIASUBTYPE_RV20
- || m_mt.subtype == MEDIASUBTYPE_RV30 || m_mt.subtype == MEDIASUBTYPE_RV40
- || m_mt.subtype == MEDIASUBTYPE_RV41)
+ || m_mt.subtype == MEDIASUBTYPE_RV30 || m_mt.subtype == MEDIASUBTYPE_RV40
+ || m_mt.subtype == MEDIASUBTYPE_RV41)
{
CAutoLock cAutoLock(&m_csQueue);
@@ -873,20 +921,26 @@ HRESULT CRealMediaSplitterOutputPin::DeliverPacket(CAutoPtr<Packet> p)
if((hdr&0x40) == 0)
subseq = (*pIn++)&0x7f;
- #define GetWORD(var) \
+#define GetWORD(var) \
var = (var<<8)|(*pIn++); \
var = (var<<8)|(*pIn++); \
-
+
GetWORD(packetlen);
if(packetlen&0x8000) m_segments.fMerged = true;
- if((packetlen&0x4000) == 0) {GetWORD(packetlen); packetlen &= 0x3fffffff;}
+ if((packetlen&0x4000) == 0) {
+ GetWORD(packetlen);
+ packetlen &= 0x3fffffff;
+ }
else packetlen &= 0x3fff;
GetWORD(packetoffset);
- if((packetoffset&0x4000) == 0) {GetWORD(packetoffset); packetoffset &= 0x3fffffff;}
+ if((packetoffset&0x4000) == 0) {
+ GetWORD(packetoffset);
+ packetoffset &= 0x3fffffff;
+ }
else packetoffset &= 0x3fff;
- #undef GetWORD
+#undef GetWORD
if((hdr&0xc0) == 0xc0)
m_segments.rtStart = 10000i64*packetoffset - m_rtStart, packetoffset = 0;
@@ -896,7 +950,7 @@ HRESULT CRealMediaSplitterOutputPin::DeliverPacket(CAutoPtr<Packet> p)
seqnum = *pIn++;
}
- int len2 = min(len - (pIn - pInOrg), packetlen - packetoffset);
+ int len2 = min(len - (pIn - pInOrg), packetlen - packetoffset);
CAutoPtr<segment> s(DNew segment);
s->offset = packetoffset;
@@ -908,13 +962,13 @@ HRESULT CRealMediaSplitterOutputPin::DeliverPacket(CAutoPtr<Packet> p)
if((hdr&0x80) || packetoffset+len2 >= packetlen)
{
- if(S_OK != (hr = DeliverSegments()))
+ if(S_OK != (hr = DeliverSegments()))
return hr;
}
}
}
else if(m_mt.subtype == MEDIASUBTYPE_RAAC || m_mt.subtype == MEDIASUBTYPE_RACP
- || m_mt.subtype == MEDIASUBTYPE_AAC)
+ || m_mt.subtype == MEDIASUBTYPE_AAC)
{
BYTE* ptr = p->GetData()+2;
@@ -988,7 +1042,7 @@ CRMFile::CRMFile(IAsyncReader* pAsyncReader, HRESULT& hr)
hr = Init();
}
-template<typename T>
+template<typename T>
HRESULT CRMFile::Read(T& var)
{
HRESULT hr = ByteRead((BYTE*)&var, sizeof(var));
@@ -1001,8 +1055,8 @@ HRESULT CRMFile::Read(ChunkHdr& hdr)
memset(&hdr, 0, sizeof(hdr));
HRESULT hr;
if(S_OK != (hr = Read(hdr.object_id))
- || S_OK != (hr = Read(hdr.size))
- || S_OK != (hr = Read(hdr.object_version)))
+ || S_OK != (hr = Read(hdr.size))
+ || S_OK != (hr = Read(hdr.object_version)))
return hr;
return S_OK;
}
@@ -1020,10 +1074,10 @@ HRESULT CRMFile::Read(MediaPacketHeader& mph, bool fFull)
UINT8 flags;
if(S_OK != (hr = Read(mph.len))
- || S_OK != (hr = Read(mph.stream))
- || S_OK != (hr = Read(mph.tStart))
- || S_OK != (hr = Read(mph.reserved))
- || S_OK != (hr = Read(flags)))
+ || S_OK != (hr = Read(mph.stream))
+ || S_OK != (hr = Read(mph.tStart))
+ || S_OK != (hr = Read(mph.reserved))
+ || S_OK != (hr = Read(flags)))
return hr;
mph.flags = (MediaPacketHeader::flag_t)flags;
@@ -1067,10 +1121,10 @@ HRESULT CRMFile::Init()
fFirstChunk = false;
- if(pos + hdr.size > GetLength() && hdr.object_id != 'DATA') // truncated?
+ if(pos + hdr.size > GetLength() && hdr.object_id != 'DATA') // truncated?
break;
- if(hdr.object_id == 0x2E7261FD) // '.ra+0xFD'
+ if(hdr.object_id == 0x2E7261FD) // '.ra+0xFD'
return E_FAIL;
if(hdr.object_version == 0)
@@ -1079,7 +1133,11 @@ HRESULT CRMFile::Init()
{
case '.RMF':
if(S_OK != (hr = Read(m_fh.version))) return hr;
- if(hdr.size == 0x10) {WORD w = 0; if(S_OK != (hr = Read(w))) return hr; m_fh.nHeaders = w;}
+ if(hdr.size == 0x10) {
+ WORD w = 0;
+ if(S_OK != (hr = Read(w))) return hr;
+ m_fh.nHeaders = w;
+ }
else if(S_OK != (hr = Read(m_fh.nHeaders))) return hr;
break;
case 'CONT':
@@ -1109,7 +1167,7 @@ HRESULT CRMFile::Init()
m_p.flags = (Properies::flags_t)flags;
break;
case 'MDPR':
- {
+ {
CAutoPtr<MediaProperies> mp(DNew MediaProperies);
if(S_OK != (hr = Read(mp->stream))) return hr;
if(S_OK != (hr = Read(mp->maxBitRate))) return hr;
@@ -1132,19 +1190,19 @@ HRESULT CRMFile::Init()
mp->interlaced = mp->top_field_first = false;
m_mps.AddTail(mp);
break;
- }
+ }
case 'DATA':
- {
+ {
CAutoPtr<DataChunk> dc(DNew DataChunk);
if(S_OK != (hr = Read(dc->nPackets))) return hr;
if(S_OK != (hr = Read(dc->ptrNext))) return hr;
dc->pos = GetPos();
m_dcs.AddTail(dc);
- GetDimensions();
+ GetDimensions();
break;
- }
+ }
case 'INDX':
- {
+ {
IndexChunkHeader ich;
if(S_OK != (hr = Read(ich.nIndices))) return hr;
if(S_OK != (hr = Read(ich.stream))) return hr;
@@ -1164,7 +1222,7 @@ HRESULT CRMFile::Init()
}
}
break;
- }
+ }
case '.SUB':
if(hdr.size > sizeof(hdr))
{
@@ -1176,9 +1234,12 @@ HRESULT CRMFile::Init()
for(char* end = p + size; p < end; )
{
subtitle s;
- s.name = p; p += s.name.GetLength()+1;
- CStringA len(p); p += len.GetLength()+1;
- s.data = CStringA(p, strtol(len, NULL, 10)); p += s.data.GetLength();
+ s.name = p;
+ p += s.name.GetLength()+1;
+ CStringA len(p);
+ p += len.GetLength()+1;
+ s.data = CStringA(p, strtol(len, NULL, 10));
+ p += s.data.GetLength();
m_subs.AddTail(s);
}
}
@@ -1191,12 +1252,12 @@ HRESULT CRMFile::Init()
hdr.size = GetPos() - pos;
}
- ASSERT(hdr.object_id == 'DATA'
- || GetPos() == pos + hdr.size
- || GetPos() == pos + sizeof(hdr));
+ ASSERT(hdr.object_id == 'DATA'
+ || GetPos() == pos + hdr.size
+ || GetPos() == pos + sizeof(hdr));
pos += hdr.size;
- if(pos > GetPos())
+ if(pos > GetPos())
Seek(pos);
}
@@ -1222,7 +1283,7 @@ unsigned int GetBits2(int n, unsigned char*& p, unsigned int& bit_offset, unsign
bit_buffer <<= bit_offset;
}
- return ret;
+ return ret;
}
void GetDimensions(unsigned char* p, unsigned int* wi, unsigned int* hi)
@@ -1237,7 +1298,7 @@ void GetDimensions(unsigned char* p, unsigned int* wi, unsigned int* hi)
unsigned int bit_buffer = *(unsigned int*)p;
bswap(bit_buffer);
- GetBits(13);
+ GetBits(13);
GetBits(13);
@@ -1272,10 +1333,10 @@ void GetDimensions(unsigned char* p, unsigned int* wi, unsigned int* hi)
}
*wi = w;
- *hi = h;
+ *hi = h;
}
-void GetDimensions_X10(unsigned char* p, unsigned int* wi, unsigned int* hi,
+void GetDimensions_X10(unsigned char* p, unsigned int* wi, unsigned int* hi,
bool *interlaced, bool *top_field_first, bool *repeat_field)
{
unsigned int w, h, c;
@@ -1288,7 +1349,7 @@ void GetDimensions_X10(unsigned char* p, unsigned int* wi, unsigned int* hi,
unsigned int bit_buffer = *(unsigned int*)p;
bswap(bit_buffer);
- GetBits(9);
+ GetBits(9);
*interlaced = false;
*top_field_first = false;
@@ -1302,9 +1363,9 @@ void GetDimensions_X10(unsigned char* p, unsigned int* wi, unsigned int* hi,
c = GetBits(1);
if (c)
*top_field_first = true;
- c = GetBits(1);
+ c = GetBits(1);
if (c)
- *repeat_field = true;
+ *repeat_field = true;
c = GetBits(1);
c = GetBits(1);
@@ -1345,7 +1406,7 @@ void GetDimensions_X10(unsigned char* p, unsigned int* wi, unsigned int* hi,
}
*wi = w;
- *hi = h;
+ *hi = h;
}
void CRMFile::GetDimensions()
@@ -1370,7 +1431,7 @@ void CRMFile::GetDimensions()
while(S_OK == Read(mph))
{
if(mph.stream != pmp->stream || mph.len == 0
- || !(mph.flags&MediaPacketHeader::PN_KEYFRAME_FLAG))
+ || !(mph.flags&MediaPacketHeader::PN_KEYFRAME_FLAG))
continue;
BYTE* p = mph.pData.GetData();
@@ -1388,19 +1449,25 @@ void CRMFile::GetDimensions()
{
if((hdr&0x40) == 0) p++;
- #define GetWORD(var) \
+#define GetWORD(var) \
var = (var<<8)|(*p++); \
var = (var<<8)|(*p++); \
-
+
GetWORD(packetlen);
- if((packetlen&0x4000) == 0) {GetWORD(packetlen); packetlen &= 0x3fffffff;}
+ if((packetlen&0x4000) == 0) {
+ GetWORD(packetlen);
+ packetlen &= 0x3fffffff;
+ }
else packetlen &= 0x3fff;
GetWORD(packetoffset);
- if((packetoffset&0x4000) == 0) {GetWORD(packetoffset); packetoffset &= 0x3fffffff;}
+ if((packetoffset&0x4000) == 0) {
+ GetWORD(packetoffset);
+ packetoffset &= 0x3fffffff;
+ }
else packetoffset &= 0x3fff;
- #undef GetWORD
+#undef GetWORD
if((hdr&0xc0) == 0xc0) packetoffset = 0;
else if((hdr&0xc0) == 0x80) packetoffset = packetlen - packetoffset;
@@ -1423,7 +1490,7 @@ void CRMFile::GetDimensions()
}
}
}
-
+
Seek(filepos);
}
}
@@ -1436,7 +1503,10 @@ int CRMFile::GetMasterStream()
while(pos)
{
MediaProperies* pmp = m_mps.GetNext(pos);
- if(pmp->mime == "video/x-pn-realvideo") {s1 = pmp->stream; break;}
+ if(pmp->mime == "video/x-pn-realvideo") {
+ s1 = pmp->stream;
+ break;
+ }
else if(pmp->mime == "audio/x-pn-realaudio" && s2 == -1) s2 = pmp->stream;
}
@@ -1475,10 +1545,13 @@ HRESULT CRealVideoDecoder::InitRV(const CMediaType* pmt)
rvinfo rvi = *(rvinfo*)(pmt->Format() + (pmt->formattype == FORMAT_VideoInfo ? sizeof(VIDEOINFOHEADER) : sizeof(VIDEOINFOHEADER2)));
rvi.bswap();
- #pragma pack(push, 1)
- struct {WORD unk1, w, h, unk3; DWORD unk2, subformat, unk5, format;} i =
- {11, rvi.w, rvi.h, 0, 0, rvi.type1, 1, rvi.type2};
- #pragma pack(pop)
+#pragma pack(push, 1)
+ struct {
+ WORD unk1, w, h, unk3;
+ DWORD unk2, subformat, unk5, format;
+ } i =
+ {11, rvi.w, rvi.h, 0, 0, rvi.type1, 1, rvi.type2};
+#pragma pack(pop)
if(FAILED(hr = RVInit(&i, &m_dwCookie)))
return hr;
@@ -1487,13 +1560,18 @@ HRESULT CRealVideoDecoder::InitRV(const CMediaType* pmt)
{
int nWidthHeight = (1+((rvi.type1>>16)&7));
UINT32* pWH = DNew UINT32[nWidthHeight*2];
- pWH[0] = rvi.w; pWH[1] = rvi.h;
+ pWH[0] = rvi.w;
+ pWH[1] = rvi.h;
for(int i = 2; i < nWidthHeight*2; i++)
pWH[i] = rvi.morewh[i-2]*4;
- #pragma pack(push, 1)
- struct {UINT32 data1; UINT32 data2; UINT32* dimensions;} cmsg_data =
- {0x24, nWidthHeight, pWH};
- #pragma pack(pop)
+#pragma pack(push, 1)
+ struct {
+ UINT32 data1;
+ UINT32 data2;
+ UINT32* dimensions;
+ } cmsg_data =
+ {0x24, nWidthHeight, pWH};
+#pragma pack(pop)
hr = RVCustomMessage(&cmsg_data, m_dwCookie);
delete [] pWH;
}
@@ -1521,7 +1599,7 @@ HRESULT CRealVideoDecoder::Transform(IMediaSample* pIn)
return hr;
long len = pIn->GetActualDataLength();
- if(len <= 0) return S_OK; // nothing to do
+ if(len <= 0) return S_OK; // nothing to do
REFERENCE_TIME rtStart, rtStop;
pIn->GetTime(&rtStart, &rtStop);
@@ -1530,12 +1608,18 @@ HRESULT CRealVideoDecoder::Transform(IMediaSample* pIn)
int offset = 1+((*pDataIn)+1)*8;
- #pragma pack(push, 1)
- struct {DWORD len, unk1, chunks; DWORD* extra; DWORD unk2, timestamp;} transform_in =
- {len - offset, 0, *pDataIn, (DWORD*)(pDataIn+1), 0, (DWORD)(rtStart/10000)};
- struct {DWORD unk1, unk2, timestamp, w, h;} transform_out =
- {0,0,0,0,0};
- #pragma pack(pop)
+#pragma pack(push, 1)
+ struct {
+ DWORD len, unk1, chunks;
+ DWORD* extra;
+ DWORD unk2, timestamp;
+ } transform_in =
+ {len - offset, 0, *pDataIn, (DWORD*)(pDataIn+1), 0, (DWORD)(rtStart/10000)};
+ struct {
+ DWORD unk1, unk2, timestamp, w, h;
+ } transform_out =
+ {0,0,0,0,0};
+#pragma pack(pop)
pDataIn += offset;
@@ -1550,41 +1634,41 @@ HRESULT CRealVideoDecoder::Transform(IMediaSample* pIn)
bool interlaced = false, tmp3, tmp4;
::GetDimensions_X10(pDataIn, &tmp1, &tmp2, &interlaced, &tmp3, &tmp4);
- int size = tmp1*tmp2;
- if( m_lastBuffSizeDim < size )
- {
- _aligned_free(m_pI420);
- _aligned_free(m_pI420Tmp);
-
- m_lastBuffSizeDim = size;
- ATLTRACE("resize out put buff %d" ,size);
- if ( m_pI420 = static_cast<BYTE*>(_aligned_malloc(size*3/2, 16)))
- {
- ATLTRACE(" m_pI420.Allocated 1" );
- memset(m_pI420, 0, size);
- ATLTRACE(" m_pI420.Allocated 2" );
- memset(m_pI420 + size, 0x80, size/2);
- ATLTRACE(" m_pI420.Allocated 3" );
- }
- else
- {
- ATLTRACE(" m_pI420.Allocate fail %d" ,size*3/2);
- return S_OK;
- }
- if( m_pI420Tmp = static_cast<BYTE*>(_aligned_malloc(size*3/2, 16)))
- {
- ATLTRACE(" m_pI420Tmp.Allocated 1" );
- memset(m_pI420Tmp, 0, size);
- ATLTRACE(" m_pI420Tmp.Allocated 2" );
- memset(m_pI420Tmp + size, 0x80, size/2);
- ATLTRACE(" m_pI420Tmp.Allocated 3" );
- }
- else
- {
- ATLTRACE(" m_pI420Tmp.Allocate fail %d" ,size*3/2);
- return S_OK;
- }
- }
+ int size = tmp1*tmp2;
+ if( m_lastBuffSizeDim < size )
+ {
+ _aligned_free(m_pI420);
+ _aligned_free(m_pI420Tmp);
+
+ m_lastBuffSizeDim = size;
+ ATLTRACE("resize out put buff %d" ,size);
+ if ( m_pI420 = static_cast<BYTE*>(_aligned_malloc(size*3/2, 16)))
+ {
+ ATLTRACE(" m_pI420.Allocated 1" );
+ memset(m_pI420, 0, size);
+ ATLTRACE(" m_pI420.Allocated 2" );
+ memset(m_pI420 + size, 0x80, size/2);
+ ATLTRACE(" m_pI420.Allocated 3" );
+ }
+ else
+ {
+ ATLTRACE(" m_pI420.Allocate fail %d" ,size*3/2);
+ return S_OK;
+ }
+ if( m_pI420Tmp = static_cast<BYTE*>(_aligned_malloc(size*3/2, 16)))
+ {
+ ATLTRACE(" m_pI420Tmp.Allocated 1" );
+ memset(m_pI420Tmp, 0, size);
+ ATLTRACE(" m_pI420Tmp.Allocated 2" );
+ memset(m_pI420Tmp + size, 0x80, size/2);
+ ATLTRACE(" m_pI420Tmp.Allocated 3" );
+ }
+ else
+ {
+ ATLTRACE(" m_pI420Tmp.Allocate fail %d" ,size*3/2);
+ return S_OK;
+ }
+ }
hr = RVTransform(pDataIn, (BYTE*)m_pI420, &transform_in, &transform_out, m_dwCookie);
@@ -1593,7 +1677,7 @@ HRESULT CRealVideoDecoder::Transform(IMediaSample* pIn)
if(FAILED(hr))
{
TRACE(_T("RV returned an error code!!!\n"));
- ASSERT(!(transform_out.unk1&1)); // error allowed when the "render" flag is not set
+ ASSERT(!(transform_out.unk1&1)); // error allowed when the "render" flag is not set
// return hr;
}
@@ -1604,7 +1688,7 @@ HRESULT CRealVideoDecoder::Transform(IMediaSample* pIn)
BYTE* pDataOut = NULL;
if(/*FAILED(hr = GetDeliveryBuffer(transform_out.w, transform_out.h, &pOut)) // TODO
&& */ FAILED(hr = GetDeliveryBuffer(m_w, m_h, &pOut))
- || FAILED(hr = pOut->GetPointer(&pDataOut)))
+ || FAILED(hr = pOut->GetPointer(&pDataOut)))
return hr;
BYTE* pI420[3] = {m_pI420, m_pI420Tmp, NULL};
@@ -1634,8 +1718,8 @@ HRESULT CRealVideoDecoder::Transform(IMediaSample* pIn)
CopyBuffer(pDataOut, pI420[0], m_w, m_h, m_w, MEDIASUBTYPE_I420);
-DbgLog((LOG_TRACE, 0, _T("V: rtStart=%I64d, rtStop=%I64d, disc=%d, sync=%d"),
- rtStart, rtStop, pOut->IsDiscontinuity() == S_OK, pOut->IsSyncPoint() == S_OK));
+ DbgLog((LOG_TRACE, 0, _T("V: rtStart=%I64d, rtStop=%I64d, disc=%d, sync=%d"),
+ rtStart, rtStop, pOut->IsDiscontinuity() == S_OK, pOut->IsSyncPoint() == S_OK));
return m_pOutput->Deliver(pOut);
}
@@ -1650,7 +1734,7 @@ void CRealVideoDecoder::Resize(BYTE* pIn, DWORD wi, DWORD hi, BYTE* pOut, DWORD
ResizeWidth(pIn, wi, hi, pOut, wo, ho);
ResizeWidth(pIn + si, wi/2, hi/2, pOut + so, wo/2, ho/2);
ResizeWidth(pIn + si + si/4, wi/2, hi/2, pOut + so + so/4, wo/2, ho/2);
- if(hi == ho) return;
+ if(hi == ho) return;
ResizeHeight(pOut, wo, hi, pIn, wo, ho);
ResizeHeight(pOut + so, wo/2, hi/2, pIn + so, wo/2, ho/2);
ResizeHeight(pOut + so + so/4, wo/2, hi/2, pIn + so + so/4, wo/2, ho/2);
@@ -1661,7 +1745,7 @@ void CRealVideoDecoder::Resize(BYTE* pIn, DWORD wi, DWORD hi, BYTE* pOut, DWORD
ResizeHeight(pIn + si, wi/2, hi/2, pOut + so, wo/2, ho/2);
ResizeHeight(pIn + si + si/4, wi/2, hi/2, pOut + so + so/4, wo/2, ho/2);
if(wi == wo) return;
- ASSERT(0); // this is uncreachable code, but anyway... looks nice being so symmetric
+ ASSERT(0); // this is uncreachable code, but anyway... looks nice being so symmetric
ResizeWidth(pOut, wi, ho, pIn, wo, ho);
ResizeWidth(pOut + so, wi/2, ho/2, pIn + so, wo/2, ho/2);
ResizeWidth(pOut + so + so/4, wi/2, ho/2, pIn + so + so/4, wo/2, ho/2);
@@ -1679,7 +1763,7 @@ void CRealVideoDecoder::ResizeWidth(BYTE* pIn, DWORD wi, DWORD hi, BYTE* pOut, D
void CRealVideoDecoder::ResizeHeight(BYTE* pIn, DWORD wi, DWORD hi, BYTE* pOut, DWORD wo, DWORD ho)
{
- if(hi == ho)
+ if(hi == ho)
{
memcpy(pOut, pIn, wo*ho);
}
@@ -1694,7 +1778,7 @@ void CRealVideoDecoder::ResizeRow(BYTE* pIn, DWORD wi, DWORD dpi, BYTE* pOut, DW
{
ASSERT(wi < wo);
- if(dpo == 1)
+ if(dpo == 1)
{
for(DWORD i = 0, j = 0, dj = (wi<<16)/wo; i < wo-1; i++, pOut++, j += dj)
// pOut[i] = pIn[j>>16];
@@ -1722,9 +1806,9 @@ void CRealVideoDecoder::ResizeRow(BYTE* pIn, DWORD wi, DWORD dpi, BYTE* pOut, DW
HRESULT CRealVideoDecoder::CheckInputType(const CMediaType* mtIn)
{
- if(mtIn->majortype != MEDIATYPE_Video
+ if(mtIn->majortype != MEDIATYPE_Video
|| mtIn->subtype != MEDIASUBTYPE_RV20
- && mtIn->subtype != MEDIASUBTYPE_RV30
+ && mtIn->subtype != MEDIASUBTYPE_RV30
&& mtIn->subtype != MEDIASUBTYPE_RV40
&& mtIn->subtype != MEDIASUBTYPE_RV41)
return VFW_E_TYPE_NOT_ACCEPTED;
@@ -1739,16 +1823,19 @@ HRESULT CRealVideoDecoder::CheckInputType(const CMediaType* mtIn)
if(!m_pInput->IsConnected())
{
- if(m_hDrvDll) {FreeLibrary(m_hDrvDll); m_hDrvDll = NULL;}
+ if(m_hDrvDll) {
+ FreeLibrary(m_hDrvDll);
+ m_hDrvDll = NULL;
+ }
CAtlList<CString> paths;
CString olddll, newdll, oldpath, newpath;
olddll.Format(_T("drv%c3260.dll"), (TCHAR)((mtIn->subtype.Data1>>16)&0xff));
- newdll =
- mtIn->subtype == FOURCCMap('14VR') ? _T("drvi.dll") :
- mtIn->subtype == FOURCCMap('02VR') ? _T("drv2.dll") :
- _T("drvc.dll");
+ newdll =
+ mtIn->subtype == FOURCCMap('14VR') ? _T("drvi.dll") :
+ mtIn->subtype == FOURCCMap('02VR') ? _T("drv2.dll") :
+ _T("drvc.dll");
CRegKey key;
TCHAR buff[_MAX_PATH];
@@ -1773,13 +1860,14 @@ HRESULT CRealVideoDecoder::CheckInputType(const CMediaType* mtIn)
if(!newpath.IsEmpty()) paths.AddTail(newpath + newdll);
if(!oldpath.IsEmpty()) paths.AddTail(oldpath + newdll);
- paths.AddTail(newdll); // default dll paths
+ paths.AddTail(newdll); // default dll paths
if(!newpath.IsEmpty()) paths.AddTail(newpath + olddll);
if(!oldpath.IsEmpty()) paths.AddTail(oldpath + olddll);
- paths.AddTail(olddll); // default dll paths
+ paths.AddTail(olddll); // default dll paths
POSITION pos = paths.GetHeadPosition();
- do { if (pos) m_hDrvDll = LoadLibrary(paths.GetNext(pos));
+ do {
+ if (pos) m_hDrvDll = LoadLibrary(paths.GetNext(pos));
} while(pos && !m_hDrvDll);
if(m_hDrvDll)
@@ -1797,7 +1885,7 @@ HRESULT CRealVideoDecoder::CheckInputType(const CMediaType* mtIn)
if(!RVTransform) RVTransform = (PRVTransform)GetProcAddress(m_hDrvDll, "RV40toYUV420Transform");
}
- if(!m_hDrvDll || !RVCustomMessage
+ if(!m_hDrvDll || !RVCustomMessage
|| !RVFree || !RVHiveMessage
|| !RVInit || !RVTransform)
return VFW_E_TYPE_NOT_ACCEPTED;
@@ -1904,20 +1992,29 @@ HRESULT CRealAudioDecoder::InitRA(const CMediaType* pmt)
WAVEFORMATEX* pwfe = (WAVEFORMATEX*)pmt->Format();
- // someone might be doing cbSize = sizeof(WAVEFORMATEX), chances of
- // cbSize being really sizeof(WAVEFORMATEX) is less than this,
+ // someone might be doing cbSize = sizeof(WAVEFORMATEX), chances of
+ // cbSize being really sizeof(WAVEFORMATEX) is less than this,
// especially with our rm splitter ;)
DWORD cbSize = pwfe->cbSize;
- if(cbSize == sizeof(WAVEFORMATEX)) {ASSERT(0); cbSize = 0;}
+ if(cbSize == sizeof(WAVEFORMATEX)) {
+ ASSERT(0);
+ cbSize = 0;
+ }
WORD wBitsPerSample = pwfe->wBitsPerSample;
if(!wBitsPerSample) wBitsPerSample = 16;
- #pragma pack(push, 1)
- struct {DWORD freq; WORD bpsample, channels, quality; DWORD bpframe, packetsize, extralen; void* extra;} initdata =
- {pwfe->nSamplesPerSec, wBitsPerSample, pwfe->nChannels, 100,
- 0, 0, 0, NULL};
- #pragma pack(pop)
+#pragma pack(push, 1)
+ struct {
+ DWORD freq;
+ WORD bpsample, channels, quality;
+ DWORD bpframe, packetsize, extralen;
+ void* extra;
+ } initdata =
+ { pwfe->nSamplesPerSec, wBitsPerSample, pwfe->nChannels, 100,
+ 0, 0, 0, NULL
+ };
+#pragma pack(pop)
CAutoVectorPtr<BYTE> pBuff;
@@ -1931,7 +2028,7 @@ HRESULT CRealAudioDecoder::InitRA(const CMediaType* pmt)
}
else
{
- if(pmt->FormatLength() <= sizeof(WAVEFORMATEX) + cbSize) // must have type_specific_data appended
+ if(pmt->FormatLength() <= sizeof(WAVEFORMATEX) + cbSize) // must have type_specific_data appended
return VFW_E_TYPE_NOT_ACCEPTED;
BYTE* fmt = pmt->Format() + sizeof(WAVEFORMATEX) + cbSize;
@@ -1950,7 +2047,10 @@ HRESULT CRealAudioDecoder::InitRA(const CMediaType* pmt)
if(m_rai.version2 == 4)
{
p = (BYTE*)((rainfo4*)fmt+1);
- int len = *p++; p += len; len = *p++; p += len;
+ int len = *p++;
+ p += len;
+ len = *p++;
+ p += len;
ASSERT(len == 4);
}
else if(m_rai.version2 == 5)
@@ -1999,8 +2099,8 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
HRESULT hr;
- AM_SAMPLE2_PROPERTIES* const pProps = m_pInput->SampleProps();
- if(pProps->dwStreamId != AM_STREAM_MEDIA)
+ AM_SAMPLE2_PROPERTIES* const pProps = m_pInput->SampleProps();
+ if(pProps->dwStreamId != AM_STREAM_MEDIA)
return m_pOutput->Deliver(pIn);
BYTE* pDataIn = NULL;
@@ -2017,7 +2117,6 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
if(pIn->IsPreroll() == S_OK || rtStart < 0)
return S_OK;
*/
- //
if(S_OK == pIn->IsSyncPoint())
{
@@ -2034,8 +2133,8 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
int sps = m_rai.sub_packet_size;
if(m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_RAAC
- || m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_RACP
- || m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_AAC)
+ || m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_RACP
+ || m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_AAC)
{
src = pDataIn;
dst = pDataIn + len;
@@ -2056,8 +2155,8 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
dst = m_buff + len;
if(sps > 0
- && (m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_COOK
- || m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_ATRC))
+ && (m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_COOK
+ || m_pInput->CurrentMediaType().subtype == MEDIASUBTYPE_ATRC))
{
for(int y = 0; y < h; y++)
{
@@ -2076,26 +2175,28 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
{
// http://mplayerhq.hu/pipermail/mplayer-dev-eng/2002-August/010569.html
- static BYTE sipr_swaps[38][2]={
+ static BYTE sipr_swaps[38][2]= {
{0,63},{1,22},{2,44},{3,90},{5,81},{7,31},{8,86},{9,58},{10,36},{12,68},
{13,39},{14,73},{15,53},{16,69},{17,57},{19,88},{20,34},{21,71},{24,46},
{25,94},{26,54},{28,75},{29,50},{32,70},{33,92},{35,74},{38,85},{40,56},
{42,87},{43,65},{45,59},{48,79},{49,93},{51,89},{55,95},{61,76},{67,83},
- {77,80} };
+ {77,80}
+ };
- int bs=h*w*2/96; // nibbles per subpacket
- for(int n=0;n<38;n++){
+ int bs=h*w*2/96; // nibbles per subpacket
+ for(int n=0; n<38; n++) {
int i=bs*sipr_swaps[n][0];
int o=bs*sipr_swaps[n][1];
- // swap nibbles of block 'i' with 'o' TODO: optimize
- for(int j=0;j<bs;j++){
+ // swap nibbles of block 'i' with 'o' TODO: optimize
+ for(int j=0; j<bs; j++) {
int x=(i&1) ? (src[(i>>1)]>>4) : (src[(i>>1)]&15);
int y=(o&1) ? (src[(o>>1)]>>4) : (src[(o>>1)]&15);
if(o&1) src[(o>>1)]=(src[(o>>1)]&0x0F)|(x<<4);
- else src[(o>>1)]=(src[(o>>1)]&0xF0)|x;
+ else src[(o>>1)]=(src[(o>>1)]&0xF0)|x;
if(i&1) src[(i>>1)]=(src[(i>>1)]&0x0F)|(y<<4);
- else src[(i>>1)]=(src[(i>>1)]&0xF0)|y;
- ++i;++o;
+ else src[(i>>1)]=(src[(i>>1)]&0xF0)|y;
+ ++i;
+ ++o;
}
}
}
@@ -2111,7 +2212,7 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
CComPtr<IMediaSample> pOut;
BYTE* pDataOut = NULL;
if(FAILED(hr = m_pOutput->GetDeliveryBuffer(&pOut, NULL, NULL, 0))
- || FAILED(hr = pOut->GetPointer(&pDataOut)))
+ || FAILED(hr = pOut->GetPointer(&pDataOut)))
return hr;
AM_MEDIA_TYPE* pmt;
@@ -2137,13 +2238,14 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
pOut->SetTime(&rtStart, &rtStop);
pOut->SetMediaTime(NULL, NULL);
- pOut->SetDiscontinuity(m_fBuffDiscontinuity); m_fBuffDiscontinuity = false;
+ pOut->SetDiscontinuity(m_fBuffDiscontinuity);
+ m_fBuffDiscontinuity = false;
pOut->SetSyncPoint(TRUE);
pOut->SetActualDataLength(len);
- DbgLog((LOG_TRACE, 0, _T("A: rtStart=%I64d, rtStop=%I64d, disc=%d, sync=%d"),
- rtStart, rtStop, pOut->IsDiscontinuity() == S_OK, pOut->IsSyncPoint() == S_OK));
+ DbgLog((LOG_TRACE, 0, _T("A: rtStart=%I64d, rtStop=%I64d, disc=%d, sync=%d"),
+ rtStart, rtStop, pOut->IsDiscontinuity() == S_OK, pOut->IsSyncPoint() == S_OK));
if(rtStart >= 0 && S_OK != (hr = m_pOutput->Deliver(pOut)))
return hr;
@@ -2158,26 +2260,29 @@ HRESULT CRealAudioDecoder::Receive(IMediaSample* pIn)
HRESULT CRealAudioDecoder::CheckInputType(const CMediaType* mtIn)
{
- if(mtIn->majortype != MEDIATYPE_Audio
- || mtIn->subtype != MEDIASUBTYPE_14_4
- && mtIn->subtype != MEDIASUBTYPE_28_8
- && mtIn->subtype != MEDIASUBTYPE_ATRC
- && mtIn->subtype != MEDIASUBTYPE_COOK
- && mtIn->subtype != MEDIASUBTYPE_DNET
- && mtIn->subtype != MEDIASUBTYPE_SIPR
- && mtIn->subtype != MEDIASUBTYPE_RAAC
- && mtIn->subtype != MEDIASUBTYPE_RACP
- && mtIn->subtype != MEDIASUBTYPE_AAC)
+ if(mtIn->majortype != MEDIATYPE_Audio
+ || mtIn->subtype != MEDIASUBTYPE_14_4
+ && mtIn->subtype != MEDIASUBTYPE_28_8
+ && mtIn->subtype != MEDIASUBTYPE_ATRC
+ && mtIn->subtype != MEDIASUBTYPE_COOK
+ && mtIn->subtype != MEDIASUBTYPE_DNET
+ && mtIn->subtype != MEDIASUBTYPE_SIPR
+ && mtIn->subtype != MEDIASUBTYPE_RAAC
+ && mtIn->subtype != MEDIASUBTYPE_RACP
+ && mtIn->subtype != MEDIASUBTYPE_AAC)
return VFW_E_TYPE_NOT_ACCEPTED;
if(!m_pInput->IsConnected())
{
- if(m_hDrvDll) {FreeLibrary(m_hDrvDll); m_hDrvDll = NULL;}
+ if(m_hDrvDll) {
+ FreeLibrary(m_hDrvDll);
+ m_hDrvDll = NULL;
+ }
CAtlList<CString> paths;
CString olddll, newdll, oldpath, newpath;
- TCHAR fourcc[5] =
+ TCHAR fourcc[5] =
{
(TCHAR)((mtIn->subtype.Data1>>0)&0xff),
(TCHAR)((mtIn->subtype.Data1>>8)&0xff),
@@ -2196,7 +2301,7 @@ HRESULT CRealAudioDecoder::CheckInputType(const CMediaType* mtIn)
TCHAR buff[_MAX_PATH];
ULONG len = sizeof(buff);
if(ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, _T("Software\\RealNetworks\\Preferences\\DT_Codecs"), KEY_READ)
- && ERROR_SUCCESS == key.QueryStringValue(NULL, buff, &len) && _tcslen(buff) > 0)
+ && ERROR_SUCCESS == key.QueryStringValue(NULL, buff, &len) && _tcslen(buff) > 0)
{
oldpath = buff;
TCHAR c = oldpath[oldpath.GetLength()-1];
@@ -2205,7 +2310,7 @@ HRESULT CRealAudioDecoder::CheckInputType(const CMediaType* mtIn)
}
len = sizeof(buff);
if(ERROR_SUCCESS == key.Open(HKEY_CLASSES_ROOT, _T("Helix\\HelixSDK\\10.0\\Preferences\\DT_Codecs"), KEY_READ)
- && ERROR_SUCCESS == key.QueryStringValue(NULL, buff, &len) && _tcslen(buff) > 0)
+ && ERROR_SUCCESS == key.QueryStringValue(NULL, buff, &len) && _tcslen(buff) > 0)
{
newpath = buff;
TCHAR c = newpath[newpath.GetLength()-1];
@@ -2215,13 +2320,14 @@ HRESULT CRealAudioDecoder::CheckInputType(const CMediaType* mtIn)
if(!newpath.IsEmpty()) paths.AddTail(newpath + newdll);
if(!oldpath.IsEmpty()) paths.AddTail(oldpath + newdll);
- paths.AddTail(newdll); // default dll paths
+ paths.AddTail(newdll); // default dll paths
if(!newpath.IsEmpty()) paths.AddTail(newpath + olddll);
if(!oldpath.IsEmpty()) paths.AddTail(oldpath + olddll);
- paths.AddTail(olddll); // default dll paths
+ paths.AddTail(olddll); // default dll paths
POSITION pos = paths.GetHeadPosition();
- do { if (pos) m_hDrvDll = LoadLibrary(paths.GetNext(pos));
+ do {
+ if (pos) m_hDrvDll = LoadLibrary(paths.GetNext(pos));
} while(pos && !m_hDrvDll);
if(m_hDrvDll)
@@ -2240,8 +2346,8 @@ HRESULT CRealAudioDecoder::CheckInputType(const CMediaType* mtIn)
}
if(!m_hDrvDll || !RACloseCodec || !RADecode /*|| !RAFlush*/
- || !RAFreeDecoder || !RAGetFlavorProperty || !RAInitDecoder
- || !(RAOpenCodec || RAOpenCodec2) /*|| !RASetFlavor*/)
+ || !RAFreeDecoder || !RAGetFlavorProperty || !RAInitDecoder
+ || !(RAOpenCodec || RAOpenCodec2) /*|| !RASetFlavor*/)
return VFW_E_TYPE_NOT_ACCEPTED;
if(m_hDrvDll)
@@ -2266,17 +2372,17 @@ HRESULT CRealAudioDecoder::CheckInputType(const CMediaType* mtIn)
HRESULT CRealAudioDecoder::CheckTransform(const CMediaType* mtIn, const CMediaType* mtOut)
{
return mtIn->majortype == MEDIATYPE_Audio && (mtIn->subtype == MEDIASUBTYPE_14_4
- || mtIn->subtype == MEDIASUBTYPE_28_8
- || mtIn->subtype == MEDIASUBTYPE_ATRC
- || mtIn->subtype == MEDIASUBTYPE_COOK
- || mtIn->subtype == MEDIASUBTYPE_DNET
- || mtIn->subtype == MEDIASUBTYPE_SIPR
- || mtIn->subtype == MEDIASUBTYPE_RAAC
- || mtIn->subtype == MEDIASUBTYPE_RACP
- || mtIn->subtype == MEDIASUBTYPE_AAC)
- && mtOut->majortype == MEDIATYPE_Audio && mtOut->subtype == MEDIASUBTYPE_PCM
- ? S_OK
- : VFW_E_TYPE_NOT_ACCEPTED;
+ || mtIn->subtype == MEDIASUBTYPE_28_8
+ || mtIn->subtype == MEDIASUBTYPE_ATRC
+ || mtIn->subtype == MEDIASUBTYPE_COOK
+ || mtIn->subtype == MEDIASUBTYPE_DNET
+ || mtIn->subtype == MEDIASUBTYPE_SIPR
+ || mtIn->subtype == MEDIASUBTYPE_RAAC
+ || mtIn->subtype == MEDIASUBTYPE_RACP
+ || mtIn->subtype == MEDIASUBTYPE_AAC)
+ && mtOut->majortype == MEDIATYPE_Audio && mtOut->subtype == MEDIASUBTYPE_PCM
+ ? S_OK
+ : VFW_E_TYPE_NOT_ACCEPTED;
}
HRESULT CRealAudioDecoder::DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties)
@@ -2300,17 +2406,17 @@ HRESULT CRealAudioDecoder::DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR
HRESULT hr;
ALLOCATOR_PROPERTIES Actual;
- if(FAILED(hr = pAllocator->SetProperties(pProperties, &Actual)))
+ if(FAILED(hr = pAllocator->SetProperties(pProperties, &Actual)))
return hr;
- return(pProperties->cBuffers > Actual.cBuffers || pProperties->cbBuffer > Actual.cbBuffer
- ? E_FAIL
- : NOERROR);
+ return(pProperties->cBuffers > Actual.cBuffers || pProperties->cbBuffer > Actual.cbBuffer
+ ? E_FAIL
+ : NOERROR);
}
HRESULT CRealAudioDecoder::GetMediaType(int iPosition, CMediaType* pmt)
{
- if(m_pInput->IsConnected() == FALSE) return E_UNEXPECTED;
+ if(m_pInput->IsConnected() == FALSE) return E_UNEXPECTED;
*pmt = m_pInput->CurrentMediaType();
pmt->subtype = MEDIASUBTYPE_PCM;
@@ -2328,7 +2434,7 @@ HRESULT CRealAudioDecoder::GetMediaType(int iPosition, CMediaType* pmt)
if(iPosition == 0 && pwfe->nChannels > 2 && pwfe->nChannels <= 6)
{
- static DWORD chmask[] =
+ static DWORD chmask[] =
{
KSAUDIO_SPEAKER_DIRECTOUT,
KSAUDIO_SPEAKER_MONO,
@@ -2338,7 +2444,7 @@ HRESULT CRealAudioDecoder::GetMediaType(int iPosition, CMediaType* pmt)
KSAUDIO_SPEAKER_QUAD|SPEAKER_FRONT_CENTER,
KSAUDIO_SPEAKER_5POINT1
};
-
+
WAVEFORMATEXTENSIBLE* pwfex = (WAVEFORMATEXTENSIBLE*)pmt->ReallocFormatBuffer(sizeof(WAVEFORMATEXTENSIBLE));
pwfex->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX);
pwfex->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
diff --git a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.h b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.h
index b66c3c495..b97121801 100644
--- a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.h
+++ b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.h
@@ -1,20 +1,20 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -30,46 +30,66 @@
namespace RMFF
{
- typedef struct {union {char id[4]; UINT32 object_id;}; UINT32 size; UINT16 object_version;} ChunkHdr;
- typedef struct {UINT32 version, nHeaders;} FileHdr;
- typedef struct
- {
- UINT32 maxBitRate, avgBitRate;
- UINT32 maxPacketSize, avgPacketSize, nPackets;
- UINT32 tDuration, tPreroll;
- UINT32 ptrIndex, ptrData;
- UINT16 nStreams;
- enum flags_t {PN_SAVE_ENABLED=1, PN_PERFECT_PLAY_ENABLED=2, PN_LIVE_BROADCAST=4} flags;
- } Properies;
- typedef struct
- {
- UINT16 stream;
- UINT32 maxBitRate, avgBitRate;
- UINT32 maxPacketSize, avgPacketSize;
- UINT32 tStart, tPreroll, tDuration;
- CStringA name, mime;
- CAtlArray<BYTE> typeSpecData;
- UINT32 width, height;
- bool interlaced, top_field_first;
- } MediaProperies;
- typedef struct {CStringA title, author, copyright, comment;} ContentDesc;
- typedef struct {UINT64 pos; UINT32 nPackets, ptrNext;} DataChunk;
- typedef struct
- {
- UINT16 len, stream;
- UINT32 tStart;
- UINT8 reserved;
- enum flag_t {PN_RELIABLE_FLAG=1, PN_KEYFRAME_FLAG=2} flags; // UINT8
- CAtlArray<BYTE> pData;
- } MediaPacketHeader;
- typedef struct {UINT32 nIndices; UINT16 stream; UINT32 ptrNext;} IndexChunkHeader;
- typedef struct {UINT32 tStart, ptrFilePos, packet;} IndexRecord;
+typedef struct {
+ union {
+ char id[4];
+ UINT32 object_id;
+ };
+ UINT32 size;
+ UINT16 object_version;
+} ChunkHdr;
+typedef struct {
+ UINT32 version, nHeaders;
+} FileHdr;
+typedef struct
+{
+ UINT32 maxBitRate, avgBitRate;
+ UINT32 maxPacketSize, avgPacketSize, nPackets;
+ UINT32 tDuration, tPreroll;
+ UINT32 ptrIndex, ptrData;
+ UINT16 nStreams;
+ enum flags_t {PN_SAVE_ENABLED=1, PN_PERFECT_PLAY_ENABLED=2, PN_LIVE_BROADCAST=4} flags;
+} Properies;
+typedef struct
+{
+ UINT16 stream;
+ UINT32 maxBitRate, avgBitRate;
+ UINT32 maxPacketSize, avgPacketSize;
+ UINT32 tStart, tPreroll, tDuration;
+ CStringA name, mime;
+ CAtlArray<BYTE> typeSpecData;
+ UINT32 width, height;
+ bool interlaced, top_field_first;
+} MediaProperies;
+typedef struct {
+ CStringA title, author, copyright, comment;
+} ContentDesc;
+typedef struct {
+ UINT64 pos;
+ UINT32 nPackets, ptrNext;
+} DataChunk;
+typedef struct
+{
+ UINT16 len, stream;
+ UINT32 tStart;
+ UINT8 reserved;
+ enum flag_t {PN_RELIABLE_FLAG=1, PN_KEYFRAME_FLAG=2} flags; // UINT8
+ CAtlArray<BYTE> pData;
+} MediaPacketHeader;
+typedef struct {
+ UINT32 nIndices;
+ UINT16 stream;
+ UINT32 ptrNext;
+} IndexChunkHeader;
+typedef struct {
+ UINT32 tStart, ptrFilePos, packet;
+} IndexRecord;
}
struct rvinfo
{
- DWORD dwSize, fcc1, fcc2;
- WORD w, h, bpp;
+ DWORD dwSize, fcc1, fcc2;
+ WORD w, h, bpp;
DWORD unk1, fps, type1, type2;
BYTE morewh[14];
void bswap();
@@ -77,29 +97,29 @@ struct rvinfo
struct rainfo
{
- DWORD fourcc1; // '.', 'r', 'a', 0xfd
- WORD version1; // 4 or 5
- WORD unknown1; // 00 000
- DWORD fourcc2; // .ra4 or .ra5
- DWORD unknown2; // ???
- WORD version2; // 4 or 5
- DWORD header_size; // == 0x4e
- WORD flavor; // codec flavor id
- DWORD coded_frame_size; // coded frame size
- DWORD unknown3; // big number
- DWORD unknown4; // bigger number
- DWORD unknown5; // yet another number
+ DWORD fourcc1; // '.', 'r', 'a', 0xfd
+ WORD version1; // 4 or 5
+ WORD unknown1; // 00 000
+ DWORD fourcc2; // .ra4 or .ra5
+ DWORD unknown2; // ???
+ WORD version2; // 4 or 5
+ DWORD header_size; // == 0x4e
+ WORD flavor; // codec flavor id
+ DWORD coded_frame_size; // coded frame size
+ DWORD unknown3; // big number
+ DWORD unknown4; // bigger number
+ DWORD unknown5; // yet another number
WORD sub_packet_h;
WORD frame_size;
WORD sub_packet_size;
- WORD unknown6; // 00 00
+ WORD unknown6; // 00 00
void bswap();
};
struct rainfo4 : rainfo
{
WORD sample_rate;
- WORD unknown8; // 0
+ WORD unknown8; // 0
WORD sample_size;
WORD channels;
void bswap();
@@ -107,13 +127,13 @@ struct rainfo4 : rainfo
struct rainfo5 : rainfo
{
- BYTE unknown7[6]; // 0, srate, 0
+ BYTE unknown7[6]; // 0, srate, 0
WORD sample_rate;
- WORD unknown8; // 0
+ WORD unknown8; // 0
WORD sample_size;
WORD channels;
- DWORD genr; // "genr"
- DWORD fourcc3; // fourcc
+ DWORD genr; // "genr"
+ DWORD fourcc3; // fourcc
void bswap();
};
@@ -140,7 +160,9 @@ public:
CAutoPtrList<RMFF::DataChunk> m_dcs;
CAutoPtrList<RMFF::IndexRecord> m_irs;
- typedef struct {CStringA name, data;} subtitle;
+ typedef struct {
+ CStringA name, data;
+ } subtitle;
CAtlList<subtitle> m_subs;
int GetMasterStream();
@@ -149,12 +171,15 @@ public:
class CRealMediaSplitterOutputPin : public CBaseSplitterOutputPin
{
private:
- typedef struct {CAtlArray<BYTE> data; DWORD offset;} segment;
+ typedef struct {
+ CAtlArray<BYTE> data;
+ DWORD offset;
+ } segment;
class CSegments : public CAutoPtrList<segment>, public CCritSec
{
public:
- REFERENCE_TIME rtStart;
+ REFERENCE_TIME rtStart;
bool fDiscontinuity, fSyncPoint, fMerged;
void Clear()
{
@@ -180,7 +205,7 @@ public:
};
class __declspec(uuid("E21BE468-5C18-43EB-B0CC-DB93A847D769"))
-CRealMediaSplitterFilter : public CBaseSplitterFilter
+ CRealMediaSplitterFilter : public CBaseSplitterFilter
{
protected:
CAutoPtr<CRMFile> m_pFile;
@@ -205,7 +230,7 @@ public:
};
class __declspec(uuid("765035B3-5944-4A94-806B-20EE3415F26F"))
-CRealMediaSourceFilter : public CRealMediaSplitterFilter
+ CRealMediaSourceFilter : public CRealMediaSplitterFilter
{
public:
CRealMediaSourceFilter(LPUNKNOWN pUnk, HRESULT* phr);
@@ -214,7 +239,7 @@ public:
////////////
class __declspec(uuid("238D0F23-5DC9-45A6-9BE2-666160C324DD"))
-CRealVideoDecoder : public CBaseVideoFilter
+ CRealVideoDecoder : public CBaseVideoFilter
{
typedef HRESULT (WINAPI *PRVCustomMessage)(void*, DWORD);
typedef HRESULT (WINAPI *PRVFree)(DWORD);
@@ -263,7 +288,7 @@ public:
};
class __declspec(uuid("941A4793-A705-4312-8DFC-C11CA05F397E"))
-CRealAudioDecoder : public CTransformFilter
+ CRealAudioDecoder : public CTransformFilter
{
typedef HRESULT (WINAPI *PCloseCodec)(DWORD);
typedef HRESULT (WINAPI *PDecode)(DWORD,BYTE*,long,BYTE*,long*,long);
@@ -317,10 +342,8 @@ public:
HRESULT StartStreaming();
HRESULT StopStreaming();
- HRESULT EndOfStream();
- HRESULT BeginFlush();
- HRESULT EndFlush();
- HRESULT NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
+ HRESULT EndOfStream();
+ HRESULT BeginFlush();
+ HRESULT EndFlush();
+ HRESULT NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
};
-
-
diff --git a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcproj b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcproj
index 4e7b32fe4..dabeea2d3 100644
--- a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcproj
+++ b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="RealMediaSplitter"
ProjectGUID="{53CF9195-19DB-457D-8F55-8DB1706DFA84}"
RootNamespace="RealMediaSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -161,7 +159,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -221,7 +218,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -282,7 +278,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -356,7 +351,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -430,7 +424,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -504,7 +497,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcxproj b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcxproj
index 5a72a9c16..00732469a 100644
--- a/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcxproj
+++ b/src/filters/parser/RealMediaSplitter/RealMediaSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{53CF9195-19DB-457D-8F55-8DB1706DFA84}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -166,7 +151,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -179,7 +163,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -196,7 +179,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -210,7 +192,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -233,7 +214,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -254,7 +234,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -276,7 +255,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/RealMediaSplitter/resource.h b/src/filters/parser/RealMediaSplitter/resource.h
index 68f7b566d..713badf0e 100644
--- a/src/filters/parser/RealMediaSplitter/resource.h
+++ b/src/filters/parser/RealMediaSplitter/resource.h
@@ -3,7 +3,7 @@
// Used by RealMediaSplitter.rc
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
diff --git a/src/filters/parser/RealMediaSplitter/stdafx.cpp b/src/filters/parser/RealMediaSplitter/stdafx.cpp
index 8a7154bc7..bea3f980a 100644
--- a/src/filters/parser/RealMediaSplitter/stdafx.cpp
+++ b/src/filters/parser/RealMediaSplitter/stdafx.cpp
@@ -1,29 +1,22 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// RealMediaSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/RealMediaSplitter/stdafx.h b/src/filters/parser/RealMediaSplitter/stdafx.h
index f7ba733d1..eb1a0a29e 100644
--- a/src/filters/parser/RealMediaSplitter/stdafx.h
+++ b/src/filters/parser/RealMediaSplitter/stdafx.h
@@ -1,29 +1,24 @@
-/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program 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 2, or (at your option)
* any later version.
- *
+ *
* This Program 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 GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/RoQSplitter/RoQSplitter.cpp b/src/filters/parser/RoQSplitter/RoQSplitter.cpp
index 78330a3a9..71c7c4e8d 100644
--- a/src/filters/parser/RoQSplitter/RoQSplitter.cpp
+++ b/src/filters/parser/RoQSplitter/RoQSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/RoQSplitter/RoQSplitter.h b/src/filters/parser/RoQSplitter/RoQSplitter.h
index 3633c9075..e8b57a0ae 100644
--- a/src/filters/parser/RoQSplitter/RoQSplitter.h
+++ b/src/filters/parser/RoQSplitter/RoQSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/RoQSplitter/RoQSplitter.vcproj b/src/filters/parser/RoQSplitter/RoQSplitter.vcproj
index adc849a10..47e69e7c9 100644
--- a/src/filters/parser/RoQSplitter/RoQSplitter.vcproj
+++ b/src/filters/parser/RoQSplitter/RoQSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="RoQSplitter"
ProjectGUID="{23E1898F-8262-435C-8848-D4D8824E6D71}"
RootNamespace="RoQSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/RoQSplitter/RoQSplitter.vcxproj b/src/filters/parser/RoQSplitter/RoQSplitter.vcxproj
index edd4775d7..aa325907b 100644
--- a/src/filters/parser/RoQSplitter/RoQSplitter.vcxproj
+++ b/src/filters/parser/RoQSplitter/RoQSplitter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{23E1898F-8262-435C-8848-D4D8824E6D71}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -189,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -200,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -222,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/RoQSplitter/stdafx.cpp b/src/filters/parser/RoQSplitter/stdafx.cpp
index 4284c08d9..13934d005 100644
--- a/src/filters/parser/RoQSplitter/stdafx.cpp
+++ b/src/filters/parser/RoQSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// RoQSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/RoQSplitter/stdafx.h b/src/filters/parser/RoQSplitter/stdafx.h
index e3ebbbb58..0ddde4f7d 100644
--- a/src/filters/parser/RoQSplitter/stdafx.h
+++ b/src/filters/parser/RoQSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/SSFSplitter/SSFSplitter.cpp b/src/filters/parser/SSFSplitter/SSFSplitter.cpp
index 0ddbab434..917e35cc0 100644
--- a/src/filters/parser/SSFSplitter/SSFSplitter.cpp
+++ b/src/filters/parser/SSFSplitter/SSFSplitter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/SSFSplitter/SSFSplitter.h b/src/filters/parser/SSFSplitter/SSFSplitter.h
index ab03ca8fc..35f95c507 100644
--- a/src/filters/parser/SSFSplitter/SSFSplitter.h
+++ b/src/filters/parser/SSFSplitter/SSFSplitter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/SSFSplitter/SSFSplitter.vcproj b/src/filters/parser/SSFSplitter/SSFSplitter.vcproj
index 98599687c..ae3984aed 100644
--- a/src/filters/parser/SSFSplitter/SSFSplitter.vcproj
+++ b/src/filters/parser/SSFSplitter/SSFSplitter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="SSFSplitter"
ProjectGUID="{CC07B80F-D44F-41A9-9E37-5F2B47B46EDC}"
RootNamespace="SSFSplitter"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -272,7 +268,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -345,7 +340,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/SSFSplitter/SSFSplitter.vcxproj b/src/filters/parser/SSFSplitter/SSFSplitter.vcxproj
index 5fd13d633..62ad3772f 100644
--- a/src/filters/parser/SSFSplitter/SSFSplitter.vcxproj
+++ b/src/filters/parser/SSFSplitter/SSFSplitter.vcxproj
@@ -137,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -150,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -161,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -175,7 +172,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -186,7 +182,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -208,7 +203,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -228,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -250,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/SSFSplitter/stdafx.cpp b/src/filters/parser/SSFSplitter/stdafx.cpp
index 924d2f316..13934d005 100644
--- a/src/filters/parser/SSFSplitter/stdafx.cpp
+++ b/src/filters/parser/SSFSplitter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// SSFSplitter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/SSFSplitter/stdafx.h b/src/filters/parser/SSFSplitter/stdafx.h
index 043e18b3c..55763f8a3 100644
--- a/src/filters/parser/SSFSplitter/stdafx.h
+++ b/src/filters/parser/SSFSplitter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp b/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp
index 571bea2ca..f4003196c 100644
--- a/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp
+++ b/src/filters/parser/StreamDriveThru/StreamDriveThru.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,13 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#include "stdafx.h"
-#include "streamdrivethru.h"
+#include "StreamDriveThru.h"
#include "../../../DSUtil/DSUtil.h"
#ifdef REGISTER_FILTER
diff --git a/src/filters/parser/StreamDriveThru/StreamDriveThru.h b/src/filters/parser/StreamDriveThru/StreamDriveThru.h
index ee6f552e8..d55b7aeca 100644
--- a/src/filters/parser/StreamDriveThru/StreamDriveThru.h
+++ b/src/filters/parser/StreamDriveThru/StreamDriveThru.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/parser/StreamDriveThru/StreamDriveThru.vcproj b/src/filters/parser/StreamDriveThru/StreamDriveThru.vcproj
index cfeb46501..bb62cc8f0 100644
--- a/src/filters/parser/StreamDriveThru/StreamDriveThru.vcproj
+++ b/src/filters/parser/StreamDriveThru/StreamDriveThru.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="StreamDriveThru"
ProjectGUID="{AE399B7E-2B2C-4A96-9016-C5C74B0A2FA0}"
RootNamespace="streamdrivethru"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -215,7 +212,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -274,7 +270,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -347,7 +342,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -420,7 +414,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -494,7 +487,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/parser/StreamDriveThru/StreamDriveThru.vcxproj b/src/filters/parser/StreamDriveThru/StreamDriveThru.vcxproj
index 6c6debf49..a5113f59c 100644
--- a/src/filters/parser/StreamDriveThru/StreamDriveThru.vcxproj
+++ b/src/filters/parser/StreamDriveThru/StreamDriveThru.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{AE399B7E-2B2C-4A96-9016-C5C74B0A2FA0}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -190,7 +173,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -202,7 +184,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -224,7 +205,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -244,7 +224,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -266,7 +245,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/parser/StreamDriveThru/stdafx.cpp b/src/filters/parser/StreamDriveThru/stdafx.cpp
index 6915aebce..13934d005 100644
--- a/src/filters/parser/StreamDriveThru/stdafx.cpp
+++ b/src/filters/parser/StreamDriveThru/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// streamdrivethru.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/parser/StreamDriveThru/stdafx.h b/src/filters/parser/StreamDriveThru/stdafx.h
index e0482b2bb..b55bcba79 100644
--- a/src/filters/parser/StreamDriveThru/stdafx.h
+++ b/src/filters/parser/StreamDriveThru/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/reader/AsyncReader/AsyncReader.vcproj b/src/filters/reader/AsyncReader/AsyncReader.vcproj
index 6f13932cb..65056c14b 100644
--- a/src/filters/reader/AsyncReader/AsyncReader.vcproj
+++ b/src/filters/reader/AsyncReader/AsyncReader.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="AsyncReader"
ProjectGUID="{9F31D122-E84D-485A-A58D-09DAD01A56CE}"
RootNamespace="AsyncReader"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -214,7 +211,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/reader/AsyncReader/AsyncReader.vcxproj b/src/filters/reader/AsyncReader/AsyncReader.vcxproj
index 3cfc2f99c..f6cd916ce 100644
--- a/src/filters/reader/AsyncReader/AsyncReader.vcxproj
+++ b/src/filters/reader/AsyncReader/AsyncReader.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9F31D122-E84D-485A-A58D-09DAD01A56CE}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -100,7 +85,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -111,7 +95,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -125,7 +108,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/reader/AsyncReader/stdafx.cpp b/src/filters/reader/AsyncReader/stdafx.cpp
index 0c3775605..a27b824da 100644
--- a/src/filters/reader/AsyncReader/stdafx.cpp
+++ b/src/filters/reader/AsyncReader/stdafx.cpp
@@ -1,8 +1 @@
-// stdafx.cpp : source file that includes just the standard includes
-// asyncreader.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/reader/AsyncReader/stdafx.h b/src/filters/reader/AsyncReader/stdafx.h
index 811820782..8dfa6c6cf 100644
--- a/src/filters/reader/AsyncReader/stdafx.h
+++ b/src/filters/reader/AsyncReader/stdafx.h
@@ -1,14 +1,8 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
-// TODO: reference additional headers your program requires here
#include <afx.h>
#include <streams.h>
diff --git a/src/filters/reader/CDDAReader/CDDAReader.cpp b/src/filters/reader/CDDAReader/CDDAReader.cpp
index f0c5357df..bc74ac8a5 100644
--- a/src/filters/reader/CDDAReader/CDDAReader.cpp
+++ b/src/filters/reader/CDDAReader/CDDAReader.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/reader/CDDAReader/CDDAReader.h b/src/filters/reader/CDDAReader/CDDAReader.h
index f0a9286ee..cccee0987 100644
--- a/src/filters/reader/CDDAReader/CDDAReader.h
+++ b/src/filters/reader/CDDAReader/CDDAReader.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -25,8 +25,8 @@
#include <winddk/devioctl.h>
#include <winddk/ntddcdrm.h>
#include <qnetwork.h>
-#include "../asyncreader/asyncio.h"
-#include "../asyncreader/asyncrdr.h"
+#include "../AsyncReader/asyncio.h"
+#include "../AsyncReader/asyncrdr.h"
typedef struct {UINT chunkID; long chunkSize;} ChunkHeader;
diff --git a/src/filters/reader/CDDAReader/CDDAReader.vcproj b/src/filters/reader/CDDAReader/CDDAReader.vcproj
index e44c89df3..5c7a7d1c2 100644
--- a/src/filters/reader/CDDAReader/CDDAReader.vcproj
+++ b/src/filters/reader/CDDAReader/CDDAReader.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="CDDAReader"
ProjectGUID="{543D40E9-8CA6-4E4B-9936-90CBA562B268}"
RootNamespace="CDDAReader"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -506,7 +499,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/reader/CDDAReader/CDDAReader.vcxproj b/src/filters/reader/CDDAReader/CDDAReader.vcxproj
index 16c5003f1..0aa4938e8 100644
--- a/src/filters/reader/CDDAReader/CDDAReader.vcxproj
+++ b/src/filters/reader/CDDAReader/CDDAReader.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{543D40E9-8CA6-4E4B-9936-90CBA562B268}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -246,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -257,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -271,7 +250,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/reader/CDDAReader/stdafx.cpp b/src/filters/reader/CDDAReader/stdafx.cpp
index d431dab84..13934d005 100644
--- a/src/filters/reader/CDDAReader/stdafx.cpp
+++ b/src/filters/reader/CDDAReader/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// cddareader.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/reader/CDDAReader/stdafx.h b/src/filters/reader/CDDAReader/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/reader/CDDAReader/stdafx.h
+++ b/src/filters/reader/CDDAReader/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/reader/CDXAReader/CDXAReader.cpp b/src/filters/reader/CDXAReader/CDXAReader.cpp
index e50c06d79..aa17fe3d6 100644
--- a/src/filters/reader/CDXAReader/CDXAReader.cpp
+++ b/src/filters/reader/CDXAReader/CDXAReader.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/reader/CDXAReader/CDXAReader.h b/src/filters/reader/CDXAReader/CDXAReader.h
index 128ad0059..f923b9429 100644
--- a/src/filters/reader/CDXAReader/CDXAReader.h
+++ b/src/filters/reader/CDXAReader/CDXAReader.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -22,8 +22,8 @@
#pragma once
#include <atlbase.h>
-#include "../asyncreader/asyncio.h"
-#include "../asyncreader/asyncrdr.h"
+#include "../AsyncReader/asyncio.h"
+#include "../AsyncReader/asyncrdr.h"
class CCDXAStream : public CAsyncStream
{
diff --git a/src/filters/reader/CDXAReader/CDXAReader.vcproj b/src/filters/reader/CDXAReader/CDXAReader.vcproj
index 7af45f974..3c21a978c 100644
--- a/src/filters/reader/CDXAReader/CDXAReader.vcproj
+++ b/src/filters/reader/CDXAReader/CDXAReader.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="CDXAReader"
ProjectGUID="{4D3B4FF4-535A-4201-AB7D-9AEC1E737A95}"
RootNamespace="CDXAReader"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -506,7 +499,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/reader/CDXAReader/CDXAReader.vcxproj b/src/filters/reader/CDXAReader/CDXAReader.vcxproj
index 2aa83fd0d..2318fd502 100644
--- a/src/filters/reader/CDXAReader/CDXAReader.vcxproj
+++ b/src/filters/reader/CDXAReader/CDXAReader.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4D3B4FF4-535A-4201-AB7D-9AEC1E737A95}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -246,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -257,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -271,7 +250,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/reader/CDXAReader/stdafx.cpp b/src/filters/reader/CDXAReader/stdafx.cpp
index d5332bbe6..13934d005 100644
--- a/src/filters/reader/CDXAReader/stdafx.cpp
+++ b/src/filters/reader/CDXAReader/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// cdxareader.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/reader/CDXAReader/stdafx.h b/src/filters/reader/CDXAReader/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/reader/CDXAReader/stdafx.h
+++ b/src/filters/reader/CDXAReader/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/reader/UDPReader/UDPReader.cpp b/src/filters/reader/UDPReader/UDPReader.cpp
index 51a20d44d..1875cb4ea 100644
--- a/src/filters/reader/UDPReader/UDPReader.cpp
+++ b/src/filters/reader/UDPReader/UDPReader.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/reader/UDPReader/UDPReader.h b/src/filters/reader/UDPReader/UDPReader.h
index 255520d6a..42f778e34 100644
--- a/src/filters/reader/UDPReader/UDPReader.h
+++ b/src/filters/reader/UDPReader/UDPReader.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -22,8 +22,8 @@
#pragma once
#include <atlbase.h>
-#include "../asyncreader/asyncio.h"
-#include "../asyncreader/asyncrdr.h"
+#include "../AsyncReader/asyncio.h"
+#include "../AsyncReader/asyncrdr.h"
class CUDPStream : public CAsyncStream, public CAMThread
{
diff --git a/src/filters/reader/UDPReader/UDPReader.vcproj b/src/filters/reader/UDPReader/UDPReader.vcproj
index 1915649ea..37637f34d 100644
--- a/src/filters/reader/UDPReader/UDPReader.vcproj
+++ b/src/filters/reader/UDPReader/UDPReader.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="UDPReader"
ProjectGUID="{3020FF9B-8202-488D-B137-11DECC510E6E}"
RootNamespace="UDPReader"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
UsePrecompiledHeader="2"
@@ -101,7 +100,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
UsePrecompiledHeader="2"
@@ -159,7 +157,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
UsePrecompiledHeader="2"
@@ -217,7 +214,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -276,7 +272,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
UsePrecompiledHeader="2"
@@ -349,7 +344,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -421,7 +415,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
UsePrecompiledHeader="2"
@@ -496,7 +489,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/reader/UDPReader/UDPReader.vcxproj b/src/filters/reader/UDPReader/UDPReader.vcxproj
index 448ed4e32..20b538ca0 100644
--- a/src/filters/reader/UDPReader/UDPReader.vcxproj
+++ b/src/filters/reader/UDPReader/UDPReader.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3020FF9B-8202-488D-B137-11DECC510E6E}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -165,7 +150,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -177,7 +161,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -192,7 +175,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -204,7 +186,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -226,7 +207,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -245,7 +225,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -268,7 +247,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/reader/UDPReader/stdafx.cpp b/src/filters/reader/UDPReader/stdafx.cpp
index a416647fd..13934d005 100644
--- a/src/filters/reader/UDPReader/stdafx.cpp
+++ b/src/filters/reader/UDPReader/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// udpreader.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/reader/UDPReader/stdafx.h b/src/filters/reader/UDPReader/stdafx.h
index f4d095421..e39f2d6f1 100644
--- a/src/filters/reader/UDPReader/stdafx.h
+++ b/src/filters/reader/UDPReader/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,10 +30,8 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <afxsock.h>
#include <atlcoll.h>
-// TODO: reference additional headers your program requires here
-
#include <streams.h>
diff --git a/src/filters/reader/VTSReader/VTSReader.cpp b/src/filters/reader/VTSReader/VTSReader.cpp
index 61f4f55bb..9fb53e679 100644
--- a/src/filters/reader/VTSReader/VTSReader.cpp
+++ b/src/filters/reader/VTSReader/VTSReader.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,13 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#include "stdafx.h"
-#include "../../../decss/VobFile.h"
+#include "../../../DeCSS/VobFile.h"
#include "VTSReader.h"
#include "../../../DSUtil/DSUtil.h"
diff --git a/src/filters/reader/VTSReader/VTSReader.h b/src/filters/reader/VTSReader/VTSReader.h
index 425d3976b..4326f43aa 100644
--- a/src/filters/reader/VTSReader/VTSReader.h
+++ b/src/filters/reader/VTSReader/VTSReader.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -22,8 +22,8 @@
#pragma once
#include <atlbase.h>
-#include "../asyncreader/asyncio.h"
-#include "../asyncreader/asyncrdr.h"
+#include "../AsyncReader/asyncio.h"
+#include "../AsyncReader/asyncrdr.h"
class CVobFile;
diff --git a/src/filters/reader/VTSReader/VTSReader.vcproj b/src/filters/reader/VTSReader/VTSReader.vcproj
index c80199710..03bf28ed3 100644
--- a/src/filters/reader/VTSReader/VTSReader.vcproj
+++ b/src/filters/reader/VTSReader/VTSReader.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="VTSReader"
ProjectGUID="{664E726B-EEEE-403A-AC15-345D9C9E1375}"
RootNamespace="VTSReader"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -215,7 +212,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -274,7 +270,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -346,7 +341,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/reader/VTSReader/VTSReader.vcxproj b/src/filters/reader/VTSReader/VTSReader.vcxproj
index 61b6a10e5..a8600e8e8 100644
--- a/src/filters/reader/VTSReader/VTSReader.vcxproj
+++ b/src/filters/reader/VTSReader/VTSReader.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{664E726B-EEEE-403A-AC15-345D9C9E1375}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -190,7 +173,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -202,7 +184,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -223,7 +204,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -242,7 +222,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -264,7 +243,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/reader/VTSReader/stdafx.cpp b/src/filters/reader/VTSReader/stdafx.cpp
index edb7e9517..13934d005 100644
--- a/src/filters/reader/VTSReader/stdafx.cpp
+++ b/src/filters/reader/VTSReader/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// vtsreader.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/reader/VTSReader/stdafx.h b/src/filters/reader/VTSReader/stdafx.h
index 4c5d23feb..6188a0bd8 100644
--- a/src/filters/reader/VTSReader/stdafx.h
+++ b/src/filters/reader/VTSReader/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,8 +30,6 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
diff --git a/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.cpp b/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.cpp
index 2572d1dab..03b054272 100644
--- a/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.cpp
+++ b/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -105,27 +105,27 @@ CFilterApp theApp;
#endif
CMpcAudioRenderer::CMpcAudioRenderer(LPUNKNOWN punk, HRESULT *phr)
-: CBaseRenderer(__uuidof(this), NAME("MPC - Audio Renderer"), punk, phr)
-, m_pDSBuffer (NULL )
-, m_pSoundTouch (NULL )
-, m_pDS (NULL )
-, m_dwDSWriteOff (0 )
-, m_nDSBufSize (0 )
-, m_dRate (1.0 )
-, m_pReferenceClock (NULL )
-, m_pWaveFileFormat (NULL )
-, pMMDevice (NULL)
-, pAudioClient (NULL )
-, pRenderClient (NULL )
-, useWASAPI (true )
-, nFramesInBuffer (0 )
-, hnsPeriod (0 )
-, hTask (NULL )
-, bufferSize (0)
-, isAudioClientStarted (false)
-, lastBufferTime (0)
-, hnsActualDuration (0)
-, m_lVolume(DSBVOLUME_MIN)
+ : CBaseRenderer(__uuidof(this), NAME("MPC - Audio Renderer"), punk, phr)
+ , m_pDSBuffer (NULL )
+ , m_pSoundTouch (NULL )
+ , m_pDS (NULL )
+ , m_dwDSWriteOff (0 )
+ , m_nDSBufSize (0 )
+ , m_dRate (1.0 )
+ , m_pReferenceClock (NULL )
+ , m_pWaveFileFormat (NULL )
+ , pMMDevice (NULL)
+ , pAudioClient (NULL )
+ , pRenderClient (NULL )
+ , useWASAPI (true )
+ , nFramesInBuffer (0 )
+ , hnsPeriod (0 )
+ , hTask (NULL )
+ , bufferSize (0)
+ , isAudioClientStarted (false)
+ , lastBufferTime (0)
+ , hnsActualDuration (0)
+ , m_lVolume(DSBVOLUME_MIN)
{
HMODULE hLib;
@@ -208,7 +208,7 @@ HRESULT CMpcAudioRenderer::CheckMediaType(const CMediaType *pmt)
TRACE(_T("CMpcAudioRenderer::CheckMediaType Error on check audio client"));
return hr;
}
- if (!pAudioClient)
+ if (!pAudioClient)
{
TRACE(_T("CMpcAudioRenderer::CheckMediaType Error, audio client not loaded"));
return VFW_E_CANNOT_CONNECT;
@@ -252,7 +252,7 @@ BOOL CMpcAudioRenderer::ScheduleSample(IMediaSample *pMediaSample)
// If we don't have a reference clock then we cannot set up the advise
// time so we simply set the event indicating an image to render. This
// will cause us to run flat out without any timing or synchronisation
- if (hr == S_OK)
+ if (hr == S_OK)
{
EXECUTE_ASSERT(SetEvent((HANDLE) m_RenderEvent));
return TRUE;
@@ -380,7 +380,7 @@ STDMETHODIMP CMpcAudioRenderer::Run(REFERENCE_TIME tStart)
if (useWASAPI)
{
hr=CheckAudioClient(m_pWaveFileFormat);
- if (FAILED(hr))
+ if (FAILED(hr))
{
TRACE(_T("CMpcAudioRenderer::Run Error on check audio client"));
return hr;
@@ -395,21 +395,21 @@ STDMETHODIMP CMpcAudioRenderer::Run(REFERENCE_TIME tStart)
}
else
{
- if (m_pDSBuffer &&
+ if (m_pDSBuffer &&
m_pPosition &&
- m_pWaveFileFormat &&
- SUCCEEDED(m_pPosition->GetRate(&m_dRate)))
+ m_pWaveFileFormat &&
+ SUCCEEDED(m_pPosition->GetRate(&m_dRate)))
{
if (m_dRate < 1.0)
- {
- hr = m_pDSBuffer->SetFrequency ((long)(m_pWaveFileFormat->nSamplesPerSec * m_dRate));
- if (FAILED (hr)) return hr;
- }
+ {
+ hr = m_pDSBuffer->SetFrequency ((long)(m_pWaveFileFormat->nSamplesPerSec * m_dRate));
+ if (FAILED (hr)) return hr;
+ }
else
- {
- hr = m_pDSBuffer->SetFrequency ((long)m_pWaveFileFormat->nSamplesPerSec);
- m_pSoundTouch->setRateChange((float)(m_dRate-1.0)*100);
- }
+ {
+ hr = m_pDSBuffer->SetFrequency ((long)m_pWaveFileFormat->nSamplesPerSec);
+ m_pSoundTouch->setRateChange((float)(m_dRate-1.0)*100);
+ }
}
ClearBuffer();
@@ -419,12 +419,12 @@ STDMETHODIMP CMpcAudioRenderer::Run(REFERENCE_TIME tStart)
return hr;
}
-STDMETHODIMP CMpcAudioRenderer::Stop()
+STDMETHODIMP CMpcAudioRenderer::Stop()
{
if (m_pDSBuffer) m_pDSBuffer->Stop();
isAudioClientStarted=false;
- return CBaseRenderer::Stop();
+ return CBaseRenderer::Stop();
};
@@ -434,13 +434,13 @@ STDMETHODIMP CMpcAudioRenderer::Pause()
if (pAudioClient && isAudioClientStarted) pAudioClient->Stop();
isAudioClientStarted=false;
- return CBaseRenderer::Pause();
+ return CBaseRenderer::Pause();
};
// === IDispatch
STDMETHODIMP CMpcAudioRenderer::GetTypeInfoCount(UINT * pctinfo)
{
- return E_NOTIMPL;
+ return E_NOTIMPL;
}
STDMETHODIMP CMpcAudioRenderer::GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo** pptinfo)
@@ -450,19 +450,19 @@ STDMETHODIMP CMpcAudioRenderer::GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo**
STDMETHODIMP CMpcAudioRenderer::GetIDsOfNames(REFIID riid, OLECHAR** rgszNames, UINT cNames, LCID lcid, DISPID* rgdispid)
{
- return E_NOTIMPL;
+ return E_NOTIMPL;
}
STDMETHODIMP CMpcAudioRenderer::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr)
{
- return E_NOTIMPL;
+ return E_NOTIMPL;
}
// === IBasicAudio
STDMETHODIMP CMpcAudioRenderer::put_Volume(long lVolume)
{
m_lVolume = lVolume;
- if (!useWASAPI && m_pDSBuffer)
+ if (!useWASAPI && m_pDSBuffer)
return m_pDSBuffer->SetVolume(lVolume);
return S_OK;
@@ -470,7 +470,7 @@ STDMETHODIMP CMpcAudioRenderer::put_Volume(long lVolume)
STDMETHODIMP CMpcAudioRenderer::get_Volume(long *plVolume)
{
- if (!useWASAPI && m_pDSBuffer)
+ if (!useWASAPI && m_pDSBuffer)
return m_pDSBuffer->GetVolume(plVolume);
return S_OK;
@@ -478,7 +478,7 @@ STDMETHODIMP CMpcAudioRenderer::get_Volume(long *plVolume)
STDMETHODIMP CMpcAudioRenderer::put_Balance(long lBalance)
{
- if (!useWASAPI && m_pDSBuffer)
+ if (!useWASAPI && m_pDSBuffer)
return m_pDSBuffer->SetPan(lBalance);
return S_OK;
@@ -507,7 +507,7 @@ HRESULT CMpcAudioRenderer::GetReferenceClockInterface(REFIID riid, void **ppv)
m_pReferenceClock->AddRef();
hr = SetSyncSource(m_pReferenceClock);
- if (FAILED(hr))
+ if (FAILED(hr))
{
SetSyncSource(NULL);
return hr;
@@ -547,10 +547,10 @@ HRESULT CMpcAudioRenderer::CreateDSBuffer()
ZeroMemory(&bufferCaps, sizeof(bufferCaps));
ZeroMemory(&dsbd, sizeof(DSBUFFERDESC));
- dsbd.dwSize = sizeof(DSBUFFERDESC);
- dsbd.dwFlags = DSBCAPS_PRIMARYBUFFER;
- dsbd.dwBufferBytes = 0;
- dsbd.lpwfxFormat = NULL;
+ dsbd.dwSize = sizeof(DSBUFFERDESC);
+ dsbd.dwFlags = DSBCAPS_PRIMARYBUFFER;
+ dsbd.dwBufferBytes = 0;
+ dsbd.lpwfxFormat = NULL;
if (SUCCEEDED (hr = m_pDS->CreateSoundBuffer( &dsbd, &pDSBPrimary, NULL )))
{
hr = pDSBPrimary->SetFormat(m_pWaveFileFormat);
@@ -561,15 +561,15 @@ HRESULT CMpcAudioRenderer::CreateDSBuffer()
SAFE_RELEASE (m_pDSBuffer);
cDSBufferDesc.dwSize = sizeof (DSBUFFERDESC);
- cDSBufferDesc.dwFlags = DSBCAPS_GLOBALFOCUS |
- DSBCAPS_GETCURRENTPOSITION2 |
- DSBCAPS_CTRLVOLUME |
- DSBCAPS_CTRLPAN |
- DSBCAPS_CTRLFREQUENCY;
- cDSBufferDesc.dwBufferBytes = dwDSBufSize;
- cDSBufferDesc.dwReserved = 0;
- cDSBufferDesc.lpwfxFormat = m_pWaveFileFormat;
- cDSBufferDesc.guid3DAlgorithm = GUID_NULL;
+ cDSBufferDesc.dwFlags = DSBCAPS_GLOBALFOCUS |
+ DSBCAPS_GETCURRENTPOSITION2 |
+ DSBCAPS_CTRLVOLUME |
+ DSBCAPS_CTRLPAN |
+ DSBCAPS_CTRLFREQUENCY;
+ cDSBufferDesc.dwBufferBytes = dwDSBufSize;
+ cDSBufferDesc.dwReserved = 0;
+ cDSBufferDesc.lpwfxFormat = m_pWaveFileFormat;
+ cDSBufferDesc.guid3DAlgorithm = GUID_NULL;
hr = m_pDS->CreateSoundBuffer (&cDSBufferDesc, &m_pDSBuffer, NULL);
@@ -593,9 +593,9 @@ HRESULT CMpcAudioRenderer::CreateDSBuffer()
HRESULT CMpcAudioRenderer::ClearBuffer()
{
- HRESULT hr = S_FALSE;
- VOID* pDSLockedBuffer = NULL;
- DWORD dwDSLockedSize = 0;
+ HRESULT hr = S_FALSE;
+ VOID* pDSLockedBuffer = NULL;
+ DWORD dwDSLockedSize = 0;
if (m_pDSBuffer)
{
@@ -626,7 +626,7 @@ HRESULT CMpcAudioRenderer::InitCoopLevel()
pVideoWindow->get_Owner((OAHWND*)&hWnd);
SAFE_RELEASE (pVideoWindow);
}
- if (!hWnd)
+ if (!hWnd)
{
hWnd = GetTopWindow(NULL);
}
@@ -677,17 +677,17 @@ HRESULT CMpcAudioRenderer::DoRenderSampleDirectSound(IMediaSample *pMediaSample)
if (SUCCEEDED(hr))
{
if ( ( (dwPlayCursor < dwWriteCursor) &&
- (
- ((m_dwDSWriteOff >= dwPlayCursor) && (m_dwDSWriteOff <= dwWriteCursor))
- ||
- ((m_dwDSWriteOff < dwPlayCursor) && (m_dwDSWriteOff + lSize >= dwPlayCursor))
- )
- )
- ||
- ( (dwWriteCursor < dwPlayCursor) &&
- (
- (m_dwDSWriteOff >= dwPlayCursor) || (m_dwDSWriteOff < dwWriteCursor)
- ) ) )
+ (
+ ((m_dwDSWriteOff >= dwPlayCursor) && (m_dwDSWriteOff <= dwWriteCursor))
+ ||
+ ((m_dwDSWriteOff < dwPlayCursor) && (m_dwDSWriteOff + lSize >= dwPlayCursor))
+ )
+ )
+ ||
+ ( (dwWriteCursor < dwPlayCursor) &&
+ (
+ (m_dwDSWriteOff >= dwPlayCursor) || (m_dwDSWriteOff < dwWriteCursor)
+ ) ) )
{
m_dwDSWriteOff = dwWriteCursor;
}
@@ -711,7 +711,7 @@ HRESULT CMpcAudioRenderer::WriteSampleToDSBuffer(IMediaSample *pMediaSample, boo
REFERENCE_TIME rtStop = 0;
HRESULT hr = S_OK;
bool loop = false;
- VOID* pDSLockedBuffers[2] = { NULL, NULL };
+ VOID* pDSLockedBuffers[2] = { NULL, NULL };
DWORD dwDSLockedSize[2] = { 0, 0 };
BYTE* pMediaBuffer = NULL;
long lSize = pMediaSample->GetActualDataLength();
@@ -770,8 +770,8 @@ HRESULT CMpcAudioRenderer::WriteSampleToDSBuffer(IMediaSample *pMediaSample, boo
HRESULT CMpcAudioRenderer::DoRenderSampleWasapi(IMediaSample *pMediaSample)
{
HRESULT hr = S_OK;
- REFERENCE_TIME rtStart = 0;
- REFERENCE_TIME rtStop = 0;
+ REFERENCE_TIME rtStart = 0;
+ REFERENCE_TIME rtStop = 0;
BYTE *pMediaBuffer = NULL;
BYTE *pInputBufferPointer = NULL;
BYTE *pInputBufferEnd = NULL;
@@ -799,7 +799,7 @@ HRESULT CMpcAudioRenderer::DoRenderSampleWasapi(IMediaSample *pMediaSample)
// Initialization
hr = pMediaSample->GetPointer(&pMediaBuffer);
- if (FAILED (hr)) return hr;
+ if (FAILED (hr)) return hr;
pInputBufferPointer=&pMediaBuffer[0];
pInputBufferEnd=&pMediaBuffer[0]+lSize;
@@ -817,7 +817,7 @@ HRESULT CMpcAudioRenderer::DoRenderSampleWasapi(IMediaSample *pMediaSample)
// Each loop fills one of the two buffers.
while (pInputBufferPointer < pInputBufferEnd)
- {
+ {
UINT32 numFramesPadding=0;
pAudioClient->GetCurrentPadding(&numFramesPadding);
UINT32 numFramesAvailable = nFramesInBuffer - numFramesPadding;
@@ -850,7 +850,7 @@ HRESULT CMpcAudioRenderer::DoRenderSampleWasapi(IMediaSample *pMediaSample)
TRACE(_T("CMpcAudioRenderer::DoRenderSampleWasapi Output buffer is NULL"));
hr = pRenderClient->ReleaseBuffer(numFramesAvailable, 0); // no flags
- if (FAILED (hr))
+ if (FAILED (hr))
{
TRACE(_T("CMpcAudioRenderer::DoRenderSampleWasapi ReleaseBuffer failed with size %ld (error %lx)"),nFramesInBuffer,hr);
return hr;
@@ -913,7 +913,7 @@ HRESULT CMpcAudioRenderer::CheckAudioClient(WAVEFORMATEX *pWaveFormatEx)
m_pWaveFileFormat=pNewWaveFormatEx;
hr = pAudioClient->IsFormatSupported(AUDCLNT_SHAREMODE_EXCLUSIVE, pWaveFormatEx, NULL);
if (SUCCEEDED(hr))
- {
+ {
if (pAudioClient!=NULL && isAudioClientStarted) pAudioClient->Stop();
isAudioClientStarted=false;
SAFE_RELEASE(pRenderClient);
@@ -951,7 +951,7 @@ HRESULT CMpcAudioRenderer::GetDefaultAudioDevice(IMMDevice **ppMMDevice)
hr = enumerator.CoCreateInstance(__uuidof(MMDeviceEnumerator));
hr = enumerator->GetDefaultAudioEndpoint(eRender, eConsole,
- ppMMDevice);
+ ppMMDevice);
return hr;
}
@@ -961,8 +961,8 @@ bool CMpcAudioRenderer::CheckFormatChanged(WAVEFORMATEX *pWaveFormatEx, WAVEFORM
if (m_pWaveFileFormat==NULL)
formatChanged=true;
else if (pWaveFormatEx->wFormatTag != m_pWaveFileFormat->wFormatTag
- || pWaveFormatEx->nChannels != m_pWaveFileFormat->nChannels
- || pWaveFormatEx->wBitsPerSample != m_pWaveFileFormat->wBitsPerSample) // TODO : improve the checks
+ || pWaveFormatEx->nChannels != m_pWaveFileFormat->nChannels
+ || pWaveFormatEx->wBitsPerSample != m_pWaveFileFormat->wBitsPerSample) // TODO : improve the checks
formatChanged=true;
@@ -977,7 +977,7 @@ bool CMpcAudioRenderer::CheckFormatChanged(WAVEFORMATEX *pWaveFormatEx, WAVEFORM
}
HRESULT CMpcAudioRenderer::GetBufferSize(WAVEFORMATEX *pWaveFormatEx, REFERENCE_TIME *pHnsBufferPeriod)
-{
+{
if (pWaveFormatEx==NULL) return S_OK;
if (pWaveFormatEx->cbSize <22) //WAVEFORMATEX
return S_OK;
@@ -995,13 +995,13 @@ HRESULT CMpcAudioRenderer::GetBufferSize(WAVEFORMATEX *pWaveFormatEx, REFERENCE_
bufferSize=6144;
else return S_OK;
- *pHnsBufferPeriod = (REFERENCE_TIME)( (REFERENCE_TIME)bufferSize * 10000 * 8 / ((REFERENCE_TIME)pWaveFormatEx->nChannels * pWaveFormatEx->wBitsPerSample *
- 1.0 * pWaveFormatEx->nSamplesPerSec) /*+ 0.5*/);
- *pHnsBufferPeriod *= 1000;
+ *pHnsBufferPeriod = (REFERENCE_TIME)( (REFERENCE_TIME)bufferSize * 10000 * 8 / ((REFERENCE_TIME)pWaveFormatEx->nChannels * pWaveFormatEx->wBitsPerSample *
+ 1.0 * pWaveFormatEx->nSamplesPerSec) /*+ 0.5*/);
+ *pHnsBufferPeriod *= 1000;
- TRACE(_T("CMpcAudioRenderer::GetBufferSize set a %lld period for a %ld buffer size"),*pHnsBufferPeriod,bufferSize);
+ TRACE(_T("CMpcAudioRenderer::GetBufferSize set a %lld period for a %ld buffer size"),*pHnsBufferPeriod,bufferSize);
- return S_OK;
+ return S_OK;
}
HRESULT CMpcAudioRenderer::InitAudioClient(WAVEFORMATEX *pWaveFormatEx, IAudioClient *pAudioClient, IAudioRenderClient **ppRenderClient)
@@ -1021,14 +1021,14 @@ HRESULT CMpcAudioRenderer::InitAudioClient(WAVEFORMATEX *pWaveFormatEx, IAudioCl
GetBufferSize(pWaveFormatEx, &hnsPeriod);
if (SUCCEEDED (hr)) hr = pAudioClient->Initialize(AUDCLNT_SHAREMODE_EXCLUSIVE,0/*AUDCLNT_STREAMFLAGS_EVENTCALLBACK*/,
- hnsPeriod,hnsPeriod,pWaveFormatEx,NULL);
+ hnsPeriod,hnsPeriod,pWaveFormatEx,NULL);
if (FAILED (hr) && hr != AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED)
{
TRACE(_T("CMpcAudioRenderer::InitAudioClient failed (0x%08x)"), hr);
return hr;
}
- if (AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED == hr)
+ if (AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED == hr)
{
// if the buffer size was not aligned, need to do the alignment dance
TRACE(_T("CMpcAudioRenderer::InitAudioClient Buffer size not aligned. Realigning"));
@@ -1037,29 +1037,30 @@ HRESULT CMpcAudioRenderer::InitAudioClient(WAVEFORMATEX *pWaveFormatEx, IAudioCl
hr = pAudioClient->GetBufferSize(&nFramesInBuffer);
// throw away this IAudioClient
- pAudioClient->Release();pAudioClient=NULL;
+ pAudioClient->Release();
+ pAudioClient=NULL;
// calculate the new aligned periodicity
hnsPeriod = // hns =
(REFERENCE_TIME)(
- 10000.0 * // (hns / ms) *
- 1000 * // (ms / s) *
- nFramesInBuffer / // frames /
- pWaveFormatEx->nSamplesPerSec // (frames / s)
- + 0.5 // rounding
+ 10000.0 * // (hns / ms) *
+ 1000 * // (ms / s) *
+ nFramesInBuffer / // frames /
+ pWaveFormatEx->nSamplesPerSec // (frames / s)
+ + 0.5 // rounding
);
if (SUCCEEDED (hr)) hr=CreateAudioClient(pMMDevice, &pAudioClient);
TRACE(_T("CMpcAudioRenderer::InitAudioClient Trying again with periodicity of %I64u hundred-nanoseconds, or %u frames.\n"), hnsPeriod, nFramesInBuffer);
- if (SUCCEEDED (hr))
+ if (SUCCEEDED (hr))
hr = pAudioClient->Initialize(AUDCLNT_SHAREMODE_EXCLUSIVE,0/*AUDCLNT_STREAMFLAGS_EVENTCALLBACK*/,
- hnsPeriod, hnsPeriod, pWaveFormatEx, NULL);
+ hnsPeriod, hnsPeriod, pWaveFormatEx, NULL);
if (FAILED(hr))
{
TRACE(_T("CMpcAudioRenderer::InitAudioClient Failed to reinitialize the audio client"));
return hr;
}
- } // if (AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED == hr)
+ } // if (AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED == hr)
// get the buffer size, which is aligned
if (SUCCEEDED (hr)) hr = pAudioClient->GetBufferSize(&nFramesInBuffer);
diff --git a/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.h b/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.h
index 6157c0092..4e8744642 100644
--- a/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.h
+++ b/src/filters/renderer/MpcAudioRenderer/MpcAudioRenderer.h
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -25,7 +25,7 @@
#include <streams.h>
#include <dsound.h>
-#include <MMReg.h> //must be before other Wasapi headers
+#include <MMReg.h> //must be before other Wasapi headers
#include <strsafe.h>
#include <mmdeviceapi.h>
#include <Avrt.h>
@@ -36,21 +36,21 @@
#include "SoundTouch/Include/SoundTouch.h"
// REFERENCE_TIME time units per second and per millisecond
-#define REFTIMES_PER_SEC 10000000
-#define REFTIMES_PER_MILLISEC 10000
+#define REFTIMES_PER_SEC 10000000
+#define REFTIMES_PER_MILLISEC 10000
// if you get a compilation error on AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED,
// uncomment the #define below
-#define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x019)
+#define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x019)
class __declspec(uuid("601D2A2B-9CDE-40bd-8650-0485E3522727"))
-CMpcAudioRenderer : public CBaseRenderer, public IBasicAudio
+ CMpcAudioRenderer : public CBaseRenderer, public IBasicAudio
{
public:
CMpcAudioRenderer(LPUNKNOWN punk, HRESULT *phr);
virtual ~CMpcAudioRenderer();
- static const AMOVIESETUP_FILTER sudASFilter;
+ static const AMOVIESETUP_FILTER sudASFilter;
HRESULT CheckInputType (const CMediaType* mtIn);
virtual HRESULT CheckMediaType (const CMediaType *pmt);
@@ -58,14 +58,14 @@ public:
virtual void OnReceiveFirstSample (IMediaSample *pMediaSample);
BOOL ScheduleSample (IMediaSample *pMediaSample);
virtual HRESULT SetMediaType (const CMediaType *pmt);
- virtual HRESULT CompleteConnect (IPin *pReceivePin);
+ virtual HRESULT CompleteConnect (IPin *pReceivePin);
HRESULT EndOfStream(void);
- DECLARE_IUNKNOWN
+ DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
// === IMediaFilter
STDMETHOD(Run) (REFERENCE_TIME tStart);
@@ -73,10 +73,10 @@ public:
STDMETHOD(Pause) ();
// === IDispatch (pour IBasicAudio)
- STDMETHOD(GetTypeInfoCount) (UINT * pctinfo);
- STDMETHOD(GetTypeInfo) (UINT itinfo, LCID lcid, ITypeInfo ** pptinfo);
- STDMETHOD(GetIDsOfNames) (REFIID riid, OLECHAR** rgszNames, UINT cNames, LCID lcid, DISPID* rgdispid);
- STDMETHOD(Invoke) (DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr);
+ STDMETHOD(GetTypeInfoCount) (UINT * pctinfo);
+ STDMETHOD(GetTypeInfo) (UINT itinfo, LCID lcid, ITypeInfo ** pptinfo);
+ STDMETHOD(GetIDsOfNames) (REFIID riid, OLECHAR** rgszNames, UINT cNames, LCID lcid, DISPID* rgdispid);
+ STDMETHOD(Invoke) (DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr);
// === IBasicAudio
STDMETHOD(put_Volume) (long lVolume);
@@ -84,7 +84,7 @@ public:
STDMETHOD(put_Balance) (long lBalance);
STDMETHOD(get_Balance) (long *plBalance);
- // CMpcAudioRenderer
+// CMpcAudioRenderer
private:
HRESULT DoRenderSampleDirectSound(IMediaSample *pMediaSample);
@@ -103,33 +103,33 @@ private:
CBaseReferenceClock* m_pReferenceClock;
double m_dRate;
long m_lVolume;
- soundtouch::SoundTouch* m_pSoundTouch;
-
- // CMpcAudioRenderer WASAPI methods
- HRESULT GetDefaultAudioDevice(IMMDevice **ppMMDevice);
- HRESULT CreateAudioClient(IMMDevice *pMMDevice, IAudioClient **ppAudioClient);
- HRESULT InitAudioClient(WAVEFORMATEX *pWaveFormatEx, IAudioClient *pAudioClient, IAudioRenderClient **ppRenderClient);
- HRESULT CheckAudioClient(WAVEFORMATEX *pWaveFormatEx);
- bool CheckFormatChanged(WAVEFORMATEX *pWaveFormatEx, WAVEFORMATEX **ppNewWaveFormatEx);
- HRESULT DoRenderSampleWasapi(IMediaSample *pMediaSample);
- HRESULT GetBufferSize(WAVEFORMATEX *pWaveFormatEx, REFERENCE_TIME *pHnsBufferPeriod);
-
-
- // WASAPI variables
- bool useWASAPI;
- IMMDevice *pMMDevice;
- IAudioClient *pAudioClient;
- IAudioRenderClient *pRenderClient;
- UINT32 nFramesInBuffer;
- REFERENCE_TIME hnsPeriod, hnsActualDuration;
- HANDLE hTask;
- CCritSec m_csCheck;
- UINT32 bufferSize;
- bool isAudioClientStarted;
- DWORD lastBufferTime;
-
- // AVRT.dll (Vista or greater
- typedef HANDLE (__stdcall *PTR_AvSetMmThreadCharacteristicsW)(LPCWSTR TaskName, LPDWORD TaskIndex);
+ soundtouch::SoundTouch* m_pSoundTouch;
+
+// CMpcAudioRenderer WASAPI methods
+ HRESULT GetDefaultAudioDevice(IMMDevice **ppMMDevice);
+ HRESULT CreateAudioClient(IMMDevice *pMMDevice, IAudioClient **ppAudioClient);
+ HRESULT InitAudioClient(WAVEFORMATEX *pWaveFormatEx, IAudioClient *pAudioClient, IAudioRenderClient **ppRenderClient);
+ HRESULT CheckAudioClient(WAVEFORMATEX *pWaveFormatEx);
+ bool CheckFormatChanged(WAVEFORMATEX *pWaveFormatEx, WAVEFORMATEX **ppNewWaveFormatEx);
+ HRESULT DoRenderSampleWasapi(IMediaSample *pMediaSample);
+ HRESULT GetBufferSize(WAVEFORMATEX *pWaveFormatEx, REFERENCE_TIME *pHnsBufferPeriod);
+
+
+// WASAPI variables
+ bool useWASAPI;
+ IMMDevice *pMMDevice;
+ IAudioClient *pAudioClient;
+ IAudioRenderClient *pRenderClient;
+ UINT32 nFramesInBuffer;
+ REFERENCE_TIME hnsPeriod, hnsActualDuration;
+ HANDLE hTask;
+ CCritSec m_csCheck;
+ UINT32 bufferSize;
+ bool isAudioClientStarted;
+ DWORD lastBufferTime;
+
+ // AVRT.dll (Vista or greater
+ typedef HANDLE (__stdcall *PTR_AvSetMmThreadCharacteristicsW)(LPCWSTR TaskName, LPDWORD TaskIndex);
typedef BOOL (__stdcall *PTR_AvRevertMmThreadCharacteristics)(HANDLE AvrtHandle);
PTR_AvSetMmThreadCharacteristicsW pfAvSetMmThreadCharacteristicsW;
diff --git a/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcproj b/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcproj
index f881eb4b6..6be3b05a4 100644
--- a/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcproj
+++ b/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MpcAudioRendererFilter"
ProjectGUID="{D0620EF4-1313-40D5-9069-A82F6FE26994}"
RootNamespace="MpcAudioRenderer"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;INTEGER_SAMPLES"
/>
@@ -117,7 +116,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;INTEGER_SAMPLES"
DebugInformationFormat="3"
@@ -189,7 +187,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;INTEGER_SAMPLES"
/>
@@ -263,7 +260,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;INTEGER_SAMPLES"
EnableEnhancedInstructionSet="0"
@@ -336,7 +332,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;INTEGER_SAMPLES"
/>
@@ -395,7 +390,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;INTEGER_SAMPLES"
DebugInformationFormat="3"
@@ -454,7 +448,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;FLAC__NO_DLL;INTEGER_SAMPLES"
/>
@@ -513,7 +506,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;SoundTouch\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;FLAC__NO_DLL;INTEGER_SAMPLES"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcxproj b/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcxproj
index 233a61fdd..e52e4f060 100644
--- a/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcxproj
+++ b/src/filters/renderer/MpcAudioRenderer/MpcAudioRendererFilter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D0620EF4-1313-40D5-9069-A82F6FE26994}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -173,7 +158,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -192,7 +176,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -214,7 +197,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -234,7 +216,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -249,7 +230,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -262,7 +242,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;FLAC__NO_DLL;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -278,7 +257,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;SoundTouch\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;FLAC__NO_DLL;INTEGER_SAMPLES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/renderer/MpcAudioRenderer/resource.h b/src/filters/renderer/MpcAudioRenderer/resource.h
index ea5e32fc3..fd81d8a9a 100644
--- a/src/filters/renderer/MpcAudioRenderer/resource.h
+++ b/src/filters/renderer/MpcAudioRenderer/resource.h
@@ -19,7 +19,7 @@
#define IDS_MPA_DYNRANGE 33156
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103
diff --git a/src/filters/renderer/MpcAudioRenderer/stdafx.cpp b/src/filters/renderer/MpcAudioRenderer/stdafx.cpp
index c046a694e..0ac102726 100644
--- a/src/filters/renderer/MpcAudioRenderer/stdafx.cpp
+++ b/src/filters/renderer/MpcAudioRenderer/stdafx.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
diff --git a/src/filters/renderer/MpcAudioRenderer/stdafx.h b/src/filters/renderer/MpcAudioRenderer/stdafx.h
index 4f2979b53..3ea8c1855 100644
--- a/src/filters/renderer/MpcAudioRenderer/stdafx.h
+++ b/src/filters/renderer/MpcAudioRenderer/stdafx.h
@@ -1,4 +1,4 @@
-/*
+/*
* $Id$
*
* (C) 2006-2010 see AUTHORS
@@ -32,7 +32,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/renderer/SyncClock/SyncClock.vcproj b/src/filters/renderer/SyncClock/SyncClock.vcproj
index 8306ac754..0012a5de4 100644
--- a/src/filters/renderer/SyncClock/SyncClock.vcproj
+++ b/src/filters/renderer/SyncClock/SyncClock.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="SyncClock"
ProjectGUID="{0B63409D-674D-47F8-A84E-87DBB7783189}"
RootNamespace="SyncClock"
@@ -22,7 +22,7 @@
<Configuration
Name="Debug Filter|Win32"
OutputDirectory="$(SolutionDir)bin\Filters_x86_Debug\"
- ConfigurationType="4"
+ ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops;..\..\..\debug.vsprops"
UseOfMFC="1"
CharacterSet="1"
@@ -47,14 +47,7 @@
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_USRDLL"
- MinimalRebuild="false"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
- CallingConvention="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -66,13 +59,20 @@
Name="VCPreLinkEventTool"
/>
<Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)\$(ProjectName).ax"
+ Name="VCLinkerTool"
+ AdditionalDependencies="BaseClasses.lib Winmm.lib"
+ AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Release_$(PlatformName)"
+ ModuleDefinitionFile="SyncClock.def"
+ SubSystem="2"
+ TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
+ Name="VCManifestTool"
+ />
+ <Tool
Name="VCXDCMakeTool"
/>
<Tool
@@ -82,6 +82,9 @@
Name="VCFxCopTool"
/>
<Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
@@ -110,17 +113,9 @@
/>
<Tool
Name="VCCLCompilerTool"
- Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;METRONOME_EXPORTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
- CallingConvention="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -133,16 +128,13 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="strmbasd.lib winmm.lib msvcrtd.lib"
+ AdditionalDependencies="BaseClasses.lib Winmm.lib"
OutputFile="$(OutDir)\$(ProjectName).ax"
LinkIncremental="2"
- AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Debug_$(PlatformName)"
- IgnoreAllDefaultLibraries="true"
- ModuleDefinitionFile="metronom.def"
+ AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Release_$(PlatformName)"
+ ModuleDefinitionFile="SyncClock.def"
GenerateDebugInformation="true"
SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool
@@ -170,7 +162,7 @@
<Configuration
Name="Release Filter|Win32"
OutputDirectory="$(SolutionDir)bin\Filters_x86\"
- ConfigurationType="4"
+ ConfigurationType="2"
InheritedPropertySheets="..\..\..\common.vsprops;..\..\..\release.vsprops"
UseOfMFC="1"
CharacterSet="1"
@@ -192,18 +184,9 @@
/>
<Tool
Name="VCCLCompilerTool"
- Optimization="2"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL"
- StringPooling="true"
- RuntimeLibrary="0"
- BufferSecurityCheck="false"
- EnableFunctionLevelLinking="true"
- EnableEnhancedInstructionSet="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
DebugInformationFormat="3"
- CallingConvention="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -215,14 +198,20 @@
Name="VCPreLinkEventTool"
/>
<Tool
- Name="VCLibrarianTool"
- AdditionalOptions="/IGNORE:4221"
- OutputFile="$(OutDir)\$(ProjectName).ax"
+ Name="VCLinkerTool"
+ AdditionalDependencies="BaseClasses.lib Winmm.lib"
+ AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Release_$(PlatformName)"
+ ModuleDefinitionFile="SyncClock.def"
+ SubSystem="2"
+ TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
+ Name="VCManifestTool"
+ />
+ <Tool
Name="VCXDCMakeTool"
/>
<Tool
@@ -232,6 +221,9 @@
Name="VCFxCopTool"
/>
<Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
@@ -264,7 +256,6 @@
Optimization="2"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
- RuntimeLibrary="0"
EnableEnhancedInstructionSet="0"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -282,17 +273,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="strmbase.lib winmm.lib msvcrt.lib"
+ AdditionalDependencies="BaseClasses.lib Winmm.lib"
OutputFile="$(OutDir)\$(ProjectName).ax"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Release_$(PlatformName)"
- IgnoreAllDefaultLibraries="true"
- ModuleDefinitionFile="metronom.def"
+ ModuleDefinitionFile="SyncClock.def"
GenerateDebugInformation="true"
SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- RandomizedBaseAddress="2"
- DataExecutionPrevention="2"
TargetMachine="17"
/>
<Tool
diff --git a/src/filters/renderer/SyncClock/SyncClock.vcxproj b/src/filters/renderer/SyncClock/SyncClock.vcxproj
index 00bdeebf5..0026fac57 100644
--- a/src/filters/renderer/SyncClock/SyncClock.vcxproj
+++ b/src/filters/renderer/SyncClock/SyncClock.vcxproj
@@ -51,12 +51,12 @@
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@@ -130,49 +130,47 @@
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug Filter|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">$(SolutionDir)bin\Filters_x86\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'">$(SolutionDir)bin\Filters_x64\</OutDir>
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">.ax</TargetExt>
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'">.ax</TargetExt>
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">.ax</TargetExt>
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug Filter|x64'">.ax</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>false</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <CallingConvention>Cdecl</CallingConvention>
</ClCompile>
<Lib>
<OutputFile>$(OutDir)$(ProjectName).ax</OutputFile>
<TargetMachine>MachineX86</TargetMachine>
</Lib>
+ <Link>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Release_$(Platform)</AdditionalLibraryDirectories>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <AdditionalDependencies>BaseClasses.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>SyncClock.def</ModuleDefinitionFile>
+ <SubSystem>Windows</SubSystem>
+ </Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;METRONOME_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <CallingConvention>StdCall</CallingConvention>
</ClCompile>
<Link>
- <AdditionalDependencies>strmbasd.lib;winmm.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <OutputFile>$(OutDir)$(ProjectName).ax</OutputFile>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\lib\Debug_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
- <ModuleDefinitionFile>metronom.def</ModuleDefinitionFile>
+ <AdditionalDependencies>BaseClasses.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Release_$(Platform)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>SyncClock.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -183,54 +181,47 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <CallingConvention>Cdecl</CallingConvention>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)$(ProjectName).ax</OutputFile>
<TargetMachine>MachineX86</TargetMachine>
</Lib>
+ <Link>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Release_$(Platform)</AdditionalLibraryDirectories>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <AdditionalDependencies>BaseClasses.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>SyncClock.def</ModuleDefinitionFile>
+ <SubSystem>Windows</SubSystem>
+ </Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<PrecompiledHeader>
</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <CallingConvention>StdCall</CallingConvention>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
- <AdditionalDependencies>strmbase.lib;winmm.lib;msvcrt.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <OutputFile>$(OutDir)$(ProjectName).ax</OutputFile>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\lib\Release_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>BaseClasses.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Release_$(Platform)</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
- <ModuleDefinitionFile>metronom.def</ModuleDefinitionFile>
+ <ModuleDefinitionFile>SyncClock.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <RandomizedBaseAddress>true</RandomizedBaseAddress>
- <DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
@@ -244,6 +235,7 @@
</PrecompiledHeader>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CallingConvention>Cdecl</CallingConvention>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
@@ -263,6 +255,7 @@
</PrecompiledHeader>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CallingConvention>Cdecl</CallingConvention>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
diff --git a/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp
index bf51b8e9c..aec11b2d2 100644
--- a/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp
+++ b/src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp
@@ -29,6 +29,7 @@
#include "../../../SubPic/DX9SubPic.h"
#include "../../../SubPic/SubPicQueueImpl.h"
#include "IPinHook.h"
+#include "../include/Version.h"
CCritSec g_ffdshowReceive;
bool queue_ffdshow_support = false;
@@ -92,7 +93,9 @@ CDX9AllocatorPresenter::CDX9AllocatorPresenter(HWND hWnd, bool bFullscreen, HRES
}
else
{
- _Error += L"No D3DX9 dll found. To enable stats, shaders and complex resizers, please make sure to install the latest DirectX End-User Runtime.\n";
+ _Error += L"The installed DirectX End-User Runtime is outdated. Please download and install the ";
+ _Error += DIRECTX_SDK_DATE;
+ _Error += L" release or newer in order for MPC-HC to function properly.\n";
}
m_pDwmIsCompositionEnabled = NULL;
@@ -2042,11 +2045,10 @@ void CDX9AllocatorPresenter::DrawStats()
LONGLONG llMinJitter = m_MinJitter;
LONGLONG llMaxSyncOffset = m_MaxSyncOffset;
LONGLONG llMinSyncOffset = m_MinSyncOffset;
+ RECT rc = {40, 40, 0, 0 };
if (m_pFont && m_pSprite)
{
m_pSprite->Begin(D3DXSPRITE_ALPHABLEND);
- RECT rc = {700, 40, 0, 0 };
- rc.left = 40;
CString strText;
int TextHeight = 25.0*m_TextScale + 0.5;
// strText.Format(L"Frame rate : %7.03f (%7.3f ms = %.03f, %s) (%7.3f ms = %.03f%s) Clock: %7.3f ms %+1.4f %% %+1.9f %+1.9f", m_fAvrFps, double(m_rtTimePerFrame) / 10000.0, 10000000.0 / (double)(m_rtTimePerFrame), m_bInterlaced ? L"I" : L"P", GetFrameTime() * 1000.0, GetFrameRate(), m_DetectedLock ? L" L" : L"", m_ClockDiff/10000.0, m_ModeratedTimeSpeed*100.0 - 100.0, m_ModeratedTimeSpeedDiff, m_ClockDiffCalc/10000.0);
@@ -2288,6 +2290,7 @@ void CDX9AllocatorPresenter::DrawStats()
}
}
m_pSprite->End();
+ OffsetRect(&rc, 0, TextHeight); // Extra "line feed"
}
if (m_pLine && bDetailedStats)
@@ -2300,7 +2303,7 @@ void CDX9AllocatorPresenter::DrawStats()
int ScaleX = 1;
int ScaleY = 1;
int DrawWidth = 625 * ScaleX + 50;
- int DrawHeight = 500 * ScaleY;
+ int DrawHeight = 250 * ScaleY;
int Alpha = 80;
StartX = m_WindowRect.Width() - (DrawWidth + 20);
StartY = m_WindowRect.Height() - (DrawHeight + 20);
@@ -2314,13 +2317,13 @@ void CDX9AllocatorPresenter::DrawStats()
// m_pLine->SetGLLines(1);
m_pLine->Begin();
- for (int i=10; i<500*ScaleY; i+= 20*ScaleY)
+ for (int i=10; i<250*ScaleY; i+= 10*ScaleY)
{
Points[0].x = (FLOAT)StartX;
Points[0].y = (FLOAT)(StartY + i);
- Points[1].x = (FLOAT)(StartX + ((i-10)%80 ? 50 : 625 * ScaleX));
+ Points[1].x = (FLOAT)(StartX + ((i-10)%40 ? 50 : 625 * ScaleX));
Points[1].y = (FLOAT)(StartY + i);
- if (i == 250) Points[1].x += 50;
+ if (i == 130) Points[1].x += 50;
m_pLine->Draw (Points, 2, D3DCOLOR_XRGB(100,100,255));
}
@@ -2334,7 +2337,7 @@ void CDX9AllocatorPresenter::DrawStats()
nIndex += NB_JITTER;
double Jitter = m_pllJitter[nIndex] - m_fJitterMean;
Points[i].x = (FLOAT)(StartX + (i*5*ScaleX+5));
- Points[i].y = (FLOAT)(StartY + ((Jitter*ScaleY)/5000.0 + 250.0* ScaleY));
+ Points[i].y = (FLOAT)(StartY + ((Jitter*ScaleY)/5000.0 + 125.0* ScaleY));
}
m_pLine->Draw (Points, NB_JITTER, D3DCOLOR_XRGB(255,100,100));
@@ -2346,7 +2349,7 @@ void CDX9AllocatorPresenter::DrawStats()
if (nIndex < 0)
nIndex += NB_JITTER;
Points[i].x = (FLOAT)(StartX + (i*5*ScaleX+5));
- Points[i].y = (FLOAT)(StartY + ((m_pllSyncOffset[nIndex]*ScaleY)/5000 + 250*ScaleY));
+ Points[i].y = (FLOAT)(StartY + ((m_pllSyncOffset[nIndex]*ScaleY)/5000 + 125*ScaleY));
}
m_pLine->Draw (Points, NB_JITTER, D3DCOLOR_XRGB(100,200,100));
}
diff --git a/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp b/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp
index 098718599..d705bbf31 100644
--- a/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp
+++ b/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp
@@ -245,17 +245,17 @@ void CDX9RenderingEngine::CleanupRenderingEngine()
HRESULT CDX9RenderingEngine::CreateVideoSurfaces(D3DFORMAT format)
{
+ HRESULT hr;
CRenderersSettings& settings = GetRenderersSettings();
- for (int i = 0; i < m_nNbDXSurface; i++)
- {
- m_pVideoTexture[i] = NULL;
- m_pVideoSurface[i] = NULL;
- }
+ // Free previously allocated video surfaces
+ FreeVideoSurfaces();
- m_SurfaceType = format;
+ // Free previously allocated temporary video textures, because the native video size might have been changed!
+ for (int i = 0; i < 2; i++)
+ m_pTemporaryVideoTextures[i] = NULL;
- HRESULT hr;
+ m_SurfaceType = format;
if (settings.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE2D || settings.iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D)
{
@@ -312,6 +312,9 @@ void CDX9RenderingEngine::FreeVideoSurfaces()
HRESULT CDX9RenderingEngine::RenderVideo(IDirect3DSurface9* pRenderTarget, const CRect& srcRect, const CRect& destRect)
{
+ if (destRect.IsRectEmpty())
+ return S_OK;
+
if (m_RenderingPath == RENDERING_PATH_DRAW)
return RenderVideoDrawPath(pRenderTarget, srcRect, destRect);
else
@@ -322,6 +325,10 @@ HRESULT CDX9RenderingEngine::RenderVideoDrawPath(IDirect3DSurface9* pRenderTarge
{
HRESULT hr;
+ // Return if the video texture is not initialized
+ if (m_pVideoTexture[m_nCurSurface] == 0)
+ return S_OK;
+
CRenderersSettings& settings = GetRenderersSettings();
// Initialize the processing pipeline
@@ -531,21 +538,22 @@ HRESULT CDX9RenderingEngine::RenderVideoDrawPath(IDirect3DSurface9* pRenderTarge
HRESULT CDX9RenderingEngine::RenderVideoStretchRectPath(IDirect3DSurface9* pRenderTarget, const CRect& srcRect, const CRect& destRect)
{
- HRESULT hr = S_OK;
+ HRESULT hr;
- if (pRenderTarget)
- {
- CRect rSrcVid(srcRect);
- CRect rDstVid(destRect);
+ // Return if the render target or the video surface is not initialized
+ if (pRenderTarget == 0 || m_pVideoSurface[m_nCurSurface] == 0)
+ return S_OK;
- ClipToSurface(pRenderTarget, rSrcVid, rDstVid); // grrr
- // IMPORTANT: rSrcVid has to be aligned on mod2 for yuy2->rgb conversion with StretchRect!!!
- rSrcVid.left &= ~1;
- rSrcVid.right &= ~1;
- rSrcVid.top &= ~1;
- rSrcVid.bottom &= ~1;
- hr = m_pD3DDev->StretchRect(m_pVideoSurface[m_nCurSurface], rSrcVid, pRenderTarget, rDstVid, m_StretchRectFilter);
- }
+ CRect rSrcVid(srcRect);
+ CRect rDstVid(destRect);
+
+ ClipToSurface(pRenderTarget, rSrcVid, rDstVid); // grrr
+ // IMPORTANT: rSrcVid has to be aligned on mod2 for yuy2->rgb conversion with StretchRect!!!
+ rSrcVid.left &= ~1;
+ rSrcVid.right &= ~1;
+ rSrcVid.top &= ~1;
+ rSrcVid.bottom &= ~1;
+ hr = m_pD3DDev->StretchRect(m_pVideoSurface[m_nCurSurface], rSrcVid, pRenderTarget, rDstVid, m_StretchRectFilter);
return hr;
}
@@ -1001,7 +1009,7 @@ HRESULT CDX9RenderingEngine::InitFinalPass()
bool bFullFloatingPointProcessing = settings.m_RenderSettings.iVMR9FullFloatingPointProcessing;
bool bColorManagement = settings.m_RenderSettings.iVMR9ColorManagementEnable;
VideoSystem inputVideoSystem = static_cast<VideoSystem>(settings.m_RenderSettings.iVMR9ColorManagementInput);
- GammaCurve gamma = static_cast<GammaCurve>(settings.m_RenderSettings.iVMR9ColorManagementGamma);
+ AmbientLight ambientLight = static_cast<AmbientLight>(settings.m_RenderSettings.iVMR9ColorManagementAmbientLight);
ColorRenderingIntent renderingIntent = static_cast<ColorRenderingIntent>(settings.m_RenderSettings.iVMR9ColorManagementIntent);
bool bInitRequired = false;
@@ -1016,7 +1024,7 @@ HRESULT CDX9RenderingEngine::InitFinalPass()
{
if ((m_InputVideoSystem != inputVideoSystem) ||
(m_RenderingIntent != renderingIntent) ||
- (m_Gamma != gamma))
+ (m_AmbientLight != ambientLight))
{
bInitRequired = true;
}
@@ -1037,7 +1045,7 @@ HRESULT CDX9RenderingEngine::InitFinalPass()
m_bFullFloatingPointProcessing = bFullFloatingPointProcessing;
m_bColorManagement = bColorManagement;
m_InputVideoSystem = inputVideoSystem;
- m_Gamma = gamma;
+ m_AmbientLight = ambientLight;
m_RenderingIntent = renderingIntent;
// Check whether the final pass is required
@@ -1283,22 +1291,17 @@ HRESULT CDX9RenderingEngine::CreateIccProfileLut(TCHAR* profilePath, float* lut3
// Get the gamma
double gamma;
- switch (m_Gamma)
+ switch (m_AmbientLight)
{
- case GAMMA_CURVE_2_2:
+ case AMBIENT_LIGHT_BRIGHT:
gamma = 2.2;
break;
- case GAMMA_CURVE_2_3:
- gamma = 2.3;
- break;
-
- // Recommended by many (e.g., EBU, Poynton)
- case GAMMA_CURVE_2_35:
+ case AMBIENT_LIGHT_DIM:
gamma = 2.35;
break;
- case GAMMA_CURVE_2_4:
+ case AMBIENT_LIGHT_DARK:
gamma = 2.4;
break;
diff --git a/src/filters/renderer/VideoRenderers/DX9RenderingEngine.h b/src/filters/renderer/VideoRenderers/DX9RenderingEngine.h
index 6496cc8e0..d2afd3cf4 100644
--- a/src/filters/renderer/VideoRenderers/DX9RenderingEngine.h
+++ b/src/filters/renderer/VideoRenderers/DX9RenderingEngine.h
@@ -114,7 +114,7 @@ private:
// Settings
VideoSystem m_InputVideoSystem;
- GammaCurve m_Gamma;
+ AmbientLight m_AmbientLight;
ColorRenderingIntent m_RenderingIntent;
// Custom pixel shaders
diff --git a/src/filters/renderer/VideoRenderers/RenderersSettings.h b/src/filters/renderer/VideoRenderers/RenderersSettings.h
index 8ebca6af3..7e1d533ce 100644
--- a/src/filters/renderer/VideoRenderers/RenderersSettings.h
+++ b/src/filters/renderer/VideoRenderers/RenderersSettings.h
@@ -60,12 +60,11 @@ enum VideoSystem
VIDEO_SYSTEM_SDTV_PAL,
};
-enum GammaCurve
+enum AmbientLight
{
- GAMMA_CURVE_2_2,
- GAMMA_CURVE_2_3,
- GAMMA_CURVE_2_35, // recommended
- GAMMA_CURVE_2_4,
+ AMBIENT_LIGHT_BRIGHT,
+ AMBIENT_LIGHT_DIM,
+ AMBIENT_LIGHT_DARK,
};
enum ColorRenderingIntent
@@ -97,7 +96,7 @@ public:
bool iVMR9FullFloatingPointProcessing;
bool iVMR9ColorManagementEnable;
int iVMR9ColorManagementInput;
- int iVMR9ColorManagementGamma;
+ int iVMR9ColorManagementAmbientLight;
int iVMR9ColorManagementIntent;
bool iVMRDisableDesktopComposition;
int iVMRFlushGPUBeforeVSync;
@@ -124,7 +123,7 @@ public:
iVMR9FullFloatingPointProcessing = 0;
iVMR9ColorManagementEnable = 0;
iVMR9ColorManagementInput = VIDEO_SYSTEM_UNKNOWN;
- iVMR9ColorManagementGamma = GAMMA_CURVE_2_35;
+ iVMR9ColorManagementAmbientLight = AMBIENT_LIGHT_BRIGHT;
iVMR9ColorManagementIntent = COLOR_RENDERING_INTENT_PERCEPTUAL;
iVMRDisableDesktopComposition = 0;
iVMRFlushGPUBeforeVSync = 1;
@@ -147,7 +146,7 @@ public:
iVMR9FullFloatingPointProcessing = 1;
iVMR9ColorManagementEnable = 0;
iVMR9ColorManagementInput = VIDEO_SYSTEM_UNKNOWN;
- iVMR9ColorManagementGamma = GAMMA_CURVE_2_35;
+ iVMR9ColorManagementAmbientLight = AMBIENT_LIGHT_BRIGHT;
iVMR9ColorManagementIntent = COLOR_RENDERING_INTENT_PERCEPTUAL;
iVMRDisableDesktopComposition = 1;
iVMRFlushGPUBeforeVSync = 1;
@@ -193,26 +192,26 @@ public:
CRendererSettingsEVR m_RenderSettings;
- int iAPSurfaceUsage;
- //bool fVMRSyncFix;
- int iDX9Resizer;
- bool fVMR9MixerMode;
- bool fVMR9MixerYUV;
- int iEvrBuffers;
+ int iAPSurfaceUsage;
+ //bool fVMRSyncFix;
+ int iDX9Resizer;
+ bool fVMR9MixerMode;
+ bool fVMR9MixerYUV;
+ int iEvrBuffers;
- int nSPCSize;
- int nSPCMaxRes;
- bool fSPCPow2Tex;
- bool fSPCAllowAnimationWhenBuffering;
+ int nSPCSize;
+ int nSPCMaxRes;
+ bool fSPCPow2Tex;
+ bool fSPCAllowAnimationWhenBuffering;
- CString D3D9RenderDevice;
+ CString D3D9RenderDevice;
};
class CRenderersData
{
- HINSTANCE m_hD3DX9Dll;
- int m_nDXSdkRelease;
+ HINSTANCE m_hD3DX9Dll;
+ int m_nDXSdkRelease;
public:
CRenderersData();
@@ -224,14 +223,14 @@ public:
CString m_strD3DX9Version;
// Hardware feature support
- bool m_bFP16Support;
- bool m_b10bitSupport;
+ bool m_bFP16Support;
+ bool m_b10bitSupport;
- LONGLONG GetPerfCounter();
- HINSTANCE GetD3X9Dll();
- int GetDXSdkRelease()
+ LONGLONG GetPerfCounter();
+ HINSTANCE GetD3X9Dll();
+ int GetDXSdkRelease()
{
- return m_nDXSdkRelease;
+ return m_nDXSdkRelease;
};
};
@@ -239,4 +238,4 @@ extern CRenderersData* GetRenderersData();
extern CRenderersSettings& GetRenderersSettings();
extern bool LoadResource(UINT resid, CStringA& str, LPCTSTR restype);
-extern bool IsVistaOrAbove();
+extern "C" BOOL IsVistaOrAbove();
diff --git a/src/filters/renderer/VideoRenderers/SyncRenderer.cpp b/src/filters/renderer/VideoRenderers/SyncRenderer.cpp
index 9370eb226..c15f61044 100644
--- a/src/filters/renderer/VideoRenderers/SyncRenderer.cpp
+++ b/src/filters/renderer/VideoRenderers/SyncRenderer.cpp
@@ -44,6 +44,7 @@
#include "IPinHook.h"
#include "PixelShaderCompiler.h"
#include "SyncRenderer.h"
+#include "../include/Version.h"
// only for debugging
//#define DISABLE_USING_D3D9EX
@@ -194,7 +195,9 @@ CBaseAP::CBaseAP(HWND hWnd, bool bFullscreen, HRESULT& hr, CString &_Error):
}
else
{
- _Error += L"No D3DX9 dll found. To enable stats, shaders and complex resizers, please install the latest DirectX End-User Runtime.\n";
+ _Error += L"The installed DirectX End-User Runtime is outdated. Please download and install the ";
+ _Error += DIRECTX_SDK_DATE;
+ _Error += L" release or newer in order for MPC-HC to function properly.\n";
}
m_pDwmIsCompositionEnabled = NULL;
@@ -2306,8 +2309,8 @@ void CBaseAP::DrawStats()
int DrawWidth = 625;
int DrawHeight = 250;
int Alpha = 80;
- int StartX = rc.left;
- int StartY = rc.top;
+ int StartX = m_WindowRect.Width() - (DrawWidth + 20);
+ int StartY = m_WindowRect.Height() - (DrawHeight + 20);
DrawRect(RGB(0, 0, 0), Alpha, CRect(StartX, StartY, StartX + DrawWidth, StartY + DrawHeight));
m_pLine->SetWidth(2.5);
diff --git a/src/filters/renderer/VideoRenderers/VMR9AllocatorPresenter.cpp b/src/filters/renderer/VideoRenderers/VMR9AllocatorPresenter.cpp
index 7f7fff05a..484f4c517 100644
--- a/src/filters/renderer/VideoRenderers/VMR9AllocatorPresenter.cpp
+++ b/src/filters/renderer/VideoRenderers/VMR9AllocatorPresenter.cpp
@@ -708,6 +708,9 @@ STDMETHODIMP_(void) CVMR9AllocatorPresenter::SetTime(REFERENCE_TIME rtNow)
STDMETHODIMP CVMR9AllocatorPresenter::InitializeDevice(DWORD_PTR dwUserID, VMR9AllocationInfo* lpAllocInfo, DWORD* lpNumBuffers)
{
+ CAutoLock lock(this);
+ CAutoLock cRenderLock(&m_RenderLock);
+
if(!lpAllocInfo || !lpNumBuffers)
return E_POINTER;
@@ -783,7 +786,6 @@ STDMETHODIMP CVMR9AllocatorPresenter::InitializeDevice(DWORD_PTR dwUserID, VMR9A
STDMETHODIMP CVMR9AllocatorPresenter::TerminateDevice(DWORD_PTR dwUserID)
{
- DeleteSurfaces();
return S_OK;
}
diff --git a/src/filters/renderer/VideoRenderers/VideoRenderers.vcproj b/src/filters/renderer/VideoRenderers/VideoRenderers.vcproj
index bba308c84..2c9ed6d9d 100644
--- a/src/filters/renderer/VideoRenderers/VideoRenderers.vcproj
+++ b/src/filters/renderer/VideoRenderers/VideoRenderers.vcproj
@@ -51,7 +51,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;DETOURS_X32"
/>
@@ -70,8 +69,7 @@
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/IGNORE:4221"
- AdditionalDependencies="lcms2.lib"
- AdditionalLibraryDirectories="$(OutDir)"
+ AdditionalLibraryDirectories=""
/>
<Tool
Name="VCALinkTool"
@@ -123,7 +121,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;NDEBUG;_WINDOWS;DETOURS_X64"
EnableEnhancedInstructionSet="0"
@@ -143,8 +140,7 @@
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/IGNORE:4221"
- AdditionalDependencies="lcms2.lib"
- AdditionalLibraryDirectories="$(OutDir)"
+ AdditionalLibraryDirectories=""
/>
<Tool
Name="VCALinkTool"
@@ -195,7 +191,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;DETOURS_X32"
ShowIncludes="false"
@@ -213,8 +208,7 @@
/>
<Tool
Name="VCLibrarianTool"
- AdditionalDependencies="lcms2.lib"
- AdditionalLibraryDirectories="$(OutDir)"
+ AdditionalLibraryDirectories=""
/>
<Tool
Name="VCALinkTool"
@@ -262,7 +256,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;_DEBUG;_WINDOWS;DETOURS_X64"
DebugInformationFormat="3"
@@ -280,8 +273,7 @@
/>
<Tool
Name="VCLibrarianTool"
- AdditionalDependencies="lcms2.lib"
- AdditionalLibraryDirectories="$(OutDir)"
+ AdditionalLibraryDirectories=""
/>
<Tool
Name="VCALinkTool"
diff --git a/src/filters/renderer/VideoRenderers/VideoRenderers.vcxproj b/src/filters/renderer/VideoRenderers/VideoRenderers.vcxproj
index aff7cc598..6f823c7be 100644
--- a/src/filters/renderer/VideoRenderers/VideoRenderers.vcxproj
+++ b/src/filters/renderer/VideoRenderers/VideoRenderers.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{FB565A7A-50DC-4A0D-852D-5E7F74DAB82C}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\release.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -99,7 +85,6 @@
<TypeLibraryName>.\Release_unicode/mplayerc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;DETOURS_X32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -111,8 +96,6 @@
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
<TargetMachine>MachineX86</TargetMachine>
- <AdditionalDependencies>lcms2.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
<PostBuildEvent>
<Command>
@@ -131,7 +114,6 @@
<TypeLibraryName>.\Release_unicode/mplayerc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_WINDOWS;DETOURS_X64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -144,8 +126,6 @@
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
<TargetMachine>MachineX64</TargetMachine>
- <AdditionalDependencies>lcms2.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
<PostBuildEvent>
<Command>
@@ -164,7 +144,6 @@
<TypeLibraryName>$(OutDir)$(ProjectName).tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;DETOURS_X32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ShowIncludes>false</ShowIncludes>
@@ -175,8 +154,6 @@
</ResourceCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
- <AdditionalDependencies>lcms2.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -191,7 +168,6 @@
<TypeLibraryName>$(OutDir)$(ProjectName).tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\dx;..\..\..\..\include\atl;..\..\BaseClasses;..\..\..\zlib;..\..\..\thirdparty\lcms2\include;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_WINDOWS;DETOURS_X64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -202,8 +178,6 @@
</ResourceCompile>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
- <AdditionalDependencies>lcms2.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
diff --git a/src/filters/renderer/VideoRenderers/stdafx.h b/src/filters/renderer/VideoRenderers/stdafx.h
index b8a8c06d3..4d70b7896 100644
--- a/src/filters/renderer/VideoRenderers/stdafx.h
+++ b/src/filters/renderer/VideoRenderers/stdafx.h
@@ -28,10 +28,6 @@
#include "../../../DSUtil/SharedInclude.h"
-#ifndef WINVER
-#define WINVER 0x0600
-#endif
-
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#define ResStr(id) CString(MAKEINTRESOURCE(id))
diff --git a/src/filters/source/BaseSource/BaseSource.cpp b/src/filters/source/BaseSource/BaseSource.cpp
index 00ab0cc8e..3c42d2732 100644
--- a/src/filters/source/BaseSource/BaseSource.cpp
+++ b/src/filters/source/BaseSource/BaseSource.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/BaseSource/BaseSource.h b/src/filters/source/BaseSource/BaseSource.h
index 0ab2d1cf4..b305defdc 100644
--- a/src/filters/source/BaseSource/BaseSource.h
+++ b/src/filters/source/BaseSource/BaseSource.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/BaseSource/BaseSource.vcproj b/src/filters/source/BaseSource/BaseSource.vcproj
index ae2bdeda6..869879c33 100644
--- a/src/filters/source/BaseSource/BaseSource.vcproj
+++ b/src/filters/source/BaseSource/BaseSource.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="BaseSource"
ProjectGUID="{F50E74C2-5BE7-4C9B-B1E7-6CA19CFAD34E}"
RootNamespace="BaseSource"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
@@ -160,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -218,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/BaseSource/BaseSource.vcxproj b/src/filters/source/BaseSource/BaseSource.vcxproj
index 148eb3600..99f358570 100644
--- a/src/filters/source/BaseSource/BaseSource.vcxproj
+++ b/src/filters/source/BaseSource/BaseSource.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F50E74C2-5BE7-4C9B-B1E7-6CA19CFAD34E}</ProjectGuid>
@@ -44,9 +36,6 @@
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -72,9 +61,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -91,7 +77,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -104,7 +89,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -115,7 +99,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -129,7 +112,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/BaseSource/stdafx.cpp b/src/filters/source/BaseSource/stdafx.cpp
index 7407b6b89..13934d005 100644
--- a/src/filters/source/BaseSource/stdafx.cpp
+++ b/src/filters/source/BaseSource/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// basesource.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/source/BaseSource/stdafx.h b/src/filters/source/BaseSource/stdafx.h
index 22cb54295..4811c9499 100644
--- a/src/filters/source/BaseSource/stdafx.h
+++ b/src/filters/source/BaseSource/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,11 +30,8 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
#include <dvdmedia.h>
-
diff --git a/src/filters/source/D2VSource/D2VSource.cpp b/src/filters/source/D2VSource/D2VSource.cpp
index 6806e440f..1745e381d 100644
--- a/src/filters/source/D2VSource/D2VSource.cpp
+++ b/src/filters/source/D2VSource/D2VSource.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2006 Gabest
+ * Copyright (C) 2003-2006 Gabest
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
diff --git a/src/filters/source/D2VSource/D2VSource.h b/src/filters/source/D2VSource/D2VSource.h
index 26362b0ce..d36f05956 100644
--- a/src/filters/source/D2VSource/D2VSource.h
+++ b/src/filters/source/D2VSource/D2VSource.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2006 Gabest
+ * Copyright (C) 2003-2006 Gabest
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
diff --git a/src/filters/source/D2VSource/D2VSource.vcproj b/src/filters/source/D2VSource/D2VSource.vcproj
index a7aa0a008..cac976e08 100644
--- a/src/filters/source/D2VSource/D2VSource.vcproj
+++ b/src/filters/source/D2VSource/D2VSource.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="D2VSource"
ProjectGUID="{83CC6B88-A112-4192-BD5A-F2A249AF2277}"
RootNamespace="D2VSource"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -393,7 +388,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -451,7 +445,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -509,7 +502,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/D2VSource/D2VSource.vcxproj b/src/filters/source/D2VSource/D2VSource.vcxproj
index 558f793ca..11599a1ba 100644
--- a/src/filters/source/D2VSource/D2VSource.vcxproj
+++ b/src/filters/source/D2VSource/D2VSource.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{83CC6B88-A112-4192-BD5A-F2A249AF2277}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -247,7 +228,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -259,7 +239,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;4799;4731;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -274,7 +253,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/D2VSource/stdafx.h b/src/filters/source/D2VSource/stdafx.h
index e596301ef..ea1e96289 100644
--- a/src/filters/source/D2VSource/stdafx.h
+++ b/src/filters/source/D2VSource/stdafx.h
@@ -1,8 +1,3 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -14,9 +9,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/source/DTSAC3Source/DTSAC3Source.cpp b/src/filters/source/DTSAC3Source/DTSAC3Source.cpp
index 3bec4c649..ea2c58ba2 100644
--- a/src/filters/source/DTSAC3Source/DTSAC3Source.cpp
+++ b/src/filters/source/DTSAC3Source/DTSAC3Source.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/DTSAC3Source/DTSAC3Source.h b/src/filters/source/DTSAC3Source/DTSAC3Source.h
index 067b03268..5f0b1a976 100644
--- a/src/filters/source/DTSAC3Source/DTSAC3Source.h
+++ b/src/filters/source/DTSAC3Source/DTSAC3Source.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/DTSAC3Source/DTSAC3Source.vcproj b/src/filters/source/DTSAC3Source/DTSAC3Source.vcproj
index edcde7a90..644035e75 100644
--- a/src/filters/source/DTSAC3Source/DTSAC3Source.vcproj
+++ b/src/filters/source/DTSAC3Source/DTSAC3Source.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="DTSAC3Source"
ProjectGUID="{30D48874-899F-41C6-9B26-A40C96C91102}"
RootNamespace="DTSAC3Source"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -100,7 +99,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -157,7 +155,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
UsePrecompiledHeader="0"
@@ -215,7 +212,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
@@ -274,7 +270,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -346,7 +341,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -418,7 +412,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -492,7 +485,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/DTSAC3Source/DTSAC3Source.vcxproj b/src/filters/source/DTSAC3Source/DTSAC3Source.vcxproj
index 7f08b76c0..25911320a 100644
--- a/src/filters/source/DTSAC3Source/DTSAC3Source.vcxproj
+++ b/src/filters/source/DTSAC3Source/DTSAC3Source.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{30D48874-899F-41C6-9B26-A40C96C91102}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -164,7 +149,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -175,7 +159,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -191,7 +174,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -204,7 +186,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -225,7 +206,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -244,7 +224,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -266,7 +245,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/DTSAC3Source/stdafx.cpp b/src/filters/source/DTSAC3Source/stdafx.cpp
index 396f14d73..13934d005 100644
--- a/src/filters/source/DTSAC3Source/stdafx.cpp
+++ b/src/filters/source/DTSAC3Source/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// dtsac3source.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/source/DTSAC3Source/stdafx.h b/src/filters/source/DTSAC3Source/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/source/DTSAC3Source/stdafx.h
+++ b/src/filters/source/DTSAC3Source/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/source/FLICSource/FLICSource.cpp b/src/filters/source/FLICSource/FLICSource.cpp
index c0f10cdc8..696103f59 100644
--- a/src/filters/source/FLICSource/FLICSource.cpp
+++ b/src/filters/source/FLICSource/FLICSource.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/FLICSource/FLICSource.h b/src/filters/source/FLICSource/FLICSource.h
index 7d54a274f..5038fb0a6 100644
--- a/src/filters/source/FLICSource/FLICSource.h
+++ b/src/filters/source/FLICSource/FLICSource.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/FLICSource/FLICSource.vcproj b/src/filters/source/FLICSource/FLICSource.vcproj
index ca849f9d7..cf2d3fdbc 100644
--- a/src/filters/source/FLICSource/FLICSource.vcproj
+++ b/src/filters/source/FLICSource/FLICSource.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="FLICSource"
ProjectGUID="{431DD5B6-3F2F-47EE-A23F-514BC044B704}"
RootNamespace="FLICSource"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -506,7 +499,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/FLICSource/FLICSource.vcxproj b/src/filters/source/FLICSource/FLICSource.vcxproj
index b6d4f6416..2400ab19a 100644
--- a/src/filters/source/FLICSource/FLICSource.vcxproj
+++ b/src/filters/source/FLICSource/FLICSource.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{431DD5B6-3F2F-47EE-A23F-514BC044B704}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -171,8 +156,7 @@
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -190,8 +174,7 @@
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -212,8 +195,7 @@
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -246,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -257,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -271,7 +250,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/FLICSource/stdafx.cpp b/src/filters/source/FLICSource/stdafx.cpp
index 5158d6e51..13934d005 100644
--- a/src/filters/source/FLICSource/stdafx.cpp
+++ b/src/filters/source/FLICSource/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// flicsource.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/source/FLICSource/stdafx.h b/src/filters/source/FLICSource/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/source/FLICSource/stdafx.h
+++ b/src/filters/source/FLICSource/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/source/FlacSource/FlacSource.cpp b/src/filters/source/FlacSource/FlacSource.cpp
index 9f0cf22b7..ab887a244 100644
--- a/src/filters/source/FlacSource/FlacSource.cpp
+++ b/src/filters/source/FlacSource/FlacSource.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/FlacSource/FlacSource.h b/src/filters/source/FlacSource/FlacSource.h
index 98fb86d7a..9b486bd77 100644
--- a/src/filters/source/FlacSource/FlacSource.h
+++ b/src/filters/source/FlacSource/FlacSource.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/FlacSource/FlacSource.vcproj b/src/filters/source/FlacSource/FlacSource.vcproj
index 57566c495..d49353764 100644
--- a/src/filters/source/FlacSource/FlacSource.vcproj
+++ b/src/filters/source/FlacSource/FlacSource.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="FlacSource"
ProjectGUID="{916D0FC1-1D86-487A-82DE-37FBEE43FB34}"
RootNamespace="FlacSource"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;FLAC__NO_DLL"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;FLAC__NO_DLL"
DebugInformationFormat="3"
@@ -161,7 +159,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;FLAC__NO_DLL"
/>
@@ -220,7 +217,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;FLAC__NO_DLL"
EnableEnhancedInstructionSet="0"
@@ -280,7 +276,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL"
/>
@@ -352,7 +347,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL"
DebugInformationFormat="3"
@@ -424,7 +418,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL"
/>
@@ -499,7 +492,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/FlacSource/FlacSource.vcxproj b/src/filters/source/FlacSource/FlacSource.vcxproj
index 988bfa3d8..c1ac945dc 100644
--- a/src/filters/source/FlacSource/FlacSource.vcxproj
+++ b/src/filters/source/FlacSource/FlacSource.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{916D0FC1-1D86-487A-82DE-37FBEE43FB34}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -166,7 +151,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -179,7 +163,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -195,7 +178,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -207,8 +189,7 @@
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -228,8 +209,7 @@
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -247,8 +227,7 @@
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -270,8 +249,7 @@
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include; ..\..\transform\mpadecfilter\libflac\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/FlacSource/stdafx.cpp b/src/filters/source/FlacSource/stdafx.cpp
index 396f14d73..13934d005 100644
--- a/src/filters/source/FlacSource/stdafx.cpp
+++ b/src/filters/source/FlacSource/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// dtsac3source.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/source/FlacSource/stdafx.h b/src/filters/source/FlacSource/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/source/FlacSource/stdafx.h
+++ b/src/filters/source/FlacSource/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/source/ShoutcastSource/ShoutcastSource.cpp b/src/filters/source/ShoutcastSource/ShoutcastSource.cpp
index a25bfe871..5e5654e66 100644
--- a/src/filters/source/ShoutcastSource/ShoutcastSource.cpp
+++ b/src/filters/source/ShoutcastSource/ShoutcastSource.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/ShoutcastSource/ShoutcastSource.h b/src/filters/source/ShoutcastSource/ShoutcastSource.h
index e8ef4c51a..03e911334 100644
--- a/src/filters/source/ShoutcastSource/ShoutcastSource.h
+++ b/src/filters/source/ShoutcastSource/ShoutcastSource.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/ShoutcastSource/ShoutcastSource.vcproj b/src/filters/source/ShoutcastSource/ShoutcastSource.vcproj
index d348c41f4..f402c8bdf 100644
--- a/src/filters/source/ShoutcastSource/ShoutcastSource.vcproj
+++ b/src/filters/source/ShoutcastSource/ShoutcastSource.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="ShoutcastSource"
ProjectGUID="{42B599D7-BB84-481F-A42A-2DBE0E2E2D7E}"
RootNamespace="ShoutcastSource"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -506,7 +499,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/ShoutcastSource/ShoutcastSource.vcxproj b/src/filters/source/ShoutcastSource/ShoutcastSource.vcxproj
index 3bb5d9cc3..a18f30523 100644
--- a/src/filters/source/ShoutcastSource/ShoutcastSource.vcxproj
+++ b/src/filters/source/ShoutcastSource/ShoutcastSource.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{42B599D7-BB84-481F-A42A-2DBE0E2E2D7E}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -246,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -257,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -271,7 +250,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/ShoutcastSource/stdafx.cpp b/src/filters/source/ShoutcastSource/stdafx.cpp
index 8905f2db5..13934d005 100644
--- a/src/filters/source/ShoutcastSource/stdafx.cpp
+++ b/src/filters/source/ShoutcastSource/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// shoutcastsource.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/source/ShoutcastSource/stdafx.h b/src/filters/source/ShoutcastSource/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/source/ShoutcastSource/stdafx.h
+++ b/src/filters/source/ShoutcastSource/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/source/SubtitleSource/SubtitleSource.cpp b/src/filters/source/SubtitleSource/SubtitleSource.cpp
index 0bddf17a8..b470268a9 100644
--- a/src/filters/source/SubtitleSource/SubtitleSource.cpp
+++ b/src/filters/source/SubtitleSource/SubtitleSource.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/SubtitleSource/SubtitleSource.h b/src/filters/source/SubtitleSource/SubtitleSource.h
index b76143ff4..459db7b6a 100644
--- a/src/filters/source/SubtitleSource/SubtitleSource.h
+++ b/src/filters/source/SubtitleSource/SubtitleSource.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/source/SubtitleSource/SubtitleSource.vcproj b/src/filters/source/SubtitleSource/SubtitleSource.vcproj
index ce6975d99..3a86f9163 100644
--- a/src/filters/source/SubtitleSource/SubtitleSource.vcproj
+++ b/src/filters/source/SubtitleSource/SubtitleSource.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="SubtitleSource"
ProjectGUID="{8F998497-9C51-4FAA-83E4-1D85B22CBA13}"
RootNamespace="SubtitleSource"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -507,7 +500,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/source/SubtitleSource/SubtitleSource.vcxproj b/src/filters/source/SubtitleSource/SubtitleSource.vcxproj
index f7eadaa98..3863e42cf 100644
--- a/src/filters/source/SubtitleSource/SubtitleSource.vcxproj
+++ b/src/filters/source/SubtitleSource/SubtitleSource.vcxproj
@@ -137,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -158,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -177,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -199,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -219,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -232,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -243,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -258,7 +251,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/source/SubtitleSource/stdafx.cpp b/src/filters/source/SubtitleSource/stdafx.cpp
index f08539cb9..13934d005 100644
--- a/src/filters/source/SubtitleSource/stdafx.cpp
+++ b/src/filters/source/SubtitleSource/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// subtitlesource.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/source/SubtitleSource/stdafx.h b/src/filters/source/SubtitleSource/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/source/SubtitleSource/stdafx.h
+++ b/src/filters/source/SubtitleSource/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/stdafx.h b/src/filters/stdafx.h
index e641fa6c6..2605a8cfa 100644
--- a/src/filters/stdafx.h
+++ b/src/filters/stdafx.h
@@ -30,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <dshow.h>
#include <streams.h>
diff --git a/src/filters/switcher/AudioSwitcher/Audio.cpp b/src/filters/switcher/AudioSwitcher/Audio.cpp
index 8ff328bf0..055c01668 100644
--- a/src/filters/switcher/AudioSwitcher/Audio.cpp
+++ b/src/filters/switcher/AudioSwitcher/Audio.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/switcher/AudioSwitcher/Audio.h b/src/filters/switcher/AudioSwitcher/Audio.h
index 81688d93c..df032796f 100644
--- a/src/filters/switcher/AudioSwitcher/Audio.h
+++ b/src/filters/switcher/AudioSwitcher/Audio.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/switcher/AudioSwitcher/AudioSwitcher.cpp b/src/filters/switcher/AudioSwitcher/AudioSwitcher.cpp
index 90d8be90b..5d6fe2092 100644
--- a/src/filters/switcher/AudioSwitcher/AudioSwitcher.cpp
+++ b/src/filters/switcher/AudioSwitcher/AudioSwitcher.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcproj b/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcproj
index fa43bbebd..08252cada 100644
--- a/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcproj
+++ b/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="AudioSwitcher"
ProjectGUID="{D8DB3E7E-D50E-4EC3-A9B9-DAD18F5FE466}"
RootNamespace="AudioSwitcher"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -117,7 +116,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -190,7 +188,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -265,7 +262,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -339,7 +335,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -396,7 +391,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -453,7 +447,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -511,7 +504,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcxproj b/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcxproj
index 6f186efdc..eafc06292 100644
--- a/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcxproj
+++ b/src/filters/switcher/AudioSwitcher/AudioSwitcher.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D8DB3E7E-D50E-4EC3-A9B9-DAD18F5FE466}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -173,7 +158,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -193,7 +177,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -216,7 +199,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -237,7 +219,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -250,7 +231,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -261,7 +241,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -276,7 +255,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/switcher/AudioSwitcher/stdafx.cpp b/src/filters/switcher/AudioSwitcher/stdafx.cpp
index f1f712075..13934d005 100644
--- a/src/filters/switcher/AudioSwitcher/stdafx.cpp
+++ b/src/filters/switcher/AudioSwitcher/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// audioswitcher.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/switcher/AudioSwitcher/stdafx.h b/src/filters/switcher/AudioSwitcher/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/switcher/AudioSwitcher/stdafx.h
+++ b/src/filters/switcher/AudioSwitcher/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.cpp b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.cpp
index a468350a9..412e860c6 100644
--- a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.cpp
+++ b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.h b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.h
index 11e643765..c199bfa90 100644
--- a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.h
+++ b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcproj b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcproj
index 05bb7238f..5a35787ec 100644
--- a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcproj
+++ b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="AVI2AC3Filter"
ProjectGUID="{339A4575-E25B-45D6-94A1-D835891740B8}"
RootNamespace="AVI2AC3Filter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -506,7 +499,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcxproj b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcxproj
index e3bb37208..4e408c8d5 100644
--- a/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcxproj
+++ b/src/filters/transform/AVI2AC3Filter/AVI2AC3Filter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{339A4575-E25B-45D6-94A1-D835891740B8}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -246,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -257,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -271,7 +250,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/AVI2AC3Filter/stdafx.cpp b/src/filters/transform/AVI2AC3Filter/stdafx.cpp
index 0ad87fbc7..2d8565418 100644
--- a/src/filters/transform/AVI2AC3Filter/stdafx.cpp
+++ b/src/filters/transform/AVI2AC3Filter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,18 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// avi2ac3filter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
-
#include <streams.h>
diff --git a/src/filters/transform/AVI2AC3Filter/stdafx.h b/src/filters/transform/AVI2AC3Filter/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/transform/AVI2AC3Filter/stdafx.h
+++ b/src/filters/transform/AVI2AC3Filter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp
index 7ba78e9f1..99436032b 100644
--- a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp
+++ b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.h b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.h
index 9324978bc..37ffdc049 100644
--- a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.h
+++ b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcproj b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcproj
index 438b4e5bf..238b6080e 100644
--- a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcproj
+++ b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="BaseVideoFilter"
ProjectGUID="{54DDA60F-E528-4D07-A152-960A1E818680}"
RootNamespace="BaseVideoFilter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -102,7 +101,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -160,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -218,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcxproj b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcxproj
index b1a767204..2a885214a 100644
--- a/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcxproj
+++ b/src/filters/transform/BaseVideoFilter/BaseVideoFilter.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{54DDA60F-E528-4D07-A152-960A1E818680}</ProjectGuid>
@@ -44,9 +36,6 @@
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -72,9 +61,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -91,7 +77,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -104,7 +89,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -115,7 +99,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -129,7 +112,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/BaseVideoFilter/stdafx.cpp b/src/filters/transform/BaseVideoFilter/stdafx.cpp
index 4b29d63b8..13934d005 100644
--- a/src/filters/transform/BaseVideoFilter/stdafx.cpp
+++ b/src/filters/transform/BaseVideoFilter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// mpeg2decds.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/transform/BaseVideoFilter/stdafx.h b/src/filters/transform/BaseVideoFilter/stdafx.h
index 8068e9c6e..e0d4538b1 100644
--- a/src/filters/transform/BaseVideoFilter/stdafx.h
+++ b/src/filters/transform/BaseVideoFilter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,11 +30,8 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
#include <amvideo.h>
-
diff --git a/src/filters/transform/BufferFilter/BufferFilter.cpp b/src/filters/transform/BufferFilter/BufferFilter.cpp
index a45bdcefb..e79e3b2a8 100644
--- a/src/filters/transform/BufferFilter/BufferFilter.cpp
+++ b/src/filters/transform/BufferFilter/BufferFilter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/BufferFilter/BufferFilter.h b/src/filters/transform/BufferFilter/BufferFilter.h
index 33561398e..7bba2767f 100644
--- a/src/filters/transform/BufferFilter/BufferFilter.h
+++ b/src/filters/transform/BufferFilter/BufferFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/BufferFilter/BufferFilter.vcproj b/src/filters/transform/BufferFilter/BufferFilter.vcproj
index e9eace8aa..5b1bb9e35 100644
--- a/src/filters/transform/BufferFilter/BufferFilter.vcproj
+++ b/src/filters/transform/BufferFilter/BufferFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="BufferFilter"
ProjectGUID="{9DCFD02A-16A0-4766-BC18-66163E21929D}"
RootNamespace="BufferFilter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -449,7 +443,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -506,7 +499,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/BufferFilter/BufferFilter.vcxproj b/src/filters/transform/BufferFilter/BufferFilter.vcxproj
index 3ced74c22..f8bcd4f9e 100644
--- a/src/filters/transform/BufferFilter/BufferFilter.vcxproj
+++ b/src/filters/transform/BufferFilter/BufferFilter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9DCFD02A-16A0-4766-BC18-66163E21929D}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -246,7 +227,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -257,7 +237,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -271,7 +250,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/BufferFilter/stdafx.cpp b/src/filters/transform/BufferFilter/stdafx.cpp
index 280418994..13934d005 100644
--- a/src/filters/transform/BufferFilter/stdafx.cpp
+++ b/src/filters/transform/BufferFilter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// bufferfilter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/transform/BufferFilter/stdafx.h b/src/filters/transform/BufferFilter/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/transform/BufferFilter/stdafx.h
+++ b/src/filters/transform/BufferFilter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/transform/DeCSSFilter/DeCSSFilter.cpp b/src/filters/transform/DeCSSFilter/DeCSSFilter.cpp
index 2c5c4500a..0ee407ed1 100644
--- a/src/filters/transform/DeCSSFilter/DeCSSFilter.cpp
+++ b/src/filters/transform/DeCSSFilter/DeCSSFilter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -22,7 +22,7 @@
#include "stdafx.h"
#include <atlbase.h>
#include "DeCSSFilter.h"
-#include "../../../decss/DeCSSInputPin.h"
+#include "../../../DeCSS/DeCSSInputPin.h"
#include "../../../DSUtil/DSUtil.h"
#ifdef REGISTER_FILTER
diff --git a/src/filters/transform/DeCSSFilter/DeCSSFilter.h b/src/filters/transform/DeCSSFilter/DeCSSFilter.h
index a16cfba27..37c1aa0d0 100644
--- a/src/filters/transform/DeCSSFilter/DeCSSFilter.h
+++ b/src/filters/transform/DeCSSFilter/DeCSSFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/DeCSSFilter/DeCSSFilter.vcproj b/src/filters/transform/DeCSSFilter/DeCSSFilter.vcproj
index 8e638685c..ea779399c 100644
--- a/src/filters/transform/DeCSSFilter/DeCSSFilter.vcproj
+++ b/src/filters/transform/DeCSSFilter/DeCSSFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="DeCSSFilter"
ProjectGUID="{F6B06383-3FFD-403B-9867-4AA82A20AA83}"
RootNamespace="DeCSSFilter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
UsePrecompiledHeader="0"
@@ -117,7 +116,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
UsePrecompiledHeader="0"
@@ -190,7 +188,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
/>
@@ -264,7 +261,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -337,7 +333,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -394,7 +389,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -451,7 +445,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -508,7 +501,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/DeCSSFilter/DeCSSFilter.vcxproj b/src/filters/transform/DeCSSFilter/DeCSSFilter.vcxproj
index 02c9ea0d6..ec180dd90 100644
--- a/src/filters/transform/DeCSSFilter/DeCSSFilter.vcxproj
+++ b/src/filters/transform/DeCSSFilter/DeCSSFilter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F6B06383-3FFD-403B-9867-4AA82A20AA83}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -174,7 +159,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -195,7 +179,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -217,7 +200,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -237,7 +219,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -250,7 +231,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -261,7 +241,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -275,7 +254,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/DeCSSFilter/stdafx.cpp b/src/filters/transform/DeCSSFilter/stdafx.cpp
index d8ef94a00..13934d005 100644
--- a/src/filters/transform/DeCSSFilter/stdafx.cpp
+++ b/src/filters/transform/DeCSSFilter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// decssfilter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/transform/DeCSSFilter/stdafx.h b/src/filters/transform/DeCSSFilter/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/transform/DeCSSFilter/stdafx.h
+++ b/src/filters/transform/DeCSSFilter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/transform/MPCVideoDec/FfmpegContext.c b/src/filters/transform/MPCVideoDec/FfmpegContext.c
index f2f902dd4..2a94030e5 100644
--- a/src/filters/transform/MPCVideoDec/FfmpegContext.c
+++ b/src/filters/transform/MPCVideoDec/FfmpegContext.c
@@ -56,11 +56,11 @@ const byte ZZ_SCAN8[64] =
// FIXME : remove duplicate declaration with ffmpeg ??
typedef struct Mpeg1Context {
MpegEncContext mpeg_enc_ctx;
- int mpeg_enc_ctx_allocated; /* true if decoding context allocated */
- int repeat_field; /* true if we must repeat the field */
- AVPanScan pan_scan; /** some temporary storage for the panscan */
+ int mpeg_enc_ctx_allocated; /* true if decoding context allocated */
+ int repeat_field; /* true if we must repeat the field */
+ AVPanScan pan_scan; /** some temporary storage for the panscan */
int slice_count;
- int swap_uv;//indicate VCR2
+ int swap_uv; //indicate VCR2
int save_aspect_info;
int save_width, save_height, save_progressive_seq;
AVRational frame_rate_ext; ///< MPEG-2 specific framerate modificator
@@ -68,19 +68,26 @@ typedef struct Mpeg1Context {
DXVA_SliceInfo* pSliceInfo;
} Mpeg1Context;
-
-int IsVista()
+BOOL IsVistaOrAbove()
{
+ //only check once then cache the result
+ static BOOL checked = FALSE;
+ static BOOL result = FALSE;
OSVERSIONINFO osver;
- osver.dwOSVersionInfoSize = sizeof( OSVERSIONINFO );
+ if (!checked)
+ {
+ checked = TRUE;
+
+ osver.dwOSVersionInfoSize = sizeof( OSVERSIONINFO );
- if ( GetVersionEx( &osver ) &&
+ if (GetVersionEx( &osver ) &&
osver.dwPlatformId == VER_PLATFORM_WIN32_NT &&
(osver.dwMajorVersion >= 6 ) )
- return 1;
+ result = TRUE;
+ }
- return 0;
+ return result;
}
char* GetFFMpegPictureType(int nType)
@@ -162,6 +169,7 @@ int FFH264CheckCompatibility(int nWidth, int nHeight, struct AVCodecContext* pAV
int video_is_level51 = 0;
int no_level51_support = 1;
int too_much_ref_frames = 0;
+ int profile_higher_than_high = 0;
int max_ref_frames = 0;
int max_ref_frames_dpb41 = min(11, 8388608/(nWidth * nHeight) );
@@ -176,12 +184,13 @@ int FFH264CheckCompatibility(int nWidth, int nHeight, struct AVCodecContext* pAV
if (cur_sps != NULL)
{
video_is_level51 = cur_sps->level_idc >= 51 ? 1 : 0;
+ profile_higher_than_high = (cur_sps->profile_idc > 100);
max_ref_frames = max_ref_frames_dpb41; // default value is calculate
if (nPCIVendor == PCIV_nVidia)
{
// nVidia cards support level 5.1 since drivers v6.14.11.7800 for XP and drivers v7.15.11.7800 for Vista/7
- if (IsVista())
+ if (IsVistaOrAbove())
{
if (DriverVersionCheck(VideoDriverVersion, 7, 15, 11, 7800))
{
@@ -191,7 +200,8 @@ int FFH264CheckCompatibility(int nWidth, int nHeight, struct AVCodecContext* pAV
if(nWidth >= 1280) {
max_ref_frames = 16;
}
- else {
+ else
+ {
max_ref_frames = 11;
}
}
@@ -231,7 +241,7 @@ int FFH264CheckCompatibility(int nWidth, int nHeight, struct AVCodecContext* pAV
}
}
- return (video_is_level51 * no_level51_support * DXVA_UNSUPPORTED_LEVEL) + (too_much_ref_frames * DXVA_TOO_MUCH_REF_FRAMES);
+ return (video_is_level51 * no_level51_support * DXVA_UNSUPPORTED_LEVEL) + (too_much_ref_frames * DXVA_TOO_MANY_REF_FRAMES) + (profile_higher_than_high * DXVA_PROFILE_HIGHER_THAN_HIGH);
}
@@ -430,7 +440,7 @@ void FFH264UpdateRefFramesList (DXVA_PicParams_H264* pDXVAPicParams, struct AVCo
else if (i >= h->short_ref_count && i < h->long_ref_count)
{
// Long list reference frames
- pic = h->short_ref[h->short_ref_count + h->long_ref_count - i - 1];
+ pic = h->short_ref[h->short_ref_count + h->long_ref_count - i - 1];
AssociatedFlag = 1;
}
else
diff --git a/src/filters/transform/MPCVideoDec/FfmpegContext.h b/src/filters/transform/MPCVideoDec/FfmpegContext.h
index e817a8f2d..958b9a16d 100644
--- a/src/filters/transform/MPCVideoDec/FfmpegContext.h
+++ b/src/filters/transform/MPCVideoDec/FfmpegContext.h
@@ -36,9 +36,10 @@ enum PCI_Vendors
};
// Bitmasks for DXVA compatibility check
-#define DXVA_UNSUPPORTED_LEVEL 1
-#define DXVA_TOO_MUCH_REF_FRAMES 2
-#define DXVA_INCOMPATIBLE_SAR 4
+#define DXVA_UNSUPPORTED_LEVEL 1
+#define DXVA_TOO_MANY_REF_FRAMES 2
+#define DXVA_INCOMPATIBLE_SAR 4
+#define DXVA_PROFILE_HIGHER_THAN_HIGH 8
// === H264 functions
void FFH264DecodeBuffer (struct AVCodecContext* pAVCtx, BYTE* pBuffer, UINT nSize, int* pFramePOC, int* pOutPOC, REFERENCE_TIME* pOutrtStart);
@@ -59,7 +60,7 @@ HRESULT FFMpeg2DecodeFrame (DXVA_PictureParameters* pPicParams, DXVA_QmatrixDa
struct AVCodecContext* pAVCtx, struct AVFrame* pFrame, int* nNextCodecIndex, int* nFieldType, int* nSliceType, BYTE* pBuffer, UINT nSize);
// === Common functions
-int IsVista();
+BOOL IsVistaOrAbove();
char* GetFFMpegPictureType(int nType);
int FFIsInterlaced(struct AVCodecContext* pAVCtx, int nHeight);
unsigned long FFGetMBNumber(struct AVCodecContext* pAVCtx);
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDec.vcproj b/src/filters/transform/MPCVideoDec/MPCVideoDec.vcproj
index e189fd1d4..1590b20f6 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDec.vcproj
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDec.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MPCVideoDec"
ProjectGUID="{58E36BF5-4A06-47E4-BD40-4CCEF8C634DF}"
RootNamespace="MPCVideoDec"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -114,7 +113,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
DebugInformationFormat="3"
@@ -184,7 +182,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
CompileAs="2"
@@ -259,7 +256,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL"
EnableEnhancedInstructionSet="0"
@@ -333,7 +329,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -392,7 +387,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;_DEBUG;"
DebugInformationFormat="3"
@@ -451,7 +445,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="WIN32;NDEBUG"
UsePrecompiledHeader="0"
@@ -512,7 +505,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;&quot;$(DXSDK_DIR)Include&quot;"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDec.vcxproj b/src/filters/transform/MPCVideoDec/MPCVideoDec.vcxproj
index a8bec74b7..d33a1a37f 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDec.vcxproj
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDec.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{58E36BF5-4A06-47E4-BD40-4CCEF8C634DF}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -169,7 +154,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -185,7 +169,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsCpp</CompileAs>
@@ -208,7 +191,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -229,7 +211,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -245,7 +226,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -259,7 +239,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -278,7 +257,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;ffmpeg;ffmpeg\libavcodec;ffmpeg\libavcore;ffmpeg\libavutil;..\..\BaseClasses;$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp
index 2a2ff9dbe..13a66a4d9 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp
@@ -558,14 +558,13 @@ CMPCVideoDecFilter::CMPCVideoDecFilter(LPUNKNOWN lpunk, HRESULT* phr)
: CBaseVideoFilter(NAME("MPC - Video decoder"), lpunk, phr, __uuidof(this))
{
HWND hWnd = NULL;
- for (int i=0; i<countof(ffCodecs); i++)
+
+ if(IsVistaOrAbove())
{
- if(ffCodecs[i].nFFCodec == CODEC_ID_H264)
+ for (int i=0; i<countof(ffCodecs); i++)
{
- if(IsVista())
- {
+ if(ffCodecs[i].nFFCodec == CODEC_ID_H264)
ffCodecs[i].DXVAModes = &DXVA_H264_VISTA;
- }
}
}
@@ -1096,7 +1095,7 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
m_pAVCtx->error_recognition = m_nErrorRecognition;
m_pAVCtx->idct_algo = m_nIDCTAlgo;
m_pAVCtx->skip_loop_filter = (AVDiscard)m_nDiscardMode;
- m_pAVCtx->dsp_mask = FF_MM_FORCE | m_pCpuId->GetFeatures();
+ m_pAVCtx->dsp_mask = AV_CPU_FLAG_FORCE | m_pCpuId->GetFeatures();
m_pAVCtx->postgain = 1.0f;
m_pAVCtx->debug_mv = 0;
@@ -1142,7 +1141,7 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
break;
case 2 :
// skip reference frame check
- if(nCompat != DXVA_TOO_MUCH_REF_FRAMES) m_bDXVACompatible = false;
+ if(nCompat != DXVA_TOO_MANY_REF_FRAMES) m_bDXVACompatible = false;
break;
}
}
@@ -1151,7 +1150,7 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
break;
case CODEC_ID_MPEG2VIDEO :
// DSP is disable for DXVA decoding (to keep default idct_permutation)
- m_pAVCtx->dsp_mask ^= FF_MM_FORCE;
+ m_pAVCtx->dsp_mask ^= AV_CPU_FLAG_FORCE;
break;
}
@@ -1954,7 +1953,7 @@ BOOL CMPCVideoDecFilter::IsSupportedDecoderConfig(const D3DFORMAT nD3DFormat, co
{
bool bRet = false;
- bRet = (nD3DFormat == MAKEFOURCC('N', 'V', '1', '2'));
+ bRet = (nD3DFormat == MAKEFOURCC('N', 'V', '1', '2') || nD3DFormat == MAKEFOURCC('I', 'M', 'C', '3'));
bIsPrefered = (config.ConfigBitstreamRaw == ffCodecs[m_nCodecNb].DXVAModes->PreferedConfigBitstream);
LOG (_T("IsSupportedDecoderConfig 0x%08x %d"), nD3DFormat, bRet);
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h
index 2e4062cda..b4e2fbf12 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h
@@ -30,7 +30,7 @@
#include "IMPCVideoDecFilter.h"
#include "MPCVideoDecSettingsWnd.h"
-#include "../../../decss/DeCSSInputPin.h"
+#include "../../../DeCSS/DeCSSInputPin.h"
#include "DXVADecoder.h"
#include "TlibavcodecExt.h"
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/Makefile b/src/filters/transform/MPCVideoDec/ffmpeg/Makefile
index 666048770..9dda0709c 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/Makefile
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/Makefile
@@ -20,6 +20,7 @@ OUT_DIRS = ../../../../../bin/obj/Release_x64/libavcodec_gcc/ \
../../../../../bin/obj/Release_x64/libavcodec_gcc/libavcodec/x86 \
../../../../../bin/obj/Release_x64/libavcodec_gcc/libavcore \
../../../../../bin/obj/Release_x64/libavcodec_gcc/libavutil \
+ ../../../../../bin/obj/Release_x64/libavcodec_gcc/libavutil/x86 \
../../../../../bin/obj/Release_x64/libavcodec_gcc/libswscale \
$(SLIB_DIR)
else
@@ -29,6 +30,7 @@ OUT_DIRS = ../../../../../bin/obj/Release_Win32/libavcodec_gcc/ \
../../../../../bin/obj/Release_Win32/libavcodec_gcc/libavcodec/x86 \
../../../../../bin/obj/Release_Win32/libavcodec_gcc/libavcore \
../../../../../bin/obj/Release_Win32/libavcodec_gcc/libavutil \
+ ../../../../../bin/obj/Release_Win32/libavcodec_gcc/libavutil/x86 \
../../../../../bin/obj/Release_Win32/libavcodec_gcc/libswscale \
$(SLIB_DIR)
endif
@@ -36,6 +38,8 @@ endif
CFLAGS+= -I. -I.. -I$(LAVC_DIR) -I$(LAVCORE_DIR) -I$(LAVU_DIR) -I$(LSWS_DIR) -I$(ZLIB_DIR) -I$(PNG_DIR) \
-DHAVE_AV_CONFIG_H -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=gnu99
+YASMFLAGS+= -Pconfig.asm
+
SRCS_C=\
$(LAVC_DIR)/aac_ac3_parser.c \
$(LAVC_DIR)/ac3.c \
@@ -139,13 +143,14 @@ SRCS_C=\
$(LAVC_DIR)/amr_float/interf_dec.c \
$(LAVC_DIR)/amr_float/sp_dec.c \
\
- $(LAVC_DIR)/x86/cpuid.c \
$(LAVC_DIR)/x86/dsputil_mmx.c \
$(LAVC_DIR)/x86/fdct_mmx.c \
$(LAVC_DIR)/x86/fft.c \
$(LAVC_DIR)/x86/fft_3dn.c \
$(LAVC_DIR)/x86/fft_3dn2.c \
$(LAVC_DIR)/x86/fft_sse.c \
+ $(LAVC_DIR)/x86/h264_intrapred_init.c \
+ $(LAVC_DIR)/x86/h264dsp_mmx.c \
$(LAVC_DIR)/x86/idct_mmx.c \
$(LAVC_DIR)/x86/idct_mmx_xvid.c \
$(LAVC_DIR)/x86/idct_sse2_xvid.c \
@@ -153,15 +158,16 @@ SRCS_C=\
$(LAVC_DIR)/x86/mpegvideo_mmx.c \
$(LAVC_DIR)/x86/simple_idct_mmx.c \
$(LAVC_DIR)/x86/vc1dsp_mmx.c \
- $(LAVC_DIR)/x86/vp3dsp_mmx.c \
- $(LAVC_DIR)/x86/vp3dsp_sse2.c \
$(LAVC_DIR)/x86/vp56dsp_init.c \
$(LAVC_DIR)/x86/vp8dsp-init.c \
\
$(LAVCORE_DIR)/avcore_utils.c \
$(LAVCORE_DIR)/imgutils.c \
\
+ $(LAVU_DIR)/avstring.c \
+ $(LAVU_DIR)/cpu.c \
$(LAVU_DIR)/crc.c \
+ $(LAVU_DIR)/eval.c \
$(LAVU_DIR)/intfloat_readwrite.c \
$(LAVU_DIR)/inverse.c \
$(LAVU_DIR)/log.c \
@@ -173,6 +179,8 @@ SRCS_C=\
$(LAVU_DIR)/random_seed.c \
$(LAVU_DIR)/rational.c \
\
+ $(LAVU_DIR)/x86/cpu.c \
+\
$(LSWS_DIR)/rgb2rgb.c \
$(LSWS_DIR)/swscale.c \
$(LSWS_DIR)/sww32thread.c \
@@ -181,11 +189,13 @@ SRCS_C=\
SRCS_YASM=\
$(LAVC_DIR)/x86/dsputil_yasm.asm \
$(LAVC_DIR)/x86/fft_mmx.asm \
- $(LAVC_DIR)/x86/h264_deblock_sse2.asm \
- $(LAVC_DIR)/x86/h264_idct_sse2.asm \
+ $(LAVC_DIR)/x86/h264_chromamc.asm \
+ $(LAVC_DIR)/x86/h264_deblock.asm \
+ $(LAVC_DIR)/x86/h264_idct.asm \
$(LAVC_DIR)/x86/h264_intrapred.asm \
- $(LAVC_DIR)/x86/h264_weight_sse2.asm \
+ $(LAVC_DIR)/x86/h264_weight.asm \
$(LAVC_DIR)/x86/vc1dsp_yasm.asm \
+ $(LAVC_DIR)/x86/vp3dsp.asm \
$(LAVC_DIR)/x86/vp56dsp.asm \
$(LAVC_DIR)/x86/vp8dsp.asm \
$(LAVC_DIR)/x86/x86util.asm
@@ -222,5 +232,6 @@ clean:
$(OUT_DIR)$(LAVC_DIR)/amr_float/*.o $(OUT_DIR)$(LAVC_DIR)/amr_float/*.d \
$(OUT_DIR)$(LAVCORE_DIR)/*.o $(OUT_DIR)$(LAVCORE_DIR)/*.d \
$(OUT_DIR)$(LAVU_DIR)/*.o $(OUT_DIR)$(LAVU_DIR)/*.d \
+ $(OUT_DIR)$(LAVU_DIR)/x86/*.o $(OUT_DIR)$(LAVU_DIR)/x86/*.d \
$(OUT_DIR)$(LSWS_DIR)/*.o $(OUT_DIR)$(LSWS_DIR)/*.d \
$(ZLIB_DIR)/*.o $(ZLIB_DIR)/*.d $(PNG_DIR)/*.o $(SLIB)
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/Makefile_2010 b/src/filters/transform/MPCVideoDec/ffmpeg/Makefile_2010
index 27b4f57f1..d0dc4b5ec 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/Makefile_2010
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/Makefile_2010
@@ -20,6 +20,7 @@ OUT_DIRS = ../../../../../bin10/obj/Release_x64/libavcodec_gcc/ \
../../../../../bin10/obj/Release_x64/libavcodec_gcc/libavcodec/x86 \
../../../../../bin10/obj/Release_x64/libavcodec_gcc/libavcore \
../../../../../bin10/obj/Release_x64/libavcodec_gcc/libavutil \
+ ../../../../../bin10/obj/Release_x64/libavcodec_gcc/libavutil/x86 \
../../../../../bin10/obj/Release_x64/libavcodec_gcc/libswscale \
$(SLIB_DIR)
else
@@ -29,6 +30,7 @@ OUT_DIRS = ../../../../../bin10/obj/Release_Win32/libavcodec_gcc/ \
../../../../../bin10/obj/Release_Win32/libavcodec_gcc/libavcodec/x86 \
../../../../../bin10/obj/Release_Win32/libavcodec_gcc/libavcore \
../../../../../bin10/obj/Release_Win32/libavcodec_gcc/libavutil \
+ ../../../../../bin10/obj/Release_Win32/libavcodec_gcc/libavutil/x86 \
../../../../../bin10/obj/Release_Win32/libavcodec_gcc/libswscale \
$(SLIB_DIR)
endif
@@ -36,6 +38,8 @@ endif
CFLAGS+= -I. -I.. -I$(LAVC_DIR) -I$(LAVCORE_DIR) -I$(LAVU_DIR) -I$(LSWS_DIR) -I$(ZLIB_DIR) -I$(PNG_DIR) \
-DHAVE_AV_CONFIG_H -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=gnu99
+YASMFLAGS+= -Pconfig.asm
+
SRCS_C=\
$(LAVC_DIR)/aac_ac3_parser.c \
$(LAVC_DIR)/ac3.c \
@@ -139,13 +143,14 @@ SRCS_C=\
$(LAVC_DIR)/amr_float/interf_dec.c \
$(LAVC_DIR)/amr_float/sp_dec.c \
\
- $(LAVC_DIR)/x86/cpuid.c \
$(LAVC_DIR)/x86/dsputil_mmx.c \
$(LAVC_DIR)/x86/fdct_mmx.c \
$(LAVC_DIR)/x86/fft.c \
$(LAVC_DIR)/x86/fft_3dn.c \
$(LAVC_DIR)/x86/fft_3dn2.c \
$(LAVC_DIR)/x86/fft_sse.c \
+ $(LAVC_DIR)/x86/h264_intrapred_init.c \
+ $(LAVC_DIR)/x86/h264dsp_mmx.c \
$(LAVC_DIR)/x86/idct_mmx.c \
$(LAVC_DIR)/x86/idct_mmx_xvid.c \
$(LAVC_DIR)/x86/idct_sse2_xvid.c \
@@ -153,15 +158,16 @@ SRCS_C=\
$(LAVC_DIR)/x86/mpegvideo_mmx.c \
$(LAVC_DIR)/x86/simple_idct_mmx.c \
$(LAVC_DIR)/x86/vc1dsp_mmx.c \
- $(LAVC_DIR)/x86/vp3dsp_mmx.c \
- $(LAVC_DIR)/x86/vp3dsp_sse2.c \
$(LAVC_DIR)/x86/vp56dsp_init.c \
$(LAVC_DIR)/x86/vp8dsp-init.c \
\
$(LAVCORE_DIR)/avcore_utils.c \
$(LAVCORE_DIR)/imgutils.c \
\
+ $(LAVU_DIR)/avstring.c \
+ $(LAVU_DIR)/cpu.c \
$(LAVU_DIR)/crc.c \
+ $(LAVU_DIR)/eval.c \
$(LAVU_DIR)/intfloat_readwrite.c \
$(LAVU_DIR)/inverse.c \
$(LAVU_DIR)/log.c \
@@ -173,6 +179,8 @@ SRCS_C=\
$(LAVU_DIR)/random_seed.c \
$(LAVU_DIR)/rational.c \
\
+ $(LAVU_DIR)/x86/cpu.c \
+\
$(LSWS_DIR)/rgb2rgb.c \
$(LSWS_DIR)/swscale.c \
$(LSWS_DIR)/sww32thread.c \
@@ -181,11 +189,13 @@ SRCS_C=\
SRCS_YASM=\
$(LAVC_DIR)/x86/dsputil_yasm.asm \
$(LAVC_DIR)/x86/fft_mmx.asm \
- $(LAVC_DIR)/x86/h264_deblock_sse2.asm \
- $(LAVC_DIR)/x86/h264_idct_sse2.asm \
+ $(LAVC_DIR)/x86/h264_chromamc.asm \
+ $(LAVC_DIR)/x86/h264_deblock.asm \
+ $(LAVC_DIR)/x86/h264_idct.asm \
$(LAVC_DIR)/x86/h264_intrapred.asm \
- $(LAVC_DIR)/x86/h264_weight_sse2.asm \
+ $(LAVC_DIR)/x86/h264_weight.asm \
$(LAVC_DIR)/x86/vc1dsp_yasm.asm \
+ $(LAVC_DIR)/x86/vp3dsp.asm \
$(LAVC_DIR)/x86/vp56dsp.asm \
$(LAVC_DIR)/x86/vp8dsp.asm \
$(LAVC_DIR)/x86/x86util.asm
@@ -222,5 +232,6 @@ clean:
$(OUT_DIR)$(LAVC_DIR)/amr_float/*.o $(OUT_DIR)$(LAVC_DIR)/amr_float/*.d \
$(OUT_DIR)$(LAVCORE_DIR)/*.o $(OUT_DIR)$(LAVCORE_DIR)/*.d \
$(OUT_DIR)$(LAVU_DIR)/*.o $(OUT_DIR)$(LAVU_DIR)/*.d \
+ $(OUT_DIR)$(LAVU_DIR)/x86/*.o $(OUT_DIR)$(LAVU_DIR)/x86/*.d \
$(OUT_DIR)$(LSWS_DIR)/*.o $(OUT_DIR)$(LSWS_DIR)/*.d \
$(ZLIB_DIR)/*.o $(ZLIB_DIR)/*.d $(PNG_DIR)/*.o $(SLIB)
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/config.h b/src/filters/transform/MPCVideoDec/ffmpeg/config.h
index 507cca37f..5ca6a5486 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/config.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/config.h
@@ -14,8 +14,6 @@
#ifdef ARCH_X86_64
#define HAVE_FAST_64BIT 1
- #define HAVE_CMOV 1
- #define HAVE_FAST_CMOV 1
#define HAVE_STRUCT_TIMESPEC 1
#else
#define ARCH_X86_32 1
@@ -36,8 +34,6 @@
#define ARCH_X86_32 0
#define ARCH_X86_64 0
#define HAVE_FAST_64BIT 0
- #define HAVE_CMOV 0
- #define HAVE_FAST_CMOV 0
#define restrict
#define __asm__ __asm
@@ -50,6 +46,7 @@
#define FFMPEG_CONFIGURATION "ffdshow custom"
#define FFMPEG_LICENSE "GPL version 2 or later"
+
#define CC_TYPE "gcc"
#define CC_VERSION __VERSION__
@@ -57,9 +54,9 @@
// MPC custom code for linking with MSVC
#if defined(__GNUC__) && ARCH_X86_64
-#define EXTERN_PREFIX ""
+ #define EXTERN_PREFIX ""
#else
-#define EXTERN_PREFIX "_"
+ #define EXTERN_PREFIX "_"
#endif
#define EXTERN_ASM _
@@ -96,9 +93,11 @@
#define HAVE_ALTIVEC_H 0
#define HAVE_BIGENDIAN 0
#define HAVE_BSWAP 1
+#define HAVE_CMOV 1
#define HAVE_EBP_AVAILABLE 1
#define HAVE_EBX_AVAILABLE 1
#define HAVE_FAST_CLZ 0
+#define HAVE_FAST_CMOV 1
#define HAVE_FAST_UNALIGNED 1
#define HAVE_LOCAL_ALIGNED_16 1
#define HAVE_LOCAL_ALIGNED_8 1
@@ -112,36 +111,34 @@
#ifdef __GNUC__
#define HAVE_ATTRIBUTE_PACKED 1
#define HAVE_ATTRIBUTE_MAY_ALIAS 1
+
+ #define HAVE_EXP2 1
+ #define HAVE_EXP2F 1
+ #define HAVE_LLRINT 1
+ #define HAVE_LOG2 1
+ #define HAVE_LOG2F 1
+ #define HAVE_LRINT 1
+ #define HAVE_LRINTF 1
+ #define HAVE_ROUND 1
+ #define HAVE_ROUNDF 1
+ #define HAVE_TRUNCF 1
#else
#define HAVE_ATTRIBUTE_PACKED 0
#define HAVE_ATTRIBUTE_MAY_ALIAS 0
#define EMULATE_FAST_INT
-#endif
-#ifdef __GNUC__
-#define HAVE_EXP2 1
-#define HAVE_EXP2F 1
-#define HAVE_LLRINT 1
-#define HAVE_LOG2 1
-#define HAVE_LOG2F 1
-#define HAVE_LRINT 1
-#define HAVE_LRINTF 1
-#define HAVE_ROUND 1
-#define HAVE_ROUNDF 1
-#define HAVE_TRUNCF 1
-#else
-#define HAVE_EXP2 1
-#define HAVE_EXP2F 1
-#define HAVE_LLRINT 0
-#define HAVE_LOG2 1
-#define HAVE_LOG2F 1
-#define HAVE_LRINT 0
-#define HAVE_LRINTF 0
-#define HAVE_ROUND 0
-#define HAVE_ROUNDF 1
-#define HAVE_TRUNCF 1
-#define rint(x) (int)(x+0.5)
-#define cbrtf(x) pow((float)x, (float)1.0/3)
+ #define HAVE_EXP2 1
+ #define HAVE_EXP2F 1
+ #define HAVE_LLRINT 0
+ #define HAVE_LOG2 1
+ #define HAVE_LOG2F 1
+ #define HAVE_LRINT 0
+ #define HAVE_LRINTF 0
+ #define HAVE_ROUND 0
+ #define HAVE_ROUNDF 1
+ #define HAVE_TRUNCF 1
+ #define rint(x) (int)(x+0.5)
+ #define cbrtf(x) pow((float)x, (float)1.0/3)
#endif
#define CONFIG_DCT 0
@@ -149,8 +146,8 @@
#define CONFIG_GPL 1
#define CONFIG_GRAY 1
-#define CONFIG_H264PRED 1
#define CONFIG_H264DSP 1
+#define CONFIG_H264PRED 1
#define CONFIG_HARDCODED_TABLES 0
#define CONFIG_HUFFMAN 0
#define CONFIG_LIBAMR_NB 1
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/custom_code.txt b/src/filters/transform/MPCVideoDec/ffmpeg/custom_code.txt
index d0bb2b9a1..564cc184f 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/custom_code.txt
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/custom_code.txt
@@ -8,6 +8,7 @@ The following files have MPC-specific custom code (compared to ffdshow):
* libavcodec/bitstream.c
* libavcodec/CompilatorVersion.c
* libavcodec/dsputil.c
+* libavcodec/dxva.h
* libavcodec/h264.c
* libavcodec/mpc_helper.c
* libavcodec/mpeg12.c
@@ -15,3 +16,4 @@ The following files have MPC-specific custom code (compared to ffdshow):
* libavcore/avcore_utils.c (renamed from utils.c to avoid conflicts in MSVC2010)
* libavutil/internal.h
* libavutil/log.h
+* libswscale
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.def b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.def
index 6ee8d8d24..782a16c50 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.def
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.def
@@ -6,7 +6,9 @@ EXPORTS
avcodec_alloc_frame
avcodec_close
avcodec_decode_video
- avcodec_decode_audio
+ avcodec_decode_video2
+ avcodec_decode_audio2
+ avcodec_decode_audio3
avcodec_default_get_buffer
avcodec_default_reget_buffer
avcodec_default_release_buffer
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj
index b10994323..757205029 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libavcodec"
OwnerKey="{EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9}"
ProjectGUID="{5CAF881C-9349-4EE2-9697-982C10795033}"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\thirdparty\zlib;.;libswscale;..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_NONSTDC_NO_WARNINGS;_DEBUG;_WINDOWS;HAVE_AV_CONFIG_H;H264_MERGE_TESTING"
@@ -108,7 +107,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\thirdparty\zlib;.;libswscale;..\..\..\..\..\include"
PreprocessorDefinitions="_WIN64;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_NONSTDC_NO_WARNINGS;_DEBUG;_WINDOWS;HAVE_AV_CONFIG_H"
@@ -175,7 +173,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
@@ -191,7 +188,7 @@
AssemblerListingLocation="$(IntDir)\"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
- WarningLevel="1"
+ WarningLevel="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -248,7 +245,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
@@ -1199,6 +1195,10 @@
>
</File>
<File
+ RelativePath=".\libavutil\avstring.c"
+ >
+ </File>
+ <File
RelativePath=".\libavutil\avstring.h"
>
</File>
@@ -1215,6 +1215,14 @@
>
</File>
<File
+ RelativePath=".\libavutil\cpu.c"
+ >
+ </File>
+ <File
+ RelativePath=".\libavutil\cpu.h"
+ >
+ </File>
+ <File
RelativePath=".\libavutil\crc.c"
>
</File>
@@ -1231,6 +1239,10 @@
>
</File>
<File
+ RelativePath=".\libavutil\eval.c"
+ >
+ </File>
+ <File
RelativePath=".\libavutil\eval.h"
>
</File>
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj
index e190e548e..b0fa70df9 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj
@@ -133,6 +133,7 @@
<ClInclude Include="libavutil\avutil.h" />
<ClInclude Include="libavutil\bswap.h" />
<ClInclude Include="libavutil\common.h" />
+ <ClInclude Include="libavutil\cpu.h" />
<ClInclude Include="libavutil\crc.h" />
<ClInclude Include="libavutil\crc_data.h" />
<ClInclude Include="libavutil\error.h" />
@@ -275,7 +276,10 @@
<ClCompile Include="libavcodec\xiph.c" />
<ClCompile Include="libavcore\imgutils.c" />
<ClCompile Include="libavcore\avcore_utils.c" />
+ <ClCompile Include="libavutil\avstring.c" />
+ <ClCompile Include="libavutil\cpu.c" />
<ClCompile Include="libavutil\crc.c" />
+ <ClCompile Include="libavutil\eval.c" />
<ClCompile Include="libavutil\intfloat_readwrite.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj.filters b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj.filters
index d23ef9256..2dd323b4b 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj.filters
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec.vcxproj.filters
@@ -51,6 +51,9 @@
<ClInclude Include="libavutil\common.h">
<Filter>libavutil</Filter>
</ClInclude>
+ <ClInclude Include="libavutil\cpu.h">
+ <Filter>libavutil</Filter>
+ </ClInclude>
<ClInclude Include="libavutil\crc.h">
<Filter>libavutil</Filter>
</ClInclude>
@@ -459,9 +462,18 @@
<ClCompile Include="libswscale\yuv2rgb_template.c">
<Filter>libswscale</Filter>
</ClCompile>
+ <ClCompile Include="libavutil\avstring.c">
+ <Filter>libavutil</Filter>
+ </ClCompile>
+ <ClCompile Include="libavutil\cpu.c">
+ <Filter>libavutil</Filter>
+ </ClCompile>
<ClCompile Include="libavutil\crc.c">
<Filter>libavutil</Filter>
</ClCompile>
+ <ClCompile Include="libavutil\eval.c">
+ <Filter>libavutil</Filter>
+ </ClCompile>
<ClCompile Include="libavutil\lfg.c">
<Filter>libavutil</Filter>
</ClCompile>
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/ac3dec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/ac3dec.c
index 126424440..5992715b8 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/ac3dec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/ac3dec.c
@@ -1311,8 +1311,10 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
* Decode a single AC-3 frame.
*/
static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
AC3DecodeContext *s = avctx->priv_data;
int16_t *out_samples = (int16_t *)data;
int blk, ch, err;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/adpcm.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/adpcm.c
index 6fda2f8bf..6ecd98e95 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/adpcm.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/adpcm.c
@@ -365,8 +365,10 @@ static void xa_decode(short *out, const unsigned char *in,
static int adpcm_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
ADPCMContext *c = avctx->priv_data;
ADPCMChannelStatus *cs;
int n, m, channel, i;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/audioconvert.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/audioconvert.h
index 81b6cded3..349065edc 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/audioconvert.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/audioconvert.h
@@ -29,6 +29,7 @@
*/
+#include "libavutil/cpu.h"
#include "avcodec.h"
@@ -60,6 +61,11 @@ enum SampleFormat avcodec_get_sample_fmt(const char* name);
const char *avcodec_get_channel_name(int channel_id);
/**
+ * @return channel layout that matches name, 0 if no match
+ */
+int64_t avcodec_get_channel_layout(const char *name);
+
+/**
* Return description of channel layout
*/
void avcodec_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int64_t channel_layout);
@@ -88,7 +94,7 @@ typedef struct AVAudioConvert AVAudioConvert;
* @param in_fmt Input sample format
* @param in_channels Number of input channels
* @param[in] matrix Channel mixing matrix (of dimension in_channel*out_channels). Set to NULL to ignore.
- * @param flags See FF_MM_xx
+ * @param flags See AV_CPU_FLAG_xx
* @return NULL on error
*/
AVAudioConvert *av_audio_convert_alloc(enum SampleFormat out_fmt, int out_channels,
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/avcodec.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/avcodec.h
index a841de108..c5f35eda2 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/avcodec.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/avcodec.h
@@ -42,10 +42,11 @@
#include <errno.h>
#include "libavutil/avutil.h"
+#include "libavutil/cpu.h"
#define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 85
-#define LIBAVCODEC_VERSION_MICRO 1
+#define LIBAVCODEC_VERSION_MINOR 87
+#define LIBAVCODEC_VERSION_MICRO 5
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
@@ -57,6 +58,17 @@
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
+/**
+ * Those FF_API_* defines are not part of public API.
+ * They may change, break or disappear at any time.
+ */
+#ifndef FF_API_PALETTE_CONTROL
+#define FF_API_PALETTE_CONTROL (LIBAVCODEC_VERSION_MAJOR < 54)
+#endif
+#ifndef FF_API_MM_FLAGS
+#define FF_API_MM_FLAGS (LIBAVCODEC_VERSION_MAJOR < 53)
+#endif
+
#define AV_NOPTS_VALUE INT64_C(0x8000000000000000)
#define AV_TIME_BASE 1000000
static const AVRational AV_TIME_BASE_Q={1, AV_TIME_BASE};
@@ -1399,27 +1411,25 @@ typedef struct AVCodecContext {
* result into program crash.)
*/
unsigned dsp_mask;
-#define FF_MM_FORCE 0x80000000 /* Force usage of selected flags (OR) */
- /* lower 16 bits - CPU features */
-#define FF_MM_MMX 0x0001 ///< standard MMX
-#define FF_MM_3DNOW 0x0004 ///< AMD 3DNOW
-#if LIBAVCODEC_VERSION_MAJOR < 53
-#define FF_MM_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext
+
+#if FF_API_MM_FLAGS
+#define FF_MM_FORCE AV_CPU_FLAG_FORCE
+#define FF_MM_MMX AV_CPU_FLAG_MMX
+#define FF_MM_3DNOW AV_CPU_FLAG_3DNOW
+#define FF_MM_MMXEXT AV_CPU_FLAG_MMX2
+#define FF_MM_MMX2 AV_CPU_FLAG_MMX2
+#define FF_MM_SSE AV_CPU_FLAG_SSE
+#define FF_MM_SSE2 AV_CPU_FLAG_SSE2
+#define FF_MM_SSE2SLOW AV_CPU_FLAG_SSE2SLOW
+#define FF_MM_3DNOWEXT AV_CPU_FLAG_3DNOWEXT
+#define FF_MM_SSE3 AV_CPU_FLAG_SSE3
+#define FF_MM_SSE3SLOW AV_CPU_FLAG_SSE3SLOW
+#define FF_MM_SSSE3 AV_CPU_FLAG_SSSE3
+#define FF_MM_SSE4 AV_CPU_FLAG_SSE4
+#define FF_MM_SSE42 AV_CPU_FLAG_SSE42
+#define FF_MM_IWMMXT AV_CPU_FLAG_IWMMXT
+#define FF_MM_ALTIVEC AV_CPU_FLAG_ALTIVEC
#endif
-#define FF_MM_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext
-#define FF_MM_SSE 0x0008 ///< SSE functions
-#define FF_MM_SSE2 0x0010 ///< PIV SSE2 functions
-#define FF_MM_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster
- ///< than regular MMX/SSE (e.g. Core1)
-#define FF_MM_3DNOWEXT 0x0020 ///< AMD 3DNowExt
-#define FF_MM_SSE3 0x0040 ///< Prescott SSE3 functions
-#define FF_MM_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster
- ///< than regular MMX/SSE (e.g. Core1)
-#define FF_MM_SSSE3 0x0080 ///< Conroe SSSE3 functions
-#define FF_MM_SSE4 0x0100 ///< Penryn SSE4.1 functions
-#define FF_MM_SSE42 0x0200 ///< Nehalem SSE4.2 functions
-#define FF_MM_IWMMXT 0x0100 ///< XScale IWMMXT
-#define FF_MM_ALTIVEC 0x0001 ///< standard AltiVec
/**
* bits per sample/pixel from the demuxer (needed for huffyuv).
@@ -1776,12 +1786,14 @@ typedef struct AVCodecContext {
*/
int lmax;
+#if FF_API_PALETTE_CONTROL
/**
* palette control structure
* - encoding: ??? (no palette-enabled encoder yet)
* - decoding: Set by user.
*/
struct AVPaletteControl *palctrl;
+#endif
/**
* noise reduction strength
@@ -2616,8 +2628,7 @@ typedef struct AVCodec {
int (*init)(AVCodecContext *);
int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
int (*close)(AVCodecContext *);
- int (*decode)(AVCodecContext *, void *outdata, int *outdata_size,
- const uint8_t *buf, int buf_size);
+ int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
/**
* Codec capabilities.
* see CODEC_CAP_*
@@ -2834,59 +2845,91 @@ void avcodec_get_encoder_info(AVCodecContext *avctx,int *xvid_build,int *divx_ve
*/
FF_EXPORT int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
+#if LIBAVCODEC_VERSION_MAJOR < 53
/**
- * @deprecated Use avcodec_decode_audio2() instead.
+ * Decode an audio frame from buf into samples.
+ * Wrapper function which calls avcodec_decode_audio3.
+ *
+ * @deprecated Use avcodec_decode_audio3 instead.
+ * @param avctx the codec context
+ * @param[out] samples the output buffer
+ * @param[in,out] frame_size_ptr the output buffer size in bytes
+ * @param[in] buf the input buffer
+ * @param[in] buf_size the input buffer size in bytes
+ * @return On error a negative value is returned, otherwise the number of bytes
+ * used or zero if no frame could be decompressed.
*/
-attribute_deprecated int avcodec_decode_audio(AVCodecContext *avctx, int16_t *samples,
+FF_EXPORT int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
int *frame_size_ptr,
const uint8_t *buf, int buf_size);
+#endif
/**
- * Decodes an audio frame from buf into samples.
- * The avcodec_decode_audio2() function decodes an audio frame from the input
- * buffer buf of size buf_size. To decode it, it makes use of the
- * audio codec which was coupled with avctx using avcodec_open(). The
- * resulting decoded frame is stored in output buffer samples. If no frame
- * could be decompressed, frame_size_ptr is zero. Otherwise, it is the
+ * Decode the audio frame of size avpkt->size from avpkt->data into samples.
+ * Some decoders may support multiple frames in a single AVPacket, such
+ * decoders would then just decode the first frame. In this case,
+ * avcodec_decode_audio3 has to be called again with an AVPacket that contains
+ * the remaining data in order to decode the second frame etc.
+ * If no frame
+ * could be outputted, frame_size_ptr is zero. Otherwise, it is the
* decompressed frame size in bytes.
*
* @warning You must set frame_size_ptr to the allocated size of the
- * output buffer before calling avcodec_decode_audio2().
+ * output buffer before calling avcodec_decode_audio3().
*
* @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than
* the actual read bytes because some optimized bitstream readers read 32 or 64
* bits at once and could read over the end.
*
- * @warning The end of the input buffer buf should be set to 0 to ensure that
+ * @warning The end of the input buffer avpkt->data should be set to 0 to ensure that
* no overreading happens for damaged MPEG streams.
*
- * @note You might have to align the input buffer buf and output buffer
+ * @note You might have to align the input buffer avpkt->data and output buffer
* samples. The alignment requirements depend on the CPU: On some CPUs it isn't
* necessary at all, on others it won't work at all if not aligned and on others
- * it will work but it will have an impact on performance. In practice, the
- * bitstream should have 4 byte alignment at minimum and all sample data should
- * be 16 byte aligned unless the CPU doesn't need it (AltiVec and SSE do). If
- * the linesize is not a multiple of 16 then there's no sense in aligning the
- * start of the buffer to 16.
+ * it will work but it will have an impact on performance.
+ *
+ * In practice, avpkt->data should have 4 byte alignment at minimum and
+ * samples should be 16 byte aligned unless the CPU doesn't need it
+ * (AltiVec and SSE do).
*
* @param avctx the codec context
- * @param[out] samples the output buffer
+ * @param[out] samples the output buffer, sample type in avctx->sample_fmt
* @param[in,out] frame_size_ptr the output buffer size in bytes
+ * @param[in] avpkt The input AVPacket containing the input buffer.
+ * You can create such packet with av_init_packet() and by then setting
+ * data and size, some decoders might in addition need other fields.
+ * All decoders are designed to use the least fields possible though.
+ * @return On error a negative value is returned, otherwise the number of bytes
+ * used or zero if no frame data was decompressed (used) from the input AVPacket.
+ */
+int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples,
+ int *frame_size_ptr,
+ AVPacket *avpkt);
+
+#if LIBAVCODEC_VERSION_MAJOR < 53
+/**
+ * Decode a video frame from buf into picture.
+ * Wrapper function which calls avcodec_decode_video2.
+ *
+ * @deprecated Use avcodec_decode_video2 instead.
+ * @param avctx the codec context
+ * @param[out] picture The AVFrame in which the decoded video frame will be stored.
* @param[in] buf the input buffer
- * @param[in] buf_size the input buffer size in bytes
+ * @param[in] buf_size the size of the input buffer in bytes
+ * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
* @return On error a negative value is returned, otherwise the number of bytes
* used or zero if no frame could be decompressed.
*/
-FF_EXPORT int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
- int *frame_size_ptr,
+FF_EXPORT int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
+ int *got_picture_ptr,
const uint8_t *buf, int buf_size);
+#endif
/**
- * Decodes a video frame from buf into picture.
- * The avcodec_decode_video() function decodes a video frame from the input
- * buffer buf of size buf_size. To decode it, it makes use of the
- * video codec which was coupled with avctx using avcodec_open(). The
- * resulting decoded frame is stored in picture.
+ * Decode the video frame of size avpkt->size from avpkt->data into picture.
+ * Some decoders may support multiple frames in a single AVPacket, such
+ * decoders would then just decode the first frame.
*
* @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than
* the actual read bytes because some optimized bitstream readers read 32 or 64
@@ -2895,29 +2938,37 @@ FF_EXPORT int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
* @warning The end of the input buffer buf should be set to 0 to ensure that
* no overreading happens for damaged MPEG streams.
*
- * @note You might have to align the input buffer buf and output buffer
- * samples. The alignment requirements depend on the CPU: on some CPUs it isn't
+ * @note You might have to align the input buffer avpkt->data.
+ * The alignment requirements depend on the CPU: on some CPUs it isn't
* necessary at all, on others it won't work at all if not aligned and on others
- * it will work but it will have an impact on performance. In practice, the
- * bitstream should have 4 byte alignment at minimum and all sample data should
- * be 16 byte aligned unless the CPU doesn't need it (AltiVec and SSE do). If
- * the linesize is not a multiple of 16 then there's no sense in aligning the
- * start of the buffer to 16.
+ * it will work but it will have an impact on performance.
+ *
+ * In practice, avpkt->data should have 4 byte alignment at minimum.
*
* @note Some codecs have a delay between input and output, these need to be
- * feeded with buf=NULL, buf_size=0 at the end to return the remaining frames.
+ * fed with avpkt->data=NULL, avpkt->size=0 at the end to return the remaining frames.
*
* @param avctx the codec context
* @param[out] picture The AVFrame in which the decoded video frame will be stored.
- * @param[in] buf the input buffer
- * @param[in] buf_size the size of the input buffer in bytes
+ * Use avcodec_alloc_frame to get an AVFrame, the codec will
+ * allocate memory for the actual bitmap.
+ * with default get/release_buffer(), the decoder frees/reuses the bitmap as it sees fit.
+ * with overridden get/release_buffer() (needs CODEC_CAP_DR1) the user decides into what buffer the decoder
+ * decodes and the decoder tells the user once it does not need the data anymore,
+ * the user app can at this point free/reuse/keep the memory as it sees fit.
+ *
+ * @param[in] avpkt The input AVpacket containing the input buffer.
+ * You can create such packet with av_init_packet() and by then setting
+ * data and size, some decoders might in addition need other fields like
+ * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least
+ * fields possible.
* @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
* @return On error a negative value is returned, otherwise the number of bytes
* used or zero if no frame could be decompressed.
*/
-FF_EXPORT int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
+int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
int *got_picture_ptr,
- const uint8_t *buf, int buf_size);
+ AVPacket *avpkt);
int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata,
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.c
index e4a4a7ad6..3d6b46d75 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.c
@@ -27,6 +27,7 @@
* DSP utils
*/
+#include "libavcore/imgutils.h"
#include "avcodec.h"
#include "dsputil.h"
#include "simple_idct.h"
@@ -121,6 +122,9 @@ void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_s
int j;
j = src_scantable[i];
st->permutated[i] = permutation[j];
+#if ARCH_PPC
+ st->inverse[j] = i;
+#endif
}
end=-1;
@@ -1158,7 +1162,7 @@ CALL_2X_PIXELS(OPNAME ## _pixels16_c , OPNAME ## _pixels8_c , 8)\
CALL_2X_PIXELS(OPNAME ## _pixels16_x2_c , OPNAME ## _pixels8_x2_c , 8)\
CALL_2X_PIXELS(OPNAME ## _pixels16_y2_c , OPNAME ## _pixels8_y2_c , 8)\
CALL_2X_PIXELS(OPNAME ## _pixels16_xy2_c, OPNAME ## _pixels8_xy2_c, 8)\
-CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_c , OPNAME ## _pixels8_c , 8)\
+av_unused CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_c , OPNAME ## _pixels8_c , 8)\
CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_x2_c , OPNAME ## _no_rnd_pixels8_x2_c , 8)\
CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_y2_c , OPNAME ## _no_rnd_pixels8_y2_c , 8)\
CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_xy2_c, OPNAME ## _no_rnd_pixels8_xy2_c, 8)\
@@ -1172,6 +1176,9 @@ PIXOP2(put, op_put)
#undef op_avg
#undef op_put
+#define put_no_rnd_pixels8_c put_pixels8_c
+#define put_no_rnd_pixels16_c put_pixels16_c
+
#define avg2(a,b) ((a+b+1)>>1)
#define avg4(a,b,c,d) ((a+b+c+d+2)>>2)
@@ -1754,10 +1761,6 @@ static void OPNAME ## mpeg4_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dst
}\
}\
\
-static void OPNAME ## qpel8_mc00_c (uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## pixels8_c(dst, src, stride, 8);\
-}\
-\
static void OPNAME ## qpel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){\
uint8_t half[64];\
put ## RND ## mpeg4_qpel8_h_lowpass(half, src, 8, stride, 8);\
@@ -1936,9 +1939,6 @@ static void OPNAME ## qpel8_mc22_c(uint8_t *dst, uint8_t *src, int stride){\
put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
}\
-static void OPNAME ## qpel16_mc00_c (uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## pixels16_c(dst, src, stride, 16);\
-}\
\
static void OPNAME ## qpel16_mc10_c(uint8_t *dst, uint8_t *src, int stride){\
uint8_t half[256];\
@@ -2133,6 +2133,13 @@ QPEL_MC(0, avg_ , _ , op_avg)
#undef op_put
#undef op_put_no_rnd
+#define put_qpel8_mc00_c ff_put_pixels8x8_c
+#define avg_qpel8_mc00_c ff_avg_pixels8x8_c
+#define put_qpel16_mc00_c ff_put_pixels16x16_c
+#define avg_qpel16_mc00_c ff_avg_pixels16x16_c
+#define put_no_rnd_qpel8_mc00_c ff_put_pixels8x8_c
+#define put_no_rnd_qpel16_mc00_c ff_put_pixels16x16_c
+
#if 1
#define H264_LOWPASS(OPNAME, OP, OP2) \
static av_unused void OPNAME ## h264_qpel2_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
@@ -2399,7 +2406,7 @@ static void OPNAME ## h264_qpel16_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t
}\
#define H264_MC(OPNAME, SIZE) \
-static void OPNAME ## h264_qpel ## SIZE ## _mc00_c (uint8_t *dst, uint8_t *src, int stride){\
+static av_unused void OPNAME ## h264_qpel ## SIZE ## _mc00_c (uint8_t *dst, uint8_t *src, int stride){\
OPNAME ## pixels ## SIZE ## _c(dst, src, stride, SIZE);\
}\
\
@@ -2557,6 +2564,11 @@ H264_MC(avg_, 16)
#undef op2_put
#endif
+#define put_h264_qpel8_mc00_c ff_put_pixels8x8_c
+#define avg_h264_qpel8_mc00_c ff_avg_pixels8x8_c
+#define put_h264_qpel16_mc00_c ff_put_pixels16x16_c
+#define avg_h264_qpel16_mc00_c ff_avg_pixels16x16_c
+
static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){
uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
int i;
@@ -2575,31 +2587,18 @@ static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int
}
}
-#if CONFIG_CAVS_DECODER
-/* AVS specific */
-void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride) {
+void ff_put_pixels8x8_c(uint8_t *dst, uint8_t *src, int stride) {
put_pixels8_c(dst, src, stride, 8);
}
-void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride) {
+void ff_avg_pixels8x8_c(uint8_t *dst, uint8_t *src, int stride) {
avg_pixels8_c(dst, src, stride, 8);
}
-void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride) {
+void ff_put_pixels16x16_c(uint8_t *dst, uint8_t *src, int stride) {
put_pixels16_c(dst, src, stride, 16);
}
-void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride) {
+void ff_avg_pixels16x16_c(uint8_t *dst, uint8_t *src, int stride) {
avg_pixels16_c(dst, src, stride, 16);
}
-#endif /* CONFIG_CAVS_DECODER */
-
-#if CONFIG_VC1_DECODER
-/* VC-1 specific */
-void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd) {
- put_pixels8_c(dst, src, stride, 8);
-}
-void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd) {
- avg_pixels8_c(dst, src, stride, 8);
-}
-#endif /* CONFIG_VC1_DECODER */
#if CONFIG_RV40_DECODER
static void put_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride){
@@ -2645,10 +2644,6 @@ static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int
}
}
-static void put_mspel8_mc00_c (uint8_t *dst, uint8_t *src, int stride){
- put_pixels8_c(dst, src, stride, 8);
-}
-
static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){
uint8_t half[64];
wmv2_mspel8_h_lowpass(half, src, 8, stride, 8);
@@ -4352,7 +4347,7 @@ av_cold void attribute_align_arg dsputil_init(DSPContext* c, AVCodecContext *avc
c->avg_rv40_qpel_pixels_tab[1][15] = avg_rv40_qpel8_mc33_c;
#endif
- c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c;
+ c->put_mspel_pixels_tab[0]= ff_put_pixels8x8_c;
c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c;
c->put_mspel_pixels_tab[2]= put_mspel8_mc20_c;
c->put_mspel_pixels_tab[3]= put_mspel8_mc30_c;
@@ -4456,7 +4451,7 @@ av_cold void attribute_align_arg dsputil_init(DSPContext* c, AVCodecContext *avc
c->sv_fmul_scalar[1] = sv_fmul_scalar_4_c;
#endif
- c->shrink[0]= ff_img_copy_plane;
+ c->shrink[0]= av_image_copy_plane;
c->shrink[1]= ff_shrink22;
c->shrink[2]= ff_shrink44;
c->shrink[3]= ff_shrink88;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.h
index cfd1b7f33..8c1499165 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/dsputil.h
@@ -82,6 +82,11 @@ extern const uint8_t ff_zigzag248_direct[64];
extern uint32_t ff_squareTbl[512];
extern uint8_t ff_cropTbl[256 + 2 * MAX_NEG_CROP];
+void ff_put_pixels8x8_c(uint8_t *dst, uint8_t *src, int stride);
+void ff_avg_pixels8x8_c(uint8_t *dst, uint8_t *src, int stride);
+void ff_put_pixels16x16_c(uint8_t *dst, uint8_t *src, int stride);
+void ff_avg_pixels16x16_c(uint8_t *dst, uint8_t *src, int stride);
+
/* VP3 DSP functions */
void ff_vp3_idct_c(DCTELEM *block/* align 16*/);
void ff_vp3_idct_put_c(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);
@@ -91,22 +96,15 @@ void ff_vp3_idct_dc_add_c(uint8_t *dest/*align 8*/, int line_size, const DCTELEM
void ff_vp3_v_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
void ff_vp3_h_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
-/* VP6 DSP functions */
-void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride,
- const int16_t *h_weights, const int16_t *v_weights);
-
-/* CAVS functions */
-void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
-
-/* VC1 functions */
-void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
-void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
-
/* 1/2^n downscaling functions from imgconvert.c */
+#if LIBAVCODEC_VERSION_MAJOR < 53
+/**
+ * @deprecated Use av_image_copy_plane() instead.
+ */
+attribute_deprecated
void ff_img_copy_plane(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
+#endif
+
void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
@@ -181,6 +179,10 @@ typedef struct ScanTable{
const uint8_t *scantable;
uint8_t permutated[64];
uint8_t raster_end[64];
+#if ARCH_PPC
+ /** Used by dct_quantize_altivec to find last-non-zero */
+ DECLARE_ALIGNED(16, uint8_t, inverse)[64];
+#endif
} ScanTable;
void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable);
@@ -598,11 +600,15 @@ static inline int get_penalty_factor(int lambda, int lambda2, int type){
*/
#define emms_c()
-/* should be defined by architectures supporting
- one or more MultiMedia extension */
-int mm_support(void);
-
+void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_arm(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_bfin(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_mlib(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_mmi(DSPContext* c, AVCodecContext *avctx);
void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx);
+void dsputil_init_vis(DSPContext* c, AVCodecContext *avctx);
void ff_dsputil_init_dwt(DSPContext *c);
void ff_rv30dsp_init(DSPContext* c, AVCodecContext *avctx);
@@ -627,9 +633,19 @@ static inline void emms(void)
#define emms_c() emms()
-#else
+#elif ARCH_ARM
+
+#if HAVE_NEON
+# define STRIDE_ALIGN 16
+#endif
+
+#elif ARCH_PPC
+
+#define STRIDE_ALIGN 16
+
+#elif HAVE_MMI
-#define mm_support() 0
+#define STRIDE_ALIGN 16
#endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/flvdec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/flvdec.c
index 32f595a27..8f05945cb 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/flvdec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/flvdec.c
@@ -83,7 +83,7 @@ int ff_flv_decode_picture_header(MpegEncContext *s)
width = height = 0;
break;
}
- if(av_check_image_size(width, height, 0, s->avctx))
+ if(av_image_check_size(width, height, 0, s->avctx))
return -1;
s->width = width;
s->height = height;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263.h
index d8b7abe4f..6c05565c7 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263.h
@@ -70,7 +70,7 @@ av_const int ff_h263_aspect_to_info(AVRational aspect);
int ff_h263_decode_init(AVCodecContext *avctx);
int ff_h263_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size);
+ AVPacket *avpkt);
int ff_h263_decode_end(AVCodecContext *avctx);
void h263_encode_mb(MpegEncContext *s,
DCTELEM block[6][64],
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263dec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263dec.c
index 503c3b6ba..92beb1bd3 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263dec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h263dec.c
@@ -25,6 +25,7 @@
* H.263 decoder.
*/
+#include "libavutil/cpu.h"
#include "internal.h"
#include "avcodec.h"
#include "dsputil.h"
@@ -321,8 +322,10 @@ static int decode_slice(MpegEncContext *s){
int ff_h263_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
MpegEncContext *s = avctx->priv_data;
int ret;
AVFrame *pict = data;
@@ -542,7 +545,7 @@ retry:
#endif
#if HAVE_MMX
- if(s->codec_id == CODEC_ID_MPEG4 && s->xvid_build>=0 && avctx->idct_algo == FF_IDCT_AUTO && (mm_support() & FF_MM_MMX)){
+ if (s->codec_id == CODEC_ID_MPEG4 && s->xvid_build>=0 && avctx->idct_algo == FF_IDCT_AUTO && (av_get_cpu_flags() & AV_CPU_FLAG_MMX)) {
avctx->idct_algo= FF_IDCT_XVIDMMX;
avctx->coded_width= 0; // force reinit
// dsputil_init(&s->dsp, avctx);
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.c
index bcc6e6b8f..7ab3e6311 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.c
@@ -1250,14 +1250,9 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple){
chroma_dc_dequant_idct_c(h->mb + 16*16, h->chroma_qp[0], h->dequant4_coeff[IS_INTRA(mb_type) ? 1:4][h->chroma_qp[0]][0]);
chroma_dc_dequant_idct_c(h->mb + 16*16+4*16, h->chroma_qp[1], h->dequant4_coeff[IS_INTRA(mb_type) ? 2:5][h->chroma_qp[1]][0]);
if(is_h264){
- idct_add = h->h264dsp.h264_idct_add;
- idct_dc_add = h->h264dsp.h264_idct_dc_add;
- for(i=16; i<16+8; i++){
- if(h->non_zero_count_cache[ scan8[i] ])
- idct_add (dest[(i&4)>>2] + block_offset[i], h->mb + i*16, uvlinesize);
- else if(h->mb[i*16])
- idct_dc_add(dest[(i&4)>>2] + block_offset[i], h->mb + i*16, uvlinesize);
- }
+ h->h264dsp.h264_idct_add8(dest, block_offset,
+ h->mb, uvlinesize,
+ h->non_zero_count_cache);
}else{
for(i=16; i<16+8; i++){
if(h->non_zero_count_cache[ scan8[i] ] || h->mb[i*16]){
@@ -2891,8 +2886,10 @@ static int get_consumed_bytes(MpegEncContext *s, int pos, int buf_size){
static int decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
H264Context *h = avctx->priv_data;
MpegEncContext *s = &h->s;
AVFrame *pict = data;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.h
index d87f9d01a..64db7072a 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264.h
@@ -607,12 +607,12 @@ typedef struct H264Context{
int sp_for_switch_flag;
int slice_qs_delta;
int slice_qp_delta;
- unsigned int first_mb_in_slice;
- int bit_offset_to_slice_data;
- int raw_slice_type;
- int64_t outputed_rtstart;
- void* dxva_slice_long;
- int ref_pic_flag;
+ unsigned int first_mb_in_slice;
+ int bit_offset_to_slice_data;
+ int raw_slice_type;
+ int64_t outputed_rtstart;
+ void* dxva_slice_long;
+ int ref_pic_flag;
// <== End patch MPC
}H264Context;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264_ps.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264_ps.c
index 40b71ec24..96f99ab49 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264_ps.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/h264_ps.c
@@ -344,7 +344,7 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
sps->mb_width = get_ue_golomb(&s->gb) + 1;
sps->mb_height= get_ue_golomb(&s->gb) + 1;
if((unsigned)sps->mb_width >= INT_MAX/16 || (unsigned)sps->mb_height >= INT_MAX/16 ||
- av_check_image_size(16*sps->mb_width, 16*sps->mb_height, 0, h->s.avctx)){
+ av_image_check_size(16*sps->mb_width, 16*sps->mb_height, 0, h->s.avctx)){
av_log(h->s.avctx, AV_LOG_ERROR, "mb_width/height overflow\n");
goto fail;
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/imgconvert.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/imgconvert.c
index f6ea7a7f1..eb2cdc376 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/imgconvert.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/imgconvert.c
@@ -37,7 +37,7 @@
#include "libavutil/pixdesc.h"
#include "libavcore/imgutils.h"
-#if HAVE_MMX
+#if HAVE_MMX && HAVE_YASM
#include "x86/dsputil_mmx.h"
#endif
@@ -751,13 +751,13 @@ int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt){
#if LIBAVCODEC_VERSION_MAJOR < 53
int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width)
{
- return av_fill_image_linesizes(picture->linesize, pix_fmt, width);
+ return av_image_fill_linesizes(picture->linesize, pix_fmt, width);
}
int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt,
int height)
{
- return av_fill_image_pointers(picture->data, pix_fmt, height, ptr, picture->linesize);
+ return av_image_fill_pointers(picture->data, pix_fmt, height, ptr, picture->linesize);
}
#endif
@@ -813,64 +813,33 @@ static int avg_bits_per_pixel(enum PixelFormat pix_fmt)
return bits;
}
+#if LIBAVCODEC_VERSION_MAJOR < 53
void ff_img_copy_plane(uint8_t *dst, int dst_wrap,
const uint8_t *src, int src_wrap,
int width, int height)
{
- if((!dst) || (!src))
- return;
- for(;height > 0; height--) {
- memcpy(dst, src, width);
- dst += dst_wrap;
- src += src_wrap;
- }
+ av_image_copy_plane(dst, dst_wrap, src, src_wrap, width, height);
}
-#if LIBAVCODEC_VERSION_MAJOR < 53
int ff_get_plane_bytewidth(enum PixelFormat pix_fmt, int width, int plane)
{
- return av_get_image_linesize(pix_fmt, width, plane);
+ return av_image_get_linesize(pix_fmt, width, plane);
}
-#endif
void av_picture_data_copy(uint8_t *dst_data[4], int dst_linesize[4],
uint8_t *src_data[4], int src_linesize[4],
enum PixelFormat pix_fmt, int width, int height)
{
- int i;
- const PixFmtInfo *pf = &pix_fmt_info[pix_fmt];
- const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt];
-
- switch(pf->pixel_type) {
- case FF_PIXEL_PACKED:
- case FF_PIXEL_PLANAR:
- for(i = 0; i < pf->nb_channels; i++) {
- int h;
- int bwidth = av_get_image_linesize(pix_fmt, width, i);
- h = height;
- if (i == 1 || i == 2) {
- h= -((-height)>>desc->log2_chroma_h);
- }
- ff_img_copy_plane(dst_data[i], dst_linesize[i],
- src_data[i], src_linesize[i],
- bwidth, h);
- }
- break;
- case FF_PIXEL_PALETTE:
- ff_img_copy_plane(dst_data[0], dst_linesize[0],
- src_data[0], src_linesize[0],
- width, height);
- /* copy the palette */
- memcpy(dst_data[1], src_data[1], 4*256);
- break;
- }
+ av_image_copy(dst_data, dst_linesize, src_data, src_linesize,
+ pix_fmt, width, height);
}
+#endif
void av_picture_copy(AVPicture *dst, const AVPicture *src,
enum PixelFormat pix_fmt, int width, int height)
{
- av_picture_data_copy(dst->data, dst->linesize, src->data,
- src->linesize, pix_fmt, width, height);
+ av_image_copy(dst->data, dst->linesize, src->data,
+ src->linesize, pix_fmt, width, height);
}
/* 2x2 -> 1x1 */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/libamr.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/libamr.c
index 695fc4ca7..1c0ba07a8 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/libamr.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/libamr.c
@@ -137,8 +137,10 @@ static av_cold int amr_nb_decode_close(AVCodecContext *avctx)
}
static int amr_nb_decode_frame(AVCodecContext * avctx, void *data,
- int *data_size, const uint8_t * buf, int buf_size)
+ int *data_size, AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
AMRContext *s = avctx->priv_data;
const uint8_t *amrData = buf;
static const uint8_t block_size[16] = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0 };
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.c
index fcb4f2011..8095eff9f 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.c
@@ -219,7 +219,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
height= s->height;
av_log(s->avctx, AV_LOG_DEBUG, "sof0: picture: %dx%d\n", width, height);
- if(av_check_image_size(width, height, 0, s->avctx))
+ if(av_image_check_size(width, height, 0, s->avctx))
return -1;
nb_components = get_bits(&s->gb, 8);
@@ -1205,8 +1205,10 @@ found:
int ff_mjpeg_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
MJpegDecodeContext *s = avctx->priv_data;
const uint8_t *buf_end, *buf_ptr;
int start_code;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.h
index 5a9da5902..bbf734b56 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mjpegdec.h
@@ -111,7 +111,7 @@ int ff_mjpeg_decode_init(AVCodecContext *avctx);
int ff_mjpeg_decode_end(AVCodecContext *avctx);
int ff_mjpeg_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size);
+ AVPacket *avpkt);
int ff_mjpeg_decode_dqt(MJpegDecodeContext *s);
int ff_mjpeg_decode_dht(MJpegDecodeContext *s);
int ff_mjpeg_decode_sof(MJpegDecodeContext *s);
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mlpdec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mlpdec.c
index e392d971b..46fc32891 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mlpdec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mlpdec.c
@@ -943,8 +943,10 @@ static int output_data(MLPDecodeContext *m, unsigned int substr,
* otherwise the number of bytes consumed. */
static int read_access_unit(AVCodecContext *avctx, void* data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
MLPDecodeContext *m = avctx->priv_data;
GetBitContext gb;
unsigned int length, substr;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mpeg12.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mpeg12.c
index 93268052a..6aab625c8 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mpeg12.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/mpeg12.c
@@ -2235,8 +2235,10 @@ static int decode_chunks(AVCodecContext *avctx,
/* handle buffering and image synchronisation */
static int mpeg_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
Mpeg1Context *s = avctx->priv_data;
AVFrame *picture = data;
MpegEncContext *s2 = &s->mpeg_enc_ctx;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
index 1f0a51ff9..6729c13fd 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
@@ -154,7 +154,9 @@ static av_cold int decode_init(AVCodecContext * avctx) {
static int decode_tag(AVCodecContext * avctx,
void *data, int *data_size,
- const uint8_t * buf, int buf_size) {
+ AVPacket *avpkt) {
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
NellyMoserDecodeContext *s = avctx->priv_data;
int blocks, i;
int16_t* samples;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv10.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv10.c
index 829c9b3b1..df3b664e7 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv10.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv10.c
@@ -370,7 +370,7 @@ static int rv20_decode_picture_header(MpegEncContext *s)
}
if(new_w != s->width || new_h != s->height){
av_log(s->avctx, AV_LOG_DEBUG, "attempting to change resolution to %dx%d\n", new_w, new_h);
- if (av_check_image_size(new_w, new_h, 0, s->avctx) < 0)
+ if (av_image_check_size(new_w, new_h, 0, s->avctx) < 0)
return -1;
MPV_common_end(s);
avcodec_set_dimensions(s->avctx, new_w, new_h);
@@ -645,8 +645,10 @@ static int get_slice_offset(AVCodecContext *avctx, const uint8_t *buf, int n)
static int rv10_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
MpegEncContext *s = avctx->priv_data;
int i;
AVFrame *pict = data;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.c
index ce92c7850..b586aa0b8 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.c
@@ -1410,8 +1410,10 @@ static int get_slice_offset(AVCodecContext *avctx, const uint8_t *buf, int n)
int ff_rv34_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
RV34DecContext *r = avctx->priv_data;
MpegEncContext *s = &r->s;
AVFrame *pict = data;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.h
index 3d25af2b1..24a27ce48 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv34.h
@@ -124,7 +124,7 @@ typedef struct RV34DecContext{
*/
int ff_rv34_get_start_offset(GetBitContext *gb, int blocks);
int ff_rv34_decode_init(AVCodecContext *avctx);
-int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size);
+int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt);
int ff_rv34_decode_end(AVCodecContext *avctx);
#endif /* AVCODEC_RV34_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv40.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv40.c
index 13ba5b6ee..157169196 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv40.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/rv40.c
@@ -144,7 +144,7 @@ static int rv40_parse_slice_header(RV34DecContext *r, GetBitContext *gb, SliceIn
si->pts = get_bits(gb, 13);
if(!si->type || !get_bits1(gb))
rv40_parse_picture_size(gb, &w, &h);
- if(av_check_image_size(w, h, 0, r->s.avctx) < 0)
+ if(av_image_check_size(w, h, 0, r->s.avctx) < 0)
return -1;
si->width = w;
si->height = h;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/sp5xdec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/sp5xdec.c
index a63d52259..9db7d32ed 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/sp5xdec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/sp5xdec.c
@@ -32,11 +32,11 @@
static int sp5x_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
-#if 0
- MJpegDecodeContext *s = avctx->priv_data;
-#endif
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
+ AVPacket avpkt_recoded;
const int qscale = 5;
const uint8_t *buf_ptr;
uint8_t *recoded;
@@ -47,7 +47,6 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
buf_ptr = buf;
-#if 1
recoded = av_mallocz(buf_size + 1024);
if (!recoded)
return -1;
@@ -88,102 +87,13 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
recoded[j++] = 0xD9;
avctx->flags &= ~CODEC_FLAG_EMU_EDGE;
- i = ff_mjpeg_decode_frame(avctx, data, data_size, recoded, j);
+ av_init_packet(&avpkt_recoded);
+ avpkt_recoded.data = recoded;
+ avpkt_recoded.size = j;
+ i = ff_mjpeg_decode_frame(avctx, data, data_size, &avpkt_recoded);
av_free(recoded);
-#else
- /* SOF */
- s->bits = 8;
- s->width = avctx->coded_width;
- s->height = avctx->coded_height;
- s->nb_components = 3;
- s->component_id[0] = 0;
- s->h_count[0] = 2;
- s->v_count[0] = 2;
- s->quant_index[0] = 0;
- s->component_id[1] = 1;
- s->h_count[1] = 1;
- s->v_count[1] = 1;
- s->quant_index[1] = 1;
- s->component_id[2] = 2;
- s->h_count[2] = 1;
- s->v_count[2] = 1;
- s->quant_index[2] = 1;
- s->h_max = 2;
- s->v_max = 2;
-
- s->qscale_table = av_mallocz((s->width+15)/16);
- avctx->pix_fmt = s->cs_itu601 ? PIX_FMT_YUV420P : PIX_FMT_YUVJ420;
- s->interlaced = 0;
-
- s->picture.reference = 0;
- if (avctx->get_buffer(avctx, &s->picture) < 0)
- {
- av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
- return -1;
- }
-
- s->picture.pict_type = FF_I_TYPE;
- s->picture.key_frame = 1;
-
- for (i = 0; i < 3; i++)
- s->linesize[i] = s->picture.linesize[i] << s->interlaced;
-
- /* DQT */
- for (i = 0; i < 64; i++)
- {
- j = s->scantable.permutated[i];
- s->quant_matrixes[0][j] = sp5x_quant_table[(qscale * 2) + i];
- }
- s->qscale[0] = FFMAX(
- s->quant_matrixes[0][s->scantable.permutated[1]],
- s->quant_matrixes[0][s->scantable.permutated[8]]) >> 1;
-
- for (i = 0; i < 64; i++)
- {
- j = s->scantable.permutated[i];
- s->quant_matrixes[1][j] = sp5x_quant_table[(qscale * 2) + 1 + i];
- }
- s->qscale[1] = FFMAX(
- s->quant_matrixes[1][s->scantable.permutated[1]],
- s->quant_matrixes[1][s->scantable.permutated[8]]) >> 1;
-
- /* DHT */
-
- /* SOS */
- s->comp_index[0] = 0;
- s->nb_blocks[0] = s->h_count[0] * s->v_count[0];
- s->h_scount[0] = s->h_count[0];
- s->v_scount[0] = s->v_count[0];
- s->dc_index[0] = 0;
- s->ac_index[0] = 0;
-
- s->comp_index[1] = 1;
- s->nb_blocks[1] = s->h_count[1] * s->v_count[1];
- s->h_scount[1] = s->h_count[1];
- s->v_scount[1] = s->v_count[1];
- s->dc_index[1] = 1;
- s->ac_index[1] = 1;
-
- s->comp_index[2] = 2;
- s->nb_blocks[2] = s->h_count[2] * s->v_count[2];
- s->h_scount[2] = s->h_count[2];
- s->v_scount[2] = s->v_count[2];
- s->dc_index[2] = 1;
- s->ac_index[2] = 1;
-
- for (i = 0; i < 3; i++)
- s->last_dc[i] = 1024;
-
- s->mb_width = (s->width * s->h_max * 8 -1) / (s->h_max * 8);
- s->mb_height = (s->height * s->v_max * 8 -1) / (s->v_max * 8);
-
- init_get_bits(&s->gb, buf+14, (buf_size-14)*8);
-
- return mjpeg_decode_scan(s);
-#endif
-
return i;
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq1dec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq1dec.c
index 74fede36a..2df76316d 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq1dec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq1dec.c
@@ -642,8 +642,10 @@ static int svq1_decode_frame_header (GetBitContext *bitbuf,MpegEncContext *s) {
static int svq1_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
MpegEncContext *s=avctx->priv_data;
uint8_t *current, *previous;
int result, i, x, y, width, height;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq3.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq3.c
index 752400fa5..d7fe4aa5c 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq3.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/svq3.c
@@ -917,8 +917,10 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
static int svq3_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
MpegEncContext *const s = avctx->priv_data;
H264Context *const h = avctx->priv_data;
int m, mb_type;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/utils.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/utils.c
index 240ae68f1..aad1d9521 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/utils.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/utils.c
@@ -212,7 +212,7 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height){
#if LIBAVCODEC_VERSION_MAJOR < 53
int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h){
- return av_check_image_size(w, h, 0, av_log_ctx);
+ return av_image_check_size(w, h, 0, av_log_ctx);
}
#endif
@@ -232,7 +232,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){
return -1;
}
- if(av_check_image_size(w, h, 0, s))
+ if(av_image_check_size(w, h, 0, s))
return -1;
if(s->internal_buffer==NULL){
@@ -280,7 +280,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){
do {
// NOTE: do not align linesizes individually, this breaks e.g. assumptions
// that linesize[0] == 2*linesize[1] in the MPEG-encoder for 4:2:2
- av_fill_image_linesizes(picture.linesize, s->pix_fmt, w);
+ av_image_fill_linesizes(picture.linesize, s->pix_fmt, w);
// increase alignment of w for next try (rhs gives the lowest bit set in w)
w += w & ~(w-1);
@@ -290,7 +290,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){
}
} while (unaligned);
- tmpsize = av_fill_image_pointers(picture.data, s->pix_fmt, h, NULL, picture.linesize);
+ tmpsize = av_image_fill_pointers(picture.data, s->pix_fmt, h, NULL, picture.linesize);
if (tmpsize < 0)
return -1;
@@ -489,7 +489,7 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
#define SANE_NB_CHANNELS 128U
if (((avctx->coded_width || avctx->coded_height)
- && av_check_image_size(avctx->coded_width, avctx->coded_height, 0, avctx))
+ && av_image_check_size(avctx->coded_width, avctx->coded_height, 0, avctx))
|| avctx->channels > SANE_NB_CHANNELS) {
ret = AVERROR(EINVAL);
goto free_and_end;
@@ -498,14 +498,13 @@ int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
avctx->codec = codec;
avctx->codec_id = codec->id; /* ffdshow custom code */
avctx->frame_number = 0;
- if(avctx->codec->init){
- if(avctx->codec_type == AVMEDIA_TYPE_VIDEO &&
- avctx->codec->max_lowres < avctx->lowres){
- av_log(avctx, AV_LOG_ERROR, "The maximum value for lowres supported by the decoder is %d\n",
- avctx->codec->max_lowres);
- goto free_and_end;
- }
+ if (avctx->codec->max_lowres < avctx->lowres) {
+ av_log(avctx, AV_LOG_ERROR, "The maximum value for lowres supported by the decoder is %d\n",
+ avctx->codec->max_lowres);
+ goto free_and_end;
+ }
+ if(avctx->codec->init){
ret = avctx->codec->init(avctx);
if (ret < 0) {
goto free_and_end;
@@ -548,7 +547,7 @@ int attribute_align_arg avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf
av_log(avctx, AV_LOG_ERROR, "buffer smaller than minimum size\n");
return -1;
}
- if(av_check_image_size(avctx->width, avctx->height, 0, avctx))
+ if(av_image_check_size(avctx->width, avctx->height, 0, avctx))
return -1;
if((avctx->codec->capabilities & CODEC_CAP_DELAY) || pict){
int ret = avctx->codec->encode(avctx, buf, buf_size, pict);
@@ -560,18 +559,34 @@ int attribute_align_arg avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf
return 0;
}
+#if LIBAVCODEC_VERSION_MAJOR < 53
int attribute_align_arg avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
int *got_picture_ptr,
const uint8_t *buf, int buf_size)
{
+ AVPacket avpkt;
+ av_init_packet(&avpkt);
+ avpkt.data = buf;
+ avpkt.size = buf_size;
+ // HACK for CorePNG to decode as normal PNG by default
+ avpkt.flags = AV_PKT_FLAG_KEY;
+
+ return avcodec_decode_video2(avctx, picture, got_picture_ptr, &avpkt);
+}
+#endif
+
+int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
+ int *got_picture_ptr,
+ AVPacket *avpkt)
+{
int ret;
*got_picture_ptr= 0;
- if((avctx->coded_width||avctx->coded_height) && av_check_image_size(avctx->coded_width, avctx->coded_height, 0, avctx))
+ if((avctx->coded_width||avctx->coded_height) && av_image_check_size(avctx->coded_width, avctx->coded_height, 0, avctx))
return -1;
- if((avctx->codec->capabilities & CODEC_CAP_DELAY) || buf_size){
+ if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size){
ret = avctx->codec->decode(avctx, picture, got_picture_ptr,
- buf, buf_size);
+ avpkt);
emms_c(); //needed to avoid an emms_c() call before every return;
@@ -583,13 +598,27 @@ int attribute_align_arg avcodec_decode_video(AVCodecContext *avctx, AVFrame *pic
return ret;
}
+#if LIBAVCODEC_VERSION_MAJOR < 53
int attribute_align_arg avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
int *frame_size_ptr,
const uint8_t *buf, int buf_size)
{
+ AVPacket avpkt;
+ av_init_packet(&avpkt);
+ avpkt.data = buf;
+ avpkt.size = buf_size;
+
+ return avcodec_decode_audio3(avctx, samples, frame_size_ptr, &avpkt);
+}
+#endif
+
+int attribute_align_arg avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples,
+ int *frame_size_ptr,
+ AVPacket *avpkt)
+{
int ret;
- if((avctx->codec->capabilities & CODEC_CAP_DELAY) || buf_size){
+ if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size){
//FIXME remove the check below _after_ ensuring that all audio check that the available space is enough
if(*frame_size_ptr < AVCODEC_MAX_AUDIO_FRAME_SIZE){
av_log(avctx, AV_LOG_ERROR, "buffer smaller than AVCODEC_MAX_AUDIO_FRAME_SIZE\n");
@@ -601,8 +630,7 @@ int attribute_align_arg avcodec_decode_audio2(AVCodecContext *avctx, int16_t *sa
return -1;
}
- ret = avctx->codec->decode(avctx, samples, frame_size_ptr,
- buf, buf_size);
+ ret = avctx->codec->decode(avctx, samples, frame_size_ptr, avpkt);
avctx->frame_number++;
}else{
ret= 0;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dec.c
index 47cd5e811..fe960473f 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dec.c
@@ -3135,8 +3135,10 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
*/
static int vc1_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
VC1Context *v = avctx->priv_data;
MpegEncContext *s = &v->s;
AVFrame *pict = data;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dsp.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dsp.c
index 8634bef69..aab169479 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dsp.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vc1dsp.c
@@ -630,7 +630,7 @@ av_cold void ff_vc1dsp_init(DSPContext* dsp, AVCodecContext *avctx) {
dsp->vc1_v_loop_filter16 = vc1_v_loop_filter16_c;
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_c;
- dsp->put_vc1_mspel_pixels_tab[ 0] = ff_put_vc1_mspel_mc00_c;
+ dsp->put_vc1_mspel_pixels_tab[ 0] = ff_put_pixels8x8_c;
dsp->put_vc1_mspel_pixels_tab[ 1] = put_vc1_mspel_mc10_c;
dsp->put_vc1_mspel_pixels_tab[ 2] = put_vc1_mspel_mc20_c;
dsp->put_vc1_mspel_pixels_tab[ 3] = put_vc1_mspel_mc30_c;
@@ -647,7 +647,7 @@ av_cold void ff_vc1dsp_init(DSPContext* dsp, AVCodecContext *avctx) {
dsp->put_vc1_mspel_pixels_tab[14] = put_vc1_mspel_mc23_c;
dsp->put_vc1_mspel_pixels_tab[15] = put_vc1_mspel_mc33_c;
- dsp->avg_vc1_mspel_pixels_tab[ 0] = ff_avg_vc1_mspel_mc00_c;
+ dsp->avg_vc1_mspel_pixels_tab[ 0] = ff_avg_pixels8x8_c;
dsp->avg_vc1_mspel_pixels_tab[ 1] = avg_vc1_mspel_mc10_c;
dsp->avg_vc1_mspel_pixels_tab[ 2] = avg_vc1_mspel_mc20_c;
dsp->avg_vc1_mspel_pixels_tab[ 3] = avg_vc1_mspel_mc30_c;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c
index 4d0e2a4b0..437ecffa3 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c
@@ -1329,12 +1329,11 @@ static void vp3_draw_horiz_band(Vp3DecodeContext *s, int y)
return;
h= y - s->last_slice_end;
+ s->last_slice_end= y;
y -= h;
if (!s->flipped_image) {
- if (y == 0)
- h -= s->height - s->avctx->height; // account for non-mod16
- y = s->height - y - h;
+ y = s->avctx->height - y - h;
}
cy = y >> s->chroma_y_shift;
@@ -1345,7 +1344,6 @@ static void vp3_draw_horiz_band(Vp3DecodeContext *s, int y)
emms_c();
s->avctx->draw_horiz_band(s->avctx, &s->current_frame, offset, y, 3, h);
- s->last_slice_end= y + h;
}
/*
@@ -1516,7 +1514,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
* dispatch (slice - 1);
*/
- vp3_draw_horiz_band(s, FFMIN(64*slice + 64-16, s->height-16));
+ vp3_draw_horiz_band(s, FFMIN((32 << s->chroma_y_shift) * (slice + 1) -16, s->height-16));
}
/*
@@ -1737,8 +1735,10 @@ static int64_t theora_granule_frame(Vp3DecodeContext *s,int64_t granulepos)
*/
static int vp3_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
Vp3DecodeContext *s = avctx->priv_data;
GetBitContext gb;
static int counter = 0;
@@ -1868,7 +1868,7 @@ static int vp3_decode_frame(AVCodecContext *avctx,
int row = (s->height >> (3+(i && s->chroma_y_shift))) - 1;
apply_loop_filter(s, i, row, row+1);
}
- vp3_draw_horiz_band(s, s->height);
+ vp3_draw_horiz_band(s, s->avctx->height);
/* MPC Custom code begin */
#if 0
@@ -2009,7 +2009,7 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb)
Vp3DecodeContext *s = avctx->priv_data;
int visible_width, visible_height, colorspace;
int offset_x = 0, offset_y = 0;
- AVRational fps;
+ AVRational fps, aspect;
s->theora = get_bits_long(gb, 24);
av_log(avctx, AV_LOG_DEBUG, "Theora bitstream version %X\n", s->theora);
@@ -2025,7 +2025,7 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb)
visible_width = s->width = get_bits(gb, 16) << 4;
visible_height = s->height = get_bits(gb, 16) << 4;
- if(av_check_image_size(s->width, s->height, 0, avctx)){
+ if(av_image_check_size(s->width, s->height, 0, avctx)){
av_log(avctx, AV_LOG_ERROR, "Invalid dimensions (%dx%d)\n", s->width, s->height);
s->width= s->height= 0;
return -1;
@@ -2046,8 +2046,13 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb)
fps.den, fps.num, 1<<30);
}
- avctx->sample_aspect_ratio.num = get_bits_long(gb, 24);
- avctx->sample_aspect_ratio.den = get_bits_long(gb, 24);
+ aspect.num = get_bits_long(gb, 24);
+ aspect.den = get_bits_long(gb, 24);
+ if (aspect.num && aspect.den) {
+ av_reduce(&avctx->sample_aspect_ratio.num,
+ &avctx->sample_aspect_ratio.den,
+ aspect.num, aspect.den, 1<<30);
+ }
if (s->theora < 0x030200)
s->keyframe_frequency_force=1<<get_bits(gb, 5); /* keyframe frequency force */ /* ffdshow custom code */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.c
index 3f5569eb8..4b937a49e 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.c
@@ -482,11 +482,12 @@ static int vp56_size_changed(AVCodecContext *avctx)
}
int ff_vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
VP56Context *s = avctx->priv_data;
AVFrame *const p = s->framep[VP56_FRAME_CURRENT];
- int remaining_buf_size = buf_size;
+ int remaining_buf_size = avpkt->size;
int is_alpha, av_uninit(alpha_offset);
if (s->has_alpha) {
@@ -635,7 +636,7 @@ int ff_vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
*(AVFrame*)data = *p;
*data_size = sizeof(AVFrame);
- return buf_size;
+ return avpkt->size;
}
av_cold void ff_vp56_init(AVCodecContext *avctx, int flip, int has_alpha)
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.h
index f9500cfb5..da6b1b64b 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56.h
@@ -174,7 +174,7 @@ void ff_vp56_init(AVCodecContext *avctx, int flip, int has_alpha);
int ff_vp56_free(AVCodecContext *avctx);
void ff_vp56_init_dequant(VP56Context *s, int quantizer);
int ff_vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
- const uint8_t *buf, int buf_size);
+ AVPacket *avpkt);
/**
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56dsp.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56dsp.c
index d67604b01..0fe9e3e55 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56dsp.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp56dsp.c
@@ -84,7 +84,7 @@ void ff_vp56dsp_init(VP56DSPContext *s, enum CodecID codec)
s->edge_filter_ver = vp6_edge_filter_ver;
if (CONFIG_VP6_DECODER) {
- s->vp6_filter_diag4= ff_vp6_filter_diag4_c;
+ s->vp6_filter_diag4 = ff_vp6_filter_diag4_c;
}
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp8.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp8.c
index d8d7cdaa2..de97489a8 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp8.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp8.c
@@ -223,7 +223,7 @@ static void vp8_decode_flush(AVCodecContext *avctx)
static int update_dimensions(VP8Context *s, int width, int height)
{
- if (av_check_image_size(width, height, 0, s->avctx))
+ if (av_image_check_size(width, height, 0, s->avctx))
return AVERROR_INVALIDDATA;
vp8_decode_flush(s->avctx);
@@ -1471,14 +1471,14 @@ static void filter_mb_row_simple(VP8Context *s, int mb_y)
}
static int vp8_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
VP8Context *s = avctx->priv_data;
int ret, mb_x, mb_y, i, y, referenced;
enum AVDiscard skip_thresh;
AVFrame *av_uninit(curframe);
- if ((ret = decode_frame_header(s, buf, buf_size)) < 0)
+ if ((ret = decode_frame_header(s, avpkt->data, avpkt->size)) < 0)
return ret;
referenced = s->update_last || s->update_golden == VP56_FRAME_CURRENT
@@ -1644,7 +1644,7 @@ skip_decode:
*data_size = sizeof(AVFrame);
}
- return buf_size;
+ return avpkt->size;
}
static av_cold int vp8_decode_init(AVCodecContext *avctx)
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/config.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/config.asm
new file mode 100644
index 000000000..8efc2c533
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/config.asm
@@ -0,0 +1 @@
+%define ARCH_X86
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_mmx.c
deleted file mode 100644
index ff359230c..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_mmx.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (c) 2005 Zoltan Hidvegi <hzoli -a- hzoli -d- com>,
- * Loren Merritt
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * MMX optimized version of (put|avg)_h264_chroma_mc8.
- * H264_CHROMA_MC8_TMPL must be defined to the desired function name
- * H264_CHROMA_OP must be defined to empty for put and pavgb/pavgusb for avg
- * H264_CHROMA_MC8_MV0 must be defined to a (put|avg)_pixels8 function
- */
-static void H264_CHROMA_MC8_TMPL(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y, const uint64_t *rnd_reg)
-{
- DECLARE_ALIGNED(8, uint64_t, AA);
- DECLARE_ALIGNED(8, uint64_t, DD);
- int i;
-
- if(y==0 && x==0) {
- /* no filter needed */
- H264_CHROMA_MC8_MV0(dst, src, stride, h);
- return;
- }
-
- assert(x<8 && y<8 && x>=0 && y>=0);
-
- if(y==0 || x==0)
- {
- /* 1 dimensional filter only */
- const int dxy = x ? 1 : stride;
-
- __asm__ volatile(
- "movd %0, %%mm5\n\t"
- "movq %1, %%mm4\n\t"
- "movq %2, %%mm6\n\t" /* mm6 = rnd >> 3 */
- "punpcklwd %%mm5, %%mm5\n\t"
- "punpckldq %%mm5, %%mm5\n\t" /* mm5 = B = x */
- "pxor %%mm7, %%mm7\n\t"
- "psubw %%mm5, %%mm4\n\t" /* mm4 = A = 8-x */
- :: "rm"(x+y), "m"(ff_pw_8), "m"(*(rnd_reg+1)));
-
- for(i=0; i<h; i++) {
- __asm__ volatile(
- /* mm0 = src[0..7], mm1 = src[1..8] */
- "movq %0, %%mm0\n\t"
- "movq %1, %%mm2\n\t"
- :: "m"(src[0]), "m"(src[dxy]));
-
- __asm__ volatile(
- /* [mm0,mm1] = A * src[0..7] */
- /* [mm2,mm3] = B * src[1..8] */
- "movq %%mm0, %%mm1\n\t"
- "movq %%mm2, %%mm3\n\t"
- "punpcklbw %%mm7, %%mm0\n\t"
- "punpckhbw %%mm7, %%mm1\n\t"
- "punpcklbw %%mm7, %%mm2\n\t"
- "punpckhbw %%mm7, %%mm3\n\t"
- "pmullw %%mm4, %%mm0\n\t"
- "pmullw %%mm4, %%mm1\n\t"
- "pmullw %%mm5, %%mm2\n\t"
- "pmullw %%mm5, %%mm3\n\t"
-
- /* dst[0..7] = (A * src[0..7] + B * src[1..8] + (rnd >> 3)) >> 3 */
- "paddw %%mm6, %%mm0\n\t"
- "paddw %%mm6, %%mm1\n\t"
- "paddw %%mm2, %%mm0\n\t"
- "paddw %%mm3, %%mm1\n\t"
- "psrlw $3, %%mm0\n\t"
- "psrlw $3, %%mm1\n\t"
- "packuswb %%mm1, %%mm0\n\t"
- H264_CHROMA_OP(%0, %%mm0)
- "movq %%mm0, %0\n\t"
- : "=m" (dst[0]));
-
- src += stride;
- dst += stride;
- }
- return;
- }
-
- /* general case, bilinear */
- __asm__ volatile("movd %2, %%mm4\n\t"
- "movd %3, %%mm6\n\t"
- "punpcklwd %%mm4, %%mm4\n\t"
- "punpcklwd %%mm6, %%mm6\n\t"
- "punpckldq %%mm4, %%mm4\n\t" /* mm4 = x words */
- "punpckldq %%mm6, %%mm6\n\t" /* mm6 = y words */
- "movq %%mm4, %%mm5\n\t"
- "pmullw %%mm6, %%mm4\n\t" /* mm4 = x * y */
- "psllw $3, %%mm5\n\t"
- "psllw $3, %%mm6\n\t"
- "movq %%mm5, %%mm7\n\t"
- "paddw %%mm6, %%mm7\n\t"
- "movq %%mm4, %1\n\t" /* DD = x * y */
- "psubw %%mm4, %%mm5\n\t" /* mm5 = B = 8x - xy */
- "psubw %%mm4, %%mm6\n\t" /* mm6 = C = 8y - xy */
- "paddw %4, %%mm4\n\t"
- "psubw %%mm7, %%mm4\n\t" /* mm4 = A = xy - (8x+8y) + 64 */
- "pxor %%mm7, %%mm7\n\t"
- "movq %%mm4, %0\n\t"
- : "=m" (AA), "=m" (DD) : "rm" (x), "rm" (y), "m" (ff_pw_64));
-
- __asm__ volatile(
- /* mm0 = src[0..7], mm1 = src[1..8] */
- "movq %0, %%mm0\n\t"
- "movq %1, %%mm1\n\t"
- : : "m" (src[0]), "m" (src[1]));
-
- for(i=0; i<h; i++) {
- src += stride;
-
- __asm__ volatile(
- /* mm2 = A * src[0..3] + B * src[1..4] */
- /* mm3 = A * src[4..7] + B * src[5..8] */
- "movq %%mm0, %%mm2\n\t"
- "movq %%mm1, %%mm3\n\t"
- "punpckhbw %%mm7, %%mm0\n\t"
- "punpcklbw %%mm7, %%mm1\n\t"
- "punpcklbw %%mm7, %%mm2\n\t"
- "punpckhbw %%mm7, %%mm3\n\t"
- "pmullw %0, %%mm0\n\t"
- "pmullw %0, %%mm2\n\t"
- "pmullw %%mm5, %%mm1\n\t"
- "pmullw %%mm5, %%mm3\n\t"
- "paddw %%mm1, %%mm2\n\t"
- "paddw %%mm0, %%mm3\n\t"
- : : "m" (AA));
-
- __asm__ volatile(
- /* [mm2,mm3] += C * src[0..7] */
- "movq %0, %%mm0\n\t"
- "movq %%mm0, %%mm1\n\t"
- "punpcklbw %%mm7, %%mm0\n\t"
- "punpckhbw %%mm7, %%mm1\n\t"
- "pmullw %%mm6, %%mm0\n\t"
- "pmullw %%mm6, %%mm1\n\t"
- "paddw %%mm0, %%mm2\n\t"
- "paddw %%mm1, %%mm3\n\t"
- : : "m" (src[0]));
-
- __asm__ volatile(
- /* [mm2,mm3] += D * src[1..8] */
- "movq %1, %%mm1\n\t"
- "movq %%mm1, %%mm0\n\t"
- "movq %%mm1, %%mm4\n\t"
- "punpcklbw %%mm7, %%mm0\n\t"
- "punpckhbw %%mm7, %%mm4\n\t"
- "pmullw %2, %%mm0\n\t"
- "pmullw %2, %%mm4\n\t"
- "paddw %%mm0, %%mm2\n\t"
- "paddw %%mm4, %%mm3\n\t"
- "movq %0, %%mm0\n\t"
- : : "m" (src[0]), "m" (src[1]), "m" (DD));
-
- __asm__ volatile(
- /* dst[0..7] = ([mm2,mm3] + rnd) >> 6 */
- "paddw %1, %%mm2\n\t"
- "paddw %1, %%mm3\n\t"
- "psrlw $6, %%mm2\n\t"
- "psrlw $6, %%mm3\n\t"
- "packuswb %%mm3, %%mm2\n\t"
- H264_CHROMA_OP(%0, %%mm2)
- "movq %%mm2, %0\n\t"
- : "=m" (dst[0]) : "m" (*rnd_reg));
- dst+= stride;
- }
-}
-
-static void H264_CHROMA_MC4_TMPL(uint8_t *dst/*align 4*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y, const uint64_t *rnd_reg)
-{
- __asm__ volatile(
- "pxor %%mm7, %%mm7 \n\t"
- "movd %5, %%mm2 \n\t"
- "movd %6, %%mm3 \n\t"
- "movq "MANGLE(ff_pw_8)", %%mm4\n\t"
- "movq "MANGLE(ff_pw_8)", %%mm5\n\t"
- "punpcklwd %%mm2, %%mm2 \n\t"
- "punpcklwd %%mm3, %%mm3 \n\t"
- "punpcklwd %%mm2, %%mm2 \n\t"
- "punpcklwd %%mm3, %%mm3 \n\t"
- "psubw %%mm2, %%mm4 \n\t"
- "psubw %%mm3, %%mm5 \n\t"
-
- "movd (%1), %%mm0 \n\t"
- "movd 1(%1), %%mm6 \n\t"
- "add %3, %1 \n\t"
- "punpcklbw %%mm7, %%mm0 \n\t"
- "punpcklbw %%mm7, %%mm6 \n\t"
- "pmullw %%mm4, %%mm0 \n\t"
- "pmullw %%mm2, %%mm6 \n\t"
- "paddw %%mm0, %%mm6 \n\t"
-
- "1: \n\t"
- "movd (%1), %%mm0 \n\t"
- "movd 1(%1), %%mm1 \n\t"
- "add %3, %1 \n\t"
- "punpcklbw %%mm7, %%mm0 \n\t"
- "punpcklbw %%mm7, %%mm1 \n\t"
- "pmullw %%mm4, %%mm0 \n\t"
- "pmullw %%mm2, %%mm1 \n\t"
- "paddw %%mm0, %%mm1 \n\t"
- "movq %%mm1, %%mm0 \n\t"
- "pmullw %%mm5, %%mm6 \n\t"
- "pmullw %%mm3, %%mm1 \n\t"
- "paddw %4, %%mm6 \n\t"
- "paddw %%mm6, %%mm1 \n\t"
- "psrlw $6, %%mm1 \n\t"
- "packuswb %%mm1, %%mm1 \n\t"
- H264_CHROMA_OP4((%0), %%mm1, %%mm6)
- "movd %%mm1, (%0) \n\t"
- "add %3, %0 \n\t"
- "movd (%1), %%mm6 \n\t"
- "movd 1(%1), %%mm1 \n\t"
- "add %3, %1 \n\t"
- "punpcklbw %%mm7, %%mm6 \n\t"
- "punpcklbw %%mm7, %%mm1 \n\t"
- "pmullw %%mm4, %%mm6 \n\t"
- "pmullw %%mm2, %%mm1 \n\t"
- "paddw %%mm6, %%mm1 \n\t"
- "movq %%mm1, %%mm6 \n\t"
- "pmullw %%mm5, %%mm0 \n\t"
- "pmullw %%mm3, %%mm1 \n\t"
- "paddw %4, %%mm0 \n\t"
- "paddw %%mm0, %%mm1 \n\t"
- "psrlw $6, %%mm1 \n\t"
- "packuswb %%mm1, %%mm1 \n\t"
- H264_CHROMA_OP4((%0), %%mm1, %%mm0)
- "movd %%mm1, (%0) \n\t"
- "add %3, %0 \n\t"
- "sub $2, %2 \n\t"
- "jnz 1b \n\t"
- : "+r"(dst), "+r"(src), "+r"(h)
- : "r"((x86_reg)stride), "m"(*rnd_reg), "m"(x), "m"(y)
- );
-}
-
-#ifdef H264_CHROMA_MC2_TMPL
-static void H264_CHROMA_MC2_TMPL(uint8_t *dst/*align 2*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- int tmp = ((1<<16)-1)*x + 8;
- int CD= tmp*y;
- int AB= (tmp<<3) - CD;
- __asm__ volatile(
- /* mm5 = {A,B,A,B} */
- /* mm6 = {C,D,C,D} */
- "movd %0, %%mm5\n\t"
- "movd %1, %%mm6\n\t"
- "punpckldq %%mm5, %%mm5\n\t"
- "punpckldq %%mm6, %%mm6\n\t"
- "pxor %%mm7, %%mm7\n\t"
- /* mm0 = src[0,1,1,2] */
- "movd %2, %%mm2\n\t"
- "punpcklbw %%mm7, %%mm2\n\t"
- "pshufw $0x94, %%mm2, %%mm2\n\t"
- :: "r"(AB), "r"(CD), "m"(src[0]));
-
-
- __asm__ volatile(
- "1:\n\t"
- "add %4, %1\n\t"
- /* mm1 = A * src[0,1] + B * src[1,2] */
- "movq %%mm2, %%mm1\n\t"
- "pmaddwd %%mm5, %%mm1\n\t"
- /* mm0 = src[0,1,1,2] */
- "movd (%1), %%mm0\n\t"
- "punpcklbw %%mm7, %%mm0\n\t"
- "pshufw $0x94, %%mm0, %%mm0\n\t"
- /* mm1 += C * src[0,1] + D * src[1,2] */
- "movq %%mm0, %%mm2\n\t"
- "pmaddwd %%mm6, %%mm0\n\t"
- "paddw %3, %%mm1\n\t"
- "paddw %%mm0, %%mm1\n\t"
- /* dst[0,1] = pack((mm1 + 32) >> 6) */
- "psrlw $6, %%mm1\n\t"
- "packssdw %%mm7, %%mm1\n\t"
- "packuswb %%mm7, %%mm1\n\t"
- H264_CHROMA_OP4((%0), %%mm1, %%mm3)
- "movd %%mm1, %%esi\n\t"
- "movw %%si, (%0)\n\t"
- "add %4, %0\n\t"
- "sub $1, %2\n\t"
- "jnz 1b\n\t"
- : "+r" (dst), "+r"(src), "+r"(h)
- : "m" (ff_pw_32), "r"((x86_reg)stride)
- : "%esi");
-
-}
-#endif
-
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_ssse3.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_ssse3.c
deleted file mode 100644
index 0eceb74f2..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_h264_template_ssse3.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (c) 2008 Loren Merritt
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * SSSE3 optimized version of (put|avg)_h264_chroma_mc8.
- * H264_CHROMA_MC8_TMPL must be defined to the desired function name
- * H264_CHROMA_MC8_MV0 must be defined to a (put|avg)_pixels8 function
- * AVG_OP must be defined to empty for put and the identify for avg
- */
-static void H264_CHROMA_MC8_TMPL(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y, int rnd)
-{
- if(y==0 && x==0) {
- /* no filter needed */
- H264_CHROMA_MC8_MV0(dst, src, stride, h);
- return;
- }
-
- assert(x<8 && y<8 && x>=0 && y>=0);
-
- if(y==0 || x==0)
- {
- /* 1 dimensional filter only */
- __asm__ volatile(
- "movd %0, %%xmm7 \n\t"
- "movq %1, %%xmm6 \n\t"
- "pshuflw $0, %%xmm7, %%xmm7 \n\t"
- "movlhps %%xmm6, %%xmm6 \n\t"
- "movlhps %%xmm7, %%xmm7 \n\t"
- :: "r"(255*(x+y)+8), "m"(*(rnd?&ff_pw_4.a:&ff_pw_3))
- );
-
- if(x) {
- __asm__ volatile(
- "1: \n\t"
- "movq (%1), %%xmm0 \n\t"
- "movq 1(%1), %%xmm1 \n\t"
- "movq (%1,%3), %%xmm2 \n\t"
- "movq 1(%1,%3), %%xmm3 \n\t"
- "punpcklbw %%xmm1, %%xmm0 \n\t"
- "punpcklbw %%xmm3, %%xmm2 \n\t"
- "pmaddubsw %%xmm7, %%xmm0 \n\t"
- "pmaddubsw %%xmm7, %%xmm2 \n\t"
- AVG_OP("movq (%0), %%xmm4 \n\t")
- AVG_OP("movhps (%0,%3), %%xmm4 \n\t")
- "paddw %%xmm6, %%xmm0 \n\t"
- "paddw %%xmm6, %%xmm2 \n\t"
- "psrlw $3, %%xmm0 \n\t"
- "psrlw $3, %%xmm2 \n\t"
- "packuswb %%xmm2, %%xmm0 \n\t"
- AVG_OP("pavgb %%xmm4, %%xmm0 \n\t")
- "movq %%xmm0, (%0) \n\t"
- "movhps %%xmm0, (%0,%3) \n\t"
- "sub $2, %2 \n\t"
- "lea (%1,%3,2), %1 \n\t"
- "lea (%0,%3,2), %0 \n\t"
- "jg 1b \n\t"
- :"+r"(dst), "+r"(src), "+r"(h)
- :"r"((x86_reg)stride)
- );
- } else {
- __asm__ volatile(
- "1: \n\t"
- "movq (%1), %%xmm0 \n\t"
- "movq (%1,%3), %%xmm1 \n\t"
- "movdqa %%xmm1, %%xmm2 \n\t"
- "movq (%1,%3,2), %%xmm3 \n\t"
- "punpcklbw %%xmm1, %%xmm0 \n\t"
- "punpcklbw %%xmm3, %%xmm2 \n\t"
- "pmaddubsw %%xmm7, %%xmm0 \n\t"
- "pmaddubsw %%xmm7, %%xmm2 \n\t"
- AVG_OP("movq (%0), %%xmm4 \n\t")
- AVG_OP("movhps (%0,%3), %%xmm4 \n\t")
- "paddw %%xmm6, %%xmm0 \n\t"
- "paddw %%xmm6, %%xmm2 \n\t"
- "psrlw $3, %%xmm0 \n\t"
- "psrlw $3, %%xmm2 \n\t"
- "packuswb %%xmm2, %%xmm0 \n\t"
- AVG_OP("pavgb %%xmm4, %%xmm0 \n\t")
- "movq %%xmm0, (%0) \n\t"
- "movhps %%xmm0, (%0,%3) \n\t"
- "sub $2, %2 \n\t"
- "lea (%1,%3,2), %1 \n\t"
- "lea (%0,%3,2), %0 \n\t"
- "jg 1b \n\t"
- :"+r"(dst), "+r"(src), "+r"(h)
- :"r"((x86_reg)stride)
- );
- }
- return;
- }
-
- /* general case, bilinear */
- __asm__ volatile(
- "movd %0, %%xmm7 \n\t"
- "movd %1, %%xmm6 \n\t"
- "movdqa %2, %%xmm5 \n\t"
- "pshuflw $0, %%xmm7, %%xmm7 \n\t"
- "pshuflw $0, %%xmm6, %%xmm6 \n\t"
- "movlhps %%xmm7, %%xmm7 \n\t"
- "movlhps %%xmm6, %%xmm6 \n\t"
- :: "r"((x*255+8)*(8-y)), "r"((x*255+8)*y), "m"(*(rnd?&ff_pw_32:&ff_pw_28))
- );
-
- __asm__ volatile(
- "movq (%1), %%xmm0 \n\t"
- "movq 1(%1), %%xmm1 \n\t"
- "punpcklbw %%xmm1, %%xmm0 \n\t"
- "add %3, %1 \n\t"
- "1: \n\t"
- "movq (%1), %%xmm1 \n\t"
- "movq 1(%1), %%xmm2 \n\t"
- "movq (%1,%3), %%xmm3 \n\t"
- "movq 1(%1,%3), %%xmm4 \n\t"
- "lea (%1,%3,2), %1 \n\t"
- "punpcklbw %%xmm2, %%xmm1 \n\t"
- "punpcklbw %%xmm4, %%xmm3 \n\t"
- "movdqa %%xmm1, %%xmm2 \n\t"
- "movdqa %%xmm3, %%xmm4 \n\t"
- "pmaddubsw %%xmm7, %%xmm0 \n\t"
- "pmaddubsw %%xmm6, %%xmm1 \n\t"
- "pmaddubsw %%xmm7, %%xmm2 \n\t"
- "pmaddubsw %%xmm6, %%xmm3 \n\t"
- "paddw %%xmm5, %%xmm0 \n\t"
- "paddw %%xmm5, %%xmm2 \n\t"
- "paddw %%xmm0, %%xmm1 \n\t"
- "paddw %%xmm2, %%xmm3 \n\t"
- "movdqa %%xmm4, %%xmm0 \n\t"
- "psrlw $6, %%xmm1 \n\t"
- "psrlw $6, %%xmm3 \n\t"
- AVG_OP("movq (%0), %%xmm2 \n\t")
- AVG_OP("movhps (%0,%3), %%xmm2 \n\t")
- "packuswb %%xmm3, %%xmm1 \n\t"
- AVG_OP("pavgb %%xmm2, %%xmm1 \n\t")
- "movq %%xmm1, (%0)\n\t"
- "movhps %%xmm1, (%0,%3)\n\t"
- "sub $2, %2 \n\t"
- "lea (%0,%3,2), %0 \n\t"
- "jg 1b \n\t"
- :"+r"(dst), "+r"(src), "+r"(h)
- :"r"((x86_reg)stride)
- );
-}
-
-static void H264_CHROMA_MC4_TMPL(uint8_t *dst/*align 4*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- __asm__ volatile(
- "movd %0, %%mm7 \n\t"
- "movd %1, %%mm6 \n\t"
- "movq %2, %%mm5 \n\t"
- "pshufw $0, %%mm7, %%mm7 \n\t"
- "pshufw $0, %%mm6, %%mm6 \n\t"
- :: "r"((x*255+8)*(8-y)), "r"((x*255+8)*y), "m"(ff_pw_32)
- );
-
- __asm__ volatile(
- "movd (%1), %%mm0 \n\t"
- "punpcklbw 1(%1), %%mm0 \n\t"
- "add %3, %1 \n\t"
- "1: \n\t"
- "movd (%1), %%mm1 \n\t"
- "movd (%1,%3), %%mm3 \n\t"
- "punpcklbw 1(%1), %%mm1 \n\t"
- "punpcklbw 1(%1,%3), %%mm3 \n\t"
- "lea (%1,%3,2), %1 \n\t"
- "movq %%mm1, %%mm2 \n\t"
- "movq %%mm3, %%mm4 \n\t"
- "pmaddubsw %%mm7, %%mm0 \n\t"
- "pmaddubsw %%mm6, %%mm1 \n\t"
- "pmaddubsw %%mm7, %%mm2 \n\t"
- "pmaddubsw %%mm6, %%mm3 \n\t"
- "paddw %%mm5, %%mm0 \n\t"
- "paddw %%mm5, %%mm2 \n\t"
- "paddw %%mm0, %%mm1 \n\t"
- "paddw %%mm2, %%mm3 \n\t"
- "movq %%mm4, %%mm0 \n\t"
- "psrlw $6, %%mm1 \n\t"
- "psrlw $6, %%mm3 \n\t"
- "packuswb %%mm1, %%mm1 \n\t"
- "packuswb %%mm3, %%mm3 \n\t"
- AVG_OP("pavgb (%0), %%mm1 \n\t")
- AVG_OP("pavgb (%0,%3), %%mm3 \n\t")
- "movd %%mm1, (%0)\n\t"
- "movd %%mm3, (%0,%3)\n\t"
- "sub $2, %2 \n\t"
- "lea (%0,%3,2), %0 \n\t"
- "jg 1b \n\t"
- :"+r"(dst), "+r"(src), "+r"(h)
- :"r"((x86_reg)stride)
- );
-}
-
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.c
index c4939ec65..995df0564 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.c
@@ -22,14 +22,13 @@
* MMX optimization by Nick Kurshev <nickols_k@mail.ru>
*/
+#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/h264dsp.h"
#include "libavcodec/mpegvideo.h"
#include "libavcodec/simple_idct.h"
#include "dsputil_mmx.h"
-#include "vp3dsp_mmx.h"
-#include "vp3dsp_sse2.h"
#include "idct_xvid.h"
//#undef NDEBUG
@@ -62,6 +61,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_pw_96 ) = 0x0060006000600060ULL;
DECLARE_ALIGNED(8, const uint64_t, ff_pw_128) = 0x0080008000800080ULL;
DECLARE_ALIGNED(8, const uint64_t, ff_pw_255) = 0x00ff00ff00ff00ffULL;
+DECLARE_ALIGNED(16, const xmm_reg, ff_pb_0 ) = {0x0000000000000000ULL, 0x0000000000000000ULL};
DECLARE_ALIGNED(16, const xmm_reg, ff_pb_1 ) = {0x0101010101010101ULL, 0x0101010101010101ULL};
DECLARE_ALIGNED(16, const xmm_reg, ff_pb_3 ) = {0x0303030303030303ULL, 0x0303030303030303ULL};
DECLARE_ALIGNED(16, const xmm_reg, ff_pb_4 ) = {0x0404040404040404ULL, 0x0404040404040404ULL};
@@ -70,7 +70,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_pb_1F ) = 0x1F1F1F1F1F1F1F1FULL;
DECLARE_ALIGNED(8, const uint64_t, ff_pb_3F ) = 0x3F3F3F3F3F3F3F3FULL;
DECLARE_ALIGNED(16, const xmm_reg, ff_pb_80 ) = {0x8080808080808080ULL, 0x8080808080808080ULL};
DECLARE_ALIGNED(8, const uint64_t, ff_pb_81 ) = 0x8181818181818181ULL;
-DECLARE_ALIGNED(8, const uint64_t, ff_pb_A1 ) = 0xA1A1A1A1A1A1A1A1ULL;
+DECLARE_ALIGNED(16, const xmm_reg, ff_pb_A1 ) = {0xA1A1A1A1A1A1A1A1ULL, 0xA1A1A1A1A1A1A1A1ULL};
DECLARE_ALIGNED(16, const xmm_reg, ff_pb_F8 ) = {0xF8F8F8F8F8F8F8F8ULL, 0xF8F8F8F8F8F8F8F8ULL};
DECLARE_ALIGNED(8, const uint64_t, ff_pb_FC ) = 0xFCFCFCFCFCFCFCFCULL;
DECLARE_ALIGNED(16, const xmm_reg, ff_pb_FE ) = {0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL};
@@ -228,7 +228,7 @@ DECLARE_ALIGNED(16, const double, ff_pd_2)[2] = { 2.0, 2.0 };
/***********************************/
/* standard MMX */
-void put_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size)
+void ff_put_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size)
{
const DCTELEM *p;
uint8_t *pix;
@@ -304,7 +304,7 @@ DECLARE_ASM_CONST(8, uint8_t, ff_vector128)[8] =
"movq %%mm3, (%0, %3, 2) \n\t"\
"movq %%mm4, (%0, %1) \n\t"
-void put_signed_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size)
+void ff_put_signed_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size)
{
x86_reg line_skip = line_size;
x86_reg line_skip3;
@@ -320,7 +320,7 @@ void put_signed_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int li
:"memory");
}
-void add_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size)
+void ff_add_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size)
{
const DCTELEM *p;
uint8_t *pix;
@@ -728,35 +728,6 @@ static void h263_v_loop_filter_mmx(uint8_t *src, int stride, int qscale){
}
}
-static inline void transpose4x4(uint8_t *dst, uint8_t *src, int dst_stride, int src_stride){
- __asm__ volatile( //FIXME could save 1 instruction if done as 8x4 ...
- "movd %4, %%mm0 \n\t"
- "movd %5, %%mm1 \n\t"
- "movd %6, %%mm2 \n\t"
- "movd %7, %%mm3 \n\t"
- "punpcklbw %%mm1, %%mm0 \n\t"
- "punpcklbw %%mm3, %%mm2 \n\t"
- "movq %%mm0, %%mm1 \n\t"
- "punpcklwd %%mm2, %%mm0 \n\t"
- "punpckhwd %%mm2, %%mm1 \n\t"
- "movd %%mm0, %0 \n\t"
- "punpckhdq %%mm0, %%mm0 \n\t"
- "movd %%mm0, %1 \n\t"
- "movd %%mm1, %2 \n\t"
- "punpckhdq %%mm1, %%mm1 \n\t"
- "movd %%mm1, %3 \n\t"
-
- : "=m" (*(uint32_t*)(dst + 0*dst_stride)),
- "=m" (*(uint32_t*)(dst + 1*dst_stride)),
- "=m" (*(uint32_t*)(dst + 2*dst_stride)),
- "=m" (*(uint32_t*)(dst + 3*dst_stride))
- : "m" (*(uint32_t*)(src + 0*src_stride)),
- "m" (*(uint32_t*)(src + 1*src_stride)),
- "m" (*(uint32_t*)(src + 2*src_stride)),
- "m" (*(uint32_t*)(src + 3*src_stride))
- );
-}
-
static void h263_h_loop_filter_mmx(uint8_t *src, int stride, int qscale){
if(CONFIG_H263_DECODER || CONFIG_H263_ENCODER) {
const int strength= ff_h263_loop_filter_strength[qscale];
@@ -1820,8 +1791,59 @@ PREFETCH(prefetch_mmx2, prefetcht0)
PREFETCH(prefetch_3dnow, prefetch)
#undef PREFETCH
-#include "h264dsp_mmx.c"
-#include "rv40dsp_mmx.c"
+#include "h264_qpel_mmx.c"
+
+void ff_put_h264_chroma_mc8_mmx_rnd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_put_vc1_chroma_mc8_mmx_nornd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_put_rv40_chroma_mc8_mmx (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_h264_chroma_mc8_mmx2_rnd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_vc1_chroma_mc8_mmx2_nornd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_rv40_chroma_mc8_mmx2 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_h264_chroma_mc8_3dnow_rnd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_vc1_chroma_mc8_3dnow_nornd(uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_rv40_chroma_mc8_3dnow (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+
+void ff_put_h264_chroma_mc4_mmx (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_put_rv40_chroma_mc4_mmx (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_h264_chroma_mc4_mmx2 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_rv40_chroma_mc4_mmx2 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_h264_chroma_mc4_3dnow (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_rv40_chroma_mc4_3dnow (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+
+void ff_put_h264_chroma_mc2_mmx2 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_h264_chroma_mc2_mmx2 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+
+void ff_put_h264_chroma_mc8_ssse3_rnd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_put_vc1_chroma_mc8_ssse3_nornd(uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_put_h264_chroma_mc4_ssse3 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+
+void ff_avg_h264_chroma_mc8_ssse3_rnd (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_vc1_chroma_mc8_ssse3_nornd(uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+void ff_avg_h264_chroma_mc4_ssse3 (uint8_t *dst, uint8_t *src,
+ int stride, int h, int x, int y);
+
/* CAVS specific */
void ff_put_cavs_qpel8_mc00_mmx2(uint8_t *dst, uint8_t *src, int stride) {
@@ -1851,43 +1873,43 @@ void ff_avg_vc1_mspel_mc00_mmx2(uint8_t *dst, const uint8_t *src, int stride, in
static void ff_libmpeg2mmx_idct_put(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_mmx_idct (block);
- put_pixels_clamped_mmx(block, dest, line_size);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
}
static void ff_libmpeg2mmx_idct_add(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_mmx_idct (block);
- add_pixels_clamped_mmx(block, dest, line_size);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
}
static void ff_libmpeg2mmx2_idct_put(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_mmxext_idct (block);
- put_pixels_clamped_mmx(block, dest, line_size);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
}
static void ff_libmpeg2mmx2_idct_add(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_mmxext_idct (block);
- add_pixels_clamped_mmx(block, dest, line_size);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
}
#endif
static void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_idct_xvid_mmx (block);
- put_pixels_clamped_mmx(block, dest, line_size);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
}
static void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_idct_xvid_mmx (block);
- add_pixels_clamped_mmx(block, dest, line_size);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
}
static void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_idct_xvid_mmx2 (block);
- put_pixels_clamped_mmx(block, dest, line_size);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
}
static void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block)
{
ff_idct_xvid_mmx2 (block);
- add_pixels_clamped_mmx(block, dest, line_size);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
}
static void vorbis_inverse_coupling_3dnow(float *mag, float *ang, int blocksize)
@@ -2376,6 +2398,19 @@ static void float_to_int16_sse2(int16_t *dst, const float *src, long len){
);
}
+void ff_vp3_idct_mmx(int16_t *input_data);
+void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block);
+void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block);
+
+void ff_vp3_idct_dc_add_mmx2(uint8_t *dest, int line_size, const DCTELEM *block);
+
+void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
+void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
+
+void ff_vp3_idct_sse2(int16_t *input_data);
+void ff_vp3_idct_put_sse2(uint8_t *dest, int line_size, DCTELEM *block);
+void ff_vp3_idct_add_sse2(uint8_t *dest, int line_size, DCTELEM *block);
+
void ff_float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len);
void ff_float_to_int16_interleave6_3dnow(int16_t *dst, const float **src, int len);
void ff_float_to_int16_interleave6_3dn2(int16_t *dst, const float **src, int len);
@@ -2387,20 +2422,8 @@ int32_t ff_scalarproduct_and_madd_int16_ssse3(int16_t *v1, const int16_t *v2, co
void ff_add_hfyu_median_prediction_mmx2(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top);
int ff_add_hfyu_left_prediction_ssse3(uint8_t *dst, const uint8_t *src, int w, int left);
int ff_add_hfyu_left_prediction_sse4(uint8_t *dst, const uint8_t *src, int w, int left);
-void ff_x264_deblock_v_luma_sse2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
-void ff_x264_deblock_h_luma_sse2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
-void ff_x264_deblock_h_luma_intra_mmxext(uint8_t *pix, int stride, int alpha, int beta);
-void ff_x264_deblock_v_luma_intra_sse2(uint8_t *pix, int stride, int alpha, int beta);
-void ff_x264_deblock_h_luma_intra_sse2(uint8_t *pix, int stride, int alpha, int beta);
-
-#if HAVE_YASM && ARCH_X86_32
-void ff_x264_deblock_v8_luma_intra_mmxext(uint8_t *pix, int stride, int alpha, int beta);
-static void ff_x264_deblock_v_luma_intra_mmxext(uint8_t *pix, int stride, int alpha, int beta)
-{
- ff_x264_deblock_v8_luma_intra_mmxext(pix+0, stride, alpha, beta);
- ff_x264_deblock_v8_luma_intra_mmxext(pix+8, stride, alpha, beta);
-}
-#elif !HAVE_YASM
+
+#if !HAVE_YASM
#define ff_float_to_int16_interleave6_sse(a,b,c) float_to_int16_interleave_misc_sse(a,b,c,6)
#define ff_float_to_int16_interleave6_3dnow(a,b,c) float_to_int16_interleave_misc_3dnow(a,b,c,6)
#define ff_float_to_int16_interleave6_3dn2(a,b,c) float_to_int16_interleave_misc_3dnow(a,b,c,6)
@@ -2500,10 +2523,10 @@ float ff_scalarproduct_float_sse(const float *v1, const float *v2, int order);
void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
{
- int mm_flags = mm_support();
+ int mm_flags = av_get_cpu_flags();
if (avctx->dsp_mask) {
- if (avctx->dsp_mask & FF_MM_FORCE)
+ if (avctx->dsp_mask & AV_CPU_FLAG_FORCE)
mm_flags |= (avctx->dsp_mask & 0xffff);
else
mm_flags &= ~(avctx->dsp_mask & 0xffff);
@@ -2511,20 +2534,20 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
#if 0
av_log(avctx, AV_LOG_INFO, "libavcodec: CPU flags:");
- if (mm_flags & FF_MM_MMX)
+ if (mm_flags & AV_CPU_FLAG_MMX)
av_log(avctx, AV_LOG_INFO, " mmx");
- if (mm_flags & FF_MM_MMX2)
+ if (mm_flags & AV_CPU_FLAG_MMX2)
av_log(avctx, AV_LOG_INFO, " mmx2");
- if (mm_flags & FF_MM_3DNOW)
+ if (mm_flags & AV_CPU_FLAG_3DNOW)
av_log(avctx, AV_LOG_INFO, " 3dnow");
- if (mm_flags & FF_MM_SSE)
+ if (mm_flags & AV_CPU_FLAG_SSE)
av_log(avctx, AV_LOG_INFO, " sse");
- if (mm_flags & FF_MM_SSE2)
+ if (mm_flags & AV_CPU_FLAG_SSE2)
av_log(avctx, AV_LOG_INFO, " sse2");
av_log(avctx, AV_LOG_INFO, "\n");
#endif
- if (mm_flags & FF_MM_MMX) {
+ if (mm_flags & AV_CPU_FLAG_MMX) {
const int idct_algo= avctx->idct_algo;
if(avctx->lowres==0){
@@ -2535,7 +2558,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->idct_permutation_type= FF_SIMPLE_IDCT_PERM;
#if CONFIG_GPL
}else if(idct_algo==FF_IDCT_LIBMPEG2MMX){
- if(mm_flags & FF_MM_MMX2){
+ if(mm_flags & AV_CPU_FLAG_MMX2){
c->idct_put= ff_libmpeg2mmx2_idct_put;
c->idct_add= ff_libmpeg2mmx2_idct_add;
c->idct = ff_mmxext_idct;
@@ -2547,8 +2570,8 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
#endif
}else if((CONFIG_VP3_DECODER || CONFIG_VP5_DECODER || CONFIG_VP6_DECODER) &&
- idct_algo==FF_IDCT_VP3){
- if(mm_flags & FF_MM_SSE2){
+ idct_algo==FF_IDCT_VP3 && HAVE_YASM){
+ if(mm_flags & AV_CPU_FLAG_SSE2){
c->idct_put= ff_vp3_idct_put_sse2;
c->idct_add= ff_vp3_idct_add_sse2;
c->idct = ff_vp3_idct_sse2;
@@ -2562,12 +2585,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}else if(idct_algo==FF_IDCT_CAVS){
c->idct_permutation_type= FF_TRANSPOSE_IDCT_PERM;
}else if(idct_algo==FF_IDCT_XVIDMMX){
- if(mm_flags & FF_MM_SSE2){
+ if(mm_flags & AV_CPU_FLAG_SSE2){
c->idct_put= ff_idct_xvid_sse2_put;
c->idct_add= ff_idct_xvid_sse2_add;
c->idct = ff_idct_xvid_sse2;
c->idct_permutation_type= FF_SSE2_IDCT_PERM;
- }else if(mm_flags & FF_MM_MMX2){
+ }else if(mm_flags & AV_CPU_FLAG_MMX2){
c->idct_put= ff_idct_xvid_mmx2_put;
c->idct_add= ff_idct_xvid_mmx2_add;
c->idct = ff_idct_xvid_mmx2;
@@ -2579,12 +2602,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
}
}
- c->put_pixels_clamped = put_pixels_clamped_mmx;
- c->put_signed_pixels_clamped = put_signed_pixels_clamped_mmx;
- c->add_pixels_clamped = add_pixels_clamped_mmx;
+ c->put_pixels_clamped = ff_put_pixels_clamped_mmx;
+ c->put_signed_pixels_clamped = ff_put_signed_pixels_clamped_mmx;
+ c->add_pixels_clamped = ff_add_pixels_clamped_mmx;
c->clear_block = clear_block_mmx;
c->clear_blocks = clear_blocks_mmx;
- if (mm_flags & FF_MM_SSE){
+ if (mm_flags & AV_CPU_FLAG_SSE){
c->clear_block = clear_block_sse;
c->clear_blocks = clear_blocks_sse;
}
@@ -2615,14 +2638,17 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->h263_v_loop_filter= h263_v_loop_filter_mmx;
c->h263_h_loop_filter= h263_h_loop_filter_mmx;
}
- c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_rnd;
- c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx;
- c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_vc1_chroma_mc8_mmx_nornd;
- c->put_rv40_chroma_pixels_tab[0]= put_rv40_chroma_mc8_mmx;
- c->put_rv40_chroma_pixels_tab[1]= put_rv40_chroma_mc4_mmx;
+#if HAVE_YASM
+ c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_mmx_rnd;
+ c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_mmx;
+ c->put_no_rnd_vc1_chroma_pixels_tab[0]= ff_put_vc1_chroma_mc8_mmx_nornd;
+
+ c->put_rv40_chroma_pixels_tab[0]= ff_put_rv40_chroma_mc8_mmx;
+ c->put_rv40_chroma_pixels_tab[1]= ff_put_rv40_chroma_mc4_mmx;
+#endif
- if (mm_flags & FF_MM_MMX2) {
+ if (mm_flags & AV_CPU_FLAG_MMX2) {
c->prefetch = prefetch_mmx2;
c->put_pixels_tab[0][1] = put_pixels16_x2_mmx2;
@@ -2647,12 +2673,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->avg_pixels_tab[0][3] = avg_pixels16_xy2_mmx2;
c->avg_pixels_tab[1][3] = avg_pixels8_xy2_mmx2;
- if (CONFIG_VP3_DECODER) {
+ if (CONFIG_VP3_DECODER && HAVE_YASM) {
c->vp3_v_loop_filter= ff_vp3_v_loop_filter_mmx2;
c->vp3_h_loop_filter= ff_vp3_h_loop_filter_mmx2;
}
}
- if (CONFIG_VP3_DECODER) {
+ if (CONFIG_VP3_DECODER && HAVE_YASM) {
c->vp3_idct_dc_add = ff_vp3_idct_dc_add_mmx2;
}
@@ -2699,21 +2725,21 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
SET_QPEL_FUNCS(avg_2tap_qpel, 0, 16, mmx2);
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, mmx2);
- c->avg_rv40_chroma_pixels_tab[0]= avg_rv40_chroma_mc8_mmx2;
- c->avg_rv40_chroma_pixels_tab[1]= avg_rv40_chroma_mc4_mmx2;
+#if HAVE_YASM
+ c->avg_rv40_chroma_pixels_tab[0]= ff_avg_rv40_chroma_mc8_mmx2;
+ c->avg_rv40_chroma_pixels_tab[1]= ff_avg_rv40_chroma_mc4_mmx2;
- c->avg_no_rnd_vc1_chroma_pixels_tab[0]= avg_vc1_chroma_mc8_mmx2_nornd;
+ c->avg_no_rnd_vc1_chroma_pixels_tab[0]= ff_avg_vc1_chroma_mc8_mmx2_nornd;
- c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_mmx2_rnd;
- c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_mmx2;
- c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_mmx2;
- c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_mmx2;
+ c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_mmx2_rnd;
+ c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_mmx2;
+ c->avg_h264_chroma_pixels_tab[2]= ff_avg_h264_chroma_mc2_mmx2;
+ c->put_h264_chroma_pixels_tab[2]= ff_put_h264_chroma_mc2_mmx2;
-#if HAVE_YASM
c->add_hfyu_median_prediction = ff_add_hfyu_median_prediction_mmx2;
#endif
#if HAVE_7REGS && HAVE_TEN_OPERANDS
- if( mm_flags&FF_MM_3DNOW )
+ if( mm_flags&AV_CPU_FLAG_3DNOW )
c->add_hfyu_median_prediction = add_hfyu_median_prediction_cmov;
#endif
@@ -2721,7 +2747,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
ff_vc1dsp_init_mmx(c, avctx);
c->add_png_paeth_prediction= add_png_paeth_prediction_mmx2;
- } else if (mm_flags & FF_MM_3DNOW) {
+ } else if (mm_flags & AV_CPU_FLAG_3DNOW) {
c->prefetch = prefetch_3dnow;
c->put_pixels_tab[0][1] = put_pixels16_x2_3dnow;
@@ -2772,11 +2798,15 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
SET_QPEL_FUNCS(avg_2tap_qpel, 0, 16, 3dnow);
SET_QPEL_FUNCS(avg_2tap_qpel, 1, 8, 3dnow);
- c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_3dnow_rnd;
- c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_3dnow;
+#if HAVE_YASM
+ c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_3dnow_rnd;
+ c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_3dnow;
+
+ c->avg_no_rnd_vc1_chroma_pixels_tab[0]= ff_avg_vc1_chroma_mc8_3dnow_nornd;
- c->avg_rv40_chroma_pixels_tab[0]= avg_rv40_chroma_mc8_3dnow;
- c->avg_rv40_chroma_pixels_tab[1]= avg_rv40_chroma_mc4_3dnow;
+ c->avg_rv40_chroma_pixels_tab[0]= ff_avg_rv40_chroma_mc8_3dnow;
+ c->avg_rv40_chroma_pixels_tab[1]= ff_avg_rv40_chroma_mc4_3dnow;
+#endif
}
@@ -2785,13 +2815,13 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->put_h264_qpel_pixels_tab[1][x+y*4] = put_h264_qpel8_mc##x##y##_##CPU;\
c->avg_h264_qpel_pixels_tab[0][x+y*4] = avg_h264_qpel16_mc##x##y##_##CPU;\
c->avg_h264_qpel_pixels_tab[1][x+y*4] = avg_h264_qpel8_mc##x##y##_##CPU;
- if((mm_flags & FF_MM_SSE2) && !(mm_flags & FF_MM_3DNOW)){
+ if((mm_flags & AV_CPU_FLAG_SSE2) && !(mm_flags & AV_CPU_FLAG_3DNOW)){
// these functions are slower than mmx on AMD, but faster on Intel
c->put_pixels_tab[0][0] = put_pixels16_sse2;
c->avg_pixels_tab[0][0] = avg_pixels16_sse2;
H264_QPEL_FUNCS(0, 0, sse2);
}
- if(mm_flags & FF_MM_SSE2){
+ if(mm_flags & AV_CPU_FLAG_SSE2){
H264_QPEL_FUNCS(0, 1, sse2);
H264_QPEL_FUNCS(0, 2, sse2);
H264_QPEL_FUNCS(0, 3, sse2);
@@ -2806,7 +2836,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
H264_QPEL_FUNCS(3, 3, sse2);
}
#if HAVE_SSSE3
- if(mm_flags & FF_MM_SSSE3){
+ if(mm_flags & AV_CPU_FLAG_SSSE3){
H264_QPEL_FUNCS(1, 0, ssse3);
H264_QPEL_FUNCS(1, 1, ssse3);
H264_QPEL_FUNCS(1, 2, ssse3);
@@ -2819,16 +2849,16 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
H264_QPEL_FUNCS(3, 1, ssse3);
H264_QPEL_FUNCS(3, 2, ssse3);
H264_QPEL_FUNCS(3, 3, ssse3);
- c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_vc1_chroma_mc8_ssse3_nornd;
- c->avg_no_rnd_vc1_chroma_pixels_tab[0]= avg_vc1_chroma_mc8_ssse3_nornd;
- c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_ssse3_rnd;
- c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_ssse3_rnd;
- c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_ssse3;
- c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_ssse3;
c->add_png_paeth_prediction= add_png_paeth_prediction_ssse3;
#if HAVE_YASM
+ c->put_no_rnd_vc1_chroma_pixels_tab[0]= ff_put_vc1_chroma_mc8_ssse3_nornd;
+ c->avg_no_rnd_vc1_chroma_pixels_tab[0]= ff_avg_vc1_chroma_mc8_ssse3_nornd;
+ c->put_h264_chroma_pixels_tab[0]= ff_put_h264_chroma_mc8_ssse3_rnd;
+ c->avg_h264_chroma_pixels_tab[0]= ff_avg_h264_chroma_mc8_ssse3_rnd;
+ c->put_h264_chroma_pixels_tab[1]= ff_put_h264_chroma_mc4_ssse3;
+ c->avg_h264_chroma_pixels_tab[1]= ff_avg_h264_chroma_mc4_ssse3;
c->add_hfyu_left_prediction = ff_add_hfyu_left_prediction_ssse3;
- if (mm_flags & FF_MM_SSE4) // not really sse4, just slow on Conroe
+ if (mm_flags & AV_CPU_FLAG_SSE4) // not really sse4, just slow on Conroe
c->add_hfyu_left_prediction = ff_add_hfyu_left_prediction_sse4;
#endif
}
@@ -2838,7 +2868,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
* todo: test if it still causes crashes
*/
#if ARCH_X86_32
- if(mm_flags & FF_MM_3DNOW){
+ if(mm_flags & AV_CPU_FLAG_3DNOW){
c->vorbis_inverse_coupling = vorbis_inverse_coupling_3dnow;
c->vector_fmul = vector_fmul_3dnow;
if(!(avctx->flags & CODEC_FLAG_BITEXACT)){
@@ -2846,14 +2876,14 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
c->float_to_int16_interleave = float_to_int16_interleave_3dnow;
}
}
- if(mm_flags & FF_MM_3DNOWEXT){
+ if(mm_flags & AV_CPU_FLAG_3DNOWEXT){
c->vector_fmul_reverse = vector_fmul_reverse_3dnow2;
c->vector_fmul_window = vector_fmul_window_3dnow2;
if(!(avctx->flags & CODEC_FLAG_BITEXACT)){
c->float_to_int16_interleave = float_to_int16_interleave_3dn2;
}
}
- if(mm_flags & FF_MM_SSE){
+ if(mm_flags & AV_CPU_FLAG_SSE){
c->vorbis_inverse_coupling = vorbis_inverse_coupling_sse;
c->ac3_downmix = ac3_downmix_sse;
c->vector_fmul = vector_fmul_sse;
@@ -2869,9 +2899,9 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
#endif
#endif
}
- if(mm_flags & FF_MM_3DNOW)
+ if(mm_flags & AV_CPU_FLAG_3DNOW)
c->vector_fmul_add = vector_fmul_add_3dnow; // faster than sse
- if(mm_flags & FF_MM_SSE2){
+ if(mm_flags & AV_CPU_FLAG_SSE2){
c->int32_to_float_fmul_scalar = int32_to_float_fmul_scalar_sse2;
c->float_to_int16 = float_to_int16_sse2;
c->float_to_int16_interleave = float_to_int16_interleave_sse2;
@@ -2883,92 +2913,6 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
dsputilenc_init_mmx(c, avctx);
}
-#if CONFIG_H264DSP
-void ff_h264dsp_init_x86(H264DSPContext *c)
-{
- int mm_flags = mm_support();
-
- if (mm_flags & FF_MM_MMX) {
- c->h264_idct_dc_add=
- c->h264_idct_add= ff_h264_idct_add_mmx;
- c->h264_idct8_dc_add=
- c->h264_idct8_add= ff_h264_idct8_add_mmx;
-
- c->h264_idct_add16 = ff_h264_idct_add16_mmx;
- c->h264_idct8_add4 = ff_h264_idct8_add4_mmx;
- c->h264_idct_add8 = ff_h264_idct_add8_mmx;
- c->h264_idct_add16intra= ff_h264_idct_add16intra_mmx;
-
- if (mm_flags & FF_MM_MMX2) {
- c->h264_idct_dc_add= ff_h264_idct_dc_add_mmx2;
- c->h264_idct8_dc_add= ff_h264_idct8_dc_add_mmx2;
- c->h264_idct_add16 = ff_h264_idct_add16_mmx2;
- c->h264_idct8_add4 = ff_h264_idct8_add4_mmx2;
- c->h264_idct_add8 = ff_h264_idct_add8_mmx2;
- c->h264_idct_add16intra= ff_h264_idct_add16intra_mmx2;
-
- c->h264_v_loop_filter_luma= h264_v_loop_filter_luma_mmx2;
- c->h264_h_loop_filter_luma= h264_h_loop_filter_luma_mmx2;
- c->h264_v_loop_filter_chroma= h264_v_loop_filter_chroma_mmx2;
- c->h264_h_loop_filter_chroma= h264_h_loop_filter_chroma_mmx2;
- c->h264_v_loop_filter_chroma_intra= h264_v_loop_filter_chroma_intra_mmx2;
- c->h264_h_loop_filter_chroma_intra= h264_h_loop_filter_chroma_intra_mmx2;
- c->h264_loop_filter_strength= h264_loop_filter_strength_mmx2;
-
- c->weight_h264_pixels_tab[0]= ff_h264_weight_16x16_mmx2;
- c->weight_h264_pixels_tab[1]= ff_h264_weight_16x8_mmx2;
- c->weight_h264_pixels_tab[2]= ff_h264_weight_8x16_mmx2;
- c->weight_h264_pixels_tab[3]= ff_h264_weight_8x8_mmx2;
- c->weight_h264_pixels_tab[4]= ff_h264_weight_8x4_mmx2;
- c->weight_h264_pixels_tab[5]= ff_h264_weight_4x8_mmx2;
- c->weight_h264_pixels_tab[6]= ff_h264_weight_4x4_mmx2;
- c->weight_h264_pixels_tab[7]= ff_h264_weight_4x2_mmx2;
-
- c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_mmx2;
- c->biweight_h264_pixels_tab[1]= ff_h264_biweight_16x8_mmx2;
- c->biweight_h264_pixels_tab[2]= ff_h264_biweight_8x16_mmx2;
- c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_mmx2;
- c->biweight_h264_pixels_tab[4]= ff_h264_biweight_8x4_mmx2;
- c->biweight_h264_pixels_tab[5]= ff_h264_biweight_4x8_mmx2;
- c->biweight_h264_pixels_tab[6]= ff_h264_biweight_4x4_mmx2;
- c->biweight_h264_pixels_tab[7]= ff_h264_biweight_4x2_mmx2;
- }
- if(mm_flags & FF_MM_SSE2){
- c->h264_idct8_add = ff_h264_idct8_add_sse2;
- c->h264_idct8_add4= ff_h264_idct8_add4_sse2;
- }
-
-#if HAVE_YASM
- if (mm_flags & FF_MM_MMX2){
-#if ARCH_X86_32
- c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_mmxext;
- c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_mmxext;
-#endif
- if( mm_flags&FF_MM_SSE2 ){
- c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_sse2;
- c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_sse2;
-#if ARCH_X86_64 || !defined(__ICC) || __ICC > 1110
- c->h264_v_loop_filter_luma = ff_x264_deblock_v_luma_sse2;
- c->h264_h_loop_filter_luma = ff_x264_deblock_h_luma_sse2;
- c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_sse2;
- c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_sse2;
-#endif
-#if CONFIG_GPL
- c->h264_idct_add16 = ff_h264_idct_add16_sse2;
- c->h264_idct_add8 = ff_h264_idct_add8_sse2;
- c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2;
-#endif
- }
- if ( mm_flags&FF_MM_SSSE3 ){
- c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_ssse3;
- c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_ssse3;
- }
- }
-#endif
- }
-}
-#endif /* CONFIG_H264DSP */
-
const char* avcodec_get_current_idct_mmx(AVCodecContext *avctx,DSPContext *c)
{
if (c->idct_put==ff_idct_xvid_mmx_put)
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.h
index 33dafed1f..58256fd40 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/dsputil_mmx.h
@@ -57,7 +57,7 @@ extern const uint64_t ff_pb_7;
extern const uint64_t ff_pb_1F;
extern const uint64_t ff_pb_3F;
extern const uint64_t ff_pb_81;
-extern const uint64_t ff_pb_A1;
+extern const xmm_reg ff_pb_A1;
extern const xmm_reg ff_pb_F8;
extern const uint64_t ff_pb_FC;
extern const xmm_reg ff_pb_FE;
@@ -94,6 +94,35 @@ extern const double ff_pd_2[2];
SBUTTERFLY(a,c,d,dq,q) /* a=aeim d=bfjn */\
SBUTTERFLY(t,b,c,dq,q) /* t=cgko c=dhlp */
+static inline void transpose4x4(uint8_t *dst, uint8_t *src, int dst_stride, int src_stride){
+ __asm__ volatile( //FIXME could save 1 instruction if done as 8x4 ...
+ "movd %4, %%mm0 \n\t"
+ "movd %5, %%mm1 \n\t"
+ "movd %6, %%mm2 \n\t"
+ "movd %7, %%mm3 \n\t"
+ "punpcklbw %%mm1, %%mm0 \n\t"
+ "punpcklbw %%mm3, %%mm2 \n\t"
+ "movq %%mm0, %%mm1 \n\t"
+ "punpcklwd %%mm2, %%mm0 \n\t"
+ "punpckhwd %%mm2, %%mm1 \n\t"
+ "movd %%mm0, %0 \n\t"
+ "punpckhdq %%mm0, %%mm0 \n\t"
+ "movd %%mm0, %1 \n\t"
+ "movd %%mm1, %2 \n\t"
+ "punpckhdq %%mm1, %%mm1 \n\t"
+ "movd %%mm1, %3 \n\t"
+
+ : "=m" (*(uint32_t*)(dst + 0*dst_stride)),
+ "=m" (*(uint32_t*)(dst + 1*dst_stride)),
+ "=m" (*(uint32_t*)(dst + 2*dst_stride)),
+ "=m" (*(uint32_t*)(dst + 3*dst_stride))
+ : "m" (*(uint32_t*)(src + 0*src_stride)),
+ "m" (*(uint32_t*)(src + 1*src_stride)),
+ "m" (*(uint32_t*)(src + 2*src_stride)),
+ "m" (*(uint32_t*)(src + 3*src_stride))
+ );
+}
+
// e,f,g,h can be memory
// out: a,d,t,c
#define TRANSPOSE8x4(a,b,c,d,e,f,g,h,t)\
@@ -158,9 +187,9 @@ extern const double ff_pd_2[2];
void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx);
void dsputil_init_pix_mmx(DSPContext* c, AVCodecContext *avctx);
-void add_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
-void put_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
-void put_signed_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
+void ff_add_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
+void ff_put_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
+void ff_put_signed_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
void ff_put_cavs_qpel8_mc00_mmx2(uint8_t *dst, uint8_t *src, int stride);
void ff_avg_cavs_qpel8_mc00_mmx2(uint8_t *dst, uint8_t *src, int stride);
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c
index eb5c65ecb..771b1e664 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft.c
@@ -16,25 +16,26 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/cpu.h"
#include "libavcodec/dsputil.h"
#include "fft.h"
av_cold void ff_fft_init_mmx(FFTContext *s)
{
#if HAVE_YASM
- int has_vectors = mm_support();
- if (has_vectors & FF_MM_SSE && HAVE_SSE) {
+ int has_vectors = av_get_cpu_flags();
+ if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE) {
/* SSE for P3/P4/K8 */
s->imdct_calc = ff_imdct_calc_sse;
s->imdct_half = ff_imdct_half_sse;
s->fft_permute = ff_fft_permute_sse;
s->fft_calc = ff_fft_calc_sse;
- } else if (has_vectors & FF_MM_3DNOWEXT && HAVE_AMD3DNOWEXT) {
+ } else if (has_vectors & AV_CPU_FLAG_3DNOWEXT && HAVE_AMD3DNOWEXT) {
/* 3DNowEx for K7 */
s->imdct_calc = ff_imdct_calc_3dn2;
s->imdct_half = ff_imdct_half_3dn2;
s->fft_calc = ff_fft_calc_3dn2;
- } else if (has_vectors & FF_MM_3DNOW && HAVE_AMD3DNOW) {
+ } else if (has_vectors & AV_CPU_FLAG_3DNOW && HAVE_AMD3DNOW) {
/* 3DNow! for K6-2/3 */
s->imdct_calc = ff_imdct_calc_3dn;
s->imdct_half = ff_imdct_half_3dn;
@@ -46,8 +47,8 @@ av_cold void ff_fft_init_mmx(FFTContext *s)
#if CONFIG_DCT
av_cold void ff_dct_init_mmx(DCTContext *s)
{
- int has_vectors = mm_support();
- if (has_vectors & FF_MM_SSE && HAVE_SSE)
+ int has_vectors = av_get_cpu_flags();
+ if (has_vectors & AV_CPU_FLAG_SSE && HAVE_SSE)
s->dct32 = ff_dct32_float_sse;
}
#endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft_mmx.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft_mmx.asm
index 31176d6c9..b75ec0cc5 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft_mmx.asm
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/fft_mmx.asm
@@ -532,20 +532,15 @@ INIT_XMM
unpckhps xmm0, xmm2
%endmacro
-%macro PREROTATEW 3 ;addr1, addr2, xmm
- movlps %1, %3
- movhps %2, %3
-%endmacro
-
%macro CMUL 6 ;j, xmm0, xmm1, 3, 4, 5
movaps xmm6, [%4+%1*2]
movaps %2, [%4+%1*2+0x10]
movaps %3, xmm6
movaps xmm7, %2
- mulps xmm6, [%5+%1*1]
- mulps %2, [%6+%1*1]
- mulps %3, [%6+%1*1]
- mulps xmm7, [%5+%1*1]
+ mulps xmm6, [%5+%1]
+ mulps %2, [%6+%1]
+ mulps %3, [%6+%1]
+ mulps xmm7, [%5+%1]
subps %2, xmm6
addps %3, xmm7
%endmacro
@@ -576,8 +571,6 @@ cglobal imdct_half_sse, 3,7,8; FFTContext *s, FFTSample *output, const FFTSample
%define rrevtab r10
%define rtcos r11
%define rtsin r12
- push r10
- push r11
push r12
push r13
push r14
@@ -620,21 +613,25 @@ cglobal imdct_half_sse, 3,7,8; FFTContext *s, FFTSample *output, const FFTSample
PREROTATER r4, r3, r2, rtcos, rtsin
%ifdef ARCH_X86_64
- movzx r5, word [rrevtab+r4*1-4]
- movzx r6, word [rrevtab+r4*1-2]
- movzx r13, word [rrevtab+r3*1]
- movzx r14, word [rrevtab+r3*1+2]
- PREROTATEW [r1+r5 *8], [r1+r6 *8], xmm0
- PREROTATEW [r1+r13*8], [r1+r14*8], xmm1
+ movzx r5, word [rrevtab+r4-4]
+ movzx r6, word [rrevtab+r4-2]
+ movzx r13, word [rrevtab+r3]
+ movzx r14, word [rrevtab+r3+2]
+ movlps [r1+r5 *8], xmm0
+ movhps [r1+r6 *8], xmm0
+ movlps [r1+r13*8], xmm1
+ movhps [r1+r14*8], xmm1
add r4, 4
%else
mov r6, [esp]
- movzx r5, word [r6+r4*1-4]
- movzx r4, word [r6+r4*1-2]
- PREROTATEW [r1+r5*8], [r1+r4*8], xmm0
- movzx r5, word [r6+r3*1]
- movzx r4, word [r6+r3*1+2]
- PREROTATEW [r1+r5*8], [r1+r4*8], xmm1
+ movzx r5, word [r6+r4-4]
+ movzx r4, word [r6+r4-2]
+ movlps [r1+r5*8], xmm0
+ movhps [r1+r4*8], xmm0
+ movzx r5, word [r6+r3]
+ movzx r4, word [r6+r3+2]
+ movlps [r1+r5*8], xmm1
+ movhps [r1+r4*8], xmm1
%endif
sub r3, 4
jns .pre
@@ -663,8 +660,6 @@ cglobal imdct_half_sse, 3,7,8; FFTContext *s, FFTSample *output, const FFTSample
pop r14
pop r13
pop r12
- pop r11
- pop r10
%else
add esp, 12
%endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_chromamc.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_chromamc.asm
new file mode 100644
index 000000000..6df82cc52
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_chromamc.asm
@@ -0,0 +1,671 @@
+;******************************************************************************
+;* MMX/SSSE3-optimized functions for H264 chroma MC
+;* Copyright (c) 2005 Zoltan Hidvegi <hzoli -a- hzoli -d- com>,
+;* 2005-2008 Loren Merritt
+;*
+;* This file is part of FFmpeg.
+;*
+;* FFmpeg is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* FFmpeg 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
+;* Lesser General Public License for more details.
+;*
+;* You should have received a copy of the GNU Lesser General Public
+;* License along with FFmpeg; if not, write to the Free Software
+;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;******************************************************************************
+
+%include "x86inc.asm"
+%include "x86util.asm"
+
+SECTION_RODATA
+
+rnd_rv40_2d_tbl: times 4 dw 0
+ times 4 dw 16
+ times 4 dw 32
+ times 4 dw 16
+ times 4 dw 32
+ times 4 dw 28
+ times 4 dw 32
+ times 4 dw 28
+ times 4 dw 0
+ times 4 dw 32
+ times 4 dw 16
+ times 4 dw 32
+ times 4 dw 32
+ times 4 dw 28
+ times 4 dw 32
+ times 4 dw 28
+rnd_rv40_1d_tbl: times 4 dw 0
+ times 4 dw 2
+ times 4 dw 4
+ times 4 dw 2
+ times 4 dw 4
+ times 4 dw 3
+ times 4 dw 4
+ times 4 dw 3
+ times 4 dw 0
+ times 4 dw 4
+ times 4 dw 2
+ times 4 dw 4
+ times 4 dw 4
+ times 4 dw 3
+ times 4 dw 4
+ times 4 dw 3
+
+cextern pw_3
+cextern pw_4
+cextern pw_8
+cextern pw_28
+cextern pw_32
+cextern pw_64
+
+SECTION .text
+
+%macro mv0_pixels_mc8 0
+ lea r4, [r2*2 ]
+.next4rows
+ movq mm0, [r1 ]
+ movq mm1, [r1+r2]
+ CHROMAMC_AVG mm0, [r0 ]
+ CHROMAMC_AVG mm1, [r0+r2]
+ movq [r0 ], mm0
+ movq [r0+r2], mm1
+ add r0, r4
+ add r1, r4
+ movq mm0, [r1 ]
+ movq mm1, [r1+r2]
+ CHROMAMC_AVG mm0, [r0 ]
+ CHROMAMC_AVG mm1, [r0+r2]
+ add r1, r4
+ movq [r0 ], mm0
+ movq [r0+r2], mm1
+ add r0, r4
+ sub r3d, 4
+ jne .next4rows
+%endmacro
+
+%macro chroma_mc8_mmx_func 3
+; put/avg_h264_chroma_mc8_mmx_*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/,
+; int stride, int h, int mx, int my)
+cglobal %1_%2_chroma_mc8_%3, 6, 7, 0
+%ifdef ARCH_X86_64
+ movsxd r2, r2d
+%endif
+ mov r6d, r5d
+ or r6d, r4d
+ jne .at_least_one_non_zero
+ ; mx == 0 AND my == 0 - no filter needed
+ mv0_pixels_mc8
+ REP_RET
+
+.at_least_one_non_zero
+%ifidn %2, rv40
+%ifdef PIC
+%define rnd_1d_rv40 r11
+%define rnd_2d_rv40 r11
+%else ; no-PIC
+%define rnd_1d_rv40 rnd_rv40_1d_tbl
+%define rnd_2d_rv40 rnd_rv40_2d_tbl
+%endif
+%ifdef ARCH_X86_64
+ mov r10, r5
+ and r10, 6 ; &~1 for mx/my=[0,7]
+ lea r10, [r10*4+r4]
+ sar r10d, 1
+%define rnd_bias r10
+%define dest_reg r0
+%else ; x86-32
+ mov r0, r5
+ and r0, 6 ; &~1 for mx/my=[0,7]
+ lea r0, [r0*4+r4]
+ sar r0d, 1
+%define rnd_bias r0
+%define dest_reg r5
+%endif
+%else ; vc1, h264
+%define rnd_bias 0
+%define dest_reg r0
+%endif
+
+ test r5d, r5d
+ mov r6, 1
+ je .my_is_zero
+ test r4d, r4d
+ mov r6, r2 ; dxy = x ? 1 : stride
+ jne .both_non_zero
+.my_is_zero
+ ; mx == 0 XOR my == 0 - 1 dimensional filter only
+ or r4d, r5d ; x + y
+
+%ifidn %2, rv40
+%ifdef PIC
+ lea r11, [rnd_rv40_1d_tbl]
+%endif
+%ifndef ARCH_X86_64
+ mov r5, r0m
+%endif
+%endif
+
+ movd m5, r4d
+ movq m4, [pw_8]
+ movq m6, [rnd_1d_%2+rnd_bias*8] ; mm6 = rnd >> 3
+ punpcklwd m5, m5
+ punpckldq m5, m5 ; mm5 = B = x
+ pxor m7, m7
+ psubw m4, m5 ; mm4 = A = 8-x
+
+.next1drow
+ movq m0, [r1 ] ; mm0 = src[0..7]
+ movq m2, [r1+r6] ; mm1 = src[1..8]
+
+ movq m1, m0
+ movq m3, m2
+ punpcklbw m0, m7
+ punpckhbw m1, m7
+ punpcklbw m2, m7
+ punpckhbw m3, m7
+ pmullw m0, m4 ; [mm0,mm1] = A * src[0..7]
+ pmullw m1, m4
+ pmullw m2, m5 ; [mm2,mm3] = B * src[1..8]
+ pmullw m3, m5
+
+ paddw m0, m6
+ paddw m1, m6
+ paddw m0, m2
+ paddw m1, m3
+ psrlw m0, 3
+ psrlw m1, 3
+ packuswb m0, m1
+ CHROMAMC_AVG m0, [dest_reg]
+ movq [dest_reg], m0 ; dst[0..7] = (A * src[0..7] + B * src[1..8] + (rnd >> 3)) >> 3
+
+ add dest_reg, r2
+ add r1, r2
+ dec r3d
+ jne .next1drow
+ REP_RET
+
+.both_non_zero ; general case, bilinear
+ movd m4, r4d ; x
+ movd m6, r5d ; y
+%ifidn %2, rv40
+%ifdef PIC
+ lea r11, [rnd_rv40_2d_tbl]
+%endif
+%ifndef ARCH_X86_64
+ mov r5, r0m
+%endif
+%endif
+ mov r6, rsp ; backup stack pointer
+ and rsp, ~(mmsize-1) ; align stack
+ sub rsp, 16 ; AA and DD
+
+ punpcklwd m4, m4
+ punpcklwd m6, m6
+ punpckldq m4, m4 ; mm4 = x words
+ punpckldq m6, m6 ; mm6 = y words
+ movq m5, m4
+ pmullw m4, m6 ; mm4 = x * y
+ psllw m5, 3
+ psllw m6, 3
+ movq m7, m5
+ paddw m7, m6
+ movq [rsp+8], m4 ; DD = x * y
+ psubw m5, m4 ; mm5 = B = 8x - xy
+ psubw m6, m4 ; mm6 = C = 8y - xy
+ paddw m4, [pw_64]
+ psubw m4, m7 ; mm4 = A = xy - (8x+8y) + 64
+ pxor m7, m7
+ movq [rsp ], m4
+
+ movq m0, [r1 ] ; mm0 = src[0..7]
+ movq m1, [r1+1] ; mm1 = src[1..8]
+.next2drow
+ add r1, r2
+
+ movq m2, m0
+ movq m3, m1
+ punpckhbw m0, m7
+ punpcklbw m1, m7
+ punpcklbw m2, m7
+ punpckhbw m3, m7
+ pmullw m0, [rsp]
+ pmullw m2, [rsp]
+ pmullw m1, m5
+ pmullw m3, m5
+ paddw m2, m1 ; mm2 = A * src[0..3] + B * src[1..4]
+ paddw m3, m0 ; mm3 = A * src[4..7] + B * src[5..8]
+
+ movq m0, [r1]
+ movq m1, m0
+ punpcklbw m0, m7
+ punpckhbw m1, m7
+ pmullw m0, m6
+ pmullw m1, m6
+ paddw m2, m0
+ paddw m3, m1 ; [mm2,mm3] += C * src[0..7]
+
+ movq m1, [r1+1]
+ movq m0, m1
+ movq m4, m1
+ punpcklbw m0, m7
+ punpckhbw m4, m7
+ pmullw m0, [rsp+8]
+ pmullw m4, [rsp+8]
+ paddw m2, m0
+ paddw m3, m4 ; [mm2,mm3] += D * src[1..8]
+ movq m0, [r1]
+
+ paddw m2, [rnd_2d_%2+rnd_bias*8]
+ paddw m3, [rnd_2d_%2+rnd_bias*8]
+ psrlw m2, 6
+ psrlw m3, 6
+ packuswb m2, m3
+ CHROMAMC_AVG m2, [dest_reg]
+ movq [dest_reg], m2 ; dst[0..7] = ([mm2,mm3] + rnd) >> 6
+
+ add dest_reg, r2
+ dec r3d
+ jne .next2drow
+ mov rsp, r6 ; restore stack pointer
+ RET
+%endmacro
+
+%macro chroma_mc4_mmx_func 3
+cglobal %1_%2_chroma_mc4_%3, 6, 6, 0
+%ifdef ARCH_X86_64
+ movsxd r2, r2d
+%endif
+ pxor m7, m7
+ movd m2, r4d ; x
+ movd m3, r5d ; y
+ movq m4, [pw_8]
+ movq m5, [pw_8]
+ punpcklwd m2, m2
+ punpcklwd m3, m3
+ punpcklwd m2, m2
+ punpcklwd m3, m3
+ psubw m4, m2
+ psubw m5, m3
+
+%ifidn %2, rv40
+%ifdef PIC
+ lea r11, [rnd_rv40_2d_tbl]
+%define rnd_2d_rv40 r11
+%else
+%define rnd_2d_rv40 rnd_rv40_2d_tbl
+%endif
+ and r5, 6 ; &~1 for mx/my=[0,7]
+ lea r5, [r5*4+r4]
+ sar r5d, 1
+%define rnd_bias r5
+%else ; vc1, h264
+%define rnd_bias 0
+%endif
+
+ movd m0, [r1 ]
+ movd m6, [r1+1]
+ add r1, r2
+ punpcklbw m0, m7
+ punpcklbw m6, m7
+ pmullw m0, m4
+ pmullw m6, m2
+ paddw m6, m0
+
+.next2rows
+ movd m0, [r1 ]
+ movd m1, [r1+1]
+ add r1, r2
+ punpcklbw m0, m7
+ punpcklbw m1, m7
+ pmullw m0, m4
+ pmullw m1, m2
+ paddw m1, m0
+ movq m0, m1
+
+ pmullw m6, m5
+ pmullw m1, m3
+ paddw m6, [rnd_2d_%2+rnd_bias*8]
+ paddw m1, m6
+ psrlw m1, 6
+ packuswb m1, m1
+ CHROMAMC_AVG4 m1, m6, [r0]
+ movd [r0], m1
+ add r0, r2
+
+ movd m6, [r1 ]
+ movd m1, [r1+1]
+ add r1, r2
+ punpcklbw m6, m7
+ punpcklbw m1, m7
+ pmullw m6, m4
+ pmullw m1, m2
+ paddw m1, m6
+ movq m6, m1
+ pmullw m0, m5
+ pmullw m1, m3
+ paddw m0, [rnd_2d_%2+rnd_bias*8]
+ paddw m1, m0
+ psrlw m1, 6
+ packuswb m1, m1
+ CHROMAMC_AVG4 m1, m0, [r0]
+ movd [r0], m1
+ add r0, r2
+ sub r3d, 2
+ jnz .next2rows
+ REP_RET
+%endmacro
+
+%macro chroma_mc2_mmx_func 3
+cglobal %1_%2_chroma_mc2_%3, 6, 7, 0
+%ifdef ARCH_X86_64
+ movsxd r2, r2d
+%endif
+
+ mov r6d, r4d
+ shl r4d, 16
+ sub r4d, r6d
+ add r4d, 8
+ imul r5d, r4d ; x*y<<16 | y*(8-x)
+ shl r4d, 3
+ sub r4d, r5d ; x*(8-y)<<16 | (8-x)*(8-y)
+
+ movd m5, r4d
+ movd m6, r5d
+ punpckldq m5, m5 ; mm5 = {A,B,A,B}
+ punpckldq m6, m6 ; mm6 = {C,D,C,D}
+ pxor m7, m7
+ movd m2, [r1]
+ punpcklbw m2, m7
+ pshufw m2, m2, 0x94 ; mm0 = src[0,1,1,2]
+
+.nextrow
+ add r1, r2
+ movq m1, m2
+ pmaddwd m1, m5 ; mm1 = A * src[0,1] + B * src[1,2]
+ movd m0, [r1]
+ punpcklbw m0, m7
+ pshufw m0, m0, 0x94 ; mm0 = src[0,1,1,2]
+ movq m2, m0
+ pmaddwd m0, m6
+ paddw m1, [rnd_2d_%2]
+ paddw m1, m0 ; mm1 += C * src[0,1] + D * src[1,2]
+ psrlw m1, 6
+ packssdw m1, m7
+ packuswb m1, m7
+ CHROMAMC_AVG4 m1, m3, [r0]
+ movd r5d, m1
+ mov [r0], r5w
+ add r0, r2
+ sub r3d, 1
+ jnz .nextrow
+ REP_RET
+%endmacro
+
+%define rnd_1d_h264 pw_4
+%define rnd_2d_h264 pw_32
+%define rnd_1d_vc1 pw_3
+%define rnd_2d_vc1 pw_28
+
+%macro NOTHING 2-3
+%endmacro
+%macro DIRECT_AVG 2
+ PAVG %1, %2
+%endmacro
+%macro COPY_AVG 3
+ movd %2, %3
+ PAVG %1, %2
+%endmacro
+
+INIT_MMX
+%define CHROMAMC_AVG NOTHING
+%define CHROMAMC_AVG4 NOTHING
+chroma_mc8_mmx_func put, h264, mmx_rnd
+chroma_mc8_mmx_func put, vc1, mmx_nornd
+chroma_mc8_mmx_func put, rv40, mmx
+chroma_mc4_mmx_func put, h264, mmx
+chroma_mc4_mmx_func put, rv40, mmx
+chroma_mc2_mmx_func put, h264, mmx2
+
+%define CHROMAMC_AVG DIRECT_AVG
+%define CHROMAMC_AVG4 COPY_AVG
+%define PAVG pavgb
+chroma_mc8_mmx_func avg, h264, mmx2_rnd
+chroma_mc8_mmx_func avg, vc1, mmx2_nornd
+chroma_mc8_mmx_func avg, rv40, mmx2
+chroma_mc4_mmx_func avg, h264, mmx2
+chroma_mc4_mmx_func avg, rv40, mmx2
+chroma_mc2_mmx_func avg, h264, mmx2
+
+%define PAVG pavgusb
+chroma_mc8_mmx_func avg, h264, 3dnow_rnd
+chroma_mc8_mmx_func avg, vc1, 3dnow_nornd
+chroma_mc8_mmx_func avg, rv40, 3dnow
+chroma_mc4_mmx_func avg, h264, 3dnow
+chroma_mc4_mmx_func avg, rv40, 3dnow
+
+%macro chroma_mc8_ssse3_func 3
+cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
+%ifdef ARCH_X86_64
+ movsxd r2, r2d
+%endif
+ mov r6d, r5d
+ or r6d, r4d
+ jne .at_least_one_non_zero
+ ; mx == 0 AND my == 0 - no filter needed
+ mv0_pixels_mc8
+ REP_RET
+
+.at_least_one_non_zero
+ test r5d, r5d
+ je .my_is_zero
+ test r4d, r4d
+ je .mx_is_zero
+
+ ; general case, bilinear
+ mov r6d, r4d
+ shl r4d, 8
+ sub r4, r6
+ add r4, 8 ; x*288+8 = x<<8 | (8-x)
+ mov r6, 8
+ sub r6d, r5d
+ imul r6, r4 ; (8-y)*(x*255+8) = (8-y)*x<<8 | (8-y)*(8-x)
+ imul r4d, r5d ; y *(x*255+8) = y *x<<8 | y *(8-x)
+
+ movd m7, r6d
+ movd m6, r4d
+ movdqa m5, [rnd_2d_%2]
+ pshuflw m7, m7, 0
+ pshuflw m6, m6, 0
+ movlhps m7, m7
+ movlhps m6, m6
+
+ movq m0, [r1 ]
+ movq m1, [r1 +1]
+ punpcklbw m0, m1
+ add r1, r2
+.next2rows
+ movq m1, [r1 ]
+ movq m2, [r1 +1]
+ movq m3, [r1+r2 ]
+ movq m4, [r1+r2+1]
+ lea r1, [r1+r2*2]
+ punpcklbw m1, m2
+ punpcklbw m3, m4
+ movdqa m2, m1
+ movdqa m4, m3
+ pmaddubsw m0, m7
+ pmaddubsw m1, m6
+ pmaddubsw m2, m7
+ pmaddubsw m3, m6
+ paddw m0, m5
+ paddw m2, m5
+ paddw m1, m0
+ paddw m3, m2
+ movdqa m0, m4
+ psrlw m1, 6
+ psrlw m3, 6
+%ifidn %1, avg
+ movq m2, [r0 ]
+ movhps m2, [r0+r2]
+%endif
+ packuswb m1, m3
+ CHROMAMC_AVG m1, m2
+ movq [r0 ], m1
+ movhps [r0+r2], m1
+ sub r3d, 2
+ lea r0, [r0+r2*2]
+ jg .next2rows
+ REP_RET
+
+.my_is_zero
+ mov r5d, r4d
+ shl r4d, 8
+ add r4, 8
+ sub r4, r5 ; 255*x+8 = x<<8 | (8-x)
+ movd m7, r4d
+ movq m6, [rnd_1d_%2]
+ pshuflw m7, m7, 0
+ movlhps m6, m6
+ movlhps m7, m7
+
+.next2xrows
+ movq m0, [r1 ]
+ movq m1, [r1 +1]
+ movq m2, [r1+r2 ]
+ movq m3, [r1+r2+1]
+ punpcklbw m0, m1
+ punpcklbw m2, m3
+ pmaddubsw m0, m7
+ pmaddubsw m2, m7
+%ifidn %1, avg
+ movq m4, [r0 ]
+ movhps m4, [r0+r2]
+%endif
+ paddw m0, m6
+ paddw m2, m6
+ psrlw m0, 3
+ psrlw m2, 3
+ packuswb m0, m2
+ CHROMAMC_AVG m0, m4
+ movq [r0 ], m0
+ movhps [r0+r2], m0
+ sub r3d, 2
+ lea r0, [r0+r2*2]
+ lea r1, [r1+r2*2]
+ jg .next2xrows
+ REP_RET
+
+.mx_is_zero
+ mov r4d, r5d
+ shl r5d, 8
+ add r5, 8
+ sub r5, r4 ; 255*y+8 = y<<8 | (8-y)
+ movd m7, r5d
+ movq m6, [rnd_1d_%2]
+ pshuflw m7, m7, 0
+ movlhps m6, m6
+ movlhps m7, m7
+
+.next2yrows
+ movq m0, [r1 ]
+ movq m1, [r1+r2 ]
+ movdqa m2, m1
+ movq m3, [r1+r2*2]
+ punpcklbw m0, m1
+ punpcklbw m2, m3
+ pmaddubsw m0, m7
+ pmaddubsw m2, m7
+%ifidn %1, avg
+ movq m4, [r0 ]
+ movhps m4, [r0+r2]
+%endif
+ paddw m0, m6
+ paddw m2, m6
+ psrlw m0, 3
+ psrlw m2, 3
+ packuswb m0, m2
+ CHROMAMC_AVG m0, m4
+ movq [r0 ], m0
+ movhps [r0+r2], m0
+ sub r3d, 2
+ lea r0, [r0+r2*2]
+ lea r1, [r1+r2*2]
+ jg .next2yrows
+ REP_RET
+%endmacro
+
+%macro chroma_mc4_ssse3_func 3
+cglobal %1_%2_chroma_mc4_%3, 6, 7, 0
+%ifdef ARCH_X86_64
+ movsxd r2, r2d
+%endif
+ mov r6, r4
+ shl r4d, 8
+ sub r4d, r6d
+ add r4d, 8 ; x*288+8
+ mov r6, 8
+ sub r6d, r5d
+ imul r6d, r4d ; (8-y)*(x*255+8) = (8-y)*x<<8 | (8-y)*(8-x)
+ imul r4d, r5d ; y *(x*255+8) = y *x<<8 | y *(8-x)
+
+ movd m7, r6d
+ movd m6, r4d
+ movq m5, [pw_32]
+ pshufw m7, m7, 0
+ pshufw m6, m6, 0
+
+ movd m0, [r1 ]
+ punpcklbw m0, [r1 +1]
+ add r1, r2
+.next2rows
+ movd m1, [r1 ]
+ movd m3, [r1+r2 ]
+ punpcklbw m1, [r1 +1]
+ punpcklbw m3, [r1+r2+1]
+ lea r1, [r1+r2*2]
+ movq m2, m1
+ movq m4, m3
+ pmaddubsw m0, m7
+ pmaddubsw m1, m6
+ pmaddubsw m2, m7
+ pmaddubsw m3, m6
+ paddw m0, m5
+ paddw m2, m5
+ paddw m1, m0
+ paddw m3, m2
+ movq m0, m4
+ psrlw m1, 6
+ psrlw m3, 6
+ packuswb m1, m1
+ packuswb m3, m3
+ CHROMAMC_AVG m1, [r0 ]
+ CHROMAMC_AVG m3, [r0+r2]
+ movd [r0 ], m1
+ movd [r0+r2], m3
+ sub r3d, 2
+ lea r0, [r0+r2*2]
+ jg .next2rows
+ REP_RET
+%endmacro
+
+%define CHROMAMC_AVG NOTHING
+INIT_XMM
+chroma_mc8_ssse3_func put, h264, ssse3_rnd
+chroma_mc8_ssse3_func put, vc1, ssse3_nornd
+INIT_MMX
+chroma_mc4_ssse3_func put, h264, ssse3
+
+%define CHROMAMC_AVG DIRECT_AVG
+%define PAVG pavgb
+INIT_XMM
+chroma_mc8_ssse3_func avg, h264, ssse3_rnd
+chroma_mc8_ssse3_func avg, vc1, ssse3_nornd
+INIT_MMX
+chroma_mc4_ssse3_func avg, h264, ssse3
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_deblock_sse2.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_deblock.asm
index a9e6dea3d..fb9cacfd1 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_deblock_sse2.asm
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_deblock.asm
@@ -4,6 +4,7 @@
;* Copyright (C) 2005-2008 x264 project
;*
;* Authors: Loren Merritt <lorenm@u.washington.edu>
+;* Jason Garrett-Glaser <darkshikari@gmail.com>
;*
;* This file is part of FFmpeg.
;*
@@ -23,12 +24,14 @@
;******************************************************************************
%include "x86inc.asm"
+%include "x86util.asm"
SECTION_RODATA
-pb_00: times 16 db 0x00
-pb_01: times 16 db 0x01
-pb_03: times 16 db 0x03
-pb_a1: times 16 db 0xa1
+
+cextern pb_0
+cextern pb_1
+cextern pb_3
+cextern pb_A1
SECTION .text
@@ -104,7 +107,7 @@ SECTION .text
movd %8, m5
%endmacro
-%macro SBUTTERFLY 4
+%macro SBUTTERFLY3 4
movq %4, %2
punpckl%1 %2, %3
punpckh%1 %4, %3
@@ -120,19 +123,19 @@ SECTION .text
movq m4, %5
movq m5, %6
movq m6, %7
- SBUTTERFLY bw, m0, m1, m7
- SBUTTERFLY bw, m2, m3, m1
- SBUTTERFLY bw, m4, m5, m3
+ SBUTTERFLY3 bw, m0, m1, m7
+ SBUTTERFLY3 bw, m2, m3, m1
+ SBUTTERFLY3 bw, m4, m5, m3
movq [%9+0x10], m1
- SBUTTERFLY bw, m6, %8, m5
- SBUTTERFLY wd, m0, m2, m1
- SBUTTERFLY wd, m4, m6, m2
+ SBUTTERFLY3 bw, m6, %8, m5
+ SBUTTERFLY3 wd, m0, m2, m1
+ SBUTTERFLY3 wd, m4, m6, m2
punpckhdq m0, m4
movq [%9+0x00], m0
- SBUTTERFLY wd, m7, [%9+0x10], m6
- SBUTTERFLY wd, m3, m5, m4
- SBUTTERFLY dq, m7, m3, m0
- SBUTTERFLY dq, m1, m2, m5
+ SBUTTERFLY3 wd, m7, [%9+0x10], m6
+ SBUTTERFLY3 wd, m3, m5, m4
+ SBUTTERFLY3 dq, m7, m3, m0
+ SBUTTERFLY3 dq, m1, m2, m5
punpckldq m6, m4
movq [%9+0x10], m1
movq [%9+0x20], m5
@@ -151,25 +154,25 @@ SECTION .text
movq m4, %5
movq m5, %6
movq m6, %7
- SBUTTERFLY bw, m0, m1, m7
- SBUTTERFLY bw, m2, m3, m1
- SBUTTERFLY bw, m4, m5, m3
- SBUTTERFLY bw, m6, %8, m5
+ SBUTTERFLY3 bw, m0, m1, m7
+ SBUTTERFLY3 bw, m2, m3, m1
+ SBUTTERFLY3 bw, m4, m5, m3
+ SBUTTERFLY3 bw, m6, %8, m5
movq %9, m3
- SBUTTERFLY wd, m0, m2, m3
- SBUTTERFLY wd, m4, m6, m2
- SBUTTERFLY wd, m7, m1, m6
+ SBUTTERFLY3 wd, m0, m2, m3
+ SBUTTERFLY3 wd, m4, m6, m2
+ SBUTTERFLY3 wd, m7, m1, m6
movq %11, m2
movq m2, %9
- SBUTTERFLY wd, m2, m5, m1
- SBUTTERFLY dq, m0, m4, m5
- SBUTTERFLY dq, m7, m2, m4
+ SBUTTERFLY3 wd, m2, m5, m1
+ SBUTTERFLY3 dq, m0, m4, m5
+ SBUTTERFLY3 dq, m7, m2, m4
movq %9, m0
movq %10, m5
movq %13, m7
movq %14, m4
- SBUTTERFLY dq, m3, %11, m0
- SBUTTERFLY dq, m6, m1, m5
+ SBUTTERFLY3 dq, m3, %11, m0
+ SBUTTERFLY3 dq, m6, m1, m5
movq %11, m3
movq %12, m0
movq %15, m6
@@ -235,19 +238,19 @@ SECTION .text
; clobbers: m0,3-6
%macro DEBLOCK_P0_Q0 0
mova m5, m1
- pxor m5, m2 ; p0^q0
- pand m5, [pb_01] ; (p0^q0)&1
+ pxor m5, m2 ; p0^q0
+ pand m5, [pb_1] ; (p0^q0)&1
pcmpeqb m4, m4
pxor m3, m4
- pavgb m3, m0 ; (p1 - q1 + 256)>>1
- pavgb m3, [pb_03] ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2
+ pavgb m3, m0 ; (p1 - q1 + 256)>>1
+ pavgb m3, [pb_3] ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2
pxor m4, m1
- pavgb m4, m2 ; (q0 - p0 + 256)>>1
+ pavgb m4, m2 ; (q0 - p0 + 256)>>1
pavgb m3, m5
- paddusb m3, m4 ; d+128+33
- mova m6, [pb_a1]
+ paddusb m3, m4 ; d+128+33
+ mova m6, [pb_A1]
psubusb m6, m3
- psubusb m3, [pb_a1]
+ psubusb m3, [pb_A1]
pminub m6, m7
pminub m3, m7
psubusb m1, m6
@@ -263,10 +266,10 @@ SECTION .text
%macro LUMA_Q1 6
mova %6, m1
pavgb %6, m2
- pavgb %2, %6 ; avg(p2,avg(p0,q0))
+ pavgb %2, %6 ; avg(p2,avg(p0,q0))
pxor %6, %3
- pand %6, [pb_01] ; (p2^avg(p0,q0))&1
- psubusb %2, %6 ; (p2+((p0+q0+1)>>1))>>1
+ pand %6, [pb_1] ; (p2^avg(p0,q0))&1
+ psubusb %2, %6 ; (p2+((p0+q0+1)>>1))>>1
mova %6, %1
psubusb %6, %5
paddusb %5, %1
@@ -495,6 +498,8 @@ cglobal x264_deblock_h_luma_%1, 0,5
RET
%endmacro ; DEBLOCK_LUMA
+INIT_MMX
+DEBLOCK_LUMA mmxext, v8, 8
INIT_XMM
DEBLOCK_LUMA sse2, v, 16
@@ -517,9 +522,9 @@ DEBLOCK_LUMA sse2, v, 16
mova t3, t2
mova t4, t2
psrlw t2, 1
- pavgb t2, mpb_00
+ pavgb t2, mpb_0
pxor t2, t0
- pand t2, mpb_01
+ pand t2, mpb_1
psubb t0, t2 ; p1' = (p2+p1+p0+q0+2)/4;
mova t1, p2
@@ -528,21 +533,21 @@ DEBLOCK_LUMA sse2, v, 16
psubb t2, q1
paddb t3, t3
psubb t3, t2 ; p2+2*p1+2*p0+2*q0+q1
- pand t2, mpb_01
+ pand t2, mpb_1
psubb t1, t2
pavgb t1, p1
pavgb t1, t5 ; (((p2+q1)/2 + p1+1)/2 + (p0+q0+1)/2 + 1)/2
psrlw t3, 2
- pavgb t3, mpb_00
+ pavgb t3, mpb_0
pxor t3, t1
- pand t3, mpb_01
+ pand t3, mpb_1
psubb t1, t3 ; p0'a = (p2+2*p1+2*p0+2*q0+q1+4)/8
mova t3, p0
mova t2, p0
pxor t3, q1
pavgb t2, q1
- pand t3, mpb_01
+ pand t3, mpb_1
psubb t2, t3
pavgb t2, p1 ; p0'b = (2*p1+p0+q0+2)/4
@@ -562,9 +567,9 @@ DEBLOCK_LUMA sse2, v, 16
paddb t2, t2
paddb t2, t4 ; 2*p3+3*p2+p1+p0+q0
psrlw t2, 2
- pavgb t2, mpb_00
+ pavgb t2, mpb_0
pxor t2, t1
- pand t2, mpb_01
+ pand t2, mpb_1
psubb t1, t2 ; p2' = (2*p3+3*p2+p1+p0+q0+4)/8
pxor t0, p1
@@ -603,8 +608,8 @@ DEBLOCK_LUMA sse2, v, 16
%define mask0 m12
%define mask1p m13
%define mask1q [rsp-24]
- %define mpb_00 m14
- %define mpb_01 m15
+ %define mpb_0 m14
+ %define mpb_1 m15
%else
%define spill(x) [esp+16*x+((stack_offset+4)&15)]
%define p2 [r4+r1]
@@ -614,8 +619,8 @@ DEBLOCK_LUMA sse2, v, 16
%define mask0 spill(2)
%define mask1p spill(3)
%define mask1q spill(4)
- %define mpb_00 [pb_00]
- %define mpb_01 [pb_01]
+ %define mpb_0 [pb_0]
+ %define mpb_1 [pb_1]
%endif
;-----------------------------------------------------------------------------
@@ -638,12 +643,12 @@ cglobal x264_deblock_%2_luma_intra_%1, 4,6,16
mova q0, [r0]
mova q1, [r0+r1]
%ifdef ARCH_X86_64
- pxor mpb_00, mpb_00
- mova mpb_01, [pb_01]
+ pxor mpb_0, mpb_0
+ mova mpb_1, [pb_1]
LOAD_MASK r2d, r3d, t5 ; m5=beta-1, t5=alpha-1, m7=mask0
SWAP 7, 12 ; m12=mask0
- pavgb t5, mpb_00
- pavgb t5, mpb_01 ; alpha/4+1
+ pavgb t5, mpb_0
+ pavgb t5, mpb_1 ; alpha/4+1
movdqa p2, [r4+r1]
movdqa q2, [r0+2*r1]
DIFF_GT2 p0, q0, t5, t0, t3 ; t0 = |p0-q0| > alpha/4+1
@@ -658,8 +663,8 @@ cglobal x264_deblock_%2_luma_intra_%1, 4,6,16
LOAD_MASK r2d, r3d, t5 ; m5=beta-1, t5=alpha-1, m7=mask0
mova m4, t5
mova mask0, m7
- pavgb m4, [pb_00]
- pavgb m4, [pb_01] ; alpha/4+1
+ pavgb m4, [pb_0]
+ pavgb m4, [pb_1] ; alpha/4+1
DIFF_GT2 p0, q0, m4, m6, m7 ; m6 = |p0-q0| > alpha/4+1
pand m6, mask0
DIFF_GT2 p0, p2, m5, m4, m7 ; m4 = |p2-p0| > beta-1
@@ -759,3 +764,126 @@ DEBLOCK_LUMA_INTRA sse2, v
INIT_MMX
DEBLOCK_LUMA_INTRA mmxext, v8
%endif
+
+
+
+INIT_MMX
+
+%macro CHROMA_V_START 0
+ dec r2d ; alpha-1
+ dec r3d ; beta-1
+ mov t5, r0
+ sub t5, r1
+ sub t5, r1
+%endmacro
+
+%macro CHROMA_H_START 0
+ dec r2d
+ dec r3d
+ sub r0, 2
+ lea t6, [r1*3]
+ mov t5, r0
+ add r0, t6
+%endmacro
+
+%define t5 r5
+%define t6 r6
+
+;-----------------------------------------------------------------------------
+; void x264_deblock_v_chroma( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 )
+;-----------------------------------------------------------------------------
+cglobal x264_deblock_v_chroma_mmxext, 5,6
+ CHROMA_V_START
+ movq m0, [t5]
+ movq m1, [t5+r1]
+ movq m2, [r0]
+ movq m3, [r0+r1]
+ call x264_chroma_inter_body_mmxext
+ movq [t5+r1], m1
+ movq [r0], m2
+ RET
+
+;-----------------------------------------------------------------------------
+; void x264_deblock_h_chroma( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 )
+;-----------------------------------------------------------------------------
+cglobal x264_deblock_h_chroma_mmxext, 5,7
+%ifdef ARCH_X86_64
+ %define buf0 [rsp-24]
+ %define buf1 [rsp-16]
+%else
+ %define buf0 r0m
+ %define buf1 r2m
+%endif
+ CHROMA_H_START
+ TRANSPOSE4x8_LOAD PASS8ROWS(t5, r0, r1, t6)
+ movq buf0, m0
+ movq buf1, m3
+ call x264_chroma_inter_body_mmxext
+ movq m0, buf0
+ movq m3, buf1
+ TRANSPOSE8x4_STORE PASS8ROWS(t5, r0, r1, t6)
+ RET
+
+ALIGN 16
+x264_chroma_inter_body_mmxext:
+ LOAD_MASK r2d, r3d
+ movd m6, [r4] ; tc0
+ punpcklbw m6, m6
+ pand m7, m6
+ DEBLOCK_P0_Q0
+ ret
+
+
+
+; in: %1=p0 %2=p1 %3=q1
+; out: p0 = (p0 + q1 + 2*p1 + 2) >> 2
+%macro CHROMA_INTRA_P0 3
+ movq m4, %1
+ pxor m4, %3
+ pand m4, [pb_1] ; m4 = (p0^q1)&1
+ pavgb %1, %3
+ psubusb %1, m4
+ pavgb %1, %2 ; dst = avg(p1, avg(p0,q1) - ((p0^q1)&1))
+%endmacro
+
+%define t5 r4
+%define t6 r5
+
+;-----------------------------------------------------------------------------
+; void x264_deblock_v_chroma_intra( uint8_t *pix, int stride, int alpha, int beta )
+;-----------------------------------------------------------------------------
+cglobal x264_deblock_v_chroma_intra_mmxext, 4,5
+ CHROMA_V_START
+ movq m0, [t5]
+ movq m1, [t5+r1]
+ movq m2, [r0]
+ movq m3, [r0+r1]
+ call x264_chroma_intra_body_mmxext
+ movq [t5+r1], m1
+ movq [r0], m2
+ RET
+
+;-----------------------------------------------------------------------------
+; void x264_deblock_h_chroma_intra( uint8_t *pix, int stride, int alpha, int beta )
+;-----------------------------------------------------------------------------
+cglobal x264_deblock_h_chroma_intra_mmxext, 4,6
+ CHROMA_H_START
+ TRANSPOSE4x8_LOAD PASS8ROWS(t5, r0, r1, t6)
+ call x264_chroma_intra_body_mmxext
+ TRANSPOSE8x4_STORE PASS8ROWS(t5, r0, r1, t6)
+ RET
+
+ALIGN 16
+x264_chroma_intra_body_mmxext:
+ LOAD_MASK r2d, r3d
+ movq m5, m1
+ movq m6, m2
+ CHROMA_INTRA_P0 m1, m0, m3
+ CHROMA_INTRA_P0 m2, m3, m0
+ psubb m1, m5
+ psubb m2, m6
+ pand m1, m7
+ pand m2, m7
+ paddb m1, m5
+ paddb m2, m6
+ ret
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct.asm
new file mode 100644
index 000000000..3311ab559
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct.asm
@@ -0,0 +1,865 @@
+;*****************************************************************************
+;* MMX/SSE2-optimized H.264 iDCT
+;*****************************************************************************
+;* Copyright (C) 2004-2005 Michael Niedermayer, Loren Merritt
+;* Copyright (C) 2003-2008 x264 project
+;*
+;* Authors: Laurent Aimar <fenrir@via.ecp.fr>
+;* Loren Merritt <lorenm@u.washington.edu>
+;* Holger Lubitz <hal@duncan.ol.sub.de>
+;* Min Chen <chenm001.163.com>
+;*
+;* This file is part of FFmpeg.
+;*
+;* FFmpeg is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* FFmpeg 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
+;* Lesser General Public License for more details.
+;*
+;* You should have received a copy of the GNU Lesser General Public
+;* License along with FFmpeg; if not, write to the Free Software
+;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;*****************************************************************************
+
+%include "x86inc.asm"
+%include "x86util.asm"
+
+SECTION_RODATA
+
+; FIXME this table is a duplicate from h264data.h, and will be removed once the tables from, h264 have been split
+scan8_mem: db 4+1*8, 5+1*8, 4+2*8, 5+2*8
+ db 6+1*8, 7+1*8, 6+2*8, 7+2*8
+ db 4+3*8, 5+3*8, 4+4*8, 5+4*8
+ db 6+3*8, 7+3*8, 6+4*8, 7+4*8
+ db 1+1*8, 2+1*8
+ db 1+2*8, 2+2*8
+ db 1+4*8, 2+4*8
+ db 1+5*8, 2+5*8
+%ifdef PIC
+%define scan8 r11
+%else
+%define scan8 scan8_mem
+%endif
+
+cextern pw_32
+
+SECTION .text
+
+; %1=uint8_t *dst, %2=int16_t *block, %3=int stride
+%macro IDCT4_ADD 3
+ ; Load dct coeffs
+ movq m0, [%2]
+ movq m1, [%2+8]
+ movq m2, [%2+16]
+ movq m3, [%2+24]
+
+ IDCT4_1D 0, 1, 2, 3, 4, 5
+ mova m6, [pw_32]
+ TRANSPOSE4x4W 0, 1, 2, 3, 4
+ paddw m0, m6
+ IDCT4_1D 0, 1, 2, 3, 4, 5
+ pxor m7, m7
+
+ STORE_DIFFx2 m0, m1, m4, m5, m7, 6, %1, %3
+ lea %1, [%1+%3*2]
+ STORE_DIFFx2 m2, m3, m4, m5, m7, 6, %1, %3
+%endmacro
+
+INIT_MMX
+; ff_h264_idct_add_mmx(uint8_t *dst, int16_t *block, int stride)
+cglobal h264_idct_add_mmx, 3, 3, 0
+ IDCT4_ADD r0, r1, r2
+ RET
+
+%macro IDCT8_1D 2
+ mova m4, m5
+ mova m0, m1
+ psraw m4, 1
+ psraw m1, 1
+ paddw m4, m5
+ paddw m1, m0
+ paddw m4, m7
+ paddw m1, m5
+ psubw m4, m0
+ paddw m1, m3
+
+ psubw m0, m3
+ psubw m5, m3
+ paddw m0, m7
+ psubw m5, m7
+ psraw m3, 1
+ psraw m7, 1
+ psubw m0, m3
+ psubw m5, m7
+
+ mova m3, m4
+ mova m7, m1
+ psraw m1, 2
+ psraw m3, 2
+ paddw m3, m0
+ psraw m0, 2
+ paddw m1, m5
+ psraw m5, 2
+ psubw m0, m4
+ psubw m7, m5
+
+ mova m4, m2
+ mova m5, m6
+ psraw m4, 1
+ psraw m6, 1
+ psubw m4, m5
+ paddw m6, m2
+
+ mova m2, %1
+ mova m5, %2
+ SUMSUB_BA m5, m2
+ SUMSUB_BA m6, m5
+ SUMSUB_BA m4, m2
+ SUMSUB_BA m7, m6
+ SUMSUB_BA m0, m4
+ SUMSUB_BA m3, m2
+ SUMSUB_BA m1, m5
+ SWAP 7, 6, 4, 5, 2, 3, 1, 0 ; 70315246 -> 01234567
+%endmacro
+
+%macro IDCT8_1D_FULL 1
+ mova m7, [%1+112]
+ mova m6, [%1+ 96]
+ mova m5, [%1+ 80]
+ mova m3, [%1+ 48]
+ mova m2, [%1+ 32]
+ mova m1, [%1+ 16]
+ IDCT8_1D [%1], [%1+ 64]
+%endmacro
+
+; %1=int16_t *block, %2=int16_t *dstblock
+%macro IDCT8_ADD_MMX_START 2
+ IDCT8_1D_FULL %1
+ mova [%1], m7
+ TRANSPOSE4x4W 0, 1, 2, 3, 7
+ mova m7, [%1]
+ mova [%2 ], m0
+ mova [%2+16], m1
+ mova [%2+32], m2
+ mova [%2+48], m3
+ TRANSPOSE4x4W 4, 5, 6, 7, 3
+ mova [%2+ 8], m4
+ mova [%2+24], m5
+ mova [%2+40], m6
+ mova [%2+56], m7
+%endmacro
+
+; %1=uint8_t *dst, %2=int16_t *block, %3=int stride
+%macro IDCT8_ADD_MMX_END 3
+ IDCT8_1D_FULL %2
+ mova [%2 ], m5
+ mova [%2+16], m6
+ mova [%2+32], m7
+
+ pxor m7, m7
+ STORE_DIFFx2 m0, m1, m5, m6, m7, 6, %1, %3
+ lea %1, [%1+%3*2]
+ STORE_DIFFx2 m2, m3, m5, m6, m7, 6, %1, %3
+ mova m0, [%2 ]
+ mova m1, [%2+16]
+ mova m2, [%2+32]
+ lea %1, [%1+%3*2]
+ STORE_DIFFx2 m4, m0, m5, m6, m7, 6, %1, %3
+ lea %1, [%1+%3*2]
+ STORE_DIFFx2 m1, m2, m5, m6, m7, 6, %1, %3
+%endmacro
+
+INIT_MMX
+; ff_h264_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
+cglobal h264_idct8_add_mmx, 3, 4, 0
+ %assign pad 128+4-(stack_offset&7)
+ SUB rsp, pad
+
+ add word [r1], 32
+ IDCT8_ADD_MMX_START r1 , rsp
+ IDCT8_ADD_MMX_START r1+8, rsp+64
+ lea r3, [r0+4]
+ IDCT8_ADD_MMX_END r0 , rsp, r2
+ IDCT8_ADD_MMX_END r3 , rsp+8, r2
+
+ ADD rsp, pad
+ RET
+
+; %1=uint8_t *dst, %2=int16_t *block, %3=int stride
+%macro IDCT8_ADD_SSE 4
+ IDCT8_1D_FULL %2
+%ifdef ARCH_X86_64
+ TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8
+%else
+ TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [%2], [%2+16]
+%endif
+ paddw m0, [pw_32]
+
+%ifndef ARCH_X86_64
+ mova [%2 ], m0
+ mova [%2+16], m4
+ IDCT8_1D [%2], [%2+ 16]
+ mova [%2 ], m6
+ mova [%2+16], m7
+%else
+ SWAP 0, 8
+ SWAP 4, 9
+ IDCT8_1D m8, m9
+ SWAP 6, 8
+ SWAP 7, 9
+%endif
+
+ pxor m7, m7
+ lea %4, [%3*3]
+ STORE_DIFF m0, m6, m7, [%1 ]
+ STORE_DIFF m1, m6, m7, [%1+%3 ]
+ STORE_DIFF m2, m6, m7, [%1+%3*2]
+ STORE_DIFF m3, m6, m7, [%1+%4 ]
+%ifndef ARCH_X86_64
+ mova m0, [%2 ]
+ mova m1, [%2+16]
+%else
+ SWAP 0, 8
+ SWAP 1, 9
+%endif
+ lea %1, [%1+%3*4]
+ STORE_DIFF m4, m6, m7, [%1 ]
+ STORE_DIFF m5, m6, m7, [%1+%3 ]
+ STORE_DIFF m0, m6, m7, [%1+%3*2]
+ STORE_DIFF m1, m6, m7, [%1+%4 ]
+%endmacro
+
+INIT_XMM
+; ff_h264_idct8_add_sse2(uint8_t *dst, int16_t *block, int stride)
+cglobal h264_idct8_add_sse2, 3, 4, 10
+ IDCT8_ADD_SSE r0, r1, r2, r3
+ RET
+
+%macro DC_ADD_MMX2_INIT 2-3
+%if %0 == 2
+ movsx %1, word [%1]
+ add %1, 32
+ sar %1, 6
+ movd m0, %1
+ lea %1, [%2*3]
+%else
+ add %3, 32
+ sar %3, 6
+ movd m0, %3
+ lea %3, [%2*3]
+%endif
+ pshufw m0, m0, 0
+ pxor m1, m1
+ psubw m1, m0
+ packuswb m0, m0
+ packuswb m1, m1
+%endmacro
+
+%macro DC_ADD_MMX2_OP 3-4
+ %1 m2, [%2 ]
+ %1 m3, [%2+%3 ]
+ %1 m4, [%2+%3*2]
+ %1 m5, [%2+%4 ]
+ paddusb m2, m0
+ paddusb m3, m0
+ paddusb m4, m0
+ paddusb m5, m0
+ psubusb m2, m1
+ psubusb m3, m1
+ psubusb m4, m1
+ psubusb m5, m1
+ %1 [%2 ], m2
+ %1 [%2+%3 ], m3
+ %1 [%2+%3*2], m4
+ %1 [%2+%4 ], m5
+%endmacro
+
+INIT_MMX
+; ff_h264_idct_dc_add_mmx2(uint8_t *dst, int16_t *block, int stride)
+cglobal h264_idct_dc_add_mmx2, 3, 3, 0
+ DC_ADD_MMX2_INIT r1, r2
+ DC_ADD_MMX2_OP movh, r0, r2, r1
+ RET
+
+; ff_h264_idct8_dc_add_mmx2(uint8_t *dst, int16_t *block, int stride)
+cglobal h264_idct8_dc_add_mmx2, 3, 3, 0
+ DC_ADD_MMX2_INIT r1, r2
+ DC_ADD_MMX2_OP mova, r0, r2, r1
+ lea r0, [r0+r2*4]
+ DC_ADD_MMX2_OP mova, r0, r2, r1
+ RET
+
+; ff_h264_idct_add16_mmx(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add16_mmx, 5, 7, 0
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .skipblock
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6]
+ IDCT4_ADD r6, r2, r3
+.skipblock
+ inc r5
+ add r2, 32
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+
+; ff_h264_idct8_add4_mmx(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct8_add4_mmx, 5, 7, 0
+ %assign pad 128+4-(stack_offset&7)
+ SUB rsp, pad
+
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .skipblock
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6]
+ add word [r2], 32
+ IDCT8_ADD_MMX_START r2 , rsp
+ IDCT8_ADD_MMX_START r2+8, rsp+64
+ IDCT8_ADD_MMX_END r6 , rsp, r3
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6+4]
+ IDCT8_ADD_MMX_END r6 , rsp+8, r3
+.skipblock
+ add r5, 4
+ add r2, 128
+ cmp r5, 16
+ jl .nextblock
+ ADD rsp, pad
+ RET
+
+; ff_h264_idct_add16_mmx2(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add16_mmx2, 5, 7, 0
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .skipblock
+ cmp r6, 1
+ jnz .no_dc
+ movsx r6, word [r2]
+ test r6, r6
+ jz .no_dc
+ DC_ADD_MMX2_INIT r2, r3, r6
+%ifdef ARCH_X86_64
+%define dst_reg r10
+%define dst_regd r10d
+%else
+%define dst_reg r1
+%define dst_regd r1d
+%endif
+ mov dst_regd, dword [r1+r5*4]
+ lea dst_reg, [r0+dst_reg]
+ DC_ADD_MMX2_OP movh, dst_reg, r3, r6
+%ifndef ARCH_X86_64
+ mov r1, r1m
+%endif
+ inc r5
+ add r2, 32
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+.no_dc
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6]
+ IDCT4_ADD r6, r2, r3
+.skipblock
+ inc r5
+ add r2, 32
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+
+; ff_h264_idct_add16intra_mmx(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add16intra_mmx, 5, 7, 0
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ or r6w, word [r2]
+ test r6, r6
+ jz .skipblock
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6]
+ IDCT4_ADD r6, r2, r3
+.skipblock
+ inc r5
+ add r2, 32
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+
+; ff_h264_idct_add16intra_mmx2(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add16intra_mmx2, 5, 7, 0
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .try_dc
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6]
+ IDCT4_ADD r6, r2, r3
+ inc r5
+ add r2, 32
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+.try_dc
+ movsx r6, word [r2]
+ test r6, r6
+ jz .skipblock
+ DC_ADD_MMX2_INIT r2, r3, r6
+%ifdef ARCH_X86_64
+%define dst_reg r10
+%define dst_regd r10d
+%else
+%define dst_reg r1
+%define dst_regd r1d
+%endif
+ mov dst_regd, dword [r1+r5*4]
+ lea dst_reg, [r0+dst_reg]
+ DC_ADD_MMX2_OP movh, dst_reg, r3, r6
+%ifndef ARCH_X86_64
+ mov r1, r1m
+%endif
+.skipblock
+ inc r5
+ add r2, 32
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+
+; ff_h264_idct8_add4_mmx2(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct8_add4_mmx2, 5, 7, 0
+ %assign pad 128+4-(stack_offset&7)
+ SUB rsp, pad
+
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .skipblock
+ cmp r6, 1
+ jnz .no_dc
+ movsx r6, word [r2]
+ test r6, r6
+ jz .no_dc
+ DC_ADD_MMX2_INIT r2, r3, r6
+%ifdef ARCH_X86_64
+%define dst_reg r10
+%define dst_regd r10d
+%else
+%define dst_reg r1
+%define dst_regd r1d
+%endif
+ mov dst_regd, dword [r1+r5*4]
+ lea dst_reg, [r0+dst_reg]
+ DC_ADD_MMX2_OP mova, dst_reg, r3, r6
+ lea dst_reg, [dst_reg+r3*4]
+ DC_ADD_MMX2_OP mova, dst_reg, r3, r6
+%ifndef ARCH_X86_64
+ mov r1, r1m
+%endif
+ add r5, 4
+ add r2, 128
+ cmp r5, 16
+ jl .nextblock
+
+ ADD rsp, pad
+ RET
+.no_dc
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6]
+ add word [r2], 32
+ IDCT8_ADD_MMX_START r2 , rsp
+ IDCT8_ADD_MMX_START r2+8, rsp+64
+ IDCT8_ADD_MMX_END r6 , rsp, r3
+ mov r6d, dword [r1+r5*4]
+ lea r6, [r0+r6+4]
+ IDCT8_ADD_MMX_END r6 , rsp+8, r3
+.skipblock
+ add r5, 4
+ add r2, 128
+ cmp r5, 16
+ jl .nextblock
+
+ ADD rsp, pad
+ RET
+
+INIT_XMM
+; ff_h264_idct8_add4_sse2(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct8_add4_sse2, 5, 7, 10
+ xor r5, r5
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .skipblock
+ cmp r6, 1
+ jnz .no_dc
+ movsx r6, word [r2]
+ test r6, r6
+ jz .no_dc
+INIT_MMX
+ DC_ADD_MMX2_INIT r2, r3, r6
+%ifdef ARCH_X86_64
+%define dst_reg r10
+%define dst_regd r10d
+%else
+%define dst_reg r1
+%define dst_regd r1d
+%endif
+ mov dst_regd, dword [r1+r5*4]
+ lea dst_reg, [r0+dst_reg]
+ DC_ADD_MMX2_OP mova, dst_reg, r3, r6
+ lea dst_reg, [dst_reg+r3*4]
+ DC_ADD_MMX2_OP mova, dst_reg, r3, r6
+%ifndef ARCH_X86_64
+ mov r1, r1m
+%endif
+ add r5, 4
+ add r2, 128
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+.no_dc
+INIT_XMM
+ mov dst_regd, dword [r1+r5*4]
+ lea dst_reg, [r0+dst_reg]
+ IDCT8_ADD_SSE dst_reg, r2, r3, r6
+%ifndef ARCH_X86_64
+ mov r1, r1m
+%endif
+.skipblock
+ add r5, 4
+ add r2, 128
+ cmp r5, 16
+ jl .nextblock
+ REP_RET
+
+INIT_MMX
+h264_idct_add8_mmx_plane:
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ or r6w, word [r2]
+ test r6, r6
+ jz .skipblock
+%ifdef ARCH_X86_64
+ mov r0d, dword [r1+r5*4]
+ add r0, [r10]
+%else
+ mov r0, r1m ; XXX r1m here is actually r0m of the calling func
+ mov r0, [r0]
+ add r0, dword [r1+r5*4]
+%endif
+ IDCT4_ADD r0, r2, r3
+.skipblock
+ inc r5
+ add r2, 32
+ test r5, 3
+ jnz .nextblock
+ rep ret
+
+; ff_h264_idct_add8_mmx(uint8_t **dest, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add8_mmx, 5, 7, 0
+ mov r5, 16
+ add r2, 512
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+%ifdef ARCH_X86_64
+ mov r10, r0
+%endif
+ call h264_idct_add8_mmx_plane
+%ifdef ARCH_X86_64
+ add r10, gprsize
+%else
+ add r0mp, gprsize
+%endif
+ call h264_idct_add8_mmx_plane
+ RET
+
+h264_idct_add8_mmx2_plane
+.nextblock
+ movzx r6, byte [scan8+r5]
+ movzx r6, byte [r4+r6]
+ test r6, r6
+ jz .try_dc
+%ifdef ARCH_X86_64
+ mov r0d, dword [r1+r5*4]
+ add r0, [r10]
+%else
+ mov r0, r1m ; XXX r1m here is actually r0m of the calling func
+ mov r0, [r0]
+ add r0, dword [r1+r5*4]
+%endif
+ IDCT4_ADD r0, r2, r3
+ inc r5
+ add r2, 32
+ test r5, 3
+ jnz .nextblock
+ rep ret
+.try_dc
+ movsx r6, word [r2]
+ test r6, r6
+ jz .skipblock
+ DC_ADD_MMX2_INIT r2, r3, r6
+%ifdef ARCH_X86_64
+ mov r0d, dword [r1+r5*4]
+ add r0, [r10]
+%else
+ mov r0, r1m ; XXX r1m here is actually r0m of the calling func
+ mov r0, [r0]
+ add r0, dword [r1+r5*4]
+%endif
+ DC_ADD_MMX2_OP movh, r0, r3, r6
+.skipblock
+ inc r5
+ add r2, 32
+ test r5, 3
+ jnz .nextblock
+ rep ret
+
+; ff_h264_idct_add8_mmx2(uint8_t **dest, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add8_mmx2, 5, 7, 0
+ mov r5, 16
+ add r2, 512
+%ifdef ARCH_X86_64
+ mov r10, r0
+%endif
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+ call h264_idct_add8_mmx2_plane
+%ifdef ARCH_X86_64
+ add r10, gprsize
+%else
+ add r0mp, gprsize
+%endif
+ call h264_idct_add8_mmx2_plane
+ RET
+
+INIT_MMX
+; r0 = uint8_t *dst, r2 = int16_t *block, r3 = int stride, r6=clobbered
+h264_idct_dc_add8_mmx2:
+ movd m0, [r2 ] ; 0 0 X D
+ punpcklwd m0, [r2+32] ; x X d D
+ paddsw m0, [pw_32]
+ psraw m0, 6
+ punpcklwd m0, m0 ; d d D D
+ pxor m1, m1 ; 0 0 0 0
+ psubw m1, m0 ; -d-d-D-D
+ packuswb m0, m1 ; -d-d-D-D d d D D
+ pshufw m1, m0, 0xFA ; -d-d-d-d-D-D-D-D
+ punpcklwd m0, m0 ; d d d d D D D D
+ lea r6, [r3*3]
+ DC_ADD_MMX2_OP movq, r0, r3, r6
+ ret
+
+ALIGN 16
+INIT_XMM
+; r0 = uint8_t *dst (clobbered), r2 = int16_t *block, r3 = int stride
+x264_add8x4_idct_sse2:
+ movq m0, [r2+ 0]
+ movq m1, [r2+ 8]
+ movq m2, [r2+16]
+ movq m3, [r2+24]
+ movhps m0, [r2+32]
+ movhps m1, [r2+40]
+ movhps m2, [r2+48]
+ movhps m3, [r2+56]
+ IDCT4_1D 0,1,2,3,4,5
+ TRANSPOSE2x4x4W 0,1,2,3,4
+ paddw m0, [pw_32]
+ IDCT4_1D 0,1,2,3,4,5
+ pxor m7, m7
+ STORE_DIFFx2 m0, m1, m4, m5, m7, 6, r0, r3
+ lea r0, [r0+r3*2]
+ STORE_DIFFx2 m2, m3, m4, m5, m7, 6, r0, r3
+ ret
+
+%macro add16_sse2_cycle 2
+ movzx r0, word [r4+%2]
+ test r0, r0
+ jz .cycle%1end
+ mov r0d, dword [r1+%1*8]
+%ifdef ARCH_X86_64
+ add r0, r10
+%else
+ add r0, r0m
+%endif
+ call x264_add8x4_idct_sse2
+.cycle%1end
+%if %1 < 7
+ add r2, 64
+%endif
+%endmacro
+
+; ff_h264_idct_add16_sse2(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add16_sse2, 5, 5, 8
+%ifdef ARCH_X86_64
+ mov r10, r0
+%endif
+ ; unrolling of the loop leads to an average performance gain of
+ ; 20-25%
+ add16_sse2_cycle 0, 0xc
+ add16_sse2_cycle 1, 0x14
+ add16_sse2_cycle 2, 0xe
+ add16_sse2_cycle 3, 0x16
+ add16_sse2_cycle 4, 0x1c
+ add16_sse2_cycle 5, 0x24
+ add16_sse2_cycle 6, 0x1e
+ add16_sse2_cycle 7, 0x26
+ RET
+
+; ff_h264_idct_add16intra_sse2(uint8_t *dst, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add16intra_sse2, 5, 7, 8
+ xor r5, r5
+%ifdef ARCH_X86_64
+ mov r10, r0
+%endif
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+.next2blocks
+ movzx r0, byte [scan8+r5]
+ movzx r0, word [r4+r0]
+ test r0, r0
+ jz .try_dc
+ mov r0d, dword [r1+r5*4]
+%ifdef ARCH_X86_64
+ add r0, r10
+%else
+ add r0, r0m
+%endif
+ call x264_add8x4_idct_sse2
+ add r5, 2
+ add r2, 64
+ cmp r5, 16
+ jl .next2blocks
+ REP_RET
+.try_dc
+ movsx r0, word [r2 ]
+ or r0w, word [r2+32]
+ jz .skip2blocks
+ mov r0d, dword [r1+r5*4]
+%ifdef ARCH_X86_64
+ add r0, r10
+%else
+ add r0, r0m
+%endif
+ call h264_idct_dc_add8_mmx2
+.skip2blocks
+ add r5, 2
+ add r2, 64
+ cmp r5, 16
+ jl .next2blocks
+ REP_RET
+
+h264_idct_add8_sse2_plane:
+.next2blocks
+ movzx r0, byte [scan8+r5]
+ movzx r0, word [r4+r0]
+ test r0, r0
+ jz .try_dc
+%ifdef ARCH_X86_64
+ mov r0d, dword [r1+r5*4]
+ add r0, [r10]
+%else
+ mov r0, r1m ; XXX r1m here is actually r0m of the calling func
+ mov r0, [r0]
+ add r0, dword [r1+r5*4]
+%endif
+ call x264_add8x4_idct_sse2
+ add r5, 2
+ add r2, 64
+ test r5, 3
+ jnz .next2blocks
+ rep ret
+.try_dc
+ movsx r0, word [r2 ]
+ or r0w, word [r2+32]
+ jz .skip2blocks
+%ifdef ARCH_X86_64
+ mov r0d, dword [r1+r5*4]
+ add r0, [r10]
+%else
+ mov r0, r1m ; XXX r1m here is actually r0m of the calling func
+ mov r0, [r0]
+ add r0, dword [r1+r5*4]
+%endif
+ call h264_idct_dc_add8_mmx2
+.skip2blocks
+ add r5, 2
+ add r2, 64
+ test r5, 3
+ jnz .next2blocks
+ rep ret
+
+; ff_h264_idct_add8_sse2(uint8_t **dest, const int *block_offset,
+; DCTELEM *block, int stride, const uint8_t nnzc[6*8])
+cglobal h264_idct_add8_sse2, 5, 7, 8
+ mov r5, 16
+ add r2, 512
+%ifdef PIC
+ lea r11, [scan8_mem]
+%endif
+%ifdef ARCH_X86_64
+ mov r10, r0
+%endif
+ call h264_idct_add8_sse2_plane
+%ifdef ARCH_X86_64
+ add r10, gprsize
+%else
+ add r0mp, gprsize
+%endif
+ call h264_idct_add8_sse2_plane
+ RET
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct_sse2.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct_sse2.asm
deleted file mode 100644
index 86c1e66c7..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_idct_sse2.asm
+++ /dev/null
@@ -1,54 +0,0 @@
-;*****************************************************************************
-;* SSE2-optimized H.264 iDCT
-;*****************************************************************************
-;* Copyright (C) 2003-2008 x264 project
-;*
-;* Authors: Laurent Aimar <fenrir@via.ecp.fr>
-;* Loren Merritt <lorenm@u.washington.edu>
-;* Holger Lubitz <hal@duncan.ol.sub.de>
-;* Min Chen <chenm001.163.com>
-;*
-;* This program 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 2 of the License, or
-;* (at your option) any later version.
-;*
-;* This program 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, write to the Free Software
-;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
-;*****************************************************************************
-
-%include "x86inc.asm"
-%include "x86util.asm"
-
-SECTION_RODATA
-pw_32: times 8 dw 32
-
-SECTION .text
-
-INIT_XMM
-cglobal x264_add8x4_idct_sse2, 3,3,8
- movq m0, [r1+ 0]
- movq m1, [r1+ 8]
- movq m2, [r1+16]
- movq m3, [r1+24]
- movhps m0, [r1+32]
- movhps m1, [r1+40]
- movhps m2, [r1+48]
- movhps m3, [r1+56]
- IDCT4_1D 0,1,2,3,4,5
- TRANSPOSE2x4x4W 0,1,2,3,4
- paddw m0, [pw_32]
- IDCT4_1D 0,1,2,3,4,5
- pxor m7, m7
- STORE_DIFF m0, m4, m7, [r0]
- STORE_DIFF m1, m4, m7, [r0+r2]
- lea r0, [r0+r2*2]
- STORE_DIFF m2, m4, m7, [r0]
- STORE_DIFF m3, m4, m7, [r0+r2]
- RET
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_intrapred_init.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_intrapred_init.c
new file mode 100644
index 000000000..e01a17bd6
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_intrapred_init.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2010 Jason Garrett-Glaser
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "libavutil/cpu.h"
+#include "libavcodec/h264pred.h"
+
+void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
+void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
+void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
+void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride);
+void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
+void ff_pred16x16_dc_mmxext (uint8_t *src, int stride);
+void ff_pred16x16_dc_sse2 (uint8_t *src, int stride);
+void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride);
+void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride);
+void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride);
+void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride);
+void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride);
+void ff_pred8x8_vertical_mmx (uint8_t *src, int stride);
+void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride);
+void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride);
+void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride);
+void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride);
+void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
+void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
+void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
+void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
+void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
+void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
+void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
+void ff_pred4x4_vertical_vp8_mmxext(uint8_t *src, const uint8_t *topright, int stride);
+
+void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
+{
+ int mm_flags = av_get_cpu_flags();
+
+#if HAVE_YASM
+ if (mm_flags & AV_CPU_FLAG_MMX) {
+ h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx;
+ h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx;
+ h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx;
+ h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx;
+ if (codec_id == CODEC_ID_VP8) {
+ h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx;
+ h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx;
+ h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmx;
+ }
+ }
+
+ if (mm_flags & AV_CPU_FLAG_MMX2) {
+ h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext;
+ h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext;
+ h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
+ h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
+ if (codec_id == CODEC_ID_VP8) {
+ h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext;
+ h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext;
+ h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext;
+ h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmxext;
+ h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_mmxext;
+ }
+ }
+
+ if (mm_flags & AV_CPU_FLAG_SSE) {
+ h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_sse;
+ }
+
+ if (mm_flags & AV_CPU_FLAG_SSE2) {
+ h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_sse2;
+ if (codec_id == CODEC_ID_VP8) {
+ h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_sse2;
+ h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_sse2;
+ }
+ }
+
+ if (mm_flags & AV_CPU_FLAG_SSSE3) {
+ h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_ssse3;
+ h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_ssse3;
+ h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_ssse3;
+ if (codec_id == CODEC_ID_VP8) {
+ h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_ssse3;
+ h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_ssse3;
+ }
+ }
+#endif
+}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_qpel_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_qpel_mmx.c
new file mode 100644
index 000000000..e94ed0935
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_qpel_mmx.c
@@ -0,0 +1,1209 @@
+/*
+ * Copyright (c) 2004-2005 Michael Niedermayer, Loren Merritt
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "dsputil_mmx.h"
+
+/***********************************/
+/* motion compensation */
+
+#define QPEL_H264V_MM(A,B,C,D,E,F,OP,T,Z,d,q)\
+ "mov"#q" "#C", "#T" \n\t"\
+ "mov"#d" (%0), "#F" \n\t"\
+ "paddw "#D", "#T" \n\t"\
+ "psllw $2, "#T" \n\t"\
+ "psubw "#B", "#T" \n\t"\
+ "psubw "#E", "#T" \n\t"\
+ "punpcklbw "#Z", "#F" \n\t"\
+ "pmullw %4, "#T" \n\t"\
+ "paddw %5, "#A" \n\t"\
+ "add %2, %0 \n\t"\
+ "paddw "#F", "#A" \n\t"\
+ "paddw "#A", "#T" \n\t"\
+ "psraw $5, "#T" \n\t"\
+ "packuswb "#T", "#T" \n\t"\
+ OP(T, (%1), A, d)\
+ "add %3, %1 \n\t"
+
+#define QPEL_H264HV_MM(A,B,C,D,E,F,OF,T,Z,d,q)\
+ "mov"#q" "#C", "#T" \n\t"\
+ "mov"#d" (%0), "#F" \n\t"\
+ "paddw "#D", "#T" \n\t"\
+ "psllw $2, "#T" \n\t"\
+ "paddw %4, "#A" \n\t"\
+ "psubw "#B", "#T" \n\t"\
+ "psubw "#E", "#T" \n\t"\
+ "punpcklbw "#Z", "#F" \n\t"\
+ "pmullw %3, "#T" \n\t"\
+ "paddw "#F", "#A" \n\t"\
+ "add %2, %0 \n\t"\
+ "paddw "#A", "#T" \n\t"\
+ "mov"#q" "#T", "#OF"(%1) \n\t"
+
+#define QPEL_H264V(A,B,C,D,E,F,OP) QPEL_H264V_MM(A,B,C,D,E,F,OP,%%mm6,%%mm7,d,q)
+#define QPEL_H264HV(A,B,C,D,E,F,OF) QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%mm6,%%mm7,d,q)
+#define QPEL_H264V_XMM(A,B,C,D,E,F,OP) QPEL_H264V_MM(A,B,C,D,E,F,OP,%%xmm6,%%xmm7,q,dqa)
+#define QPEL_H264HV_XMM(A,B,C,D,E,F,OF) QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%xmm6,%%xmm7,q,dqa)
+
+
+#define QPEL_H264(OPNAME, OP, MMX)\
+static av_noinline void OPNAME ## h264_qpel4_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ int h=4;\
+\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movq "MANGLE(ff_pw_5) ", %%mm4\n\t"\
+ "movq "MANGLE(ff_pw_16)", %%mm5\n\t"\
+ "1: \n\t"\
+ "movd -1(%0), %%mm1 \n\t"\
+ "movd (%0), %%mm2 \n\t"\
+ "movd 1(%0), %%mm3 \n\t"\
+ "movd 2(%0), %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "paddw %%mm0, %%mm1 \n\t"\
+ "paddw %%mm3, %%mm2 \n\t"\
+ "movd -2(%0), %%mm0 \n\t"\
+ "movd 3(%0), %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "paddw %%mm3, %%mm0 \n\t"\
+ "psllw $2, %%mm2 \n\t"\
+ "psubw %%mm1, %%mm2 \n\t"\
+ "pmullw %%mm4, %%mm2 \n\t"\
+ "paddw %%mm5, %%mm0 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "packuswb %%mm0, %%mm0 \n\t"\
+ OP(%%mm0, (%1),%%mm6, d)\
+ "add %3, %0 \n\t"\
+ "add %4, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(src), "+c"(dst), "+g"(h)\
+ : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+}\
+static av_noinline void OPNAME ## h264_qpel4_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
+ int h=4;\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movq %0, %%mm4 \n\t"\
+ "movq %1, %%mm5 \n\t"\
+ :: "m"(ff_pw_5), "m"(ff_pw_16)\
+ );\
+ do{\
+ __asm__ volatile(\
+ "movd -1(%0), %%mm1 \n\t"\
+ "movd (%0), %%mm2 \n\t"\
+ "movd 1(%0), %%mm3 \n\t"\
+ "movd 2(%0), %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "paddw %%mm0, %%mm1 \n\t"\
+ "paddw %%mm3, %%mm2 \n\t"\
+ "movd -2(%0), %%mm0 \n\t"\
+ "movd 3(%0), %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "paddw %%mm3, %%mm0 \n\t"\
+ "psllw $2, %%mm2 \n\t"\
+ "psubw %%mm1, %%mm2 \n\t"\
+ "pmullw %%mm4, %%mm2 \n\t"\
+ "paddw %%mm5, %%mm0 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "movd (%2), %%mm3 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "packuswb %%mm0, %%mm0 \n\t"\
+ PAVGB" %%mm3, %%mm0 \n\t"\
+ OP(%%mm0, (%1),%%mm6, d)\
+ "add %4, %0 \n\t"\
+ "add %4, %1 \n\t"\
+ "add %3, %2 \n\t"\
+ : "+a"(src), "+c"(dst), "+d"(src2)\
+ : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+ }while(--h);\
+}\
+static av_noinline void OPNAME ## h264_qpel4_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ src -= 2*srcStride;\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movd (%0), %%mm0 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm1 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm2 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm3 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm4 \n\t"\
+ "add %2, %0 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm4 \n\t"\
+ QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
+ QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
+ QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
+ QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
+ \
+ : "+a"(src), "+c"(dst)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+}\
+static av_noinline void OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
+ int h=4;\
+ int w=3;\
+ src -= 2*srcStride+2;\
+ while(w--){\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movd (%0), %%mm0 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm1 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm2 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm3 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm4 \n\t"\
+ "add %2, %0 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm4 \n\t"\
+ QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 0*8*3)\
+ QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 1*8*3)\
+ QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 2*8*3)\
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 3*8*3)\
+ \
+ : "+a"(src)\
+ : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ tmp += 4;\
+ src += 4 - 9*srcStride;\
+ }\
+ tmp -= 3*4;\
+ __asm__ volatile(\
+ "1: \n\t"\
+ "movq (%0), %%mm0 \n\t"\
+ "paddw 10(%0), %%mm0 \n\t"\
+ "movq 2(%0), %%mm1 \n\t"\
+ "paddw 8(%0), %%mm1 \n\t"\
+ "movq 4(%0), %%mm2 \n\t"\
+ "paddw 6(%0), %%mm2 \n\t"\
+ "psubw %%mm1, %%mm0 \n\t"/*a-b (abccba)*/\
+ "psraw $2, %%mm0 \n\t"/*(a-b)/4 */\
+ "psubw %%mm1, %%mm0 \n\t"/*(a-b)/4-b */\
+ "paddsw %%mm2, %%mm0 \n\t"\
+ "psraw $2, %%mm0 \n\t"/*((a-b)/4-b+c)/4 */\
+ "paddw %%mm2, %%mm0 \n\t"/*(a-5*b+20*c)/16 */\
+ "psraw $6, %%mm0 \n\t"\
+ "packuswb %%mm0, %%mm0 \n\t"\
+ OP(%%mm0, (%1),%%mm7, d)\
+ "add $24, %0 \n\t"\
+ "add %3, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(tmp), "+c"(dst), "+g"(h)\
+ : "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+}\
+\
+static av_noinline void OPNAME ## h264_qpel8_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ int h=8;\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movq "MANGLE(ff_pw_5)", %%mm6\n\t"\
+ "1: \n\t"\
+ "movq (%0), %%mm0 \n\t"\
+ "movq 1(%0), %%mm2 \n\t"\
+ "movq %%mm0, %%mm1 \n\t"\
+ "movq %%mm2, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpckhbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpckhbw %%mm7, %%mm3 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "paddw %%mm3, %%mm1 \n\t"\
+ "psllw $2, %%mm0 \n\t"\
+ "psllw $2, %%mm1 \n\t"\
+ "movq -1(%0), %%mm2 \n\t"\
+ "movq 2(%0), %%mm4 \n\t"\
+ "movq %%mm2, %%mm3 \n\t"\
+ "movq %%mm4, %%mm5 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpckhbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm4 \n\t"\
+ "punpckhbw %%mm7, %%mm5 \n\t"\
+ "paddw %%mm4, %%mm2 \n\t"\
+ "paddw %%mm3, %%mm5 \n\t"\
+ "psubw %%mm2, %%mm0 \n\t"\
+ "psubw %%mm5, %%mm1 \n\t"\
+ "pmullw %%mm6, %%mm0 \n\t"\
+ "pmullw %%mm6, %%mm1 \n\t"\
+ "movd -2(%0), %%mm2 \n\t"\
+ "movd 7(%0), %%mm5 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm5 \n\t"\
+ "paddw %%mm3, %%mm2 \n\t"\
+ "paddw %%mm5, %%mm4 \n\t"\
+ "movq "MANGLE(ff_pw_16)", %%mm5\n\t"\
+ "paddw %%mm5, %%mm2 \n\t"\
+ "paddw %%mm5, %%mm4 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "paddw %%mm4, %%mm1 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "psraw $5, %%mm1 \n\t"\
+ "packuswb %%mm1, %%mm0 \n\t"\
+ OP(%%mm0, (%1),%%mm5, q)\
+ "add %3, %0 \n\t"\
+ "add %4, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(src), "+c"(dst), "+g"(h)\
+ : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+}\
+\
+static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
+ int h=8;\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movq %0, %%mm6 \n\t"\
+ :: "m"(ff_pw_5)\
+ );\
+ do{\
+ __asm__ volatile(\
+ "movq (%0), %%mm0 \n\t"\
+ "movq 1(%0), %%mm2 \n\t"\
+ "movq %%mm0, %%mm1 \n\t"\
+ "movq %%mm2, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpckhbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpckhbw %%mm7, %%mm3 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "paddw %%mm3, %%mm1 \n\t"\
+ "psllw $2, %%mm0 \n\t"\
+ "psllw $2, %%mm1 \n\t"\
+ "movq -1(%0), %%mm2 \n\t"\
+ "movq 2(%0), %%mm4 \n\t"\
+ "movq %%mm2, %%mm3 \n\t"\
+ "movq %%mm4, %%mm5 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpckhbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm4 \n\t"\
+ "punpckhbw %%mm7, %%mm5 \n\t"\
+ "paddw %%mm4, %%mm2 \n\t"\
+ "paddw %%mm3, %%mm5 \n\t"\
+ "psubw %%mm2, %%mm0 \n\t"\
+ "psubw %%mm5, %%mm1 \n\t"\
+ "pmullw %%mm6, %%mm0 \n\t"\
+ "pmullw %%mm6, %%mm1 \n\t"\
+ "movd -2(%0), %%mm2 \n\t"\
+ "movd 7(%0), %%mm5 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm5 \n\t"\
+ "paddw %%mm3, %%mm2 \n\t"\
+ "paddw %%mm5, %%mm4 \n\t"\
+ "movq %5, %%mm5 \n\t"\
+ "paddw %%mm5, %%mm2 \n\t"\
+ "paddw %%mm5, %%mm4 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "paddw %%mm4, %%mm1 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "psraw $5, %%mm1 \n\t"\
+ "movq (%2), %%mm4 \n\t"\
+ "packuswb %%mm1, %%mm0 \n\t"\
+ PAVGB" %%mm4, %%mm0 \n\t"\
+ OP(%%mm0, (%1),%%mm5, q)\
+ "add %4, %0 \n\t"\
+ "add %4, %1 \n\t"\
+ "add %3, %2 \n\t"\
+ : "+a"(src), "+c"(dst), "+d"(src2)\
+ : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
+ "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ }while(--h);\
+}\
+\
+static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
+ int w= 2;\
+ src -= 2*srcStride;\
+ \
+ while(w--){\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movd (%0), %%mm0 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm1 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm2 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm3 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm4 \n\t"\
+ "add %2, %0 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm4 \n\t"\
+ QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
+ QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
+ QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
+ QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
+ QPEL_H264V(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, OP)\
+ QPEL_H264V(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, OP)\
+ QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
+ QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
+ \
+ : "+a"(src), "+c"(dst)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ if(h==16){\
+ __asm__ volatile(\
+ QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
+ QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
+ QPEL_H264V(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, OP)\
+ QPEL_H264V(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, OP)\
+ QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
+ QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
+ QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
+ QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
+ \
+ : "+a"(src), "+c"(dst)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ }\
+ src += 4-(h+5)*srcStride;\
+ dst += 4-h*dstStride;\
+ }\
+}\
+static av_always_inline void OPNAME ## h264_qpel8or16_hv1_lowpass_ ## MMX(int16_t *tmp, uint8_t *src, int tmpStride, int srcStride, int size){\
+ int w = (size+8)>>2;\
+ src -= 2*srcStride+2;\
+ while(w--){\
+ __asm__ volatile(\
+ "pxor %%mm7, %%mm7 \n\t"\
+ "movd (%0), %%mm0 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm1 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm2 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm3 \n\t"\
+ "add %2, %0 \n\t"\
+ "movd (%0), %%mm4 \n\t"\
+ "add %2, %0 \n\t"\
+ "punpcklbw %%mm7, %%mm0 \n\t"\
+ "punpcklbw %%mm7, %%mm1 \n\t"\
+ "punpcklbw %%mm7, %%mm2 \n\t"\
+ "punpcklbw %%mm7, %%mm3 \n\t"\
+ "punpcklbw %%mm7, %%mm4 \n\t"\
+ QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 0*48)\
+ QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 1*48)\
+ QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 2*48)\
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 3*48)\
+ QPEL_H264HV(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, 4*48)\
+ QPEL_H264HV(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, 5*48)\
+ QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 6*48)\
+ QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 7*48)\
+ : "+a"(src)\
+ : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ if(size==16){\
+ __asm__ volatile(\
+ QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 8*48)\
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 9*48)\
+ QPEL_H264HV(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, 10*48)\
+ QPEL_H264HV(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, 11*48)\
+ QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 12*48)\
+ QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 13*48)\
+ QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 14*48)\
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
+ : "+a"(src)\
+ : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ }\
+ tmp += 4;\
+ src += 4 - (size+5)*srcStride;\
+ }\
+}\
+static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size){\
+ int w = size>>4;\
+ do{\
+ int h = size;\
+ __asm__ volatile(\
+ "1: \n\t"\
+ "movq (%0), %%mm0 \n\t"\
+ "movq 8(%0), %%mm3 \n\t"\
+ "movq 2(%0), %%mm1 \n\t"\
+ "movq 10(%0), %%mm4 \n\t"\
+ "paddw %%mm4, %%mm0 \n\t"\
+ "paddw %%mm3, %%mm1 \n\t"\
+ "paddw 18(%0), %%mm3 \n\t"\
+ "paddw 16(%0), %%mm4 \n\t"\
+ "movq 4(%0), %%mm2 \n\t"\
+ "movq 12(%0), %%mm5 \n\t"\
+ "paddw 6(%0), %%mm2 \n\t"\
+ "paddw 14(%0), %%mm5 \n\t"\
+ "psubw %%mm1, %%mm0 \n\t"\
+ "psubw %%mm4, %%mm3 \n\t"\
+ "psraw $2, %%mm0 \n\t"\
+ "psraw $2, %%mm3 \n\t"\
+ "psubw %%mm1, %%mm0 \n\t"\
+ "psubw %%mm4, %%mm3 \n\t"\
+ "paddsw %%mm2, %%mm0 \n\t"\
+ "paddsw %%mm5, %%mm3 \n\t"\
+ "psraw $2, %%mm0 \n\t"\
+ "psraw $2, %%mm3 \n\t"\
+ "paddw %%mm2, %%mm0 \n\t"\
+ "paddw %%mm5, %%mm3 \n\t"\
+ "psraw $6, %%mm0 \n\t"\
+ "psraw $6, %%mm3 \n\t"\
+ "packuswb %%mm3, %%mm0 \n\t"\
+ OP(%%mm0, (%1),%%mm7, q)\
+ "add $48, %0 \n\t"\
+ "add %3, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(tmp), "+c"(dst), "+g"(h)\
+ : "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+ tmp += 8 - size*24;\
+ dst += 8 - size*dstStride;\
+ }while(w--);\
+}\
+\
+static void OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
+}\
+static av_noinline void OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
+ OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
+}\
+\
+static void OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
+ src += 8*srcStride;\
+ dst += 8*dstStride;\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
+}\
+\
+static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
+ src += 8*dstStride;\
+ dst += 8*dstStride;\
+ src2 += 8*src2Stride;\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
+}\
+\
+static av_noinline void OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
+ put_h264_qpel8or16_hv1_lowpass_ ## MMX(tmp, src, tmpStride, srcStride, size);\
+ OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
+}\
+static void OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 8);\
+}\
+\
+static void OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 16);\
+}\
+\
+static av_noinline void OPNAME ## pixels4_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
+{\
+ __asm__ volatile(\
+ "movq (%1), %%mm0 \n\t"\
+ "movq 24(%1), %%mm1 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "psraw $5, %%mm1 \n\t"\
+ "packuswb %%mm0, %%mm0 \n\t"\
+ "packuswb %%mm1, %%mm1 \n\t"\
+ PAVGB" (%0), %%mm0 \n\t"\
+ PAVGB" (%0,%3), %%mm1 \n\t"\
+ OP(%%mm0, (%2), %%mm4, d)\
+ OP(%%mm1, (%2,%4), %%mm5, d)\
+ "lea (%0,%3,2), %0 \n\t"\
+ "lea (%2,%4,2), %2 \n\t"\
+ "movq 48(%1), %%mm0 \n\t"\
+ "movq 72(%1), %%mm1 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "psraw $5, %%mm1 \n\t"\
+ "packuswb %%mm0, %%mm0 \n\t"\
+ "packuswb %%mm1, %%mm1 \n\t"\
+ PAVGB" (%0), %%mm0 \n\t"\
+ PAVGB" (%0,%3), %%mm1 \n\t"\
+ OP(%%mm0, (%2), %%mm4, d)\
+ OP(%%mm1, (%2,%4), %%mm5, d)\
+ :"+a"(src8), "+c"(src16), "+d"(dst)\
+ :"S"((x86_reg)src8Stride), "D"((x86_reg)dstStride)\
+ :"memory");\
+}\
+static av_noinline void OPNAME ## pixels8_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
+{\
+ do{\
+ __asm__ volatile(\
+ "movq (%1), %%mm0 \n\t"\
+ "movq 8(%1), %%mm1 \n\t"\
+ "movq 48(%1), %%mm2 \n\t"\
+ "movq 8+48(%1), %%mm3 \n\t"\
+ "psraw $5, %%mm0 \n\t"\
+ "psraw $5, %%mm1 \n\t"\
+ "psraw $5, %%mm2 \n\t"\
+ "psraw $5, %%mm3 \n\t"\
+ "packuswb %%mm1, %%mm0 \n\t"\
+ "packuswb %%mm3, %%mm2 \n\t"\
+ PAVGB" (%0), %%mm0 \n\t"\
+ PAVGB" (%0,%3), %%mm2 \n\t"\
+ OP(%%mm0, (%2), %%mm5, q)\
+ OP(%%mm2, (%2,%4), %%mm5, q)\
+ ::"a"(src8), "c"(src16), "d"(dst),\
+ "r"((x86_reg)src8Stride), "r"((x86_reg)dstStride)\
+ :"memory");\
+ src8 += 2L*src8Stride;\
+ src16 += 48;\
+ dst += 2L*dstStride;\
+ }while(h-=2);\
+}\
+static void OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
+{\
+ OPNAME ## pixels8_l2_shift5_ ## MMX(dst , src16 , src8 , dstStride, src8Stride, h);\
+ OPNAME ## pixels8_l2_shift5_ ## MMX(dst+8, src16+8, src8+8, dstStride, src8Stride, h);\
+}\
+
+
+#if ARCH_X86_64
+#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
+static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
+ int h=16;\
+ __asm__ volatile(\
+ "pxor %%xmm15, %%xmm15 \n\t"\
+ "movdqa %6, %%xmm14 \n\t"\
+ "movdqa %7, %%xmm13 \n\t"\
+ "1: \n\t"\
+ "lddqu 6(%0), %%xmm1 \n\t"\
+ "lddqu -2(%0), %%xmm7 \n\t"\
+ "movdqa %%xmm1, %%xmm0 \n\t"\
+ "punpckhbw %%xmm15, %%xmm1 \n\t"\
+ "punpcklbw %%xmm15, %%xmm0 \n\t"\
+ "punpcklbw %%xmm15, %%xmm7 \n\t"\
+ "movdqa %%xmm1, %%xmm2 \n\t"\
+ "movdqa %%xmm0, %%xmm6 \n\t"\
+ "movdqa %%xmm1, %%xmm3 \n\t"\
+ "movdqa %%xmm0, %%xmm8 \n\t"\
+ "movdqa %%xmm1, %%xmm4 \n\t"\
+ "movdqa %%xmm0, %%xmm9 \n\t"\
+ "movdqa %%xmm0, %%xmm12 \n\t"\
+ "movdqa %%xmm1, %%xmm11 \n\t"\
+ "palignr $10,%%xmm0, %%xmm11\n\t"\
+ "palignr $10,%%xmm7, %%xmm12\n\t"\
+ "palignr $2, %%xmm0, %%xmm4 \n\t"\
+ "palignr $2, %%xmm7, %%xmm9 \n\t"\
+ "palignr $4, %%xmm0, %%xmm3 \n\t"\
+ "palignr $4, %%xmm7, %%xmm8 \n\t"\
+ "palignr $6, %%xmm0, %%xmm2 \n\t"\
+ "palignr $6, %%xmm7, %%xmm6 \n\t"\
+ "paddw %%xmm0 ,%%xmm11 \n\t"\
+ "palignr $8, %%xmm0, %%xmm1 \n\t"\
+ "palignr $8, %%xmm7, %%xmm0 \n\t"\
+ "paddw %%xmm12,%%xmm7 \n\t"\
+ "paddw %%xmm3, %%xmm2 \n\t"\
+ "paddw %%xmm8, %%xmm6 \n\t"\
+ "paddw %%xmm4, %%xmm1 \n\t"\
+ "paddw %%xmm9, %%xmm0 \n\t"\
+ "psllw $2, %%xmm2 \n\t"\
+ "psllw $2, %%xmm6 \n\t"\
+ "psubw %%xmm1, %%xmm2 \n\t"\
+ "psubw %%xmm0, %%xmm6 \n\t"\
+ "paddw %%xmm13,%%xmm11 \n\t"\
+ "paddw %%xmm13,%%xmm7 \n\t"\
+ "pmullw %%xmm14,%%xmm2 \n\t"\
+ "pmullw %%xmm14,%%xmm6 \n\t"\
+ "lddqu (%2), %%xmm3 \n\t"\
+ "paddw %%xmm11,%%xmm2 \n\t"\
+ "paddw %%xmm7, %%xmm6 \n\t"\
+ "psraw $5, %%xmm2 \n\t"\
+ "psraw $5, %%xmm6 \n\t"\
+ "packuswb %%xmm2,%%xmm6 \n\t"\
+ "pavgb %%xmm3, %%xmm6 \n\t"\
+ OP(%%xmm6, (%1), %%xmm4, dqa)\
+ "add %5, %0 \n\t"\
+ "add %5, %1 \n\t"\
+ "add %4, %2 \n\t"\
+ "decl %3 \n\t"\
+ "jg 1b \n\t"\
+ : "+a"(src), "+c"(dst), "+d"(src2), "+g"(h)\
+ : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
+ "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+}
+#else // ARCH_X86_64
+#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
+static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
+ src += 8*dstStride;\
+ dst += 8*dstStride;\
+ src2 += 8*src2Stride;\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
+ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
+}
+#endif // ARCH_X86_64
+
+#define QPEL_H264_H_XMM(OPNAME, OP, MMX)\
+static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
+ int h=8;\
+ __asm__ volatile(\
+ "pxor %%xmm7, %%xmm7 \n\t"\
+ "movdqa %0, %%xmm6 \n\t"\
+ :: "m"(ff_pw_5)\
+ );\
+ do{\
+ __asm__ volatile(\
+ "lddqu -2(%0), %%xmm1 \n\t"\
+ "movdqa %%xmm1, %%xmm0 \n\t"\
+ "punpckhbw %%xmm7, %%xmm1 \n\t"\
+ "punpcklbw %%xmm7, %%xmm0 \n\t"\
+ "movdqa %%xmm1, %%xmm2 \n\t"\
+ "movdqa %%xmm1, %%xmm3 \n\t"\
+ "movdqa %%xmm1, %%xmm4 \n\t"\
+ "movdqa %%xmm1, %%xmm5 \n\t"\
+ "palignr $2, %%xmm0, %%xmm4 \n\t"\
+ "palignr $4, %%xmm0, %%xmm3 \n\t"\
+ "palignr $6, %%xmm0, %%xmm2 \n\t"\
+ "palignr $8, %%xmm0, %%xmm1 \n\t"\
+ "palignr $10,%%xmm0, %%xmm5 \n\t"\
+ "paddw %%xmm5, %%xmm0 \n\t"\
+ "paddw %%xmm3, %%xmm2 \n\t"\
+ "paddw %%xmm4, %%xmm1 \n\t"\
+ "psllw $2, %%xmm2 \n\t"\
+ "movq (%2), %%xmm3 \n\t"\
+ "psubw %%xmm1, %%xmm2 \n\t"\
+ "paddw %5, %%xmm0 \n\t"\
+ "pmullw %%xmm6, %%xmm2 \n\t"\
+ "paddw %%xmm0, %%xmm2 \n\t"\
+ "psraw $5, %%xmm2 \n\t"\
+ "packuswb %%xmm2, %%xmm2 \n\t"\
+ "pavgb %%xmm3, %%xmm2 \n\t"\
+ OP(%%xmm2, (%1), %%xmm4, q)\
+ "add %4, %0 \n\t"\
+ "add %4, %1 \n\t"\
+ "add %3, %2 \n\t"\
+ : "+a"(src), "+c"(dst), "+d"(src2)\
+ : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
+ "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ }while(--h);\
+}\
+QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
+\
+static av_noinline void OPNAME ## h264_qpel8_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ int h=8;\
+ __asm__ volatile(\
+ "pxor %%xmm7, %%xmm7 \n\t"\
+ "movdqa "MANGLE(ff_pw_5)", %%xmm6\n\t"\
+ "1: \n\t"\
+ "lddqu -2(%0), %%xmm1 \n\t"\
+ "movdqa %%xmm1, %%xmm0 \n\t"\
+ "punpckhbw %%xmm7, %%xmm1 \n\t"\
+ "punpcklbw %%xmm7, %%xmm0 \n\t"\
+ "movdqa %%xmm1, %%xmm2 \n\t"\
+ "movdqa %%xmm1, %%xmm3 \n\t"\
+ "movdqa %%xmm1, %%xmm4 \n\t"\
+ "movdqa %%xmm1, %%xmm5 \n\t"\
+ "palignr $2, %%xmm0, %%xmm4 \n\t"\
+ "palignr $4, %%xmm0, %%xmm3 \n\t"\
+ "palignr $6, %%xmm0, %%xmm2 \n\t"\
+ "palignr $8, %%xmm0, %%xmm1 \n\t"\
+ "palignr $10,%%xmm0, %%xmm5 \n\t"\
+ "paddw %%xmm5, %%xmm0 \n\t"\
+ "paddw %%xmm3, %%xmm2 \n\t"\
+ "paddw %%xmm4, %%xmm1 \n\t"\
+ "psllw $2, %%xmm2 \n\t"\
+ "psubw %%xmm1, %%xmm2 \n\t"\
+ "paddw "MANGLE(ff_pw_16)", %%xmm0\n\t"\
+ "pmullw %%xmm6, %%xmm2 \n\t"\
+ "paddw %%xmm0, %%xmm2 \n\t"\
+ "psraw $5, %%xmm2 \n\t"\
+ "packuswb %%xmm2, %%xmm2 \n\t"\
+ OP(%%xmm2, (%1), %%xmm4, q)\
+ "add %3, %0 \n\t"\
+ "add %4, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(src), "+c"(dst), "+g"(h)\
+ : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+}\
+static void OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
+ src += 8*srcStride;\
+ dst += 8*dstStride;\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
+ OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
+}\
+
+#define QPEL_H264_V_XMM(OPNAME, OP, MMX)\
+static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
+ src -= 2*srcStride;\
+ \
+ __asm__ volatile(\
+ "pxor %%xmm7, %%xmm7 \n\t"\
+ "movq (%0), %%xmm0 \n\t"\
+ "add %2, %0 \n\t"\
+ "movq (%0), %%xmm1 \n\t"\
+ "add %2, %0 \n\t"\
+ "movq (%0), %%xmm2 \n\t"\
+ "add %2, %0 \n\t"\
+ "movq (%0), %%xmm3 \n\t"\
+ "add %2, %0 \n\t"\
+ "movq (%0), %%xmm4 \n\t"\
+ "add %2, %0 \n\t"\
+ "punpcklbw %%xmm7, %%xmm0 \n\t"\
+ "punpcklbw %%xmm7, %%xmm1 \n\t"\
+ "punpcklbw %%xmm7, %%xmm2 \n\t"\
+ "punpcklbw %%xmm7, %%xmm3 \n\t"\
+ "punpcklbw %%xmm7, %%xmm4 \n\t"\
+ QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
+ QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
+ QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
+ QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
+ QPEL_H264V_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, OP)\
+ QPEL_H264V_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, OP)\
+ QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
+ QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
+ \
+ : "+a"(src), "+c"(dst)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ if(h==16){\
+ __asm__ volatile(\
+ QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
+ QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
+ QPEL_H264V_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, OP)\
+ QPEL_H264V_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, OP)\
+ QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
+ QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
+ QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
+ QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
+ \
+ : "+a"(src), "+c"(dst)\
+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
+ : "memory"\
+ );\
+ }\
+}\
+static void OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
+}\
+static av_noinline void OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
+ OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
+}
+
+static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp, uint8_t *src, int tmpStride, int srcStride, int size){
+ int w = (size+8)>>3;
+ src -= 2*srcStride+2;
+ while(w--){
+ __asm__ volatile(
+ "pxor %%xmm7, %%xmm7 \n\t"
+ "movq (%0), %%xmm0 \n\t"
+ "add %2, %0 \n\t"
+ "movq (%0), %%xmm1 \n\t"
+ "add %2, %0 \n\t"
+ "movq (%0), %%xmm2 \n\t"
+ "add %2, %0 \n\t"
+ "movq (%0), %%xmm3 \n\t"
+ "add %2, %0 \n\t"
+ "movq (%0), %%xmm4 \n\t"
+ "add %2, %0 \n\t"
+ "punpcklbw %%xmm7, %%xmm0 \n\t"
+ "punpcklbw %%xmm7, %%xmm1 \n\t"
+ "punpcklbw %%xmm7, %%xmm2 \n\t"
+ "punpcklbw %%xmm7, %%xmm3 \n\t"
+ "punpcklbw %%xmm7, %%xmm4 \n\t"
+ QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 0*48)
+ QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 1*48)
+ QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 2*48)
+ QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 3*48)
+ QPEL_H264HV_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, 4*48)
+ QPEL_H264HV_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, 5*48)
+ QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 6*48)
+ QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 7*48)
+ : "+a"(src)
+ : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
+ : "memory"
+ );
+ if(size==16){
+ __asm__ volatile(
+ QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 8*48)
+ QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 9*48)
+ QPEL_H264HV_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, 10*48)
+ QPEL_H264HV_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, 11*48)
+ QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 12*48)
+ QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 13*48)
+ QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 14*48)
+ QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
+ : "+a"(src)
+ : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
+ : "memory"
+ );
+ }
+ tmp += 8;
+ src += 8 - (size+5)*srcStride;
+ }
+}
+
+#define QPEL_H264_HV2_XMM(OPNAME, OP, MMX)\
+static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size){\
+ int h = size;\
+ if(size == 16){\
+ __asm__ volatile(\
+ "1: \n\t"\
+ "movdqa 32(%0), %%xmm4 \n\t"\
+ "movdqa 16(%0), %%xmm5 \n\t"\
+ "movdqa (%0), %%xmm7 \n\t"\
+ "movdqa %%xmm4, %%xmm3 \n\t"\
+ "movdqa %%xmm4, %%xmm2 \n\t"\
+ "movdqa %%xmm4, %%xmm1 \n\t"\
+ "movdqa %%xmm4, %%xmm0 \n\t"\
+ "palignr $10, %%xmm5, %%xmm0 \n\t"\
+ "palignr $8, %%xmm5, %%xmm1 \n\t"\
+ "palignr $6, %%xmm5, %%xmm2 \n\t"\
+ "palignr $4, %%xmm5, %%xmm3 \n\t"\
+ "palignr $2, %%xmm5, %%xmm4 \n\t"\
+ "paddw %%xmm5, %%xmm0 \n\t"\
+ "paddw %%xmm4, %%xmm1 \n\t"\
+ "paddw %%xmm3, %%xmm2 \n\t"\
+ "movdqa %%xmm5, %%xmm6 \n\t"\
+ "movdqa %%xmm5, %%xmm4 \n\t"\
+ "movdqa %%xmm5, %%xmm3 \n\t"\
+ "palignr $8, %%xmm7, %%xmm4 \n\t"\
+ "palignr $2, %%xmm7, %%xmm6 \n\t"\
+ "palignr $10, %%xmm7, %%xmm3 \n\t"\
+ "paddw %%xmm6, %%xmm4 \n\t"\
+ "movdqa %%xmm5, %%xmm6 \n\t"\
+ "palignr $6, %%xmm7, %%xmm5 \n\t"\
+ "palignr $4, %%xmm7, %%xmm6 \n\t"\
+ "paddw %%xmm7, %%xmm3 \n\t"\
+ "paddw %%xmm6, %%xmm5 \n\t"\
+ \
+ "psubw %%xmm1, %%xmm0 \n\t"\
+ "psubw %%xmm4, %%xmm3 \n\t"\
+ "psraw $2, %%xmm0 \n\t"\
+ "psraw $2, %%xmm3 \n\t"\
+ "psubw %%xmm1, %%xmm0 \n\t"\
+ "psubw %%xmm4, %%xmm3 \n\t"\
+ "paddw %%xmm2, %%xmm0 \n\t"\
+ "paddw %%xmm5, %%xmm3 \n\t"\
+ "psraw $2, %%xmm0 \n\t"\
+ "psraw $2, %%xmm3 \n\t"\
+ "paddw %%xmm2, %%xmm0 \n\t"\
+ "paddw %%xmm5, %%xmm3 \n\t"\
+ "psraw $6, %%xmm0 \n\t"\
+ "psraw $6, %%xmm3 \n\t"\
+ "packuswb %%xmm0, %%xmm3 \n\t"\
+ OP(%%xmm3, (%1), %%xmm7, dqa)\
+ "add $48, %0 \n\t"\
+ "add %3, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(tmp), "+c"(dst), "+g"(h)\
+ : "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+ }else{\
+ __asm__ volatile(\
+ "1: \n\t"\
+ "movdqa 16(%0), %%xmm1 \n\t"\
+ "movdqa (%0), %%xmm0 \n\t"\
+ "movdqa %%xmm1, %%xmm2 \n\t"\
+ "movdqa %%xmm1, %%xmm3 \n\t"\
+ "movdqa %%xmm1, %%xmm4 \n\t"\
+ "movdqa %%xmm1, %%xmm5 \n\t"\
+ "palignr $10, %%xmm0, %%xmm5 \n\t"\
+ "palignr $8, %%xmm0, %%xmm4 \n\t"\
+ "palignr $6, %%xmm0, %%xmm3 \n\t"\
+ "palignr $4, %%xmm0, %%xmm2 \n\t"\
+ "palignr $2, %%xmm0, %%xmm1 \n\t"\
+ "paddw %%xmm5, %%xmm0 \n\t"\
+ "paddw %%xmm4, %%xmm1 \n\t"\
+ "paddw %%xmm3, %%xmm2 \n\t"\
+ "psubw %%xmm1, %%xmm0 \n\t"\
+ "psraw $2, %%xmm0 \n\t"\
+ "psubw %%xmm1, %%xmm0 \n\t"\
+ "paddw %%xmm2, %%xmm0 \n\t"\
+ "psraw $2, %%xmm0 \n\t"\
+ "paddw %%xmm2, %%xmm0 \n\t"\
+ "psraw $6, %%xmm0 \n\t"\
+ "packuswb %%xmm0, %%xmm0 \n\t"\
+ OP(%%xmm0, (%1), %%xmm7, q)\
+ "add $48, %0 \n\t"\
+ "add %3, %1 \n\t"\
+ "decl %2 \n\t"\
+ " jnz 1b \n\t"\
+ : "+a"(tmp), "+c"(dst), "+g"(h)\
+ : "S"((x86_reg)dstStride)\
+ : "memory"\
+ );\
+ }\
+}
+
+#define QPEL_H264_HV_XMM(OPNAME, OP, MMX)\
+static av_noinline void OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
+ put_h264_qpel8or16_hv1_lowpass_sse2(tmp, src, tmpStride, srcStride, size);\
+ OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
+}\
+static void OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 8);\
+}\
+static void OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
+ OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 16);\
+}\
+
+#define put_pixels8_l2_sse2 put_pixels8_l2_mmx2
+#define avg_pixels8_l2_sse2 avg_pixels8_l2_mmx2
+#define put_pixels16_l2_sse2 put_pixels16_l2_mmx2
+#define avg_pixels16_l2_sse2 avg_pixels16_l2_mmx2
+#define put_pixels8_l2_ssse3 put_pixels8_l2_mmx2
+#define avg_pixels8_l2_ssse3 avg_pixels8_l2_mmx2
+#define put_pixels16_l2_ssse3 put_pixels16_l2_mmx2
+#define avg_pixels16_l2_ssse3 avg_pixels16_l2_mmx2
+
+#define put_pixels8_l2_shift5_sse2 put_pixels8_l2_shift5_mmx2
+#define avg_pixels8_l2_shift5_sse2 avg_pixels8_l2_shift5_mmx2
+#define put_pixels16_l2_shift5_sse2 put_pixels16_l2_shift5_mmx2
+#define avg_pixels16_l2_shift5_sse2 avg_pixels16_l2_shift5_mmx2
+#define put_pixels8_l2_shift5_ssse3 put_pixels8_l2_shift5_mmx2
+#define avg_pixels8_l2_shift5_ssse3 avg_pixels8_l2_shift5_mmx2
+#define put_pixels16_l2_shift5_ssse3 put_pixels16_l2_shift5_mmx2
+#define avg_pixels16_l2_shift5_ssse3 avg_pixels16_l2_shift5_mmx2
+
+#define put_h264_qpel8_h_lowpass_l2_sse2 put_h264_qpel8_h_lowpass_l2_mmx2
+#define avg_h264_qpel8_h_lowpass_l2_sse2 avg_h264_qpel8_h_lowpass_l2_mmx2
+#define put_h264_qpel16_h_lowpass_l2_sse2 put_h264_qpel16_h_lowpass_l2_mmx2
+#define avg_h264_qpel16_h_lowpass_l2_sse2 avg_h264_qpel16_h_lowpass_l2_mmx2
+
+#define put_h264_qpel8_v_lowpass_ssse3 put_h264_qpel8_v_lowpass_sse2
+#define avg_h264_qpel8_v_lowpass_ssse3 avg_h264_qpel8_v_lowpass_sse2
+#define put_h264_qpel16_v_lowpass_ssse3 put_h264_qpel16_v_lowpass_sse2
+#define avg_h264_qpel16_v_lowpass_ssse3 avg_h264_qpel16_v_lowpass_sse2
+
+#define put_h264_qpel8or16_hv2_lowpass_sse2 put_h264_qpel8or16_hv2_lowpass_mmx2
+#define avg_h264_qpel8or16_hv2_lowpass_sse2 avg_h264_qpel8or16_hv2_lowpass_mmx2
+
+#define H264_MC(OPNAME, SIZE, MMX, ALIGN) \
+H264_MC_C(OPNAME, SIZE, MMX, ALIGN)\
+H264_MC_V(OPNAME, SIZE, MMX, ALIGN)\
+H264_MC_H(OPNAME, SIZE, MMX, ALIGN)\
+H264_MC_HV(OPNAME, SIZE, MMX, ALIGN)\
+
+static void put_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src, int stride){
+ put_pixels16_sse2(dst, src, stride, 16);
+}
+static void avg_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src, int stride){
+ avg_pixels16_sse2(dst, src, stride, 16);
+}
+#define put_h264_qpel8_mc00_sse2 put_h264_qpel8_mc00_mmx2
+#define avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmx2
+
+#define H264_MC_C(OPNAME, SIZE, MMX, ALIGN) \
+static void OPNAME ## h264_qpel ## SIZE ## _mc00_ ## MMX (uint8_t *dst, uint8_t *src, int stride){\
+ OPNAME ## pixels ## SIZE ## _ ## MMX(dst, src, stride, SIZE);\
+}\
+
+#define H264_MC_H(OPNAME, SIZE, MMX, ALIGN) \
+static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src, stride, stride);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## MMX(dst, src, stride, stride);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src+1, stride, stride);\
+}\
+
+#define H264_MC_V(OPNAME, SIZE, MMX, ALIGN) \
+static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
+ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
+ OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, temp, stride, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## MMX(dst, src, stride, stride);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
+ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
+ OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src+stride, temp, stride, stride, SIZE);\
+}\
+
+#define H264_MC_HV(OPNAME, SIZE, MMX, ALIGN) \
+static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
+ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
+ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
+ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
+ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint16_t, temp)[SIZE*(SIZE<8?12:24)];\
+ OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(dst, temp, src, stride, SIZE, stride);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
+ uint8_t * const halfHV= temp;\
+ int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
+ assert(((int)temp & 7) == 0);\
+ put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfHV, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
+ uint8_t * const halfHV= temp;\
+ int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
+ assert(((int)temp & 7) == 0);\
+ put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
+ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfHV, stride, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
+ uint8_t * const halfHV= temp;\
+ int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
+ assert(((int)temp & 7) == 0);\
+ put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
+ OPNAME ## pixels ## SIZE ## _l2_shift5_ ## MMX(dst, halfV+2, halfHV, stride, SIZE, SIZE);\
+}\
+\
+static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
+ DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
+ uint8_t * const halfHV= temp;\
+ int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
+ assert(((int)temp & 7) == 0);\
+ put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
+ OPNAME ## pixels ## SIZE ## _l2_shift5_ ## MMX(dst, halfV+3, halfHV, stride, SIZE, SIZE);\
+}\
+
+#define H264_MC_4816(MMX)\
+H264_MC(put_, 4, MMX, 8)\
+H264_MC(put_, 8, MMX, 8)\
+H264_MC(put_, 16,MMX, 8)\
+H264_MC(avg_, 4, MMX, 8)\
+H264_MC(avg_, 8, MMX, 8)\
+H264_MC(avg_, 16,MMX, 8)\
+
+#define H264_MC_816(QPEL, XMM)\
+QPEL(put_, 8, XMM, 16)\
+QPEL(put_, 16,XMM, 16)\
+QPEL(avg_, 8, XMM, 16)\
+QPEL(avg_, 16,XMM, 16)\
+
+
+#define AVG_3DNOW_OP(a,b,temp, size) \
+"mov" #size " " #b ", " #temp " \n\t"\
+"pavgusb " #temp ", " #a " \n\t"\
+"mov" #size " " #a ", " #b " \n\t"
+#define AVG_MMX2_OP(a,b,temp, size) \
+"mov" #size " " #b ", " #temp " \n\t"\
+"pavgb " #temp ", " #a " \n\t"\
+"mov" #size " " #a ", " #b " \n\t"
+
+#define PAVGB "pavgusb"
+QPEL_H264(put_, PUT_OP, 3dnow)
+QPEL_H264(avg_, AVG_3DNOW_OP, 3dnow)
+#undef PAVGB
+#define PAVGB "pavgb"
+QPEL_H264(put_, PUT_OP, mmx2)
+QPEL_H264(avg_, AVG_MMX2_OP, mmx2)
+QPEL_H264_V_XMM(put_, PUT_OP, sse2)
+QPEL_H264_V_XMM(avg_, AVG_MMX2_OP, sse2)
+QPEL_H264_HV_XMM(put_, PUT_OP, sse2)
+QPEL_H264_HV_XMM(avg_, AVG_MMX2_OP, sse2)
+#if HAVE_SSSE3
+QPEL_H264_H_XMM(put_, PUT_OP, ssse3)
+QPEL_H264_H_XMM(avg_, AVG_MMX2_OP, ssse3)
+QPEL_H264_HV2_XMM(put_, PUT_OP, ssse3)
+QPEL_H264_HV2_XMM(avg_, AVG_MMX2_OP, ssse3)
+QPEL_H264_HV_XMM(put_, PUT_OP, ssse3)
+QPEL_H264_HV_XMM(avg_, AVG_MMX2_OP, ssse3)
+#endif
+#undef PAVGB
+
+H264_MC_4816(3dnow)
+H264_MC_4816(mmx2)
+H264_MC_816(H264_MC_V, sse2)
+H264_MC_816(H264_MC_HV, sse2)
+#if HAVE_SSSE3
+H264_MC_816(H264_MC_H, ssse3)
+H264_MC_816(H264_MC_HV, ssse3)
+#endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight.asm
new file mode 100644
index 000000000..53aa21047
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight.asm
@@ -0,0 +1,375 @@
+;*****************************************************************************
+;* SSE2-optimized weighted prediction code
+;*****************************************************************************
+;* Copyright (c) 2004-2005 Michael Niedermayer, Loren Merritt
+;* Copyright (C) 2010 Eli Friedman <eli.friedman@gmail.com>
+;*
+;* This file is part of FFmpeg.
+;*
+;* FFmpeg is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* FFmpeg 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
+;* Lesser General Public License for more details.
+;*
+;* You should have received a copy of the GNU Lesser General Public
+;* License along with FFmpeg; if not, write to the Free Software
+;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;******************************************************************************
+
+%include "x86inc.asm"
+
+SECTION .text
+
+;-----------------------------------------------------------------------------
+; biweight pred:
+;
+; void h264_biweight_16x16_sse2(uint8_t *dst, uint8_t *src, int stride,
+; int log2_denom, int weightd, int weights,
+; int offset);
+; and
+; void h264_weight_16x16_sse2(uint8_t *dst, int stride,
+; int log2_denom, int weight,
+; int offset);
+;-----------------------------------------------------------------------------
+
+%macro WEIGHT_SETUP 0
+ add r4, r4
+ inc r4
+ movd m3, r3d
+ movd m5, r4d
+ movd m6, r2d
+ pslld m5, m6
+ psrld m5, 1
+%if mmsize == 16
+ pshuflw m3, m3, 0
+ pshuflw m5, m5, 0
+ punpcklqdq m3, m3
+ punpcklqdq m5, m5
+%else
+ pshufw m3, m3, 0
+ pshufw m5, m5, 0
+%endif
+ pxor m7, m7
+%endmacro
+
+%macro WEIGHT_OP 2
+ movh m0, [r0+%1]
+ movh m1, [r0+%2]
+ punpcklbw m0, m7
+ punpcklbw m1, m7
+ pmullw m0, m3
+ pmullw m1, m3
+ paddsw m0, m5
+ paddsw m1, m5
+ psraw m0, m6
+ psraw m1, m6
+ packuswb m0, m1
+%endmacro
+
+%macro WEIGHT_FUNC_DBL_MM 1
+cglobal h264_weight_16x%1_mmx2, 5, 5, 0
+ WEIGHT_SETUP
+ mov r2, %1
+%if %1 == 16
+.nextrow
+ WEIGHT_OP 0, 4
+ mova [r0 ], m0
+ WEIGHT_OP 8, 12
+ mova [r0+8], m0
+ add r0, r1
+ dec r2
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_weight_16x16_mmx2.nextrow)
+%endif
+%endmacro
+
+INIT_MMX
+WEIGHT_FUNC_DBL_MM 16
+WEIGHT_FUNC_DBL_MM 8
+
+%macro WEIGHT_FUNC_MM 4
+cglobal h264_weight_%1x%2_%4, 7, 7, %3
+ WEIGHT_SETUP
+ mov r2, %2
+%if %2 == 16
+.nextrow
+ WEIGHT_OP 0, mmsize/2
+ mova [r0], m0
+ add r0, r1
+ dec r2
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_weight_%1x16_%4.nextrow)
+%endif
+%endmacro
+
+INIT_MMX
+WEIGHT_FUNC_MM 8, 16, 0, mmx2
+WEIGHT_FUNC_MM 8, 8, 0, mmx2
+WEIGHT_FUNC_MM 8, 4, 0, mmx2
+INIT_XMM
+WEIGHT_FUNC_MM 16, 16, 8, sse2
+WEIGHT_FUNC_MM 16, 8, 8, sse2
+
+%macro WEIGHT_FUNC_HALF_MM 5
+cglobal h264_weight_%1x%2_%5, 5, 5, %4
+ WEIGHT_SETUP
+ mov r2, %2/2
+ lea r3, [r1*2]
+%if %2 == mmsize
+.nextrow
+ WEIGHT_OP 0, r1
+ movh [r0], m0
+%if mmsize == 16
+ movhps [r0+r1], m0
+%else
+ psrlq m0, 32
+ movh [r0+r1], m0
+%endif
+ add r0, r3
+ dec r2
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_weight_%1x%3_%5.nextrow)
+%endif
+%endmacro
+
+INIT_MMX
+WEIGHT_FUNC_HALF_MM 4, 8, 8, 0, mmx2
+WEIGHT_FUNC_HALF_MM 4, 4, 8, 0, mmx2
+WEIGHT_FUNC_HALF_MM 4, 2, 8, 0, mmx2
+INIT_XMM
+WEIGHT_FUNC_HALF_MM 8, 16, 16, 8, sse2
+WEIGHT_FUNC_HALF_MM 8, 8, 16, 8, sse2
+WEIGHT_FUNC_HALF_MM 8, 4, 16, 8, sse2
+
+%macro BIWEIGHT_SETUP 0
+ add r6, 1
+ or r6, 1
+ add r3, 1
+ movd m3, r4d
+ movd m4, r5d
+ movd m5, r6d
+ movd m6, r3d
+ pslld m5, m6
+ psrld m5, 1
+%if mmsize == 16
+ pshuflw m3, m3, 0
+ pshuflw m4, m4, 0
+ pshuflw m5, m5, 0
+ punpcklqdq m3, m3
+ punpcklqdq m4, m4
+ punpcklqdq m5, m5
+%else
+ pshufw m3, m3, 0
+ pshufw m4, m4, 0
+ pshufw m5, m5, 0
+%endif
+ pxor m7, m7
+%endmacro
+
+%macro BIWEIGHT_STEPA 3
+ movh m%1, [r0+%3]
+ movh m%2, [r1+%3]
+ punpcklbw m%1, m7
+ punpcklbw m%2, m7
+ pmullw m%1, m3
+ pmullw m%2, m4
+ paddsw m%1, m%2
+%endmacro
+
+%macro BIWEIGHT_STEPB 0
+ paddsw m0, m5
+ paddsw m1, m5
+ psraw m0, m6
+ psraw m1, m6
+ packuswb m0, m1
+%endmacro
+
+%macro BIWEIGHT_FUNC_DBL_MM 1
+cglobal h264_biweight_16x%1_mmx2, 7, 7, 0
+ BIWEIGHT_SETUP
+ mov r3, %1
+%if %1 == 16
+.nextrow
+ BIWEIGHT_STEPA 0, 1, 0
+ BIWEIGHT_STEPA 1, 2, 4
+ BIWEIGHT_STEPB
+ mova [r0], m0
+ BIWEIGHT_STEPA 0, 1, 8
+ BIWEIGHT_STEPA 1, 2, 12
+ BIWEIGHT_STEPB
+ mova [r0+8], m0
+ add r0, r2
+ add r1, r2
+ dec r3
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_biweight_16x16_mmx2.nextrow)
+%endif
+%endmacro
+
+INIT_MMX
+BIWEIGHT_FUNC_DBL_MM 16
+BIWEIGHT_FUNC_DBL_MM 8
+
+%macro BIWEIGHT_FUNC_MM 4
+cglobal h264_biweight_%1x%2_%4, 7, 7, %3
+ BIWEIGHT_SETUP
+ mov r3, %2
+%if %2 == 16
+.nextrow
+ BIWEIGHT_STEPA 0, 1, 0
+ BIWEIGHT_STEPA 1, 2, mmsize/2
+ BIWEIGHT_STEPB
+ mova [r0], m0
+ add r0, r2
+ add r1, r2
+ dec r3
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_biweight_%1x16_%4.nextrow)
+%endif
+%endmacro
+
+INIT_MMX
+BIWEIGHT_FUNC_MM 8, 16, 0, mmx2
+BIWEIGHT_FUNC_MM 8, 8, 0, mmx2
+BIWEIGHT_FUNC_MM 8, 4, 0, mmx2
+INIT_XMM
+BIWEIGHT_FUNC_MM 16, 16, 8, sse2
+BIWEIGHT_FUNC_MM 16, 8, 8, sse2
+
+%macro BIWEIGHT_FUNC_HALF_MM 5
+cglobal h264_biweight_%1x%2_%5, 7, 7, %4
+ BIWEIGHT_SETUP
+ mov r3, %2/2
+ lea r4, [r2*2]
+%if %2 == mmsize
+.nextrow
+ BIWEIGHT_STEPA 0, 1, 0
+ BIWEIGHT_STEPA 1, 2, r2
+ BIWEIGHT_STEPB
+ movh [r0], m0
+%if mmsize == 16
+ movhps [r0+r2], m0
+%else
+ psrlq m0, 32
+ movh [r0+r2], m0
+%endif
+ add r0, r4
+ add r1, r4
+ dec r3
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_biweight_%1x%3_%5.nextrow)
+%endif
+%endmacro
+
+INIT_MMX
+BIWEIGHT_FUNC_HALF_MM 4, 8, 8, 0, mmx2
+BIWEIGHT_FUNC_HALF_MM 4, 4, 8, 0, mmx2
+BIWEIGHT_FUNC_HALF_MM 4, 2, 8, 0, mmx2
+INIT_XMM
+BIWEIGHT_FUNC_HALF_MM 8, 16, 16, 8, sse2
+BIWEIGHT_FUNC_HALF_MM 8, 8, 16, 8, sse2
+BIWEIGHT_FUNC_HALF_MM 8, 4, 16, 8, sse2
+
+%macro BIWEIGHT_SSSE3_SETUP 0
+ add r6, 1
+ or r6, 1
+ add r3, 1
+ movd m4, r4d
+ movd m0, r5d
+ movd m5, r6d
+ movd m6, r3d
+ pslld m5, m6
+ psrld m5, 1
+ punpcklbw m4, m0
+ pshuflw m4, m4, 0
+ pshuflw m5, m5, 0
+ punpcklqdq m4, m4
+ punpcklqdq m5, m5
+%endmacro
+
+%macro BIWEIGHT_SSSE3_OP 0
+ pmaddubsw m0, m4
+ pmaddubsw m2, m4
+ paddsw m0, m5
+ paddsw m2, m5
+ psraw m0, m6
+ psraw m2, m6
+ packuswb m0, m2
+%endmacro
+
+%macro BIWEIGHT_SSSE3_16 1
+cglobal h264_biweight_16x%1_ssse3, 7, 7, 8
+ BIWEIGHT_SSSE3_SETUP
+ mov r3, %1
+
+%if %1 == 16
+.nextrow
+ movh m0, [r0]
+ movh m2, [r0+8]
+ movh m3, [r1+8]
+ punpcklbw m0, [r1]
+ punpcklbw m2, m3
+ BIWEIGHT_SSSE3_OP
+ mova [r0], m0
+ add r0, r2
+ add r1, r2
+ dec r3
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_biweight_16x16_ssse3.nextrow)
+%endif
+%endmacro
+
+INIT_XMM
+BIWEIGHT_SSSE3_16 16
+BIWEIGHT_SSSE3_16 8
+
+%macro BIWEIGHT_SSSE3_8 1
+cglobal h264_biweight_8x%1_ssse3, 7, 7, 8
+ BIWEIGHT_SSSE3_SETUP
+ mov r3, %1/2
+ lea r4, [r2*2]
+
+%if %1 == 16
+.nextrow
+ movh m0, [r0]
+ movh m1, [r1]
+ movh m2, [r0+r2]
+ movh m3, [r1+r2]
+ punpcklbw m0, m1
+ punpcklbw m2, m3
+ BIWEIGHT_SSSE3_OP
+ movh [r0], m0
+ movhps [r0+r2], m0
+ add r0, r4
+ add r1, r4
+ dec r3
+ jnz .nextrow
+ REP_RET
+%else
+ jmp mangle(ff_h264_biweight_8x16_ssse3.nextrow)
+%endif
+%endmacro
+
+INIT_XMM
+BIWEIGHT_SSSE3_8 16
+BIWEIGHT_SSSE3_8 8
+BIWEIGHT_SSSE3_8 4
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight_sse2.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight_sse2.asm
deleted file mode 100644
index 8667f0690..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264_weight_sse2.asm
+++ /dev/null
@@ -1,170 +0,0 @@
-;*****************************************************************************
-;* SSE2-optimized weighted prediction code
-;*****************************************************************************
-;* Copyright (c) 2004-2005 Michael Niedermayer, Loren Merritt
-;* Copyright (C) 2010 Eli Friedman <eli.friedman@gmail.com>
-;*
-;* This file is part of FFmpeg.
-;*
-;* FFmpeg is free software; you can redistribute it and/or
-;* modify it under the terms of the GNU Lesser General Public
-;* License as published by the Free Software Foundation; either
-;* version 2.1 of the License, or (at your option) any later version.
-;*
-;* FFmpeg 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
-;* Lesser General Public License for more details.
-;*
-;* You should have received a copy of the GNU Lesser General Public
-;* License along with FFmpeg; if not, write to the Free Software
-;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-;******************************************************************************
-
-%include "x86inc.asm"
-
-SECTION .text
-INIT_XMM
-
-;-----------------------------------------------------------------------------
-; biweight pred:
-;
-; void h264_biweight_16x16_sse2(uint8_t *dst, uint8_t *src, int stride,
-; int log2_denom, int weightd, int weights,
-; int offset);
-;-----------------------------------------------------------------------------
-
-%macro BIWEIGHT_SSE2_SETUP 0
- add r6, 1
- or r6, 1
- add r3, 1
- movd m3, r4
- movd m4, r5
- movd m5, r6
- movd m6, r3
- pslld m5, m6
- psrld m5, 1
- pshuflw m3, m3, 0
- pshuflw m4, m4, 0
- pshuflw m5, m5, 0
- punpcklqdq m3, m3
- punpcklqdq m4, m4
- punpcklqdq m5, m5
- pxor m7, m7
-%endmacro
-
-%macro BIWEIGHT_SSE2_STEPA 3
- movh m%1, [r0+%3]
- movh m%2, [r1+%3]
- punpcklbw m%1, m7
- punpcklbw m%2, m7
- pmullw m%1, m3
- pmullw m%2, m4
- paddsw m%1, m%2
-%endmacro
-
-%macro BIWEIGHT_SSE2_STEPB 0
- paddsw m0, m5
- paddsw m1, m5
- psraw m0, m6
- psraw m1, m6
- packuswb m0, m1
-%endmacro
-
-cglobal h264_biweight_16x16_sse2, 7, 7, 8
- BIWEIGHT_SSE2_SETUP
- mov r3, 16
-
-.nextrow
- BIWEIGHT_SSE2_STEPA 0, 1, 0
- BIWEIGHT_SSE2_STEPA 1, 2, 8
- BIWEIGHT_SSE2_STEPB
- mova [r0], m0
- add r0, r2
- add r1, r2
- dec r3
- jnz .nextrow
- REP_RET
-
-cglobal h264_biweight_8x8_sse2, 7, 7, 8
- BIWEIGHT_SSE2_SETUP
- mov r3, 4
- lea r4, [r2*2]
-
-.nextrow
- BIWEIGHT_SSE2_STEPA 0, 1, 0
- BIWEIGHT_SSE2_STEPA 1, 2, r2
- BIWEIGHT_SSE2_STEPB
- movh [r0], m0
- movhps [r0+r2], m0
- add r0, r4
- add r1, r4
- dec r3
- jnz .nextrow
- REP_RET
-
-%macro BIWEIGHT_SSSE3_SETUP 0
- add r6, 1
- or r6, 1
- add r3, 1
- movd m4, r4
- movd m0, r5
- movd m5, r6
- movd m6, r3
- pslld m5, m6
- psrld m5, 1
- punpcklbw m4, m0
- pshuflw m4, m4, 0
- pshuflw m5, m5, 0
- punpcklqdq m4, m4
- punpcklqdq m5, m5
-%endmacro
-
-%macro BIWEIGHT_SSSE3_OP 0
- pmaddubsw m0, m4
- pmaddubsw m2, m4
- paddsw m0, m5
- paddsw m2, m5
- psraw m0, m6
- psraw m2, m6
- packuswb m0, m2
-%endmacro
-
-cglobal h264_biweight_16x16_ssse3, 7, 7, 8
- BIWEIGHT_SSSE3_SETUP
- mov r3, 16
-
-.nextrow
- movh m0, [r0]
- movh m2, [r0+8]
- movh m3, [r1+8]
- punpcklbw m0, [r1]
- punpcklbw m2, m3
- BIWEIGHT_SSSE3_OP
- mova [r0], m0
- add r0, r2
- add r1, r2
- dec r3
- jnz .nextrow
- REP_RET
-
-cglobal h264_biweight_8x8_ssse3, 7, 7, 8
- BIWEIGHT_SSSE3_SETUP
- mov r3, 4
- lea r4, [r2*2]
-
-.nextrow
- movh m0, [r0]
- movh m1, [r1]
- movh m2, [r0+r2]
- movh m3, [r1+r2]
- punpcklbw m0, m1
- punpcklbw m2, m3
- BIWEIGHT_SSSE3_OP
- movh [r0], m0
- movhps [r0+r2], m0
- add r0, r4
- add r1, r4
- dec r3
- jnz .nextrow
- REP_RET
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264dsp_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264dsp_mmx.c
index 4b2e54603..efd8b78f1 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264dsp_mmx.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/h264dsp_mmx.c
@@ -18,8 +18,10 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/cpu.h"
+#include "libavutil/x86_cpu.h"
+#include "libavcodec/h264dsp.h"
#include "dsputil_mmx.h"
-#include "libavcodec/h264pred.h"
DECLARE_ALIGNED(8, static const uint64_t, ff_pb_3_1 ) = 0x0103010301030103ULL;
DECLARE_ALIGNED(8, static const uint64_t, ff_pb_7_3 ) = 0x0307030703070307ULL;
@@ -27,772 +29,41 @@ DECLARE_ALIGNED(8, static const uint64_t, ff_pb_7_3 ) = 0x0307030703070307ULL;
/***********************************/
/* IDCT */
-#define SUMSUB_BADC( a, b, c, d ) \
- "paddw "#b", "#a" \n\t"\
- "paddw "#d", "#c" \n\t"\
- "paddw "#b", "#b" \n\t"\
- "paddw "#d", "#d" \n\t"\
- "psubw "#a", "#b" \n\t"\
- "psubw "#c", "#d" \n\t"
-
-#define SUMSUBD2_AB( a, b, t ) \
- "movq "#b", "#t" \n\t"\
- "psraw $1 , "#b" \n\t"\
- "paddw "#a", "#b" \n\t"\
- "psraw $1 , "#a" \n\t"\
- "psubw "#t", "#a" \n\t"
-
-#define IDCT4_1D( s02, s13, d02, d13, t ) \
- SUMSUB_BA ( s02, d02 )\
- SUMSUBD2_AB( s13, d13, t )\
- SUMSUB_BADC( d13, s02, s13, d02 )
-
-#define STORE_DIFF_4P( p, t, z ) \
- "psraw $6, "#p" \n\t"\
- "movd (%0), "#t" \n\t"\
- "punpcklbw "#z", "#t" \n\t"\
- "paddsw "#t", "#p" \n\t"\
- "packuswb "#z", "#p" \n\t"\
- "movd "#p", (%0) \n\t"
-
-static void ff_h264_idct_add_mmx(uint8_t *dst, int16_t *block, int stride)
-{
- /* Load dct coeffs */
- __asm__ volatile(
- "movq (%0), %%mm0 \n\t"
- "movq 8(%0), %%mm1 \n\t"
- "movq 16(%0), %%mm2 \n\t"
- "movq 24(%0), %%mm3 \n\t"
- :: "r"(block) );
-
- __asm__ volatile(
- /* mm1=s02+s13 mm2=s02-s13 mm4=d02+d13 mm0=d02-d13 */
- IDCT4_1D( %%mm2, %%mm1, %%mm0, %%mm3, %%mm4 )
-
- "movq %0, %%mm6 \n\t"
- /* in: 1,4,0,2 out: 1,2,3,0 */
- TRANSPOSE4( %%mm3, %%mm1, %%mm0, %%mm2, %%mm4 )
-
- "paddw %%mm6, %%mm3 \n\t"
-
- /* mm2=s02+s13 mm3=s02-s13 mm4=d02+d13 mm1=d02-d13 */
- IDCT4_1D( %%mm4, %%mm2, %%mm3, %%mm0, %%mm1 )
-
- "pxor %%mm7, %%mm7 \n\t"
- :: "m"(ff_pw_32));
-
- __asm__ volatile(
- STORE_DIFF_4P( %%mm0, %%mm1, %%mm7)
- "add %1, %0 \n\t"
- STORE_DIFF_4P( %%mm2, %%mm1, %%mm7)
- "add %1, %0 \n\t"
- STORE_DIFF_4P( %%mm3, %%mm1, %%mm7)
- "add %1, %0 \n\t"
- STORE_DIFF_4P( %%mm4, %%mm1, %%mm7)
- : "+r"(dst)
- : "r" ((x86_reg)stride)
- );
-}
-
-static inline void h264_idct8_1d(int16_t *block)
-{
- __asm__ volatile(
- "movq 112(%0), %%mm7 \n\t"
- "movq 80(%0), %%mm0 \n\t"
- "movq 48(%0), %%mm3 \n\t"
- "movq 16(%0), %%mm5 \n\t"
-
- "movq %%mm0, %%mm4 \n\t"
- "movq %%mm5, %%mm1 \n\t"
- "psraw $1, %%mm4 \n\t"
- "psraw $1, %%mm1 \n\t"
- "paddw %%mm0, %%mm4 \n\t"
- "paddw %%mm5, %%mm1 \n\t"
- "paddw %%mm7, %%mm4 \n\t"
- "paddw %%mm0, %%mm1 \n\t"
- "psubw %%mm5, %%mm4 \n\t"
- "paddw %%mm3, %%mm1 \n\t"
-
- "psubw %%mm3, %%mm5 \n\t"
- "psubw %%mm3, %%mm0 \n\t"
- "paddw %%mm7, %%mm5 \n\t"
- "psubw %%mm7, %%mm0 \n\t"
- "psraw $1, %%mm3 \n\t"
- "psraw $1, %%mm7 \n\t"
- "psubw %%mm3, %%mm5 \n\t"
- "psubw %%mm7, %%mm0 \n\t"
-
- "movq %%mm4, %%mm3 \n\t"
- "movq %%mm1, %%mm7 \n\t"
- "psraw $2, %%mm1 \n\t"
- "psraw $2, %%mm3 \n\t"
- "paddw %%mm5, %%mm3 \n\t"
- "psraw $2, %%mm5 \n\t"
- "paddw %%mm0, %%mm1 \n\t"
- "psraw $2, %%mm0 \n\t"
- "psubw %%mm4, %%mm5 \n\t"
- "psubw %%mm0, %%mm7 \n\t"
-
- "movq 32(%0), %%mm2 \n\t"
- "movq 96(%0), %%mm6 \n\t"
- "movq %%mm2, %%mm4 \n\t"
- "movq %%mm6, %%mm0 \n\t"
- "psraw $1, %%mm4 \n\t"
- "psraw $1, %%mm6 \n\t"
- "psubw %%mm0, %%mm4 \n\t"
- "paddw %%mm2, %%mm6 \n\t"
-
- "movq (%0), %%mm2 \n\t"
- "movq 64(%0), %%mm0 \n\t"
- SUMSUB_BA( %%mm0, %%mm2 )
- SUMSUB_BA( %%mm6, %%mm0 )
- SUMSUB_BA( %%mm4, %%mm2 )
- SUMSUB_BA( %%mm7, %%mm6 )
- SUMSUB_BA( %%mm5, %%mm4 )
- SUMSUB_BA( %%mm3, %%mm2 )
- SUMSUB_BA( %%mm1, %%mm0 )
- :: "r"(block)
- );
-}
-
-static void ff_h264_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
-{
- int i;
- DECLARE_ALIGNED(8, int16_t, b2)[64];
-
- block[0] += 32;
-
- for(i=0; i<2; i++){
- DECLARE_ALIGNED(8, uint64_t, tmp);
-
- h264_idct8_1d(block+4*i);
-
- __asm__ volatile(
- "movq %%mm7, %0 \n\t"
- TRANSPOSE4( %%mm0, %%mm2, %%mm4, %%mm6, %%mm7 )
- "movq %%mm0, 8(%1) \n\t"
- "movq %%mm6, 24(%1) \n\t"
- "movq %%mm7, 40(%1) \n\t"
- "movq %%mm4, 56(%1) \n\t"
- "movq %0, %%mm7 \n\t"
- TRANSPOSE4( %%mm7, %%mm5, %%mm3, %%mm1, %%mm0 )
- "movq %%mm7, (%1) \n\t"
- "movq %%mm1, 16(%1) \n\t"
- "movq %%mm0, 32(%1) \n\t"
- "movq %%mm3, 48(%1) \n\t"
- : "=m"(tmp)
- : "r"(b2+32*i)
- : "memory"
- );
- }
-
- for(i=0; i<2; i++){
- h264_idct8_1d(b2+4*i);
-
- __asm__ volatile(
- "psraw $6, %%mm7 \n\t"
- "psraw $6, %%mm6 \n\t"
- "psraw $6, %%mm5 \n\t"
- "psraw $6, %%mm4 \n\t"
- "psraw $6, %%mm3 \n\t"
- "psraw $6, %%mm2 \n\t"
- "psraw $6, %%mm1 \n\t"
- "psraw $6, %%mm0 \n\t"
-
- "movq %%mm7, (%0) \n\t"
- "movq %%mm5, 16(%0) \n\t"
- "movq %%mm3, 32(%0) \n\t"
- "movq %%mm1, 48(%0) \n\t"
- "movq %%mm0, 64(%0) \n\t"
- "movq %%mm2, 80(%0) \n\t"
- "movq %%mm4, 96(%0) \n\t"
- "movq %%mm6, 112(%0) \n\t"
- :: "r"(b2+4*i)
- : "memory"
- );
- }
-
- add_pixels_clamped_mmx(b2, dst, stride);
-}
-
-#define STORE_DIFF_8P( p, d, t, z )\
- "movq "#d", "#t" \n"\
- "psraw $6, "#p" \n"\
- "punpcklbw "#z", "#t" \n"\
- "paddsw "#t", "#p" \n"\
- "packuswb "#p", "#p" \n"\
- "movq "#p", "#d" \n"
-
-#define H264_IDCT8_1D_SSE2(a,b,c,d,e,f,g,h)\
- "movdqa "#c", "#a" \n"\
- "movdqa "#g", "#e" \n"\
- "psraw $1, "#c" \n"\
- "psraw $1, "#g" \n"\
- "psubw "#e", "#c" \n"\
- "paddw "#a", "#g" \n"\
- "movdqa "#b", "#e" \n"\
- "psraw $1, "#e" \n"\
- "paddw "#b", "#e" \n"\
- "paddw "#d", "#e" \n"\
- "paddw "#f", "#e" \n"\
- "movdqa "#f", "#a" \n"\
- "psraw $1, "#a" \n"\
- "paddw "#f", "#a" \n"\
- "paddw "#h", "#a" \n"\
- "psubw "#b", "#a" \n"\
- "psubw "#d", "#b" \n"\
- "psubw "#d", "#f" \n"\
- "paddw "#h", "#b" \n"\
- "psubw "#h", "#f" \n"\
- "psraw $1, "#d" \n"\
- "psraw $1, "#h" \n"\
- "psubw "#d", "#b" \n"\
- "psubw "#h", "#f" \n"\
- "movdqa "#e", "#d" \n"\
- "movdqa "#a", "#h" \n"\
- "psraw $2, "#d" \n"\
- "psraw $2, "#h" \n"\
- "paddw "#f", "#d" \n"\
- "paddw "#b", "#h" \n"\
- "psraw $2, "#f" \n"\
- "psraw $2, "#b" \n"\
- "psubw "#f", "#e" \n"\
- "psubw "#a", "#b" \n"\
- "movdqa 0x00(%1), "#a" \n"\
- "movdqa 0x40(%1), "#f" \n"\
- SUMSUB_BA(f, a)\
- SUMSUB_BA(g, f)\
- SUMSUB_BA(c, a)\
- SUMSUB_BA(e, g)\
- SUMSUB_BA(b, c)\
- SUMSUB_BA(h, a)\
- SUMSUB_BA(d, f)
-
-static void ff_h264_idct8_add_sse2(uint8_t *dst, int16_t *block, int stride)
-{
- __asm__ volatile(
- "movdqa 0x10(%1), %%xmm1 \n"
- "movdqa 0x20(%1), %%xmm2 \n"
- "movdqa 0x30(%1), %%xmm3 \n"
- "movdqa 0x50(%1), %%xmm5 \n"
- "movdqa 0x60(%1), %%xmm6 \n"
- "movdqa 0x70(%1), %%xmm7 \n"
- H264_IDCT8_1D_SSE2(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm6, %%xmm7)
- TRANSPOSE8(%%xmm4, %%xmm1, %%xmm7, %%xmm3, %%xmm5, %%xmm0, %%xmm2, %%xmm6, (%1))
- "paddw %4, %%xmm4 \n"
- "movdqa %%xmm4, 0x00(%1) \n"
- "movdqa %%xmm2, 0x40(%1) \n"
- H264_IDCT8_1D_SSE2(%%xmm4, %%xmm0, %%xmm6, %%xmm3, %%xmm2, %%xmm5, %%xmm7, %%xmm1)
- "movdqa %%xmm6, 0x60(%1) \n"
- "movdqa %%xmm7, 0x70(%1) \n"
- "pxor %%xmm7, %%xmm7 \n"
- STORE_DIFF_8P(%%xmm2, (%0), %%xmm6, %%xmm7)
- STORE_DIFF_8P(%%xmm0, (%0,%2), %%xmm6, %%xmm7)
- STORE_DIFF_8P(%%xmm1, (%0,%2,2), %%xmm6, %%xmm7)
- STORE_DIFF_8P(%%xmm3, (%0,%3), %%xmm6, %%xmm7)
- "lea (%0,%2,4), %0 \n"
- STORE_DIFF_8P(%%xmm5, (%0), %%xmm6, %%xmm7)
- STORE_DIFF_8P(%%xmm4, (%0,%2), %%xmm6, %%xmm7)
- "movdqa 0x60(%1), %%xmm0 \n"
- "movdqa 0x70(%1), %%xmm1 \n"
- STORE_DIFF_8P(%%xmm0, (%0,%2,2), %%xmm6, %%xmm7)
- STORE_DIFF_8P(%%xmm1, (%0,%3), %%xmm6, %%xmm7)
- :"+r"(dst)
- :"r"(block), "r"((x86_reg)stride), "r"((x86_reg)3L*stride), "m"(ff_pw_32)
- );
-}
-
-static void ff_h264_idct_dc_add_mmx2(uint8_t *dst, int16_t *block, int stride)
-{
- int dc = (block[0] + 32) >> 6;
- __asm__ volatile(
- "movd %0, %%mm0 \n\t"
- "pshufw $0, %%mm0, %%mm0 \n\t"
- "pxor %%mm1, %%mm1 \n\t"
- "psubw %%mm0, %%mm1 \n\t"
- "packuswb %%mm0, %%mm0 \n\t"
- "packuswb %%mm1, %%mm1 \n\t"
- ::"r"(dc)
- );
- __asm__ volatile(
- "movd %0, %%mm2 \n\t"
- "movd %1, %%mm3 \n\t"
- "movd %2, %%mm4 \n\t"
- "movd %3, %%mm5 \n\t"
- "paddusb %%mm0, %%mm2 \n\t"
- "paddusb %%mm0, %%mm3 \n\t"
- "paddusb %%mm0, %%mm4 \n\t"
- "paddusb %%mm0, %%mm5 \n\t"
- "psubusb %%mm1, %%mm2 \n\t"
- "psubusb %%mm1, %%mm3 \n\t"
- "psubusb %%mm1, %%mm4 \n\t"
- "psubusb %%mm1, %%mm5 \n\t"
- "movd %%mm2, %0 \n\t"
- "movd %%mm3, %1 \n\t"
- "movd %%mm4, %2 \n\t"
- "movd %%mm5, %3 \n\t"
- :"+m"(*(uint32_t*)(dst+0*stride)),
- "+m"(*(uint32_t*)(dst+1*stride)),
- "+m"(*(uint32_t*)(dst+2*stride)),
- "+m"(*(uint32_t*)(dst+3*stride))
- );
-}
-
-static void ff_h264_idct8_dc_add_mmx2(uint8_t *dst, int16_t *block, int stride)
-{
- int dc = (block[0] + 32) >> 6;
- int y;
- __asm__ volatile(
- "movd %0, %%mm0 \n\t"
- "pshufw $0, %%mm0, %%mm0 \n\t"
- "pxor %%mm1, %%mm1 \n\t"
- "psubw %%mm0, %%mm1 \n\t"
- "packuswb %%mm0, %%mm0 \n\t"
- "packuswb %%mm1, %%mm1 \n\t"
- ::"r"(dc)
- );
- for(y=2; y--; dst += 4*stride){
- __asm__ volatile(
- "movq %0, %%mm2 \n\t"
- "movq %1, %%mm3 \n\t"
- "movq %2, %%mm4 \n\t"
- "movq %3, %%mm5 \n\t"
- "paddusb %%mm0, %%mm2 \n\t"
- "paddusb %%mm0, %%mm3 \n\t"
- "paddusb %%mm0, %%mm4 \n\t"
- "paddusb %%mm0, %%mm5 \n\t"
- "psubusb %%mm1, %%mm2 \n\t"
- "psubusb %%mm1, %%mm3 \n\t"
- "psubusb %%mm1, %%mm4 \n\t"
- "psubusb %%mm1, %%mm5 \n\t"
- "movq %%mm2, %0 \n\t"
- "movq %%mm3, %1 \n\t"
- "movq %%mm4, %2 \n\t"
- "movq %%mm5, %3 \n\t"
- :"+m"(*(uint64_t*)(dst+0*stride)),
- "+m"(*(uint64_t*)(dst+1*stride)),
- "+m"(*(uint64_t*)(dst+2*stride)),
- "+m"(*(uint64_t*)(dst+3*stride))
- );
- }
-}
-
-//FIXME this table is a duplicate from h264data.h, and will be removed once the tables from, h264 have been split
-static const uint8_t scan8[16 + 2*4]={
- 4+1*8, 5+1*8, 4+2*8, 5+2*8,
- 6+1*8, 7+1*8, 6+2*8, 7+2*8,
- 4+3*8, 5+3*8, 4+4*8, 5+4*8,
- 6+3*8, 7+3*8, 6+4*8, 7+4*8,
- 1+1*8, 2+1*8,
- 1+2*8, 2+2*8,
- 1+4*8, 2+4*8,
- 1+5*8, 2+5*8,
-};
-
-static void ff_h264_idct_add16_mmx(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i++){
- if(nnzc[ scan8[i] ])
- ff_h264_idct_add_mmx(dst + block_offset[i], block + i*16, stride);
- }
-}
-
-static void ff_h264_idct8_add4_mmx(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i+=4){
- if(nnzc[ scan8[i] ])
- ff_h264_idct8_add_mmx(dst + block_offset[i], block + i*16, stride);
- }
-}
-
-
-static void ff_h264_idct_add16_mmx2(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i++){
- int nnz = nnzc[ scan8[i] ];
- if(nnz){
- if(nnz==1 && block[i*16]) ff_h264_idct_dc_add_mmx2(dst + block_offset[i], block + i*16, stride);
- else ff_h264_idct_add_mmx (dst + block_offset[i], block + i*16, stride);
- }
- }
-}
-
-static void ff_h264_idct_add16intra_mmx(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i++){
- if(nnzc[ scan8[i] ] || block[i*16])
- ff_h264_idct_add_mmx(dst + block_offset[i], block + i*16, stride);
- }
-}
-
-static void ff_h264_idct_add16intra_mmx2(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i++){
- if(nnzc[ scan8[i] ]) ff_h264_idct_add_mmx (dst + block_offset[i], block + i*16, stride);
- else if(block[i*16]) ff_h264_idct_dc_add_mmx2(dst + block_offset[i], block + i*16, stride);
- }
-}
-
-static void ff_h264_idct8_add4_mmx2(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i+=4){
- int nnz = nnzc[ scan8[i] ];
- if(nnz){
- if(nnz==1 && block[i*16]) ff_h264_idct8_dc_add_mmx2(dst + block_offset[i], block + i*16, stride);
- else ff_h264_idct8_add_mmx (dst + block_offset[i], block + i*16, stride);
- }
- }
-}
-
-static void ff_h264_idct8_add4_sse2(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i+=4){
- int nnz = nnzc[ scan8[i] ];
- if(nnz){
- if(nnz==1 && block[i*16]) ff_h264_idct8_dc_add_mmx2(dst + block_offset[i], block + i*16, stride);
- else ff_h264_idct8_add_sse2 (dst + block_offset[i], block + i*16, stride);
- }
- }
-}
-
-static void ff_h264_idct_add8_mmx(uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=16; i<16+8; i++){
- if(nnzc[ scan8[i] ] || block[i*16])
- ff_h264_idct_add_mmx (dest[(i&4)>>2] + block_offset[i], block + i*16, stride);
- }
-}
-
-static void ff_h264_idct_add8_mmx2(uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=16; i<16+8; i++){
- if(nnzc[ scan8[i] ])
- ff_h264_idct_add_mmx (dest[(i&4)>>2] + block_offset[i], block + i*16, stride);
- else if(block[i*16])
- ff_h264_idct_dc_add_mmx2(dest[(i&4)>>2] + block_offset[i], block + i*16, stride);
- }
-}
-
-#if CONFIG_GPL && HAVE_YASM
-static void ff_h264_idct_dc_add8_mmx2(uint8_t *dst, int16_t *block, int stride)
-{
- __asm__ volatile(
- "movd %0, %%mm0 \n\t" // 0 0 X D
- "punpcklwd %1, %%mm0 \n\t" // x X d D
- "paddsw %2, %%mm0 \n\t"
- "psraw $6, %%mm0 \n\t"
- "punpcklwd %%mm0, %%mm0 \n\t" // d d D D
- "pxor %%mm1, %%mm1 \n\t" // 0 0 0 0
- "psubw %%mm0, %%mm1 \n\t" // -d-d-D-D
- "packuswb %%mm1, %%mm0 \n\t" // -d-d-D-D d d D D
- "pshufw $0xFA, %%mm0, %%mm1 \n\t" // -d-d-d-d-D-D-D-D
- "punpcklwd %%mm0, %%mm0 \n\t" // d d d d D D D D
- ::"m"(block[ 0]),
- "m"(block[16]),
- "m"(ff_pw_32)
- );
- __asm__ volatile(
- "movq %0, %%mm2 \n\t"
- "movq %1, %%mm3 \n\t"
- "movq %2, %%mm4 \n\t"
- "movq %3, %%mm5 \n\t"
- "paddusb %%mm0, %%mm2 \n\t"
- "paddusb %%mm0, %%mm3 \n\t"
- "paddusb %%mm0, %%mm4 \n\t"
- "paddusb %%mm0, %%mm5 \n\t"
- "psubusb %%mm1, %%mm2 \n\t"
- "psubusb %%mm1, %%mm3 \n\t"
- "psubusb %%mm1, %%mm4 \n\t"
- "psubusb %%mm1, %%mm5 \n\t"
- "movq %%mm2, %0 \n\t"
- "movq %%mm3, %1 \n\t"
- "movq %%mm4, %2 \n\t"
- "movq %%mm5, %3 \n\t"
- :"+m"(*(uint64_t*)(dst+0*stride)),
- "+m"(*(uint64_t*)(dst+1*stride)),
- "+m"(*(uint64_t*)(dst+2*stride)),
- "+m"(*(uint64_t*)(dst+3*stride))
- );
-}
-
-extern void ff_x264_add8x4_idct_sse2(uint8_t *dst, int16_t *block, int stride);
-
-static void ff_h264_idct_add16_sse2(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i+=2)
- if(nnzc[ scan8[i+0] ]|nnzc[ scan8[i+1] ])
- ff_x264_add8x4_idct_sse2 (dst + block_offset[i], block + i*16, stride);
-}
-
-static void ff_h264_idct_add16intra_sse2(uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=0; i<16; i+=2){
- if(nnzc[ scan8[i+0] ]|nnzc[ scan8[i+1] ])
- ff_x264_add8x4_idct_sse2 (dst + block_offset[i], block + i*16, stride);
- else if(block[i*16]|block[i*16+16])
- ff_h264_idct_dc_add8_mmx2(dst + block_offset[i], block + i*16, stride);
- }
-}
-
-static void ff_h264_idct_add8_sse2(uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6*8]){
- int i;
- for(i=16; i<16+8; i+=2){
- if(nnzc[ scan8[i+0] ]|nnzc[ scan8[i+1] ])
- ff_x264_add8x4_idct_sse2 (dest[(i&4)>>2] + block_offset[i], block + i*16, stride);
- else if(block[i*16]|block[i*16+16])
- ff_h264_idct_dc_add8_mmx2(dest[(i&4)>>2] + block_offset[i], block + i*16, stride);
- }
-}
-#endif
+void ff_h264_idct_add_mmx (uint8_t *dst, int16_t *block, int stride);
+void ff_h264_idct8_add_mmx (uint8_t *dst, int16_t *block, int stride);
+void ff_h264_idct8_add_sse2 (uint8_t *dst, int16_t *block, int stride);
+void ff_h264_idct_dc_add_mmx2 (uint8_t *dst, int16_t *block, int stride);
+void ff_h264_idct8_dc_add_mmx2(uint8_t *dst, int16_t *block, int stride);
+
+void ff_h264_idct_add16_mmx (uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct8_add4_mmx (uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add16_mmx2 (uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add16intra_mmx (uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add16intra_mmx2(uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct8_add4_mmx2 (uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct8_add4_sse2 (uint8_t *dst, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add8_mmx (uint8_t **dest, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add8_mmx2 (uint8_t **dest, const int *block_offset,
+ DCTELEM *block, int stride, const uint8_t nnzc[6*8]);
+
+void ff_h264_idct_add16_sse2 (uint8_t *dst, const int *block_offset, DCTELEM *block,
+ int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add16intra_sse2(uint8_t *dst, const int *block_offset, DCTELEM *block,
+ int stride, const uint8_t nnzc[6*8]);
+void ff_h264_idct_add8_sse2 (uint8_t **dest, const int *block_offset, DCTELEM *block,
+ int stride, const uint8_t nnzc[6*8]);
/***********************************/
/* deblocking */
-// out: o = |x-y|>a
-// clobbers: t
-#define DIFF_GT_MMX(x,y,a,o,t)\
- "movq "#y", "#t" \n\t"\
- "movq "#x", "#o" \n\t"\
- "psubusb "#x", "#t" \n\t"\
- "psubusb "#y", "#o" \n\t"\
- "por "#t", "#o" \n\t"\
- "psubusb "#a", "#o" \n\t"
-
-// out: o = |x-y|>a
-// clobbers: t
-#define DIFF_GT2_MMX(x,y,a,o,t)\
- "movq "#y", "#t" \n\t"\
- "movq "#x", "#o" \n\t"\
- "psubusb "#x", "#t" \n\t"\
- "psubusb "#y", "#o" \n\t"\
- "psubusb "#a", "#t" \n\t"\
- "psubusb "#a", "#o" \n\t"\
- "pcmpeqb "#t", "#o" \n\t"\
-
-// in: mm0=p1 mm1=p0 mm2=q0 mm3=q1
-// out: mm5=beta-1, mm7=mask
-// clobbers: mm4,mm6
-#define H264_DEBLOCK_MASK(alpha1, beta1) \
- "pshufw $0, "#alpha1", %%mm4 \n\t"\
- "pshufw $0, "#beta1 ", %%mm5 \n\t"\
- "packuswb %%mm4, %%mm4 \n\t"\
- "packuswb %%mm5, %%mm5 \n\t"\
- DIFF_GT_MMX(%%mm1, %%mm2, %%mm4, %%mm7, %%mm6) /* |p0-q0| > alpha-1 */\
- DIFF_GT_MMX(%%mm0, %%mm1, %%mm5, %%mm4, %%mm6) /* |p1-p0| > beta-1 */\
- "por %%mm4, %%mm7 \n\t"\
- DIFF_GT_MMX(%%mm3, %%mm2, %%mm5, %%mm4, %%mm6) /* |q1-q0| > beta-1 */\
- "por %%mm4, %%mm7 \n\t"\
- "pxor %%mm6, %%mm6 \n\t"\
- "pcmpeqb %%mm6, %%mm7 \n\t"
-
-// in: mm0=p1 mm1=p0 mm2=q0 mm3=q1 mm7=(tc&mask)
-// out: mm1=p0' mm2=q0'
-// clobbers: mm0,3-6
-#define H264_DEBLOCK_P0_Q0(pb_01, pb_3f)\
- "movq %%mm1 , %%mm5 \n\t"\
- "pxor %%mm2 , %%mm5 \n\t" /* p0^q0*/\
- "pand "#pb_01" , %%mm5 \n\t" /* (p0^q0)&1*/\
- "pcmpeqb %%mm4 , %%mm4 \n\t"\
- "pxor %%mm4 , %%mm3 \n\t"\
- "pavgb %%mm0 , %%mm3 \n\t" /* (p1 - q1 + 256)>>1*/\
- "pavgb "MANGLE(ff_pb_3)" , %%mm3 \n\t" /*(((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2*/\
- "pxor %%mm1 , %%mm4 \n\t"\
- "pavgb %%mm2 , %%mm4 \n\t" /* (q0 - p0 + 256)>>1*/\
- "pavgb %%mm5 , %%mm3 \n\t"\
- "paddusb %%mm4 , %%mm3 \n\t" /* d+128+33*/\
- "movq "MANGLE(ff_pb_A1)" , %%mm6 \n\t"\
- "psubusb %%mm3 , %%mm6 \n\t"\
- "psubusb "MANGLE(ff_pb_A1)" , %%mm3 \n\t"\
- "pminub %%mm7 , %%mm6 \n\t"\
- "pminub %%mm7 , %%mm3 \n\t"\
- "psubusb %%mm6 , %%mm1 \n\t"\
- "psubusb %%mm3 , %%mm2 \n\t"\
- "paddusb %%mm3 , %%mm1 \n\t"\
- "paddusb %%mm6 , %%mm2 \n\t"
-
-// in: mm0=p1 mm1=p0 mm2=q0 mm3=q1 mm7=(tc&mask) %8=ff_bone
-// out: (q1addr) = av_clip( (q2+((p0+q0+1)>>1))>>1, q1-tc0, q1+tc0 )
-// clobbers: q2, tmp, tc0
-#define H264_DEBLOCK_Q1(p1, q2, q2addr, q1addr, tc0, tmp)\
- "movq %%mm1, "#tmp" \n\t"\
- "pavgb %%mm2, "#tmp" \n\t"\
- "pavgb "#tmp", "#q2" \n\t" /* avg(p2,avg(p0,q0)) */\
- "pxor "q2addr", "#tmp" \n\t"\
- "pand %9, "#tmp" \n\t" /* (p2^avg(p0,q0))&1 */\
- "psubusb "#tmp", "#q2" \n\t" /* (p2+((p0+q0+1)>>1))>>1 */\
- "movq "#p1", "#tmp" \n\t"\
- "psubusb "#tc0", "#tmp" \n\t"\
- "paddusb "#p1", "#tc0" \n\t"\
- "pmaxub "#tmp", "#q2" \n\t"\
- "pminub "#tc0", "#q2" \n\t"\
- "movq "#q2", "q1addr" \n\t"
-
-static inline void h264_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alpha1, int beta1, int8_t *tc0)
-{
- DECLARE_ALIGNED(8, uint64_t, tmp0)[2];
-
- __asm__ volatile(
- "movq (%2,%4), %%mm0 \n\t" //p1
- "movq (%2,%4,2), %%mm1 \n\t" //p0
- "movq (%3), %%mm2 \n\t" //q0
- "movq (%3,%4), %%mm3 \n\t" //q1
- H264_DEBLOCK_MASK(%7, %8)
-
- "movd %6, %%mm4 \n\t"
- "punpcklbw %%mm4, %%mm4 \n\t"
- "punpcklwd %%mm4, %%mm4 \n\t"
- "pcmpeqb %%mm3, %%mm3 \n\t"
- "movq %%mm4, %%mm6 \n\t"
- "pcmpgtb %%mm3, %%mm4 \n\t"
- "movq %%mm6, %1 \n\t"
- "pand %%mm4, %%mm7 \n\t"
- "movq %%mm7, %0 \n\t"
-
- /* filter p1 */
- "movq (%2), %%mm3 \n\t" //p2
- DIFF_GT2_MMX(%%mm1, %%mm3, %%mm5, %%mm6, %%mm4) // |p2-p0|>beta-1
- "pand %%mm7, %%mm6 \n\t" // mask & |p2-p0|<beta
- "pand %1, %%mm7 \n\t" // mask & tc0
- "movq %%mm7, %%mm4 \n\t"
- "psubb %%mm6, %%mm7 \n\t"
- "pand %%mm4, %%mm6 \n\t" // mask & |p2-p0|<beta & tc0
- H264_DEBLOCK_Q1(%%mm0, %%mm3, "(%2)", "(%2,%4)", %%mm6, %%mm4)
-
- /* filter q1 */
- "movq (%3,%4,2), %%mm4 \n\t" //q2
- DIFF_GT2_MMX(%%mm2, %%mm4, %%mm5, %%mm6, %%mm3) // |q2-q0|>beta-1
- "pand %0, %%mm6 \n\t"
- "movq %1, %%mm5 \n\t" // can be merged with the and below but is slower then
- "pand %%mm6, %%mm5 \n\t"
- "psubb %%mm6, %%mm7 \n\t"
- "movq (%3,%4), %%mm3 \n\t"
- H264_DEBLOCK_Q1(%%mm3, %%mm4, "(%3,%4,2)", "(%3,%4)", %%mm5, %%mm6)
-
- /* filter p0, q0 */
- H264_DEBLOCK_P0_Q0(%9, unused)
- "movq %%mm1, (%2,%4,2) \n\t"
- "movq %%mm2, (%3) \n\t"
-
- : "=m"(tmp0[0]), "=m"(tmp0[1])
- : "r"(pix-3*stride), "r"(pix), "r"((x86_reg)stride),
- "m"(*tmp0/*unused*/), "m"(*(uint32_t*)tc0), "m"(alpha1), "m"(beta1),
- "m"(ff_bone)
- );
-}
-
-static void h264_v_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
-{
- if((tc0[0] & tc0[1]) >= 0)
- h264_loop_filter_luma_mmx2(pix, stride, alpha-1, beta-1, tc0);
- if((tc0[2] & tc0[3]) >= 0)
- h264_loop_filter_luma_mmx2(pix+8, stride, alpha-1, beta-1, tc0+2);
-}
-static void h264_h_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
-{
- //FIXME: could cut some load/stores by merging transpose with filter
- // also, it only needs to transpose 6x8
- DECLARE_ALIGNED(8, uint8_t, trans)[8*8];
- int i;
- for(i=0; i<2; i++, pix+=8*stride, tc0+=2) {
- if((tc0[0] & tc0[1]) < 0)
- continue;
- transpose4x4(trans, pix-4, 8, stride);
- transpose4x4(trans +4*8, pix, 8, stride);
- transpose4x4(trans+4, pix-4+4*stride, 8, stride);
- transpose4x4(trans+4+4*8, pix +4*stride, 8, stride);
- h264_loop_filter_luma_mmx2(trans+4*8, 8, alpha-1, beta-1, tc0);
- transpose4x4(pix-2, trans +2*8, stride, 8);
- transpose4x4(pix-2+4*stride, trans+4+2*8, stride, 8);
- }
-}
-
-static inline void h264_loop_filter_chroma_mmx2(uint8_t *pix, int stride, int alpha1, int beta1, int8_t *tc0)
-{
- __asm__ volatile(
- "movq (%0), %%mm0 \n\t" //p1
- "movq (%0,%2), %%mm1 \n\t" //p0
- "movq (%1), %%mm2 \n\t" //q0
- "movq (%1,%2), %%mm3 \n\t" //q1
- H264_DEBLOCK_MASK(%4, %5)
- "movd %3, %%mm6 \n\t"
- "punpcklbw %%mm6, %%mm6 \n\t"
- "pand %%mm6, %%mm7 \n\t" // mm7 = tc&mask
- H264_DEBLOCK_P0_Q0(%6, %7)
- "movq %%mm1, (%0,%2) \n\t"
- "movq %%mm2, (%1) \n\t"
-
- :: "r"(pix-2*stride), "r"(pix), "r"((x86_reg)stride),
- "r"(*(uint32_t*)tc0),
- "m"(alpha1), "m"(beta1), "m"(ff_bone), "m"(ff_pb_3F)
- );
-}
-
-static void h264_v_loop_filter_chroma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
-{
- h264_loop_filter_chroma_mmx2(pix, stride, alpha-1, beta-1, tc0);
-}
-
-static void h264_h_loop_filter_chroma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
-{
- //FIXME: could cut some load/stores by merging transpose with filter
- DECLARE_ALIGNED(8, uint8_t, trans)[8*4];
- transpose4x4(trans, pix-2, 8, stride);
- transpose4x4(trans+4, pix-2+4*stride, 8, stride);
- h264_loop_filter_chroma_mmx2(trans+2*8, 8, alpha-1, beta-1, tc0);
- transpose4x4(pix-2, trans, stride, 8);
- transpose4x4(pix-2+4*stride, trans+4, stride, 8);
-}
-
-// p0 = (p0 + q1 + 2*p1 + 2) >> 2
-#define H264_FILTER_CHROMA4(p0, p1, q1, one) \
- "movq "#p0", %%mm4 \n\t"\
- "pxor "#q1", %%mm4 \n\t"\
- "pand "#one", %%mm4 \n\t" /* mm4 = (p0^q1)&1 */\
- "pavgb "#q1", "#p0" \n\t"\
- "psubusb %%mm4, "#p0" \n\t"\
- "pavgb "#p1", "#p0" \n\t" /* dst = avg(p1, avg(p0,q1) - ((p0^q1)&1)) */\
-
-static inline void h264_loop_filter_chroma_intra_mmx2(uint8_t *pix, int stride, int alpha1, int beta1)
-{
- __asm__ volatile(
- "movq (%0), %%mm0 \n\t"
- "movq (%0,%2), %%mm1 \n\t"
- "movq (%1), %%mm2 \n\t"
- "movq (%1,%2), %%mm3 \n\t"
- H264_DEBLOCK_MASK(%3, %4)
- "movq %%mm1, %%mm5 \n\t"
- "movq %%mm2, %%mm6 \n\t"
- H264_FILTER_CHROMA4(%%mm1, %%mm0, %%mm3, %5) //p0'
- H264_FILTER_CHROMA4(%%mm2, %%mm3, %%mm0, %5) //q0'
- "psubb %%mm5, %%mm1 \n\t"
- "psubb %%mm6, %%mm2 \n\t"
- "pand %%mm7, %%mm1 \n\t"
- "pand %%mm7, %%mm2 \n\t"
- "paddb %%mm5, %%mm1 \n\t"
- "paddb %%mm6, %%mm2 \n\t"
- "movq %%mm1, (%0,%2) \n\t"
- "movq %%mm2, (%1) \n\t"
- :: "r"(pix-2*stride), "r"(pix), "r"((x86_reg)stride),
- "m"(alpha1), "m"(beta1), "m"(ff_bone)
- );
-}
-
-static void h264_v_loop_filter_chroma_intra_mmx2(uint8_t *pix, int stride, int alpha, int beta)
-{
- h264_loop_filter_chroma_intra_mmx2(pix, stride, alpha-1, beta-1);
-}
-
-static void h264_h_loop_filter_chroma_intra_mmx2(uint8_t *pix, int stride, int alpha, int beta)
-{
- //FIXME: could cut some load/stores by merging transpose with filter
- DECLARE_ALIGNED(8, uint8_t, trans)[8*4];
- transpose4x4(trans, pix-2, 8, stride);
- transpose4x4(trans+4, pix-2+4*stride, 8, stride);
- h264_loop_filter_chroma_intra_mmx2(trans+2*8, 8, alpha-1, beta-1);
- transpose4x4(pix-2, trans, stride, 8);
- transpose4x4(pix-2+4*stride, trans+4, stride, 8);
-}
-
static void h264_loop_filter_strength_mmx2( int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2],
int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field ) {
int dir;
@@ -917,1507 +188,162 @@ static void h264_loop_filter_strength_mmx2( int16_t bS[2][4][4], uint8_t nnz[40]
);
}
-/***********************************/
-/* motion compensation */
-
-#define QPEL_H264V_MM(A,B,C,D,E,F,OP,T,Z,d,q)\
- "mov"#q" "#C", "#T" \n\t"\
- "mov"#d" (%0), "#F" \n\t"\
- "paddw "#D", "#T" \n\t"\
- "psllw $2, "#T" \n\t"\
- "psubw "#B", "#T" \n\t"\
- "psubw "#E", "#T" \n\t"\
- "punpcklbw "#Z", "#F" \n\t"\
- "pmullw %4, "#T" \n\t"\
- "paddw %5, "#A" \n\t"\
- "add %2, %0 \n\t"\
- "paddw "#F", "#A" \n\t"\
- "paddw "#A", "#T" \n\t"\
- "psraw $5, "#T" \n\t"\
- "packuswb "#T", "#T" \n\t"\
- OP(T, (%1), A, d)\
- "add %3, %1 \n\t"
-
-#define QPEL_H264HV_MM(A,B,C,D,E,F,OF,T,Z,d,q)\
- "mov"#q" "#C", "#T" \n\t"\
- "mov"#d" (%0), "#F" \n\t"\
- "paddw "#D", "#T" \n\t"\
- "psllw $2, "#T" \n\t"\
- "paddw %4, "#A" \n\t"\
- "psubw "#B", "#T" \n\t"\
- "psubw "#E", "#T" \n\t"\
- "punpcklbw "#Z", "#F" \n\t"\
- "pmullw %3, "#T" \n\t"\
- "paddw "#F", "#A" \n\t"\
- "add %2, %0 \n\t"\
- "paddw "#A", "#T" \n\t"\
- "mov"#q" "#T", "#OF"(%1) \n\t"
-
-#define QPEL_H264V(A,B,C,D,E,F,OP) QPEL_H264V_MM(A,B,C,D,E,F,OP,%%mm6,%%mm7,d,q)
-#define QPEL_H264HV(A,B,C,D,E,F,OF) QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%mm6,%%mm7,d,q)
-#define QPEL_H264V_XMM(A,B,C,D,E,F,OP) QPEL_H264V_MM(A,B,C,D,E,F,OP,%%xmm6,%%xmm7,q,dqa)
-#define QPEL_H264HV_XMM(A,B,C,D,E,F,OF) QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%xmm6,%%xmm7,q,dqa)
-
-
-#define QPEL_H264(OPNAME, OP, MMX)\
-static av_noinline void OPNAME ## h264_qpel4_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- int h=4;\
-\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movq "MANGLE(ff_pw_5) ", %%mm4\n\t"\
- "movq "MANGLE(ff_pw_16)", %%mm5\n\t"\
- "1: \n\t"\
- "movd -1(%0), %%mm1 \n\t"\
- "movd (%0), %%mm2 \n\t"\
- "movd 1(%0), %%mm3 \n\t"\
- "movd 2(%0), %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "paddw %%mm0, %%mm1 \n\t"\
- "paddw %%mm3, %%mm2 \n\t"\
- "movd -2(%0), %%mm0 \n\t"\
- "movd 3(%0), %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "paddw %%mm3, %%mm0 \n\t"\
- "psllw $2, %%mm2 \n\t"\
- "psubw %%mm1, %%mm2 \n\t"\
- "pmullw %%mm4, %%mm2 \n\t"\
- "paddw %%mm5, %%mm0 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "packuswb %%mm0, %%mm0 \n\t"\
- OP(%%mm0, (%1),%%mm6, d)\
- "add %3, %0 \n\t"\
- "add %4, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(src), "+c"(dst), "+g"(h)\
- : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
- : "memory"\
- );\
-}\
-static av_noinline void OPNAME ## h264_qpel4_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
- int h=4;\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movq %0, %%mm4 \n\t"\
- "movq %1, %%mm5 \n\t"\
- :: "m"(ff_pw_5), "m"(ff_pw_16)\
- );\
- do{\
- __asm__ volatile(\
- "movd -1(%0), %%mm1 \n\t"\
- "movd (%0), %%mm2 \n\t"\
- "movd 1(%0), %%mm3 \n\t"\
- "movd 2(%0), %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "paddw %%mm0, %%mm1 \n\t"\
- "paddw %%mm3, %%mm2 \n\t"\
- "movd -2(%0), %%mm0 \n\t"\
- "movd 3(%0), %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "paddw %%mm3, %%mm0 \n\t"\
- "psllw $2, %%mm2 \n\t"\
- "psubw %%mm1, %%mm2 \n\t"\
- "pmullw %%mm4, %%mm2 \n\t"\
- "paddw %%mm5, %%mm0 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "movd (%2), %%mm3 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "packuswb %%mm0, %%mm0 \n\t"\
- PAVGB" %%mm3, %%mm0 \n\t"\
- OP(%%mm0, (%1),%%mm6, d)\
- "add %4, %0 \n\t"\
- "add %4, %1 \n\t"\
- "add %3, %2 \n\t"\
- : "+a"(src), "+c"(dst), "+d"(src2)\
- : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
- : "memory"\
- );\
- }while(--h);\
-}\
-static av_noinline void OPNAME ## h264_qpel4_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- src -= 2*srcStride;\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movd (%0), %%mm0 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm1 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm2 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm3 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm4 \n\t"\
- "add %2, %0 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm4 \n\t"\
- QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
- QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
- QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
- QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
- \
- : "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
-}\
-static av_noinline void OPNAME ## h264_qpel4_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
- int h=4;\
- int w=3;\
- src -= 2*srcStride+2;\
- while(w--){\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movd (%0), %%mm0 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm1 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm2 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm3 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm4 \n\t"\
- "add %2, %0 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm4 \n\t"\
- QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 0*8*3)\
- QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 1*8*3)\
- QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 2*8*3)\
- QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 3*8*3)\
- \
- : "+a"(src)\
- : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- tmp += 4;\
- src += 4 - 9*srcStride;\
- }\
- tmp -= 3*4;\
- __asm__ volatile(\
- "1: \n\t"\
- "movq (%0), %%mm0 \n\t"\
- "paddw 10(%0), %%mm0 \n\t"\
- "movq 2(%0), %%mm1 \n\t"\
- "paddw 8(%0), %%mm1 \n\t"\
- "movq 4(%0), %%mm2 \n\t"\
- "paddw 6(%0), %%mm2 \n\t"\
- "psubw %%mm1, %%mm0 \n\t"/*a-b (abccba)*/\
- "psraw $2, %%mm0 \n\t"/*(a-b)/4 */\
- "psubw %%mm1, %%mm0 \n\t"/*(a-b)/4-b */\
- "paddsw %%mm2, %%mm0 \n\t"\
- "psraw $2, %%mm0 \n\t"/*((a-b)/4-b+c)/4 */\
- "paddw %%mm2, %%mm0 \n\t"/*(a-5*b+20*c)/16 */\
- "psraw $6, %%mm0 \n\t"\
- "packuswb %%mm0, %%mm0 \n\t"\
- OP(%%mm0, (%1),%%mm7, d)\
- "add $24, %0 \n\t"\
- "add %3, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(tmp), "+c"(dst), "+g"(h)\
- : "S"((x86_reg)dstStride)\
- : "memory"\
- );\
-}\
-\
-static av_noinline void OPNAME ## h264_qpel8_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- int h=8;\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movq "MANGLE(ff_pw_5)", %%mm6\n\t"\
- "1: \n\t"\
- "movq (%0), %%mm0 \n\t"\
- "movq 1(%0), %%mm2 \n\t"\
- "movq %%mm0, %%mm1 \n\t"\
- "movq %%mm2, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpckhbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpckhbw %%mm7, %%mm3 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "paddw %%mm3, %%mm1 \n\t"\
- "psllw $2, %%mm0 \n\t"\
- "psllw $2, %%mm1 \n\t"\
- "movq -1(%0), %%mm2 \n\t"\
- "movq 2(%0), %%mm4 \n\t"\
- "movq %%mm2, %%mm3 \n\t"\
- "movq %%mm4, %%mm5 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpckhbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm4 \n\t"\
- "punpckhbw %%mm7, %%mm5 \n\t"\
- "paddw %%mm4, %%mm2 \n\t"\
- "paddw %%mm3, %%mm5 \n\t"\
- "psubw %%mm2, %%mm0 \n\t"\
- "psubw %%mm5, %%mm1 \n\t"\
- "pmullw %%mm6, %%mm0 \n\t"\
- "pmullw %%mm6, %%mm1 \n\t"\
- "movd -2(%0), %%mm2 \n\t"\
- "movd 7(%0), %%mm5 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm5 \n\t"\
- "paddw %%mm3, %%mm2 \n\t"\
- "paddw %%mm5, %%mm4 \n\t"\
- "movq "MANGLE(ff_pw_16)", %%mm5\n\t"\
- "paddw %%mm5, %%mm2 \n\t"\
- "paddw %%mm5, %%mm4 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "paddw %%mm4, %%mm1 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "psraw $5, %%mm1 \n\t"\
- "packuswb %%mm1, %%mm0 \n\t"\
- OP(%%mm0, (%1),%%mm5, q)\
- "add %3, %0 \n\t"\
- "add %4, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(src), "+c"(dst), "+g"(h)\
- : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
- : "memory"\
- );\
-}\
-\
-static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
- int h=8;\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movq %0, %%mm6 \n\t"\
- :: "m"(ff_pw_5)\
- );\
- do{\
- __asm__ volatile(\
- "movq (%0), %%mm0 \n\t"\
- "movq 1(%0), %%mm2 \n\t"\
- "movq %%mm0, %%mm1 \n\t"\
- "movq %%mm2, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpckhbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpckhbw %%mm7, %%mm3 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "paddw %%mm3, %%mm1 \n\t"\
- "psllw $2, %%mm0 \n\t"\
- "psllw $2, %%mm1 \n\t"\
- "movq -1(%0), %%mm2 \n\t"\
- "movq 2(%0), %%mm4 \n\t"\
- "movq %%mm2, %%mm3 \n\t"\
- "movq %%mm4, %%mm5 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpckhbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm4 \n\t"\
- "punpckhbw %%mm7, %%mm5 \n\t"\
- "paddw %%mm4, %%mm2 \n\t"\
- "paddw %%mm3, %%mm5 \n\t"\
- "psubw %%mm2, %%mm0 \n\t"\
- "psubw %%mm5, %%mm1 \n\t"\
- "pmullw %%mm6, %%mm0 \n\t"\
- "pmullw %%mm6, %%mm1 \n\t"\
- "movd -2(%0), %%mm2 \n\t"\
- "movd 7(%0), %%mm5 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm5 \n\t"\
- "paddw %%mm3, %%mm2 \n\t"\
- "paddw %%mm5, %%mm4 \n\t"\
- "movq %5, %%mm5 \n\t"\
- "paddw %%mm5, %%mm2 \n\t"\
- "paddw %%mm5, %%mm4 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "paddw %%mm4, %%mm1 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "psraw $5, %%mm1 \n\t"\
- "movq (%2), %%mm4 \n\t"\
- "packuswb %%mm1, %%mm0 \n\t"\
- PAVGB" %%mm4, %%mm0 \n\t"\
- OP(%%mm0, (%1),%%mm5, q)\
- "add %4, %0 \n\t"\
- "add %4, %1 \n\t"\
- "add %3, %2 \n\t"\
- : "+a"(src), "+c"(dst), "+d"(src2)\
- : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
- "m"(ff_pw_16)\
- : "memory"\
- );\
- }while(--h);\
-}\
-\
-static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
- int w= 2;\
- src -= 2*srcStride;\
- \
- while(w--){\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movd (%0), %%mm0 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm1 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm2 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm3 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm4 \n\t"\
- "add %2, %0 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm4 \n\t"\
- QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
- QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
- QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
- QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
- QPEL_H264V(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, OP)\
- QPEL_H264V(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, OP)\
- QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
- QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
- \
- : "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- if(h==16){\
- __asm__ volatile(\
- QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
- QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
- QPEL_H264V(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, OP)\
- QPEL_H264V(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, OP)\
- QPEL_H264V(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, OP)\
- QPEL_H264V(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, OP)\
- QPEL_H264V(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, OP)\
- QPEL_H264V(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, OP)\
- \
- : "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- }\
- src += 4-(h+5)*srcStride;\
- dst += 4-h*dstStride;\
- }\
-}\
-static av_always_inline void OPNAME ## h264_qpel8or16_hv1_lowpass_ ## MMX(int16_t *tmp, uint8_t *src, int tmpStride, int srcStride, int size){\
- int w = (size+8)>>2;\
- src -= 2*srcStride+2;\
- while(w--){\
- __asm__ volatile(\
- "pxor %%mm7, %%mm7 \n\t"\
- "movd (%0), %%mm0 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm1 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm2 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm3 \n\t"\
- "add %2, %0 \n\t"\
- "movd (%0), %%mm4 \n\t"\
- "add %2, %0 \n\t"\
- "punpcklbw %%mm7, %%mm0 \n\t"\
- "punpcklbw %%mm7, %%mm1 \n\t"\
- "punpcklbw %%mm7, %%mm2 \n\t"\
- "punpcklbw %%mm7, %%mm3 \n\t"\
- "punpcklbw %%mm7, %%mm4 \n\t"\
- QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 0*48)\
- QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 1*48)\
- QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 2*48)\
- QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 3*48)\
- QPEL_H264HV(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, 4*48)\
- QPEL_H264HV(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, 5*48)\
- QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 6*48)\
- QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 7*48)\
- : "+a"(src)\
- : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- if(size==16){\
- __asm__ volatile(\
- QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 8*48)\
- QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 9*48)\
- QPEL_H264HV(%%mm4, %%mm5, %%mm0, %%mm1, %%mm2, %%mm3, 10*48)\
- QPEL_H264HV(%%mm5, %%mm0, %%mm1, %%mm2, %%mm3, %%mm4, 11*48)\
- QPEL_H264HV(%%mm0, %%mm1, %%mm2, %%mm3, %%mm4, %%mm5, 12*48)\
- QPEL_H264HV(%%mm1, %%mm2, %%mm3, %%mm4, %%mm5, %%mm0, 13*48)\
- QPEL_H264HV(%%mm2, %%mm3, %%mm4, %%mm5, %%mm0, %%mm1, 14*48)\
- QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
- : "+a"(src)\
- : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- }\
- tmp += 4;\
- src += 4 - (size+5)*srcStride;\
- }\
-}\
-static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size){\
- int w = size>>4;\
- do{\
- int h = size;\
- __asm__ volatile(\
- "1: \n\t"\
- "movq (%0), %%mm0 \n\t"\
- "movq 8(%0), %%mm3 \n\t"\
- "movq 2(%0), %%mm1 \n\t"\
- "movq 10(%0), %%mm4 \n\t"\
- "paddw %%mm4, %%mm0 \n\t"\
- "paddw %%mm3, %%mm1 \n\t"\
- "paddw 18(%0), %%mm3 \n\t"\
- "paddw 16(%0), %%mm4 \n\t"\
- "movq 4(%0), %%mm2 \n\t"\
- "movq 12(%0), %%mm5 \n\t"\
- "paddw 6(%0), %%mm2 \n\t"\
- "paddw 14(%0), %%mm5 \n\t"\
- "psubw %%mm1, %%mm0 \n\t"\
- "psubw %%mm4, %%mm3 \n\t"\
- "psraw $2, %%mm0 \n\t"\
- "psraw $2, %%mm3 \n\t"\
- "psubw %%mm1, %%mm0 \n\t"\
- "psubw %%mm4, %%mm3 \n\t"\
- "paddsw %%mm2, %%mm0 \n\t"\
- "paddsw %%mm5, %%mm3 \n\t"\
- "psraw $2, %%mm0 \n\t"\
- "psraw $2, %%mm3 \n\t"\
- "paddw %%mm2, %%mm0 \n\t"\
- "paddw %%mm5, %%mm3 \n\t"\
- "psraw $6, %%mm0 \n\t"\
- "psraw $6, %%mm3 \n\t"\
- "packuswb %%mm3, %%mm0 \n\t"\
- OP(%%mm0, (%1),%%mm7, q)\
- "add $48, %0 \n\t"\
- "add %3, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(tmp), "+c"(dst), "+g"(h)\
- : "S"((x86_reg)dstStride)\
- : "memory"\
- );\
- tmp += 8 - size*24;\
- dst += 8 - size*dstStride;\
- }while(w--);\
-}\
-\
-static void OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
-}\
-static av_noinline void OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
- OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
-}\
-\
-static void OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
- src += 8*srcStride;\
- dst += 8*dstStride;\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
-}\
-\
-static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
- src += 8*dstStride;\
- dst += 8*dstStride;\
- src2 += 8*src2Stride;\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
-}\
-\
-static av_noinline void OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
- put_h264_qpel8or16_hv1_lowpass_ ## MMX(tmp, src, tmpStride, srcStride, size);\
- OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
-}\
-static void OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
- OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 8);\
-}\
-\
-static void OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
- OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst , tmp , src , dstStride, tmpStride, srcStride, 16);\
-}\
-\
-static av_noinline void OPNAME ## pixels4_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
-{\
- __asm__ volatile(\
- "movq (%1), %%mm0 \n\t"\
- "movq 24(%1), %%mm1 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "psraw $5, %%mm1 \n\t"\
- "packuswb %%mm0, %%mm0 \n\t"\
- "packuswb %%mm1, %%mm1 \n\t"\
- PAVGB" (%0), %%mm0 \n\t"\
- PAVGB" (%0,%3), %%mm1 \n\t"\
- OP(%%mm0, (%2), %%mm4, d)\
- OP(%%mm1, (%2,%4), %%mm5, d)\
- "lea (%0,%3,2), %0 \n\t"\
- "lea (%2,%4,2), %2 \n\t"\
- "movq 48(%1), %%mm0 \n\t"\
- "movq 72(%1), %%mm1 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "psraw $5, %%mm1 \n\t"\
- "packuswb %%mm0, %%mm0 \n\t"\
- "packuswb %%mm1, %%mm1 \n\t"\
- PAVGB" (%0), %%mm0 \n\t"\
- PAVGB" (%0,%3), %%mm1 \n\t"\
- OP(%%mm0, (%2), %%mm4, d)\
- OP(%%mm1, (%2,%4), %%mm5, d)\
- :"+a"(src8), "+c"(src16), "+d"(dst)\
- :"S"((x86_reg)src8Stride), "D"((x86_reg)dstStride)\
- :"memory");\
-}\
-static av_noinline void OPNAME ## pixels8_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
-{\
- do{\
- __asm__ volatile(\
- "movq (%1), %%mm0 \n\t"\
- "movq 8(%1), %%mm1 \n\t"\
- "movq 48(%1), %%mm2 \n\t"\
- "movq 8+48(%1), %%mm3 \n\t"\
- "psraw $5, %%mm0 \n\t"\
- "psraw $5, %%mm1 \n\t"\
- "psraw $5, %%mm2 \n\t"\
- "psraw $5, %%mm3 \n\t"\
- "packuswb %%mm1, %%mm0 \n\t"\
- "packuswb %%mm3, %%mm2 \n\t"\
- PAVGB" (%0), %%mm0 \n\t"\
- PAVGB" (%0,%3), %%mm2 \n\t"\
- OP(%%mm0, (%2), %%mm5, q)\
- OP(%%mm2, (%2,%4), %%mm5, q)\
- ::"a"(src8), "c"(src16), "d"(dst),\
- "r"((x86_reg)src8Stride), "r"((x86_reg)dstStride)\
- :"memory");\
- src8 += 2L*src8Stride;\
- src16 += 48;\
- dst += 2L*dstStride;\
- }while(h-=2);\
-}\
-static void OPNAME ## pixels16_l2_shift5_ ## MMX(uint8_t *dst, int16_t *src16, uint8_t *src8, int dstStride, int src8Stride, int h)\
-{\
- OPNAME ## pixels8_l2_shift5_ ## MMX(dst , src16 , src8 , dstStride, src8Stride, h);\
- OPNAME ## pixels8_l2_shift5_ ## MMX(dst+8, src16+8, src8+8, dstStride, src8Stride, h);\
-}\
-
-
-#if ARCH_X86_64
-#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
-static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
- int h=16;\
- __asm__ volatile(\
- "pxor %%xmm15, %%xmm15 \n\t"\
- "movdqa %6, %%xmm14 \n\t"\
- "movdqa %7, %%xmm13 \n\t"\
- "1: \n\t"\
- "lddqu 6(%0), %%xmm1 \n\t"\
- "lddqu -2(%0), %%xmm7 \n\t"\
- "movdqa %%xmm1, %%xmm0 \n\t"\
- "punpckhbw %%xmm15, %%xmm1 \n\t"\
- "punpcklbw %%xmm15, %%xmm0 \n\t"\
- "punpcklbw %%xmm15, %%xmm7 \n\t"\
- "movdqa %%xmm1, %%xmm2 \n\t"\
- "movdqa %%xmm0, %%xmm6 \n\t"\
- "movdqa %%xmm1, %%xmm3 \n\t"\
- "movdqa %%xmm0, %%xmm8 \n\t"\
- "movdqa %%xmm1, %%xmm4 \n\t"\
- "movdqa %%xmm0, %%xmm9 \n\t"\
- "movdqa %%xmm0, %%xmm12 \n\t"\
- "movdqa %%xmm1, %%xmm11 \n\t"\
- "palignr $10,%%xmm0, %%xmm11\n\t"\
- "palignr $10,%%xmm7, %%xmm12\n\t"\
- "palignr $2, %%xmm0, %%xmm4 \n\t"\
- "palignr $2, %%xmm7, %%xmm9 \n\t"\
- "palignr $4, %%xmm0, %%xmm3 \n\t"\
- "palignr $4, %%xmm7, %%xmm8 \n\t"\
- "palignr $6, %%xmm0, %%xmm2 \n\t"\
- "palignr $6, %%xmm7, %%xmm6 \n\t"\
- "paddw %%xmm0 ,%%xmm11 \n\t"\
- "palignr $8, %%xmm0, %%xmm1 \n\t"\
- "palignr $8, %%xmm7, %%xmm0 \n\t"\
- "paddw %%xmm12,%%xmm7 \n\t"\
- "paddw %%xmm3, %%xmm2 \n\t"\
- "paddw %%xmm8, %%xmm6 \n\t"\
- "paddw %%xmm4, %%xmm1 \n\t"\
- "paddw %%xmm9, %%xmm0 \n\t"\
- "psllw $2, %%xmm2 \n\t"\
- "psllw $2, %%xmm6 \n\t"\
- "psubw %%xmm1, %%xmm2 \n\t"\
- "psubw %%xmm0, %%xmm6 \n\t"\
- "paddw %%xmm13,%%xmm11 \n\t"\
- "paddw %%xmm13,%%xmm7 \n\t"\
- "pmullw %%xmm14,%%xmm2 \n\t"\
- "pmullw %%xmm14,%%xmm6 \n\t"\
- "lddqu (%2), %%xmm3 \n\t"\
- "paddw %%xmm11,%%xmm2 \n\t"\
- "paddw %%xmm7, %%xmm6 \n\t"\
- "psraw $5, %%xmm2 \n\t"\
- "psraw $5, %%xmm6 \n\t"\
- "packuswb %%xmm2,%%xmm6 \n\t"\
- "pavgb %%xmm3, %%xmm6 \n\t"\
- OP(%%xmm6, (%1), %%xmm4, dqa)\
- "add %5, %0 \n\t"\
- "add %5, %1 \n\t"\
- "add %4, %2 \n\t"\
- "decl %3 \n\t"\
- "jg 1b \n\t"\
- : "+a"(src), "+c"(dst), "+d"(src2), "+g"(h)\
- : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
- "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
-}
-#else // ARCH_X86_64
-#define QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
-static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
- src += 8*dstStride;\
- dst += 8*dstStride;\
- src2 += 8*src2Stride;\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\
- OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\
-}
-#endif // ARCH_X86_64
-
-#define QPEL_H264_H_XMM(OPNAME, OP, MMX)\
-static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
- int h=8;\
- __asm__ volatile(\
- "pxor %%xmm7, %%xmm7 \n\t"\
- "movdqa %0, %%xmm6 \n\t"\
- :: "m"(ff_pw_5)\
- );\
- do{\
- __asm__ volatile(\
- "lddqu -2(%0), %%xmm1 \n\t"\
- "movdqa %%xmm1, %%xmm0 \n\t"\
- "punpckhbw %%xmm7, %%xmm1 \n\t"\
- "punpcklbw %%xmm7, %%xmm0 \n\t"\
- "movdqa %%xmm1, %%xmm2 \n\t"\
- "movdqa %%xmm1, %%xmm3 \n\t"\
- "movdqa %%xmm1, %%xmm4 \n\t"\
- "movdqa %%xmm1, %%xmm5 \n\t"\
- "palignr $2, %%xmm0, %%xmm4 \n\t"\
- "palignr $4, %%xmm0, %%xmm3 \n\t"\
- "palignr $6, %%xmm0, %%xmm2 \n\t"\
- "palignr $8, %%xmm0, %%xmm1 \n\t"\
- "palignr $10,%%xmm0, %%xmm5 \n\t"\
- "paddw %%xmm5, %%xmm0 \n\t"\
- "paddw %%xmm3, %%xmm2 \n\t"\
- "paddw %%xmm4, %%xmm1 \n\t"\
- "psllw $2, %%xmm2 \n\t"\
- "movq (%2), %%xmm3 \n\t"\
- "psubw %%xmm1, %%xmm2 \n\t"\
- "paddw %5, %%xmm0 \n\t"\
- "pmullw %%xmm6, %%xmm2 \n\t"\
- "paddw %%xmm0, %%xmm2 \n\t"\
- "psraw $5, %%xmm2 \n\t"\
- "packuswb %%xmm2, %%xmm2 \n\t"\
- "pavgb %%xmm3, %%xmm2 \n\t"\
- OP(%%xmm2, (%1), %%xmm4, q)\
- "add %4, %0 \n\t"\
- "add %4, %1 \n\t"\
- "add %3, %2 \n\t"\
- : "+a"(src), "+c"(dst), "+d"(src2)\
- : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
- "m"(ff_pw_16)\
- : "memory"\
- );\
- }while(--h);\
-}\
-QPEL_H264_H16_XMM(OPNAME, OP, MMX)\
-\
-static av_noinline void OPNAME ## h264_qpel8_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- int h=8;\
- __asm__ volatile(\
- "pxor %%xmm7, %%xmm7 \n\t"\
- "movdqa "MANGLE(ff_pw_5)", %%xmm6\n\t"\
- "1: \n\t"\
- "lddqu -2(%0), %%xmm1 \n\t"\
- "movdqa %%xmm1, %%xmm0 \n\t"\
- "punpckhbw %%xmm7, %%xmm1 \n\t"\
- "punpcklbw %%xmm7, %%xmm0 \n\t"\
- "movdqa %%xmm1, %%xmm2 \n\t"\
- "movdqa %%xmm1, %%xmm3 \n\t"\
- "movdqa %%xmm1, %%xmm4 \n\t"\
- "movdqa %%xmm1, %%xmm5 \n\t"\
- "palignr $2, %%xmm0, %%xmm4 \n\t"\
- "palignr $4, %%xmm0, %%xmm3 \n\t"\
- "palignr $6, %%xmm0, %%xmm2 \n\t"\
- "palignr $8, %%xmm0, %%xmm1 \n\t"\
- "palignr $10,%%xmm0, %%xmm5 \n\t"\
- "paddw %%xmm5, %%xmm0 \n\t"\
- "paddw %%xmm3, %%xmm2 \n\t"\
- "paddw %%xmm4, %%xmm1 \n\t"\
- "psllw $2, %%xmm2 \n\t"\
- "psubw %%xmm1, %%xmm2 \n\t"\
- "paddw "MANGLE(ff_pw_16)", %%xmm0\n\t"\
- "pmullw %%xmm6, %%xmm2 \n\t"\
- "paddw %%xmm0, %%xmm2 \n\t"\
- "psraw $5, %%xmm2 \n\t"\
- "packuswb %%xmm2, %%xmm2 \n\t"\
- OP(%%xmm2, (%1), %%xmm4, q)\
- "add %3, %0 \n\t"\
- "add %4, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(src), "+c"(dst), "+g"(h)\
- : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
- : "memory"\
- );\
-}\
-static void OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
- src += 8*srcStride;\
- dst += 8*dstStride;\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst , src , dstStride, srcStride);\
- OPNAME ## h264_qpel8_h_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride);\
-}\
-
-#define QPEL_H264_V_XMM(OPNAME, OP, MMX)\
-static av_noinline void OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
- src -= 2*srcStride;\
- \
- __asm__ volatile(\
- "pxor %%xmm7, %%xmm7 \n\t"\
- "movq (%0), %%xmm0 \n\t"\
- "add %2, %0 \n\t"\
- "movq (%0), %%xmm1 \n\t"\
- "add %2, %0 \n\t"\
- "movq (%0), %%xmm2 \n\t"\
- "add %2, %0 \n\t"\
- "movq (%0), %%xmm3 \n\t"\
- "add %2, %0 \n\t"\
- "movq (%0), %%xmm4 \n\t"\
- "add %2, %0 \n\t"\
- "punpcklbw %%xmm7, %%xmm0 \n\t"\
- "punpcklbw %%xmm7, %%xmm1 \n\t"\
- "punpcklbw %%xmm7, %%xmm2 \n\t"\
- "punpcklbw %%xmm7, %%xmm3 \n\t"\
- "punpcklbw %%xmm7, %%xmm4 \n\t"\
- QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
- QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
- QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
- QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
- QPEL_H264V_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, OP)\
- QPEL_H264V_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, OP)\
- QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
- QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
- \
- : "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- if(h==16){\
- __asm__ volatile(\
- QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
- QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
- QPEL_H264V_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, OP)\
- QPEL_H264V_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, OP)\
- QPEL_H264V_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, OP)\
- QPEL_H264V_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, OP)\
- QPEL_H264V_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, OP)\
- QPEL_H264V_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, OP)\
- \
- : "+a"(src), "+c"(dst)\
- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
- : "memory"\
- );\
- }\
-}\
-static void OPNAME ## h264_qpel8_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 8);\
-}\
-static av_noinline void OPNAME ## h264_qpel16_v_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
- OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst , src , dstStride, srcStride, 16);\
- OPNAME ## h264_qpel8or16_v_lowpass_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
-}
-
-static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2(int16_t *tmp, uint8_t *src, int tmpStride, int srcStride, int size){
- int w = (size+8)>>3;
- src -= 2*srcStride+2;
- while(w--){
- __asm__ volatile(
- "pxor %%xmm7, %%xmm7 \n\t"
- "movq (%0), %%xmm0 \n\t"
- "add %2, %0 \n\t"
- "movq (%0), %%xmm1 \n\t"
- "add %2, %0 \n\t"
- "movq (%0), %%xmm2 \n\t"
- "add %2, %0 \n\t"
- "movq (%0), %%xmm3 \n\t"
- "add %2, %0 \n\t"
- "movq (%0), %%xmm4 \n\t"
- "add %2, %0 \n\t"
- "punpcklbw %%xmm7, %%xmm0 \n\t"
- "punpcklbw %%xmm7, %%xmm1 \n\t"
- "punpcklbw %%xmm7, %%xmm2 \n\t"
- "punpcklbw %%xmm7, %%xmm3 \n\t"
- "punpcklbw %%xmm7, %%xmm4 \n\t"
- QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 0*48)
- QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 1*48)
- QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 2*48)
- QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 3*48)
- QPEL_H264HV_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, 4*48)
- QPEL_H264HV_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, 5*48)
- QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 6*48)
- QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 7*48)
- : "+a"(src)
- : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
- : "memory"
- );
- if(size==16){
- __asm__ volatile(
- QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 8*48)
- QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 9*48)
- QPEL_H264HV_XMM(%%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, 10*48)
- QPEL_H264HV_XMM(%%xmm5, %%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, 11*48)
- QPEL_H264HV_XMM(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, 12*48)
- QPEL_H264HV_XMM(%%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, 13*48)
- QPEL_H264HV_XMM(%%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, 14*48)
- QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
- : "+a"(src)
- : "c"(tmp), "S"((x86_reg)srcStride), "m"(ff_pw_5), "m"(ff_pw_16)
- : "memory"
- );
- }
- tmp += 8;
- src += 8 - (size+5)*srcStride;
- }
-}
-
-#define QPEL_H264_HV2_XMM(OPNAME, OP, MMX)\
-static av_always_inline void OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, int dstStride, int tmpStride, int size){\
- int h = size;\
- if(size == 16){\
- __asm__ volatile(\
- "1: \n\t"\
- "movdqa 32(%0), %%xmm4 \n\t"\
- "movdqa 16(%0), %%xmm5 \n\t"\
- "movdqa (%0), %%xmm7 \n\t"\
- "movdqa %%xmm4, %%xmm3 \n\t"\
- "movdqa %%xmm4, %%xmm2 \n\t"\
- "movdqa %%xmm4, %%xmm1 \n\t"\
- "movdqa %%xmm4, %%xmm0 \n\t"\
- "palignr $10, %%xmm5, %%xmm0 \n\t"\
- "palignr $8, %%xmm5, %%xmm1 \n\t"\
- "palignr $6, %%xmm5, %%xmm2 \n\t"\
- "palignr $4, %%xmm5, %%xmm3 \n\t"\
- "palignr $2, %%xmm5, %%xmm4 \n\t"\
- "paddw %%xmm5, %%xmm0 \n\t"\
- "paddw %%xmm4, %%xmm1 \n\t"\
- "paddw %%xmm3, %%xmm2 \n\t"\
- "movdqa %%xmm5, %%xmm6 \n\t"\
- "movdqa %%xmm5, %%xmm4 \n\t"\
- "movdqa %%xmm5, %%xmm3 \n\t"\
- "palignr $8, %%xmm7, %%xmm4 \n\t"\
- "palignr $2, %%xmm7, %%xmm6 \n\t"\
- "palignr $10, %%xmm7, %%xmm3 \n\t"\
- "paddw %%xmm6, %%xmm4 \n\t"\
- "movdqa %%xmm5, %%xmm6 \n\t"\
- "palignr $6, %%xmm7, %%xmm5 \n\t"\
- "palignr $4, %%xmm7, %%xmm6 \n\t"\
- "paddw %%xmm7, %%xmm3 \n\t"\
- "paddw %%xmm6, %%xmm5 \n\t"\
- \
- "psubw %%xmm1, %%xmm0 \n\t"\
- "psubw %%xmm4, %%xmm3 \n\t"\
- "psraw $2, %%xmm0 \n\t"\
- "psraw $2, %%xmm3 \n\t"\
- "psubw %%xmm1, %%xmm0 \n\t"\
- "psubw %%xmm4, %%xmm3 \n\t"\
- "paddw %%xmm2, %%xmm0 \n\t"\
- "paddw %%xmm5, %%xmm3 \n\t"\
- "psraw $2, %%xmm0 \n\t"\
- "psraw $2, %%xmm3 \n\t"\
- "paddw %%xmm2, %%xmm0 \n\t"\
- "paddw %%xmm5, %%xmm3 \n\t"\
- "psraw $6, %%xmm0 \n\t"\
- "psraw $6, %%xmm3 \n\t"\
- "packuswb %%xmm0, %%xmm3 \n\t"\
- OP(%%xmm3, (%1), %%xmm7, dqa)\
- "add $48, %0 \n\t"\
- "add %3, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(tmp), "+c"(dst), "+g"(h)\
- : "S"((x86_reg)dstStride)\
- : "memory"\
- );\
- }else{\
- __asm__ volatile(\
- "1: \n\t"\
- "movdqa 16(%0), %%xmm1 \n\t"\
- "movdqa (%0), %%xmm0 \n\t"\
- "movdqa %%xmm1, %%xmm2 \n\t"\
- "movdqa %%xmm1, %%xmm3 \n\t"\
- "movdqa %%xmm1, %%xmm4 \n\t"\
- "movdqa %%xmm1, %%xmm5 \n\t"\
- "palignr $10, %%xmm0, %%xmm5 \n\t"\
- "palignr $8, %%xmm0, %%xmm4 \n\t"\
- "palignr $6, %%xmm0, %%xmm3 \n\t"\
- "palignr $4, %%xmm0, %%xmm2 \n\t"\
- "palignr $2, %%xmm0, %%xmm1 \n\t"\
- "paddw %%xmm5, %%xmm0 \n\t"\
- "paddw %%xmm4, %%xmm1 \n\t"\
- "paddw %%xmm3, %%xmm2 \n\t"\
- "psubw %%xmm1, %%xmm0 \n\t"\
- "psraw $2, %%xmm0 \n\t"\
- "psubw %%xmm1, %%xmm0 \n\t"\
- "paddw %%xmm2, %%xmm0 \n\t"\
- "psraw $2, %%xmm0 \n\t"\
- "paddw %%xmm2, %%xmm0 \n\t"\
- "psraw $6, %%xmm0 \n\t"\
- "packuswb %%xmm0, %%xmm0 \n\t"\
- OP(%%xmm0, (%1), %%xmm7, q)\
- "add $48, %0 \n\t"\
- "add %3, %1 \n\t"\
- "decl %2 \n\t"\
- " jnz 1b \n\t"\
- : "+a"(tmp), "+c"(dst), "+g"(h)\
- : "S"((x86_reg)dstStride)\
- : "memory"\
- );\
- }\
-}
-
-#define QPEL_H264_HV_XMM(OPNAME, OP, MMX)\
-static av_noinline void OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\
- put_h264_qpel8or16_hv1_lowpass_sse2(tmp, src, tmpStride, srcStride, size);\
- OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\
-}\
-static void OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
- OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 8);\
-}\
-static void OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
- OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 16);\
-}\
-
-#define put_pixels8_l2_sse2 put_pixels8_l2_mmx2
-#define avg_pixels8_l2_sse2 avg_pixels8_l2_mmx2
-#define put_pixels16_l2_sse2 put_pixels16_l2_mmx2
-#define avg_pixels16_l2_sse2 avg_pixels16_l2_mmx2
-#define put_pixels8_l2_ssse3 put_pixels8_l2_mmx2
-#define avg_pixels8_l2_ssse3 avg_pixels8_l2_mmx2
-#define put_pixels16_l2_ssse3 put_pixels16_l2_mmx2
-#define avg_pixels16_l2_ssse3 avg_pixels16_l2_mmx2
-
-#define put_pixels8_l2_shift5_sse2 put_pixels8_l2_shift5_mmx2
-#define avg_pixels8_l2_shift5_sse2 avg_pixels8_l2_shift5_mmx2
-#define put_pixels16_l2_shift5_sse2 put_pixels16_l2_shift5_mmx2
-#define avg_pixels16_l2_shift5_sse2 avg_pixels16_l2_shift5_mmx2
-#define put_pixels8_l2_shift5_ssse3 put_pixels8_l2_shift5_mmx2
-#define avg_pixels8_l2_shift5_ssse3 avg_pixels8_l2_shift5_mmx2
-#define put_pixels16_l2_shift5_ssse3 put_pixels16_l2_shift5_mmx2
-#define avg_pixels16_l2_shift5_ssse3 avg_pixels16_l2_shift5_mmx2
-
-#define put_h264_qpel8_h_lowpass_l2_sse2 put_h264_qpel8_h_lowpass_l2_mmx2
-#define avg_h264_qpel8_h_lowpass_l2_sse2 avg_h264_qpel8_h_lowpass_l2_mmx2
-#define put_h264_qpel16_h_lowpass_l2_sse2 put_h264_qpel16_h_lowpass_l2_mmx2
-#define avg_h264_qpel16_h_lowpass_l2_sse2 avg_h264_qpel16_h_lowpass_l2_mmx2
-
-#define put_h264_qpel8_v_lowpass_ssse3 put_h264_qpel8_v_lowpass_sse2
-#define avg_h264_qpel8_v_lowpass_ssse3 avg_h264_qpel8_v_lowpass_sse2
-#define put_h264_qpel16_v_lowpass_ssse3 put_h264_qpel16_v_lowpass_sse2
-#define avg_h264_qpel16_v_lowpass_ssse3 avg_h264_qpel16_v_lowpass_sse2
-
-#define put_h264_qpel8or16_hv2_lowpass_sse2 put_h264_qpel8or16_hv2_lowpass_mmx2
-#define avg_h264_qpel8or16_hv2_lowpass_sse2 avg_h264_qpel8or16_hv2_lowpass_mmx2
-
-#define H264_MC(OPNAME, SIZE, MMX, ALIGN) \
-H264_MC_C(OPNAME, SIZE, MMX, ALIGN)\
-H264_MC_V(OPNAME, SIZE, MMX, ALIGN)\
-H264_MC_H(OPNAME, SIZE, MMX, ALIGN)\
-H264_MC_HV(OPNAME, SIZE, MMX, ALIGN)\
-
-static void put_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src, int stride){
- put_pixels16_sse2(dst, src, stride, 16);
-}
-static void avg_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src, int stride){
- avg_pixels16_sse2(dst, src, stride, 16);
-}
-#define put_h264_qpel8_mc00_sse2 put_h264_qpel8_mc00_mmx2
-#define avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmx2
-
-#define H264_MC_C(OPNAME, SIZE, MMX, ALIGN) \
-static void OPNAME ## h264_qpel ## SIZE ## _mc00_ ## MMX (uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## pixels ## SIZE ## _ ## MMX(dst, src, stride, SIZE);\
-}\
-
-#define H264_MC_H(OPNAME, SIZE, MMX, ALIGN) \
-static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src, stride, stride);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## MMX(dst, src, stride, stride);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src+1, stride, stride);\
-}\
-
-#define H264_MC_V(OPNAME, SIZE, MMX, ALIGN) \
-static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
- put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
- OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, temp, stride, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## MMX(dst, src, stride, stride);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
- put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
- OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src+stride, temp, stride, stride, SIZE);\
-}\
-
-#define H264_MC_HV(OPNAME, SIZE, MMX, ALIGN) \
-static void OPNAME ## h264_qpel ## SIZE ## _mc11_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
- put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc31_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
- put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, temp, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc13_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
- put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc33_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*SIZE];\
- put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src+1, SIZE, stride);\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, temp, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc22_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint16_t, temp)[SIZE*(SIZE<8?12:24)];\
- OPNAME ## h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(dst, temp, src, stride, SIZE, stride);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc21_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
- uint8_t * const halfHV= temp;\
- int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
- assert(((int)temp & 7) == 0);\
- put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, halfHV, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
- uint8_t * const halfHV= temp;\
- int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
- assert(((int)temp & 7) == 0);\
- put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
- OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src+stride, halfHV, stride, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc12_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
- uint8_t * const halfHV= temp;\
- int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
- assert(((int)temp & 7) == 0);\
- put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
- OPNAME ## pixels ## SIZE ## _l2_shift5_ ## MMX(dst, halfV+2, halfHV, stride, SIZE, SIZE);\
-}\
-\
-static void OPNAME ## h264_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
- DECLARE_ALIGNED(ALIGN, uint8_t, temp)[SIZE*(SIZE<8?12:24)*2 + SIZE*SIZE];\
- uint8_t * const halfHV= temp;\
- int16_t * const halfV= (int16_t*)(temp + SIZE*SIZE);\
- assert(((int)temp & 7) == 0);\
- put_h264_qpel ## SIZE ## _hv_lowpass_ ## MMX(halfHV, halfV, src, SIZE, SIZE, stride);\
- OPNAME ## pixels ## SIZE ## _l2_shift5_ ## MMX(dst, halfV+3, halfHV, stride, SIZE, SIZE);\
-}\
-
-#define H264_MC_4816(MMX)\
-H264_MC(put_, 4, MMX, 8)\
-H264_MC(put_, 8, MMX, 8)\
-H264_MC(put_, 16,MMX, 8)\
-H264_MC(avg_, 4, MMX, 8)\
-H264_MC(avg_, 8, MMX, 8)\
-H264_MC(avg_, 16,MMX, 8)\
-
-#define H264_MC_816(QPEL, XMM)\
-QPEL(put_, 8, XMM, 16)\
-QPEL(put_, 16,XMM, 16)\
-QPEL(avg_, 8, XMM, 16)\
-QPEL(avg_, 16,XMM, 16)\
-
-
-#define AVG_3DNOW_OP(a,b,temp, size) \
-"mov" #size " " #b ", " #temp " \n\t"\
-"pavgusb " #temp ", " #a " \n\t"\
-"mov" #size " " #a ", " #b " \n\t"
-#define AVG_MMX2_OP(a,b,temp, size) \
-"mov" #size " " #b ", " #temp " \n\t"\
-"pavgb " #temp ", " #a " \n\t"\
-"mov" #size " " #a ", " #b " \n\t"
-
-#define PAVGB "pavgusb"
-QPEL_H264(put_, PUT_OP, 3dnow)
-QPEL_H264(avg_, AVG_3DNOW_OP, 3dnow)
-#undef PAVGB
-#define PAVGB "pavgb"
-QPEL_H264(put_, PUT_OP, mmx2)
-QPEL_H264(avg_, AVG_MMX2_OP, mmx2)
-QPEL_H264_V_XMM(put_, PUT_OP, sse2)
-QPEL_H264_V_XMM(avg_, AVG_MMX2_OP, sse2)
-QPEL_H264_HV_XMM(put_, PUT_OP, sse2)
-QPEL_H264_HV_XMM(avg_, AVG_MMX2_OP, sse2)
-#if HAVE_SSSE3
-QPEL_H264_H_XMM(put_, PUT_OP, ssse3)
-QPEL_H264_H_XMM(avg_, AVG_MMX2_OP, ssse3)
-QPEL_H264_HV2_XMM(put_, PUT_OP, ssse3)
-QPEL_H264_HV2_XMM(avg_, AVG_MMX2_OP, ssse3)
-QPEL_H264_HV_XMM(put_, PUT_OP, ssse3)
-QPEL_H264_HV_XMM(avg_, AVG_MMX2_OP, ssse3)
-#endif
-#undef PAVGB
-
-H264_MC_4816(3dnow)
-H264_MC_4816(mmx2)
-H264_MC_816(H264_MC_V, sse2)
-H264_MC_816(H264_MC_HV, sse2)
-#if HAVE_SSSE3
-H264_MC_816(H264_MC_H, ssse3)
-H264_MC_816(H264_MC_HV, ssse3)
-#endif
-
-/* rnd interleaved with rnd div 8, use p+1 to access rnd div 8 */
-DECLARE_ALIGNED(8, static const uint64_t, h264_rnd_reg)[4] = {
- 0x0020002000200020ULL, 0x0004000400040004ULL, 0x001C001C001C001CULL, 0x0003000300030003ULL
-};
-
-#define H264_CHROMA_OP(S,D)
-#define H264_CHROMA_OP4(S,D,T)
-#define H264_CHROMA_MC8_TMPL put_h264_chroma_generic_mc8_mmx
-#define H264_CHROMA_MC4_TMPL put_h264_chroma_generic_mc4_mmx
-#define H264_CHROMA_MC2_TMPL put_h264_chroma_mc2_mmx2
-#define H264_CHROMA_MC8_MV0 put_pixels8_mmx
-#include "dsputil_h264_template_mmx.c"
-
-static void put_h264_chroma_mc8_mmx_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- put_h264_chroma_generic_mc8_mmx(dst, src, stride, h, x, y, h264_rnd_reg);
-}
-static void put_vc1_chroma_mc8_mmx_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- put_h264_chroma_generic_mc8_mmx(dst, src, stride, h, x, y, h264_rnd_reg+2);
-}
-static void put_h264_chroma_mc4_mmx(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- put_h264_chroma_generic_mc4_mmx(dst, src, stride, h, x, y, h264_rnd_reg);
-}
-
-#undef H264_CHROMA_OP
-#undef H264_CHROMA_OP4
-#undef H264_CHROMA_MC8_TMPL
-#undef H264_CHROMA_MC4_TMPL
-#undef H264_CHROMA_MC2_TMPL
-#undef H264_CHROMA_MC8_MV0
+#define LF_FUNC(DIR, TYPE, OPT) \
+void ff_x264_deblock_ ## DIR ## _ ## TYPE ## _ ## OPT (uint8_t *pix, int stride, \
+ int alpha, int beta, int8_t *tc0);
+#define LF_IFUNC(DIR, TYPE, OPT) \
+void ff_x264_deblock_ ## DIR ## _ ## TYPE ## _ ## OPT (uint8_t *pix, int stride, \
+ int alpha, int beta);
-#define H264_CHROMA_OP(S,D) "pavgb " #S ", " #D " \n\t"
-#define H264_CHROMA_OP4(S,D,T) "movd " #S ", " #T " \n\t"\
- "pavgb " #T ", " #D " \n\t"
-#define H264_CHROMA_MC8_TMPL avg_h264_chroma_generic_mc8_mmx2
-#define H264_CHROMA_MC4_TMPL avg_h264_chroma_generic_mc4_mmx2
-#define H264_CHROMA_MC2_TMPL avg_h264_chroma_mc2_mmx2
-#define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2
-#include "dsputil_h264_template_mmx.c"
-static void avg_h264_chroma_mc8_mmx2_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- avg_h264_chroma_generic_mc8_mmx2(dst, src, stride, h, x, y, h264_rnd_reg);
-}
-static void avg_vc1_chroma_mc8_mmx2_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- avg_h264_chroma_generic_mc8_mmx2(dst, src, stride, h, x, y, h264_rnd_reg+2);
-}
-static void avg_h264_chroma_mc4_mmx2(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- avg_h264_chroma_generic_mc4_mmx2(dst, src, stride, h, x, y, h264_rnd_reg);
-}
-#undef H264_CHROMA_OP
-#undef H264_CHROMA_OP4
-#undef H264_CHROMA_MC8_TMPL
-#undef H264_CHROMA_MC4_TMPL
-#undef H264_CHROMA_MC2_TMPL
-#undef H264_CHROMA_MC8_MV0
+LF_FUNC (h, chroma, mmxext)
+LF_IFUNC(h, chroma_intra, mmxext)
+LF_FUNC (v, chroma, mmxext)
+LF_IFUNC(v, chroma_intra, mmxext)
-#define H264_CHROMA_OP(S,D) "pavgusb " #S ", " #D " \n\t"
-#define H264_CHROMA_OP4(S,D,T) "movd " #S ", " #T " \n\t"\
- "pavgusb " #T ", " #D " \n\t"
-#define H264_CHROMA_MC8_TMPL avg_h264_chroma_generic_mc8_3dnow
-#define H264_CHROMA_MC4_TMPL avg_h264_chroma_generic_mc4_3dnow
-#define H264_CHROMA_MC8_MV0 avg_pixels8_3dnow
-#include "dsputil_h264_template_mmx.c"
-static void avg_h264_chroma_mc8_3dnow_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- avg_h264_chroma_generic_mc8_3dnow(dst, src, stride, h, x, y, h264_rnd_reg);
-}
-static void avg_h264_chroma_mc4_3dnow(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
+LF_FUNC (h, luma, mmxext)
+LF_IFUNC(h, luma_intra, mmxext)
+#if HAVE_YASM && ARCH_X86_32
+LF_FUNC (v8, luma, mmxext)
+static void ff_x264_deblock_v_luma_mmxext(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0)
{
- avg_h264_chroma_generic_mc4_3dnow(dst, src, stride, h, x, y, h264_rnd_reg);
-}
-#undef H264_CHROMA_OP
-#undef H264_CHROMA_OP4
-#undef H264_CHROMA_MC8_TMPL
-#undef H264_CHROMA_MC4_TMPL
-#undef H264_CHROMA_MC8_MV0
-
-#if HAVE_SSSE3
-#define AVG_OP(X)
-#undef H264_CHROMA_MC8_TMPL
-#undef H264_CHROMA_MC4_TMPL
-#define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_ssse3
-#define H264_CHROMA_MC4_TMPL put_h264_chroma_mc4_ssse3
-#define H264_CHROMA_MC8_MV0 put_pixels8_mmx
-#include "dsputil_h264_template_ssse3.c"
-static void put_h264_chroma_mc8_ssse3_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 1);
-}
-static void put_vc1_chroma_mc8_ssse3_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 0);
-}
-
-#undef AVG_OP
-#undef H264_CHROMA_MC8_TMPL
-#undef H264_CHROMA_MC4_TMPL
-#undef H264_CHROMA_MC8_MV0
-#define AVG_OP(X) X
-#define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_ssse3
-#define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_ssse3
-#define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2
-#include "dsputil_h264_template_ssse3.c"
-static void avg_h264_chroma_mc8_ssse3_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
-{
- avg_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 1);
+ if((tc0[0] & tc0[1]) >= 0)
+ ff_x264_deblock_v8_luma_mmxext(pix+0, stride, alpha, beta, tc0);
+ if((tc0[2] & tc0[3]) >= 0)
+ ff_x264_deblock_v8_luma_mmxext(pix+8, stride, alpha, beta, tc0+2);
}
-static void avg_vc1_chroma_mc8_ssse3_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
+LF_IFUNC(v8, luma_intra, mmxext)
+static void ff_x264_deblock_v_luma_intra_mmxext(uint8_t *pix, int stride, int alpha, int beta)
{
- avg_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 0);
+ ff_x264_deblock_v8_luma_intra_mmxext(pix+0, stride, alpha, beta);
+ ff_x264_deblock_v8_luma_intra_mmxext(pix+8, stride, alpha, beta);
}
-#undef AVG_OP
-#undef H264_CHROMA_MC8_TMPL
-#undef H264_CHROMA_MC4_TMPL
-#undef H264_CHROMA_MC8_MV0
#endif
+LF_FUNC (h, luma, sse2)
+LF_IFUNC(h, luma_intra, sse2)
+LF_FUNC (v, luma, sse2)
+LF_IFUNC(v, luma_intra, sse2)
+
/***********************************/
/* weighted prediction */
-static inline void ff_h264_weight_WxH_mmx2(uint8_t *dst, int stride, int log2_denom, int weight, int offset, int w, int h)
+#define H264_WEIGHT(W, H, OPT) \
+void ff_h264_weight_ ## W ## x ## H ## _ ## OPT(uint8_t *dst, \
+ int stride, int log2_denom, int weight, int offset);
+
+#define H264_BIWEIGHT(W, H, OPT) \
+void ff_h264_biweight_ ## W ## x ## H ## _ ## OPT(uint8_t *dst, \
+ uint8_t *src, int stride, int log2_denom, int weightd, \
+ int weights, int offset);
+
+#define H264_BIWEIGHT_MMX(W,H) \
+H264_WEIGHT (W, H, mmx2) \
+H264_BIWEIGHT(W, H, mmx2)
+
+#define H264_BIWEIGHT_MMX_SSE(W,H) \
+H264_BIWEIGHT_MMX(W, H) \
+H264_WEIGHT (W, H, sse2) \
+H264_BIWEIGHT (W, H, sse2) \
+H264_BIWEIGHT (W, H, ssse3)
+
+H264_BIWEIGHT_MMX_SSE(16, 16)
+H264_BIWEIGHT_MMX_SSE(16, 8)
+H264_BIWEIGHT_MMX_SSE( 8, 16)
+H264_BIWEIGHT_MMX_SSE( 8, 8)
+H264_BIWEIGHT_MMX_SSE( 8, 4)
+H264_BIWEIGHT_MMX ( 4, 8)
+H264_BIWEIGHT_MMX ( 4, 4)
+H264_BIWEIGHT_MMX ( 4, 2)
+
+void ff_h264dsp_init_x86(H264DSPContext *c)
{
- int x, y;
- offset <<= log2_denom;
- offset += (1 << log2_denom) >> 1;
- __asm__ volatile(
- "movd %0, %%mm4 \n\t"
- "movd %1, %%mm5 \n\t"
- "movd %2, %%mm6 \n\t"
- "pshufw $0, %%mm4, %%mm4 \n\t"
- "pshufw $0, %%mm5, %%mm5 \n\t"
- "pxor %%mm7, %%mm7 \n\t"
- :: "g"(weight), "g"(offset), "g"(log2_denom)
- );
- for(y=0; y<h; y+=2){
- for(x=0; x<w; x+=4){
- __asm__ volatile(
- "movd %0, %%mm0 \n\t"
- "movd %1, %%mm1 \n\t"
- "punpcklbw %%mm7, %%mm0 \n\t"
- "punpcklbw %%mm7, %%mm1 \n\t"
- "pmullw %%mm4, %%mm0 \n\t"
- "pmullw %%mm4, %%mm1 \n\t"
- "paddsw %%mm5, %%mm0 \n\t"
- "paddsw %%mm5, %%mm1 \n\t"
- "psraw %%mm6, %%mm0 \n\t"
- "psraw %%mm6, %%mm1 \n\t"
- "packuswb %%mm7, %%mm0 \n\t"
- "packuswb %%mm7, %%mm1 \n\t"
- "movd %%mm0, %0 \n\t"
- "movd %%mm1, %1 \n\t"
- : "+m"(*(uint32_t*)(dst+x)),
- "+m"(*(uint32_t*)(dst+x+stride))
- );
- }
- dst += 2*stride;
- }
-}
+ int mm_flags = av_get_cpu_flags();
-static inline void ff_h264_biweight_WxH_mmx2(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset, int w, int h)
-{
- int x, y;
- offset = ((offset + 1) | 1) << log2_denom;
- __asm__ volatile(
- "movd %0, %%mm3 \n\t"
- "movd %1, %%mm4 \n\t"
- "movd %2, %%mm5 \n\t"
- "movd %3, %%mm6 \n\t"
- "pshufw $0, %%mm3, %%mm3 \n\t"
- "pshufw $0, %%mm4, %%mm4 \n\t"
- "pshufw $0, %%mm5, %%mm5 \n\t"
- "pxor %%mm7, %%mm7 \n\t"
- :: "g"(weightd), "g"(weights), "g"(offset), "g"(log2_denom+1)
- );
- for(y=0; y<h; y++){
- for(x=0; x<w; x+=4){
- __asm__ volatile(
- "movd %0, %%mm0 \n\t"
- "movd %1, %%mm1 \n\t"
- "punpcklbw %%mm7, %%mm0 \n\t"
- "punpcklbw %%mm7, %%mm1 \n\t"
- "pmullw %%mm3, %%mm0 \n\t"
- "pmullw %%mm4, %%mm1 \n\t"
- "paddsw %%mm1, %%mm0 \n\t"
- "paddsw %%mm5, %%mm0 \n\t"
- "psraw %%mm6, %%mm0 \n\t"
- "packuswb %%mm0, %%mm0 \n\t"
- "movd %%mm0, %0 \n\t"
- : "+m"(*(uint32_t*)(dst+x))
- : "m"(*(uint32_t*)(src+x))
- );
- }
- src += stride;
- dst += stride;
+ if (mm_flags & AV_CPU_FLAG_MMX2) {
+ c->h264_loop_filter_strength= h264_loop_filter_strength_mmx2;
}
-}
-
-#define H264_WEIGHT(W,H) \
-static void ff_h264_biweight_ ## W ## x ## H ## _mmx2(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset){ \
- ff_h264_biweight_WxH_mmx2(dst, src, stride, log2_denom, weightd, weights, offset, W, H); \
-} \
-static void ff_h264_weight_ ## W ## x ## H ## _mmx2(uint8_t *dst, int stride, int log2_denom, int weight, int offset){ \
- ff_h264_weight_WxH_mmx2(dst, stride, log2_denom, weight, offset, W, H); \
-}
-
-H264_WEIGHT(16,16)
-H264_WEIGHT(16, 8)
-H264_WEIGHT( 8,16)
-H264_WEIGHT( 8, 8)
-H264_WEIGHT( 8, 4)
-H264_WEIGHT( 4, 8)
-H264_WEIGHT( 4, 4)
-H264_WEIGHT( 4, 2)
-
-void ff_h264_biweight_8x8_sse2(uint8_t *dst, uint8_t *src, int stride,
- int log2_denom, int weightd, int weights,
- int offset);
-
-void ff_h264_biweight_16x16_sse2(uint8_t *dst, uint8_t *src, int stride,
- int log2_denom, int weightd, int weights,
- int offset);
-
-void ff_h264_biweight_8x8_ssse3(uint8_t *dst, uint8_t *src, int stride,
- int log2_denom, int weightd, int weights,
- int offset);
-
-void ff_h264_biweight_16x16_ssse3(uint8_t *dst, uint8_t *src, int stride,
- int log2_denom, int weightd, int weights,
- int offset);
-
-void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
-void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
-void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
-void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride);
-void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
-void ff_pred16x16_dc_mmxext (uint8_t *src, int stride);
-void ff_pred16x16_dc_sse2 (uint8_t *src, int stride);
-void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride);
-void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride);
-void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride);
-void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride);
-void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride);
-void ff_pred8x8_vertical_mmx (uint8_t *src, int stride);
-void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride);
-void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride);
-void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride);
-void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride);
-void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
-void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
-void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
-void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
-void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
-void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
-void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
-void ff_pred4x4_vertical_vp8_mmxext(uint8_t *src, const uint8_t *topright, int stride);
-
-#if CONFIG_H264PRED
-void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
-{
- int mm_flags = mm_support();
-
#if HAVE_YASM
- if (mm_flags & FF_MM_MMX) {
- h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx;
- h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx;
- h->pred8x8 [VERT_PRED8x8] = ff_pred8x8_vertical_mmx;
- h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx;
- if (codec_id == CODEC_ID_VP8) {
- h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx;
- h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx;
- h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmx;
- }
- }
-
- if (mm_flags & FF_MM_MMX2) {
- h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext;
- h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext;
- h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
- h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
- if (codec_id == CODEC_ID_VP8) {
- h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext;
- h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext;
- h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext;
- h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmxext;
- h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_mmxext;
- }
- }
-
- if (mm_flags & FF_MM_SSE) {
- h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_sse;
- }
-
- if (mm_flags & FF_MM_SSE2) {
- h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_sse2;
- if (codec_id == CODEC_ID_VP8) {
- h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_sse2;
- h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_sse2;
- }
- }
-
- if (mm_flags & FF_MM_SSSE3) {
- h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_ssse3;
- h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_ssse3;
- h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_ssse3;
- if (codec_id == CODEC_ID_VP8) {
- h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_ssse3;
- h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_ssse3;
+ if (mm_flags & AV_CPU_FLAG_MMX) {
+ c->h264_idct_dc_add=
+ c->h264_idct_add= ff_h264_idct_add_mmx;
+ c->h264_idct8_dc_add=
+ c->h264_idct8_add= ff_h264_idct8_add_mmx;
+
+ c->h264_idct_add16 = ff_h264_idct_add16_mmx;
+ c->h264_idct8_add4 = ff_h264_idct8_add4_mmx;
+ c->h264_idct_add8 = ff_h264_idct_add8_mmx;
+ c->h264_idct_add16intra= ff_h264_idct_add16intra_mmx;
+
+ if (mm_flags & AV_CPU_FLAG_MMX2) {
+ c->h264_idct_dc_add= ff_h264_idct_dc_add_mmx2;
+ c->h264_idct8_dc_add= ff_h264_idct8_dc_add_mmx2;
+ c->h264_idct_add16 = ff_h264_idct_add16_mmx2;
+ c->h264_idct8_add4 = ff_h264_idct8_add4_mmx2;
+ c->h264_idct_add8 = ff_h264_idct_add8_mmx2;
+ c->h264_idct_add16intra= ff_h264_idct_add16intra_mmx2;
+
+ c->h264_v_loop_filter_chroma= ff_x264_deblock_v_chroma_mmxext;
+ c->h264_h_loop_filter_chroma= ff_x264_deblock_h_chroma_mmxext;
+ c->h264_v_loop_filter_chroma_intra= ff_x264_deblock_v_chroma_intra_mmxext;
+ c->h264_h_loop_filter_chroma_intra= ff_x264_deblock_h_chroma_intra_mmxext;
+#if ARCH_X86_32
+ c->h264_v_loop_filter_luma= ff_x264_deblock_v_luma_mmxext;
+ c->h264_h_loop_filter_luma= ff_x264_deblock_h_luma_mmxext;
+ c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_mmxext;
+ c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_mmxext;
+#endif
+ c->weight_h264_pixels_tab[0]= ff_h264_weight_16x16_mmx2;
+ c->weight_h264_pixels_tab[1]= ff_h264_weight_16x8_mmx2;
+ c->weight_h264_pixels_tab[2]= ff_h264_weight_8x16_mmx2;
+ c->weight_h264_pixels_tab[3]= ff_h264_weight_8x8_mmx2;
+ c->weight_h264_pixels_tab[4]= ff_h264_weight_8x4_mmx2;
+ c->weight_h264_pixels_tab[5]= ff_h264_weight_4x8_mmx2;
+ c->weight_h264_pixels_tab[6]= ff_h264_weight_4x4_mmx2;
+ c->weight_h264_pixels_tab[7]= ff_h264_weight_4x2_mmx2;
+
+ c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_mmx2;
+ c->biweight_h264_pixels_tab[1]= ff_h264_biweight_16x8_mmx2;
+ c->biweight_h264_pixels_tab[2]= ff_h264_biweight_8x16_mmx2;
+ c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_mmx2;
+ c->biweight_h264_pixels_tab[4]= ff_h264_biweight_8x4_mmx2;
+ c->biweight_h264_pixels_tab[5]= ff_h264_biweight_4x8_mmx2;
+ c->biweight_h264_pixels_tab[6]= ff_h264_biweight_4x4_mmx2;
+ c->biweight_h264_pixels_tab[7]= ff_h264_biweight_4x2_mmx2;
+
+ if (mm_flags&AV_CPU_FLAG_SSE2) {
+ c->h264_idct8_add = ff_h264_idct8_add_sse2;
+ c->h264_idct8_add4= ff_h264_idct8_add4_sse2;
+
+ c->weight_h264_pixels_tab[0]= ff_h264_weight_16x16_sse2;
+ c->weight_h264_pixels_tab[1]= ff_h264_weight_16x8_sse2;
+ c->weight_h264_pixels_tab[2]= ff_h264_weight_8x16_sse2;
+ c->weight_h264_pixels_tab[3]= ff_h264_weight_8x8_sse2;
+ c->weight_h264_pixels_tab[4]= ff_h264_weight_8x4_sse2;
+
+ c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_sse2;
+ c->biweight_h264_pixels_tab[1]= ff_h264_biweight_16x8_sse2;
+ c->biweight_h264_pixels_tab[2]= ff_h264_biweight_8x16_sse2;
+ c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_sse2;
+ c->biweight_h264_pixels_tab[4]= ff_h264_biweight_8x4_sse2;
+
+#if ARCH_X86_64 || !defined(__ICC) || __ICC > 1110
+ c->h264_v_loop_filter_luma = ff_x264_deblock_v_luma_sse2;
+ c->h264_h_loop_filter_luma = ff_x264_deblock_h_luma_sse2;
+ c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_sse2;
+ c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_sse2;
+#endif
+ c->h264_idct_add16 = ff_h264_idct_add16_sse2;
+ c->h264_idct_add8 = ff_h264_idct_add8_sse2;
+ c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2;
+ }
+ if (mm_flags&AV_CPU_FLAG_SSSE3) {
+ c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_ssse3;
+ c->biweight_h264_pixels_tab[1]= ff_h264_biweight_16x8_ssse3;
+ c->biweight_h264_pixels_tab[2]= ff_h264_biweight_8x16_ssse3;
+ c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_ssse3;
+ c->biweight_h264_pixels_tab[4]= ff_h264_biweight_8x4_ssse3;
+ }
}
}
#endif
}
-#endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/idct_sse2_xvid.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/idct_sse2_xvid.c
index fc670e25d..d8a534240 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/idct_sse2_xvid.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/idct_sse2_xvid.c
@@ -385,11 +385,11 @@ inline void ff_idct_xvid_sse2(short *block)
void ff_idct_xvid_sse2_put(uint8_t *dest, int line_size, short *block)
{
ff_idct_xvid_sse2(block);
- put_pixels_clamped_mmx(block, dest, line_size);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
}
void ff_idct_xvid_sse2_add(uint8_t *dest, int line_size, short *block)
{
ff_idct_xvid_sse2(block);
- add_pixels_clamped_mmx(block, dest, line_size);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c
index 75ec4b2cf..f3d0eb336 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/mpegvideo_mmx.c
@@ -22,6 +22,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
@@ -625,9 +626,9 @@ static void denoise_dct_sse2(MpegEncContext *s, DCTELEM *block){
void MPV_common_init_mmx(MpegEncContext *s)
{
- int mm_flags = mm_support();
+ int mm_flags = av_get_cpu_flags();
- if (mm_flags & FF_MM_MMX) {
+ if (mm_flags & AV_CPU_FLAG_MMX) {
const int dct_algo = s->avctx->dct_algo;
s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_mmx;
@@ -638,7 +639,7 @@ void MPV_common_init_mmx(MpegEncContext *s)
s->dct_unquantize_mpeg2_intra = dct_unquantize_mpeg2_intra_mmx;
s->dct_unquantize_mpeg2_inter = dct_unquantize_mpeg2_inter_mmx;
- if (mm_flags & FF_MM_SSE2) {
+ if (mm_flags & AV_CPU_FLAG_SSE2) {
s->denoise_dct= denoise_dct_sse2;
} else {
s->denoise_dct= denoise_dct_mmx;
@@ -646,13 +647,13 @@ void MPV_common_init_mmx(MpegEncContext *s)
if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){
#if HAVE_SSSE3
- if(mm_flags & FF_MM_SSSE3){
+ if(mm_flags & AV_CPU_FLAG_SSSE3){
s->dct_quantize= dct_quantize_SSSE3;
} else
#endif
- if(mm_flags & FF_MM_SSE2){
+ if(mm_flags & AV_CPU_FLAG_SSE2){
s->dct_quantize= dct_quantize_SSE2;
- } else if(mm_flags & FF_MM_MMX2){
+ } else if(mm_flags & AV_CPU_FLAG_MMX2){
s->dct_quantize= dct_quantize_MMX2;
} else {
s->dct_quantize= dct_quantize_MMX;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/simple_idct_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/simple_idct_mmx.c
index e32b8f0b4..8ad0d3192 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/simple_idct_mmx.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/simple_idct_mmx.c
@@ -1287,10 +1287,10 @@ void ff_simple_idct_mmx(int16_t *block)
void ff_simple_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block)
{
idct(block);
- put_pixels_clamped_mmx(block, dest, line_size);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
}
void ff_simple_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block)
{
idct(block);
- add_pixels_clamped_mmx(block, dest, line_size);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_mmx.c
index eb3ad2c32..8889bb36e 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_mmx.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_mmx.c
@@ -24,6 +24,7 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
+#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
@@ -714,7 +715,7 @@ static void vc1_h_loop_filter16_sse4(uint8_t *src, int stride, int pq)
#endif
void ff_vc1dsp_init_mmx(DSPContext* dsp, AVCodecContext *avctx) {
- int mm_flags = mm_support();
+ int mm_flags = av_get_cpu_flags();
dsp->put_vc1_mspel_pixels_tab[ 0] = ff_put_vc1_mspel_mc00_mmx;
dsp->put_vc1_mspel_pixels_tab[ 4] = put_vc1_mspel_mc01_mmx;
@@ -736,7 +737,7 @@ void ff_vc1dsp_init_mmx(DSPContext* dsp, AVCodecContext *avctx) {
dsp->put_vc1_mspel_pixels_tab[11] = put_vc1_mspel_mc32_mmx;
dsp->put_vc1_mspel_pixels_tab[15] = put_vc1_mspel_mc33_mmx;
- if (mm_flags & FF_MM_MMX2){
+ if (mm_flags & AV_CPU_FLAG_MMX2){
dsp->avg_vc1_mspel_pixels_tab[ 0] = ff_avg_vc1_mspel_mc00_mmx2;
dsp->avg_vc1_mspel_pixels_tab[ 4] = avg_vc1_mspel_mc01_mmx2;
dsp->avg_vc1_mspel_pixels_tab[ 8] = avg_vc1_mspel_mc02_mmx2;
@@ -772,23 +773,23 @@ void ff_vc1dsp_init_mmx(DSPContext* dsp, AVCodecContext *avctx) {
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_ ## EXT
#if HAVE_YASM
- if (mm_flags & FF_MM_MMX) {
+ if (mm_flags & AV_CPU_FLAG_MMX) {
ASSIGN_LF(mmx);
}
return;
- if (mm_flags & FF_MM_MMX2) {
+ if (mm_flags & AV_CPU_FLAG_MMX2) {
ASSIGN_LF(mmx2);
}
- if (mm_flags & FF_MM_SSE2) {
+ if (mm_flags & AV_CPU_FLAG_SSE2) {
dsp->vc1_v_loop_filter8 = ff_vc1_v_loop_filter8_sse2;
dsp->vc1_h_loop_filter8 = ff_vc1_h_loop_filter8_sse2;
dsp->vc1_v_loop_filter16 = vc1_v_loop_filter16_sse2;
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_sse2;
}
- if (mm_flags & FF_MM_SSSE3) {
+ if (mm_flags & AV_CPU_FLAG_SSSE3) {
ASSIGN_LF(ssse3);
}
- if (mm_flags & FF_MM_SSE4) {
+ if (mm_flags & AV_CPU_FLAG_SSE4) {
dsp->vc1_h_loop_filter8 = ff_vc1_h_loop_filter8_sse4;
dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_sse4;
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_yasm.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_yasm.asm
index 660ff1169..3ea9d8db4 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_yasm.asm
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vc1dsp_yasm.asm
@@ -36,7 +36,7 @@ section .text
%endmacro
%macro STORE_4_WORDS_MMX 6
- movd %6, %5
+ movd %6d, %5
%if mmsize==16
psrldq %5, 4
%else
@@ -45,7 +45,7 @@ section .text
mov %1, %6w
shr %6, 16
mov %2, %6w
- movd %6, %5
+ movd %6d, %5
mov %3, %6w
shr %6, 16
mov %4, %6w
@@ -88,7 +88,7 @@ section .text
pxor m7, m3 ; d_sign ^= a0_sign
pxor m5, m5
- movd m3, r2
+ movd m3, r2d
%if %1 > 4
punpcklbw m3, m3
%endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp.asm
new file mode 100644
index 000000000..f2b0af326
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp.asm
@@ -0,0 +1,618 @@
+;******************************************************************************
+;* MMX/SSE2-optimized functions for the VP3 decoder
+;* Copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
+;*
+;* This file is part of FFmpeg.
+;*
+;* FFmpeg is free software; you can redistribute it and/or
+;* modify it under the terms of the GNU Lesser General Public
+;* License as published by the Free Software Foundation; either
+;* version 2.1 of the License, or (at your option) any later version.
+;*
+;* FFmpeg 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
+;* Lesser General Public License for more details.
+;*
+;* You should have received a copy of the GNU Lesser General Public
+;* License along with FFmpeg; if not, write to the Free Software
+;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;******************************************************************************
+
+%include "x86inc.asm"
+%include "x86util.asm"
+
+; MMX-optimized functions cribbed from the original VP3 source code.
+
+SECTION_RODATA
+
+vp3_idct_data: times 8 dw 64277
+ times 8 dw 60547
+ times 8 dw 54491
+ times 8 dw 46341
+ times 8 dw 36410
+ times 8 dw 25080
+ times 8 dw 12785
+
+cextern pb_1
+cextern pb_3
+cextern pb_7
+cextern pb_1F
+cextern pb_81
+
+cextern pw_8
+
+cextern put_signed_pixels_clamped_mmx
+cextern add_pixels_clamped_mmx
+
+SECTION .text
+
+; this is off by one or two for some cases when filter_limit is greater than 63
+; in: p0 in mm6, p1 in mm4, p2 in mm2, p3 in mm1
+; out: p1 in mm4, p2 in mm3
+%macro VP3_LOOP_FILTER 0
+ movq m7, m6
+ pand m6, [pb_7] ; p0&7
+ psrlw m7, 3
+ pand m7, [pb_1F] ; p0>>3
+ movq m3, m2 ; p2
+ pxor m2, m4
+ pand m2, [pb_1] ; (p2^p1)&1
+ movq m5, m2
+ paddb m2, m2
+ paddb m2, m5 ; 3*(p2^p1)&1
+ paddb m2, m6 ; extra bits lost in shifts
+ pcmpeqb m0, m0
+ pxor m1, m0 ; 255 - p3
+ pavgb m1, m2 ; (256 - p3 + extrabits) >> 1
+ pxor m0, m4 ; 255 - p1
+ pavgb m0, m3 ; (256 + p2-p1) >> 1
+ paddb m1, [pb_3]
+ pavgb m1, m0 ; 128+2+( p2-p1 - p3) >> 2
+ pavgb m1, m0 ; 128+1+(3*(p2-p1) - p3) >> 3
+ paddusb m7, m1 ; d+128+1
+ movq m6, [pb_81]
+ psubusb m6, m7
+ psubusb m7, [pb_81]
+
+ movq m5, [r2+516] ; flim
+ pminub m6, m5
+ pminub m7, m5
+ movq m0, m6
+ movq m1, m7
+ paddb m6, m6
+ paddb m7, m7
+ pminub m6, m5
+ pminub m7, m5
+ psubb m6, m0
+ psubb m7, m1
+ paddusb m4, m7
+ psubusb m4, m6
+ psubusb m3, m7
+ paddusb m3, m6
+%endmacro
+
+%macro STORE_4_WORDS 1
+ movd r2d, %1
+ mov [r0 -1], r2w
+ psrlq %1, 32
+ shr r2, 16
+ mov [r0+r1 -1], r2w
+ movd r2d, %1
+ mov [r0+r1*2-1], r2w
+ shr r2, 16
+ mov [r0+r3 -1], r2w
+%endmacro
+
+INIT_MMX
+cglobal vp3_v_loop_filter_mmx2, 3, 4
+%ifdef ARCH_X86_64
+ movsxd r1, r1d
+%endif
+ mov r3, r1
+ neg r1
+ movq m6, [r0+r1*2]
+ movq m4, [r0+r1 ]
+ movq m2, [r0 ]
+ movq m1, [r0+r3 ]
+
+ VP3_LOOP_FILTER
+
+ movq [r0+r1], m4
+ movq [r0 ], m3
+ RET
+
+cglobal vp3_h_loop_filter_mmx2, 3, 4
+%ifdef ARCH_X86_64
+ movsxd r1, r1d
+%endif
+ lea r3, [r1*3]
+
+ movd m6, [r0 -2]
+ movd m4, [r0+r1 -2]
+ movd m2, [r0+r1*2-2]
+ movd m1, [r0+r3 -2]
+ lea r0, [r0+r1*4 ]
+ punpcklbw m6, [r0 -2]
+ punpcklbw m4, [r0+r1 -2]
+ punpcklbw m2, [r0+r1*2-2]
+ punpcklbw m1, [r0+r3 -2]
+ sub r0, r3
+ sub r0, r1
+
+ TRANSPOSE4x4B 6, 4, 2, 1, 0
+ VP3_LOOP_FILTER
+ SBUTTERFLY bw, 4, 3, 5
+
+ STORE_4_WORDS m4
+ lea r0, [r0+r1*4 ]
+ STORE_4_WORDS m3
+ RET
+
+; from original comments: The Macro does IDct on 4 1-D Dcts
+%macro BeginIDCT 0
+ movq m2, I(3)
+ movq m6, C(3)
+ movq m4, m2
+ movq m7, J(5)
+ pmulhw m4, m6 ; r4 = c3*i3 - i3
+ movq m1, C(5)
+ pmulhw m6, m7 ; r6 = c3*i5 - i5
+ movq m5, m1
+ pmulhw m1, m2 ; r1 = c5*i3 - i3
+ movq m3, I(1)
+ pmulhw m5, m7 ; r5 = c5*i5 - i5
+ movq m0, C(1)
+ paddw m4, m2 ; r4 = c3*i3
+ paddw m6, m7 ; r6 = c3*i5
+ paddw m2, m1 ; r2 = c5*i3
+ movq m1, J(7)
+ paddw m7, m5 ; r7 = c5*i5
+ movq m5, m0 ; r5 = c1
+ pmulhw m0, m3 ; r0 = c1*i1 - i1
+ paddsw m4, m7 ; r4 = C = c3*i3 + c5*i5
+ pmulhw m5, m1 ; r5 = c1*i7 - i7
+ movq m7, C(7)
+ psubsw m6, m2 ; r6 = D = c3*i5 - c5*i3
+ paddw m0, m3 ; r0 = c1*i1
+ pmulhw m3, m7 ; r3 = c7*i1
+ movq m2, I(2)
+ pmulhw m7, m1 ; r7 = c7*i7
+ paddw m5, m1 ; r5 = c1*i7
+ movq m1, m2 ; r1 = i2
+ pmulhw m2, C(2) ; r2 = c2*i2 - i2
+ psubsw m3, m5 ; r3 = B = c7*i1 - c1*i7
+ movq m5, J(6)
+ paddsw m0, m7 ; r0 = A = c1*i1 + c7*i7
+ movq m7, m5 ; r7 = i6
+ psubsw m0, m4 ; r0 = A - C
+ pmulhw m5, C(2) ; r5 = c2*i6 - i6
+ paddw m2, m1 ; r2 = c2*i2
+ pmulhw m1, C(6) ; r1 = c6*i2
+ paddsw m4, m4 ; r4 = C + C
+ paddsw m4, m0 ; r4 = C. = A + C
+ psubsw m3, m6 ; r3 = B - D
+ paddw m5, m7 ; r5 = c2*i6
+ paddsw m6, m6 ; r6 = D + D
+ pmulhw m7, C(6) ; r7 = c6*i6
+ paddsw m6, m3 ; r6 = D. = B + D
+ movq I(1), m4 ; save C. at I(1)
+ psubsw m1, m5 ; r1 = H = c6*i2 - c2*i6
+ movq m4, C(4)
+ movq m5, m3 ; r5 = B - D
+ pmulhw m3, m4 ; r3 = (c4 - 1) * (B - D)
+ paddsw m7, m2 ; r3 = (c4 - 1) * (B - D)
+ movq I(2), m6 ; save D. at I(2)
+ movq m2, m0 ; r2 = A - C
+ movq m6, I(0)
+ pmulhw m0, m4 ; r0 = (c4 - 1) * (A - C)
+ paddw m5, m3 ; r5 = B. = c4 * (B - D)
+ movq m3, J(4)
+ psubsw m5, m1 ; r5 = B.. = B. - H
+ paddw m2, m0 ; r0 = A. = c4 * (A - C)
+ psubsw m6, m3 ; r6 = i0 - i4
+ movq m0, m6
+ pmulhw m6, m4 ; r6 = (c4 - 1) * (i0 - i4)
+ paddsw m3, m3 ; r3 = i4 + i4
+ paddsw m1, m1 ; r1 = H + H
+ paddsw m3, m0 ; r3 = i0 + i4
+ paddsw m1, m5 ; r1 = H. = B + H
+ pmulhw m4, m3 ; r4 = (c4 - 1) * (i0 + i4)
+ paddsw m6, m0 ; r6 = F = c4 * (i0 - i4)
+ psubsw m6, m2 ; r6 = F. = F - A.
+ paddsw m2, m2 ; r2 = A. + A.
+ movq m0, I(1) ; r0 = C.
+ paddsw m2, m6 ; r2 = A.. = F + A.
+ paddw m4, m3 ; r4 = E = c4 * (i0 + i4)
+ psubsw m2, m1 ; r2 = R2 = A.. - H.
+%endmacro
+
+; RowIDCT gets ready to transpose
+%macro RowIDCT 0
+ BeginIDCT
+ movq m3, I(2) ; r3 = D.
+ psubsw m4, m7 ; r4 = E. = E - G
+ paddsw m1, m1 ; r1 = H. + H.
+ paddsw m7, m7 ; r7 = G + G
+ paddsw m1, m2 ; r1 = R1 = A.. + H.
+ paddsw m7, m4 ; r1 = R1 = A.. + H.
+ psubsw m4, m3 ; r4 = R4 = E. - D.
+ paddsw m3, m3
+ psubsw m6, m5 ; r6 = R6 = F. - B..
+ paddsw m5, m5
+ paddsw m3, m4 ; r3 = R3 = E. + D.
+ paddsw m5, m6 ; r5 = R5 = F. + B..
+ psubsw m7, m0 ; r7 = R7 = G. - C.
+ paddsw m0, m0
+ movq I(1), m1 ; save R1
+ paddsw m0, m7 ; r0 = R0 = G. + C.
+%endmacro
+
+; Column IDCT normalizes and stores final results
+%macro ColumnIDCT 0
+ BeginIDCT
+ paddsw m2, OC_8 ; adjust R2 (and R1) for shift
+ paddsw m1, m1 ; r1 = H. + H.
+ paddsw m1, m2 ; r1 = R1 = A.. + H.
+ psraw m2, 4 ; r2 = NR2
+ psubsw m4, m7 ; r4 = E. = E - G
+ psraw m1, 4 ; r1 = NR2
+ movq m3, I(2) ; r3 = D.
+ paddsw m7, m7 ; r7 = G + G
+ movq I(2), m2 ; store NR2 at I2
+ paddsw m7, m4 ; r7 = G. = E + G
+ movq I(1), m1 ; store NR1 at I1
+ psubsw m4, m3 ; r4 = R4 = E. - D.
+ paddsw m4, OC_8 ; adjust R4 (and R3) for shift
+ paddsw m3, m3 ; r3 = D. + D.
+ paddsw m3, m4 ; r3 = R3 = E. + D.
+ psraw m4, 4 ; r4 = NR4
+ psubsw m6, m5 ; r6 = R6 = F. - B..
+ psraw m3, 4 ; r3 = NR3
+ paddsw m6, OC_8 ; adjust R6 (and R5) for shift
+ paddsw m5, m5 ; r5 = B.. + B..
+ paddsw m5, m6 ; r5 = R5 = F. + B..
+ psraw m6, 4 ; r6 = NR6
+ movq J(4), m4 ; store NR4 at J4
+ psraw m5, 4 ; r5 = NR5
+ movq I(3), m3 ; store NR3 at I3
+ psubsw m7, m0 ; r7 = R7 = G. - C.
+ paddsw m7, OC_8 ; adjust R7 (and R0) for shift
+ paddsw m0, m0 ; r0 = C. + C.
+ paddsw m0, m7 ; r0 = R0 = G. + C.
+ psraw m7, 4 ; r7 = NR7
+ movq J(6), m6 ; store NR6 at J6
+ psraw m0, 4 ; r0 = NR0
+ movq J(5), m5 ; store NR5 at J5
+ movq J(7), m7 ; store NR7 at J7
+ movq I(0), m0 ; store NR0 at I0
+%endmacro
+
+; Following macro does two 4x4 transposes in place.
+;
+; At entry (we assume):
+;
+; r0 = a3 a2 a1 a0
+; I(1) = b3 b2 b1 b0
+; r2 = c3 c2 c1 c0
+; r3 = d3 d2 d1 d0
+;
+; r4 = e3 e2 e1 e0
+; r5 = f3 f2 f1 f0
+; r6 = g3 g2 g1 g0
+; r7 = h3 h2 h1 h0
+;
+; At exit, we have:
+;
+; I(0) = d0 c0 b0 a0
+; I(1) = d1 c1 b1 a1
+; I(2) = d2 c2 b2 a2
+; I(3) = d3 c3 b3 a3
+;
+; J(4) = h0 g0 f0 e0
+; J(5) = h1 g1 f1 e1
+; J(6) = h2 g2 f2 e2
+; J(7) = h3 g3 f3 e3
+;
+; I(0) I(1) I(2) I(3) is the transpose of r0 I(1) r2 r3.
+; J(4) J(5) J(6) J(7) is the transpose of r4 r5 r6 r7.
+;
+; Since r1 is free at entry, we calculate the Js first.
+%macro Transpose 0
+ movq m1, m4 ; r1 = e3 e2 e1 e0
+ punpcklwd m4, m5 ; r4 = f1 e1 f0 e0
+ movq I(0), m0 ; save a3 a2 a1 a0
+ punpckhwd m1, m5 ; r1 = f3 e3 f2 e2
+ movq m0, m6 ; r0 = g3 g2 g1 g0
+ punpcklwd m6, m7 ; r6 = h1 g1 h0 g0
+ movq m5, m4 ; r5 = f1 e1 f0 e0
+ punpckldq m4, m6 ; r4 = h0 g0 f0 e0 = R4
+ punpckhdq m5, m6 ; r5 = h1 g1 f1 e1 = R5
+ movq m6, m1 ; r6 = f3 e3 f2 e2
+ movq J(4), m4
+ punpckhwd m0, m7 ; r0 = h3 g3 h2 g2
+ movq J(5), m5
+ punpckhdq m6, m0 ; r6 = h3 g3 f3 e3 = R7
+ movq m4, I(0) ; r4 = a3 a2 a1 a0
+ punpckldq m1, m0 ; r1 = h2 g2 f2 e2 = R6
+ movq m5, I(1) ; r5 = b3 b2 b1 b0
+ movq m0, m4 ; r0 = a3 a2 a1 a0
+ movq J(7), m6
+ punpcklwd m0, m5 ; r0 = b1 a1 b0 a0
+ movq J(6), m1
+ punpckhwd m4, m5 ; r4 = b3 a3 b2 a2
+ movq m5, m2 ; r5 = c3 c2 c1 c0
+ punpcklwd m2, m3 ; r2 = d1 c1 d0 c0
+ movq m1, m0 ; r1 = b1 a1 b0 a0
+ punpckldq m0, m2 ; r0 = d0 c0 b0 a0 = R0
+ punpckhdq m1, m2 ; r1 = d1 c1 b1 a1 = R1
+ movq m2, m4 ; r2 = b3 a3 b2 a2
+ movq I(0), m0
+ punpckhwd m5, m3 ; r5 = d3 c3 d2 c2
+ movq I(1), m1
+ punpckhdq m4, m5 ; r4 = d3 c3 b3 a3 = R3
+ punpckldq m2, m5 ; r2 = d2 c2 b2 a2 = R2
+ movq I(3), m4
+ movq I(2), m2
+%endmacro
+
+%macro VP3_IDCT_mmx 1
+ ; eax = quantized input
+ ; ebx = dequantizer matrix
+ ; ecx = IDCT constants
+ ; M(I) = ecx + MaskOffset(0) + I * 8
+ ; C(I) = ecx + CosineOffset(32) + (I-1) * 8
+ ; edx = output
+ ; r0..r7 = mm0..mm7
+%define OC_8 [pw_8]
+%define C(x) [vp3_idct_data+16*(x-1)]
+
+ ; at this point, function has completed dequantization + dezigzag +
+ ; partial transposition; now do the idct itself
+%define I(x) [%1+16* x ]
+%define J(x) [%1+16*(x-4)+8]
+ RowIDCT
+ Transpose
+
+%define I(x) [%1+16* x +64]
+%define J(x) [%1+16*(x-4)+72]
+ RowIDCT
+ Transpose
+
+%define I(x) [%1+16*x]
+%define J(x) [%1+16*x]
+ ColumnIDCT
+
+%define I(x) [%1+16*x+8]
+%define J(x) [%1+16*x+8]
+ ColumnIDCT
+%endmacro
+
+%macro VP3_1D_IDCT_SSE2 0
+ movdqa m2, I(3) ; xmm2 = i3
+ movdqa m6, C(3) ; xmm6 = c3
+ movdqa m4, m2 ; xmm4 = i3
+ movdqa m7, I(5) ; xmm7 = i5
+ pmulhw m4, m6 ; xmm4 = c3 * i3 - i3
+ movdqa m1, C(5) ; xmm1 = c5
+ pmulhw m6, m7 ; xmm6 = c3 * i5 - i5
+ movdqa m5, m1 ; xmm5 = c5
+ pmulhw m1, m2 ; xmm1 = c5 * i3 - i3
+ movdqa m3, I(1) ; xmm3 = i1
+ pmulhw m5, m7 ; xmm5 = c5 * i5 - i5
+ movdqa m0, C(1) ; xmm0 = c1
+ paddw m4, m2 ; xmm4 = c3 * i3
+ paddw m6, m7 ; xmm6 = c3 * i5
+ paddw m2, m1 ; xmm2 = c5 * i3
+ movdqa m1, I(7) ; xmm1 = i7
+ paddw m7, m5 ; xmm7 = c5 * i5
+ movdqa m5, m0 ; xmm5 = c1
+ pmulhw m0, m3 ; xmm0 = c1 * i1 - i1
+ paddsw m4, m7 ; xmm4 = c3 * i3 + c5 * i5 = C
+ pmulhw m5, m1 ; xmm5 = c1 * i7 - i7
+ movdqa m7, C(7) ; xmm7 = c7
+ psubsw m6, m2 ; xmm6 = c3 * i5 - c5 * i3 = D
+ paddw m0, m3 ; xmm0 = c1 * i1
+ pmulhw m3, m7 ; xmm3 = c7 * i1
+ movdqa m2, I(2) ; xmm2 = i2
+ pmulhw m7, m1 ; xmm7 = c7 * i7
+ paddw m5, m1 ; xmm5 = c1 * i7
+ movdqa m1, m2 ; xmm1 = i2
+ pmulhw m2, C(2) ; xmm2 = i2 * c2 -i2
+ psubsw m3, m5 ; xmm3 = c7 * i1 - c1 * i7 = B
+ movdqa m5, I(6) ; xmm5 = i6
+ paddsw m0, m7 ; xmm0 = c1 * i1 + c7 * i7 = A
+ movdqa m7, m5 ; xmm7 = i6
+ psubsw m0, m4 ; xmm0 = A - C
+ pmulhw m5, C(2) ; xmm5 = c2 * i6 - i6
+ paddw m2, m1 ; xmm2 = i2 * c2
+ pmulhw m1, C(6) ; xmm1 = c6 * i2
+ paddsw m4, m4 ; xmm4 = C + C
+ paddsw m4, m0 ; xmm4 = A + C = C.
+ psubsw m3, m6 ; xmm3 = B - D
+ paddw m5, m7 ; xmm5 = c2 * i6
+ paddsw m6, m6 ; xmm6 = D + D
+ pmulhw m7, C(6) ; xmm7 = c6 * i6
+ paddsw m6, m3 ; xmm6 = B + D = D.
+ movdqa I(1), m4 ; Save C. at I(1)
+ psubsw m1, m5 ; xmm1 = c6 * i2 - c2 * i6 = H
+ movdqa m4, C(4) ; xmm4 = C4
+ movdqa m5, m3 ; xmm5 = B - D
+ pmulhw m3, m4 ; xmm3 = ( c4 -1 ) * ( B - D )
+ paddsw m7, m2 ; xmm7 = c2 * i2 + c6 * i6 = G
+ movdqa I(2), m6 ; save D. at I(2)
+ movdqa m2, m0 ; xmm2 = A - C
+ movdqa m6, I(0) ; xmm6 = i0
+ pmulhw m0, m4 ; xmm0 = ( c4 - 1 ) * ( A - C ) = A.
+ paddw m5, m3 ; xmm5 = c4 * ( B - D ) = B.
+ movdqa m3, I(4) ; xmm3 = i4
+ psubsw m5, m1 ; xmm5 = B. - H = B..
+ paddw m2, m0 ; xmm2 = c4 * ( A - C) = A.
+ psubsw m6, m3 ; xmm6 = i0 - i4
+ movdqa m0, m6 ; xmm0 = i0 - i4
+ pmulhw m6, m4 ; xmm6 = (c4 - 1) * (i0 - i4) = F
+ paddsw m3, m3 ; xmm3 = i4 + i4
+ paddsw m1, m1 ; xmm1 = H + H
+ paddsw m3, m0 ; xmm3 = i0 + i4
+ paddsw m1, m5 ; xmm1 = B. + H = H.
+ pmulhw m4, m3 ; xmm4 = ( c4 - 1 ) * ( i0 + i4 )
+ paddw m6, m0 ; xmm6 = c4 * ( i0 - i4 )
+ psubsw m6, m2 ; xmm6 = F - A. = F.
+ paddsw m2, m2 ; xmm2 = A. + A.
+ movdqa m0, I(1) ; Load C. from I(1)
+ paddsw m2, m6 ; xmm2 = F + A. = A..
+ paddw m4, m3 ; xmm4 = c4 * ( i0 + i4 ) = 3
+ psubsw m2, m1 ; xmm2 = A.. - H. = R2
+ ADD(m2) ; Adjust R2 and R1 before shifting
+ paddsw m1, m1 ; xmm1 = H. + H.
+ paddsw m1, m2 ; xmm1 = A.. + H. = R1
+ SHIFT(m2) ; xmm2 = op2
+ psubsw m4, m7 ; xmm4 = E - G = E.
+ SHIFT(m1) ; xmm1 = op1
+ movdqa m3, I(2) ; Load D. from I(2)
+ paddsw m7, m7 ; xmm7 = G + G
+ paddsw m7, m4 ; xmm7 = E + G = G.
+ psubsw m4, m3 ; xmm4 = E. - D. = R4
+ ADD(m4) ; Adjust R4 and R3 before shifting
+ paddsw m3, m3 ; xmm3 = D. + D.
+ paddsw m3, m4 ; xmm3 = E. + D. = R3
+ SHIFT(m4) ; xmm4 = op4
+ psubsw m6, m5 ; xmm6 = F. - B..= R6
+ SHIFT(m3) ; xmm3 = op3
+ ADD(m6) ; Adjust R6 and R5 before shifting
+ paddsw m5, m5 ; xmm5 = B.. + B..
+ paddsw m5, m6 ; xmm5 = F. + B.. = R5
+ SHIFT(m6) ; xmm6 = op6
+ SHIFT(m5) ; xmm5 = op5
+ psubsw m7, m0 ; xmm7 = G. - C. = R7
+ ADD(m7) ; Adjust R7 and R0 before shifting
+ paddsw m0, m0 ; xmm0 = C. + C.
+ paddsw m0, m7 ; xmm0 = G. + C.
+ SHIFT(m7) ; xmm7 = op7
+ SHIFT(m0) ; xmm0 = op0
+%endmacro
+
+%macro PUT_BLOCK 8
+ movdqa O(0), m%1
+ movdqa O(1), m%2
+ movdqa O(2), m%3
+ movdqa O(3), m%4
+ movdqa O(4), m%5
+ movdqa O(5), m%6
+ movdqa O(6), m%7
+ movdqa O(7), m%8
+%endmacro
+
+%macro VP3_IDCT_sse2 1
+%define I(x) [%1+16*x]
+%define O(x) [%1+16*x]
+%define C(x) [vp3_idct_data+16*(x-1)]
+%define SHIFT(x)
+%define ADD(x)
+ VP3_1D_IDCT_SSE2
+%ifdef ARCH_X86_64
+ TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, 8
+%else
+ TRANSPOSE8x8W 0, 1, 2, 3, 4, 5, 6, 7, [%1], [%1+16]
+%endif
+ PUT_BLOCK 0, 1, 2, 3, 4, 5, 6, 7
+
+%define SHIFT(x) psraw x, 4
+%define ADD(x) paddsw x, [pw_8]
+ VP3_1D_IDCT_SSE2
+ PUT_BLOCK 0, 1, 2, 3, 4, 5, 6, 7
+%endmacro
+
+%macro vp3_idct_funcs 3
+cglobal vp3_idct_%1, 1, 1, %2
+ VP3_IDCT_%1 r0
+ RET
+
+cglobal vp3_idct_put_%1, 3, %3, %2
+ VP3_IDCT_%1 r2
+%ifdef ARCH_X86_64
+ mov r3, r2
+ mov r2, r1
+ mov r1, r0
+ mov r0, r3
+%else
+ mov r0m, r2
+ mov r1m, r0
+ mov r2m, r1
+%endif
+%ifdef WIN64
+ call put_signed_pixels_clamped_mmx
+ RET
+%else
+ jmp put_signed_pixels_clamped_mmx
+%endif
+
+cglobal vp3_idct_add_%1, 3, %3, %2
+ VP3_IDCT_%1 r2
+%ifdef ARCH_X86_64
+ mov r3, r2
+ mov r2, r1
+ mov r1, r0
+ mov r0, r3
+%else
+ mov r0m, r2
+ mov r1m, r0
+ mov r2m, r1
+%endif
+%ifdef WIN64
+ call add_pixels_clamped_mmx
+ RET
+%else
+ jmp add_pixels_clamped_mmx
+%endif
+%endmacro
+
+%ifdef ARCH_X86_64
+%define REGS 4
+%else
+%define REGS 3
+%endif
+INIT_MMX
+vp3_idct_funcs mmx, 0, REGS
+INIT_XMM
+vp3_idct_funcs sse2, 9, REGS
+%undef REGS
+
+%macro DC_ADD 0
+ movq m2, [r0 ]
+ movq m3, [r0+r1 ]
+ paddusb m2, m0
+ movq m4, [r0+r1*2]
+ paddusb m3, m0
+ movq m5, [r0+r3 ]
+ paddusb m4, m0
+ paddusb m5, m0
+ psubusb m2, m1
+ psubusb m3, m1
+ movq [r0 ], m2
+ psubusb m4, m1
+ movq [r0+r1 ], m3
+ psubusb m5, m1
+ movq [r0+r1*2], m4
+ movq [r0+r3 ], m5
+%endmacro
+
+INIT_MMX
+cglobal vp3_idct_dc_add_mmx2, 3, 4
+%ifdef ARCH_X86_64
+ movsxd r1, r1d
+%endif
+ lea r3, [r1*3]
+ movsx r2, word [r2]
+ add r2, 15
+ sar r2, 5
+ movd m0, r2d
+ pshufw m0, m0, 0x0
+ pxor m1, m1
+ psubw m1, m0
+ packuswb m0, m0
+ packuswb m1, m1
+ DC_ADD
+ lea r0, [r0+r1*4]
+ DC_ADD
+ RET
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.c
deleted file mode 100644
index 92985921e..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- * Copyright (C) 2004 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * MMX-optimized functions cribbed from the original VP3 source code.
- */
-
-#include "libavutil/x86_cpu.h"
-#include "libavcodec/dsputil.h"
-#include "dsputil_mmx.h"
-#include "vp3dsp_mmx.h"
-
-extern const uint16_t ff_vp3_idct_data[];
-
-// this is off by one or two for some cases when filter_limit is greater than 63
-// in: p0 in mm6, p1 in mm4, p2 in mm2, p3 in mm1
-// out: p1 in mm4, p2 in mm3
-#define VP3_LOOP_FILTER(flim) \
- "movq %%mm6, %%mm7 \n\t" \
- "pand "MANGLE(ff_pb_7 )", %%mm6 \n\t" /* p0&7 */ \
- "psrlw $3, %%mm7 \n\t" \
- "pand "MANGLE(ff_pb_1F)", %%mm7 \n\t" /* p0>>3 */ \
- "movq %%mm2, %%mm3 \n\t" /* mm3 = p2 */ \
- "pxor %%mm4, %%mm2 \n\t" \
- "pand "MANGLE(ff_pb_1 )", %%mm2 \n\t" /* (p2^p1)&1 */ \
- "movq %%mm2, %%mm5 \n\t" \
- "paddb %%mm2, %%mm2 \n\t" \
- "paddb %%mm5, %%mm2 \n\t" /* 3*(p2^p1)&1 */ \
- "paddb %%mm6, %%mm2 \n\t" /* extra bits lost in shifts */ \
- "pcmpeqb %%mm0, %%mm0 \n\t" \
- "pxor %%mm0, %%mm1 \n\t" /* 255 - p3 */ \
- "pavgb %%mm2, %%mm1 \n\t" /* (256 - p3 + extrabits) >> 1 */ \
- "pxor %%mm4, %%mm0 \n\t" /* 255 - p1 */ \
- "pavgb %%mm3, %%mm0 \n\t" /* (256 + p2-p1) >> 1 */ \
- "paddb "MANGLE(ff_pb_3 )", %%mm1 \n\t" \
- "pavgb %%mm0, %%mm1 \n\t" /* 128+2+( p2-p1 - p3) >> 2 */ \
- "pavgb %%mm0, %%mm1 \n\t" /* 128+1+(3*(p2-p1) - p3) >> 3 */ \
- "paddusb %%mm1, %%mm7 \n\t" /* d+128+1 */ \
- "movq "MANGLE(ff_pb_81)", %%mm6 \n\t" \
- "psubusb %%mm7, %%mm6 \n\t" \
- "psubusb "MANGLE(ff_pb_81)", %%mm7 \n\t" \
-\
- "movq "#flim", %%mm5 \n\t" \
- "pminub %%mm5, %%mm6 \n\t" \
- "pminub %%mm5, %%mm7 \n\t" \
- "movq %%mm6, %%mm0 \n\t" \
- "movq %%mm7, %%mm1 \n\t" \
- "paddb %%mm6, %%mm6 \n\t" \
- "paddb %%mm7, %%mm7 \n\t" \
- "pminub %%mm5, %%mm6 \n\t" \
- "pminub %%mm5, %%mm7 \n\t" \
- "psubb %%mm0, %%mm6 \n\t" \
- "psubb %%mm1, %%mm7 \n\t" \
- "paddusb %%mm7, %%mm4 \n\t" \
- "psubusb %%mm6, %%mm4 \n\t" \
- "psubusb %%mm7, %%mm3 \n\t" \
- "paddusb %%mm6, %%mm3 \n\t"
-
-#define STORE_4_WORDS(dst0, dst1, dst2, dst3, mm) \
- "movd "#mm", %0 \n\t" \
- "movw %w0, -1"#dst0" \n\t" \
- "psrlq $32, "#mm" \n\t" \
- "shr $16, %0 \n\t" \
- "movw %w0, -1"#dst1" \n\t" \
- "movd "#mm", %0 \n\t" \
- "movw %w0, -1"#dst2" \n\t" \
- "shr $16, %0 \n\t" \
- "movw %w0, -1"#dst3" \n\t"
-
-void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values)
-{
- __asm__ volatile(
- "movq %0, %%mm6 \n\t"
- "movq %1, %%mm4 \n\t"
- "movq %2, %%mm2 \n\t"
- "movq %3, %%mm1 \n\t"
-
- VP3_LOOP_FILTER(%4)
-
- "movq %%mm4, %1 \n\t"
- "movq %%mm3, %2 \n\t"
-
- : "+m" (*(uint64_t*)(src - 2*stride)),
- "+m" (*(uint64_t*)(src - 1*stride)),
- "+m" (*(uint64_t*)(src + 0*stride)),
- "+m" (*(uint64_t*)(src + 1*stride))
- : "m"(*(uint64_t*)(bounding_values+129))
- );
-}
-
-void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values)
-{
- x86_reg tmp;
-
- __asm__ volatile(
- "movd -2(%1), %%mm6 \n\t"
- "movd -2(%1,%3), %%mm0 \n\t"
- "movd -2(%1,%3,2), %%mm1 \n\t"
- "movd -2(%1,%4), %%mm4 \n\t"
-
- TRANSPOSE8x4(%%mm6, %%mm0, %%mm1, %%mm4, -2(%2), -2(%2,%3), -2(%2,%3,2), -2(%2,%4), %%mm2)
- VP3_LOOP_FILTER(%5)
- SBUTTERFLY(%%mm4, %%mm3, %%mm5, bw, q)
-
- STORE_4_WORDS((%1), (%1,%3), (%1,%3,2), (%1,%4), %%mm4)
- STORE_4_WORDS((%2), (%2,%3), (%2,%3,2), (%2,%4), %%mm5)
-
- : "=&r"(tmp)
- : "r"(src), "r"(src+4*stride), "r"((x86_reg)stride), "r"((x86_reg)3*stride),
- "m"(*(uint64_t*)(bounding_values+129))
- : "memory"
- );
-}
-
-/* from original comments: The Macro does IDct on 4 1-D Dcts */
-#define BeginIDCT() \
- "movq "I(3)", %%mm2 \n\t" \
- "movq "C(3)", %%mm6 \n\t" \
- "movq %%mm2, %%mm4 \n\t" \
- "movq "J(5)", %%mm7 \n\t" \
- "pmulhw %%mm6, %%mm4 \n\t" /* r4 = c3*i3 - i3 */ \
- "movq "C(5)", %%mm1 \n\t" \
- "pmulhw %%mm7, %%mm6 \n\t" /* r6 = c3*i5 - i5 */ \
- "movq %%mm1, %%mm5 \n\t" \
- "pmulhw %%mm2, %%mm1 \n\t" /* r1 = c5*i3 - i3 */ \
- "movq "I(1)", %%mm3 \n\t" \
- "pmulhw %%mm7, %%mm5 \n\t" /* r5 = c5*i5 - i5 */ \
- "movq "C(1)", %%mm0 \n\t" \
- "paddw %%mm2, %%mm4 \n\t" /* r4 = c3*i3 */ \
- "paddw %%mm7, %%mm6 \n\t" /* r6 = c3*i5 */ \
- "paddw %%mm1, %%mm2 \n\t" /* r2 = c5*i3 */ \
- "movq "J(7)", %%mm1 \n\t" \
- "paddw %%mm5, %%mm7 \n\t" /* r7 = c5*i5 */ \
- "movq %%mm0, %%mm5 \n\t" /* r5 = c1 */ \
- "pmulhw %%mm3, %%mm0 \n\t" /* r0 = c1*i1 - i1 */ \
- "paddsw %%mm7, %%mm4 \n\t" /* r4 = C = c3*i3 + c5*i5 */ \
- "pmulhw %%mm1, %%mm5 \n\t" /* r5 = c1*i7 - i7 */ \
- "movq "C(7)", %%mm7 \n\t" \
- "psubsw %%mm2, %%mm6 \n\t" /* r6 = D = c3*i5 - c5*i3 */ \
- "paddw %%mm3, %%mm0 \n\t" /* r0 = c1*i1 */ \
- "pmulhw %%mm7, %%mm3 \n\t" /* r3 = c7*i1 */ \
- "movq "I(2)", %%mm2 \n\t" \
- "pmulhw %%mm1, %%mm7 \n\t" /* r7 = c7*i7 */ \
- "paddw %%mm1, %%mm5 \n\t" /* r5 = c1*i7 */ \
- "movq %%mm2, %%mm1 \n\t" /* r1 = i2 */ \
- "pmulhw "C(2)", %%mm2 \n\t" /* r2 = c2*i2 - i2 */ \
- "psubsw %%mm5, %%mm3 \n\t" /* r3 = B = c7*i1 - c1*i7 */ \
- "movq "J(6)", %%mm5 \n\t" \
- "paddsw %%mm7, %%mm0 \n\t" /* r0 = A = c1*i1 + c7*i7 */ \
- "movq %%mm5, %%mm7 \n\t" /* r7 = i6 */ \
- "psubsw %%mm4, %%mm0 \n\t" /* r0 = A - C */ \
- "pmulhw "C(2)", %%mm5 \n\t" /* r5 = c2*i6 - i6 */ \
- "paddw %%mm1, %%mm2 \n\t" /* r2 = c2*i2 */ \
- "pmulhw "C(6)", %%mm1 \n\t" /* r1 = c6*i2 */ \
- "paddsw %%mm4, %%mm4 \n\t" /* r4 = C + C */ \
- "paddsw %%mm0, %%mm4 \n\t" /* r4 = C. = A + C */ \
- "psubsw %%mm6, %%mm3 \n\t" /* r3 = B - D */ \
- "paddw %%mm7, %%mm5 \n\t" /* r5 = c2*i6 */ \
- "paddsw %%mm6, %%mm6 \n\t" /* r6 = D + D */ \
- "pmulhw "C(6)", %%mm7 \n\t" /* r7 = c6*i6 */ \
- "paddsw %%mm3, %%mm6 \n\t" /* r6 = D. = B + D */ \
- "movq %%mm4, "I(1)"\n\t" /* save C. at I(1) */ \
- "psubsw %%mm5, %%mm1 \n\t" /* r1 = H = c6*i2 - c2*i6 */ \
- "movq "C(4)", %%mm4 \n\t" \
- "movq %%mm3, %%mm5 \n\t" /* r5 = B - D */ \
- "pmulhw %%mm4, %%mm3 \n\t" /* r3 = (c4 - 1) * (B - D) */ \
- "paddsw %%mm2, %%mm7 \n\t" /* r3 = (c4 - 1) * (B - D) */ \
- "movq %%mm6, "I(2)"\n\t" /* save D. at I(2) */ \
- "movq %%mm0, %%mm2 \n\t" /* r2 = A - C */ \
- "movq "I(0)", %%mm6 \n\t" \
- "pmulhw %%mm4, %%mm0 \n\t" /* r0 = (c4 - 1) * (A - C) */ \
- "paddw %%mm3, %%mm5 \n\t" /* r5 = B. = c4 * (B - D) */ \
- "movq "J(4)", %%mm3 \n\t" \
- "psubsw %%mm1, %%mm5 \n\t" /* r5 = B.. = B. - H */ \
- "paddw %%mm0, %%mm2 \n\t" /* r0 = A. = c4 * (A - C) */ \
- "psubsw %%mm3, %%mm6 \n\t" /* r6 = i0 - i4 */ \
- "movq %%mm6, %%mm0 \n\t" \
- "pmulhw %%mm4, %%mm6 \n\t" /* r6 = (c4 - 1) * (i0 - i4) */ \
- "paddsw %%mm3, %%mm3 \n\t" /* r3 = i4 + i4 */ \
- "paddsw %%mm1, %%mm1 \n\t" /* r1 = H + H */ \
- "paddsw %%mm0, %%mm3 \n\t" /* r3 = i0 + i4 */ \
- "paddsw %%mm5, %%mm1 \n\t" /* r1 = H. = B + H */ \
- "pmulhw %%mm3, %%mm4 \n\t" /* r4 = (c4 - 1) * (i0 + i4) */ \
- "paddsw %%mm0, %%mm6 \n\t" /* r6 = F = c4 * (i0 - i4) */ \
- "psubsw %%mm2, %%mm6 \n\t" /* r6 = F. = F - A. */ \
- "paddsw %%mm2, %%mm2 \n\t" /* r2 = A. + A. */ \
- "movq "I(1)", %%mm0 \n\t" /* r0 = C. */ \
- "paddsw %%mm6, %%mm2 \n\t" /* r2 = A.. = F + A. */ \
- "paddw %%mm3, %%mm4 \n\t" /* r4 = E = c4 * (i0 + i4) */ \
- "psubsw %%mm1, %%mm2 \n\t" /* r2 = R2 = A.. - H. */
-
-/* RowIDCT gets ready to transpose */
-#define RowIDCT() \
- BeginIDCT() \
- "movq "I(2)", %%mm3 \n\t" /* r3 = D. */ \
- "psubsw %%mm7, %%mm4 \n\t" /* r4 = E. = E - G */ \
- "paddsw %%mm1, %%mm1 \n\t" /* r1 = H. + H. */ \
- "paddsw %%mm7, %%mm7 \n\t" /* r7 = G + G */ \
- "paddsw %%mm2, %%mm1 \n\t" /* r1 = R1 = A.. + H. */ \
- "paddsw %%mm4, %%mm7 \n\t" /* r1 = R1 = A.. + H. */ \
- "psubsw %%mm3, %%mm4 \n\t" /* r4 = R4 = E. - D. */ \
- "paddsw %%mm3, %%mm3 \n\t" \
- "psubsw %%mm5, %%mm6 \n\t" /* r6 = R6 = F. - B.. */ \
- "paddsw %%mm5, %%mm5 \n\t" \
- "paddsw %%mm4, %%mm3 \n\t" /* r3 = R3 = E. + D. */ \
- "paddsw %%mm6, %%mm5 \n\t" /* r5 = R5 = F. + B.. */ \
- "psubsw %%mm0, %%mm7 \n\t" /* r7 = R7 = G. - C. */ \
- "paddsw %%mm0, %%mm0 \n\t" \
- "movq %%mm1, "I(1)"\n\t" /* save R1 */ \
- "paddsw %%mm7, %%mm0 \n\t" /* r0 = R0 = G. + C. */
-
-/* Column IDCT normalizes and stores final results */
-#define ColumnIDCT() \
- BeginIDCT() \
- "paddsw "OC_8", %%mm2 \n\t" /* adjust R2 (and R1) for shift */ \
- "paddsw %%mm1, %%mm1 \n\t" /* r1 = H. + H. */ \
- "paddsw %%mm2, %%mm1 \n\t" /* r1 = R1 = A.. + H. */ \
- "psraw $4, %%mm2 \n\t" /* r2 = NR2 */ \
- "psubsw %%mm7, %%mm4 \n\t" /* r4 = E. = E - G */ \
- "psraw $4, %%mm1 \n\t" /* r1 = NR1 */ \
- "movq "I(2)", %%mm3 \n\t" /* r3 = D. */ \
- "paddsw %%mm7, %%mm7 \n\t" /* r7 = G + G */ \
- "movq %%mm2, "I(2)"\n\t" /* store NR2 at I2 */ \
- "paddsw %%mm4, %%mm7 \n\t" /* r7 = G. = E + G */ \
- "movq %%mm1, "I(1)"\n\t" /* store NR1 at I1 */ \
- "psubsw %%mm3, %%mm4 \n\t" /* r4 = R4 = E. - D. */ \
- "paddsw "OC_8", %%mm4 \n\t" /* adjust R4 (and R3) for shift */ \
- "paddsw %%mm3, %%mm3 \n\t" /* r3 = D. + D. */ \
- "paddsw %%mm4, %%mm3 \n\t" /* r3 = R3 = E. + D. */ \
- "psraw $4, %%mm4 \n\t" /* r4 = NR4 */ \
- "psubsw %%mm5, %%mm6 \n\t" /* r6 = R6 = F. - B.. */ \
- "psraw $4, %%mm3 \n\t" /* r3 = NR3 */ \
- "paddsw "OC_8", %%mm6 \n\t" /* adjust R6 (and R5) for shift */ \
- "paddsw %%mm5, %%mm5 \n\t" /* r5 = B.. + B.. */ \
- "paddsw %%mm6, %%mm5 \n\t" /* r5 = R5 = F. + B.. */ \
- "psraw $4, %%mm6 \n\t" /* r6 = NR6 */ \
- "movq %%mm4, "J(4)"\n\t" /* store NR4 at J4 */ \
- "psraw $4, %%mm5 \n\t" /* r5 = NR5 */ \
- "movq %%mm3, "I(3)"\n\t" /* store NR3 at I3 */ \
- "psubsw %%mm0, %%mm7 \n\t" /* r7 = R7 = G. - C. */ \
- "paddsw "OC_8", %%mm7 \n\t" /* adjust R7 (and R0) for shift */ \
- "paddsw %%mm0, %%mm0 \n\t" /* r0 = C. + C. */ \
- "paddsw %%mm7, %%mm0 \n\t" /* r0 = R0 = G. + C. */ \
- "psraw $4, %%mm7 \n\t" /* r7 = NR7 */ \
- "movq %%mm6, "J(6)"\n\t" /* store NR6 at J6 */ \
- "psraw $4, %%mm0 \n\t" /* r0 = NR0 */ \
- "movq %%mm5, "J(5)"\n\t" /* store NR5 at J5 */ \
- "movq %%mm7, "J(7)"\n\t" /* store NR7 at J7 */ \
- "movq %%mm0, "I(0)"\n\t" /* store NR0 at I0 */
-
-/* Following macro does two 4x4 transposes in place.
-
- At entry (we assume):
-
- r0 = a3 a2 a1 a0
- I(1) = b3 b2 b1 b0
- r2 = c3 c2 c1 c0
- r3 = d3 d2 d1 d0
-
- r4 = e3 e2 e1 e0
- r5 = f3 f2 f1 f0
- r6 = g3 g2 g1 g0
- r7 = h3 h2 h1 h0
-
- At exit, we have:
-
- I(0) = d0 c0 b0 a0
- I(1) = d1 c1 b1 a1
- I(2) = d2 c2 b2 a2
- I(3) = d3 c3 b3 a3
-
- J(4) = h0 g0 f0 e0
- J(5) = h1 g1 f1 e1
- J(6) = h2 g2 f2 e2
- J(7) = h3 g3 f3 e3
-
- I(0) I(1) I(2) I(3) is the transpose of r0 I(1) r2 r3.
- J(4) J(5) J(6) J(7) is the transpose of r4 r5 r6 r7.
-
- Since r1 is free at entry, we calculate the Js first. */
-#define Transpose() \
- "movq %%mm4, %%mm1 \n\t" /* r1 = e3 e2 e1 e0 */ \
- "punpcklwd %%mm5, %%mm4 \n\t" /* r4 = f1 e1 f0 e0 */ \
- "movq %%mm0, "I(0)"\n\t" /* save a3 a2 a1 a0 */ \
- "punpckhwd %%mm5, %%mm1 \n\t" /* r1 = f3 e3 f2 e2 */ \
- "movq %%mm6, %%mm0 \n\t" /* r0 = g3 g2 g1 g0 */ \
- "punpcklwd %%mm7, %%mm6 \n\t" /* r6 = h1 g1 h0 g0 */ \
- "movq %%mm4, %%mm5 \n\t" /* r5 = f1 e1 f0 e0 */ \
- "punpckldq %%mm6, %%mm4 \n\t" /* r4 = h0 g0 f0 e0 = R4 */ \
- "punpckhdq %%mm6, %%mm5 \n\t" /* r5 = h1 g1 f1 e1 = R5 */ \
- "movq %%mm1, %%mm6 \n\t" /* r6 = f3 e3 f2 e2 */ \
- "movq %%mm4, "J(4)"\n\t" \
- "punpckhwd %%mm7, %%mm0 \n\t" /* r0 = h3 g3 h2 g2 */ \
- "movq %%mm5, "J(5)"\n\t" \
- "punpckhdq %%mm0, %%mm6 \n\t" /* r6 = h3 g3 f3 e3 = R7 */ \
- "movq "I(0)", %%mm4 \n\t" /* r4 = a3 a2 a1 a0 */ \
- "punpckldq %%mm0, %%mm1 \n\t" /* r1 = h2 g2 f2 e2 = R6 */ \
- "movq "I(1)", %%mm5 \n\t" /* r5 = b3 b2 b1 b0 */ \
- "movq %%mm4, %%mm0 \n\t" /* r0 = a3 a2 a1 a0 */ \
- "movq %%mm6, "J(7)"\n\t" \
- "punpcklwd %%mm5, %%mm0 \n\t" /* r0 = b1 a1 b0 a0 */ \
- "movq %%mm1, "J(6)"\n\t" \
- "punpckhwd %%mm5, %%mm4 \n\t" /* r4 = b3 a3 b2 a2 */ \
- "movq %%mm2, %%mm5 \n\t" /* r5 = c3 c2 c1 c0 */ \
- "punpcklwd %%mm3, %%mm2 \n\t" /* r2 = d1 c1 d0 c0 */ \
- "movq %%mm0, %%mm1 \n\t" /* r1 = b1 a1 b0 a0 */ \
- "punpckldq %%mm2, %%mm0 \n\t" /* r0 = d0 c0 b0 a0 = R0 */ \
- "punpckhdq %%mm2, %%mm1 \n\t" /* r1 = d1 c1 b1 a1 = R1 */ \
- "movq %%mm4, %%mm2 \n\t" /* r2 = b3 a3 b2 a2 */ \
- "movq %%mm0, "I(0)"\n\t" \
- "punpckhwd %%mm3, %%mm5 \n\t" /* r5 = d3 c3 d2 c2 */ \
- "movq %%mm1, "I(1)"\n\t" \
- "punpckhdq %%mm5, %%mm4 \n\t" /* r4 = d3 c3 b3 a3 = R3 */ \
- "punpckldq %%mm5, %%mm2 \n\t" /* r2 = d2 c2 b2 a2 = R2 */ \
- "movq %%mm4, "I(3)"\n\t" \
- "movq %%mm2, "I(2)"\n\t"
-
-void ff_vp3_idct_mmx(int16_t *output_data)
-{
- /* eax = quantized input
- * ebx = dequantizer matrix
- * ecx = IDCT constants
- * M(I) = ecx + MaskOffset(0) + I * 8
- * C(I) = ecx + CosineOffset(32) + (I-1) * 8
- * edx = output
- * r0..r7 = mm0..mm7
- */
-
-#define C(x) AV_STRINGIFY(16*(x-1))"(%1)"
-#define OC_8 "%2"
-
- /* at this point, function has completed dequantization + dezigzag +
- * partial transposition; now do the idct itself */
-#define I(x) AV_STRINGIFY(16* x )"(%0)"
-#define J(x) AV_STRINGIFY(16*(x-4) + 8)"(%0)"
-
- __asm__ volatile (
- RowIDCT()
- Transpose()
-
-#undef I
-#undef J
-#define I(x) AV_STRINGIFY(16* x + 64)"(%0)"
-#define J(x) AV_STRINGIFY(16*(x-4) + 72)"(%0)"
-
- RowIDCT()
- Transpose()
-
-#undef I
-#undef J
-#define I(x) AV_STRINGIFY(16*x)"(%0)"
-#define J(x) AV_STRINGIFY(16*x)"(%0)"
-
- ColumnIDCT()
-
-#undef I
-#undef J
-#define I(x) AV_STRINGIFY(16*x + 8)"(%0)"
-#define J(x) AV_STRINGIFY(16*x + 8)"(%0)"
-
- ColumnIDCT()
- :: "r"(output_data), "r"(ff_vp3_idct_data), "m"(ff_pw_8)
- );
-#undef I
-#undef J
-
-}
-
-void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_vp3_idct_mmx(block);
- put_signed_pixels_clamped_mmx(block, dest, line_size);
-}
-
-void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_vp3_idct_mmx(block);
- add_pixels_clamped_mmx(block, dest, line_size);
-}
-
-void ff_vp3_idct_dc_add_mmx2(uint8_t *dest, int linesize, const DCTELEM *block)
-{
- int dc = (block[0] + 15) >> 5;
-
- __asm__ volatile(
- "movd %3, %%mm0 \n\t"
- "pshufw $0, %%mm0, %%mm0 \n\t"
- "pxor %%mm1, %%mm1 \n\t"
- "psubw %%mm0, %%mm1 \n\t"
- "packuswb %%mm0, %%mm0 \n\t"
- "packuswb %%mm1, %%mm1 \n\t"
-
-#define DC_ADD \
- "movq (%0), %%mm2 \n\t" \
- "movq (%0,%1), %%mm3 \n\t" \
- "paddusb %%mm0, %%mm2 \n\t" \
- "movq (%0,%1,2), %%mm4 \n\t" \
- "paddusb %%mm0, %%mm3 \n\t" \
- "movq (%0,%2), %%mm5 \n\t" \
- "paddusb %%mm0, %%mm4 \n\t" \
- "paddusb %%mm0, %%mm5 \n\t" \
- "psubusb %%mm1, %%mm2 \n\t" \
- "psubusb %%mm1, %%mm3 \n\t" \
- "movq %%mm2, (%0) \n\t" \
- "psubusb %%mm1, %%mm4 \n\t" \
- "movq %%mm3, (%0,%1) \n\t" \
- "psubusb %%mm1, %%mm5 \n\t" \
- "movq %%mm4, (%0,%1,2) \n\t" \
- "movq %%mm5, (%0,%2) \n\t"
-
- DC_ADD
- "lea (%0,%1,4), %0 \n\t"
- DC_ADD
-
- : "+r"(dest)
- : "r"((x86_reg)linesize), "r"((x86_reg)3*linesize), "r"(dc)
- );
-}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.h
deleted file mode 100644
index e0ebf0b0f..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_mmx.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * vp3dsp MMX function declarations
- * Copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_X86_VP3DSP_MMX_H
-#define AVCODEC_X86_VP3DSP_MMX_H
-
-#include <stdint.h>
-#include "libavcodec/dsputil.h"
-
-void ff_vp3_idct_mmx(int16_t *data);
-void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_vp3_idct_dc_add_mmx2(uint8_t *dest, int line_size, const DCTELEM *block);
-
-void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
-void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
-
-#endif /* AVCODEC_X86_VP3DSP_MMX_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.c
deleted file mode 100644
index b54ffa39e..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2004 the ffmpeg project
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * SSE2-optimized functions cribbed from the original VP3 source code.
- */
-
-#include "libavcodec/dsputil.h"
-#include "dsputil_mmx.h"
-#include "vp3dsp_sse2.h"
-
-DECLARE_ALIGNED(16, const uint16_t, ff_vp3_idct_data)[7 * 8] =
-{
- 64277,64277,64277,64277,64277,64277,64277,64277,
- 60547,60547,60547,60547,60547,60547,60547,60547,
- 54491,54491,54491,54491,54491,54491,54491,54491,
- 46341,46341,46341,46341,46341,46341,46341,46341,
- 36410,36410,36410,36410,36410,36410,36410,36410,
- 25080,25080,25080,25080,25080,25080,25080,25080,
- 12785,12785,12785,12785,12785,12785,12785,12785
-};
-
-
-#define VP3_1D_IDCT_SSE2(ADD, SHIFT) \
- "movdqa "I(3)", %%xmm2 \n\t" /* xmm2 = i3 */ \
- "movdqa "C(3)", %%xmm6 \n\t" /* xmm6 = c3 */ \
- "movdqa %%xmm2, %%xmm4 \n\t" /* xmm4 = i3 */ \
- "movdqa "I(5)", %%xmm7 \n\t" /* xmm7 = i5 */ \
- "pmulhw %%xmm6, %%xmm4 \n\t" /* xmm4 = c3 * i3 - i3 */ \
- "movdqa "C(5)", %%xmm1 \n\t" /* xmm1 = c5 */ \
- "pmulhw %%xmm7, %%xmm6 \n\t" /* xmm6 = c3 * i5 - i5 */ \
- "movdqa %%xmm1, %%xmm5 \n\t" /* xmm5 = c5 */ \
- "pmulhw %%xmm2, %%xmm1 \n\t" /* xmm1 = c5 * i3 - i3 */ \
- "movdqa "I(1)", %%xmm3 \n\t" /* xmm3 = i1 */ \
- "pmulhw %%xmm7, %%xmm5 \n\t" /* xmm5 = c5 * i5 - i5 */ \
- "movdqa "C(1)", %%xmm0 \n\t" /* xmm0 = c1 */ \
- "paddw %%xmm2, %%xmm4 \n\t" /* xmm4 = c3 * i3 */ \
- "paddw %%xmm7, %%xmm6 \n\t" /* xmm6 = c3 * i5 */ \
- "paddw %%xmm1, %%xmm2 \n\t" /* xmm2 = c5 * i3 */ \
- "movdqa "I(7)", %%xmm1 \n\t" /* xmm1 = i7 */ \
- "paddw %%xmm5, %%xmm7 \n\t" /* xmm7 = c5 * i5 */ \
- "movdqa %%xmm0, %%xmm5 \n\t" /* xmm5 = c1 */ \
- "pmulhw %%xmm3, %%xmm0 \n\t" /* xmm0 = c1 * i1 - i1 */ \
- "paddsw %%xmm7, %%xmm4 \n\t" /* xmm4 = c3 * i3 + c5 * i5 = C */ \
- "pmulhw %%xmm1, %%xmm5 \n\t" /* xmm5 = c1 * i7 - i7 */ \
- "movdqa "C(7)", %%xmm7 \n\t" /* xmm7 = c7 */ \
- "psubsw %%xmm2, %%xmm6 \n\t" /* xmm6 = c3 * i5 - c5 * i3 = D */ \
- "paddw %%xmm3, %%xmm0 \n\t" /* xmm0 = c1 * i1 */ \
- "pmulhw %%xmm7, %%xmm3 \n\t" /* xmm3 = c7 * i1 */ \
- "movdqa "I(2)", %%xmm2 \n\t" /* xmm2 = i2 */ \
- "pmulhw %%xmm1, %%xmm7 \n\t" /* xmm7 = c7 * i7 */ \
- "paddw %%xmm1, %%xmm5 \n\t" /* xmm5 = c1 * i7 */ \
- "movdqa %%xmm2, %%xmm1 \n\t" /* xmm1 = i2 */ \
- "pmulhw "C(2)", %%xmm2 \n\t" /* xmm2 = i2 * c2 -i2 */ \
- "psubsw %%xmm5, %%xmm3 \n\t" /* xmm3 = c7 * i1 - c1 * i7 = B */ \
- "movdqa "I(6)", %%xmm5 \n\t" /* xmm5 = i6 */ \
- "paddsw %%xmm7, %%xmm0 \n\t" /* xmm0 = c1 * i1 + c7 * i7 = A */ \
- "movdqa %%xmm5, %%xmm7 \n\t" /* xmm7 = i6 */ \
- "psubsw %%xmm4, %%xmm0 \n\t" /* xmm0 = A - C */ \
- "pmulhw "C(2)", %%xmm5 \n\t" /* xmm5 = c2 * i6 - i6 */ \
- "paddw %%xmm1, %%xmm2 \n\t" /* xmm2 = i2 * c2 */ \
- "pmulhw "C(6)", %%xmm1 \n\t" /* xmm1 = c6 * i2 */ \
- "paddsw %%xmm4, %%xmm4 \n\t" /* xmm4 = C + C */ \
- "paddsw %%xmm0, %%xmm4 \n\t" /* xmm4 = A + C = C. */ \
- "psubsw %%xmm6, %%xmm3 \n\t" /* xmm3 = B - D */ \
- "paddw %%xmm7, %%xmm5 \n\t" /* xmm5 = c2 * i6 */ \
- "paddsw %%xmm6, %%xmm6 \n\t" /* xmm6 = D + D */ \
- "pmulhw "C(6)", %%xmm7 \n\t" /* xmm7 = c6 * i6 */ \
- "paddsw %%xmm3, %%xmm6 \n\t" /* xmm6 = B + D = D. */ \
- "movdqa %%xmm4, "I(1)" \n\t" /* Save C. at I(1) */ \
- "psubsw %%xmm5, %%xmm1 \n\t" /* xmm1 = c6 * i2 - c2 * i6 = H */ \
- "movdqa "C(4)", %%xmm4 \n\t" /* xmm4 = c4 */ \
- "movdqa %%xmm3, %%xmm5 \n\t" /* xmm5 = B - D */ \
- "pmulhw %%xmm4, %%xmm3 \n\t" /* xmm3 = ( c4 -1 ) * ( B - D ) */ \
- "paddsw %%xmm2, %%xmm7 \n\t" /* xmm7 = c2 * i2 + c6 * i6 = G */ \
- "movdqa %%xmm6, "I(2)" \n\t" /* Save D. at I(2) */ \
- "movdqa %%xmm0, %%xmm2 \n\t" /* xmm2 = A - C */ \
- "movdqa "I(0)", %%xmm6 \n\t" /* xmm6 = i0 */ \
- "pmulhw %%xmm4, %%xmm0 \n\t" /* xmm0 = ( c4 - 1 ) * ( A - C ) = A. */ \
- "paddw %%xmm3, %%xmm5 \n\t" /* xmm5 = c4 * ( B - D ) = B. */ \
- "movdqa "I(4)", %%xmm3 \n\t" /* xmm3 = i4 */ \
- "psubsw %%xmm1, %%xmm5 \n\t" /* xmm5 = B. - H = B.. */ \
- "paddw %%xmm0, %%xmm2 \n\t" /* xmm2 = c4 * ( A - C) = A. */ \
- "psubsw %%xmm3, %%xmm6 \n\t" /* xmm6 = i0 - i4 */ \
- "movdqa %%xmm6, %%xmm0 \n\t" /* xmm0 = i0 - i4 */ \
- "pmulhw %%xmm4, %%xmm6 \n\t" /* xmm6 = (c4 - 1) * (i0 - i4) = F */ \
- "paddsw %%xmm3, %%xmm3 \n\t" /* xmm3 = i4 + i4 */ \
- "paddsw %%xmm1, %%xmm1 \n\t" /* xmm1 = H + H */ \
- "paddsw %%xmm0, %%xmm3 \n\t" /* xmm3 = i0 + i4 */ \
- "paddsw %%xmm5, %%xmm1 \n\t" /* xmm1 = B. + H = H. */ \
- "pmulhw %%xmm3, %%xmm4 \n\t" /* xmm4 = ( c4 - 1 ) * ( i0 + i4 ) */ \
- "paddw %%xmm0, %%xmm6 \n\t" /* xmm6 = c4 * ( i0 - i4 ) */ \
- "psubsw %%xmm2, %%xmm6 \n\t" /* xmm6 = F - A. = F. */ \
- "paddsw %%xmm2, %%xmm2 \n\t" /* xmm2 = A. + A. */ \
- "movdqa "I(1)", %%xmm0 \n\t" /* Load C. from I(1) */ \
- "paddsw %%xmm6, %%xmm2 \n\t" /* xmm2 = F + A. = A.. */ \
- "paddw %%xmm3, %%xmm4 \n\t" /* xmm4 = c4 * ( i0 + i4 ) = 3 */ \
- "psubsw %%xmm1, %%xmm2 \n\t" /* xmm2 = A.. - H. = R2 */ \
- ADD(%%xmm2) /* Adjust R2 and R1 before shifting */ \
- "paddsw %%xmm1, %%xmm1 \n\t" /* xmm1 = H. + H. */ \
- "paddsw %%xmm2, %%xmm1 \n\t" /* xmm1 = A.. + H. = R1 */ \
- SHIFT(%%xmm2) /* xmm2 = op2 */ \
- "psubsw %%xmm7, %%xmm4 \n\t" /* xmm4 = E - G = E. */ \
- SHIFT(%%xmm1) /* xmm1 = op1 */ \
- "movdqa "I(2)", %%xmm3 \n\t" /* Load D. from I(2) */ \
- "paddsw %%xmm7, %%xmm7 \n\t" /* xmm7 = G + G */ \
- "paddsw %%xmm4, %%xmm7 \n\t" /* xmm7 = E + G = G. */ \
- "psubsw %%xmm3, %%xmm4 \n\t" /* xmm4 = E. - D. = R4 */ \
- ADD(%%xmm4) /* Adjust R4 and R3 before shifting */ \
- "paddsw %%xmm3, %%xmm3 \n\t" /* xmm3 = D. + D. */ \
- "paddsw %%xmm4, %%xmm3 \n\t" /* xmm3 = E. + D. = R3 */ \
- SHIFT(%%xmm4) /* xmm4 = op4 */ \
- "psubsw %%xmm5, %%xmm6 \n\t" /* xmm6 = F. - B..= R6 */ \
- SHIFT(%%xmm3) /* xmm3 = op3 */ \
- ADD(%%xmm6) /* Adjust R6 and R5 before shifting */ \
- "paddsw %%xmm5, %%xmm5 \n\t" /* xmm5 = B.. + B.. */ \
- "paddsw %%xmm6, %%xmm5 \n\t" /* xmm5 = F. + B.. = R5 */ \
- SHIFT(%%xmm6) /* xmm6 = op6 */ \
- SHIFT(%%xmm5) /* xmm5 = op5 */ \
- "psubsw %%xmm0, %%xmm7 \n\t" /* xmm7 = G. - C. = R7 */ \
- ADD(%%xmm7) /* Adjust R7 and R0 before shifting */ \
- "paddsw %%xmm0, %%xmm0 \n\t" /* xmm0 = C. + C. */ \
- "paddsw %%xmm7, %%xmm0 \n\t" /* xmm0 = G. + C. */ \
- SHIFT(%%xmm7) /* xmm7 = op7 */ \
- SHIFT(%%xmm0) /* xmm0 = op0 */
-
-#define PUT_BLOCK(r0, r1, r2, r3, r4, r5, r6, r7) \
- "movdqa " #r0 ", " O(0) "\n\t" \
- "movdqa " #r1 ", " O(1) "\n\t" \
- "movdqa " #r2 ", " O(2) "\n\t" \
- "movdqa " #r3 ", " O(3) "\n\t" \
- "movdqa " #r4 ", " O(4) "\n\t" \
- "movdqa " #r5 ", " O(5) "\n\t" \
- "movdqa " #r6 ", " O(6) "\n\t" \
- "movdqa " #r7 ", " O(7) "\n\t"
-
-#define NOP(xmm)
-#define SHIFT4(xmm) "psraw $4, "#xmm"\n\t"
-#define ADD8(xmm) "paddsw %2, "#xmm"\n\t"
-
-void ff_vp3_idct_sse2(int16_t *input_data)
-{
-#define I(x) AV_STRINGIFY(16*x)"(%0)"
-#define O(x) I(x)
-#define C(x) AV_STRINGIFY(16*(x-1))"(%1)"
-
- __asm__ volatile (
- VP3_1D_IDCT_SSE2(NOP, NOP)
-
- TRANSPOSE8(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm6, %%xmm7, (%0))
- PUT_BLOCK(%%xmm0, %%xmm5, %%xmm7, %%xmm3, %%xmm6, %%xmm4, %%xmm2, %%xmm1)
-
- VP3_1D_IDCT_SSE2(ADD8, SHIFT4)
- PUT_BLOCK(%%xmm0, %%xmm1, %%xmm2, %%xmm3, %%xmm4, %%xmm5, %%xmm6, %%xmm7)
- :: "r"(input_data), "r"(ff_vp3_idct_data), "m"(ff_pw_8)
- );
-}
-
-void ff_vp3_idct_put_sse2(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_vp3_idct_sse2(block);
- put_signed_pixels_clamped_mmx(block, dest, line_size);
-}
-
-void ff_vp3_idct_add_sse2(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_vp3_idct_sse2(block);
- add_pixels_clamped_mmx(block, dest, line_size);
-}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.h
deleted file mode 100644
index 9094620eb..000000000
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp3dsp_sse2.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * vp3dsp SSE2 function declarations
- * Copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_X86_VP3DSP_SSE2_H
-#define AVCODEC_X86_VP3DSP_SSE2_H
-
-#include "libavcodec/dsputil.h"
-
-void ff_vp3_idct_sse2(int16_t *input_data);
-void ff_vp3_idct_put_sse2(uint8_t *dest, int line_size, DCTELEM *block);
-void ff_vp3_idct_add_sse2(uint8_t *dest, int line_size, DCTELEM *block);
-
-#endif /* AVCODEC_X86_VP3DSP_SSE2_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp.asm
index 1b3165e54..0543ba00c 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp.asm
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp.asm
@@ -48,8 +48,8 @@ SECTION .text
movq m5, m2
punpcklbw m1, m7
punpcklbw m2, m7
- punpcklbw m4, m7
- punpcklbw m5, m7
+ punpckhbw m4, m7
+ punpckhbw m5, m7
pmullw m1, [rsp+8*13] ; src[x+8 ] * biweight [2]
pmullw m2, [rsp+8*14] ; src[x+16] * biweight [3]
pmullw m4, [rsp+8*13] ; src[x+8 ] * biweight [2]
@@ -95,13 +95,13 @@ SECTION .text
punpckldq m3, m3
punpckhdq m4, m4
punpckhwd m5, m5
- movq m6, m5
- punpckhdq m6, m6
+ movq m2, m5
+ punpckhdq m2, m2
punpckldq m5, m5
movq [rsp+8*11], m3
movq [rsp+8*12], m4
movq [rsp+8*13], m5
- movq [rsp+8*14], m6
+ movq [rsp+8*14], m2
%endmacro
%macro SPLAT4REGS_SSE2 0
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp_init.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp_init.c
index 5120ed231..87fc93531 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp_init.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp56dsp_init.c
@@ -20,6 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/vp56dsp.h"
@@ -32,14 +33,14 @@ void ff_vp6_filter_diag4_sse2(uint8_t *dst, uint8_t *src, int stride,
av_cold void ff_vp56dsp_init_x86(VP56DSPContext* c, enum CodecID codec)
{
#if HAVE_YASM
- int mm_flags = mm_support();
+ int mm_flags = av_get_cpu_flags();
if (CONFIG_VP6_DECODER && codec == CODEC_ID_VP6) {
- if (mm_flags & FF_MM_MMX) {
+ if (mm_flags & AV_CPU_FLAG_MMX) {
c->vp6_filter_diag4 = ff_vp6_filter_diag4_mmx;
}
- if (mm_flags & FF_MM_SSE2) {
+ if (mm_flags & AV_CPU_FLAG_SSE2) {
c->vp6_filter_diag4 = ff_vp6_filter_diag4_sse2;
}
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c
index ed5cf4602..201b34e24 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp-init.c
@@ -20,6 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/vp8dsp.h"
@@ -282,10 +283,10 @@ DECLARE_LOOP_FILTER(sse4)
av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
{
- int mm_flags = mm_support();
+ int mm_flags = av_get_cpu_flags();
#if HAVE_YASM
- if (mm_flags & FF_MM_MMX) {
+ if (mm_flags & AV_CPU_FLAG_MMX) {
c->vp8_idct_dc_add = ff_vp8_idct_dc_add_mmx;
c->vp8_idct_dc_add4y = ff_vp8_idct_dc_add4y_mmx;
c->vp8_idct_dc_add4uv = ff_vp8_idct_dc_add4uv_mmx;
@@ -312,7 +313,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
/* note that 4-tap width=16 functions are missing because w=16
* is only used for luma, and luma is always a copy or sixtap. */
- if (mm_flags & FF_MM_MMX2) {
+ if (mm_flags & AV_CPU_FLAG_MMX2) {
VP8_LUMA_MC_FUNC(0, 16, mmxext);
VP8_MC_FUNC(1, 8, mmxext);
VP8_MC_FUNC(2, 4, mmxext);
@@ -334,14 +335,14 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c->vp8_h_loop_filter8uv = ff_vp8_h_loop_filter8uv_mbedge_mmxext;
}
- if (mm_flags & FF_MM_SSE) {
+ if (mm_flags & AV_CPU_FLAG_SSE) {
c->vp8_idct_add = ff_vp8_idct_add_sse;
c->vp8_luma_dc_wht = ff_vp8_luma_dc_wht_sse;
c->put_vp8_epel_pixels_tab[0][0][0] =
c->put_vp8_bilinear_pixels_tab[0][0][0] = ff_put_vp8_pixels16_sse;
}
- if (mm_flags & (FF_MM_SSE2|FF_MM_SSE2SLOW)) {
+ if (mm_flags & (AV_CPU_FLAG_SSE2|AV_CPU_FLAG_SSE2SLOW)) {
VP8_LUMA_MC_FUNC(0, 16, sse2);
VP8_MC_FUNC(1, 8, sse2);
VP8_BILINEAR_MC_FUNC(0, 16, sse2);
@@ -356,7 +357,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c->vp8_v_loop_filter8uv = ff_vp8_v_loop_filter8uv_mbedge_sse2;
}
- if (mm_flags & FF_MM_SSE2) {
+ if (mm_flags & AV_CPU_FLAG_SSE2) {
c->vp8_idct_dc_add4y = ff_vp8_idct_dc_add4y_sse2;
c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_sse2;
@@ -368,7 +369,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c->vp8_h_loop_filter8uv = ff_vp8_h_loop_filter8uv_mbedge_sse2;
}
- if (mm_flags & FF_MM_SSSE3) {
+ if (mm_flags & AV_CPU_FLAG_SSSE3) {
VP8_LUMA_MC_FUNC(0, 16, ssse3);
VP8_MC_FUNC(1, 8, ssse3);
VP8_MC_FUNC(2, 4, ssse3);
@@ -390,7 +391,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c)
c->vp8_h_loop_filter8uv = ff_vp8_h_loop_filter8uv_mbedge_ssse3;
}
- if (mm_flags & FF_MM_SSE4) {
+ if (mm_flags & AV_CPU_FLAG_SSE4) {
c->vp8_idct_dc_add = ff_vp8_idct_dc_add_sse4;
c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_sse4;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp.asm b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp.asm
index 8cdbb3c7a..bc5ccc8e3 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp.asm
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/vp8dsp.asm
@@ -1342,7 +1342,7 @@ VP8_DC_WHT sse
psrldq m%2, 4
%if %10 == 8
movd [%5+%8*2], m%1
- movd %5, m%3
+ movd %5d, m%3
%endif
psrldq m%3, 4
psrldq m%4, 4
@@ -1379,26 +1379,26 @@ VP8_DC_WHT sse
; 4 is a pointer to the destination's 4th line
; 5/6 is -stride and +stride
%macro WRITE_2x4W 6
- movd %3, %1
+ movd %3d, %1
punpckhdq %1, %1
mov [%4+%5*4], %3w
shr %3, 16
add %4, %6
mov [%4+%5*4], %3w
- movd %3, %1
+ movd %3d, %1
add %4, %5
mov [%4+%5*2], %3w
shr %3, 16
mov [%4+%5 ], %3w
- movd %3, %2
+ movd %3d, %2
punpckhdq %2, %2
mov [%4 ], %3w
shr %3, 16
mov [%4+%6 ], %3w
- movd %3, %2
+ movd %3d, %2
add %4, %6
mov [%4+%6 ], %3w
shr %3, 16
@@ -1407,27 +1407,27 @@ VP8_DC_WHT sse
%endmacro
%macro WRITE_8W_SSE2 5
- movd %2, %1
+ movd %2d, %1
psrldq %1, 4
mov [%3+%4*4], %2w
shr %2, 16
add %3, %5
mov [%3+%4*4], %2w
- movd %2, %1
+ movd %2d, %1
psrldq %1, 4
add %3, %4
mov [%3+%4*2], %2w
shr %2, 16
mov [%3+%4 ], %2w
- movd %2, %1
+ movd %2d, %1
psrldq %1, 4
mov [%3 ], %2w
shr %2, 16
mov [%3+%5 ], %2w
- movd %2, %1
+ movd %2d, %1
add %3, %5
mov [%3+%5 ], %2w
shr %2, 16
@@ -1446,27 +1446,27 @@ VP8_DC_WHT sse
%endmacro
%macro SPLATB_REG_MMX 2-3
- movd %1, %2
+ movd %1, %2d
punpcklbw %1, %1
punpcklwd %1, %1
punpckldq %1, %1
%endmacro
%macro SPLATB_REG_MMXEXT 2-3
- movd %1, %2
+ movd %1, %2d
punpcklbw %1, %1
pshufw %1, %1, 0x0
%endmacro
%macro SPLATB_REG_SSE2 2-3
- movd %1, %2
+ movd %1, %2d
punpcklbw %1, %1
pshuflw %1, %1, 0x0
punpcklqdq %1, %1
%endmacro
%macro SPLATB_REG_SSSE3 3
- movd %1, %2
+ movd %1, %2d
pshufb %1, %3
%endmacro
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/avcore.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/avcore.h
index 5ddb6167a..d73572e27 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/avcore.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/avcore.h
@@ -24,10 +24,10 @@
* shared media utilities for the libav* libraries
*/
-#include <libavutil/avutil.h>
+#include "libavutil/avutil.h"
#define LIBAVCORE_VERSION_MAJOR 0
-#define LIBAVCORE_VERSION_MINOR 2
+#define LIBAVCORE_VERSION_MINOR 9
#define LIBAVCORE_VERSION_MICRO 0
#define LIBAVCORE_VERSION_INT AV_VERSION_INT(LIBAVCORE_VERSION_MAJOR, \
@@ -55,4 +55,12 @@ const char *avcore_configuration(void);
*/
const char *avcore_license(void);
+/**
+ * Those FF_API_* defines are not part of public API.
+ * They may change, break or disappear at any time.
+ */
+#ifndef FF_API_OLD_IMAGE_NAMES
+#define FF_API_OLD_IMAGE_NAMES (LIBAVCORE_VERSION_MAJOR < 1)
+#endif
+
#endif /* AVCORE_AVCORE_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.c
index ebaeff16c..0a21f6de2 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.c
@@ -24,7 +24,25 @@
#include "imgutils.h"
#include "libavutil/pixdesc.h"
-int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane)
+void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
+ const AVPixFmtDescriptor *pixdesc)
+{
+ int i;
+ memset(max_pixsteps, 0, 4*sizeof(max_pixsteps[0]));
+ if (max_pixstep_comps)
+ memset(max_pixstep_comps, 0, 4*sizeof(max_pixstep_comps[0]));
+
+ for (i = 0; i < 4; i++) {
+ const AVComponentDescriptor *comp = &(pixdesc->comp[i]);
+ if ((comp->step_minus1+1) > max_pixsteps[comp->plane]) {
+ max_pixsteps[comp->plane] = comp->step_minus1+1;
+ if (max_pixstep_comps)
+ max_pixstep_comps[comp->plane] = i;
+ }
+ }
+}
+
+int av_image_get_linesize(enum PixelFormat pix_fmt, int width, int plane)
{
const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt];
int max_step [4]; /* max pixel step for each plane */
@@ -34,12 +52,12 @@ int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane)
if (desc->flags & PIX_FMT_BITSTREAM)
return (width * (desc->comp[0].step_minus1+1) + 7) >> 3;
- av_fill_image_max_pixsteps(max_step, max_step_comp, desc);
+ av_image_fill_max_pixsteps(max_step, max_step_comp, desc);
s = (max_step_comp[plane] == 1 || max_step_comp[plane] == 2) ? desc->log2_chroma_w : 0;
return max_step[plane] * (((width + (1 << s) - 1)) >> s);
}
-int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width)
+int av_image_fill_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width)
{
int i;
const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt];
@@ -48,7 +66,7 @@ int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int widt
memset(linesizes, 0, 4*sizeof(linesizes[0]));
- if (desc->flags & PIX_FMT_HWACCEL)
+ if ((unsigned)pix_fmt >= PIX_FMT_NB || desc->flags & PIX_FMT_HWACCEL)
return AVERROR(EINVAL);
if (desc->flags & PIX_FMT_BITSTREAM) {
@@ -56,7 +74,7 @@ int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int widt
return 0;
}
- av_fill_image_max_pixsteps(max_step, max_step_comp, desc);
+ av_image_fill_max_pixsteps(max_step, max_step_comp, desc);
for (i = 0; i < 4; i++) {
int s = (max_step_comp[i] == 1 || max_step_comp[i] == 2) ? desc->log2_chroma_w : 0;
linesizes[i] = max_step[i] * (((width + (1 << s) - 1)) >> s);
@@ -65,7 +83,7 @@ int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int widt
return 0;
}
-int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
+int av_image_fill_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
uint8_t *ptr, const int linesizes[4])
{
int i, total_size, size[4], has_plane[4];
@@ -75,7 +93,7 @@ int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int heigh
memset(size , 0, sizeof(size));
memset(has_plane, 0, sizeof(has_plane));
- if (desc->flags & PIX_FMT_HWACCEL)
+ if ((unsigned)pix_fmt >= PIX_FMT_NB || desc->flags & PIX_FMT_HWACCEL)
return AVERROR(EINVAL);
data[0] = ptr;
@@ -110,7 +128,7 @@ typedef struct ImgUtils {
static const AVClass imgutils_class = { "IMGUTILS", av_default_item_name, NULL, LIBAVUTIL_VERSION_INT, offsetof(ImgUtils, log_offset), offsetof(ImgUtils, log_ctx) };
-int av_check_image_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx)
+int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx)
{
ImgUtils imgutils = { &imgutils_class, log_offset, log_ctx };
@@ -120,3 +138,79 @@ int av_check_image_size(unsigned int w, unsigned int h, int log_offset, void *lo
av_log(&imgutils, AV_LOG_ERROR, "Picture size %ux%u is invalid\n", w, h);
return AVERROR(EINVAL);
}
+
+void av_image_copy_plane(uint8_t *dst, int dst_linesize,
+ const uint8_t *src, int src_linesize,
+ int bytewidth, int height)
+{
+ if (!dst || !src)
+ return;
+ for (;height > 0; height--) {
+ memcpy(dst, src, bytewidth);
+ dst += dst_linesize;
+ src += src_linesize;
+ }
+}
+
+void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4],
+ const uint8_t *src_data[4], const int src_linesizes[4],
+ enum PixelFormat pix_fmt, int width, int height)
+{
+ const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt];
+
+ if (desc->flags & PIX_FMT_HWACCEL)
+ return;
+
+ if (desc->flags & PIX_FMT_PAL) {
+ av_image_copy_plane(dst_data[0], dst_linesizes[0],
+ src_data[0], src_linesizes[0],
+ width, height);
+ /* copy the palette */
+ memcpy(dst_data[1], src_data[1], 4*256);
+ } else {
+ int i, planes_nb = 0;
+
+ for (i = 0; i < desc->nb_components; i++)
+ planes_nb = FFMAX(planes_nb, desc->comp[i].plane + 1);
+
+ for (i = 0; i < planes_nb; i++) {
+ int h = height;
+ int bwidth = av_image_get_linesize(pix_fmt, width, i);
+ if (i == 1 || i == 2) {
+ h= -((-height)>>desc->log2_chroma_h);
+ }
+ av_image_copy_plane(dst_data[i], dst_linesizes[i],
+ src_data[i], src_linesizes[i],
+ bwidth, h);
+ }
+ }
+}
+
+#if FF_API_OLD_IMAGE_NAMES
+void av_fill_image_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
+ const AVPixFmtDescriptor *pixdesc)
+{
+ av_image_fill_max_pixsteps(max_pixsteps, max_pixstep_comps, pixdesc);
+}
+
+int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane)
+{
+ return av_image_get_linesize(pix_fmt, width, plane);
+}
+
+int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width)
+{
+ return av_image_fill_linesizes(linesizes, pix_fmt, width);
+}
+
+int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
+ uint8_t *ptr, const int linesizes[4])
+{
+ return av_image_fill_pointers(data, pix_fmt, height, ptr, linesizes);
+}
+
+int av_check_image_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx)
+{
+ return av_image_check_size(w, h, log_offset, log_ctx);
+}
+#endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.h
index 8e08d4738..8458fc6bb 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcore/imgutils.h
@@ -25,7 +25,6 @@
*/
#include "libavutil/pixdesc.h"
-#include "libavutil/pixfmt.h"
#include "avcore.h"
/**
@@ -44,23 +43,8 @@
* @param max_pixstep_comps an array which is filled with the component
* for each plane which has the max pixel step. May be NULL.
*/
-static inline void av_fill_image_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
- const AVPixFmtDescriptor *pixdesc)
-{
- int i;
- memset(max_pixsteps, 0, 4*sizeof(max_pixsteps[0]));
- if (max_pixstep_comps)
- memset(max_pixstep_comps, 0, 4*sizeof(max_pixstep_comps[0]));
-
- for (i = 0; i < 4; i++) {
- const AVComponentDescriptor *comp = &(pixdesc->comp[i]);
- if ((comp->step_minus1+1) > max_pixsteps[comp->plane]) {
- max_pixsteps[comp->plane] = comp->step_minus1+1;
- if (max_pixstep_comps)
- max_pixstep_comps[comp->plane] = i;
- }
- }
-}
+void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
+ const AVPixFmtDescriptor *pixdesc);
/**
* Compute the size of an image line with format pix_fmt and width
@@ -68,7 +52,7 @@ static inline void av_fill_image_max_pixsteps(int max_pixsteps[4], int max_pixst
*
* @return the computed size in bytes
*/
-int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane);
+int av_image_get_linesize(enum PixelFormat pix_fmt, int width, int plane);
/**
* Fill plane linesizes for an image with pixel format pix_fmt and
@@ -77,7 +61,7 @@ int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane);
* @param linesizes array to be filled with the linesize for each plane
* @return >= 0 in case of success, a negative error code otherwise
*/
-int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width);
+int av_image_fill_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width);
/**
* Fill plane data pointers for an image with pixel format pix_fmt and
@@ -86,14 +70,37 @@ int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int widt
* @param data pointers array to be filled with the pointer for each image plane
* @param ptr the pointer to a buffer which will contain the image
* @param linesizes[4] the array containing the linesize for each
- * plane, should be filled by av_fill_image_linesizes()
+ * plane, should be filled by av_image_fill_linesizes()
* @return the size in bytes required for the image buffer, a negative
* error code in case of failure
*/
-int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
+int av_image_fill_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
uint8_t *ptr, const int linesizes[4]);
/**
+ * Copy image plane from src to dst.
+ * That is, copy "height" number of lines of "bytewidth" bytes each.
+ * The first byte of each successive line is separated by *_linesize
+ * bytes.
+ *
+ * @param dst_linesize linesize for the image plane in dst
+ * @param src_linesize linesize for the image plane in src
+ */
+void av_image_copy_plane(uint8_t *dst, int dst_linesize,
+ const uint8_t *src, int src_linesize,
+ int bytewidth, int height);
+
+/**
+ * Copy image in src_data to dst_data.
+ *
+ * @param dst_linesize linesizes for the image in dst_data
+ * @param src_linesize linesizes for the image in src_data
+ */
+void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4],
+ const uint8_t *src_data[4], const int src_linesizes[4],
+ enum PixelFormat pix_fmt, int width, int height);
+
+/**
* Check if the given dimension of an image is valid, meaning that all
* bytes of the image can be addressed with a signed int.
*
@@ -103,6 +110,25 @@ int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int heigh
* @param log_ctx the parent logging context, it may be NULL
* @return >= 0 if valid, a negative error code otherwise
*/
+int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx);
+
+#if FF_API_OLD_IMAGE_NAMES
+attribute_deprecated
+void av_fill_image_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
+ const AVPixFmtDescriptor *pixdesc);
+
+attribute_deprecated
+int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane);
+
+attribute_deprecated
+int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width);
+
+attribute_deprecated
+int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
+ uint8_t *ptr, const int linesizes[4]);
+
+attribute_deprecated
int av_check_image_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx);
+#endif
#endif /* AVCORE_IMGUTILS_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avstring.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avstring.c
new file mode 100644
index 000000000..1ce680ac4
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avstring.c
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
+ * Copyright (c) 2007 Mans Rullgard
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include "avstring.h"
+#include "mem.h"
+
+#define vsnprintf _vsnprintf
+#define snprintf _snprintf
+
+int av_strstart(const char *str, const char *pfx, const char **ptr)
+{
+ while (*pfx && *pfx == *str) {
+ pfx++;
+ str++;
+ }
+ if (!*pfx && ptr)
+ *ptr = str;
+ return !*pfx;
+}
+
+int av_stristart(const char *str, const char *pfx, const char **ptr)
+{
+ while (*pfx && toupper((unsigned)*pfx) == toupper((unsigned)*str)) {
+ pfx++;
+ str++;
+ }
+ if (!*pfx && ptr)
+ *ptr = str;
+ return !*pfx;
+}
+
+char *av_stristr(const char *s1, const char *s2)
+{
+ if (!*s2)
+ return s1;
+
+ do {
+ if (av_stristart(s1, s2, NULL))
+ return s1;
+ } while (*s1++);
+
+ return NULL;
+}
+
+size_t av_strlcpy(char *dst, const char *src, size_t size)
+{
+ size_t len = 0;
+ while (++len < size && *src)
+ *dst++ = *src++;
+ if (len <= size)
+ *dst = 0;
+ return len + strlen(src) - 1;
+}
+
+size_t av_strlcat(char *dst, const char *src, size_t size)
+{
+ size_t len = strlen(dst);
+ if (size <= len + 1)
+ return len + strlen(src);
+ return len + av_strlcpy(dst + len, src, size - len);
+}
+
+size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...)
+{
+ int len = strlen(dst);
+ va_list vl;
+
+ va_start(vl, fmt);
+ len += vsnprintf(dst + len, size > len ? size - len : 0, fmt, vl);
+ va_end(vl);
+
+ return len;
+}
+
+char *av_d2str(double d)
+{
+ char *str= av_malloc(16);
+ if(str) snprintf(str, 16, "%f", d);
+ return str;
+}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avutil.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avutil.h
index 2c6d2e5b6..a2b8f0130 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avutil.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/avutil.h
@@ -40,7 +40,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 50
-#define LIBAVUTIL_VERSION_MINOR 22
+#define LIBAVUTIL_VERSION_MINOR 27
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/common.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/common.h
index 5d5e0f2c4..670d3b934 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/common.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/common.h
@@ -198,6 +198,20 @@ static inline av_const int av_ceil_log2_c(int x)
return av_log2((x - 1) << 1);
}
+/**
+ * Count number of bits set to one in x
+ * @param x value to count bits of
+ * @return the number of bits set to one in x
+ */
+static inline av_const int av_popcount_c(uint32_t x)
+{
+ x -= (x >> 1) & 0x55555555;
+ x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
+ x = (x + (x >> 4)) & 0x0F0F0F0F;
+ x += x >> 8;
+ return (x + (x >> 16)) & 0x3F;
+}
+
#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24))
#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((a) << 24))
@@ -360,5 +374,8 @@ static inline av_const int av_ceil_log2_c(int x)
#ifndef av_clipf
# define av_clipf av_clipf_c
#endif
+#ifndef av_popcount
+# define av_popcount av_popcount_c
+#endif
#endif /* HAVE_AV_CONFIG_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.c
new file mode 100644
index 000000000..1548530b8
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.c
@@ -0,0 +1,68 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "cpu.h"
+#include "config.h"
+
+int av_get_cpu_flags(void)
+{
+ static int flags, checked;
+
+ if (checked)
+ return flags;
+
+ if (ARCH_ARM) flags = ff_get_cpu_flags_arm();
+ if (ARCH_PPC) flags = ff_get_cpu_flags_ppc();
+ if (ARCH_X86) flags = ff_get_cpu_flags_x86();
+
+ checked = 1;
+ return flags;
+}
+
+#ifdef TEST
+
+#undef printf
+
+int main(void)
+{
+ int cpu_flags = av_get_cpu_flags();
+
+ printf("cpu_flags = 0x%08X\n", cpu_flags);
+ printf("cpu_flags = %s%s%s%s%s%s%s%s%s%s%s%s\n",
+#if ARCH_ARM
+ cpu_flags & AV_CPU_FLAG_IWMMXT ? "IWMMXT " : "",
+#elif ARCH_PPC
+ cpu_flags & AV_CPU_FLAG_ALTIVEC ? "ALTIVEC " : "",
+#elif ARCH_X86
+ cpu_flags & AV_CPU_FLAG_MMX ? "MMX " : "",
+ cpu_flags & AV_CPU_FLAG_MMX2 ? "MMX2 " : "",
+ cpu_flags & AV_CPU_FLAG_SSE ? "SSE " : "",
+ cpu_flags & AV_CPU_FLAG_SSE2 ? "SSE2 " : "",
+ cpu_flags & AV_CPU_FLAG_SSE2SLOW ? "SSE2(slow) " : "",
+ cpu_flags & AV_CPU_FLAG_SSE3 ? "SSE3 " : "",
+ cpu_flags & AV_CPU_FLAG_SSE3SLOW ? "SSE3(slow) " : "",
+ cpu_flags & AV_CPU_FLAG_SSSE3 ? "SSSE3 " : "",
+ cpu_flags & AV_CPU_FLAG_SSE4 ? "SSE4.1 " : "",
+ cpu_flags & AV_CPU_FLAG_SSE42 ? "SSE4.2 " : "",
+ cpu_flags & AV_CPU_FLAG_3DNOW ? "3DNow " : "",
+ cpu_flags & AV_CPU_FLAG_3DNOWEXT ? "3DNowExt " : "");
+#endif
+ return 0;
+}
+
+#endif
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.h
new file mode 100644
index 000000000..71cc26529
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/cpu.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVUTIL_CPU_H
+#define AVUTIL_CPU_H
+
+#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */
+
+ /* lower 16 bits - CPU features */
+#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX
+#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext
+#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW
+#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions
+#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions
+#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster
+#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt
+#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions
+#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster
+#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions
+#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions
+#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions
+#define AV_CPU_FLAG_IWMMXT 0x0100 ///< XScale IWMMXT
+#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard
+
+/**
+ * Return the flags which specify extensions supported by the CPU.
+ */
+int av_get_cpu_flags(void);
+
+/* The following CPU-specific functions shall not be called directly. */
+int ff_get_cpu_flags_arm(void);
+int ff_get_cpu_flags_ppc(void);
+int ff_get_cpu_flags_x86(void);
+
+#endif /* AVUTIL_CPU_H */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/eval.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/eval.c
new file mode 100644
index 000000000..db6e63a5e
--- /dev/null
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/eval.c
@@ -0,0 +1,523 @@
+/*
+ * Copyright (c) 2002-2006 Michael Niedermayer <michaelni@gmx.at>
+ * Copyright (c) 2006 Oded Shimon <ods15@ods15.dyndns.org>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * simple arithmetic expression evaluator.
+ *
+ * see http://joe.hotchkiss.com/programming/eval/eval.html
+ */
+
+#include "libavutil/avutil.h"
+#include "eval.h"
+
+typedef struct Parser {
+ const AVClass *class;
+ int stack_index;
+ char *s;
+ const double *const_values;
+ const char * const *const_names; // NULL terminated
+ double (* const *funcs1)(void *, double a); // NULL terminated
+ const char * const *func1_names; // NULL terminated
+ double (* const *funcs2)(void *, double a, double b); // NULL terminated
+ const char * const *func2_names; // NULL terminated
+ void *opaque;
+ int log_offset;
+ void *log_ctx;
+#define VARS 10
+ double var[VARS];
+} Parser;
+
+static const AVClass class = { "Eval", av_default_item_name, NULL, LIBAVUTIL_VERSION_INT, offsetof(Parser,log_offset), offsetof(Parser,log_ctx) };
+
+#ifdef __GNUC__
+static const int8_t si_prefixes['z' - 'E' + 1]={
+ ['y'-'E']= -24,
+ ['z'-'E']= -21,
+ ['a'-'E']= -18,
+ ['f'-'E']= -15,
+ ['p'-'E']= -12,
+ ['n'-'E']= - 9,
+ ['u'-'E']= - 6,
+ ['m'-'E']= - 3,
+ ['c'-'E']= - 2,
+ ['d'-'E']= - 1,
+ ['h'-'E']= 2,
+ ['k'-'E']= 3,
+ ['K'-'E']= 3,
+ ['M'-'E']= 6,
+ ['G'-'E']= 9,
+ ['T'-'E']= 12,
+ ['P'-'E']= 15,
+ ['E'-'E']= 18,
+ ['Z'-'E']= 21,
+ ['Y'-'E']= 24,
+};
+#else
+static const int8_t si_prefixes['z' - 'E' + 1];
+#endif
+
+double av_strtod(const char *numstr, char **tail)
+{
+ double d;
+ char *next;
+ d = strtod(numstr, &next);
+ /* if parsing succeeded, check for and interpret postfixes */
+ if (next!=numstr) {
+ if (*next >= 'E' && *next <= 'z') {
+ int e= si_prefixes[*next - 'E'];
+ if (e) {
+ if (next[1] == 'i') {
+ d*= pow( 2, e/0.3);
+ next+=2;
+ } else {
+ d*= pow(10, e);
+ next++;
+ }
+ }
+ }
+
+ if (*next=='B') {
+ d*=8;
+ next++;
+ }
+ }
+ /* if requested, fill in tail with the position after the last parsed
+ character */
+ if (tail)
+ *tail = next;
+ return d;
+}
+
+static int strmatch(const char *s, const char *prefix)
+{
+ int i;
+ for (i=0; prefix[i]; i++) {
+ if (prefix[i] != s[i]) return 0;
+ }
+ return 1;
+}
+
+struct AVExpr {
+ enum {
+ e_value, e_const, e_func0, e_func1, e_func2,
+ e_squish, e_gauss, e_ld,
+ e_mod, e_max, e_min, e_eq, e_gt, e_gte,
+ e_pow, e_mul, e_div, e_add,
+ e_last, e_st, e_while,
+ } type;
+ double value; // is sign in other types
+ union {
+ int const_index;
+ double (*func0)(double);
+ double (*func1)(void *, double);
+ double (*func2)(void *, double, double);
+ } a;
+ struct AVExpr *param[2];
+};
+
+static double eval_expr(Parser *p, AVExpr *e)
+{
+ switch (e->type) {
+ case e_value: return e->value;
+ case e_const: return e->value * p->const_values[e->a.const_index];
+ case e_func0: return e->value * e->a.func0(eval_expr(p, e->param[0]));
+ case e_func1: return e->value * e->a.func1(p->opaque, eval_expr(p, e->param[0]));
+ case e_func2: return e->value * e->a.func2(p->opaque, eval_expr(p, e->param[0]), eval_expr(p, e->param[1]));
+ case e_squish: return 1/(1+exp(4*eval_expr(p, e->param[0])));
+ case e_gauss: { double d = eval_expr(p, e->param[0]); return exp(-d*d/2)/sqrt(2*M_PI); }
+ case e_ld: return e->value * p->var[av_clip(eval_expr(p, e->param[0]), 0, VARS-1)];
+ case e_while: {
+ double d = NAN;
+ while (eval_expr(p, e->param[0]))
+ d=eval_expr(p, e->param[1]);
+ return d;
+ }
+ default: {
+ double d = eval_expr(p, e->param[0]);
+ double d2 = eval_expr(p, e->param[1]);
+ switch (e->type) {
+ case e_mod: return e->value * (d - floor(d/d2)*d2);
+ case e_max: return e->value * (d > d2 ? d : d2);
+ case e_min: return e->value * (d < d2 ? d : d2);
+ case e_eq: return e->value * (d == d2 ? 1.0 : 0.0);
+ case e_gt: return e->value * (d > d2 ? 1.0 : 0.0);
+ case e_gte: return e->value * (d >= d2 ? 1.0 : 0.0);
+ case e_pow: return e->value * pow(d, d2);
+ case e_mul: return e->value * (d * d2);
+ case e_div: return e->value * (d / d2);
+ case e_add: return e->value * (d + d2);
+ case e_last:return e->value * d2;
+ case e_st : return e->value * (p->var[av_clip(d, 0, VARS-1)]= d2);
+ }
+ }
+ }
+ return NAN;
+}
+
+static int parse_expr(AVExpr **e, Parser *p);
+
+void av_free_expr(AVExpr *e)
+{
+ if (!e) return;
+ av_free_expr(e->param[0]);
+ av_free_expr(e->param[1]);
+ av_freep(&e);
+}
+
+static int parse_primary(AVExpr **e, Parser *p)
+{
+ AVExpr *d = av_mallocz(sizeof(AVExpr));
+ char *next = p->s, *s0 = p->s;
+ int ret, i;
+
+ if (!d)
+ return AVERROR(ENOMEM);
+
+ /* number */
+ d->value = av_strtod(p->s, &next);
+ if (next != p->s) {
+ d->type = e_value;
+ p->s= next;
+ *e = d;
+ return 0;
+ }
+ d->value = 1;
+
+ /* named constants */
+ for (i=0; p->const_names && p->const_names[i]; i++) {
+ if (strmatch(p->s, p->const_names[i])) {
+ p->s+= strlen(p->const_names[i]);
+ d->type = e_const;
+ d->a.const_index = i;
+ *e = d;
+ return 0;
+ }
+ }
+
+ p->s= strchr(p->s, '(');
+ if (p->s==NULL) {
+ av_log(p, AV_LOG_ERROR, "Undefined constant or missing '(' in '%s'\n", s0);
+ p->s= next;
+ av_free_expr(d);
+ return AVERROR(EINVAL);
+ }
+ p->s++; // "("
+ if (*next == '(') { // special case do-nothing
+ av_freep(&d);
+ if ((ret = parse_expr(&d, p)) < 0)
+ return ret;
+ if (p->s[0] != ')') {
+ av_log(p, AV_LOG_ERROR, "Missing ')' in '%s'\n", s0);
+ av_free_expr(d);
+ return AVERROR(EINVAL);
+ }
+ p->s++; // ")"
+ *e = d;
+ return 0;
+ }
+ if ((ret = parse_expr(&(d->param[0]), p)) < 0) {
+ av_free_expr(d);
+ return ret;
+ }
+ if (p->s[0]== ',') {
+ p->s++; // ","
+ parse_expr(&d->param[1], p);
+ }
+ if (p->s[0] != ')') {
+ av_log(p, AV_LOG_ERROR, "Missing ')' or too many args in '%s'\n", s0);
+ av_free_expr(d);
+ return AVERROR(EINVAL);
+ }
+ p->s++; // ")"
+
+ d->type = e_func0;
+ if (strmatch(next, "sinh" )) d->a.func0 = sinh;
+ else if (strmatch(next, "cosh" )) d->a.func0 = cosh;
+ else if (strmatch(next, "tanh" )) d->a.func0 = tanh;
+ else if (strmatch(next, "sin" )) d->a.func0 = sin;
+ else if (strmatch(next, "cos" )) d->a.func0 = cos;
+ else if (strmatch(next, "tan" )) d->a.func0 = tan;
+ else if (strmatch(next, "atan" )) d->a.func0 = atan;
+ else if (strmatch(next, "asin" )) d->a.func0 = asin;
+ else if (strmatch(next, "acos" )) d->a.func0 = acos;
+ else if (strmatch(next, "exp" )) d->a.func0 = exp;
+ else if (strmatch(next, "log" )) d->a.func0 = log;
+ else if (strmatch(next, "abs" )) d->a.func0 = fabs;
+ else if (strmatch(next, "squish")) d->type = e_squish;
+ else if (strmatch(next, "gauss" )) d->type = e_gauss;
+ else if (strmatch(next, "mod" )) d->type = e_mod;
+ else if (strmatch(next, "max" )) d->type = e_max;
+ else if (strmatch(next, "min" )) d->type = e_min;
+ else if (strmatch(next, "eq" )) d->type = e_eq;
+ else if (strmatch(next, "gte" )) d->type = e_gte;
+ else if (strmatch(next, "gt" )) d->type = e_gt;
+ else if (strmatch(next, "lte" )) { AVExpr *tmp = d->param[1]; d->param[1] = d->param[0]; d->param[0] = tmp; d->type = e_gt; }
+ else if (strmatch(next, "lt" )) { AVExpr *tmp = d->param[1]; d->param[1] = d->param[0]; d->param[0] = tmp; d->type = e_gte; }
+ else if (strmatch(next, "ld" )) d->type = e_ld;
+ else if (strmatch(next, "st" )) d->type = e_st;
+ else if (strmatch(next, "while" )) d->type = e_while;
+ else {
+ for (i=0; p->func1_names && p->func1_names[i]; i++) {
+ if (strmatch(next, p->func1_names[i])) {
+ d->a.func1 = p->funcs1[i];
+ d->type = e_func1;
+ *e = d;
+ return 0;
+ }
+ }
+
+ for (i=0; p->func2_names && p->func2_names[i]; i++) {
+ if (strmatch(next, p->func2_names[i])) {
+ d->a.func2 = p->funcs2[i];
+ d->type = e_func2;
+ *e = d;
+ return 0;
+ }
+ }
+
+ av_log(p, AV_LOG_ERROR, "Unknown function in '%s'\n", s0);
+ av_free_expr(d);
+ return AVERROR(EINVAL);
+ }
+
+ *e = d;
+ return 0;
+}
+
+static AVExpr *new_eval_expr(int type, int value, AVExpr *p0, AVExpr *p1)
+{
+ AVExpr *e = av_mallocz(sizeof(AVExpr));
+ if (!e)
+ return NULL;
+ e->type =type ;
+ e->value =value ;
+ e->param[0] =p0 ;
+ e->param[1] =p1 ;
+ return e;
+}
+
+static int parse_pow(AVExpr **e, Parser *p, int *sign)
+{
+ *sign= (*p->s == '+') - (*p->s == '-');
+ p->s += *sign&1;
+ return parse_primary(e, p);
+}
+
+static int parse_factor(AVExpr **e, Parser *p)
+{
+ int sign, sign2, ret;
+ AVExpr *e0, *e1, *e2;
+ if ((ret = parse_pow(&e0, p, &sign)) < 0)
+ return ret;
+ while(p->s[0]=='^'){
+ e1 = e0;
+ p->s++;
+ if ((ret = parse_pow(&e2, p, &sign2)) < 0) {
+ av_free_expr(e1);
+ return ret;
+ }
+ e0 = new_eval_expr(e_pow, 1, e1, e2);
+ if (!e0) {
+ av_free_expr(e1);
+ av_free_expr(e2);
+ return AVERROR(ENOMEM);
+ }
+ if (e0->param[1]) e0->param[1]->value *= (sign2|1);
+ }
+ if (e0) e0->value *= (sign|1);
+
+ *e = e0;
+ return 0;
+}
+
+static int parse_term(AVExpr **e, Parser *p)
+{
+ int ret;
+ AVExpr *e0, *e1, *e2;
+ if ((ret = parse_factor(&e0, p)) < 0)
+ return ret;
+ while (p->s[0]=='*' || p->s[0]=='/') {
+ int c= *p->s++;
+ e1 = e0;
+ if ((ret = parse_factor(&e2, p)) < 0) {
+ av_free_expr(e1);
+ return ret;
+ }
+ e0 = new_eval_expr(c == '*' ? e_mul : e_div, 1, e1, e2);
+ if (!e0) {
+ av_free_expr(e1);
+ av_free_expr(e2);
+ return AVERROR(ENOMEM);
+ }
+ }
+ *e = e0;
+ return 0;
+}
+
+static int parse_subexpr(AVExpr **e, Parser *p)
+{
+ int ret;
+ AVExpr *e0, *e1, *e2;
+ if ((ret = parse_term(&e0, p)) < 0)
+ return ret;
+ while (*p->s == '+' || *p->s == '-') {
+ e1 = e0;
+ if ((ret = parse_term(&e2, p)) < 0) {
+ av_free_expr(e1);
+ return ret;
+ }
+ e0 = new_eval_expr(e_add, 1, e1, e2);
+ if (!e0) {
+ av_free_expr(e1);
+ av_free_expr(e2);
+ return AVERROR(ENOMEM);
+ }
+ };
+
+ *e = e0;
+ return 0;
+}
+
+static int parse_expr(AVExpr **e, Parser *p)
+{
+ int ret;
+ AVExpr *e0, *e1, *e2;
+ if (p->stack_index <= 0) //protect against stack overflows
+ return AVERROR(EINVAL);
+ p->stack_index--;
+
+ if ((ret = parse_subexpr(&e0, p)) < 0)
+ return ret;
+ while (*p->s == ';') {
+ e1 = e0;
+ if ((ret = parse_subexpr(&e2, p)) < 0) {
+ av_free_expr(e1);
+ return ret;
+ }
+ p->s++;
+ e0 = new_eval_expr(e_last, 1, e1, e2);
+ if (!e0) {
+ av_free_expr(e1);
+ av_free_expr(e2);
+ return AVERROR(ENOMEM);
+ }
+ };
+
+ p->stack_index++;
+ *e = e0;
+ return 0;
+}
+
+static int verify_expr(AVExpr *e)
+{
+ if (!e) return 0;
+ switch (e->type) {
+ case e_value:
+ case e_const: return 1;
+ case e_func0:
+ case e_func1:
+ case e_squish:
+ case e_ld:
+ case e_gauss: return verify_expr(e->param[0]);
+ default: return verify_expr(e->param[0]) && verify_expr(e->param[1]);
+ }
+}
+
+int av_parse_expr(AVExpr **expr, const char *s,
+ const char * const *const_names,
+ const char * const *func1_names, double (* const *funcs1)(void *, double),
+ const char * const *func2_names, double (* const *funcs2)(void *, double, double),
+ int log_offset, void *log_ctx)
+{
+ Parser p;
+ AVExpr *e = NULL;
+ char *w = av_malloc(strlen(s) + 1);
+ char *wp = w;
+ const char *s0 = s;
+ int ret = 0;
+
+ if (!w)
+ return AVERROR(ENOMEM);
+
+ while (*s)
+ if (!isspace(*s++)) *wp++ = s[-1];
+ *wp++ = 0;
+
+ p.class = &class;
+ p.stack_index=100;
+ p.s= w;
+ p.const_names = const_names;
+ p.funcs1 = funcs1;
+ p.func1_names = func1_names;
+ p.funcs2 = funcs2;
+ p.func2_names = func2_names;
+ p.log_offset = log_offset;
+ p.log_ctx = log_ctx;
+
+ if ((ret = parse_expr(&e, &p)) < 0)
+ goto end;
+ if (*p.s) {
+ av_log(&p, AV_LOG_ERROR, "Invalid chars '%s' at the end of expression '%s'\n", p.s, s0);
+ ret = AVERROR(EINVAL);
+ goto end;
+ }
+ if (!verify_expr(e)) {
+ av_free_expr(e);
+ ret = AVERROR(EINVAL);
+ goto end;
+ }
+ *expr = e;
+end:
+ av_free(w);
+ return ret;
+}
+
+double av_eval_expr(AVExpr *e, const double *const_values, void *opaque)
+{
+ Parser p;
+
+ p.const_values = const_values;
+ p.opaque = opaque;
+ return eval_expr(&p, e);
+}
+
+int av_parse_and_eval_expr(double *d, const char *s,
+ const char * const *const_names, const double *const_values,
+ const char * const *func1_names, double (* const *funcs1)(void *, double),
+ const char * const *func2_names, double (* const *funcs2)(void *, double, double),
+ void *opaque, int log_offset, void *log_ctx)
+{
+ AVExpr *e = NULL;
+ int ret = av_parse_expr(&e, s, const_names, func1_names, funcs1, func2_names, funcs2, log_offset, log_ctx);
+
+ if (ret < 0) {
+ *d = NAN;
+ return ret;
+ }
+ *d = av_eval_expr(e, const_values, opaque);
+ av_free_expr(e);
+#ifdef __GNUC__
+ return isnan(*d) ? AVERROR(EINVAL) : 0;
+#else
+ return 0;
+#endif
+}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/internal.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/internal.h
index 41f14ba89..1ebf77b83 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/internal.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/internal.h
@@ -106,7 +106,7 @@
#endif
/* MPC custom code start */
-#if defined(_DEBUG)
+#if defined (_DEBUG)
# define snprintf _snprintf
#endif
/* MPC custom code end */
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/intfloat_readwrite.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/intfloat_readwrite.c
index 1e60fc1db..036a2d130 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/intfloat_readwrite.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/intfloat_readwrite.c
@@ -21,7 +21,7 @@
*/
/**
- * @file libavutil/intfloat_readwrite.c
+ * @file
* portable IEEE float/double read/write functions
*/
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/lls.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/lls.c
index 047f976c3..385579276 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/lls.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/lls.c
@@ -21,7 +21,7 @@
*/
/**
- * @file libavutil/lls.c
+ * @file
* linear least squares model
*/
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/log.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/log.c
index b9f4e902a..4274c3ea7 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/log.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/log.c
@@ -43,6 +43,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
static int print_prefix=1;
static int count;
static char line[1024], prev[1024];
+ static int detect_repeats;
AVClass* avc= ptr ? *(AVClass**)ptr : NULL;
if(level>av_log_level)
return;
@@ -61,7 +62,12 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
vsnprintf(line + strlen(line), sizeof(line) - strlen(line), fmt, vl);
print_prefix= line[strlen(line)-1] == '\n';
- if(print_prefix && !strcmp(line, prev)){
+
+#if HAVE_ISATTY
+ if(!detect_repeats) detect_repeats= isatty(2) ? 1 : -1;
+#endif
+
+ if(print_prefix && detect_repeats==1 && !strcmp(line, prev)){
count++;
fprintf(stderr, " Last message repeated %d times\r", count);
return;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/pixdesc.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/pixdesc.c
index 08daaa307..9015e4fa8 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/pixdesc.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/pixdesc.c
@@ -54,11 +54,14 @@ void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesiz
}
} else {
const uint8_t *p = data[plane]+ y*linesize[plane] + x*step + comp.offset_plus1-1;
+ int is_8bit = shift + depth <= 8;
+
+ if (is_8bit)
+ p += !!(flags & PIX_FMT_BE);
while(w--){
- int val;
- if(flags & PIX_FMT_BE) val= AV_RB16(p);
- else val= AV_RL16(p);
+ int val = is_8bit ? *p :
+ flags & PIX_FMT_BE ? AV_RB16(p) : AV_RL16(p);
val = (val>>shift) & mask;
if(read_pal_component)
val= data[1][4*val + c];
@@ -92,15 +95,23 @@ void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesi
int shift = comp.shift;
uint8_t *p = data[plane]+ y*linesize[plane] + x*step + comp.offset_plus1-1;
- while (w--) {
- if (flags & PIX_FMT_BE) {
- uint16_t val = AV_RB16(p) | (*src++<<shift);
- AV_WB16(p, val);
- } else {
- uint16_t val = AV_RL16(p) | (*src++<<shift);
- AV_WL16(p, val);
+ if (shift + depth <= 8) {
+ p += !!(flags & PIX_FMT_BE);
+ while (w--) {
+ *p |= (*src++<<shift);
+ p += step;
+ }
+ } else {
+ while (w--) {
+ if (flags & PIX_FMT_BE) {
+ uint16_t val = AV_RB16(p) | (*src++<<shift);
+ AV_WB16(p, val);
+ } else {
+ uint16_t val = AV_RL16(p) | (*src++<<shift);
+ AV_WL16(p, val);
+ }
+ p+= step;
}
- p+= step;
}
}
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/bswap.h b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/bswap.h
index 462309f41..b6ceb76d3 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/bswap.h
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/bswap.h
@@ -17,7 +17,7 @@
*/
/**
- * @file libavutil/x86/bswap.h
+ * @file
* byte swapping routines
*/
@@ -28,15 +28,15 @@
#include "config.h"
#include "libavutil/attributes.h"
-#define bswap_16 bswap_16
-static av_always_inline av_const uint16_t bswap_16(uint16_t x)
+#define av_bswap16 av_bswap16
+static av_always_inline av_const uint16_t av_bswap16(uint16_t x)
{
__asm__("rorw $8, %0" : "+r"(x));
return x;
}
-#define bswap_32 bswap_32
-static av_always_inline av_const uint32_t bswap_32(uint32_t x)
+#define av_bswap32 av_bswap32
+static av_always_inline av_const uint32_t av_bswap32(uint32_t x)
{
#if HAVE_BSWAP
__asm__("bswap %0" : "+r" (x));
@@ -50,8 +50,8 @@ static av_always_inline av_const uint32_t bswap_32(uint32_t x)
}
#if ARCH_X86_64
-#define bswap_64 bswap_64
-static inline uint64_t av_const bswap_64(uint64_t x)
+#define av_bswap64 av_bswap64
+static inline uint64_t av_const av_bswap64(uint64_t x)
{
__asm__("bswap %0": "=r" (x) : "0" (x));
return x;
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/cpuid.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/cpu.c
index e96e3a93c..7f66ab7c3 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/x86/cpuid.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavutil/x86/cpu.c
@@ -21,10 +21,9 @@
*/
#include <stdlib.h>
+#include <string.h>
#include "libavutil/x86_cpu.h"
-#include "libavcodec/dsputil.h"
-
-#undef printf
+#include "libavutil/cpu.h"
/* ebx saving is necessary for PIC. gcc seems unable to see it alone */
#define cpuid(index,eax,ebx,ecx,edx)\
@@ -37,7 +36,7 @@
: "0" (index));
/* Function to test if multimedia instructions are supported... */
-int mm_support(void)
+int ff_get_cpu_flags_x86(void)
{
int rval = 0;
int eax, ebx, ecx, edx;
@@ -79,21 +78,21 @@ int mm_support(void)
family = ((eax>>8)&0xf) + ((eax>>20)&0xff);
model = ((eax>>4)&0xf) + ((eax>>12)&0xf0);
if (std_caps & (1<<23))
- rval |= FF_MM_MMX;
+ rval |= AV_CPU_FLAG_MMX;
if (std_caps & (1<<25))
- rval |= FF_MM_MMX2
+ rval |= AV_CPU_FLAG_MMX2
#if HAVE_SSE
- | FF_MM_SSE;
+ | AV_CPU_FLAG_SSE;
if (std_caps & (1<<26))
- rval |= FF_MM_SSE2;
+ rval |= AV_CPU_FLAG_SSE2;
if (ecx & 1)
- rval |= FF_MM_SSE3;
+ rval |= AV_CPU_FLAG_SSE3;
if (ecx & 0x00000200 )
- rval |= FF_MM_SSSE3;
+ rval |= AV_CPU_FLAG_SSSE3;
if (ecx & 0x00080000 )
- rval |= FF_MM_SSE4;
+ rval |= AV_CPU_FLAG_SSE4;
if (ecx & 0x00100000 )
- rval |= FF_MM_SSE42;
+ rval |= AV_CPU_FLAG_SSE42;
#endif
;
}
@@ -103,13 +102,13 @@ int mm_support(void)
if(max_ext_level >= 0x80000001){
cpuid(0x80000001, eax, ebx, ecx, ext_caps);
if (ext_caps & (1<<31))
- rval |= FF_MM_3DNOW;
+ rval |= AV_CPU_FLAG_3DNOW;
if (ext_caps & (1<<30))
- rval |= FF_MM_3DNOWEXT;
+ rval |= AV_CPU_FLAG_3DNOWEXT;
if (ext_caps & (1<<23))
- rval |= FF_MM_MMX;
+ rval |= AV_CPU_FLAG_MMX;
if (ext_caps & (1<<22))
- rval |= FF_MM_MMX2;
+ rval |= AV_CPU_FLAG_MMX2;
}
if (!strncmp(vendor.c, "GenuineIntel", 12) &&
@@ -117,26 +116,9 @@ int mm_support(void)
/* 6/9 (pentium-m "banias"), 6/13 (pentium-m "dothan"), and 6/14 (core1 "yonah")
* theoretically support sse2, but it's usually slower than mmx,
* so let's just pretend they don't. */
- if (rval & FF_MM_SSE2) rval ^= FF_MM_SSE2SLOW|FF_MM_SSE2;
- if (rval & FF_MM_SSE3) rval ^= FF_MM_SSE3SLOW|FF_MM_SSE3;
+ if (rval & AV_CPU_FLAG_SSE2) rval ^= AV_CPU_FLAG_SSE2SLOW|AV_CPU_FLAG_SSE2;
+ if (rval & AV_CPU_FLAG_SSE3) rval ^= AV_CPU_FLAG_SSE3SLOW|AV_CPU_FLAG_SSE3;
}
-#if 0
- av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s%s%s%s%s%s%s\n",
- (rval&FF_MM_MMX) ? "MMX ":"",
- (rval&FF_MM_MMX2) ? "MMX2 ":"",
- (rval&FF_MM_SSE) ? "SSE ":"",
- (rval&FF_MM_SSE2) ? "SSE2 ":"",
- (rval&FF_MM_SSE2SLOW) ? "SSE2(slow) ":"",
- (rval&FF_MM_SSE3) ? "SSE3 ":"",
- (rval&FF_MM_SSE3SLOW) ? "SSE3(slow) ":"",
- (rval&FF_MM_SSSE3) ? "SSSE3 ":"",
- (rval&FF_MM_SSE4) ? "SSE4.1 ":"",
- (rval&FF_MM_SSE42) ? "SSE4.2 ":"",
- (rval&FF_MM_3DNOW) ? "3DNow ":"",
- (rval&FF_MM_3DNOWEXT) ? "3DNowExt ":"");
-#endif
return rval;
-
- /* TODO: allow overriding with ffdshow settings for disabling extensions */
}
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/makefile_c.inc b/src/filters/transform/MPCVideoDec/ffmpeg/makefile_c.inc
index 7217f1b83..a8bf2d476 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/makefile_c.inc
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/makefile_c.inc
@@ -21,7 +21,7 @@ ifeq ($(64BIT),yes)
else
TARGET_OS=i686-pc-mingw32
CFLAGS+=-DWIN32 -D_WIN32
- OPTFLAGS+=-O3 -march=i686 -mmmx
+ OPTFLAGS+=-O2 -march=i686 -mmmx -msse -mfpmath=sse
endif
CFLAGS+=-mno-cygwin -mdll -mthreads -pipe
diff --git a/src/filters/transform/MpaDecFilter/IMpaDecFilter.h b/src/filters/transform/MpaDecFilter/IMpaDecFilter.h
index f018de415..16d3b4b4f 100644
--- a/src/filters/transform/MpaDecFilter/IMpaDecFilter.h
+++ b/src/filters/transform/MpaDecFilter/IMpaDecFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp b/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp
index 9cac6e794..84873a2d6 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp
+++ b/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -111,11 +111,15 @@ const AMOVIESETUP_MEDIATYPE sudPinTypesIn[] =
{&MEDIATYPE_Audio, &MEDIASUBTYPE_Vorbis2},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_FLAC_FRAMED},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_NELLYMOSER},
+ {&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_NONE},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_RAW},
- {&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_SOWT},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_TWOS},
+ {&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_SOWT},
+ {&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_IN24},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_IN32},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_FL32},
+ {&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_FL64},
+ {&MEDIATYPE_Audio, &MEDIASUBTYPE_IMA4},
};
#ifdef REGISTER_FILTER
@@ -463,7 +467,7 @@ HRESULT CMpaDecFilter::Receive(IMediaSample* pIn)
else if(subtype == MEDIASUBTYPE_HDMV_LPCM_AUDIO)
hr = ProcessHdmvLPCM(pIn->IsSyncPoint());
else if(subtype == MEDIASUBTYPE_DOLBY_AC3 ||
- subtype == MEDIASUBTYPE_WAVE_DOLBY_AC3 ||
+ subtype == MEDIASUBTYPE_WAVE_DOLBY_AC3 ||
subtype == MEDIASUBTYPE_DOLBY_DDPLUS ||
subtype == MEDIASUBTYPE_DOLBY_TRUEHD)
hr = ProcessAC3();
@@ -481,15 +485,35 @@ HRESULT CMpaDecFilter::Receive(IMediaSample* pIn)
hr = ProcessFlac();
else if(subtype == MEDIASUBTYPE_NELLYMOSER)
hr = ProcessFfmpeg(CODEC_ID_NELLYMOSER);
- else if(subtype == MEDIASUBTYPE_PCM_RAW)
+ else if(subtype == MEDIASUBTYPE_PCM_NONE ||
+ subtype == MEDIASUBTYPE_PCM_RAW){
+ if(m_buff.GetCount() < 480){return S_OK;}
hr = ProcessPCMraw();
- else if(subtype == MEDIASUBTYPE_PCM_TWOS)
- hr = ProcessPCMtwos();
- else if(subtype == MEDIASUBTYPE_PCM_SOWT ||
- subtype == MEDIASUBTYPE_PCM_IN32)
- hr = ProcessPCMintSE();
- else if(subtype == MEDIASUBTYPE_PCM_FL32)
+ }
+ else if(subtype == MEDIASUBTYPE_PCM_TWOS){
+ if(m_buff.GetCount() < 960){return S_OK;}
+ hr = ProcessPCMintBE();
+ }
+ else if(subtype == MEDIASUBTYPE_PCM_SOWT){
+ if(m_buff.GetCount() < 960){return S_OK;}
+ hr = ProcessPCMintLE();
+ }
+ else if(subtype == MEDIASUBTYPE_PCM_IN24 ||
+ subtype == MEDIASUBTYPE_PCM_IN32){
+ if(m_buff.GetCount() < 1920){return S_OK;}
+ //The order of bytes can be big-endian and little-endian.
+ //hr = ProcessPCMintBE();
+ hr = ProcessPCMintLE();
+ }
+ else if(subtype == MEDIASUBTYPE_PCM_FL32 ||
+ subtype == MEDIASUBTYPE_PCM_FL64){
+ if(m_buff.GetCount() < 3840){return S_OK;}
+ //The order of bytes can be big-endian and little-endian.
hr = ProcessPCMfloatBE();
+ //hr = ProcessPCMfloatLE();
+ }
+ else if(subtype == MEDIASUBTYPE_IMA4)
+ hr = ProcessFfmpeg(CODEC_ID_ADPCM_IMA_QT);
else // if(.. the rest ..)
hr = ProcessMPA();
@@ -503,14 +527,14 @@ HRESULT CMpaDecFilter::ProcessLPCM()
if (wfein->nChannels < 1 || wfein->nChannels > 8)
return ERROR_NOT_SUPPORTED;
- scmap_t* remap = &m_scmap_default [wfein->nChannels-1];
- int nChannels = wfein->nChannels;
+ scmap_t* remap = &m_scmap_default [wfein->nChannels-1];
+ int nChannels = wfein->nChannels;
- BYTE* pDataIn = m_buff.GetData();
- int BytesPerDoubleSample = (wfein->wBitsPerSample * 2)/8;
+ BYTE* pDataIn = m_buff.GetData();
+ int BytesPerDoubleSample = (wfein->wBitsPerSample * 2)/8;
int BytesPerDoubleChannelSample = BytesPerDoubleSample * nChannels;
- int nInBytes = m_buff.GetCount();
- int len = (nInBytes / BytesPerDoubleChannelSample) * (BytesPerDoubleChannelSample); // We always code 2 samples at a time
+ int nInBytes = m_buff.GetCount();
+ int len = (nInBytes / BytesPerDoubleChannelSample) * (BytesPerDoubleChannelSample); // We always code 2 samples at a time
CAtlArray<float> pBuff;
pBuff.SetCount((len/BytesPerDoubleSample) * 2);
@@ -1166,62 +1190,77 @@ HRESULT CMpaDecFilter::ProcessAAC()
return S_OK;
}
-HRESULT CMpaDecFilter::ProcessPCMraw() //'raw ': unsigned 8-bit, signed big-endian 16 bit (?)
+HRESULT CMpaDecFilter::ProcessPCMraw() //'raw '
{
- if (m_buff.GetCount() < 480 ){return S_OK;}
WAVEFORMATEX* wfe = (WAVEFORMATEX*)m_pInput->CurrentMediaType().Format();
- int nSamples = (m_buff.GetCount() * 8)/(wfe->wBitsPerSample);
+ int nSamples = m_buff.GetCount() * 8 / wfe->wBitsPerSample;
CAtlArray<float> pBuff;
pBuff.SetCount(nSamples);
float* f = pBuff.GetData();
switch(wfe->wBitsPerSample){
- case 8:
+ case 8: //unsigned 8-bit
{BYTE* b = m_buff.GetData();
for(int i = 0; i < nSamples; i++){
- f[i] = ((float)(b[i])-128) / 128;
+ f[i] = (float)(CHAR)(b[i] - 128) / 128;
}}
break;
- case 16:
- SHORT* d = (SHORT*)m_buff.GetData();
+ case 16: //signed big-endian 16 bit
+ {USHORT* d = (USHORT*)m_buff.GetData();//signed take as an unsigned to shift operations.
for(int i = 0; i < nSamples; i++){
- f[i] = ((float)((SHORT) (((d[i] & 0x00ff) << 8) | ((d[i] & 0xff00) >> 8)) )) / 32768;
- }
+ f[i] = (float)(SHORT)(d[i] << 8 | d[i] >> 8) / 32768;
+ }}
break;
}
+
HRESULT hr;
if(S_OK != (hr = Deliver(pBuff, wfe->nSamplesPerSec, wfe->nChannels))){
return hr;
}
m_buff.RemoveAll();
-
return S_OK;
}
-HRESULT CMpaDecFilter::ProcessPCMtwos() //"twos": signed 8-bit, signed big-endian 16-bit
+HRESULT CMpaDecFilter::ProcessPCMintBE() //'twos', big-endian 'in24' and 'in32'
{
- if(m_buff.GetCount() < 960){return S_OK;}
WAVEFORMATEX* wfe = (WAVEFORMATEX*)m_pInput->CurrentMediaType().Format();
- int nSamples = (m_buff.GetCount() * 8)/(wfe->wBitsPerSample);
+ int nSamples = m_buff.GetCount() * 8 / wfe->wBitsPerSample;
CAtlArray<float> pBuff;
pBuff.SetCount(nSamples);
float* f = pBuff.GetData();
switch(wfe->wBitsPerSample){
- case 8:
+ case 8: //signed 8-bit
{CHAR* b = (CHAR*)m_buff.GetData();
for(int i = 0; i < nSamples; i++){
- f[i] = ((float)(b[i])) / 128;
+ f[i] = (float)b[i] / 128;
}}
break;
- case 16:
- SHORT* d = (SHORT*)m_buff.GetData();
+ case 16: //signed big-endian 16-bit
+ {USHORT* d = (USHORT*)m_buff.GetData();//signed take as an unsigned to shift operations.
for(int i = 0; i < nSamples; i++){
- f[i] = ((float)((SHORT) (((d[i] & 0x00ff) << 8) | ((d[i] & 0xff00) >> 8)) )) / 32768;
- }
+ f[i] = (float)(SHORT)(d[i] << 8 | d[i] >> 8) / 32768;
+ }}
+ break;
+ case 24: //signed big-endian 24-bit
+ {BYTE* b = (BYTE*)m_buff.GetData();
+ for(int i = 0; i < nSamples; i++){
+ f[i] = (float)(signed int)((unsigned int)b[3*i] << 24 |
+ (unsigned int)b[3*i+1] << 16 |
+ (unsigned int)b[3*i+2] << 8) / 2147483648;
+ }}
+ break;
+ case 32: //signed big-endian 32-bit
+ {UINT* q = (UINT*)m_buff.GetData();//signed take as an unsigned to shift operations.
+ for(int i = 0; i < nSamples; i++){
+ f[i] = (float)(INT)(q[i] >> 24 |
+ (q[i] & 0x00ff0000) >> 8 |
+ (q[i] & 0x0000ff00) << 8 |
+ q[i] << 24) / 2147483648;
+ }}
break;
}
@@ -1231,70 +1270,132 @@ HRESULT CMpaDecFilter::ProcessPCMtwos() //"twos": signed 8-bit, signed big-endia
}
m_buff.RemoveAll();
-
return S_OK;
}
-HRESULT CMpaDecFilter::ProcessPCMintSE() //signed little-endian: 'sowt', 'in32'
+HRESULT CMpaDecFilter::ProcessPCMintLE() //'sowt', little-endian 'in24' and 'in32'
{
- if(m_buff.GetCount() < 1920){return S_OK;}
WAVEFORMATEX* wfe = (WAVEFORMATEX*)m_pInput->CurrentMediaType().Format();
- int nSamples = (m_buff.GetCount() * 8)/(wfe->wBitsPerSample);
+ int nSamples = m_buff.GetCount() * 8 / wfe->wBitsPerSample;
CAtlArray<float> pBuff;
pBuff.SetCount(nSamples);
float* f = pBuff.GetData();
switch(wfe->wBitsPerSample){
- case 16:
+ case 8: //signed 8-bit
+ {CHAR* b = (CHAR*)m_buff.GetData();
+ for(int i = 0; i < nSamples; i++){
+ f[i] = (float)b[i] / 128;
+ }}
+ break;
+ case 16: //signed little-endian 16-bit
{SHORT* d = (SHORT*)m_buff.GetData();
for(int i = 0; i < nSamples; i++){
- f[i] = ((float)(d[i])) / 32768;
+ f[i] = (float)d[i] / 32768;
}}
break;
- case 32:
- INT* q = (INT*)m_buff.GetData();
+ case 24: //signed little-endian 32-bit
+ {BYTE* b = (BYTE*)m_buff.GetData();
for(int i = 0; i < nSamples; i++){
- f[i] = ((float)(q[i])) / 2147483648;
- }
+ f[i] = (float)(signed int)((unsigned int)b[3*i] << 8 |
+ (unsigned int)b[3*i+1] << 16 |
+ (unsigned int)b[3*i+2] << 24) / 2147483648;
+ }}
+ break;
+ case 32: //signed little-endian 32-bit
+ {INT* q = (INT*)m_buff.GetData();
+ for(int i = 0; i < nSamples; i++){
+ f[i] = (float)q[i] / 2147483648;
+ }}
break;
}
+
HRESULT hr;
if(S_OK != (hr = Deliver(pBuff, wfe->nSamplesPerSec, wfe->nChannels))){
return hr;
}
m_buff.RemoveAll();
-
return S_OK;
}
-HRESULT CMpaDecFilter::ProcessPCMfloatBE() //'fl32'
+HRESULT CMpaDecFilter::ProcessPCMfloatBE() //big-endian 'fl32' and 'fl64'
{
- if(m_buff.GetCount() < 1920){return S_OK;}
WAVEFORMATEX* wfe = (WAVEFORMATEX*)m_pInput->CurrentMediaType().Format();
- int nSamples = (m_buff.GetCount() * 8)/(wfe->wBitsPerSample);
+ int nSamples = m_buff.GetCount() * 8 / wfe->wBitsPerSample;
CAtlArray<float> pBuff;
pBuff.SetCount(nSamples);
float* f = pBuff.GetData();
- if (wfe->wBitsPerSample == 32)
- {
- unsigned int* q = (unsigned int*)m_buff.GetData();
- unsigned int* v = (unsigned int*)f;
- for(int i = 0; i < nSamples; i++){
- v[i] = (q[i] << 24) | ((q[i] & 0x0000ff00) << 8) | ((q[i] & 0x00ff0000) >> 8) | (q[i] >> 24);
- }
+ switch(wfe->wBitsPerSample){
+ case 32:
+ {unsigned int* q = (unsigned int*)m_buff.GetData();
+ unsigned int* vf = (unsigned int*)f;
+ for(int i = 0; i < nSamples; i++){
+ vf[i] = q[i] >> 24 |
+ (q[i] & 0x00ff0000) >> 8 |
+ (q[i] & 0x0000ff00) << 8 |
+ q[i] << 24;
+ }}
+ break;
+ case 64:
+ {unsigned __int64* q = (unsigned __int64*)m_buff.GetData();
+ unsigned __int64 x;
+ for(int i = 0; i < nSamples; i++){
+ x = q[i] >>56 |
+ (q[i] & 0x00FF000000000000) >> 40 |
+ (q[i] & 0x0000FF0000000000) >> 24 |
+ (q[i] & 0x000000FF00000000) >> 8 |
+ (q[i] & 0x00000000FF000000) << 8 |
+ (q[i] & 0x0000000000FF0000) << 24 |
+ (q[i] & 0x000000000000FF00) << 40 |
+ q[i] << 56;
+ f[i] = (float)*(double*)&x;
+ }}
+ break;
+ }
+
+ HRESULT hr;
+ if(S_OK != (hr = Deliver(pBuff, wfe->nSamplesPerSec, wfe->nChannels))){
+ return hr;
}
+ m_buff.RemoveAll();
+ return S_OK;
+}
+
+HRESULT CMpaDecFilter::ProcessPCMfloatLE() //little-endian 'fl32' and 'fl64'
+ {
+ WAVEFORMATEX* wfe = (WAVEFORMATEX*)m_pInput->CurrentMediaType().Format();
+ int nSamples = m_buff.GetCount() * 8 / wfe->wBitsPerSample;
+
+ CAtlArray<float> pBuff;
+ pBuff.SetCount(nSamples);
+ float* f = pBuff.GetData();
+
+ switch(wfe->wBitsPerSample){
+ case 32:
+ {float* q = (float*)m_buff.GetData();
+ for(int i = 0; i < nSamples; i++){
+ f[i] = q[i];
+ }}
+ break;
+ case 64:
+ {double* q = (double*)m_buff.GetData();
+ for(int i = 0; i < nSamples; i++){
+ f[i] = (float)q[i];
+ }}
+ break;
+ }
+
HRESULT hr;
if(S_OK != (hr = Deliver(pBuff, wfe->nSamplesPerSec, wfe->nChannels))){
return hr;
}
m_buff.RemoveAll();
-
return S_OK;
}
diff --git a/src/filters/transform/MpaDecFilter/MpaDecFilter.h b/src/filters/transform/MpaDecFilter/MpaDecFilter.h
index 332e8dbca..cd50a8580 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecFilter.h
+++ b/src/filters/transform/MpaDecFilter/MpaDecFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -29,7 +29,7 @@
//#include "faad2/include/neaacdec.h" // conflicts with dxtrans.h
//#include "libvorbisidec/ivorbiscodec.h"
#include "libvorbisidec/vorbis/codec.h"
-#include "../../../decss/DeCSSInputPin.h"
+#include "../../../DeCSS/DeCSSInputPin.h"
#include "IMpaDecFilter.h"
#include "MpaDecSettingsWnd.h"
@@ -128,9 +128,10 @@ protected:
HRESULT ProcessMPA();
HRESULT ProcessFfmpeg(int nCodecId);
HRESULT ProcessPCMraw();
- HRESULT ProcessPCMtwos();
- HRESULT ProcessPCMintSE();
+ HRESULT ProcessPCMintBE();
+ HRESULT ProcessPCMintLE();
HRESULT ProcessPCMfloatBE();
+ HRESULT ProcessPCMfloatLE();
HRESULT GetDeliveryBuffer(IMediaSample** pSample, BYTE** pData);
HRESULT Deliver(CAtlArray<float>& pBuff, DWORD nSamplesPerSec, WORD nChannels, DWORD dwChannelMask = 0);
diff --git a/src/filters/transform/MpaDecFilter/MpaDecFilter.vcproj b/src/filters/transform/MpaDecFilter/MpaDecFilter.vcproj
index 9a06fb0f2..1dedb7a16 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecFilter.vcproj
+++ b/src/filters/transform/MpaDecFilter/MpaDecFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MpaDecFilter"
ProjectGUID="{4421516D-10A6-41C1-ADF3-099573BBB0C6}"
RootNamespace="MpaDecFilter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL"
DebugInformationFormat="3"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL"
/>
@@ -262,7 +259,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL"
EnableEnhancedInstructionSet="0"
@@ -335,7 +331,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG;FLAC__NO_DLL"
/>
@@ -394,7 +389,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG;FLAC__NO_DLL"
DebugInformationFormat="3"
@@ -453,7 +447,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG;FLAC__NO_DLL"
UsePrecompiledHeader="0"
@@ -513,7 +506,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG;FLAC__NO_DLL"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/MpaDecFilter/MpaDecFilter.vcxproj b/src/filters/transform/MpaDecFilter/MpaDecFilter.vcxproj
index d7a826535..d8c91f140 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecFilter.vcxproj
+++ b/src/filters/transform/MpaDecFilter/MpaDecFilter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4421516D-10A6-41C1-ADF3-099573BBB0C6}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -172,7 +157,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -191,7 +175,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -213,7 +196,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -233,7 +215,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -248,7 +229,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -261,7 +241,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -279,7 +258,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;libflac\include;..\mpcvideodec\ffmpeg;..\mpcvideodec\ffmpeg\libavcodec;..\mpcvideodec\ffmpeg\libavcore;..\mpcvideodec\ffmpeg\libavutil;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.cpp b/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.cpp
index fe8fab2d7..2b8659805 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.cpp
+++ b/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.h b/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.h
index 02ae9a172..01e6e992e 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.h
+++ b/src/filters/transform/MpaDecFilter/MpaDecSettingsWnd.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcproj b/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcproj
index 9285536ce..9af7b4ac5 100644
--- a/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcproj
+++ b/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="liba52"
ProjectGUID="{62FE6D94-E17C-4A8E-8D3C-7A589A70D865}"
RootNamespace="liba52"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".,../include, ..\..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
@@ -104,7 +103,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".,../include, ..\..\..\..\..\..\include"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -165,7 +163,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".,../include, ..\..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
@@ -227,7 +224,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories=".,../include, ..\..\..\..\..\..\include"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
diff --git a/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcxproj b/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcxproj
index b9d4e7f2f..1f9e6d9cb 100644
--- a/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcxproj
+++ b/src/filters/transform/MpaDecFilter/a52dec/vc++/liba52.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{62FE6D94-E17C-4A8E-8D3C-7A589A70D865}</ProjectGuid>
@@ -41,9 +33,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -67,9 +56,6 @@
<Import Project="..\..\..\..\..\common.props" />
<Import Project="..\..\..\..\..\release.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\..\..\common.props" />
@@ -86,7 +72,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;../include; ..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
@@ -105,7 +90,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;../include; ..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -122,7 +106,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;../include; ..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
@@ -142,7 +125,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;../include; ..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
diff --git a/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcproj b/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcproj
index f396bf45f..6fda23ef8 100644
--- a/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcproj
+++ b/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libfaad"
ProjectGUID="{5EFCFACB-1835-422C-ACDA-E3B3A2F51387}"
RootNamespace="libfaad"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\include"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
@@ -106,7 +105,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\include"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -169,7 +167,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\include"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
@@ -232,7 +229,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\include"
PreprocessorDefinitions="_WIN64;_LIB;_DEBUG"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
diff --git a/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcxproj b/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcxproj
index a41f1b7cb..9315dc17e 100644
--- a/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcxproj
+++ b/src/filters/transform/MpaDecFilter/faad2/libfaad/libfaad.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5EFCFACB-1835-422C-ACDA-E3B3A2F51387}</ProjectGuid>
@@ -41,9 +33,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -67,9 +56,6 @@
<Import Project="..\..\..\..\..\common.props" />
<Import Project="..\..\..\..\..\release.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\..\..\common.props" />
@@ -86,7 +72,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
@@ -107,7 +92,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -125,7 +109,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
@@ -145,7 +128,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
diff --git a/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcproj b/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcproj
index 792add17b..cc6d6dfff 100644
--- a/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcproj
+++ b/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libdca"
ProjectGUID="{FAE14DBE-B508-4AB3-929D-75C68E4EBBC1}"
RootNamespace="libdca"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="2"
InlineFunctionExpansion="2"
AdditionalIncludeDirectories=".;..\include;..\..\..\..\..\..\include"
@@ -115,7 +114,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="2"
InlineFunctionExpansion="2"
AdditionalIncludeDirectories=".;..\include;..\..\..\..\..\..\include"
@@ -188,7 +186,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories=".;..\include;..\..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
@@ -259,7 +256,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories=".;..\include;..\..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
diff --git a/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcxproj b/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcxproj
index 2ffa129a7..5747b3df4 100644
--- a/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcxproj
+++ b/src/filters/transform/MpaDecFilter/libdca/vc++/libdca.vcxproj
@@ -72,7 +72,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<AdditionalIncludeDirectories>.;..\include;..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -104,7 +103,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<AdditionalIncludeDirectories>.;..\include;..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -135,7 +133,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;..\include;..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -166,7 +163,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;..\include;..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
diff --git a/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcproj b/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcproj
index 48c0b2a13..dae590c2b 100644
--- a/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcproj
+++ b/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libflac"
ProjectGUID="{4CEFBC84-C215-11DB-8314-0800200C9A66}"
RootNamespace="libflac"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\..\include; ..\..\..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLAC__HAS_OGG;FLAC__CPU_IA32;FLAC__HAS_NASM;FLAC__USE_3DNOW;VERSION=\&quot;1.2.0\&quot;;FLAC__NO_DLL;DEBUG;FLAC__OVERFLOW_DETECT;_WINSOCK2API_"
@@ -107,7 +106,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\..\include; ..\..\..\..\..\..\..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLAC__HAS_OGG;FLAC__HAS_NASM;FLAC__USE_3DNOW;VERSION=\&quot;1.2.0\&quot;;FLAC__NO_DLL;DEBUG;FLAC__OVERFLOW_DETECT;_WINSOCK2API_;_CRT_SECURE_NO_WARNINGS"
@@ -170,7 +168,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
@@ -236,7 +233,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
diff --git a/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcxproj b/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcxproj
index 0a69e836d..ce91d4615 100644
--- a/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcxproj
+++ b/src/filters/transform/MpaDecFilter/libflac/src/libFLAC/libflac.vcxproj
@@ -73,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\..\include; ..\..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;FLAC__HAS_OGG;FLAC__CPU_IA32;FLAC__HAS_NASM;FLAC__USE_3DNOW;VERSION="1.2.0";FLAC__NO_DLL;DEBUG;FLAC__OVERFLOW_DETECT;_WINSOCK2API_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -94,7 +93,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\include;..\..\include; ..\..\..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;FLAC__HAS_OGG;FLAC__HAS_NASM;FLAC__USE_3DNOW;VERSION="1.2.0";FLAC__NO_DLL;DEBUG;FLAC__OVERFLOW_DETECT;_WINSOCK2API_;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -112,7 +110,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
@@ -137,7 +134,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
diff --git a/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcproj b/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcproj
index c4e8050dc..9ec2063d2 100644
--- a/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcproj
+++ b/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libmad"
ProjectGUID="{D8365C15-2166-4DB6-8A2D-1C8F0239EB18}"
RootNamespace="libmad"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="FPM_DEFAULT;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;WIN32;_DEBUG;DEBUG"
UsePrecompiledHeader="0"
@@ -107,7 +106,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="FPM_DEFAULT;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;_WIN64;_DEBUG;DEBUG"
UsePrecompiledHeader="0"
@@ -171,7 +169,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="NDEBUG;FPM_INTEL;WIN32;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;_CRT_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -234,7 +231,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="."
PreprocessorDefinitions="_WIN64;NDEBUG;FPM_INTEL;FPM_64BIT;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;_CRT_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcxproj b/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcxproj
index 0dadeafa2..20761602e 100644
--- a/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcxproj
+++ b/src/filters/transform/MpaDecFilter/libmad/msvc++/libmad.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D8365C15-2166-4DB6-8A2D-1C8F0239EB18}</ProjectGuid>
@@ -41,9 +33,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -67,9 +56,6 @@
<Import Project="..\..\..\..\..\common.props" />
<Import Project="..\..\..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\..\..\common.props" />
@@ -86,7 +72,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>FPM_DEFAULT;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;WIN32;_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -110,7 +95,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>FPM_DEFAULT;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;_WIN64;_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -132,7 +116,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;FPM_INTEL;WIN32;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -155,7 +138,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;FPM_INTEL;FPM_64BIT;_LIB;HAVE_CONFIG_H;ASO_ZEROCHECK;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcproj b/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcproj
index 3e81c3f7f..9da39fa24 100644
--- a/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcproj
+++ b/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libvorbisidec"
ProjectGUID="{A7134255-DFF3-42F7-9BC2-FAC6E71CFFAE}"
RootNamespace="libvorbisidec"
@@ -43,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="., ..\..\..\..\..\include"
PreprocessorDefinitions="_LIB;_WIN32;WIN32;_DEBUG;DEBUG"
UsePrecompiledHeader="0"
@@ -107,7 +106,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="., ..\..\..\..\..\include"
PreprocessorDefinitions="_WIN64;_LIB;_DEBUG;DEBUG"
UsePrecompiledHeader="0"
@@ -171,7 +169,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="., ..\..\..\..\..\include"
PreprocessorDefinitions="_LIB;_WIN32;WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -236,7 +233,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="., ..\..\..\..\..\include"
PreprocessorDefinitions="_WIN64;_LIB;NDEBUG;_CRT_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcxproj b/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcxproj
index bade45bcf..1f74cc1b8 100644
--- a/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcxproj
+++ b/src/filters/transform/MpaDecFilter/libvorbisidec/libvorbisidec.vcxproj
@@ -72,7 +72,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.; ..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_LIB;_WIN32;WIN32;_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -95,7 +94,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.; ..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_LIB;_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -116,7 +114,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.; ..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_LIB;_WIN32;WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -139,7 +136,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>.; ..\..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_LIB;NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/MpaDecFilter/stdafx.cpp b/src/filters/transform/MpaDecFilter/stdafx.cpp
index bdacb59f9..13934d005 100644
--- a/src/filters/transform/MpaDecFilter/stdafx.cpp
+++ b/src/filters/transform/MpaDecFilter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// MpaDecFilter.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/transform/MpaDecFilter/stdafx.h b/src/filters/transform/MpaDecFilter/stdafx.h
index c35359c38..62d50a36b 100644
--- a/src/filters/transform/MpaDecFilter/stdafx.h
+++ b/src/filters/transform/MpaDecFilter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
@@ -35,9 +30,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/transform/Mpeg2DecFilter/IMpeg2DecFilter.h b/src/filters/transform/Mpeg2DecFilter/IMpeg2DecFilter.h
index d0576d02a..0f0718a0d 100644
--- a/src/filters/transform/Mpeg2DecFilter/IMpeg2DecFilter.h
+++ b/src/filters/transform/Mpeg2DecFilter/IMpeg2DecFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.cpp b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.cpp
index d169da078..296674a12 100644
--- a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.cpp
+++ b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.h b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.h
index 3e9bd9138..f92c6e481 100644
--- a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.h
+++ b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
@@ -23,7 +23,7 @@
#include <atlcoll.h>
#include <Videoacc.h>
-#include "../../../decss/DeCSSInputPin.h"
+#include "../../../DeCSS/DeCSSInputPin.h"
#include "../BaseVideoFilter/BaseVideoFilter.h"
#include "IMpeg2DecFilter.h"
#include "Mpeg2DecSettingsWnd.h"
diff --git a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcproj b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcproj
index e9e62af1e..9fe343bcd 100644
--- a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcproj
+++ b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="Mpeg2DecFilter"
ProjectGUID="{305BAB2D-0D75-4FBC-8BCD-A2917392B48C}"
RootNamespace="Mpeg2DecFilter"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;_DEBUG;_USRDLL"
/>
@@ -116,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
/>
<Tool
@@ -182,7 +180,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;MPEG2ONLY"
/>
@@ -255,7 +252,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
EnableEnhancedInstructionSet="0"
/>
@@ -323,7 +319,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_DEBUG"
/>
@@ -382,7 +377,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;_DEBUG"
DebugInformationFormat="3"
@@ -441,7 +435,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;NDEBUG"
/>
@@ -501,7 +494,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\BaseClasses"
PreprocessorDefinitions="_WIN64;NDEBUG"
EnableEnhancedInstructionSet="0"
diff --git a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcxproj b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcxproj
index 725297d33..e80d6b599 100644
--- a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcxproj
+++ b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecFilter.vcxproj
@@ -33,14 +33,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{305BAB2D-0D75-4FBC-8BCD-A2917392B48C}</ProjectGuid>
@@ -68,9 +60,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -114,9 +103,6 @@
<Import Project="..\..\..\common.props" />
<Import Project="..\..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\..\common.props" />
@@ -151,7 +137,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -170,7 +155,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Filter|x64'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
@@ -183,7 +167,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>REGISTER_FILTER;WIN32;NDEBUG;_USRDLL;MPEG2ONLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -202,7 +185,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Filter|x64'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
</ClCompile>
@@ -217,7 +199,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -232,7 +213,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -245,7 +225,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -262,7 +241,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff --git a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.cpp b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.cpp
index da85591a0..cb148a846 100644
--- a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.cpp
+++ b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.h b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.h
index 6d147a699..cea28794c 100644
--- a/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.h
+++ b/src/filters/transform/Mpeg2DecFilter/Mpeg2DecSettingsWnd.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
diff --git a/src/filters/transform/Mpeg2DecFilter/stdafx.cpp b/src/filters/transform/Mpeg2DecFilter/stdafx.cpp
index 4b29d63b8..13934d005 100644
--- a/src/filters/transform/Mpeg2DecFilter/stdafx.cpp
+++ b/src/filters/transform/Mpeg2DecFilter/stdafx.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,9 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.cpp : source file that includes just the standard includes
-// mpeg2decds.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/src/filters/transform/Mpeg2DecFilter/stdafx.h b/src/filters/transform/Mpeg2DecFilter/stdafx.h
index d4cb512b1..e1b753d82 100644
--- a/src/filters/transform/Mpeg2DecFilter/stdafx.h
+++ b/src/filters/transform/Mpeg2DecFilter/stdafx.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2006 Gabest
- * http://www.gabest.org
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,16 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
#pragma once
#include "../../../DSUtil/SharedInclude.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
@@ -34,9 +29,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
-
-// TODO: reference additional headers your program requires here
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
#include <dvdmedia.h>
diff --git a/src/filters/transform/VSFilter/DirectVobSubPropPage.cpp b/src/filters/transform/VSFilter/DirectVobSubPropPage.cpp
index a9340c688..dbdc1088e 100644
--- a/src/filters/transform/VSFilter/DirectVobSubPropPage.cpp
+++ b/src/filters/transform/VSFilter/DirectVobSubPropPage.cpp
@@ -803,7 +803,7 @@ bool CDVSAboutPPage::OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
#ifdef _VSMOD
SetDlgItemTextA( m_Dlg, IDC_VERSION, "DirectVobSub 2.40."MAKE_STR(VERSION_REV)"."MAKE_STR(VERSION_PATCH)" "MAKE_STR(VERSION_ARCH)", MOD\nCopyright 2001-2010 MPC-HC & VSFilterMod Teams" );
#else
- SetDlgItemTextA( m_Dlg, IDC_VERSION, "DirectVobSub 2.40."MAKE_STR(VERSION_REV)"."MAKE_STR(VERSION_PATCH)" "MAKE_STR(VERSION_ARCH)"\nCopyright 2001-2010 MPC-HC & VSFilterMod Teams" );
+ SetDlgItemTextA( m_Dlg, IDC_VERSION, "DirectVobSub 2.40."MAKE_STR(VERSION_REV)"."MAKE_STR(VERSION_PATCH)" "MAKE_STR(VERSION_ARCH)"\nCopyright 2001-2010 MPC-HC Team" );
#endif
}
break;
diff --git a/src/filters/transform/VSFilter/VSFilter.vcproj b/src/filters/transform/VSFilter/VSFilter.vcproj
index 3f559e86b..9464dbdc4 100644
--- a/src/filters/transform/VSFilter/VSFilter.vcproj
+++ b/src/filters/transform/VSFilter/VSFilter.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="VSFilter"
ProjectGUID="{F671100C-469F-4723-AAC4-B7FE4F5B8DC4}"
RootNamespace="VSFilter"
@@ -45,7 +45,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\virtualdub;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;ISOLATION_AWARE_ENABLED;_WIN32_WINNT=0x0600"
/>
@@ -62,7 +61,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib BaseVideoFilter.lib comsuppwd.lib DSUtil.lib Subtitles.lib SubPic.lib Winmm.lib"
+ AdditionalDependencies="comsuppwd.lib Winmm.lib"
OutputFile="$(OutDir)\$(ProjectName).dll"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Debug_$(PlatformName)"
ModuleDefinitionFile="VSFilter.def"
@@ -136,7 +135,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib BaseVideoFilter.lib comsuppwd.lib DSUtil.lib Subtitles.lib SubPic.lib Winmm.lib"
+ AdditionalDependencies="comsuppwd.lib Winmm.lib"
OutputFile="$(OutDir)\$(ProjectName).dll"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Debug_$(PlatformName)"
ModuleDefinitionFile="VSFilter.def"
@@ -193,7 +192,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\virtualdub;..\..\BaseClasses"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;ISOLATION_AWARE_ENABLED;_WIN32_WINNT=0x0600;_CRT_SECURE_NO_WARNINGS"
/>
@@ -210,7 +208,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib BaseVideoFilter.lib comsuppwd.lib delayimp.lib DSUtil.lib Subtitles.lib SubPic.lib Winmm.lib"
+ AdditionalDependencies="comsuppwd.lib delayimp.lib Winmm.lib"
OutputFile="$(OutDir)\$(ProjectName).dll"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Release_$(PlatformName)"
IgnoreDefaultLibraryNames="msvcrt"
@@ -273,7 +271,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\include\virtualdub;..\..\BaseClasses"
PreprocessorDefinitions="WIN64;NDEBUG;_USRDLL;ISOLATION_AWARE_ENABLED;_WIN32_WINNT=0x0600;_CRT_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
@@ -292,7 +289,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="BaseClasses.lib BaseVideoFilter.lib comsuppwd.lib delayimp.lib DSUtil.lib Subtitles.lib SubPic.lib Winmm.lib"
+ AdditionalDependencies="comsuppwd.lib delayimp.lib Winmm.lib"
OutputFile="$(OutDir)\$(ProjectName).dll"
AdditionalLibraryDirectories="$(SolutionDir)bin\lib\Release_$(PlatformName)"
IgnoreDefaultLibraryNames="msvcrt"
diff --git a/src/filters/transform/VSFilter/VSFilter.vcxproj b/src/filters/transform/VSFilter/VSFilter.vcxproj
index 0700bdd5d..fd031de50 100644
--- a/src/filters/transform/VSFilter/VSFilter.vcxproj
+++ b/src/filters/transform/VSFilter/VSFilter.vcxproj
@@ -81,8 +81,7 @@
update_version.bat
</Command>
</PreBuildEvent>
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\virtualdub;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;ISOLATION_AWARE_ENABLED;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -91,7 +90,7 @@ update_version.bat
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;BaseVideoFilter.lib;comsuppwd.lib;delayimp.lib;DSUtil.lib;Kasumi.lib;Subtitles.lib;SubPic.lib;system.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppwd.lib;delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Debug_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>VSFilter.def</ModuleDefinitionFile>
@@ -121,7 +120,7 @@ update_version.bat
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;BaseVideoFilter.lib;comsuppwd.lib;delayimp.lib;DSUtil.lib;Kasumi.lib;Subtitles.lib;SubPic.lib;system.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppwd.lib;delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Debug_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>VSFilter.def</ModuleDefinitionFile>
@@ -142,7 +141,6 @@ update_version.bat
<TypeLibraryName>.\$(OutDir)$(ProjectName).tlb</TypeLibraryName>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\virtualdub;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;ISOLATION_AWARE_ENABLED;_WIN32_WINNT=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -151,7 +149,7 @@ update_version.bat
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;BaseVideoFilter.lib;comsuppwd.lib;delayimp.lib;DSUtil.lib;Kasumi.lib;Subtitles.lib;SubPic.lib;system.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppwd.lib;delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Release_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>msvcrt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
@@ -177,8 +175,7 @@ update_version.bat
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
- <ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+ <ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\include\virtualdub;..\..\BaseClasses;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN64;NDEBUG;_USRDLL;ISOLATION_AWARE_ENABLED;_WIN32_WINNT=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -188,7 +185,7 @@ update_version.bat
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <AdditionalDependencies>BaseClasses.lib;BaseVideoFilter.lib;comsuppwd.lib;delayimp.lib;DSUtil.lib;Kasumi.lib;Subtitles.lib;SubPic.lib;system.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>comsuppwd.lib;delayimp.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(ProjectName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>$(SolutionDir)bin10\lib\Release_$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>msvcrt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
@@ -261,6 +258,12 @@ update_version.bat
<Project>{5e56335f-0fb1-4eea-b240-d8dc5e0608e4}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
+ <ProjectReference Include="..\..\..\thirdparty\VirtualDub\Kasumi\Kasumi.vcxproj">
+ <Project>{0d252872-7542-4232-8d02-53f9182aee15}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\thirdparty\VirtualDub\system\system.vcxproj">
+ <Project>{c2082189-3ecb-4079-91fa-89d3c8a305c0}</Project>
+ </ProjectReference>
<ProjectReference Include="..\..\BaseClasses\BaseClasses.vcxproj">
<Project>{e8a3f6fa-ae1c-4c8e-a0b6-9c8480324eaa}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
diff --git a/src/filters/transform/VSFilter/csriapi.cpp b/src/filters/transform/VSFilter/csriapi.cpp
index 2381476d3..059c02c84 100644
--- a/src/filters/transform/VSFilter/csriapi.cpp
+++ b/src/filters/transform/VSFilter/csriapi.cpp
@@ -211,7 +211,7 @@ static struct csri_info csri_vsfilter_info = {
#ifdef _VSMOD
"VSFilterMod/TextSub (guliverkli2)", // longname
#else
- "VSFilter/TextSub (guliverkli2)", // longname
+ "VSFilter/TextSub (MPC-HC)", // longname
#endif
"Gabest", // author
"Copyright (c) 2003-2010 by Gabest and others" // copyright
diff --git a/src/release.props b/src/release.props
index 8f2e96b7b..0cb54b584 100644
--- a/src/release.props
+++ b/src/release.props
@@ -17,6 +17,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<BufferSecurityCheck>true</BufferSecurityCheck>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
diff --git a/src/release.vsprops b/src/release.vsprops
index a625a875e..dcbd3ec6c 100644
--- a/src/release.vsprops
+++ b/src/release.vsprops
@@ -17,6 +17,7 @@
DebugInformationFormat="3"
BufferSecurityCheck="true"
EnableEnhancedInstructionSet="1"
+ AdditionalOptions="/MP"
/>
<Tool
Name="VCLinkerTool"
diff --git a/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp b/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp
index f1a26a557..df38b02c6 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp
@@ -512,9 +512,9 @@ File_Ac3::File_Ac3()
Frame_Count_Valid=MediaInfoLib::Config.ParseSpeed_Get()>=0.3?32:2;
MustParse_dac3=false;
MustParse_dec3=false;
+ CalculateDelay=false;
//Temp
- Frame_Count=0;
HD_Count=0;
chanmap=0;
frmsiz=0;
@@ -549,24 +549,34 @@ void File_Ac3::Streams_Fill()
if (HD_StreamType==0xBA) //TrueHD
{
- Fill(Stream_General, 0, General_Format_Profile, "TrueHD");
- Fill(Stream_General, 0, General_Format_Profile, "Core");
- Fill(Stream_Audio, 0, Audio_Format_Profile, "TrueHD");
- Fill(Stream_Audio, 0, Audio_Format_Profile, "Core");
+ if (Core_IsPresent)
+ {
+ Fill(Stream_General, 0, General_Format_Profile, "TrueHD / Core");
+ Fill(Stream_Audio, 0, Audio_Format_Profile, "TrueHD / Core");
+ }
+ else
+ {
+ Fill(Stream_General, 0, General_Format, "TrueHD");
+ Fill(Stream_Audio, 0, Audio_Format, "TrueHD");
+ }
Fill(Stream_Audio, 0, Audio_Codec, "TrueHD");
Fill(Stream_Audio, 0, Audio_BitRate_Mode, "VBR");
- Fill(Stream_Audio, 0, Audio_BitRate, "Variable");
Fill(Stream_Audio, 0, Audio_SamplingRate, AC3_HD_SamplingRate(HD_SamplingRate1));
Fill(Stream_Audio, 0, Audio_Channel_s_, AC3_TrueHD_Channels(HD_Channels2));
Fill(Stream_Audio, 0, Audio_ChannelPositions, AC3_TrueHD_Channels_Positions(HD_Channels2));
Fill(Stream_Audio, 0, Audio_ChannelPositions_String2, AC3_TrueHD_Channels_Positions2(HD_Channels2));
- if (!IsSub)
+ if (Core_IsPresent && !IsSub)
Fill(Stream_Audio, 0, Audio_MuxingMode, "After core data");
}
if (HD_StreamType==0xBB) //TrueHD
{
Fill(Stream_General, 0, General_Format, "MLP");
+ if (!Core_IsPresent)
+ {
+ Fill(Stream_Audio, 0, Audio_Format, "MLP");
+ Fill(Stream_Audio, 0, Audio_Codec, "MLP");
+ }
Fill(Stream_Audio, 0, Audio_BitRate_Mode, "VBR");
Fill(Stream_Audio, 0, Audio_SamplingRate, AC3_HD_SamplingRate(HD_SamplingRate2));
if (HD_SamplingRate1!=HD_SamplingRate2)
@@ -583,8 +593,6 @@ void File_Ac3::Streams_Fill()
//MLP
if (!Core_IsPresent)
{
- Fill(Stream_Audio, 0, Audio_Format, "MLP");
- Fill(Stream_Audio, 0, Audio_Codec, "MLP");
}
//AC-3
@@ -604,8 +612,11 @@ void File_Ac3::Streams_Fill()
{
int32u BitRate=AC3_BitRate[frmsizecod/2]*1000;
Fill(Stream_Audio, 0, Audio_BitRate, BitRate);
- if (Buffer_TotalBytes_FirstSynched>100 && BitRate>0)
+ if (CalculateDelay && Buffer_TotalBytes_FirstSynched>100 && BitRate>0)
+ {
Fill(Stream_Audio, 0, Audio_Delay, (float)Buffer_TotalBytes_FirstSynched*8*1000/BitRate, 0);
+ Fill(Stream_Audio, 0, Audio_Delay_Source, "Stream");
+ }
}
if (acmod==0)
@@ -719,7 +730,7 @@ void File_Ac3::Streams_Finish()
int8u Maximum_Raw=31;
float64 Sum_Intensity=0;
int64u Count=0;
- for (int8u Pos=0; Pos<dialnorms.size(); Pos++)
+ for (int8u Pos=0; (size_t)Pos<dialnorms.size(); Pos++)
if (dialnorms[Pos])
{
if (Minimum_Raw<(Pos==0?31:Pos))
@@ -832,7 +843,15 @@ void File_Ac3::Streams_Finish()
Fill(Stream_Audio, 0, Audio_StreamSize, Frame_Count_ForDuration*Size);
}
if (Frame_Count_ForDuration)
+ {
Fill(Stream_Audio, 0, Audio_Duration, Frame_Count_ForDuration*32);
+ Fill(Stream_Audio, 0, Audio_FrameCount, Frame_Count_ForDuration);
+ }
+ }
+ else if (PTS!=(int64u)-1)
+ {
+ Fill(Stream_Audio, 0, Audio_Duration, float64_int64s(((float64)PTS_End-PTS_Begin)/1000000));
+ Fill(Stream_Audio, 0, Audio_FrameCount, float64_int64s(((float64)PTS_End-PTS_Begin)/1000000/32));
}
}
@@ -880,6 +899,8 @@ bool File_Ac3::Synchronize()
{
if (CC2(Buffer+Buffer_Offset)==0x0B77) //AC-3
break; //while()
+ if (CC4(Buffer+Buffer_Offset+4)==0xF8726FBA) //TrueHD
+ break; //while()
if (CC4(Buffer+Buffer_Offset+4)==0xF8726FBB) //MLP
break; //while()
Buffer_Offset++;
@@ -922,6 +943,11 @@ bool File_Ac3::Synchronize()
Buffer_Offset++;
}
+ if (Buffer_Offset+8<=Buffer_Size && CC4(Buffer+Buffer_Offset+4)==0xF8726FBA) //TrueHD
+ {
+ break;
+ }
+
if (Buffer_Offset+8<=Buffer_Size && CC4(Buffer+Buffer_Offset+4)==0xF8726FBB) //MLP
{
break;
@@ -987,14 +1013,15 @@ bool File_Ac3::Synched_Test()
return false;
*/
- //TrueHD detection
- if ((Frame_Count>=1 && HD_Count+(HD_AlreadyCounted?0:1)==Frame_Count && bsid<=0x08) || !Core_IsPresent)
+ //TrueHD/MLP detection
+ if (HD_MajorSync_Parsed || CC4(Buffer+Buffer_Offset+4)==0xF8726FBA || CC4(Buffer+Buffer_Offset+4)==0xF8726FBB)
{
Synched=true;
return true;
}
- return false;
+ Synched=false;
+ return true;
}
//AC-3 CRC
@@ -1025,10 +1052,10 @@ bool File_Ac3::Synched_Test()
CRC_16_Buffer++;
}
if (CRC_16!=0x0000)
- return false;
+ Synched=false;
}
else
- return false;
+ Synched=false;
//We continue
return true;
@@ -1057,9 +1084,8 @@ void File_Ac3::Header_Parse()
//MLP or TrueHD specific
if (CC2(Buffer+Buffer_Offset)!=0x0B77)
{
- int16u Size;
BS_Begin();
- Skip_S1( 4, "Unknown");
+ Skip_S1( 4, "CRC?");
Get_S2 (12, Size, "Size");
BS_End();
Skip_B2( "Timestamp?");
@@ -1071,13 +1097,13 @@ void File_Ac3::Header_Parse()
Size=2;
}
- Header_Fill_Size(Size*2);
+ Size*=2;
+ Header_Fill_Size(Size);
Header_Fill_Code(1, "HD");
return;
}
//Testing bsid before parsing
- int16u Size;
bsid=(Buffer[(size_t)(Buffer_Offset+5)]&0xF8)>>3;
if (bsid<=0x08)
{
@@ -1119,6 +1145,36 @@ void File_Ac3::Header_Parse()
//---------------------------------------------------------------------------
void File_Ac3::Data_Parse()
{
+ //Partial frame
+ if (Header_Size+Element_Size<Size)
+ {
+ Element_Name("Partial frame");
+ Skip_XX(Element_Size, "Data");
+ return;
+ }
+
+ //PTS
+ if (PTS!=(int64u)-1)
+ Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)(Frame_Count_InThisBlock==0?PTS:PTS_End))/1000000)));
+
+ if (Status[IsFilled])
+ {
+ if (Element_Code==0 || !Core_IsPresent)
+ {
+ Frame_Count++;
+ Frame_Count_InThisBlock++;
+ if (PTS!=(int64u)-1)
+ {
+ if (Frame_Count_InThisBlock<=1)
+ PTS_End=PTS;
+ PTS_End+=32000000;
+ }
+ }
+
+ Skip_XX(Element_Size, "Data");
+ return;
+ }
+
//Parsing
switch(Element_Code)
{
@@ -1131,10 +1187,6 @@ void File_Ac3::Data_Parse()
//---------------------------------------------------------------------------
void File_Ac3::Core()
{
- //PTS
- if (PTS!=(int64u)-1)
- Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)PTS+PTS_DTS_Offset_InThisBlock)/1000000)));
-
//Parsing
if (bsid<=0x08)
{
@@ -1320,19 +1372,19 @@ void File_Ac3::Core()
{
Frame_Count=0;
Core_IsPresent=true;
+ if (PTS_Begin==(int64u)-1)
+ PTS_Begin=PTS;
}
if (File_Offset+Buffer_Offset+Element_Size==File_Size)
Frame_Count_Valid=Frame_Count; //Finish frames in case of there are less than Frame_Count_Valid frames
Frame_Count++;
+ Frame_Count_InThisBlock++;
HD_AlreadyCounted=false;
-
- //PTS
- if (PTS!=(int64u)-1 && frmsizecod/2<19)
+ if (PTS!=(int64u)-1)
{
- int64u BitRate=AC3_BitRate[frmsizecod/2]*1000;
- int64u Bits=Element_Size*8;
- float64 Frame_Duration=((float64)Bits)/BitRate;
- PTS_DTS_Offset_InThisBlock+=float64_int64s(Frame_Duration*1000000000);
+ if (Frame_Count_InThisBlock<=1)
+ PTS_End=PTS;
+ PTS_End+=32000000;
}
//Filling
@@ -1341,7 +1393,7 @@ void File_Ac3::Core()
Fill("AC-3");
//No more need data
- if (MediaInfoLib::Config.ParseSpeed_Get()<1)
+ if (!IsSub && MediaInfoLib::Config.ParseSpeed_Get()<1)
Finish("AC-3");
}
FILLING_END();
@@ -1506,7 +1558,18 @@ void File_Ac3::HD()
FILLING_BEGIN_PRECISE();
if (!Core_IsPresent)
+ {
Frame_Count++;
+ Frame_Count_InThisBlock++;
+ if (PTS!=(int64u)-1)
+ {
+ if (PTS_Begin==(int64u)-1)
+ PTS_Begin=PTS;
+ if (Frame_Count_InThisBlock<=1)
+ PTS_End=PTS;
+ PTS_End+=32000000;
+ }
+ }
if (!HD_AlreadyCounted)
{
@@ -1520,7 +1583,7 @@ void File_Ac3::HD()
Fill("AC-3");
//No more need data
- if (MediaInfoLib::Config.ParseSpeed_Get()<1)
+ if (!IsSub && MediaInfoLib::Config.ParseSpeed_Get()<1)
Finish("AC-3");
}
FILLING_END();
diff --git a/src/thirdparty/MediaInfo/Audio/File_Ac3.h b/src/thirdparty/MediaInfo/Audio/File_Ac3.h
index 6dbf14e96..e62895973 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Ac3.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Ac3.h
@@ -40,6 +40,7 @@ public :
size_t Frame_Count_Valid;
bool MustParse_dac3;
bool MustParse_dec3;
+ bool CalculateDelay;
//Constructor/Destructor
File_Ac3();
@@ -95,8 +96,8 @@ private :
std::vector<int64u> dynrng2s;
std::map<int8u, int64u> fscods;
std::map<int8u, int64u> frmsizecods;
- size_t Frame_Count;
size_t HD_Count;
+ int16u Size;
int16u chanmap;
int16u frmsiz;
int16u HD_BitRate_Max;
diff --git a/src/thirdparty/MediaInfo/Audio/File_Adts.cpp b/src/thirdparty/MediaInfo/Audio/File_Adts.cpp
index 4f069a9ea..d6adb0753 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Adts.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Adts.cpp
@@ -87,9 +87,6 @@ File_Adts::File_Adts()
//In
Frame_Count_Valid=MediaInfoLib::Config.ParseSpeed_Get()>=0.5?128:(MediaInfoLib::Config.ParseSpeed_Get()>=0.3?32:2);
-
- //Temp
- Frame_Count=0;
}
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Audio/File_Adts.h b/src/thirdparty/MediaInfo/Audio/File_Adts.h
index fdf302ca9..987495f46 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Adts.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Adts.h
@@ -59,7 +59,6 @@ private :
//Temp
std::vector<int16u> aac_frame_lengths;
- size_t Frame_Count;
int16u adts_buffer_fullness;
int16u aac_frame_length;
int8u profile_ObjectType;
diff --git a/src/thirdparty/MediaInfo/Audio/File_Aes3.cpp b/src/thirdparty/MediaInfo/Audio/File_Aes3.cpp
index e009cffe4..c9250e125 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Aes3.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Aes3.cpp
@@ -16,6 +16,10 @@
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// AES3 PCM and non-PCM (SMPTE 337M)
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//---------------------------------------------------------------------------
// Compilation conditions
@@ -31,6 +35,9 @@
//---------------------------------------------------------------------------
#include "MediaInfo/Audio/File_Aes3.h"
+#if defined(MEDIAINFO_DOLBYE_YES)
+ #include "MediaInfo/Audio/File_DolbyE.h"
+#endif
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -66,6 +73,80 @@ const char* Aes3_ChannelsPositions2(int8u number_channels)
}
}
+//---------------------------------------------------------------------------
+const char* Aes3_NonPCM_data_type[32]= //SMPTE 338M
+{
+ "",
+ "AC-3",
+ "Time stamp",
+ "",
+ "MPEG Audio",
+ "MPEG Audio",
+ "MPEG Audio",
+ "",
+ "MPEG Audio",
+ "MPEG Audio",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "KLV",
+ "Dolby E",
+ "Captioning",
+ "",
+ "",
+};
+
+//---------------------------------------------------------------------------
+stream_t Aes3_NonPCM_data_type_StreamKind[32]= //SMPTE 338M
+{
+ Stream_Max,
+ Stream_Audio,
+ Stream_Max,
+ Stream_Max,
+ Stream_Audio,
+ Stream_Audio,
+ Stream_Audio,
+ Stream_Max,
+ Stream_Audio,
+ Stream_Audio,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Max,
+ Stream_Menu,
+ Stream_Audio,
+ Stream_Text,
+ Stream_Max,
+ Stream_Max,
+};
+
//***************************************************************************
// Constructor/Destructor
//***************************************************************************
@@ -74,35 +155,524 @@ const char* Aes3_ChannelsPositions2(int8u number_channels)
File_Aes3::File_Aes3()
:File__Analyze()
{
- //Configure
+ //Configuration
+ MustSynchronize=true;
+ Buffer_TotalBytes_FirstSynched_Max=32*1024;
PTS_DTS_Needed=true;
+ //In
+ From_MpegPs=false;
+
//Temp
- Block_Count=0;
- Block_Last_PTS=(int32u)-1;
- Block_Last_Size=(int64u)-1;
+ Frame_Count=0;
+ Frame_Last_PTS=(int32u)-1;
+ Frame_Last_Size=(int64u)-1;
+ data_type=(int8u)-1;
+ IsParsingNonPcm=false;
+
+ //Parser
+ Parser=NULL;
+}
+
+//***************************************************************************
+// Streams management
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Aes3::Streams_Fill()
+{
+ int64u BitRate=(int64u)-1;
+ int64u SamplingRate=(int64u)-1;
+ if (PTS!=(int32u)-1 && Frame_Last_PTS!=(int32u)-1 && PTS!=Frame_Last_PTS)
+ {
+ //Rounding
+ BitRate=Frame_Last_Size*8*1000*1000000*(Frame_Count-1)/(PTS-Frame_Last_PTS);
+ SamplingRate=BitRate*(4+bits_per_sample)/(5+bits_per_sample)/(2+2*number_channels)/(16+4*bits_per_sample);
+ if (SamplingRate> 7840 && SamplingRate< 8160) SamplingRate= 8000;
+ if (SamplingRate> 15680 && SamplingRate< 16320) SamplingRate= 16000;
+ if (SamplingRate> 31360 && SamplingRate< 32640) SamplingRate= 32000;
+ if (SamplingRate> 62720 && SamplingRate< 65280) SamplingRate= 64000;
+ if (SamplingRate> 10804 && SamplingRate< 11246) SamplingRate= 11025;
+ if (SamplingRate> 21609 && SamplingRate< 22491) SamplingRate= 22050;
+ if (SamplingRate> 43218 && SamplingRate< 44982) SamplingRate= 44100;
+ if (SamplingRate> 86436 && SamplingRate< 89964) SamplingRate= 88200;
+ if (SamplingRate> 11760 && SamplingRate< 12240) SamplingRate= 12000;
+ if (SamplingRate> 23520 && SamplingRate< 24480) SamplingRate= 24000;
+ if (SamplingRate> 47040 && SamplingRate< 48960) SamplingRate= 48000;
+ if (SamplingRate> 94080 && SamplingRate< 97920) SamplingRate= 96000;
+ if (SamplingRate>188160 && SamplingRate<195840) SamplingRate=192000;
+ BitRate=SamplingRate/(4+bits_per_sample)*(5+bits_per_sample)*(2+2*number_channels)*(16+4*bits_per_sample);
+ }
+
+ if (Count_Get(Stream_Audio))
+ {
+ if (Count_Get(Stream_Audio)==1 && Retrieve(Stream_Audio, 0, Audio_BitRate).empty() && BitRate!=(int64u)-1)
+ Fill(Stream_Audio, 0, Audio_BitRate, BitRate);
+ return; //Done elsewhere
+ }
+
+ if (From_MpegPs)
+ {
+ Stream_Prepare(Stream_Audio);
+ Fill(Stream_Audio, 0, Audio_Format, "PCM");
+ Fill(Stream_Audio, 0, Audio_MuxingMode, "AES3");
+ Fill(Stream_Audio, 0, Audio_Codec, "AES3");
+ Fill(Stream_Audio, 0, Audio_Channel_s_, 2+2*number_channels);
+ Fill(Stream_Audio, 0, Audio_ChannelPositions, Aes3_ChannelsPositions(number_channels));
+ Fill(Stream_Audio, 0, Audio_ChannelPositions_String2, Aes3_ChannelsPositions2(number_channels));
+ Fill(Stream_Audio, 0, Audio_Resolution, 16+4*bits_per_sample);
+ if (PTS!=(int32u)-1 && Frame_Last_PTS!=(int32u)-1 && PTS!=Frame_Last_PTS)
+ {
+ Fill(Stream_Audio, 0, Audio_SamplingRate, SamplingRate);
+ Fill(Stream_Audio, 0, Audio_BitRate, BitRate);
+ }
+ }
+ else if (Retrieve(Stream_General, 0, General_Format).empty())
+ {
+ if (data_type!=(int8u)-1)
+ {
+ Fill(Stream_General, 0, General_Format, _T("AES3 / ")+Ztring().From_Local(Aes3_NonPCM_data_type[data_type]), true);
+ if (Aes3_NonPCM_data_type_StreamKind[data_type]!=Stream_Max)
+ {
+ Stream_Prepare(Aes3_NonPCM_data_type_StreamKind[data_type]);
+ Fill(StreamKind_Last, 0, Fill_Parameter(StreamKind_Last, Generic_Format), Aes3_NonPCM_data_type[data_type]);
+ }
+ }
+ else
+ {
+ Fill(Stream_General, 0, General_Format, "AES3");
+ Stream_Prepare(Stream_Audio);
+ Fill(Stream_Audio, 0, Audio_Format, "AES3");
+ }
+ }
+}
+
+//***************************************************************************
+// Buffer - Global
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Aes3::Read_Buffer_Continue()
+{
+ if (From_MpegPs)
+ Frame_FromMpegPs();
+}
+
+//***************************************************************************
+// Buffer - Synchro
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+bool File_Aes3::Synchronize()
+{
+ //Synchronizing
+ while (Buffer_Offset+16<=Buffer_Size)
+ {
+ if (CC4(Buffer+Buffer_Offset)==0xF8724E1F) //SMPTE 337M 16-bit, BE
+ {
+ Container_Bits=16;
+ Stream_Bits=16;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC4(Buffer+Buffer_Offset)==0x72F81F4E) //SMPTE 337M 16-bit, LE
+ {
+ Container_Bits=16;
+ Stream_Bits=16;
+ Endianess=true; //LE
+ break; //while()
+ }
+ if (CC5(Buffer+Buffer_Offset)==0x6F87254E1FLL) //SMPTE 337M 20-bit, BE
+ {
+ Container_Bits=20;
+ Stream_Bits=20;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC6(Buffer+Buffer_Offset)==0x96F872A54E1FLL) //SMPTE 337M 24-bit, BE
+ {
+ Container_Bits=24;
+ Stream_Bits=24;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC6(Buffer+Buffer_Offset)==0x72F8961F4E5ALL) //SMPTE 337M 24-bit, LE
+ {
+ Container_Bits=24;
+ Stream_Bits=24;
+ Endianess=true; //LE
+ break; //while()
+ }
+ if (CC6(Buffer+Buffer_Offset)==0x00F872004E1FLL) //16-bit in 24-bit, BE
+ {
+ Container_Bits=24;
+ Stream_Bits=16;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC6(Buffer+Buffer_Offset)==0x0072F8001F4ELL) //16-bit in 24-bit, LE
+ {
+ Container_Bits=24;
+ Stream_Bits=16;
+ Endianess=true; //LE
+ break; //while()
+ }
+ if (CC6(Buffer+Buffer_Offset)==0x6F872054E1F0LL) //20-bit in 24-bit, BE
+ {
+ Container_Bits=24;
+ Stream_Bits=20;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC6(Buffer+Buffer_Offset)==0x20876FF0E154LL) //20-bit in 24-bit, LE
+ {
+ Container_Bits=24;
+ Stream_Bits=20;
+ Endianess=true; //LE
+ break; //while()
+ }
+ if (CC8(Buffer+Buffer_Offset)==0x0000F87200004E1FLL) //16-bit in 32-bit, BE
+ {
+ Container_Bits=32;
+ Stream_Bits=16;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC8(Buffer+Buffer_Offset)==0x000072F800001F4ELL) //16-bit in 32-bit, LE
+ {
+ Container_Bits=32;
+ Stream_Bits=16;
+ Endianess=true; //LE
+ break; //while()
+ }
+ if (CC8(Buffer+Buffer_Offset)==0x006F87200054E1F0LL) //20-bit in 32-bit, BE
+ {
+ Container_Bits=32;
+ Stream_Bits=20;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC8(Buffer+Buffer_Offset)==0x0020876F00F0E154LL) //20-bit in 32-bit, LE
+ {
+ Container_Bits=32;
+ Stream_Bits=20;
+ Endianess=true; //LE
+ break; //while()
+ }
+ if (CC8(Buffer+Buffer_Offset)==0x0096F8720A54E1FLL) //24-bit in 32-bit, BE
+ {
+ Container_Bits=32;
+ Stream_Bits=24;
+ Endianess=false; //BE
+ break; //while()
+ }
+ if (CC8(Buffer+Buffer_Offset)==0x0072F896001F4EA5LL) //24-bit in 32-bit, LE
+ {
+ Container_Bits=32;
+ Stream_Bits=24;
+ Endianess=true; //LE
+ break; //while()
+ }
+ Buffer_Offset++;
+ }
+
+ //Parsing last bytes if needed
+ if (Buffer_Offset+16>Buffer_Size)
+ {
+ return false;
+ }
+
+ //Synched
+ Data_Accept("AES3");
+ return true;
+}
+
+//---------------------------------------------------------------------------
+bool File_Aes3::Synched_Test()
+{
+ //Must have enough buffer for having header
+ if (Buffer_Offset+16>Buffer_Size)
+ return false;
+
+ //Quick test of synchro
+ switch (Endianess)
+ {
+ case false :
+ switch (Container_Bits)
+ {
+ case 16 : if (CC4(Buffer+Buffer_Offset)!=0xF8724E1F) {Synched=false; return true;} break;
+ case 20 : if (CC5(Buffer+Buffer_Offset)!=0x6F87254E1FLL) {Synched=false; return true;} break;
+ case 24 :
+ switch (Stream_Bits)
+ {
+ case 16 : if (CC6(Buffer+Buffer_Offset)!=0xF872004E1F00LL) {Synched=false; return true;} break;
+ case 20 : if (CC6(Buffer+Buffer_Offset)!=0x6F872054E1F0LL) {Synched=false; return true;} break;
+ case 24 : if (CC6(Buffer+Buffer_Offset)!=0x96F872A54E1FLL) {Synched=false; return true;} break;
+ default : ;
+ }
+ break;
+ case 32 :
+ switch (Stream_Bits)
+ {
+ case 16 : if (CC6(Buffer+Buffer_Offset)!=0x0000F87200004E1FLL) {Synched=false; return true;} break;
+ case 20 : if (CC6(Buffer+Buffer_Offset)!=0x006F87200054E1F0LL) {Synched=false; return true;} break;
+ case 24 : if (CC6(Buffer+Buffer_Offset)!=0x0096F87200A5F41FLL) {Synched=false; return true;} break;
+ default : ;
+ }
+ break;
+ default : ;
+ }
+ break;
+ case true :
+ switch (Container_Bits)
+ {
+ case 16 : if (CC4(Buffer+Buffer_Offset)!=0) {Synched=false; return true;} break;
+ case 24 :
+ switch (Stream_Bits)
+ {
+ case 16 : if (CC6(Buffer+Buffer_Offset)!=0x0072F8001F4ELL) {Synched=false; return true;} break;
+ case 20 : if (CC6(Buffer+Buffer_Offset)!=0x20876FF0E154LL) {Synched=false; return true;} break;
+ case 24 : if (CC6(Buffer+Buffer_Offset)!=0x72F8961F4EA5LL) {Synched=false; return true;} break;
+ default : ;
+ }
+ break;
+ case 32 :
+ switch (Stream_Bits)
+ {
+ case 16 : if (CC8(Buffer+Buffer_Offset)!=0x000072F800001F4ELL) {Synched=false; return true;} break;
+ case 20 : if (CC8(Buffer+Buffer_Offset)!=0x0020876F00F0E154LL) {Synched=false; return true;} break;
+ case 24 : if (CC8(Buffer+Buffer_Offset)!=0x0072F896001F4EA5LL) {Synched=false; return true;} break;
+ default : ;
+ }
+ break;
+ default : ;
+ }
+ break;
+ }
+
+ //We continue
+ return true;
}
//***************************************************************************
-// Format
+// Per element
//***************************************************************************
//---------------------------------------------------------------------------
void File_Aes3::Header_Parse()
{
//Parsing
- int16u Size;
- Get_B2 (Size, "Size");
- BS_Begin();
- Get_S1 (2, number_channels, "number_channels"); Param_Info(2+2*number_channels, " channels");
- Info_S1(8, channel_id, "channel_id");
- Get_S1 (2, bits_per_samples, "bits_per_samples"); Param_Info(16+4*bits_per_samples, " bits");
- Info_S1(4, alignments, "alignments");
- BS_End();
+ int32u Size=0;
+ switch (Endianess)
+ {
+ case false :
+ switch (Container_Bits)
+ {
+ case 16 : Size=BigEndian2int16u(Buffer+Buffer_Offset+6) ; break;
+ case 20 : Size=BigEndian2int24u(Buffer+Buffer_Offset+7)&0x0FFFFF; break;
+ case 24 :
+ switch (Stream_Bits)
+ {
+ case 16 : Size=BigEndian2int16u(Buffer+Buffer_Offset+9) ; break;
+ case 20 : Size=BigEndian2int24u(Buffer+Buffer_Offset+9)>>4; break;
+ case 24 : Size=BigEndian2int24u(Buffer+Buffer_Offset+9) ; break;
+ default : ;
+ }
+ break;
+ case 32 :
+ switch (Stream_Bits)
+ {
+ case 16 : Size=BigEndian2int16u(Buffer+Buffer_Offset+0xC) ; break;
+ case 20 : Size=BigEndian2int24u(Buffer+Buffer_Offset+0xC)>>4; break;
+ case 24 : Size=BigEndian2int24u(Buffer+Buffer_Offset+0xC) ; break;
+ default : ;
+ }
+ break;
+ default : ;
+ }
+ break;
+ case true :
+ switch (Container_Bits)
+ {
+ case 16 : Size=LittleEndian2int16u(Buffer+Buffer_Offset+6) ; break;
+ case 24 :
+ switch (Stream_Bits)
+ {
+ case 16 : Size=LittleEndian2int16u(Buffer+Buffer_Offset+0xA) ; break;
+ case 20 : Size=LittleEndian2int24u(Buffer+Buffer_Offset+0x9)>>4; break;
+ case 24 : Size=LittleEndian2int24u(Buffer+Buffer_Offset+0x9) ; break;
+ default : ;
+ }
+ break;
+ case 32 :
+ switch (Stream_Bits)
+ {
+ case 16 : Size=LittleEndian2int16u(Buffer+Buffer_Offset+0xE) ; break;
+ case 20 : Size=LittleEndian2int24u(Buffer+Buffer_Offset+0xD)>>4; break;
+ case 24 : Size=LittleEndian2int24u(Buffer+Buffer_Offset+0xD) ; break;
+ default : ;
+ }
+ break;
+ default : ;
+ }
+ break;
+ }
+
+ //Adaptation
+ if (Container_Bits!=Stream_Bits)
+ {
+ Size*=Container_Bits; Size/=Stream_Bits;
+ }
//Filling
- Header_Fill_Size(Element_Offset+Size);
- Header_Fill_Code(0, "Block");
+ Header_Fill_Size(Container_Bits*4/8+Size/8);
+ Header_Fill_Code(0, "AES3");
+}
+
+//---------------------------------------------------------------------------
+void File_Aes3::Data_Parse()
+{
+ if (Container_Bits==Stream_Bits && !Endianess) //BE
+ Frame();
+ else
+ Frame_WithPadding();
+}
+
+//---------------------------------------------------------------------------
+void File_Aes3::Frame()
+{
+ //Parsing
+ int32u length_code;
+ Element_Begin("Header");
+ BS_Begin();
+ Skip_S3(Stream_Bits, "Pa");
+ Skip_S3(Stream_Bits, "Pb");
+ Element_Begin("Pc");
+ Skip_S1( 3, "data_stream_number");
+ Skip_S1( 5, "data_type_dependent");
+ Skip_SB( "error_flag");
+ Skip_S1( 2, "data_mode");
+ Get_S1 ( 5, data_type, "data_type"); Param_Info(Aes3_NonPCM_data_type[data_type]);
+ if (Stream_Bits>16)
+ Skip_S1( 4, "reserved");
+ if (Stream_Bits>20)
+ Skip_S1( 4, "reserved");
+ Element_End();
+ Get_S3 (Stream_Bits, length_code, "length_code");
+ BS_End();
+ Element_End();
+
+ if (Parser==NULL)
+ {
+ switch(data_type)
+ {
+ case 28 : Parser=new File_DolbyE(); break;
+ default : ;
+ }
+
+ if (Parser)
+ {
+ Open_Buffer_Init(Parser);
+ }
+ }
+ if (Parser)
+ {
+ Open_Buffer_Continue(Parser, Buffer+(size_t)Element_Offset, (size_t)(Element_Size-Element_Offset));
+ Element_Offset=Element_Size;
+ if (Parser->Status[IsFinished])
+ {
+ if (Parser->Status[IsFilled])
+ {
+ Merge(*Parser);
+ Fill(Stream_General, 0, General_Format, _T("AES3 / ")+Parser->Retrieve(Stream_General, 0, General_Format), true);
+ int64u OverallBitRate=Parser->Retrieve(Stream_General, 0, General_OverallBitRate).To_int64u();
+ OverallBitRate*=Element_Size; OverallBitRate/=Element_Size-Stream_Bits*4/8;
+ Fill(Stream_General, 0, General_OverallBitRate, Ztring::ToZtring(OverallBitRate)+_T(" / ")+Parser->Retrieve(Stream_General, 0, General_OverallBitRate));
+ }
+ Finish("AES3");
+ }
+ }
+ else
+ Finish("AES3");
+}
+
+//---------------------------------------------------------------------------
+void File_Aes3::Frame_WithPadding()
+{
+ int8u* Info=new int8u[(size_t)Element_Size];
+ size_t Info_Offset=0;
+
+ if (Container_Bits==24 && Stream_Bits==20 && Endianess) //LE
+ {
+ while (Element_Offset+6<=Element_Size)
+ {
+ size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
+
+ Info[Info_Offset+0]= Buffer[Buffer_Pos+2];
+ Info[Info_Offset+1]= Buffer[Buffer_Pos+1];
+ Info[Info_Offset+2]=((Buffer[Buffer_Pos+0]&0xF0) ) | ((Buffer[Buffer_Pos+5]&0xF0)>>4);
+ Info[Info_Offset+3]=((Buffer[Buffer_Pos+5]&0x0F)<<4) | ((Buffer[Buffer_Pos+4]&0xF0)>>4);
+ Info[Info_Offset+4]=((Buffer[Buffer_Pos+4]&0x0F)<<4) | ((Buffer[Buffer_Pos+3]&0xF0)>>4);
+ Info_Offset+=5;
+ Element_Offset+=6;
+ }
+ }
+ if (Container_Bits==32 && Stream_Bits==16 && Endianess) //LE
+ {
+ while (Element_Offset+8<=Element_Size)
+ {
+ size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
+
+ Info[Info_Offset+0]= Buffer[Buffer_Pos+3];
+ Info[Info_Offset+1]= Buffer[Buffer_Pos+2];
+ Info[Info_Offset+2]= Buffer[Buffer_Pos+7];
+ Info[Info_Offset+3]= Buffer[Buffer_Pos+6];
+ Info_Offset+=4;
+ Element_Offset+=8;
+ }
+ }
+ if (Container_Bits==32 && Stream_Bits==20 && Endianess) //LE
+ {
+ while (Element_Offset+8<=Element_Size)
+ {
+ size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
+
+ Info[Info_Offset+0]= Buffer[Buffer_Pos+3];
+ Info[Info_Offset+1]= Buffer[Buffer_Pos+2];
+ Info[Info_Offset+2]=((Buffer[Buffer_Pos+1]&0xF0) ) | ((Buffer[Buffer_Pos+7]&0xF0)>>4);
+ Info[Info_Offset+3]=((Buffer[Buffer_Pos+7]&0x0F)<<4) | ((Buffer[Buffer_Pos+6]&0xF0)>>4);
+ Info[Info_Offset+4]=((Buffer[Buffer_Pos+6]&0x0F)<<4) | ((Buffer[Buffer_Pos+5]&0xF0)>>4);
+ Info_Offset+=5;
+ Element_Offset+=8;
+ }
+ }
+ if (Container_Bits==32 && Stream_Bits==24 && Endianess) //LE
+ {
+ while (Element_Offset+8<=Element_Size)
+ {
+ size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
+
+ Info[Info_Offset+0]= Buffer[Buffer_Pos+3];
+ Info[Info_Offset+1]= Buffer[Buffer_Pos+2];
+ Info[Info_Offset+2]= Buffer[Buffer_Pos+1];
+ Info[Info_Offset+3]= Buffer[Buffer_Pos+7];
+ Info[Info_Offset+4]= Buffer[Buffer_Pos+6];
+ Info[Info_Offset+5]= Buffer[Buffer_Pos+5];
+ Info_Offset+=6;
+ Element_Offset+=8;
+ }
+ }
+
+ if (Element_Offset==0)
+ {
+ Skip_XX(Element_Size, "Data");
+ Finish();
+ delete[] Info;
+ return;
+ }
+
+ Parser_Parse(Info, Info_Offset);
+ delete[] Info;
}
//---------------------------------------------------------------------------
@@ -117,168 +687,170 @@ static inline int8u Reverse8(int n)
}
//---------------------------------------------------------------------------
-void File_Aes3::Data_Parse()
+void File_Aes3::Frame_FromMpegPs()
{
- Block_Count++;
+ //SMPTE 302M
+ int16u audio_packet_size;
+ Get_B2 (audio_packet_size, "audio_packet_size");
+ BS_Begin();
+ Get_S1 (2, number_channels, "number_channels"); Param_Info(2+2*number_channels, " channels");
+ Info_S1(8, channel_identification, "channel_identification");
+ Get_S1 (2, bits_per_sample, "bits_per_sample"); Param_Info(16+4*bits_per_sample, " bits");
+ Info_S1(4, alignment_bits, "alignment_bits");
+ BS_End();
+
+ if (Element_Offset+audio_packet_size!=Element_Size || audio_packet_size<192*2*(bits_per_sample==0?2:3))
+ {
+ Skip_XX(Element_Size-Element_Offset, "Error?");
+ return;
+ }
+
+ if (!Status[IsAccepted])
+ Accept("AES3");
//Parsing
- switch (bits_per_samples)
+ switch (bits_per_sample)
{
- /*
case 0 : //16 bits
{
+ int8u* Info=new int8u[(size_t)Element_Size-4];
+ size_t Info_Offset=0;
+
while (Element_Offset<Element_Size)
{
- Element_Begin("2Ch group");
- int8u Info[4];
size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
//Channel 1 (16 bits, as "s16l" codec)
- Info[0]= Reverse8(Buffer[Buffer_Pos+0]);
- Info[1]= Reverse8(Buffer[Buffer_Pos+1]);
+ Info[Info_Offset+0]= Reverse8(Buffer[Buffer_Pos+0]);
+ Info[Info_Offset+1]= Reverse8(Buffer[Buffer_Pos+1]);
//Channel 2 (16 bits, as "s16l" codec)
- Info[2]=(Reverse8(Buffer[Buffer_Pos+2])>>4) | ((Reverse8(Buffer[Buffer_Pos+3])<<4)&0xF0);
- Info[3]=(Reverse8(Buffer[Buffer_Pos+3])>>4) | ((Reverse8(Buffer[Buffer_Pos+4])<<4)&0xF0);
-
- //Details
- if (Config_Details>0)
- {
- Param("0", Info[0]);
- Param("1", Info[1]);
- Param("2", Info[2]);
- Param("3", Info[3]);
- }
+ Info[Info_Offset+2]=(Reverse8(Buffer[Buffer_Pos+2])>>4) | ((Reverse8(Buffer[Buffer_Pos+3])<<4)&0xF0);
+ Info[Info_Offset+3]=(Reverse8(Buffer[Buffer_Pos+3])>>4) | ((Reverse8(Buffer[Buffer_Pos+4])<<4)&0xF0);
+ Info_Offset+=4;
Element_Offset+=5;
- Element_End();
}
+
+ if (Info[0]==0x20 && Info[1]==0x87 && Info[2]==0x6F)
+ {
+ Parser_Parse(Info, Info_Offset);
+ }
+
+ delete[] Info;
}
break;
case 1 : //20 bits
{
+ int8u* Info=new int8u[(size_t)Element_Size-4];
+ size_t Info_Offset=0;
+
while (Element_Offset<Element_Size)
{
- Element_Begin("2Ch group");
- int8u Info[6];
size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
//Channel 1 (24 bits, as "s24l" codec, 4 highest bits are set to 0)
- Info[0]= ((Reverse8(Buffer[Buffer_Pos+0])<<4)&0xF0);
- Info[1]=(Reverse8(Buffer[Buffer_Pos+0])>>4 ) | ((Reverse8(Buffer[Buffer_Pos+1])<<4)&0xF0);
- Info[2]=(Reverse8(Buffer[Buffer_Pos+1])>>4 ) | ((Reverse8(Buffer[Buffer_Pos+2])<<4)&0xF0);
+ Info[Info_Offset+0]= ((Reverse8(Buffer[Buffer_Pos+0])<<4)&0xF0);
+ Info[Info_Offset+1]=(Reverse8(Buffer[Buffer_Pos+0])>>4 ) | ((Reverse8(Buffer[Buffer_Pos+1])<<4)&0xF0);
+ Info[Info_Offset+2]=(Reverse8(Buffer[Buffer_Pos+1])>>4 ) | ((Reverse8(Buffer[Buffer_Pos+2])<<4)&0xF0);
//Channel 2 (24 bits, as "s24l" codec, 4 highest bits are set to 0)
- Info[3]= ((Reverse8(Buffer[Buffer_Pos+3])<<4)&0xF0);
- Info[4]=(Reverse8(Buffer[Buffer_Pos+3])>>4) | ((Reverse8(Buffer[Buffer_Pos+4])<<4)&0xF0);
- Info[5]=(Reverse8(Buffer[Buffer_Pos+4])>>4) | ((Reverse8(Buffer[Buffer_Pos+5])<<4)&0xF0);
-
-
- //Details
- if (Config_Details>0)
- {
- Param("0", Info[0]);
- Param("1", Info[1]);
- Param("2", Info[2]);
- Param("3", Info[3]);
- Param("4", Info[4]);
- Param("5", Info[5]);
- }
+ Info[Info_Offset+3]= ((Reverse8(Buffer[Buffer_Pos+3])<<4)&0xF0);
+ Info[Info_Offset+4]=(Reverse8(Buffer[Buffer_Pos+3])>>4) | ((Reverse8(Buffer[Buffer_Pos+4])<<4)&0xF0);
+ Info[Info_Offset+5]=(Reverse8(Buffer[Buffer_Pos+4])>>4) | ((Reverse8(Buffer[Buffer_Pos+5])<<4)&0xF0);
+ Info_Offset+=6;
Element_Offset+=6;
- Element_End();
}
+
+ if (IsParsingNonPcm || (Info[0]==0x20 && Info[1]==0x87 && Info[2]==0x6F))
+ {
+ IsParsingNonPcm=true;
+ Parser_Parse(Info, Info_Offset);
+ }
+
+ delete[] Info;
}
break;
case 2 : //24 bits
{
+ int8u* Info=new int8u[(size_t)Element_Size-4];
+ size_t Info_Offset=0;
+
while (Element_Offset<Element_Size)
{
- Element_Begin("2Ch group");
- int8u Info[6];
size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
//Channel 1 (24 bits, as "s24l" codec)
- Info[0] = Reverse8(Buffer[Buffer_Pos+0] );
- Info[1] = Reverse8(Buffer[Buffer_Pos+1] );
- Info[2] = Reverse8(Buffer[Buffer_Pos+2] );
+ Info[Info_Offset+0] = Reverse8(Buffer[Buffer_Pos+0] );
+ Info[Info_Offset+1] = Reverse8(Buffer[Buffer_Pos+1] );
+ Info[Info_Offset+2] = Reverse8(Buffer[Buffer_Pos+2] );
//Channel 2 (24 bits, as "s24l" codec)
- Info[3] = (Reverse8(Buffer[Buffer_Pos+3])>>4) | ((Reverse8(Buffer[Buffer_Pos+4])<<4)&0xF0 );
- Info[4] = (Reverse8(Buffer[Buffer_Pos+4])>>4) | ((Reverse8(Buffer[Buffer_Pos+5])<<4)&0xF0 );
- Info[5] = (Reverse8(Buffer[Buffer_Pos+5])>>4) | ((Reverse8(Buffer[Buffer_Pos+6])<<4)&0xF0 );
-
- //Details
- if (Config_Details>0)
- {
- Param("0", Info[0]);
- Param("1", Info[1]);
- Param("2", Info[2]);
- Param("3", Info[3]);
- Param("4", Info[4]);
- Param("5", Info[5]);
- }
+ Info[Info_Offset+3] = (Reverse8(Buffer[Buffer_Pos+3])>>4) | ((Reverse8(Buffer[Buffer_Pos+4])<<4)&0xF0 );
+ Info[Info_Offset+4] = (Reverse8(Buffer[Buffer_Pos+4])>>4) | ((Reverse8(Buffer[Buffer_Pos+5])<<4)&0xF0 );
+ Info[Info_Offset+5] = (Reverse8(Buffer[Buffer_Pos+5])>>4) | ((Reverse8(Buffer[Buffer_Pos+6])<<4)&0xF0 );
+ Info_Offset+=6;
Element_Offset+=7;
- Element_End();
}
+
+ if (Info[0]==0x20 && Info[1]==0x87 && Info[2]==0x6F)
+ {
+ Parser_Parse(Info, Info_Offset);
+ }
+
+ delete[] Info;
}
break;
- */
default :
Skip_XX(Element_Size, "Data");
}
- FILLING_BEGIN();
- FILLING_END();
-
-
+ //Looking for 2 consecutive PTS
+ Frame_Count++;
if (PTS==(int64u)-1)
- Block_Count=2; //We don't have PTS, don't need more
- else if (Block_Count==1)
+ Frame_Count=2; //We don't have PTS, don't need more
+ else if (Frame_Count==1)
{
- Block_Last_PTS=PTS;
- Block_Last_Size=Element_Size;
+ Frame_Last_PTS=PTS;
+ Frame_Last_Size=Element_Size;
}
- if (Block_Count>=2)
+ if ((!IsParsingNonPcm || (Parser && Parser->Status[IsFinished])) && Frame_Count>=2)
{
//Filling
- Accept("AES3");
+ Finish("AES3");
+ }
+}
- Stream_Prepare(Stream_Audio);
- Fill(Stream_Audio, 0, Audio_Format, "PCM");
- Fill(Stream_Audio, 0, Audio_Format_Profile, "AES3");
- Fill(Stream_Audio, 0, Audio_Codec, "AES3");
- Fill(Stream_Audio, 0, Audio_Channel_s_, 2+2*number_channels);
- Fill(Stream_Audio, 0, Audio_ChannelPositions, Aes3_ChannelsPositions(number_channels));
- Fill(Stream_Audio, 0, Audio_ChannelPositions_String2, Aes3_ChannelsPositions2(number_channels));
- Fill(Stream_Audio, 0, Audio_Resolution, 16+4*bits_per_samples);
- if (PTS!=(int32u)-1 && Block_Last_PTS!=(int32u)-1 && PTS!=Block_Last_PTS)
- {
- //Rounding
- int64u BitRate=Block_Last_Size*8*1000*1000000/(PTS-Block_Last_PTS);
- int64u SamplingRate=BitRate*(4+bits_per_samples)/(5+bits_per_samples)/(2+2*number_channels)/(16+4*bits_per_samples);
- if (SamplingRate> 7840 && SamplingRate< 8160) SamplingRate= 8000;
- if (SamplingRate> 15680 && SamplingRate< 16320) SamplingRate= 16000;
- if (SamplingRate> 31360 && SamplingRate< 32640) SamplingRate= 32000;
- if (SamplingRate> 62720 && SamplingRate< 65280) SamplingRate= 64000;
- if (SamplingRate> 10804 && SamplingRate< 11246) SamplingRate= 11025;
- if (SamplingRate> 21609 && SamplingRate< 22491) SamplingRate= 22050;
- if (SamplingRate> 43218 && SamplingRate< 44982) SamplingRate= 44100;
- if (SamplingRate> 86436 && SamplingRate< 89964) SamplingRate= 88200;
- if (SamplingRate> 11760 && SamplingRate< 12240) SamplingRate= 12000;
- if (SamplingRate> 23520 && SamplingRate< 24480) SamplingRate= 24000;
- if (SamplingRate> 47040 && SamplingRate< 48960) SamplingRate= 48000;
- if (SamplingRate> 94080 && SamplingRate< 97920) SamplingRate= 96000;
- if (SamplingRate>188160 && SamplingRate<195840) SamplingRate=192000;
- BitRate=SamplingRate/(4+bits_per_samples)*(5+bits_per_samples)*(2+2*number_channels)*(16+4*bits_per_samples);
+//---------------------------------------------------------------------------
+void File_Aes3::Parser_Parse(const int8u* Parser_Buffer, size_t Parser_Buffer_Size)
+{
+ if (Parser==NULL)
+ {
+ Parser=new File_Aes3();
+ Open_Buffer_Init(Parser);
+ }
+ Open_Buffer_Continue(Parser, Parser_Buffer, Parser_Buffer_Size);
- Fill(Stream_Audio, 0, Audio_SamplingRate, SamplingRate);
- Fill(Stream_Audio, 0, Audio_BitRate, BitRate);
+ if (!From_MpegPs)
+ Frame_Count++;
+ if (Count_Get(Stream_Audio)==0 && Parser->Status[IsFinished])
+ {
+ //Filling
+ Merge(*Parser);
+ ZtringList OverallBitRates; OverallBitRates.Separator_Set(0, _T(" / ")); OverallBitRates.Write(Parser->Retrieve(Stream_General, 0, General_OverallBitRate));
+ if (!OverallBitRates.empty())
+ {
+ int64u OverallBitRate=OverallBitRates[0].To_int64u();
+ OverallBitRate*=Element_Offset; OverallBitRate/=Parser_Buffer_Size;
+ OverallBitRates[0].From_Number(OverallBitRate);
+ Fill(Stream_General, 0, General_Format, Parser->Retrieve(Stream_General, 0, General_Format), true);
+ Fill(Stream_General, 0, General_OverallBitRate, OverallBitRates.Read(), true);
}
-
- Finish("AES3");
+ if (!From_MpegPs)
+ Finish("AES3");
}
}
diff --git a/src/thirdparty/MediaInfo/Audio/File_Aes3.h b/src/thirdparty/MediaInfo/Audio/File_Aes3.h
index c7fd0e0dd..d586db692 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Aes3.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Aes3.h
@@ -40,20 +40,46 @@ namespace MediaInfoLib
class File_Aes3 : public File__Analyze
{
public :
+ //In
+ bool From_MpegPs;
+
//Constructor/Destructor
File_Aes3();
private :
+ //Streams management
+ void Streams_Fill();
+
+ //Buffer - Global
+ void Read_Buffer_Continue ();
+
+ //Buffer - Synchro
+ bool Synchronize();
+ bool Synched_Test();
+
//Buffer - Per element
void Header_Parse();
void Data_Parse();
+ //Elements
+ void Frame();
+ void Frame_WithPadding();
+ void Frame_FromMpegPs();
+
//Temp
- size_t Block_Count;
- int64u Block_Last_Size;
- int64u Block_Last_PTS;
- int8u number_channels;
- int8u bits_per_samples;
+ int64u Frame_Last_Size;
+ int64u Frame_Last_PTS;
+ int8u number_channels;
+ int8u bits_per_sample;
+ int8u Container_Bits;
+ int8u Stream_Bits;
+ int8u data_type;
+ bool Endianess; //false=BE, true=LE
+ bool IsParsingNonPcm;
+
+ //Parser
+ File__Analyze* Parser;
+ void Parser_Parse(const int8u* Parser_Buffer, size_t Parser_Buffer_Size);
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Audio/File_DolbyE.cpp b/src/thirdparty/MediaInfo/Audio/File_DolbyE.cpp
new file mode 100644
index 000000000..461860742
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Audio/File_DolbyE.cpp
@@ -0,0 +1,122 @@
+// File_DolbyE - Info for Dolby E
+// Copyright (C) 2010-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library 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 Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// This is a place holder for Dolby E parser
+// But open-source version of MediaInfo has *no* Dolby E support
+// If you want Dolby E support,
+// contact http://www.dolby.com/about/contact_us/contactus.aspx?goto=28
+// for a license before asking it in MediaInfo
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+// Compilation conditions
+#include "MediaInfo/Setup.h"
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_DOLBYE_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/Audio/File_DolbyE.h"
+//---------------------------------------------------------------------------
+
+namespace MediaInfoLib
+{
+
+//***************************************************************************
+// Infos
+//***************************************************************************
+
+//***************************************************************************
+// Constructor/Destructor
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+File_DolbyE::File_DolbyE()
+:File__Analyze()
+{
+ //Configuration
+ MustSynchronize=true;
+ Buffer_TotalBytes_FirstSynched_Max=32*1024;
+}
+
+//***************************************************************************
+// Streams management
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_DolbyE::Streams_Fill()
+{
+}
+
+//***************************************************************************
+// Buffer - File header
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+bool File_DolbyE::FileHeader_Begin()
+{
+ Reject("Dolby E");
+ return true;
+}
+
+//***************************************************************************
+// Buffer - Synchro
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+bool File_DolbyE::Synchronize()
+{
+ //Synched
+ return true;
+}
+
+//---------------------------------------------------------------------------
+bool File_DolbyE::Synched_Test()
+{
+ //We continue
+ return true;
+}
+
+//***************************************************************************
+// Buffer - Per element
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_DolbyE::Header_Parse()
+{
+}
+
+//---------------------------------------------------------------------------
+void File_DolbyE::Data_Parse()
+{
+}
+
+//***************************************************************************
+// C++
+//***************************************************************************
+
+} //NameSpace
+
+#endif //MEDIAINFO_DOLBYE_YES
diff --git a/src/thirdparty/MediaInfo/Audio/File_DolbyE.h b/src/thirdparty/MediaInfo/Audio/File_DolbyE.h
new file mode 100644
index 000000000..e733a5e5c
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Audio/File_DolbyE.h
@@ -0,0 +1,64 @@
+// File_DolbyE - Info Info for Dolby E
+// Copyright (C) 2010-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library 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 Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// Information about Dolby E files
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+#ifndef MediaInfo_File_DolbyEH
+#define MediaInfo_File_DolbyEH
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/File__Analyze.h"
+//---------------------------------------------------------------------------
+
+namespace MediaInfoLib
+{
+
+//***************************************************************************
+// Class File_DolbyE
+//***************************************************************************
+
+class File_DolbyE : public File__Analyze
+{
+public :
+ //Constructor/Destructor
+ File_DolbyE();
+
+private :
+ //Streams management
+ void Streams_Fill();
+
+ //Buffer - File header
+ bool FileHeader_Begin();
+
+ //Buffer - Synchro
+ bool Synchronize();
+ bool Synched_Test();
+
+ //Buffer - Per element
+ void Header_Parse();
+ void Data_Parse();
+};
+
+} //NameSpace
+
+#endif
diff --git a/src/thirdparty/MediaInfo/Audio/File_Dts.cpp b/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
index defa92cfc..12b242d15 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
@@ -333,13 +333,13 @@ File_Dts::File_Dts()
#endif //MEDIAINFO_EVENTS
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=32*1024;
+ PTS_DTS_Needed=true;
//In
Frame_Count_Valid=MediaInfoLib::Config.ParseSpeed_Get()>=0.3?32:2;
//Temp
Parser=NULL;
- Frame_Count=0;
HD_size=0;
Primary_Frame_Byte_Size_minus_1=0;
HD_SpeakerActivityMask=(int16u)-1;
@@ -392,48 +392,7 @@ void File_Dts::Streams_Fill()
Fill(Stream_Audio, 0, Audio_BitRate_Mode, Profile.find(_T("MA"))==0?"VBR":"CBR");
Fill(Stream_Audio, 0, Audio_SamplingRate, DTS_SamplingRate[sample_frequency]);
if (Profile!=_T("MA") && (bit_rate<29 || Profile==_T("Express")))
- {
- float64 BitRate;
- if (Profile==_T("Express"))
- BitRate=0; //No core bitrate
- else
- BitRate=(float64)DTS_BitRate[bit_rate];
- if (HD_ExSSFrameDurationCode!=(int8u)-1)
- {
- int32u SamplePerFrames=HD_ExSSFrameDurationCode;
- switch (HD_MaximumSampleRate)
- {
- case 0 : // 8000
- case 10 : // 12000
- SamplePerFrames*= 128; break;
- case 1 : // 16000
- case 5 : // 22050
- case 11 : // 24000
- SamplePerFrames*= 256; break;
- case 2 : // 32000
- case 6 : // 44100
- case 12 : // 48000
- SamplePerFrames*= 512; break;
- case 3 : // 64000
- case 7 : // 88200
- case 13 : // 96000
- SamplePerFrames*=1024; break;
- case 4 : //128000
- case 8 : //176400
- case 14 : //192000
- SamplePerFrames*=2048; break;
- case 9 : //352800
- case 15 : //384000
- SamplePerFrames*=4096; break;
- default : SamplePerFrames= 0; break; //Can never happen (4 bits)
- }
- if (SamplePerFrames)
- BitRate+=HD_size*8*DTS_HD_MaximumSampleRate[HD_MaximumSampleRate]/SamplePerFrames;
- }
- //if (Primary_Frame_Byte_Size_minus_1 && Profile==_T("HRA"))
- // BitRate*=1+((float64)HD_size)/Primary_Frame_Byte_Size_minus_1; //HD block are not in the nominal bitrate
- Fill(Stream_Audio, 0, Audio_BitRate, BitRate, 0);
- }
+ Fill(Stream_Audio, 0, Audio_BitRate, BitRate_Get(), 0);
else if (bit_rate==29)
Fill(Stream_Audio, 0, Audio_BitRate, "Open");
else if (bit_rate==30)
@@ -506,6 +465,13 @@ void File_Dts::Streams_Finish()
Merge(*Parser, Stream_Audio, 0, 0);
if (!BigEndian) Fill(Stream_Audio, 0, Audio_Format_Profile, "LE");
if (!Word) Fill(Stream_Audio, 0, Audio_Format_Profile, "14");
+ return;
+ }
+
+ if (PTS!=(int64u)-1)
+ {
+ Fill(Stream_Audio, 0, Audio_Duration, float64_int64s(((float64)PTS_End-PTS_Begin)/1000000));
+ Fill(Stream_Audio, 0, Audio_FrameCount, float64_int64s(((float64)PTS_End-PTS_Begin)/1000000/32));
}
}
@@ -702,11 +668,13 @@ void File_Dts::Read_Buffer_Continue()
}
Demux(Dest, Dest_Size, ContentType_MainStream);
Open_Buffer_Continue(Parser, Dest, Dest_Size);
- if (!Status[IsFinished] && Parser->Status[IsFinished])
+ if (!Status[IsFilled] && Parser->Status[IsFilled])
{
Accept("DTS");
- Finish("DTS");
+ Fill("DTS");
}
+ if (!Status[IsFinished] && Parser->Status[IsFinished])
+ Finish("DTS");
delete[] Dest;
Buffer_Offset+=Buffer_Size;
@@ -921,14 +889,47 @@ void File_Dts::Header_Parse()
//---------------------------------------------------------------------------
void File_Dts::Data_Parse()
{
+ //Partial frame
+ if (Element_Code==0 && Header_Size+Element_Size<Primary_Frame_Byte_Size_minus_1
+ || Element_Code==1 && Header_Size+Element_Size<HD_size)
+ {
+ Element_Name("Partial frame");
+ Skip_XX(Element_Size, "Data");
+ return;
+ }
+
+ //Name
+ Element_Info(Ztring::ToZtring(Frame_Count));
+
+ //PTS
+ if (PTS!=(int64u)-1)
+ Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)(Frame_Count_InThisBlock==0?PTS:PTS_End))/1000000)));
+
//Counting
if (File_Offset+Buffer_Offset+Element_Size==File_Size)
Frame_Count_Valid=Frame_Count; //Finish frames in case of there are less than Frame_Count_Valid frames
if (Element_Code==0 || !Core_Exists)
+ {
Frame_Count++;
+ Frame_Count_InThisBlock++;
+ if (PTS!=(int64u)-1)
+ {
+ if (PTS_Begin==(int64u)-1)
+ PTS_Begin=PTS;
+ if (Frame_Count_InThisBlock<=1)
+ PTS_End=PTS;
+ float64 BitRate=BitRate_Get();
+ if (BitRate)
+ PTS_End+=float64_int64s(((float64)(Element_Size+Header_Size))*8/BitRate*1000000000);
+ }
+ }
- //Name
- Element_Info(Ztring::ToZtring(Frame_Count));
+ //If filled
+ if (Status[IsFilled])
+ {
+ Skip_XX(Element_Size, "Data");
+ return;
+ }
//Parsing
switch(Element_Code)
@@ -1011,7 +1012,11 @@ void File_Dts::Core()
if (Count_Get(Stream_Audio)==0 && Frame_Count>=Frame_Count_Valid)
{
Accept("DTS");
- Finish("DTS");
+ Fill("DTS");
+
+ //No more need data
+ if (!IsSub && MediaInfoLib::Config.ParseSpeed_Get()<1)
+ Finish("DTS");
}
FILLING_END();
}
@@ -1121,7 +1126,11 @@ void File_Dts::HD()
if (Count_Get(Stream_Audio)==0 && Frame_Count>=Frame_Count_Valid)
{
Accept("DTS");
- Finish("DTS");
+ Fill("DTS");
+
+ //No more need data
+ if (!IsSub && MediaInfoLib::Config.ParseSpeed_Get()<1)
+ Finish("DTS");
}
FILLING_END();
}
@@ -1205,6 +1214,60 @@ void File_Dts::HD_XSA(int64u Size)
FILLING_END();
}
+//***************************************************************************
+// Helpers
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+float64 File_Dts::BitRate_Get()
+{
+ if (bit_rate<29 || Profile==_T("Express"))
+ {
+ float64 BitRate;
+ if (Profile==_T("Express"))
+ BitRate=0; //No core bitrate
+ else
+ BitRate=(float64)DTS_BitRate[bit_rate];
+ if (HD_ExSSFrameDurationCode!=(int8u)-1)
+ {
+ int32u SamplePerFrames=HD_ExSSFrameDurationCode;
+ switch (HD_MaximumSampleRate)
+ {
+ case 0 : // 8000
+ case 10 : // 12000
+ SamplePerFrames*= 128; break;
+ case 1 : // 16000
+ case 5 : // 22050
+ case 11 : // 24000
+ SamplePerFrames*= 256; break;
+ case 2 : // 32000
+ case 6 : // 44100
+ case 12 : // 48000
+ SamplePerFrames*= 512; break;
+ case 3 : // 64000
+ case 7 : // 88200
+ case 13 : // 96000
+ SamplePerFrames*=1024; break;
+ case 4 : //128000
+ case 8 : //176400
+ case 14 : //192000
+ SamplePerFrames*=2048; break;
+ case 9 : //352800
+ case 15 : //384000
+ SamplePerFrames*=4096; break;
+ default : SamplePerFrames= 0; break; //Can never happen (4 bits)
+ }
+ if (SamplePerFrames)
+ BitRate+=HD_size*8*DTS_HD_MaximumSampleRate[HD_MaximumSampleRate]/SamplePerFrames;
+ }
+ //if (Primary_Frame_Byte_Size_minus_1 && Profile==_T("HRA"))
+ // BitRate*=1+((float64)HD_size)/Primary_Frame_Byte_Size_minus_1; //HD block are not in the nominal bitrate
+ return BitRate;
+ }
+ else
+ return 0;
+}
+
//---------------------------------------------------------------------------
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Audio/File_Dts.h b/src/thirdparty/MediaInfo/Audio/File_Dts.h
index b02338fac..bc68d1bb4 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Dts.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Dts.h
@@ -83,7 +83,6 @@ private :
std::vector<ZenLib::int32u> Asset_Sizes;
Ztring Profile;
File__Analyze* Parser; //14 bits or Little Endian
- size_t Frame_Count;
int32u HD_size;
int16u Primary_Frame_Byte_Size_minus_1;
int16u HD_SpeakerActivityMask;
@@ -103,6 +102,9 @@ private :
bool BigEndian;
bool ES;
bool Core_Exists;
+
+ //Helpers
+ float64 BitRate_Get();
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Audio/File_Mpega.cpp b/src/thirdparty/MediaInfo/Audio/File_Mpega.cpp
index bfa114195..0a337585f 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Mpega.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Mpega.cpp
@@ -308,6 +308,7 @@ File_Mpega::File_Mpega()
//In
Frame_Count_Valid=MediaInfoLib::Config.ParseSpeed_Get()>=0.5?128:(MediaInfoLib::Config.ParseSpeed_Get()>=0.3?32:2);
FrameIsAlwaysComplete=false;
+ CalculateDelay=false;
//Temp - BitStream info
Surround_Frames=0;
@@ -326,8 +327,6 @@ File_Mpega::File_Mpega()
Emphasis_Count[1]=0;
Emphasis_Count[2]=0;
Emphasis_Count[3]=0;
- Frame_Count=0;
- Frame_Count_Consecutive=0;
Scfsi=0;
Scalefac=0;
Reservoir=0;
@@ -337,6 +336,7 @@ File_Mpega::File_Mpega()
Reservoir_Max=0;
Xing_Scale=0;
BitRate=0;
+ MpegPsPattern_Count=0;
}
//***************************************************************************
@@ -389,8 +389,11 @@ void File_Mpega::Streams_Fill()
BitRate=Mpega_BitRate[ID][layer][bitrate_index]*1000;
Fill(Stream_General, 0, General_OverallBitRate, BitRate);
Fill(Stream_Audio, 0, Audio_BitRate, BitRate);
- if (Buffer_TotalBytes_FirstSynched>10 && BitRate>0)
+ if (CalculateDelay && Buffer_TotalBytes_FirstSynched>10 && BitRate>0)
+ {
Fill(Stream_Audio, 0, Audio_Delay, Buffer_TotalBytes_FirstSynched*8*1000/BitRate, 0);
+ Fill(Stream_Audio, 0, Audio_Delay_Source, "Stream");
+ }
}
//Bitrate mode
@@ -430,8 +433,10 @@ void File_Mpega::Streams_Finish()
}
//Bitrate calculation if VBR
+ int64u FrameCount=0;
if (VBR_Frames>0)
{
+ FrameCount=VBR_Frames;
float32 FrameLength=((float32)(VBR_FileSize?VBR_FileSize:File_Size-File_EndTagSize-File_BeginTagSize))/VBR_Frames;
size_t Divider;
if (ID==3 && layer==3) //MPEG 1 layer 1
@@ -461,12 +466,14 @@ void File_Mpega::Streams_Finish()
Fill(Stream_General, 0, General_Duration, VBR_FileSize*8*1000/BitRate, 10, true);
Fill(Stream_General, 0, General_OverallBitRate, BitRate, 10, true);
Fill(Stream_Audio, 0, Audio_BitRate, BitRate, 10, true);
- if (Buffer_TotalBytes_FirstSynched>10 && BitRate>0)
+ if (CalculateDelay && Buffer_TotalBytes_FirstSynched>10 && BitRate>0)
+ {
Fill(Stream_Audio, 0, Audio_Delay, Buffer_TotalBytes_FirstSynched*8*1000/BitRate, 0, true);
+ Fill(Stream_Audio, 0, Audio_Delay_Source, "Stream", Unlimited, true, true);
+ }
}
Fill(Stream_Audio, 0, Audio_StreamSize, VBR_FileSize);
}
-
Fill(Stream_Audio, 0, Audio_BitRate_Mode, BitRate_Mode, true);
//Encoding library
@@ -483,6 +490,43 @@ void File_Mpega::Streams_Finish()
//Fill(Stream_Audio, 0, Audio_Channel_s_, 6);
}
+ if (PTS!=(int64u)-1)
+ {
+ Fill(Stream_Audio, 0, Audio_Duration, float64_int64s(((float64)PTS_End-PTS_Begin)/1000000));
+ if (Retrieve(Stream_Audio, 0, Audio_BitRate_Mode)==_T("CBR"))
+ {
+ int16u Samples;
+ if (ID==3 && layer==3) //MPEG 1 layer 1
+ Samples=384;
+ else if ((ID==2 || ID==0) && layer==1) //MPEG 2 or 2.5 layer 3
+ Samples=576;
+ else
+ Samples=1152;
+
+ float64 Frame_Duration=((float64)1)/Mpega_SamplingRate[ID][sampling_frequency]*Samples;
+ FrameCount=float64_int64s(((float64)PTS_End-PTS_Begin)/1000000000/Frame_Duration);
+ }
+ }
+
+ if (FrameCount==0 && VBR_FileSize && Retrieve(Stream_Audio, 0, Audio_BitRate_Mode)==_T("CBR"))
+ {
+ size_t Size=(Mpega_Coefficient[ID][layer]*Mpega_BitRate[ID][layer][bitrate_index]*1000/Mpega_SamplingRate[ID][sampling_frequency])*Mpega_SlotSize[layer];
+ FrameCount=float64_int64s(((float64)VBR_FileSize)/Size);
+ }
+
+ if (FrameCount)
+ {
+ int16u Samples;
+ if (ID==3 && layer==3) //MPEG 1 layer 1
+ Samples=384;
+ else if ((ID==2 || ID==0) && layer==1) //MPEG 2 or 2.5 layer 3
+ Samples=576;
+ else
+ Samples=1152;
+ Fill(Stream_Audio, 0, Audio_FrameCount, FrameCount);
+ Fill(Stream_Audio, 0, Audio_SamplingCount, FrameCount*Samples);
+ }
+
File__Tags_Helper::Streams_Finish();
}
@@ -494,14 +538,14 @@ void File_Mpega::Streams_Finish()
bool File_Mpega::FileHeader_Begin()
{
//Buffer size
- if (Buffer_Size<4)
- return File_Size<4; //Must wait for more data
+ if (Buffer_Size<8)
+ return File_Size<8; //Must wait for more data
- //Detecting WAV/SWF/FLV/ELF/DPG/WM/MZ files
+ //Detecting WAV/SWF/FLV/ELF/DPG/WM/MZ/DLG files
int32u Magic4=CC4(Buffer);
int32u Magic3=Magic4>>8;
int16u Magic2=Magic4>>16;
- if (Magic4==0x52494646 || Magic3==0x465753 || Magic3==0x464C56 || Magic4==0x7F454C46 || Magic4==0x44504730 || Magic4==0x3026B275 || Magic2==0x4D5A)
+ if (Magic4==0x52494646 || Magic3==0x465753 || Magic3==0x464C56 || Magic4==0x7F454C46 || Magic4==0x44504730 || Magic4==0x3026B275 || Magic2==0x4D5A || Magic4==0x000001BA || Magic4==0x000001B3 || Magic4==0x00000100 || CC8(Buffer+Buffer_Offset)==0x444C472056312E30LL)
{
File__Tags_Helper::Reject("MPEG Audio");
return false;
@@ -540,6 +584,17 @@ bool File_Mpega::Synchronize()
if (Tag_Found_Synchro)
return true;
+ //Better detect MPEG-PS
+ if (Frame_Count==0 && CC4(Buffer+Buffer_Offset)==0x000001BA)
+ {
+ MpegPsPattern_Count++;
+ if (MpegPsPattern_Count>=2)
+ {
+ File__Tags_Helper::Reject("MPEG Audio");
+ return false;
+ }
+ }
+
Buffer_Offset++;
}
@@ -638,6 +693,8 @@ bool File_Mpega::Synchronize()
}
//Synched is OK
+ if (!Status[IsAccepted])
+ File__Tags_Helper::Accept("MPEG Audio");
return true;
}
@@ -654,10 +711,7 @@ bool File_Mpega::Synched_Test()
//Quick test of synchro
if ((CC2(Buffer+Buffer_Offset)&0xFFE0)!=0xFFE0 || (CC1(Buffer+Buffer_Offset+2)&0xF0)==0xF0 || (CC1(Buffer+Buffer_Offset+2)&0x0C)==0x0C)
- {
- Frame_Count_Consecutive=0; //Reset the frame count, we try to find x consecutive frames
Synched=false;
- }
//We continue
return true;
@@ -724,16 +778,18 @@ void File_Mpega::Data_Parse()
return;
}
- //PTS
- if (PTS!=(int64u)-1)
+ //Partial frame
+ if (Header_Size+Element_Size<(Mpega_Coefficient[ID][layer]*Mpega_BitRate[ID][layer][bitrate_index]*1000/Mpega_SamplingRate[ID][sampling_frequency]+(padding_bit?1:0))*Mpega_SlotSize[layer])
{
- Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)PTS+PTS_DTS_Offset_InThisBlock)/1000000)));
- int64u BitRate=Mpega_BitRate[ID][layer][bitrate_index]*1000;
- int64u Bits=Element_Size*8;
- float64 Frame_Duration=((float64)Bits)/BitRate;
- PTS_DTS_Offset_InThisBlock+=float64_int64s(Frame_Duration*1000000000);
+ Element_Name("Partial frame");
+ Skip_XX(Element_Size, "Data");
+ return;
}
+ //PTS
+ if (PTS!=(int64u)-1)
+ Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)(Frame_Count_InThisBlock==0?PTS:PTS_End))/1000000)));
+
//Name
Element_Info(_T("Frame ")+Ztring::ToZtring(Frame_Count));
@@ -746,12 +802,28 @@ void File_Mpega::Data_Parse()
//Counting
if (File_Offset+Buffer_Offset+Element_Size==File_Size-File_EndTagSize)
- Frame_Count_Valid=Frame_Count_Consecutive; //Finish MPEG Audio frames in case of there are less than Frame_Count_Valid frames
+ Frame_Count_Valid=Frame_Count; //Finish MPEG Audio frames in case of there are less than Frame_Count_Valid frames
Frame_Count++;
- Frame_Count_Consecutive++;
-
+ Frame_Count_InThisBlock++;
+ if (PTS!=(int64u)-1)
+ {
+ if (PTS_Begin==(int64u)-1)
+ PTS_Begin=PTS;
+ if (Frame_Count_InThisBlock<=1)
+ PTS_End=PTS;
+ int16u Samples;
+ if (ID==3 && layer==3) //MPEG 1 layer 1
+ Samples=384;
+ else if ((ID==2 || ID==0) && layer==1) //MPEG 2 or 2.5 layer 3
+ Samples=576;
+ else
+ Samples=1152;
+ float64 Frame_Duration=((float64)1)/Mpega_SamplingRate[ID][sampling_frequency]*Samples;
+ PTS_End+=float64_int64s(Frame_Duration*1000000000);
+ }
+
//LAME
- if (Encoded_Library.empty() && (Frame_Count_Consecutive<Frame_Count_Valid || File_Offset+Buffer_Offset+Element_Size==File_Size-File_EndTagSize)) //Can be elsewhere... At the start, or end frame
+ if (Encoded_Library.empty() && (Frame_Count<Frame_Count_Valid || File_Offset+Buffer_Offset+Element_Size==File_Size-File_EndTagSize)) //Can be elsewhere... At the start, or end frame
Header_Encoders();
//Filling
@@ -760,6 +832,12 @@ void File_Mpega::Data_Parse()
Extension_Count[mode_extension]++;
Emphasis_Count[emphasis]++;
+ if (Status[IsFilled])
+ {
+ Skip_XX(Element_Size, "Data");
+ return;
+ }
+
//Parsing
int16u main_data_end;
if (protection_bit)
@@ -914,16 +992,17 @@ void File_Mpega::Data_Parse()
//Filling
LastSync_Offset=File_Offset+Buffer_Offset+Element_Size;
if (IsSub && BitRate_Count.size()>1 && !Encoded_Library.empty())
- Frame_Count_Valid=Frame_Count_Consecutive;
- if (!Status[IsAccepted] && Frame_Count_Consecutive>=Frame_Count_Valid/4)
- File__Tags_Helper::Accept("MPEG Audio");
- if (!Status[IsFilled] && Frame_Count_Consecutive>=Frame_Count_Valid)
+ Frame_Count_Valid=Frame_Count;
+ if (!Status[IsFilled] && Frame_Count>=Frame_Count_Valid)
{
Fill("MPEG Audio");
//Jumping
- File__Tags_Helper::GoToFromEnd(16*1024, "MPEG-A");
- LastSync_Offset=(int64u)-1;
+ if (!IsSub && MediaInfoLib::Config.ParseSpeed_Get()<1.0)
+ {
+ File__Tags_Helper::GoToFromEnd(16*1024, "MPEG-A");
+ LastSync_Offset=(int64u)-1;
+ }
}
//Detect Id3v1 tags inside a frame
diff --git a/src/thirdparty/MediaInfo/Audio/File_Mpega.h b/src/thirdparty/MediaInfo/Audio/File_Mpega.h
index c2327ea28..31e129759 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Mpega.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Mpega.h
@@ -41,6 +41,7 @@ public :
//In
size_t Frame_Count_Valid;
bool FrameIsAlwaysComplete;
+ bool CalculateDelay;
//Constructor/Destructor
File_Mpega();
@@ -83,8 +84,6 @@ private :
size_t Channels_Count[4]; //Stereo, Join Stereo, Dual mono, mono
size_t Extension_Count[4]; //No, IS, MS, IS+MS
size_t Emphasis_Count[4]; //No, 50/15ms, Reserved, CCITT
- size_t Frame_Count;
- size_t Frame_Count_Consecutive;
size_t Scfsi; //Total
size_t Scalefac; //Total
size_t Reservoir; //Total
@@ -105,6 +104,7 @@ private :
bool padding_bit;
bool copyright;
bool original_home;
+ size_t MpegPsPattern_Count;
//Helpers
bool Element_Name_IsOK();
diff --git a/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp b/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp
index ec02b75af..4e19adf22 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp
@@ -121,9 +121,6 @@ File_Wvpk::File_Wvpk()
FromMKV=false;
FromMKV_CodecPrivateParsed=false;
- //Temp - Global
- Frame_Count=0;
-
//Temp - Technical info
total_samples_FirstFrame=(int32u)-1;
block_index_FirstFrame=0;
diff --git a/src/thirdparty/MediaInfo/Audio/File_Wvpk.h b/src/thirdparty/MediaInfo/Audio/File_Wvpk.h
index ce9ce3952..94dd662bf 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Wvpk.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Wvpk.h
@@ -72,9 +72,6 @@ private :
void id_0D();
void id_25();
- //Temp - Global
- size_t Frame_Count;
-
//Temp - Technical info
int32u total_samples_FirstFrame;
int32u block_index_FirstFrame;
diff --git a/src/thirdparty/MediaInfo/File__Analyse_Automatic.h b/src/thirdparty/MediaInfo/File__Analyse_Automatic.h
index 55484e2fc..e7681e1fd 100644
--- a/src/thirdparty/MediaInfo/File__Analyse_Automatic.h
+++ b/src/thirdparty/MediaInfo/File__Analyse_Automatic.h
@@ -75,6 +75,28 @@ enum generic
Generic_Resolution_String,
Generic_BitDepth,
Generic_BitDepth_String,
+ Generic_Delay,
+ Generic_Delay_String,
+ Generic_Delay_String1,
+ Generic_Delay_String2,
+ Generic_Delay_String3,
+ Generic_Delay_String4,
+ Generic_Delay_Settings,
+ Generic_Delay_Source,
+ Generic_Delay_Original,
+ Generic_Delay_Original_String,
+ Generic_Delay_Original_String1,
+ Generic_Delay_Original_String2,
+ Generic_Delay_Original_String3,
+ Generic_Delay_Original_String4,
+ Generic_Delay_Original_Settings,
+ Generic_Delay_Original_Source,
+ Generic_Video_Delay,
+ Generic_Video_Delay_String,
+ Generic_Video_Delay_String1,
+ Generic_Video_Delay_String2,
+ Generic_Video_Delay_String3,
+ Generic_Video_Delay_String4,
Generic_StreamSize,
Generic_StreamSize_String,
Generic_StreamSize_String1,
@@ -399,6 +421,7 @@ enum video
Video_Format_Settings_FrameMode,
Video_Format_Settings_GOP,
Video_Format_Settings_FrameStructures,
+ Video_Format_Settings_Wrapping,
Video_InternetMediaType,
Video_MuxingMode,
Video_CodecID,
@@ -461,6 +484,8 @@ enum video
Video_DisplayAspectRatio_String,
Video_DisplayAspectRatio_Original,
Video_DisplayAspectRatio_Original_String,
+ Video_ActiveFormatDescription,
+ Video_ActiveFormatDescription_String,
Video_Rotation,
Video_Rotation_String,
Video_FrameRate_Mode,
@@ -500,6 +525,7 @@ enum video
Video_Delay_String3,
Video_Delay_String4,
Video_Delay_Settings,
+ Video_Delay_Source,
Video_Delay_Original,
Video_Delay_Original_String,
Video_Delay_Original_String1,
@@ -507,6 +533,7 @@ enum video
Video_Delay_Original_String3,
Video_Delay_Original_String4,
Video_Delay_Original_Settings,
+ Video_Delay_Original_Source,
Video_StreamSize,
Video_StreamSize_String,
Video_StreamSize_String1,
@@ -575,6 +602,7 @@ enum audio
Audio_Format_Settings_Sign,
Audio_Format_Settings_Law,
Audio_Format_Settings_ITU,
+ Audio_Format_Settings_Wrapping,
Audio_InternetMediaType,
Audio_MuxingMode,
Audio_MuxingMode_MoreInfo,
@@ -632,22 +660,29 @@ enum audio
Audio_Delay_String1,
Audio_Delay_String2,
Audio_Delay_String3,
+ Audio_Delay_String4,
+ Audio_Delay_Settings,
+ Audio_Delay_Source,
Audio_Delay_Original,
Audio_Delay_Original_String,
Audio_Delay_Original_String1,
Audio_Delay_Original_String2,
Audio_Delay_Original_String3,
+ Audio_Delay_Original_String4,
Audio_Delay_Original_Settings,
+ Audio_Delay_Original_Source,
Audio_Video_Delay,
Audio_Video_Delay_String,
Audio_Video_Delay_String1,
Audio_Video_Delay_String2,
Audio_Video_Delay_String3,
+ Audio_Video_Delay_String4,
Audio_Video0_Delay,
Audio_Video0_Delay_String,
Audio_Video0_Delay_String1,
Audio_Video0_Delay_String2,
Audio_Video0_Delay_String3,
+ Audio_Video0_Delay_String4,
Audio_ReplayGain_Gain,
Audio_ReplayGain_Gain_String,
Audio_ReplayGain_Peak,
@@ -708,6 +743,7 @@ enum text
Text_Format_Version,
Text_Format_Profile,
Text_Format_Settings,
+ Text_Format_Settings_Wrapping,
Text_InternetMediaType,
Text_MuxingMode,
Text_MuxingMode_MoreInfo,
@@ -765,22 +801,29 @@ enum text
Text_Delay_String1,
Text_Delay_String2,
Text_Delay_String3,
+ Text_Delay_String4,
+ Text_Delay_Settings,
+ Text_Delay_Source,
Text_Delay_Original,
Text_Delay_Original_String,
Text_Delay_Original_String1,
Text_Delay_Original_String2,
Text_Delay_Original_String3,
+ Text_Delay_Original_String4,
Text_Delay_Original_Settings,
+ Text_Delay_Original_Source,
Text_Video_Delay,
Text_Video_Delay_String,
Text_Video_Delay_String1,
Text_Video_Delay_String2,
Text_Video_Delay_String3,
+ Text_Video_Delay_String4,
Text_Video0_Delay,
Text_Video0_Delay_String,
Text_Video0_Delay_String1,
Text_Video0_Delay_String2,
Text_Video0_Delay_String3,
+ Text_Video0_Delay_String4,
Text_StreamSize,
Text_StreamSize_String,
Text_StreamSize_String1,
@@ -861,6 +904,7 @@ enum image
Image_Format_Version,
Image_Format_Profile,
Image_Format_Settings,
+ Image_Format_Settings_Wrapping,
Image_InternetMediaType,
Image_CodecID,
Image_CodecID_Info,
@@ -952,6 +996,9 @@ enum menu
Menu_Delay_String1,
Menu_Delay_String2,
Menu_Delay_String3,
+ Menu_Delay_String4,
+ Menu_Delay_Settings,
+ Menu_Delay_Source,
Menu_List_StreamKind,
Menu_List_StreamPos,
Menu_List,
diff --git a/src/thirdparty/MediaInfo/File__Analyze.cpp b/src/thirdparty/MediaInfo/File__Analyze.cpp
index 56ba7a278..5fd80ad7d 100644
--- a/src/thirdparty/MediaInfo/File__Analyze.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze.cpp
@@ -59,13 +59,18 @@ File__Analyze::File__Analyze ()
StreamIDs_Size=1;
StreamIDs_Width[0]=(int8u)-1;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=1; //Frame
+ #endif //MEDIAINFO_DEMUX
PTS_DTS_Needed=false;
- PTS_DTS_Offset_InThisBlock=0;
PCR=(int64u)-1;
PTS=(int64u)-1;
DTS=(int64u)-1;
+ PTS_Begin=(int64u)-1;
+ PTS_End=(int64u)-1;
//Out
+ Frame_Count=0;
Frame_Count_InThisBlock=0;
//Configuration
@@ -137,9 +142,7 @@ File__Analyze::File__Analyze ()
ShouldContinueParsing=false;
//Events data
- #if MEDIAINFO_EVENTS
- MpegPs_PES_FirstByte_IsAvailable=false;
- #endif //MEDIAINFO_EVENTS
+ PES_FirstByte_IsAvailable=false;
}
//---------------------------------------------------------------------------
@@ -226,7 +229,8 @@ void File__Analyze::Open_Buffer_Init (File__Analyze* Sub, int64u File_Size_)
//---------------------------------------------------------------------------
void File__Analyze::Open_Buffer_Continue (const int8u* ToAdd, size_t ToAdd_Size)
{
- Frame_Count_InThisBlock=0; //Out
+ if (!PES_FirstByte_IsAvailable || (PES_FirstByte_IsAvailable && PES_FirstByte_Value))
+ Frame_Count_InThisBlock=0;
//Integrity
if (Status[IsFinished])
@@ -292,7 +296,11 @@ void File__Analyze::Open_Buffer_Continue (const int8u* ToAdd, size_t ToAdd_Size)
Buffer_TotalBytes+=Buffer_Offset;
//Should parse again?
- if ((File_GoTo==File_Size && File_Size!=(int64u)-1) || File_Offset+Buffer_Offset>=File_Size)
+ if (((File_GoTo==File_Size && File_Size!=(int64u)-1) || File_Offset+Buffer_Offset>=File_Size)
+ #if MEDIAINFO_DEMUX
+ && !Config->Demux_EventWasSent
+ #endif //MEDIAINFO_DEMUX
+ )
{
if (!BookMark_Code.empty())
BookMark_Get();
@@ -335,7 +343,11 @@ void File__Analyze::Open_Buffer_Continue (const int8u* ToAdd, size_t ToAdd_Size)
//Buffer handling
if (Buffer_Offset!=Buffer_Size) //all is not used
{
- if (File_Offset+Buffer_Size>=File_Size) //No more data will come
+ if (File_Offset+Buffer_Size>=File_Size //No more data will come
+ #if MEDIAINFO_DEMUX
+ && !Config->Demux_EventWasSent
+ #endif //MEDIAINFO_DEMUX
+ )
{
ForceFinish();
return;
@@ -402,6 +414,8 @@ void File__Analyze::Open_Buffer_Continue (File__Analyze* Sub, const int8u* ToAdd
Sub->File_Offset-=Sub->Buffer_Size;
//Parsing
+ Sub->PES_FirstByte_IsAvailable=PES_FirstByte_IsAvailable;
+ Sub->PES_FirstByte_Value=PES_FirstByte_Value;
Sub->Open_Buffer_Continue(ToAdd, ToAdd_Size);
#if MEDIAINFO_TRACE
@@ -436,7 +450,6 @@ void File__Analyze::Open_Buffer_Continue_Loop ()
}
//Parsing specific
- Frame_Count_InThisBlock=0; //Out
Element_Offset=0;
Element_Size=Buffer_Size;
Element[Element_Level].WaitForMoreData=false;
@@ -500,6 +513,7 @@ void File__Analyze::Open_Buffer_Unsynch ()
}
File_GoTo=(int64u)-1;
+ PTS_End=(int64u)-1;
}
//---------------------------------------------------------------------------
@@ -727,7 +741,7 @@ bool File__Analyze::Synchro_Manage()
{
if (Status[IsFinished])
Finish(); //Finish
- if (!IsSub && File_Offset_FirstSynched==(int64u)-1 && Buffer_TotalBytes+Buffer_Offset>=Buffer_TotalBytes_FirstSynched_Max)
+ if (!IsSub && (File_Offset_FirstSynched==(int64u)-1 || Frame_Count==0) && Buffer_TotalBytes+Buffer_Offset>=Buffer_TotalBytes_FirstSynched_Max)
Reject();
return false; //Wait for more data
}
@@ -1010,6 +1024,11 @@ bool File__Analyze::Data_Manage()
Element_Size=0;
Element_Offset=0;
+ #if MEDIAINFO_DEMUX
+ if (Config->Demux_EventWasSent)
+ return false;
+ #endif //MEDIAINFO_DEMUX
+
#if MEDIAINFO_TRACE
if (Element_Level>0)
Element[Element_Level-1].ToShow.NoShow=Element[Element_Level].ToShow.NoShow; //If data must not be shown, we hide the header too
@@ -1124,8 +1143,10 @@ void File__Analyze::Data_GoTo (int64u GoTo, const char* ParserName)
}
Info(Ztring(ParserName)+_T(", jumping to offset ")+Ztring::ToZtring(GoTo, 16));
+ Open_Buffer_Unsynch();
if (!IsSub)
File_GoTo=GoTo;
+ Element_Level--;
}
#endif //MEDIAINFO_TRACE
@@ -1673,7 +1694,7 @@ void File__Analyze::Trusted_IsNot ()
Element[Element_Level].UnTrusted=true;
Synched=false;
- if (Trusted>0)
+ if (!Status[IsFilled] && Trusted>0)
Trusted--;
}
@@ -1718,6 +1739,11 @@ void File__Analyze::Accept (const char* ParserName_Char)
if (!ParserName.empty())
strncpy(Event.Name, ParserName.To_Local().c_str(), 15);
Config->Event_Send((const int8u*)&Event, sizeof(MediaInfo_Event_General_Parser_Selected_0));
+
+ #if MEDIAINFO_DEMUX
+ if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet())
+ Config->Demux_EventWasSent=true;
+ #endif //MEDIAINFO_DEMUX
}
#endif //MEDIAINFO_EVENTS
}
@@ -1738,6 +1764,11 @@ void File__Analyze::Accept ()
Event.EventCode=MediaInfo_EventCode_Create(MediaInfo_Parser_None, MediaInfo_Event_General_Parser_Selected, 0);
memset(Event.Name, 0, 16);
Config->Event_Send((const int8u*)&Event, sizeof(MediaInfo_Event_General_Parser_Selected_0));
+
+ #if MEDIAINFO_DEMUX
+ if (Config->NextPacket_Get() && Config->Event_CallBackFunction_IsSet())
+ Config->Demux_EventWasSent=true;
+ #endif //MEDIAINFO_DEMUX
}
#endif //MEDIAINFO_EVENTS
}
@@ -2270,7 +2301,7 @@ void File__Analyze::Details_Clear()
#if MEDIAINFO_DEMUX
void File__Analyze::Demux (const int8u* Buffer, size_t Buffer_Size, contenttype Content_Type)
{
- if (!MediaInfoLib::Config.Demux_Get())
+ if (!(MediaInfoLib::Config.Demux_Get()&Demux_Level))
return;
#if MEDIAINFO_EVENTS
@@ -2282,6 +2313,9 @@ void File__Analyze::Demux (const int8u* Buffer, size_t Buffer_Size, contenttype
else
Event.EventCode=MediaInfo_EventCode_Create(0x00, MediaInfo_Event_Global_Demux, 0);
Event.Stream_Offset=File_Offset+Buffer_Offset;
+ Event.PCR=PCR;
+ Event.DTS=(DTS==(int64u)-1?PTS:DTS);
+ Event.PTS=PTS;
Event.StreamIDs_Size=StreamIDs_Size;
Event.StreamIDs=(MediaInfo_int64u*)StreamIDs;
Event.StreamIDs_Width=(MediaInfo_int8u*)StreamIDs_Width;
@@ -2290,6 +2324,8 @@ void File__Analyze::Demux (const int8u* Buffer, size_t Buffer_Size, contenttype
Event.Content_Size=Buffer_Size;
Event.Content=Buffer;
Config->Event_Send((const int8u*)&Event, sizeof(MediaInfo_Event_Global_Demux_0), IsSub?File_Name_WithoutDemux:File_Name);
+ if (Config->NextPacket_Get())
+ Config->Demux_EventWasSent=true;
#endif //MEDIAINFO_EVENTS
}
#endif //MEDIAINFO_DEMUX
diff --git a/src/thirdparty/MediaInfo/File__Analyze.h b/src/thirdparty/MediaInfo/File__Analyze.h
index 74e682fab..c56fbc333 100644
--- a/src/thirdparty/MediaInfo/File__Analyze.h
+++ b/src/thirdparty/MediaInfo/File__Analyze.h
@@ -85,6 +85,9 @@ public :
int8u StreamIDs_Width[16];
int8u ParserIDs[16];
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ int8u Demux_Level; //bit 0=frame, bit 1=container, bit 2=elementary (eg MPEG-TS), default with frame set
+ #endif //MEDIAINFO_DEMUX
Ztring File_Name_WithoutDemux;
bool PTS_DTS_Needed;
int64u PCR; //In nanoseconds
@@ -92,8 +95,11 @@ public :
int64u DTS; //In nanoseconds
//Out
- int64u PTS_DTS_Offset_InThisBlock; //In nanoseconds
+ int64u PTS_Begin; //In nanoseconds
+ int64u PTS_End; //In nanoseconds
+ size_t Frame_Count;
size_t Frame_Count_InThisBlock;
+ bool Synched; //Data is synched
protected :
//***************************************************************************
@@ -857,7 +863,6 @@ protected :
//Synchro
bool MustParseTheHeaderFile; //There is an header part, must parse it
- bool Synched; //Data is synched
size_t Trusted;
size_t Trusted_Multiplier;
@@ -1004,10 +1009,8 @@ public :
#endif //MEDIAINFO_DEMUX
//Events data
- #if MEDIAINFO_EVENTS
- bool MpegPs_PES_FirstByte_IsAvailable;
- bool MpegPs_PES_FirstByte_Value;
- #endif //MEDIAINFO_EVENTS
+ bool PES_FirstByte_IsAvailable;
+ bool PES_FirstByte_Value;
};
//Helpers
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp b/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp
index 1d26fdf0b..99a5dc254 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp
@@ -1599,6 +1599,13 @@ void File__Analyze::Peek_S2(size_t Bits, int16u &Info)
}
//---------------------------------------------------------------------------
+void File__Analyze::Peek_S3(size_t Bits, int32u &Info)
+{
+ INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
+ Info=BS->Peek4(Bits);
+}
+
+//---------------------------------------------------------------------------
void File__Analyze::Peek_S4(size_t Bits, int32u &Info)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
@@ -1638,7 +1645,20 @@ void File__Analyze::Skip_BS(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
if (Config_DetailsLevel>0)
- Param(Name, BS->Get(Bits));
+ {
+ if (Bits<=32) //TODO: in BitStream.h, handle >32 bit skips
+ Param(Name, BS->Get(Bits));
+ else
+ {
+ Param(Name, "(Data)");
+ while(Bits>32)
+ {
+ BS->Skip(32);
+ Bits-=32;
+ }
+ BS->Skip(Bits);
+ }
+ }
else
BS->Skip(Bits);
}
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp b/src/thirdparty/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp
index 0aef81bed..39af71502 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Buffer_MinimizeSize.cpp
@@ -1180,6 +1180,13 @@ void File__Analyze::Peek_S2(size_t Bits, int16u &Info)
}
//---------------------------------------------------------------------------
+void File__Analyze::Peek_S3(size_t Bits, int32u &Info)
+{
+ INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
+ Info=BS->Peek4(Bits);
+}
+
+//---------------------------------------------------------------------------
void File__Analyze::Peek_S4(size_t Bits, int32u &Info)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
diff --git a/src/thirdparty/MediaInfo/File__Analyze_MinimizeSize.h b/src/thirdparty/MediaInfo/File__Analyze_MinimizeSize.h
index 04570dab2..2109e062f 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_MinimizeSize.h
+++ b/src/thirdparty/MediaInfo/File__Analyze_MinimizeSize.h
@@ -40,6 +40,9 @@ public :
int8u StreamIDs_Width[16];
int8u ParserIDs[16];
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ int8u Demux_Level; //bit 0=frame, bit 1=container, bit 2=elementary (eg MPEG-TS), default with frame set
+ #endif //MEDIAINFO_DEMUX
Ztring File_Name_WithoutDemux;
bool PTS_DTS_Needed;
int64u PCR; //In nanoseconds
@@ -47,8 +50,11 @@ public :
int64u DTS; //In nanoseconds
//Out
- int64u PTS_DTS_Offset_InThisBlock; //In nanoseconds
+ int64u PTS_Begin; //In nanoseconds
+ int64u PTS_End; //In nanoseconds
+ size_t Frame_Count;
size_t Frame_Count_InThisBlock;
+ bool Synched; //Data is synched
protected :
//***************************************************************************
@@ -906,7 +912,6 @@ protected :
//Synchro
bool MustParseTheHeaderFile; //There is an header part, must parse it
- bool Synched; //Data is synched
size_t Trusted;
size_t Trusted_Multiplier;
@@ -1037,10 +1042,8 @@ public :
#endif //MEDIAINFO_DEMUX
//Events data
- #if MEDIAINFO_EVENTS
- bool MpegPs_PES_FirstByte_IsAvailable;
- bool MpegPs_PES_FirstByte_Value;
- #endif //MEDIAINFO_EVENTS
+ bool PES_FirstByte_IsAvailable;
+ bool PES_FirstByte_Value;
};
//Helpers
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp b/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp
index ee9d9e581..c5a204dd0 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp
@@ -154,7 +154,7 @@ size_t File__Analyze::Stream_Prepare (stream_t KindOfStream)
//---------------------------------------------------------------------------
void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Parameter, const Ztring &Value, bool Replace)
{
- //Integrity
+ //Integrity
if (!Status[IsAccepted] || StreamKind>Stream_Max || Parameter==(size_t)-1)
return;
@@ -466,7 +466,7 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete
//ID
if (Retrieve(StreamKind, StreamPos, Parameter, Info_Name)==_T("ID"))
- Fill(StreamKind, StreamPos, General_ID_String, Value, true);
+ Fill(StreamKind, StreamPos, General_ID_String, Value, Replace);
//Format
if (Retrieve(StreamKind, StreamPos, Parameter, Info_Name)==_T("Format"))
@@ -1173,7 +1173,7 @@ size_t File__Analyze::Merge(File__Analyze &ToAdd, stream_t StreamKind, size_t St
Stream_Prepare(StreamKind);
//Specific stuff
- Ztring Width_Temp, Height_Temp, PixelAspectRatio_Temp, DisplayAspectRatio_Temp, FrameRate_Temp, FrameRate_Mode_Temp;
+ Ztring Width_Temp, Height_Temp, PixelAspectRatio_Temp, DisplayAspectRatio_Temp, FrameRate_Temp, FrameRate_Mode_Temp, Delay_Temp, Delay_Source_Temp, Delay_Settings_Temp;
if (StreamKind==Stream_Video)
{
Width_Temp=Retrieve(Stream_Video, StreamPos_Last, Video_Width);
@@ -1183,6 +1183,24 @@ size_t File__Analyze::Merge(File__Analyze &ToAdd, stream_t StreamKind, size_t St
FrameRate_Temp=Retrieve(Stream_Video, StreamPos_Last, Video_FrameRate); //We want to keep the FrameRate of AVI 120 fps
FrameRate_Mode_Temp=Retrieve(Stream_Video, StreamPos_Last, Video_FrameRate_Mode); //We want to keep the FrameRate_Mode of AVI 120 fps
}
+ if (ToAdd.Retrieve(StreamKind, StreamPos_From, Fill_Parameter(StreamKind, Generic_Delay_Source))==_T("Container"))
+ {
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Original", Retrieve(StreamKind_Last, StreamPos_Last, "Delay"), true);
+ Clear(StreamKind_Last, StreamPos_Last, "Delay");
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Original_Source", Retrieve(StreamKind_Last, StreamPos_Last, "Delay_Source"), true);
+ Clear(StreamKind_Last, StreamPos_Last, "Delay_Source");
+ if (!ToAdd.Retrieve(StreamKind_Last, StreamPos_Last, "Format").empty()) //Exception: MPEG-4 TimeCode, settings are in the MPEG-4 header
+ {
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Original_Settings", Retrieve(StreamKind_Last, StreamPos_Last, "Delay_Settings"), true);
+ Clear(StreamKind_Last, StreamPos_Last, "Delay_Settings");
+ }
+ }
+ else
+ {
+ Delay_Temp=Retrieve(StreamKind, StreamPos_Last, "Delay"); //We want to keep the Delay from the stream
+ Delay_Settings_Temp=Retrieve(StreamKind, StreamPos_Last, "Delay_Settings"); //We want to keep the Delay_Settings from the stream
+ Delay_Source_Temp=Retrieve(StreamKind, StreamPos_Last, "Delay_Source"); //We want to keep the Delay_Source from the stream
+ }
//Merging
size_t Count=0;
@@ -1248,6 +1266,15 @@ size_t File__Analyze::Merge(File__Analyze &ToAdd, stream_t StreamKind, size_t St
Fill(Stream_Video, StreamPos_Last, Video_FrameRate_Mode, FrameRate_Mode_Temp, true);
}
}
+ if (!Delay_Source_Temp.empty() && Delay_Source_Temp!=Retrieve(StreamKind_Last, StreamPos_Last, "Delay_Source"))
+ {
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Original", Retrieve(StreamKind_Last, StreamPos_Last, "Delay"), true);
+ Fill(StreamKind_Last, StreamPos_Last, "Delay", Delay_Temp, true);
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Original_Settings", Retrieve(StreamKind_Last, StreamPos_Last, "Delay_Settings"), true);
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Settings", Delay_Settings_Temp, true);
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Original_Source", Retrieve(StreamKind_Last, StreamPos_Last, "Delay_Source"), true);
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_Source", Delay_Source_Temp, true);
+ }
Fill(StreamKind, StreamPos_To, (size_t)General_Count, Count_Get(StreamKind, StreamPos_To), 10, true);
return 1;
@@ -1410,6 +1437,8 @@ void File__Analyze::Audio_BitRate_Rounding(size_t Pos, audio Parameter)
if (BitRate>=1128960 && BitRate<=1175040) BitRate=1152000;
if (BitRate>=1382976 && BitRate<=1439424) BitRate=1411200;
if (BitRate>=1505280 && BitRate<=1566720) BitRate=1536000;
+ if (BitRate>=4515840 && BitRate<=4700160) BitRate=4608000;
+ if (BitRate>=6021120 && BitRate<=6266880) BitRate=6144000;
}
else if (MediaInfoLib::Config.Codec_Get(Codec, InfoCodec_Name, Stream_Audio).find(_T("ADPCM"))==0
@@ -1880,6 +1909,22 @@ size_t File__Analyze::Fill_Parameter(stream_t StreamKind, generic StreamPos)
case Generic_Resolution_String : return Video_Resolution_String;
case Generic_BitDepth : return Video_BitDepth;
case Generic_BitDepth_String : return Video_BitDepth_String;
+ case Generic_Delay : return Video_Delay;
+ case Generic_Delay_String : return Video_Delay_String;
+ case Generic_Delay_String1 : return Video_Delay_String1;
+ case Generic_Delay_String2 : return Video_Delay_String2;
+ case Generic_Delay_String3 : return Video_Delay_String3;
+ case Generic_Delay_String4 : return Video_Delay_String4;
+ case Generic_Delay_Settings : return Video_Delay_Settings;
+ case Generic_Delay_Source : return Video_Delay_Source;
+ case Generic_Delay_Original : return Video_Delay_Original;
+ case Generic_Delay_Original_String : return Video_Delay_Original_String;
+ case Generic_Delay_Original_String1 : return Video_Delay_Original_String1;
+ case Generic_Delay_Original_String2 : return Video_Delay_Original_String2;
+ case Generic_Delay_Original_String3 : return Video_Delay_Original_String3;
+ case Generic_Delay_Original_String4 : return Video_Delay_Original_String4;
+ case Generic_Delay_Original_Settings : return Video_Delay_Original_Settings;
+ case Generic_Delay_Original_Source : return Video_Delay_Original_Source;
case Generic_StreamSize : return Video_StreamSize;
case Generic_StreamSize_String : return Video_StreamSize_String;
case Generic_StreamSize_String1 : return Video_StreamSize_String1;
@@ -1931,7 +1976,28 @@ size_t File__Analyze::Fill_Parameter(stream_t StreamKind, generic StreamPos)
case Generic_Resolution_String : return Audio_Resolution_String;
case Generic_BitDepth : return Audio_BitDepth;
case Generic_BitDepth_String : return Audio_BitDepth_String;
- case Generic_StreamSize : return Audio_StreamSize;
+ case Generic_Delay : return Audio_Delay;
+ case Generic_Delay_String : return Audio_Delay_String;
+ case Generic_Delay_String1 : return Audio_Delay_String1;
+ case Generic_Delay_String2 : return Audio_Delay_String2;
+ case Generic_Delay_String3 : return Audio_Delay_String3;
+ case Generic_Delay_String4 : return Audio_Delay_String4;
+ case Generic_Delay_Settings : return Audio_Delay_Settings;
+ case Generic_Delay_Source : return Audio_Delay_Source;
+ case Generic_Delay_Original : return Audio_Delay_Original;
+ case Generic_Delay_Original_String : return Audio_Delay_Original_String;
+ case Generic_Delay_Original_String1 : return Audio_Delay_Original_String1;
+ case Generic_Delay_Original_String2 : return Audio_Delay_Original_String2;
+ case Generic_Delay_Original_String3 : return Audio_Delay_Original_String3;
+ case Generic_Delay_Original_String4 : return Audio_Delay_Original_String4;
+ case Generic_Delay_Original_Settings : return Audio_Delay_Original_Settings;
+ case Generic_Delay_Original_Source : return Audio_Delay_Original_Source;
+ case Generic_Video_Delay : return Audio_Video_Delay;
+ case Generic_Video_Delay_String : return Audio_Video_Delay_String;
+ case Generic_Video_Delay_String1 : return Audio_Video_Delay_String1;
+ case Generic_Video_Delay_String2 : return Audio_Video_Delay_String2;
+ case Generic_Video_Delay_String3 : return Audio_Video_Delay_String3;
+ case Generic_Video_Delay_String4 : return Audio_Video_Delay_String4; case Generic_StreamSize : return Audio_StreamSize;
case Generic_StreamSize_String : return Audio_StreamSize_String;
case Generic_StreamSize_String1 : return Audio_StreamSize_String1;
case Generic_StreamSize_String2 : return Audio_StreamSize_String2;
@@ -1984,7 +2050,28 @@ size_t File__Analyze::Fill_Parameter(stream_t StreamKind, generic StreamPos)
case Generic_Resolution_String : return Text_Resolution_String;
case Generic_BitDepth : return Text_BitDepth;
case Generic_BitDepth_String : return Text_BitDepth_String;
- case Generic_StreamSize : return Text_StreamSize;
+ case Generic_Delay : return Text_Delay;
+ case Generic_Delay_String : return Text_Delay_String;
+ case Generic_Delay_String1 : return Text_Delay_String1;
+ case Generic_Delay_String2 : return Text_Delay_String2;
+ case Generic_Delay_String3 : return Text_Delay_String3;
+ case Generic_Delay_String4 : return Text_Delay_String4;
+ case Generic_Delay_Settings : return Text_Delay_Settings;
+ case Generic_Delay_Source : return Text_Delay_Source;
+ case Generic_Delay_Original : return Text_Delay_Original;
+ case Generic_Delay_Original_String : return Text_Delay_Original_String;
+ case Generic_Delay_Original_String1 : return Text_Delay_Original_String1;
+ case Generic_Delay_Original_String2 : return Text_Delay_Original_String2;
+ case Generic_Delay_Original_String3 : return Text_Delay_Original_String3;
+ case Generic_Delay_Original_String4 : return Text_Delay_Original_String4;
+ case Generic_Delay_Original_Settings : return Text_Delay_Original_Settings;
+ case Generic_Delay_Original_Source : return Text_Delay_Original_Source;
+ case Generic_Video_Delay : return Text_Video_Delay;
+ case Generic_Video_Delay_String : return Text_Video_Delay_String;
+ case Generic_Video_Delay_String1 : return Text_Video_Delay_String1;
+ case Generic_Video_Delay_String2 : return Text_Video_Delay_String2;
+ case Generic_Video_Delay_String3 : return Text_Video_Delay_String3;
+ case Generic_Video_Delay_String4 : return Text_Video_Delay_String4; case Generic_StreamSize : return Text_StreamSize;
case Generic_StreamSize_String : return Text_StreamSize_String;
case Generic_StreamSize_String1 : return Text_StreamSize_String1;
case Generic_StreamSize_String2 : return Text_StreamSize_String2;
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp b/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp
index 752bb8363..5291c9c2b 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp
@@ -296,7 +296,7 @@ void File__Analyze::Streams_Finish_InterStreams()
Fill(Stream_General, 0, General_OverallBitRate, Retrieve(Stream_General, 0, General_FileSize).To_int64u()*8*1000/Retrieve(Stream_General, 0, General_Duration).To_int64u());
//Duration if OverallBitRate
- if (Retrieve(Stream_General, 0, General_Duration).empty() && Retrieve(Stream_General, 0, General_OverallBitRate).To_int64u()!=0 && Retrieve(Stream_General, 0, General_OverallBitRate).find(_T(" / "))==std::string::npos)
+ if (Retrieve(Stream_General, 0, General_Duration).empty() && Retrieve(Stream_General, 0, General_OverallBitRate).To_int64u()!=0)
Fill(Stream_General, 0, General_Duration, Retrieve(Stream_General, 0, General_FileSize).To_float64()*8*1000/Retrieve(Stream_General, 0, General_OverallBitRate).To_float64(), 0);
//Video bitrate can be the nominal one if <4s (bitrate estimation is not enough precise
diff --git a/src/thirdparty/MediaInfo/MediaInfo.cpp b/src/thirdparty/MediaInfo/MediaInfo.cpp
index ef42e91d3..d9ff4ed2e 100644
--- a/src/thirdparty/MediaInfo/MediaInfo.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo.cpp
@@ -121,6 +121,12 @@ size_t MediaInfo::Open_Buffer_Finalize ()
}
//---------------------------------------------------------------------------
+size_t MediaInfo::Open_NextPacket ()
+{
+ return ((MediaInfo_Internal*)Internal)->Open_NextPacket().to_ulong();;
+}
+
+//---------------------------------------------------------------------------
size_t MediaInfo::Save()
{
return 0; //Not yet implemented
diff --git a/src/thirdparty/MediaInfo/MediaInfo.h b/src/thirdparty/MediaInfo/MediaInfo.h
index 597e1b4c6..45e3ff8b5 100644
--- a/src/thirdparty/MediaInfo/MediaInfo.h
+++ b/src/thirdparty/MediaInfo/MediaInfo.h
@@ -111,6 +111,11 @@ public :
/// Open a stream and collect information about it (technical information and tags)
/// @brief Open a stream (Finalize)
size_t Open_Buffer_Finalize ();
+ /// If Open() is used in "PerPacket" mode, parse only one packet and return
+ /// @brief Read one packet (if "PerPacket" mode is set)
+ /// @return a bitfield \n
+ /// bit 0: A packet was read
+ size_t Open_NextPacket ();
/// (NOT IMPLEMENTED YET) Save the file opened before with Open() (modifications of tags)
/// @brief (NOT IMPLEMENTED YET) Save the file
/// @retval 0 failed
diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcproj b/src/thirdparty/MediaInfo/MediaInfoLib.vcproj
index f8d60ce11..bd593c52f 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcproj
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="MediaInfoLib"
ProjectGUID="{20E0F8D6-213C-460B-B361-9C725CB375C7}"
RootNamespace="MediaInfoLib"
@@ -23,7 +23,7 @@
Name="Debug|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
>
<Tool
@@ -43,13 +43,10 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- DisableSpecificWarnings="4060;4065;4100;4127;4244;4390"
+ DisableSpecificWarnings="4065;4244;4390"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -83,7 +80,7 @@
Name="Debug|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
>
<Tool
@@ -104,12 +101,11 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
DebugInformationFormat="3"
- DisableSpecificWarnings="4060;4065;4100;4127;4244;4390"
+ DisableSpecificWarnings="4065;4244;4267;4390"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -143,7 +139,7 @@
Name="Release|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -164,12 +160,12 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
+ Optimization="1"
+ FavorSizeOrSpeed="2"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
PreprocessorDefinitions="WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
- StringPooling="true"
- DisableSpecificWarnings="4060;4065;4100;4127;4244;4390"
+ DisableSpecificWarnings="4065;4244;4390"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -204,7 +200,7 @@
Name="Release|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -226,12 +222,13 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
+ Optimization="1"
+ FavorSizeOrSpeed="2"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
PreprocessorDefinitions="WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
EnableEnhancedInstructionSet="0"
- DisableSpecificWarnings="4060;4065;4100;4127;4244;4390"
+ DisableSpecificWarnings="4065;4244;4267;4390"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -439,6 +436,10 @@
>
</File>
<File
+ RelativePath=".\Audio\File_DolbyE.cpp"
+ >
+ </File>
+ <File
RelativePath=".\Audio\File_Dts.cpp"
>
</File>
@@ -611,6 +612,10 @@
Name="Multiple"
>
<File
+ RelativePath=".\Multiple\File_Ancillary.cpp"
+ >
+ </File>
+ <File
RelativePath=".\Multiple\File_Bdmv.cpp"
>
</File>
@@ -643,6 +648,10 @@
>
</File>
<File
+ RelativePath=".\Multiple\File_Gxf_TimeCode.cpp"
+ >
+ </File>
+ <File
RelativePath=".\Multiple\File_Ivf.cpp"
>
</File>
@@ -1077,7 +1086,7 @@
>
</File>
<File
- RelativePath=".\Audio\File_Dirac.h"
+ RelativePath=".\Audio\File_DolbyE.h"
>
</File>
<File
@@ -1201,6 +1210,10 @@
Name="Multiple"
>
<File
+ RelativePath=".\Multiple\File_Ancillary.h"
+ >
+ </File>
+ <File
RelativePath=".\Multiple\File_Bdmv.h"
>
</File>
@@ -1229,6 +1242,10 @@
>
</File>
<File
+ RelativePath=".\Multiple\File_Gxf_TimeCode.h"
+ >
+ </File>
+ <File
RelativePath=".\Multiple\File_Ivf.h"
>
</File>
diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
index 0e314265b..6eae8567a 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
@@ -26,22 +26,18 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -85,14 +81,11 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <DisableSpecificWarnings>4060;4065;4100;4127;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <DisableSpecificWarnings>4065;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
@@ -103,12 +96,11 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <DisableSpecificWarnings>4060;4065;4100;4127;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <DisableSpecificWarnings>4065;4244;4267;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<EnablePREfast>false</EnablePREfast>
</ClCompile>
<Lib>
@@ -117,13 +109,13 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
- <DisableSpecificWarnings>4060;4065;4100;4127;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <DisableSpecificWarnings>4065;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <Optimization>MinSpace</Optimization>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
@@ -135,12 +127,13 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
- <DisableSpecificWarnings>4060;4065;4100;4127;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <DisableSpecificWarnings>4065;4244;4267;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <Optimization>MinSpace</Optimization>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
@@ -188,6 +181,7 @@
<ClCompile Include="Audio\File_Amv.cpp" />
<ClCompile Include="Audio\File_Ape.cpp" />
<ClCompile Include="Audio\File_Au.cpp" />
+ <ClCompile Include="Audio\File_DolbyE.cpp" />
<ClCompile Include="Audio\File_Dts.cpp" />
<ClCompile Include="Audio\File_ExtendedModule.cpp" />
<ClCompile Include="Audio\File_Flac.cpp" />
@@ -228,6 +222,7 @@
<ClCompile Include="Image\File_Png.cpp" />
<ClCompile Include="Image\File_Rle.cpp" />
<ClCompile Include="Image\File_Tiff.cpp" />
+ <ClCompile Include="Multiple\File_Ancillary.cpp" />
<ClCompile Include="Multiple\File_Bdmv.cpp" />
<ClCompile Include="Multiple\File_Cdxa.cpp" />
<ClCompile Include="Multiple\File_Dpg.cpp" />
@@ -236,6 +231,7 @@
<ClCompile Include="Multiple\File_Dvdv.cpp" />
<ClCompile Include="Multiple\File_Flv.cpp" />
<ClCompile Include="Multiple\File_Gxf.cpp" />
+ <ClCompile Include="Multiple\File_Gxf_TimeCode.cpp" />
<ClCompile Include="Multiple\File_Ivf.cpp" />
<ClCompile Include="Multiple\File_Lxf.cpp" />
<ClCompile Include="Multiple\File_Mk.cpp" />
@@ -338,7 +334,7 @@
<ClInclude Include="Audio\File_Amv.h" />
<ClInclude Include="Audio\File_Ape.h" />
<ClInclude Include="Audio\File_Au.h" />
- <ClInclude Include="Audio\File_Dirac.h" />
+ <ClInclude Include="Audio\File_DolbyE.h" />
<ClInclude Include="Audio\File_Dts.h" />
<ClInclude Include="Audio\File_ExtendedModule.h" />
<ClInclude Include="Audio\File_Flac.h" />
@@ -367,6 +363,7 @@
<ClInclude Include="Image\File_Png.h" />
<ClInclude Include="Image\File_Rle.h" />
<ClInclude Include="Image\File_Tiff.h" />
+ <ClInclude Include="Multiple\File_Ancillary.h" />
<ClInclude Include="Multiple\File_Bdmv.h" />
<ClInclude Include="Multiple\File_Cdxa.h" />
<ClInclude Include="Multiple\File_Dpg.h" />
@@ -374,6 +371,7 @@
<ClInclude Include="Multiple\File_Dvdv.h" />
<ClInclude Include="Multiple\File_Flv.h" />
<ClInclude Include="Multiple\File_Gxf.h" />
+ <ClInclude Include="Multiple\File_Gxf_TimeCode.h" />
<ClInclude Include="Multiple\File_Ivf.h" />
<ClInclude Include="Multiple\File_Lxf.h" />
<ClInclude Include="Multiple\File_Mk.h" />
diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters
index e0fb7a13e..f1437c232 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj.filters
@@ -195,6 +195,9 @@
<ClCompile Include="Audio\File_Au.cpp">
<Filter>Source Files\Audio</Filter>
</ClCompile>
+ <ClCompile Include="Audio\File_DolbyE.cpp">
+ <Filter>Source Files\Audio</Filter>
+ </ClCompile>
<ClCompile Include="Audio\File_Dts.cpp">
<Filter>Source Files\Audio</Filter>
</ClCompile>
@@ -315,6 +318,9 @@
<ClCompile Include="Image\File_Tiff.cpp">
<Filter>Source Files\Image</Filter>
</ClCompile>
+ <ClCompile Include="Multiple\File_Ancillary.cpp">
+ <Filter>Source Files\Multiple</Filter>
+ </ClCompile>
<ClCompile Include="Multiple\File_Bdmv.cpp">
<Filter>Source Files\Multiple</Filter>
</ClCompile>
@@ -339,6 +345,9 @@
<ClCompile Include="Multiple\File_Gxf.cpp">
<Filter>Source Files\Multiple</Filter>
</ClCompile>
+ <ClCompile Include="Multiple\File_Gxf_TimeCode.cpp">
+ <Filter>Source Files\Multiple</Filter>
+ </ClCompile>
<ClCompile Include="Multiple\File_Ivf.cpp">
<Filter>Source Files\Multiple</Filter>
</ClCompile>
@@ -614,7 +623,7 @@
<ClInclude Include="Audio\File_Au.h">
<Filter>Header Files\Audio</Filter>
</ClInclude>
- <ClInclude Include="Audio\File_Dirac.h">
+ <ClInclude Include="Audio\File_DolbyE.h">
<Filter>Header Files\Audio</Filter>
</ClInclude>
<ClInclude Include="Audio\File_Dts.h">
@@ -701,6 +710,9 @@
<ClInclude Include="Image\File_Tiff.h">
<Filter>Header Files\Image</Filter>
</ClInclude>
+ <ClInclude Include="Multiple\File_Ancillary.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="Multiple\File_Bdmv.h">
<Filter>Header Files\Multiple</Filter>
</ClInclude>
@@ -722,6 +734,9 @@
<ClInclude Include="Multiple\File_Gxf.h">
<Filter>Header Files\Multiple</Filter>
</ClInclude>
+ <ClInclude Include="Multiple\File_Gxf_TimeCode.h">
+ <Filter>Header Files\Multiple</Filter>
+ </ClInclude>
<ClInclude Include="Multiple\File_Ivf.h">
<Filter>Header Files\Multiple</Filter>
</ClInclude>
diff --git a/src/thirdparty/MediaInfo/MediaInfoList_Internal.cpp b/src/thirdparty/MediaInfo/MediaInfoList_Internal.cpp
index a1a75de32..ee9f24101 100644
--- a/src/thirdparty/MediaInfo/MediaInfoList_Internal.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfoList_Internal.cpp
@@ -126,7 +126,9 @@ size_t MediaInfoList_Internal::Open(const String &File_Name, const fileoptions_t
else
List=Dir::GetAllFileNames(File_Name, (Options&FileOption_NoRecursive)?Dir::Nothing:Dir::Parse_SubDirs);
- Reader_Directory::Directory_Cleanup(List);
+ #if defined(MEDIAINFO_DIRECTORY_YES)
+ Reader_Directory().Directory_Cleanup(List);
+ #endif //defined(MEDIAINFO_DIRECTORY_YES)
//Registering files
CS.Enter();
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config.cpp b/src/thirdparty/MediaInfo/MediaInfo_Config.cpp
index e97fff5c2..f670ec3f1 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config.cpp
@@ -42,7 +42,7 @@ namespace MediaInfoLib
{
//---------------------------------------------------------------------------
-const Char* MediaInfo_Version=_T("MediaInfoLib - v0.7.34");
+const Char* MediaInfo_Version=_T("MediaInfoLib - v0.7.35");
const Char* MediaInfo_Url=_T("http://mediainfo.sourceforge.net");
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
@@ -223,20 +223,19 @@ Ztring MediaInfo_Config::Option (const String &Option, const String &Value_Raw)
}
else if (Option_Lower==_T("demux"))
{
- if (Value.empty())
- Demux_Set(0);
- else if (Value==_T("all"))
- Demux_Set(2);
- else
+ String Value_Lower(Value);
+ transform(Value_Lower.begin(), Value_Lower.end(), Value_Lower.begin(), (int(*)(int))tolower); //(int(*)(int)) is a patch for unix
+
+ if (Value_Lower==_T("all"))
+ Demux_Set(7);
+ else if (Value_Lower==_T("frame"))
Demux_Set(1);
- return Ztring();
- }
- else if (Option_Lower==_T("demux_unpacketize"))
- {
- if (Value.empty())
- Demux_Unpacketize_Set(false);
+ else if (Value_Lower==_T("container"))
+ Demux_Set(2);
+ else if (Value_Lower==_T("elementary"))
+ Demux_Set(4);
else
- Demux_Unpacketize_Set(true);
+ Demux_Set(0);
return Ztring();
}
else if (Option_Lower==_T("internet_get"))
@@ -734,19 +733,6 @@ int8u MediaInfo_Config::Demux_Get ()
}
//---------------------------------------------------------------------------
-void MediaInfo_Config::Demux_Unpacketize_Set (bool NewValue)
-{
- CriticalSectionLocker CSL(CS);
- Demux_Unpacketize=NewValue;
-}
-
-bool MediaInfo_Config::Demux_Unpacketize_Get ()
-{
- CriticalSectionLocker CSL(CS);
- return Demux_Unpacketize;
-}
-
-//---------------------------------------------------------------------------
void MediaInfo_Config::LineSeparator_Set (const Ztring &NewValue)
{
CriticalSectionLocker CSL(CS);
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config.h b/src/thirdparty/MediaInfo/MediaInfo_Config.h
index 37cde04dd..5ea72455f 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config.h
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config.h
@@ -101,8 +101,6 @@ public :
void Demux_Set (int8u NewValue);
int8u Demux_Get ();
- void Demux_Unpacketize_Set (bool NewValue);
- bool Demux_Unpacketize_Get ();
void LineSeparator_Set (const Ztring &NewValue);
Ztring LineSeparator_Get ();
@@ -194,7 +192,6 @@ private :
bool Language_Raw;
bool ReadByHuman;
int8u Demux;
- bool Demux_Unpacketize;
Ztring Version;
Ztring ColumnSeparator;
Ztring LineSeparator;
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp b/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp
index 842dd3e9e..d4f4c50d2 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp
@@ -334,7 +334,7 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info)
"File_Append;Append to the existing file (Warning : be careful to have the same parameters)\n"
"File_Created_Date;File creation date\n"
"File_Created_Date_Local;File creation date (local)\n"
- "File_Hint;Select a multimedia file to study\n"
+ "File_Hint;Select a multimedia file to examine\n"
"File_Modified_Date;File last modification date\n"
"File_Modified_Date_Local;File last modification date (local)\n"
"FileExtension;File extension\n"
@@ -342,9 +342,9 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info)
"FileSize;File size\n"
"Folder;Folder\n"
"Folder (R);Folder (R)\n"
- "Folder (R)_Hint;Select a folder to study (with all folders recursively)\n"
+ "Folder (R)_Hint;Select a folder to examine (with all folders recursively)\n"
"Folder (Recursively);Folder (Recursively)\n"
- "Folder_Hint;Select a folder to study\n"
+ "Folder_Hint;Select a folder to examine\n"
"FolderName;Folder name\n"
"Format;Format\n"
"Format_Description;Format description\n"
@@ -908,9 +908,9 @@ void MediaInfo_Config_DefaultLanguage (Translation &Info)
"Sharpness;Sharpness\n"
"Sheet;Sheet\n"
"Sheet (Complete);Sheet (Complete)\n"
- "Shell extension;Shell extension (in Explorer, right click there will be a MediaInfo option)\n"
+ "Shell extension;Explorer extension (in Windows Explorer, right click on a file, there will be a MediaInfo option)\n"
"Shell extension, folder;For folders too\n"
- "Shell InfoTip;Shell InfoTip (in Explorer, move the mouse over the file, info will be displayed)\n"
+ "Shell InfoTip;Explorer Tooltip (in Windows Explorer, move the mouse over the file, info will be displayed)\n"
"Show menu;Show menu\n"
"Show toolbar;Show toolbar\n"
"Sort;Sorted by\n"
@@ -2087,7 +2087,7 @@ void MediaInfo_Config_CodecID_Audio_Matroska (InfoMap &Info)
"A_REAL/SIPR;G.729;;Real & Sipro Voice Codec;http://www.real.com\n"
"A_REAL/RALF;RealAudio Lossless;;Real Audio Lossless Format;http://www.real.com\n"
"A_REAL/ATRC;Atrac;;Real & Sony Atrac3 Codec;http://www.real.com\n"
- "A_TRUEHD;TrueHD;;Dolby TrueHD;http://www.dolby.com/consumer/technology/trueHD.html\n"
+ "A_TRUEHD;TrueHD;;;http://www.dolby.com/consumer/technology/trueHD.html\n"
"A_MLP;MLP;;Meridian Lossless Packing;http://www.meridian-audio.com\n"
"A_AAC;AAC\n"
"A_AAC/MPEG2/MAIN;AAC\n"
@@ -2122,6 +2122,7 @@ void MediaInfo_Config_CodecID_Audio_Mpeg4 (InfoMap &Info)
"ima4;ADPCM;;;http://www.apple.com/quicktime/download/standalone.html\n"
"in24;PCM;;;http://www.apple.com/quicktime/download/standalone.html\n"
"in32;PCM;;;http://www.apple.com/quicktime/download/standalone.html\n"
+ "lpcm;PCM\n"
"MAC3;MACE 3\n"
"MAC6;MACE 6\n"
"NONE;PCM;;;http://www.apple.com/quicktime/download/standalone.html\n"
@@ -3587,6 +3588,28 @@ void MediaInfo_Config_Generic (ZtringListList &Info)
"Resolution/String\n"
"BitDepth\n"
"BitDepth/String\n"
+ "Delay\n"
+ "Delay/String\n"
+ "Delay/String1\n"
+ "Delay/String2\n"
+ "Delay/String3\n"
+ "Delay/String4\n"
+ "Delay_Settings\n"
+ "Delay_Source\n"
+ "Delay_Original\n"
+ "Delay_Original/String\n"
+ "Delay_Original/String1\n"
+ "Delay_Original/String2\n"
+ "Delay_Original/String3\n"
+ "Delay_Original/String4\n"
+ "Delay_Original_Settings\n"
+ "Delay_Original_Source\n"
+ "Video_Delay\n"
+ "Video_Delay/String\n"
+ "Video_Delay/String1\n"
+ "Video_Delay/String2\n"
+ "Video_Delay/String3\n"
+ "Video_Delay/String4\n"
"StreamSize\n"
"StreamSize/String\n"
"StreamSize/String1\n"
@@ -3919,6 +3942,7 @@ void MediaInfo_Config_Video (ZtringListList &Info)
"Format_Settings_FrameMode;;;Y YT;;;Settings needed for decoder used, detailled\n"
"Format_Settings_GOP;;;Y YT;;;Settings needed for decoder used, detailled (M=x N=y)\n"
"Format_Settings_FrameStructures;;;Y YT;;;Settings needed for decoder used, detailled (Type of frame, and field/frame info)\n"
+ "Format_Settings_Wrapping;;;Y YT;;;Wrapping mode (Frame wrapped or Clip wrapped)\n"
"InternetMediaType;;;N YT;;;Internet Media Type (aka MIME Type, Content-Type)\n"
"MuxingMode;;;Y NT;;;How this file is muxed in the container\n"
"CodecID;;;Y YT;;;Codec ID (found in some containers)\n"
@@ -3981,6 +4005,8 @@ void MediaInfo_Config_Video (ZtringListList &Info)
"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"
+ "ActiveFormatDescription;;;N YN;;;Active Format Description (AFD value)\n"
+ "ActiveFormatDescription/String;;;Y NT;;;Active Format Description (text)\n"
"Rotation;;;N YT;;;Rotation\n"
"Rotation/String;;;Y NT;;;Rotation (if not horizontal)\n"
"FrameRate_Mode;;;N YT;;;Frame rate mode (CFR, VFR)\n"
@@ -4017,16 +4043,18 @@ void MediaInfo_Config_Video (ZtringListList &Info)
"Delay/String;;;N NT;;;Delay with measurement\n"
"Delay/String1;;;N NT;;;Delay with measurement\n"
"Delay/String2;;;N NT;;;Delay with measurement\n"
- "Delay/String3;;;N NT;;;format : HH:MM:SS.MMM\n"
+ "Delay/String3;;;N NT;;;Delay in format : HH:MM:SS.MMM\n"
"Delay/String4;;;N NT;;;Delay in format : HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
"Delay_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Source;;;N NT;;;Delay source (Container or Stream or empty)\n"
"Delay_Original;; ms;N NI;;;Delay fixed in the raw stream (relative) IN MS\n"
"Delay_Original/String;;;N NT;;;Delay with measurement\n"
"Delay_Original/String1;;;N NT;;;Delay with measurement\n"
"Delay_Original/String2;;;N NT;;;Delay with measurement\n"
- "Delay_Original/String3;;;N NT;;;format : HH:MM:SS.MMM\n"
- "Delay-Original/String4;;;N NT;;;Delay in format : HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
+ "Delay_Original/String3;;;N NT;;;Delay in format: HH:MM:SS.MMM\n"
+ "Delay_Original/String4;;;N NT;;;Delay in format: HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
"Delay_Original_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Original_Source;;;N NT;;;Delay source (Stream or empty)\n"
"StreamSize;; byte;N YI;;;Stream size in bytes\n"
"StreamSize/String;;;Y NT;;;Streamsize in with percentage value\n"
"StreamSize/String1;;;N NT;;;Streamsize with measurement\n"
@@ -4099,6 +4127,7 @@ void MediaInfo_Config_Audio (ZtringListList &Info)
"Format_Settings_Sign;;;Y YT\n"
"Format_Settings_Law;;;Y YT\n"
"Format_Settings_ITU;;;Y YT\n"
+ "Format_Settings_Wrapping;;;Y YT;;;Wrapping mode (Frame wrapped or Clip wrapped)\n"
"InternetMediaType;;;N YT;;;Internet Media Type (aka MIME Type, Content-Type)\n"
"MuxingMode;;;Y NT;;;How this stream is muxed in the container\n"
"MuxingMode_MoreInfo;;;Y NT;;;More info (text) about the muxing mode\n"
@@ -4151,27 +4180,34 @@ void MediaInfo_Config_Audio (ZtringListList &Info)
"BitDepth;; bit;N YI;;;Resolution in bits (8, 16, 20, 24)\n"
"BitDepth/String;;;Y NT;;;Resolution in bits (8, 16, 20, 24)\n"
"CompressionRatio;;;Y YF;;;Current stream size divided by uncompressed stream size\n"
- "Delay;; ms;N YI;;;Delay fixed in the stream (relative)\n"
- "Delay/String;;;N NT;;;Delay in format : XXx YYy only, YYy omited if zero\n"
- "Delay/String1;;;N NT;;;Delay in format : HHh MMmn SSs MMMms, XX omited if zero\n"
- "Delay/String2;;;N NT;;;Delay in format : XXx YYy only, YYy omited if zero\n"
+ "Delay;; ms;N NI;;;Delay fixed in the stream (relative) IN MS\n"
+ "Delay/String;;;N NT;;;Delay with measurement\n"
+ "Delay/String1;;;N NT;;;Delay with measurement\n"
+ "Delay/String2;;;N NT;;;Delay with measurement\n"
"Delay/String3;;;N NT;;;Delay in format : HH:MM:SS.MMM\n"
+ "Delay/String4;;;N NT;;;Delay in format : HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
+ "Delay_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Source;;;N NT;;;Delay source (Container or Stream or empty)\n"
"Delay_Original;; ms;N NI;;;Delay fixed in the raw stream (relative) IN MS\n"
"Delay_Original/String;;;N NT;;;Delay with measurement\n"
"Delay_Original/String1;;;N NT;;;Delay with measurement\n"
"Delay_Original/String2;;;N NT;;;Delay with measurement\n"
- "Delay_Original/String3;;;N NT;;;format : HH:MM:SS.MMM\n"
+ "Delay_Original/String3;;;N NT;;;Delay in format: HH:MM:SS.MMM\n"
+ "Delay_Original/String4;;;N NT;;;Delay in format: HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
"Delay_Original_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Original_Source;;;N NT;;;Delay source (Stream or empty)\n"
"Video_Delay;; ms;N NI;;;Delay fixed in the stream (absolute / video)\n"
"Video_Delay/String;;;Y NT\n"
"Video_Delay/String1;;;N NT\n"
"Video_Delay/String2;;;N NT\n"
"Video_Delay/String3;;;N NT\n"
+ "Video_Delay/String4;;;N NT\n"
"Video0_Delay;; ms;N NI;;;Deprecated, do not use in new projects\n"
"Video0_Delay/String;;;N NT;;;Deprecated, do not use in new projects\n"
"Video0_Delay/String1;;;N NT;;;Deprecated, do not use in new projects\n"
"Video0_Delay/String2;;;N NT;;;Deprecated, do not use in new projects\n"
"Video0_Delay/String3;;;N NT;;;Deprecated, do not use in new projects\n"
+ "Video0_Delay/String4;;;N NT;;;Deprecated, do not use in new projects\n"
"ReplayGain_Gain;; dB;N YT;;;The gain to apply to reach 89dB SPL on playback\n"
"ReplayGain_Gain/String;;;Y YT\n"
"ReplayGain_Peak;;;Y YT;;;The maximum absolute peak value of the item\n"
@@ -4236,6 +4272,7 @@ void MediaInfo_Config_Text (ZtringListList &Info)
"Format_Version;;;Y NT;;;Version of this format\n"
"Format_Profile;;;Y NT;;;Profile of the Format\n"
"Format_Settings;;;Y NT;;;Settings needed for decoder used\n"
+ "Format_Settings_Wrapping;;;Y YT;;;Wrapping mode (Frame wrapped or Clip wrapped)\n"
"InternetMediaType;;;N YT;;;Internet Media Type (aka MIME Type, Content-Type)\n"
"MuxingMode;;;Y NT;;;How this stream is muxed in the container\n"
"MuxingMode_MoreInfo;;;Y NT;;;More info (text) about the muxing mode\n"
@@ -4288,27 +4325,34 @@ void MediaInfo_Config_Text (ZtringListList &Info)
"Resolution/String;;;N NT;;;Deprecated, do not use in new projects\n"
"BitDepth;; bit;N YI\n"
"BitDepth/String;;;Y NT\n"
- "Delay;; ms;N YI;;;Delay fixed in the stream (relative)\n"
- "Delay/String;;;N NT\n"
- "Delay/String1;;;N NT\n"
- "Delay/String2;;;N NT\n"
- "Delay/String3;;;N NT\n"
+ "Delay;; ms;N NI;;;Delay fixed in the stream (relative) IN MS\n"
+ "Delay/String;;;N NT;;;Delay with measurement\n"
+ "Delay/String1;;;N NT;;;Delay with measurement\n"
+ "Delay/String2;;;N NT;;;Delay with measurement\n"
+ "Delay/String3;;;N NT;;;Delay in format : HH:MM:SS.MMM\n"
+ "Delay/String4;;;N NT;;;Delay in format : HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
+ "Delay_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Source;;;N NT;;;Delay source (Container or Stream or empty)\n"
"Delay_Original;; ms;N NI;;;Delay fixed in the raw stream (relative) IN MS\n"
"Delay_Original/String;;;N NT;;;Delay with measurement\n"
"Delay_Original/String1;;;N NT;;;Delay with measurement\n"
"Delay_Original/String2;;;N NT;;;Delay with measurement\n"
- "Delay_Original/String3;;;N NT;;;format : HH:MM:SS.MMM\n"
+ "Delay_Original/String3;;;N NT;;;Delay in format: HH:MM:SS.MMM\n"
+ "Delay_Original/String4;;;N NT;;;Delay in format: HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
"Delay_Original_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Original_Source;;;N NT;;;Delay source (Stream or empty)\n"
"Video_Delay;; ms;N NI;;;Delay fixed in the stream (absolute / video)\n"
"Video_Delay/String;;;Y NT\n"
"Video_Delay/String1;;;N NT\n"
"Video_Delay/String2;;;N NT\n"
"Video_Delay/String3;;;N NT\n"
- "Video0_Delay;; ms;N NI;;;Deprecated\n"
- "Video0_Delay/String;;;N NT;;;Deprecated\n"
- "Video0_Delay/String1;;;N NT;;;Deprecated\n"
- "Video0_Delay/String2;;;N NT;;;Deprecated\n"
- "Video0_Delay/String3;;;N NT;;;Deprecated\n"
+ "Video_Delay/String4;;;N NT\n"
+ "Video0_Delay;; ms;N NI;;;Deprecated, do not use in new projects\n"
+ "Video0_Delay/String;;;N NT;;;Deprecated, do not use in new projects\n"
+ "Video0_Delay/String1;;;N NT;;;Deprecated, do not use in new projects\n"
+ "Video0_Delay/String2;;;N NT;;;Deprecated, do not use in new projects\n"
+ "Video0_Delay/String3;;;N NT;;;Deprecated, do not use in new projects\n"
+ "Video0_Delay/String4;;;N NT;;;Deprecated, do not use in new projects\n"
"StreamSize;; byte;N YI;;;Stream size in bytes\n"
"StreamSize/String;;;Y NT\n"
"StreamSize/String1;;;N NT\n"
@@ -4397,6 +4441,7 @@ void MediaInfo_Config_Image (ZtringListList &Info)
"Format_Version;;;Y NT;;;Version of this format\n"
"Format_Profile;;;Y NT;;;Profile of the Format\n"
"Format_Settings;;;Y NT;;;Settings needed for decoder used\n"
+ "Format_Settings_Wrapping;;;Y YT;;;Wrapping mode (Frame wrapped or Clip wrapped)\n"
"InternetMediaType;;;N YT;;;Internet Media Type (aka MIME Type, Content-Type)\n"
"CodecID;;;Y YT;;;Codec ID (found in some containers)\n"
"CodecID/Info;;;Y NT;;;Info about codec ID\n"
@@ -4491,7 +4536,10 @@ void MediaInfo_Config_Menu (ZtringListList &Info)
"Delay/String;;;N NT;;;Delay with measurement\n"
"Delay/String1;;;N NT;;;Delay with measurement\n"
"Delay/String2;;;N NT;;;Delay with measurement\n"
- "Delay/String3;;;N NT;;;format : HH:MM:SS.MMM\n"
+ "Delay/String3;;;N NT;;;Delay in format : HH:MM:SS.MMM\n"
+ "Delay/String4;;;N NT;;;Delay in format : HH:MM:SS:FF (HH:MM:SS;FF for drop frame, if available)\n"
+ "Delay_Settings;;;N NT;;;Delay settings (in case of timecode for example)\n"
+ "Delay_Source;;;N NT;;;Delay source (Container or Stream or empty)\n"
"List_StreamKind;;;N YT;;;List of programs available\n"
"List_StreamPos;;;N YT;;;List of programs available\n"
"List;;;N YT;;;List of programs available\n"
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp
index 09958c8de..d231fec36 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp
@@ -46,6 +46,7 @@ MediaInfo_Config_MediaInfo::MediaInfo_Config_MediaInfo()
FileKeepInfo=false;
FileStopAfterFilled=false;
File_Filter_HasChanged_=false;
+ Audio_MergeMonoStreams=false;
#if MEDIAINFO_EVENTS
Event_CallBackFunction=NULL;
Event_UserHandler=NULL;
@@ -57,6 +58,15 @@ MediaInfo_Config_MediaInfo::MediaInfo_Config_MediaInfo()
File_Bdmv_ParseTargetedFile=true;
File_DvDif_Analysis=false;
State=0;
+ Demux_ForceIds=false;
+ Demux_PCM_20bitTo16bit=false;
+ Demux_Unpacketize=false;
+ NextPacket=false;
+
+ //Internal to MediaInfo, not thread safe
+ #if MEDIAINFO_DEMUX
+ Demux_EventWasSent=false;
+ #endif //MEDIAINFO_DEMUX
}
//***************************************************************************
@@ -107,6 +117,24 @@ Ztring MediaInfo_Config_MediaInfo::Option (const String &Option, const String &V
{
return File_StopAfterFilled_Get()?"1":"0";
}
+ if (Option_Lower==_T("file_audio_mergemonostreams"))
+ {
+ File_Audio_MergeMonoStreams_Set(!(Value==_T("0") || Value.empty()));
+ return _T("");
+ }
+ else if (Option_Lower==_T("file_audio_mergemonostreams_get"))
+ {
+ return File_Audio_MergeMonoStreams_Get()?"1":"0";
+ }
+ else if (Option_Lower==_T("file_filename"))
+ {
+ File_FileName_Set(Value);
+ return _T("");
+ }
+ else if (Option_Lower==_T("file_filename_get"))
+ {
+ return File_FileName_Get();
+ }
else if (Option_Lower==_T("file_forceparser"))
{
File_ForceParser_Set(Value);
@@ -136,6 +164,50 @@ Ztring MediaInfo_Config_MediaInfo::Option (const String &Option, const String &V
//else
// return _T("");
}
+ else if (Option_Lower==_T("file_demux_forceids"))
+ {
+ #if MEDIAINFO_DEMUX
+ if (Value.empty())
+ Demux_ForceIds_Set(false);
+ else
+ Demux_ForceIds_Set(true);
+ return Ztring();
+ #else //MEDIAINFO_DEMUX
+ return _T("Demux manager is disabled due to compilation options");
+ #endif //MEDIAINFO_DEMUX
+ }
+ else if (Option_Lower==_T("file_demux_pcm_20bitto16bit"))
+ {
+ #if MEDIAINFO_DEMUX
+ if (Value.empty())
+ Demux_PCM_20bitTo16bit_Set(false);
+ else
+ Demux_PCM_20bitTo16bit_Set(true);
+ return Ztring();
+ #else //MEDIAINFO_DEMUX
+ return _T("Demux manager is disabled due to compilation options");
+ #endif //MEDIAINFO_DEMUX
+ }
+ else if (Option_Lower==_T("file_demux_unpacketize"))
+ {
+ #if MEDIAINFO_DEMUX
+ if (Value.empty())
+ Demux_Unpacketize_Set(false);
+ else
+ Demux_Unpacketize_Set(true);
+ return Ztring();
+ #else //MEDIAINFO_DEMUX
+ return _T("Demux manager is disabled due to compilation options");
+ #endif //MEDIAINFO_DEMUX
+ }
+ else if (Option_Lower==_T("file_nextpacket"))
+ {
+ if (Value.empty())
+ NextPacket_Set(false);
+ else
+ NextPacket_Set(true);
+ return Ztring();
+ }
else if (Option_Lower==_T("file_mpegts_forcemenu"))
{
File_MpegTs_ForceMenu_Set(!(Value==_T("0") || Value.empty()));
@@ -261,6 +333,36 @@ bool MediaInfo_Config_MediaInfo::File_StopAfterFilled_Get ()
return FileStopAfterFilled;
}
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::File_Audio_MergeMonoStreams_Set (bool NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ Audio_MergeMonoStreams=NewValue;
+}
+
+bool MediaInfo_Config_MediaInfo::File_Audio_MergeMonoStreams_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ return Audio_MergeMonoStreams;
+}
+
+//***************************************************************************
+// File name from somewhere else
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::File_FileName_Set (const Ztring &NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ File_FileName=NewValue;
+}
+
+Ztring MediaInfo_Config_MediaInfo::File_FileName_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ return File_FileName;
+}
+
//***************************************************************************
// Force Parser
//***************************************************************************
@@ -409,6 +511,68 @@ void MediaInfo_Config_MediaInfo::File__Duplicate_Memory_Indexes_Erase (const Ztr
}
//***************************************************************************
+// Demux
+//***************************************************************************
+
+#if MEDIAINFO_DEMUX
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::Demux_ForceIds_Set (bool NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ Demux_ForceIds=NewValue;
+}
+
+bool MediaInfo_Config_MediaInfo::Demux_ForceIds_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ return Demux_ForceIds;
+}
+
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::Demux_PCM_20bitTo16bit_Set (bool NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ Demux_PCM_20bitTo16bit=NewValue;
+}
+
+bool MediaInfo_Config_MediaInfo::Demux_PCM_20bitTo16bit_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ return Demux_PCM_20bitTo16bit;
+}
+
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::Demux_Unpacketize_Set (bool NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ Demux_Unpacketize=NewValue;
+}
+
+bool MediaInfo_Config_MediaInfo::Demux_Unpacketize_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ return Demux_Unpacketize;
+}
+#endif //MEDIAINFO_DEMUX
+
+//***************************************************************************
+// NextPacket
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::NextPacket_Set (bool NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ NextPacket=NewValue;
+}
+
+bool MediaInfo_Config_MediaInfo::NextPacket_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ return NextPacket;
+}
+
+//***************************************************************************
// Event
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h
index 7a4afc5fc..ede3d6423 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h
@@ -70,6 +70,12 @@ public :
void File_StopAfterFilled_Set (bool NewValue);
bool File_StopAfterFilled_Get ();
+ void File_Audio_MergeMonoStreams_Set (bool NewValue);
+ bool File_Audio_MergeMonoStreams_Get ();
+
+ void File_FileName_Set (const Ztring &NewValue);
+ Ztring File_FileName_Get ();
+
void File_ForceParser_Set (const Ztring &NewValue);
Ztring File_ForceParser_Get ();
@@ -82,6 +88,18 @@ public :
Ztring File_Duplicate_Get (size_t AlreadyRead_Pos); //Requester must say how many Get() it already read
bool File_Duplicate_Get_AlwaysNeeded (size_t AlreadyRead_Pos); //Requester must say how many Get() it already read
+ #if MEDIAINFO_DEMUX
+ void Demux_ForceIds_Set (bool NewValue);
+ bool Demux_ForceIds_Get ();
+ void Demux_PCM_20bitTo16bit_Set (bool NewValue);
+ bool Demux_PCM_20bitTo16bit_Get ();
+ void Demux_Unpacketize_Set (bool NewValue);
+ bool Demux_Unpacketize_Get ();
+ #endif //MEDIAINFO_DEMUX
+
+ void NextPacket_Set (bool NewValue);
+ bool NextPacket_Get ();
+
size_t File__Duplicate_Memory_Indexes_Get (const Ztring &ToFind);
void File__Duplicate_Memory_Indexes_Erase (const Ztring &ToFind);
@@ -112,11 +130,18 @@ public :
void State_Set (float State);
float State_Get ();
+ //Internal to MediaInfo, not thread safe
+ #if MEDIAINFO_DEMUX
+ bool Demux_EventWasSent;
+ #endif //MEDIAINFO_DEMUX
+
private :
bool FileIsSeekable;
bool FileIsSub;
bool FileKeepInfo;
bool FileStopAfterFilled;
+ bool Audio_MergeMonoStreams;
+ Ztring File_FileName;
Ztring File_ForceParser;
//Extra
@@ -126,6 +151,11 @@ private :
std::vector<Ztring> File__Duplicate_List;
ZtringList File__Duplicate_Memory_Indexes;
+ bool Demux_ForceIds;
+ bool Demux_PCM_20bitTo16bit;
+ bool Demux_Unpacketize;
+ bool NextPacket;
+
//Event
#if MEDIAINFO_EVENTS
MediaInfo_Event_CallBackFunction* Event_CallBackFunction; //void Event_Handler(unsigned char* Data_Content, size_t Data_Size, void* UserHandler)
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Events.h b/src/thirdparty/MediaInfo/MediaInfo_Events.h
index f3a0215d9..27dd812fa 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Events.h
+++ b/src/thirdparty/MediaInfo/MediaInfo_Events.h
@@ -221,6 +221,9 @@ struct MediaInfo_Event_Global_Demux_0
{
MediaInfo_int32u EventCode;
MediaInfo_int64u Stream_Offset;
+ MediaInfo_int64u PCR;
+ MediaInfo_int64u PTS;
+ MediaInfo_int64u DTS;
size_t StreamIDs_Size;
MediaInfo_int64u* StreamIDs;
MediaInfo_int8u* StreamIDs_Width;
diff --git a/src/thirdparty/MediaInfo/MediaInfo_File.cpp b/src/thirdparty/MediaInfo/MediaInfo_File.cpp
index bf738112b..b3ed703ab 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_File.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_File.cpp
@@ -143,6 +143,9 @@
#if defined(MEDIAINFO_ADTS_YES)
#include "MediaInfo/Audio/File_Adts.h"
#endif
+#if defined(MEDIAINFO_AES3_YES)
+ #include "MediaInfo/Audio/File_Aes3.h"
+#endif
#if defined(MEDIAINFO_ALS_YES)
#include "MediaInfo/Audio/File_Als.h"
#endif
@@ -161,6 +164,9 @@
#if defined(MEDIAINFO_DTS_YES)
#include "MediaInfo/Audio/File_Dts.h"
#endif
+#if defined(MEDIAINFO_DOLBYE_YES)
+ //#include "MediaInfo/Audio/File_DolbyE.h"
+#endif
#if defined(MEDIAINFO_FLAC_YES)
#include "MediaInfo/Audio/File_Flac.h"
#endif
@@ -402,6 +408,9 @@ bool MediaInfo_Internal::SelectFromExtension (const String &Parser)
#if defined(MEDIAINFO_AC3_YES)
else if (Parser==_T("Ac3")) Info=new File_Ac3();
#endif
+ #if defined(MEDIAINFO_AES3_YES)
+ else if (Parser==_T("Aes3")) Info=new File_Aes3();
+ #endif
#if defined(MEDIAINFO_ALS_YES)
else if (Parser==_T("Als")) Info=new File_Als();
#endif
@@ -420,6 +429,9 @@ bool MediaInfo_Internal::SelectFromExtension (const String &Parser)
#if defined(MEDIAINFO_DTS_YES)
else if (Parser==_T("Dts")) Info=new File_Dts();
#endif
+ #if defined(MEDIAINFO_DOLBYE_YES)
+ //else if (Parser==_T("DolbyE")) Info=new File_DolbyE();
+ #endif
#if defined(MEDIAINFO_FLAC_YES)
else if (Parser==_T("Flac")) Info=new File_Flac();
#endif
@@ -542,251 +554,259 @@ bool MediaInfo_Internal::SelectFromExtension (const String &Parser)
}
//---------------------------------------------------------------------------
+#if !defined(MEDIAINFO_READER_NO)
int MediaInfo_Internal::ListFormats(const String &File_Name)
{
// Multiple
#if defined(MEDIAINFO_BDAV_YES)
- delete Info; Info=new File_MpegTs(); ((File_MpegTs*)Info)->BDAV_Size=4; if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_MpegTs(); ((File_MpegTs*)Info)->BDAV_Size=4; if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_BDMV_YES)
- delete Info; Info=new File_Bdmv(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Bdmv(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_CDXA_YES)
- delete Info; Info=new File_Cdxa(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Cdxa(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_DVDIF_YES)
- delete Info; Info=new File_DvDif(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_DvDif(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_DVDV_YES)
- delete Info; Info=new File_Dvdv(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Dvdv(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_FLV_YES)
- delete Info; Info=new File_Flv(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Flv(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_GXF_YES)
- delete Info; Info=new File_Gxf(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Gxf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_IVF_YES)
- delete Info; Info=new File_Ivf(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Ivf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_LXF_YES)
- delete Info; Info=new File_Lxf(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Lxf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MK_YES)
- delete Info; Info=new File_Mk(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mk(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPEG4_YES)
- delete Info; Info=new File_Mpeg4(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mpeg4(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPEGPS_YES)
- delete Info; Info=new File_MpegPs(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_MpegPs(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPEGTS_YES)
- delete Info; Info=new File_MpegTs(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_MpegTs(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPLI_YES)
- delete Info; Info=new File_Mpli(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mpli(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MXF_YES)
- delete Info; Info=new File_Mxf(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mxf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_NUT_YES)
- delete Info; Info=new File_Nut(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Nut(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_OGG_YES)
- delete Info; Info=new File_Ogg(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Ogg(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_P2_YES)
- delete Info; Info=new File_P2_Clip(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_P2_Clip(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_RIFF_YES)
- delete Info; Info=new File_Riff(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Riff(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_RM_YES)
- delete Info; Info=new File_Rm(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Rm(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_SKM_YES)
- delete Info; Info=new File_Skm(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Skm(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_SWF_YES)
- delete Info; Info=new File_Swf(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Swf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_TSP_YES)
- delete Info; Info=new File_MpegTs(); ((File_MpegTs*)Info)->TSP_Size=16; if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_MpegTs(); ((File_MpegTs*)Info)->TSP_Size=16; if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_WM_YES)
- delete Info; Info=new File_Wm(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Wm(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_XDCAM_YES)
- delete Info; Info=new File_Xdcam_Clip(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Xdcam_Clip(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_DPG_YES)
- delete Info; Info=new File_Dpg(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Dpg(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
// Video
#if defined(MEDIAINFO_AVC_YES)
- delete Info; Info=new File_Avc(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Avc(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_DIRAC_YES)
- delete Info; Info=new File_Dirac(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Dirac(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_FLIC_YES)
- delete Info; Info=new File_Flic(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Flic(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPEG4V_YES)
- delete Info; Info=new File_Mpeg4v(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mpeg4v(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPEGV_YES)
- delete Info; Info=new File_Mpegv(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mpegv(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_VC1_YES)
- delete Info; Info=new File_Vc1(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Vc1(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_AVSV_YES)
- delete Info; Info=new File_AvsV(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_AvsV(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
// Audio
#if defined(MEDIAINFO_AC3_YES)
- delete Info; Info=new File_Ac3(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Ac3(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_ADIF_YES)
- delete Info; Info=new File_Adif(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Adif(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_ADTS_YES)
- delete Info; Info=new File_Adts(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Adts(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
+ #endif
+ #if defined(MEDIAINFO_AES3_YES)
+ delete Info; Info=new File_Aes3(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_ALS_YES)
- delete Info; Info=new File_Als(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Als(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_AMR_YES)
- delete Info; Info=new File_Amr(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Amr(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_AMV_YES)
- delete Info; Info=new File_Amv(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Amv(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_APE_YES)
- delete Info; Info=new File_Ape(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Ape(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_AU_YES)
- delete Info; Info=new File_Au(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Au(); 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::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Dts(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
+ #endif
+ #if defined(MEDIAINFO_DOLBYE_YES)
+ //delete Info; Info=new File_DolbyE(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_FLAC_YES)
- delete Info; Info=new File_Flac(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Flac(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_IT_YES)
- delete Info; Info=new File_ImpulseTracker(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_ImpulseTracker(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_LA_YES)
- delete Info; Info=new File_La(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_La(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MIDI_YES)
- delete Info; Info=new File_Midi(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Midi(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MOD_YES)
- delete Info; Info=new File_Module(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Module(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPC_YES)
- delete Info; Info=new File_Mpc(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mpc(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPCSV8_YES)
- delete Info; Info=new File_MpcSv8(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_MpcSv8(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MPEGA_YES)
- delete Info; Info=new File_Mpega(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mpega(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_PCM_YES)
- //delete Info; Info=new File_Pcm(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ //delete Info; Info=new File_Pcm(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_TAK_YES)
- delete Info; Info=new File_Tak(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Tak(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_S3M_YES)
- delete Info; Info=new File_ScreamTracker3(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_ScreamTracker3(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_TTA_YES)
- delete Info; Info=new File_Tta(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Tta(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_TWINVQ_YES)
- delete Info; Info=new File_TwinVQ(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_TwinVQ(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_WVPK_YES)
- delete Info; Info=new File_Wvpk(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Wvpk(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_XM_YES)
- delete Info; Info=new File_ExtendedModule(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_ExtendedModule(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
// Text
#if defined(MEDIAINFO_N19_YES)
- delete Info; Info=new File_N19(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_N19(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_OTHERTEXT_YES)
- delete Info; Info=new File_OtherText(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_OtherText(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
// Image
#if defined(MEDIAINFO_BMP_YES)
- delete Info; Info=new File_Bmp(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Bmp(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_GIF_YES)
- delete Info; Info=new File_Gif(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Gif(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_ICO_YES)
- delete Info; Info=new File_Ico(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Ico(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_JPEG_YES)
- delete Info; Info=new File_Jpeg(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Jpeg(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_PNG_YES)
- delete Info; Info=new File_Png(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Png(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_TIFF_YES)
- delete Info; Info=new File_Tiff(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Tiff(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
// Archive
#if defined(MEDIAINFO_ACE_YES)
- delete Info; Info=new File_Ace(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Ace(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_7Z_YES)
- delete Info; Info=new File_7z(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_7z(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_BZIP2_YES)
- delete Info; Info=new File_Bzip2(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Bzip2(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_ELF_YES)
- delete Info; Info=new File_Elf(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Elf(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_GZIP_YES)
- delete Info; Info=new File_Gzip(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Gzip(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_MZ_YES)
- delete Info; Info=new File_Mz(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Mz(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_RAR_YES)
- delete Info; Info=new File_Rar(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Rar(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_TAR_YES)
- delete Info; Info=new File_Tar(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Tar(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if defined(MEDIAINFO_ZIP_YES)
- delete Info; Info=new File_Zip(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Zip(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
// Other
#if !defined(MEDIAINFO_OTHER_NO)
- delete Info; Info=new File_Other(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Other(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
#if !defined(MEDIAINFO_UNKNOWN_NO)
- delete Info; Info=new File_Unknown(); if (Reader_File::Format_Test_PerParser(this, File_Name)>0) return 1;
+ delete Info; Info=new File_Unknown(); if (((Reader_File*)Reader)->Format_Test_PerParser(this, File_Name)>0) return 1;
#endif
return 0;
}
+#endif //!defined(MEDIAINFO_READER_NO)
//---------------------------------------------------------------------------
bool MediaInfo_Internal::LibraryIsModified ()
@@ -794,7 +814,7 @@ bool MediaInfo_Internal::LibraryIsModified ()
#if defined(MEDIAINFO_MULTI_NO) || defined(MEDIAINFO_VIDEO_NO) || defined(MEDIAINFO_AUDIO_NO) || defined(MEDIAINFO_TEXT_NO) || defined(MEDIAINFO_IMAGE_NO) || defined(MEDIAINFO_ARCHIVE_NO) \
|| defined(MEDIAINFO_BDAV_NO) || defined(MEDIAINFO_MK_NO) || defined(MEDIAINFO_OGG_NO) || defined(MEDIAINFO_RIFF_NO) || defined(MEDIAINFO_MPEG4_NO) || defined(MEDIAINFO_MPEGPS_NO) || defined(MEDIAINFO_MPEGTS_NO) || defined(MEDIAINFO_FLV_NO) || defined(MEDIAINFO_GXF_NO) || defined(MEDIAINFO_IVF_NO) || defined(MEDIAINFO_LXF_NO) || defined(MEDIAINFO_SWF_NO) || defined(MEDIAINFO_MXF_NO) || defined(MEDIAINFO_NUT_NO) || defined(MEDIAINFO_WM_NO) || defined(MEDIAINFO_QT_NO) || defined(MEDIAINFO_RM_NO) || defined(MEDIAINFO_DVDIF_NO) || defined(MEDIAINFO_DVDV_NO) || defined(MEDIAINFO_CDXA_NO) || defined(MEDIAINFO_DPG_NO) || defined(MEDIAINFO_TSP_NO) \
|| defined(MEDIAINFO_AVC_NO) || defined(MEDIAINFO_MPEG4V_NO) || defined(MEDIAINFO_MPEGV_NO) || defined(MEDIAINFO_FLIC_NO) || defined(MEDIAINFO_THEORA_NO) \
- || defined(MEDIAINFO_AC3_NO) || defined(MEDIAINFO_ADIF_NO) || defined(MEDIAINFO_ADTS_NO) || defined(MEDIAINFO_AMR_NO) || defined(MEDIAINFO_DTS_NO) || defined(MEDIAINFO_FLAC_NO) || defined(MEDIAINFO_APE_NO) || defined(MEDIAINFO_MPC_NO) || defined(MEDIAINFO_MPCSV8_NO) || defined(MEDIAINFO_MPEGA_NO) || defined(MEDIAINFO_TWINVQ_NO) || defined(MEDIAINFO_XM_NO) || defined(MEDIAINFO_MOD_NO) || defined(MEDIAINFO_S3M_NO) || defined(MEDIAINFO_IT_NO) || defined(MEDIAINFO_AES3_NO) || defined(MEDIAINFO_SPEEX_NO) || defined(MEDIAINFO_TAK_NO) || defined(MEDIAINFO_PS2A_NO) \
+ || defined(MEDIAINFO_AC3_NO) || defined(MEDIAINFO_ADIF_NO) || defined(MEDIAINFO_ADTS_NO) || defined(MEDIAINFO_AES3_NO) || defined(MEDIAINFO_AMR_NO) || defined(MEDIAINFO_DTS_NO) || defined(MEDIAINFO_DOLBYE_NO) || defined(MEDIAINFO_FLAC_NO) || defined(MEDIAINFO_APE_NO) || defined(MEDIAINFO_MPC_NO) || defined(MEDIAINFO_MPCSV8_NO) || defined(MEDIAINFO_MPEGA_NO) || defined(MEDIAINFO_TWINVQ_NO) || defined(MEDIAINFO_XM_NO) || defined(MEDIAINFO_MOD_NO) || defined(MEDIAINFO_S3M_NO) || defined(MEDIAINFO_IT_NO) || defined(MEDIAINFO_SPEEX_NO) || defined(MEDIAINFO_TAK_NO) || defined(MEDIAINFO_PS2A_NO) \
|| defined(MEDIAINFO_CMML_NO) || defined(MEDIAINFO_KATE_NO) || defined(MEDIAINFO_PGS_NO) || defined(MEDIAINFO_OTHERTEXT_NO) \
|| defined(MEDIAINFO_PNG_NO) || defined(MEDIAINFO_JPEG_NO) || defined(MEDIAINFO_BMP_NO) || defined(MEDIAINFO_ICO_NO) || defined(MEDIAINFO_GIF_NO) || defined(MEDIAINFO_TIFF_NO) \
|| defined(MEDIAINFO_7Z_NO) || defined(MEDIAINFO_ZIP_NO) || defined(MEDIAINFO_RAR_NO) || defined(MEDIAINFO_ACE_NO) || defined(MEDIAINFO_ELF_NO) || defined(MEDIAINFO_MZ_NO) \
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Internal.cpp b/src/thirdparty/MediaInfo/MediaInfo_Internal.cpp
index 0f67bb191..cc28e0d98 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Internal.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Internal.cpp
@@ -236,6 +236,9 @@ MediaInfo_Internal::MediaInfo_Internal()
BlockMethod=BlockMethod_Local;
Info=NULL;
+ #if !defined(MEDIAINFO_READER_NO)
+ Reader=NULL;
+ #endif //!defined(MEDIAINFO_READER_NO)
Info_IsMultipleParsing=false;
Stream.resize(Stream_Max);
@@ -256,6 +259,9 @@ MediaInfo_Internal::~MediaInfo_Internal()
MEDIAINFO_DEBUG_CONFIG_TEXT(Debug+=_T("Destruction");)
delete Info; //Info=NULL;
+ #if !defined(MEDIAINFO_READER_NO)
+ delete Reader; //Reader=NULL;
+ #endif //!defined(MEDIAINFO_READER_NO)
#ifdef MEDIAINFO_DEBUG_OUTPUT
for (size_t Pos=0; Pos<Debug_Output_Pos_Stream.size(); Pos++)
{
@@ -272,6 +278,8 @@ MediaInfo_Internal::~MediaInfo_Internal()
//---------------------------------------------------------------------------
size_t MediaInfo_Internal::Open(const String &File_Name_)
{
+ Close();
+
CS.Enter();
MEDIAINFO_DEBUG_CONFIG_TEXT(Debug+=_T("Open, File=");Debug+=Ztring(File_Name_).c_str();)
File_Name=File_Name_;
@@ -319,7 +327,7 @@ void MediaInfo_Internal::Entry()
&& File_Name[3]==_T(':')
&& File_Name[4]==_T('/')
&& File_Name[5]==_T('/')))
- Reader_libcurl::Format_Test(this, File_Name);
+ Reader_libcurl().Format_Test(this, File_Name);
#endif //MEDIAINFO_LIBCURL_YES
#if defined(MEDIAINFO_LIBMMS_YES)
@@ -338,17 +346,31 @@ void MediaInfo_Internal::Entry()
&& File_Name[4]==_T(':')
&& File_Name[5]==_T('/')
&& File_Name[6]==_T('/')))
- Reader_libmms::Format_Test(this, File_Name);
+ Reader_libmms().Format_Test(this, File_Name);
#endif //MEDIAINFO_LIBMMS_YES
#if defined(MEDIAINFO_DIRECTORY_YES)
else if (Dir::Exists(File_Name))
- Reader_Directory::Format_Test(this, File_Name);
+ Reader_Directory().Format_Test(this, File_Name);
#endif //MEDIAINFO_DIRECTORY_YES
#if defined(MEDIAINFO_FILE_YES)
else if (File::Exists(File_Name))
- Reader_File::Format_Test(this, File_Name);
+ {
+ CS.Enter();
+ if (Reader)
+ {
+ CS.Leave();
+ return; //There is a problem
+ }
+ Reader=new Reader_File();
+ CS.Leave();
+
+ Reader->Format_Test(this, File_Name);
+
+ if (Config.NextPacket_Get())
+ return;
+ }
#endif //MEDIAINFO_FILE_YES
CS.Enter();
@@ -517,6 +539,25 @@ size_t MediaInfo_Internal::Open_Buffer_Finalize ()
}
//---------------------------------------------------------------------------
+std::bitset<32> MediaInfo_Internal::Open_NextPacket ()
+{
+ CriticalSectionLocker CSL(CS);
+
+ bool Demux_EventWasSent=false;
+ if (Info==NULL || !Info->Status[File__Analyze::IsFinished])
+ {
+ #if !defined(MEDIAINFO_READER_NO)
+ Demux_EventWasSent=(((Reader_File*)Reader)->Format_Test_PerParser_Continue(this)==2);
+ #endif //defined(MEDIAINFO_READER_NO)
+ }
+
+ std::bitset<32> ToReturn=Info==NULL?std::bitset<32>(0x0F):Info->Status;
+ if (Demux_EventWasSent)
+ ToReturn[8]=true; //bit 8 is for the reception of a frame
+ return ToReturn;
+}
+
+//---------------------------------------------------------------------------
void MediaInfo_Internal::Close()
{
if (IsRunning())
@@ -533,6 +574,9 @@ void MediaInfo_Internal::Close()
Stream_More.clear();
Stream_More.resize(Stream_Max);
delete Info; Info=NULL;
+ #if !defined(MEDIAINFO_READER_NO)
+ delete Reader; Reader=NULL;
+ #endif //defined(MEDIAINFO_READER_NO)
}
//***************************************************************************
@@ -629,6 +673,8 @@ Ztring MediaInfo_Internal::Get(stream_t StreamKind, size_t StreamPos, const Stri
return Get(Stream_General, StreamPos, _T("OverallBitRate_Maximum"), KindOfInfo, KindOfSearch);
if (StreamKind==Stream_General && Parameter==_T("BitRate_Maximum/String"))
return Get(Stream_General, StreamPos, _T("OverallBitRate_Maximum/String"), KindOfInfo, KindOfSearch);
+ if (Parameter==_T("AFD"))
+ return Get(StreamKind, StreamPos, _T("ActiveFormatDescription"), 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);)
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Internal.h b/src/thirdparty/MediaInfo/MediaInfo_Internal.h
index 9eb0e4791..df1e25896 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Internal.h
+++ b/src/thirdparty/MediaInfo/MediaInfo_Internal.h
@@ -58,6 +58,7 @@ namespace MediaInfoLib
class File__Analyze;
class Internet__Base;
+class Reader__Base;
//***************************************************************************
/// @brief MediaInfo_Internal
@@ -80,6 +81,7 @@ public :
ZenLib::int64u Open_Buffer_Continue_GoTo_Get ();
bool Open_Buffer_Position_Set(int64u File_Offset);
size_t Open_Buffer_Finalize ();
+ std::bitset<32> Open_NextPacket ();
void Close ();
//General information
@@ -115,6 +117,9 @@ private :
//Parsing handles
File__Analyze* Info;
Internet__Base* Internet;
+ #if !defined(MEDIAINFO_READER_NO)
+ Reader__Base* Reader;
+ #endif //defined(MEDIAINFO_READER_NO)
Ztring File_Name;
//Helpers
@@ -132,7 +137,11 @@ private :
public :
bool SelectFromExtension (const String &Parser); //Select File_* from the parser name
- int ListFormats(const String &File_Name=String());
+ #if !defined(MEDIAINFO_READER_NO)
+ int ListFormats(const String &File_Name=String());
+ #else //!defined(MEDIAINFO_READER_NO)
+ int ListFormats(const String &File_Name=String()) {return 0;}
+ #endif //!defined(MEDIAINFO_READER_NO)
MediaInfo_Config_MediaInfo Config;
private :
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Ancillary.cpp b/src/thirdparty/MediaInfo/Multiple/File_Ancillary.cpp
new file mode 100644
index 000000000..0b02e23d1
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Multiple/File_Ancillary.cpp
@@ -0,0 +1,303 @@
+// File_AncillaryDataPacket - Info for SCTE 20 streams
+// Copyright (C) 2010-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library 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 Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+// Compilation conditions
+#include "MediaInfo/Setup.h"
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_ANCILLARY_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/Multiple/File_Ancillary.h"
+#if defined(MEDIAINFO_EIA608_YES)
+ #include "MediaInfo/Text/File_Eia608.h"
+#endif
+#if defined(MEDIAINFO_EIA708_YES)
+ #include "MediaInfo/Text/File_Eia708.h"
+#endif
+#if MEDIAINFO_EVENTS
+ #include "MediaInfo/MediaInfo_Events.h"
+#endif //MEDIAINFO_EVENTS
+#include <cstring>
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+namespace MediaInfoLib
+{
+//---------------------------------------------------------------------------
+
+//***************************************************************************
+// Infos
+//***************************************************************************
+
+const char* Ancillary_DataID(int8u DataID, int8u SecondaryDataID)
+{
+ if (DataID==0x00)
+ return "Undefined format";
+ else if (DataID<=0x03)
+ return "Reserved";
+ else if (DataID<=0x0F)
+ return "Reserved for 8-bit applications";
+ else if (DataID<=0x3F)
+ return "Reserved";
+ else if (DataID==0x41)
+ {
+ //SMPTE 2016-3-2007
+ switch (SecondaryDataID)
+ {
+ case 0x05 : return "Bar Data";
+ default : return "Internationally registered";
+ }
+ }
+ else if (DataID==0x45)
+ {
+ //SMPTE 2020-1-2008
+ switch (SecondaryDataID)
+ {
+ case 0x01 : return "Audio Metadata - No association";
+ case 0x02 : return "Audio Metadata - Channels 1/2";
+ case 0x03 : return "Audio Metadata - Channels 3/4";
+ case 0x04 : return "Audio Metadata - Channels 5/6";
+ case 0x05 : return "Audio Metadata - Channels 7/8";
+ case 0x06 : return "Audio Metadata - Channels 9/10";
+ case 0x07 : return "Audio Metadata - Channels 11/12";
+ case 0x08 : return "Audio Metadata - Channels 13/14";
+ case 0x09 : return "Audio Metadata - Channels 15/16";
+ default : return "SMPTE 2020-1-2008?";
+ }
+ }
+ else if (DataID<=0x4F)
+ return "Internationally registered";
+ else if (DataID<=0x5F)
+ return "Reserved";
+ else if (DataID==0x60)
+ return "Ancillary time code (Internationally registered)";
+ else if (DataID==0x61)
+ {
+ switch (SecondaryDataID)
+ {
+ case 0x01 : return "CEA-708 (CDP)";
+ case 0x02 : return "CEA-608";
+ default : return "S334-1-2007 Defined data services?";
+ }
+ }
+ else if (DataID==0x62)
+ {
+ switch (SecondaryDataID)
+ {
+ case 0x01 : return "Program description";
+ case 0x02 : return "Data broadcast";
+ case 0x03 : return "VBI data";
+ default : return "S334-1-2007 Variable-format data services?";
+ }
+ }
+ else if (DataID<=0x7F)
+ return "Internationally registered";
+ else if (DataID==0x80)
+ return "Ancillary packet marked for deletion";
+ else if (DataID<=0x83)
+ return "Reserved";
+ else if (DataID==0x84)
+ return "Optional ancillary packet data end marker";
+ else if (DataID<=0x87)
+ return "Reserved";
+ else if (DataID==0x88)
+ return "Optional ancillary packet data start marker";
+ else if (DataID<=0x9F)
+ return "Reserved";
+ else if (DataID<=0xBF)
+ return "Internationally registered";
+ else if (DataID<=0xCF)
+ return "User application";
+ else if (DataID<=0xDF)
+ return "Internationally registered";
+ else
+ return "Internationally registered";
+}
+
+//***************************************************************************
+// Constructor/Destructor
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+File_Ancillary::File_Ancillary()
+:File__Analyze()
+{
+ //Configuration
+ ParserName=_T("Ancillary");
+
+ //In
+ WithTenBit=false;
+ WithChecksum=false;
+}
+
+//---------------------------------------------------------------------------
+File_Ancillary::~File_Ancillary()
+{
+ for (size_t Pos=0; Pos<Cdp_Data.size(); Pos++)
+ delete Cdp_Data[Pos]; //Cdp_Data[Pos]=NULL;
+ for (size_t Pos=0; Pos<AfdBarData_Data.size(); Pos++)
+ delete AfdBarData_Data[Pos]; //AfdBarData_Data[Pos]=NULL;
+}
+
+//***************************************************************************
+// Buffer - Global
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Ancillary::Read_Buffer_Continue()
+{
+ if (Element_Size==0)
+ {
+ //Clearing old data
+ for (size_t Pos=0; Pos<Cdp_Data.size(); Pos++)
+ delete Cdp_Data[Pos]; //Cdp_Data[0]=NULL;
+ Cdp_Data.clear();
+ for (size_t Pos=0; Pos<AfdBarData_Data.size(); Pos++)
+ delete AfdBarData_Data[Pos]; //AfdBarData_Data[0]=NULL;
+ AfdBarData_Data.clear();
+ return;
+ }
+
+ //Parsing
+ int8u DataID, SecondaryDataID, DataCount;
+ Get_L1 (DataID, "Data ID");
+ if (WithTenBit)
+ Skip_L1( "Parity+Unused"); //even:1, odd:2
+ Get_L1 (SecondaryDataID, "Secondary Data ID"); Param_Info(Ancillary_DataID(DataID, SecondaryDataID));
+ if (WithTenBit)
+ Skip_L1( "Parity+Unused"); //even:1, odd:2
+ Get_L1 (DataCount, "Data count");
+ if (WithTenBit)
+ Skip_L1( "Parity+Unused"); //even:1, odd:2
+
+ //Buffer
+ int8u* Payload=new int8u[DataCount];
+ for(int8u Pos=0; Pos<DataCount; Pos++)
+ {
+ Get_L1 (Payload[Pos], "Data");
+ if (WithTenBit)
+ Skip_L1( "Parity+Unused"); //even:1, odd:2
+ }
+
+ //Parsing
+ if (WithChecksum)
+ Skip_L1( "Checksum");
+ if (WithTenBit)
+ Skip_L1( "Parity+Unused"); //even:1, odd:2
+ Element_End();
+
+ FILLING_BEGIN();
+ switch (DataID)
+ {
+ case 0x41 : // (from SMPTE 2016-3)
+ switch (SecondaryDataID)
+ {
+ case 0x05 : //Bar Data (from SMPTE 2016-3), saving data for future use
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
+ {
+ buffered_data* AfdBarData=new buffered_data;
+ AfdBarData->Data=new int8u[(size_t)DataCount];
+ std::memcpy(AfdBarData->Data, Payload, (size_t)DataCount);
+ AfdBarData->Size=(size_t)DataCount;
+ AfdBarData_Data.push_back(AfdBarData);
+ }
+ #endif //MEDIAINFO_AFDBARDATA_YES
+ break;
+ default : ;
+ ;
+ }
+ break;
+ case 0x45 : // (from SMPTE 2020-1)
+ switch (SecondaryDataID)
+ {
+ case 0x01 : //No association
+ case 0x02 : //Channel pair 1/2
+ case 0x03 : //Channel pair 3/4
+ case 0x04 : //Channel pair 5/6
+ case 0x05 : //Channel pair 7/8
+ case 0x06 : //Channel pair 9/10
+ case 0x07 : //Channel pair 11/12
+ case 0x08 : //Channel pair 13/14
+ case 0x09 : //Channel pair 15/16
+ break;
+ default : ;
+ ;
+ }
+ break;
+ case 0x61 : //Defined data services (from SMPTE 331-1)
+ switch (SecondaryDataID)
+ {
+ case 0x01 : //CDP (from SMPTE 331-1), saving data for future use
+ #if defined(MEDIAINFO_CDP_YES)
+ {
+ buffered_data* Cdp=new buffered_data;
+ Cdp->Data=new int8u[(size_t)DataCount];
+ std::memcpy(Cdp->Data, Payload, (size_t)DataCount);
+ Cdp->Size=(size_t)DataCount;
+ Cdp_Data.push_back(Cdp);
+ }
+ #endif //MEDIAINFO_CDP_YES
+ break;
+ case 0x02 : //CEA-608 (from SMPTE 331-1)
+ #if defined(MEDIAINFO_EIA608_YES)
+ if (DataCount==3) //This must be 3-byte data
+ {
+ //CEA-608 in video presentation order
+ }
+ #endif //MEDIAINFO_EIA608_YES
+ break;
+ default : ;
+ ;
+ }
+ break;
+ case 0x62 : //Variable-format data services (from SMPTE 331-1)
+ switch (SecondaryDataID)
+ {
+ case 0x01 : //Program description (from SMPTE 331-1),
+ break;
+ case 0x02 : //Data broadcast (from SMPTE 331-1)
+ break;
+ case 0x03 : //VBI data (from SMPTE 331-1)
+ break;
+ default : ;
+ ;
+ }
+ break;
+ default : ;
+ }
+ FILLING_END();
+
+ delete[] Payload; //Payload=NULL
+}
+
+//***************************************************************************
+// C++
+//***************************************************************************
+
+} //NameSpace
+
+#endif //MEDIAINFO_ANCILLARY_YES
+
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Ancillary.h b/src/thirdparty/MediaInfo/Multiple/File_Ancillary.h
new file mode 100644
index 000000000..3d18031fa
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Multiple/File_Ancillary.h
@@ -0,0 +1,84 @@
+// File_Ancillary - Info for SCTE 20 streams
+// Copyright (C) 2010-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library 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 Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// Information about Ancillary data (SMPTE 291...)
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+#ifndef MediaInfo_AncillaryH
+#define MediaInfo_AncillaryH
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/File__Analyze.h"
+#include <vector>
+//---------------------------------------------------------------------------
+
+namespace MediaInfoLib
+{
+
+//***************************************************************************
+// Class File_Ancillary
+//***************************************************************************
+
+class File_Ancillary : public File__Analyze
+{
+public :
+ //In
+ bool WithTenBit;
+ bool WithChecksum;
+
+ //In/Out
+ struct buffered_data
+ {
+ size_t Size;
+ int8u* Data;
+
+ buffered_data()
+ {
+ Size=0;
+ Data=NULL;
+ }
+
+ ~buffered_data()
+ {
+ delete[] Data; //Data=NULL;
+ }
+ };
+ #if defined(MEDIAINFO_CDP_YES)
+ std::vector<buffered_data*> Cdp_Data;
+ #endif //defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
+ std::vector<buffered_data*> AfdBarData_Data;
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
+
+ //Constructor/Destructor
+ File_Ancillary();
+ ~File_Ancillary();
+
+private :
+ //Buffer - Global
+ void Read_Buffer_Continue();
+};
+
+} //NameSpace
+
+#endif
+
diff --git a/src/thirdparty/MediaInfo/Multiple/File_DvDif.cpp b/src/thirdparty/MediaInfo/Multiple/File_DvDif.cpp
index d569f0eea..1dd1f76b1 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_DvDif.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_DvDif.cpp
@@ -245,16 +245,7 @@ File_DvDif::File_DvDif()
FrameSize_Theory=0;
Duration=0;
TimeCode_First=(int64u)-1;
- SCT=(int8u)-1;
- SCT_Old=4; //Video
- DBN_Olds[0]=0;
- DBN_Olds[1]=1; //SubCode
- DBN_Olds[2]=2; //Vaux
- DBN_Olds[3]=8; //Audio
- DBN_Olds[4]=134; //Video
- DBN_Olds[5]=0;
- DBN_Olds[6]=0;
- DBN_Olds[7]=0;
+ Synched_Test_Reset();
DSF_IsValid=false;
APT=0xFF; //Impossible
video_source_stype=0xFF;
@@ -336,30 +327,6 @@ bool File_DvDif::FileHeader_Begin()
}
//***************************************************************************
-// Buffer - Synchro
-//***************************************************************************
-
-//---------------------------------------------------------------------------
-bool File_DvDif::Synchronize()
-{
- while (Buffer_Offset+8*80<=Buffer_Size //8 blocks
- && !((CC3(Buffer+Buffer_Offset+0*80)&0xE0F0FF)==0x000000 //Header 0
- && (CC3(Buffer+Buffer_Offset+1*80)&0xE0F0FF)==0x200000 //Subcode 0
- && (CC3(Buffer+Buffer_Offset+2*80)&0xE0F0FF)==0x200001 //Subcode 1
- && (CC3(Buffer+Buffer_Offset+3*80)&0xE0F0FF)==0x400000 //VAUX 0
- && (CC3(Buffer+Buffer_Offset+4*80)&0xE0F0FF)==0x400001 //VAUX 1
- && (CC3(Buffer+Buffer_Offset+5*80)&0xE0F0FF)==0x400002 //VAUX 2
- && (CC3(Buffer+Buffer_Offset+6*80)&0xE0F0FF)==0x600000 //Audio 0
- && (CC3(Buffer+Buffer_Offset+7*80)&0xE0F0FF)==0x800000)) //Video 0
- Buffer_Offset++;
-
- if (Buffer_Offset+8*80>Buffer_Size)
- return false;
-
- return true;
-}
-
-//***************************************************************************
// Streams management
//***************************************************************************
@@ -526,8 +493,12 @@ void File_DvDif::Streams_Finish()
if (TimeCode_First!=(int64u)-1)
{
Fill(Stream_Video, 0, Video_Delay, TimeCode_First);
+ Fill(Stream_Video, 0, Video_Delay_Source, "Stream");
for (size_t Pos=0; Pos<Count_Get(Stream_Audio); Pos++)
+ {
Fill(Stream_Audio, Pos, Audio_Delay, TimeCode_First);
+ Fill(Stream_Audio, Pos, Audio_Delay_Source, "Stream");
+ }
}
#if defined(MEDIAINFO_EIA608_YES)
@@ -552,6 +523,149 @@ void File_DvDif::Streams_Finish()
}
//***************************************************************************
+// Buffer - Synchro
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+bool File_DvDif::Synchronize()
+{
+ while (Buffer_Offset+8*80<=Buffer_Size //8 blocks
+ && !((CC3(Buffer+Buffer_Offset+0*80)&0xE0F0FF)==0x000000 //Header 0
+ && (CC3(Buffer+Buffer_Offset+1*80)&0xE0F0FF)==0x200000 //Subcode 0
+ && (CC3(Buffer+Buffer_Offset+2*80)&0xE0F0FF)==0x200001 //Subcode 1
+ && (CC3(Buffer+Buffer_Offset+3*80)&0xE0F0FF)==0x400000 //VAUX 0
+ && (CC3(Buffer+Buffer_Offset+4*80)&0xE0F0FF)==0x400001 //VAUX 1
+ && (CC3(Buffer+Buffer_Offset+5*80)&0xE0F0FF)==0x400002 //VAUX 2
+ && (CC3(Buffer+Buffer_Offset+6*80)&0xE0F0FF)==0x600000 //Audio 0
+ && (CC3(Buffer+Buffer_Offset+7*80)&0xE0F0FF)==0x800000)) //Video 0
+ Buffer_Offset++;
+
+ if (Buffer_Offset+8*80>Buffer_Size)
+ return false;
+
+ return true;
+}
+
+//---------------------------------------------------------------------------
+bool File_DvDif::Synched_Test()
+{
+ //Must have enough buffer for having header
+ if (Buffer_Offset+80>Buffer_Size)
+ return false;
+
+ //NULL blocks
+ if (Buffer[Buffer_Offset ]==0x00
+ && Buffer[Buffer_Offset+1]==0x00
+ && Buffer[Buffer_Offset+2]==0x00)
+ return true;
+
+ SCT =(Buffer[Buffer_Offset ]&0xE0)>>5;
+ DBN = Buffer[Buffer_Offset+2];
+
+ //DIF Sequence Numbers
+ if (DSF_IsValid)
+ {
+ if (Dseq_Old!=Dseq)
+ {
+ if (Dseq==0
+ && !(!DSF && Dseq_Old==9)
+ && !( DSF && Dseq_Old==11))
+ {
+ if (!Status[IsAccepted])
+ Trusted_IsNot("Wrong order");
+ else
+ Synched_Test_Reset();
+ }
+ Dseq_Old=Dseq;
+ }
+ }
+
+ //DIF Block Numbers
+ int8u Number=DBN_Olds[SCT]+1;
+ switch (SCT)
+ {
+ case 0 : //Header
+ if (SCT_Old!=4
+ || DBN!=0)
+ {
+ if (!Status[IsAccepted])
+ Trusted_IsNot("Wrong order");
+ else
+ Synched_Test_Reset();
+ }
+ break;
+ case 1 : //Subcode
+ if (!((DBN==0 && SCT_Old==0) || (DBN!=0 && SCT_Old==1))
+ || Number!=DBN && !(Number==2 && DBN==0))
+ {
+ if (!Status[IsAccepted])
+ Trusted_IsNot("Wrong order");
+ else
+ Synched_Test_Reset();
+ }
+ break;
+ case 2 : //VAUX
+ if (!((DBN==0 && SCT_Old==1) || (DBN!=0 && SCT_Old==2))
+ || Number!=DBN && !(Number==3 && DBN==0))
+ {
+ if (!Status[IsAccepted])
+ Trusted_IsNot("Wrong order");
+ else
+ Synched_Test_Reset();
+ }
+ break;
+ case 3 : //Audio
+ if (!((DBN==0 && SCT_Old==2) || (DBN!=0 && SCT_Old==4))
+ || Number!=DBN && !(Number==9 && DBN==0))
+ {
+ if (!Status[IsAccepted])
+ Trusted_IsNot("Wrong order");
+ else
+ Synched_Test_Reset();
+ }
+ break;
+ case 4 : //Video
+ if (!(SCT_Old==3 || SCT_Old==4)
+ || Number!=DBN && !(Number==135 && DBN==0))
+ {
+ if (!Status[IsAccepted])
+ Trusted_IsNot("Wrong order");
+ else
+ Synched_Test_Reset();
+ }
+ break;
+ default: ;
+ }
+ if (SCT!=(int8u)-1)
+ {
+ SCT_Old=SCT;
+ DBN_Olds[SCT]=DBN;
+ }
+
+ //We continue
+ return true;
+}
+
+//---------------------------------------------------------------------------
+void File_DvDif::Synched_Test_Reset()
+{
+ //Temp
+ SCT=(int8u)-1;
+ SCT_Old=4; //Video
+ DBN_Olds[0]=0;
+ DBN_Olds[1]=1; //SubCode
+ DBN_Olds[2]=2; //Vaux
+ DBN_Olds[3]=8; //Audio
+ DBN_Olds[4]=134; //Video
+ DBN_Olds[5]=0;
+ DBN_Olds[6]=0;
+ DBN_Olds[7]=0;
+
+ //Synch
+ Synched=false;
+}
+
+//***************************************************************************
// Buffer
//***************************************************************************
@@ -643,6 +757,12 @@ void File_DvDif::Header_Parse()
//---------------------------------------------------------------------------
void File_DvDif::Data_Parse()
{
+ if (Element_Code==(int64u)-1)
+ {
+ Skip_XX(Element_Size, "Junk");
+ return;
+ }
+
//Config
if (SCT!=(int8u)-1)
{
@@ -659,66 +779,6 @@ void File_DvDif::Data_Parse()
return;
}
- if (Element_Code==(int64u)-1)
- {
- Skip_XX(Element_Size, "Junk");
- return;
- }
-
- //Integrity
- if (!Status[IsAccepted])
- {
- //DIF Sequence Numbers
- if (DSF_IsValid)
- {
- if (Dseq_Old!=Dseq)
- {
- if (Dseq==0
- && !(!DSF && Dseq_Old==9)
- && !( DSF && Dseq_Old==11))
- Trusted_IsNot("Wrong order");
- Dseq_Old=Dseq;
- }
- }
-
- //DIF Block Numbers
- if (Element_Code>=8)
- return;
- int8u Number=DBN_Olds[(size_t)Element_Code]+1;
- switch (SCT)
- {
- case 0 : //Header
- if (SCT_Old!=4
- || DBN!=0)
- Trusted_IsNot("Wrong order");
- break;
- case 1 : //Subcode
- if (!((DBN==0 && SCT_Old==0) || (DBN!=0 && SCT_Old==1))
- || Number!=DBN && !(Number==2 && DBN==0))
- Trusted_IsNot("Wrong order");
- break;
- case 2 : //VAUX
- if (!((DBN==0 && SCT_Old==1) || (DBN!=0 && SCT_Old==2))
- || Number!=DBN && !(Number==3 && DBN==0))
- Trusted_IsNot("Wrong order");
- break;
- case 3 : //Audio
- if (!((DBN==0 && SCT_Old==2) || (DBN!=0 && SCT_Old==4))
- || Number!=DBN && !(Number==9 && DBN==0))
- Trusted_IsNot("Wrong order");
- break;
- case 4 : //Video
- if (!(SCT_Old==3 || SCT_Old==4)
- || Number!=DBN && !(Number==135 && DBN==0))
- Trusted_IsNot("Wrong order");
- break;
- default: ;
- }
- SCT_Old=SCT;
- if (SCT<8)
- DBN_Olds[SCT]=DBN;
- }
-
Element_Info(DBN);
switch (SCT)
diff --git a/src/thirdparty/MediaInfo/Multiple/File_DvDif.h b/src/thirdparty/MediaInfo/Multiple/File_DvDif.h
index 4445c0c57..f84c6b4c8 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_DvDif.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_DvDif.h
@@ -57,14 +57,16 @@ protected :
//Buffer - File header
bool FileHeader_Begin();
+ //Buffer - Synchro
+ bool Synchronize();
+ bool Synched_Test();
+ void Synched_Test_Reset();
+
//Buffer - Global
#ifdef MEDIAINFO_DVDIF_ANALYZE_YES
void Read_Buffer_Continue();
#endif //MEDIAINFO_DVDIF_ANALYZE_YES
- //Buffer - Synchro
- bool Synchronize();
-
//Buffer
void Header_Parse();
void Data_Parse();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp b/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp
index 11c262cdc..05236ba29 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp
@@ -385,6 +385,9 @@ File_Flv::File_Flv()
ParserIDs[0]=MediaInfo_Parser_Flv;
StreamIDs_Width[0]=2;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
//Internal
Stream.resize(3); //Null, Video, Audio
@@ -452,9 +455,15 @@ void File_Flv::Streams_Finish()
//Delay
if (Stream[Stream_Video].Delay!=(int32u)-1)
+ {
Fill(Stream_Video, 0, Video_Delay, Stream[Stream_Video].Delay+Retrieve(Stream_Video, 0, Video_Delay).To_int32u(), 10, true);
+ Fill(Stream_Video, 0, Video_Delay_Source, "Container");
+ }
if (Stream[Stream_Audio].Delay!=(int32u)-1)
+ {
Fill(Stream_Audio, 0, Audio_Delay, Stream[Stream_Audio].Delay+Retrieve(Stream_Audio, 0, Audio_Delay).To_int32u(), 10, true);
+ Fill(Stream_Audio, 0, Audio_Delay_Source, "Container");
+ }
//Duration
int64u Duration_Final=(int64u)meta_duration;
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp
index 70dfe188a..16872d9e6 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp
@@ -31,6 +31,7 @@
//---------------------------------------------------------------------------
#include "MediaInfo/Multiple/File_Gxf.h"
+#include "MediaInfo/Multiple/File_Gxf_TimeCode.h"
#if defined(MEDIAINFO_RIFF_YES)
#include "MediaInfo/Multiple/File_Riff.h"
#endif
@@ -46,6 +47,7 @@
#if MEDIAINFO_EVENTS
#include "MediaInfo/MediaInfo_Events.h"
#endif //MEDIAINFO_EVENTS
+#include "MediaInfo/MediaInfo_Config_MediaInfo.h"
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -233,6 +235,9 @@ File_Gxf::File_Gxf()
ParserIDs[0]=MediaInfo_Parser_Gxf;
StreamIDs_Width[0]=2;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
@@ -240,23 +245,23 @@ File_Gxf::File_Gxf()
Material_Fields_FieldsPerFrame=(int8u)-1;
Parsers_Count=0;
AncillaryData_StreamID=(int8u)-1;
+ TimeCode_StreamID=(int8u)-1;
Material_Fields_First_IsValid=false;
Material_Fields_Last_IsValid=false;
Material_File_Size_IsValid=false;
UMF_File=NULL;
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ Ancillary=NULL;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
SizeToAnalyze=16*1024*1024;
+ TimeCode_First=(int64u)-1;
}
//---------------------------------------------------------------------------
File_Gxf::~File_Gxf()
{
- //In
- for (size_t Pos=0; Pos<Cdp_Data.size(); Pos++)
- delete Cdp_Data[Pos]; //Cdp_Data[Pos]=NULL;
- for (size_t Pos=0; Pos<AfdBarData_Data.size(); Pos++)
- delete AfdBarData_Data[Pos]; //AfdBarData_Data[Pos]=NULL;
-
//Temp
+ delete Ancillary; //Ancillary=NULL;
delete UMF_File; //UMF_File=NULL;
}
@@ -267,6 +272,10 @@ File_Gxf::~File_Gxf()
//---------------------------------------------------------------------------
void File_Gxf::Streams_Finish()
{
+ //TimeCode
+ if (TimeCode_First==(int64u)-1 && TimeCode_StreamID!=(int8u)-1 && Streams[TimeCode_StreamID].Parser)
+ TimeCode_First=Streams[TimeCode_StreamID].Parser->Retrieve(Stream_Video, 0, Video_Delay).To_int64u();
+
//Merging audio if Title are same
for (size_t StreamID=0; StreamID<Streams.size(); StreamID++)
{
@@ -282,7 +291,7 @@ void File_Gxf::Streams_Finish()
Streams[StreamID].MediaName=Title;
}
}
- if (Gxf_MediaTypes_StreamKind(Streams[StreamID].MediaType)==Stream_Audio)
+ if (Gxf_MediaTypes_StreamKind(Streams[StreamID].MediaType)==Stream_Audio && Config->File_Audio_MergeMonoStreams_Get())
{
Ztring Title=Streams[StreamID].MediaName;
size_t Title_Extension_Offset=Title.find(_T(".A0"));
@@ -313,9 +322,9 @@ void File_Gxf::Streams_Finish()
Streams_Finish_PerStream(StreamID, Streams[StreamID]);
//Global
- if (Material_Fields_First_IsValid && Material_Fields_Last_IsValid && Material_Fields_FieldsPerFrame!=(int8u)-1)
+ if (Material_Fields_First_IsValid && Material_Fields_Last_IsValid && Material_Fields_FieldsPerFrame!=(int8u)-1 && Material_Fields_Last-Material_Fields_First)
{
- Fill(Stream_Video, 0, Video_FrameCount, (Material_Fields_Last-Material_Fields_First)/(Material_Fields_FieldsPerFrame==2?2:1));
+ Fill(Stream_Video, 0, Video_FrameCount, (Material_Fields_Last+1-Material_Fields_First)/(Material_Fields_FieldsPerFrame==2?2:1));
//We trust more the MPEG Video bitrate thant the rest
//TODO: Chech why there is incohenrency (mainly about Material File size info in the sample)
@@ -340,29 +349,55 @@ void File_Gxf::Streams_Finish_PerStream(size_t StreamID, stream &Temp)
StreamKind_Last=Stream_Max;
StreamPos_Last=(size_t)-1;
Finish(Temp.Parser);
- Merge(*Temp.Parser);
- //Special cases
- if (Temp.Parser->Count_Get(Stream_Video) && Temp.Parser->Count_Get(Stream_Text))
+ //Video
+ if (Temp.Parser->Count_Get(Stream_Video) && StreamID!=TimeCode_StreamID)
+ {
+ Stream_Prepare(Stream_Video);
+
+ if (TimeCode_First!=(int64u)-1)
+ {
+ Fill(Stream_Video, StreamPos_Last, Video_Delay, TimeCode_First, 0, true);
+ Fill(Stream_Video, StreamPos_Last, Video_Delay_Source, "Container");
+ }
+
+ Merge(*Temp.Parser, Stream_Video, 0, StreamPos_Last);
+
+ //Special cases
+ if (Temp.Parser->Count_Get(Stream_Text))
+ {
+ //Video and Text are together
+ size_t Parser_Text_Count=Temp.Parser->Count_Get(Stream_Text);
+ for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
+ {
+ Stream_Prepare(Stream_Text);
+ Merge(*Temp.Parser, Stream_Text, Parser_Text_Pos, StreamPos_Last);
+ Ztring ID=Retrieve(Stream_Text, StreamPos_Last, Text_ID);
+ Fill(Stream_Text, StreamPos_Last, Text_ID, Ztring::ToZtring(AncillaryData_StreamID)+_T("-")+ID, true);
+ Fill(Stream_Text, StreamPos_Last, Text_ID_String, Ztring::ToZtring(AncillaryData_StreamID)+_T("-")+ID, true);
+ Fill(Stream_Text, StreamPos_Last, Text_Delay, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Delay), true);
+ Fill(Stream_Text, StreamPos_Last, Text_Delay_Source, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Delay_Source), true);
+ Fill(Stream_Text, StreamPos_Last, Text_Delay_Original, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Delay_Original), true);
+ Fill(Stream_Text, StreamPos_Last, Text_Delay_Original_Source, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Delay_Original_Source), true);
+ }
+
+ StreamKind_Last=Stream_Video;
+ StreamPos_Last=Count_Get(Stream_Video)-1;
+ }
+ }
+
+ //Audio
+ if (Temp.Parser->Count_Get(Stream_Audio) && StreamID!=TimeCode_StreamID)
{
- //Video and Text are together
- size_t Parser_Text_Count=Temp.Parser->Count_Get(Stream_Text);
- for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
+ Stream_Prepare(Stream_Audio);
+
+ if (TimeCode_First!=(int64u)-1)
{
- size_t Text_Pos=Count_Get(Stream_Text)-Parser_Text_Count+Parser_Text_Pos;
- Ztring MuxingMode=Retrieve(Stream_Text, Text_Pos, "MuxingMode");
- Fill(Stream_Text, Text_Pos, "MuxingMode", _T("Ancillary data / ")+MuxingMode, true);
- if (!IsSub)
- Fill(Stream_Text, Text_Pos, "MuxingMode_MoreInfo", _T("Muxed in Video #")+Ztring().From_Number(Temp.StreamPos+1));
- Fill(Stream_Video, Count_Get(Stream_Video)-1, General_ID, StreamID);
- Ztring ID=Retrieve(Stream_Text, Text_Pos, Text_ID);
- Fill(Stream_Text, Text_Pos, Text_ID, Ztring::ToZtring(AncillaryData_StreamID)+_T("-")+ID, true);
- Fill(Stream_Text, Text_Pos, Text_ID_String, Ztring::ToZtring(AncillaryData_StreamID)+_T("-")+ID, true);
- Fill(Stream_Text, Text_Pos, Text_Delay, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Delay), true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_Delay, TimeCode_First, 0, true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_Delay_Source, "Container");
}
- StreamKind_Last=Stream_Video;
- StreamPos_Last=Count_Get(Stream_Video)-1;
+ Merge(*Temp.Parser, Stream_Audio, 0, StreamPos_Last);
}
//Metadata
@@ -476,6 +511,9 @@ void File_Gxf::Header_Parse()
//---------------------------------------------------------------------------
void File_Gxf::Data_Parse()
{
+ //Counting
+ Frame_Count++;
+
switch (Element_Code)
{
case 0x00 : Finish("GXF"); break;
@@ -629,6 +667,24 @@ void File_Gxf::map()
#endif //MEDIAINFO_DEMUX
switch (MediaType)
{
+ case 3 :
+ case 4 : //M-JPEG
+ Streams[TrackID].Parser=new File__Analyze; //Filling with following data
+ Open_Buffer_Init(Streams[TrackID].Parser);
+ Streams[TrackID].Parser->Accept();
+ Streams[TrackID].Parser->Fill();
+ Streams[TrackID].Parser->Stream_Prepare(Stream_Video);
+ Streams[TrackID].Parser->Fill(Stream_Video, 0, Video_Format, "M-JPEG");
+ break;
+ case 7 :
+ case 8 :
+ case 24 : //TimeCode
+ Streams[TrackID].Parser=new File_Gxf_TimeCode;
+ Open_Buffer_Init(Streams[TrackID].Parser);
+ Parsers_Count++;
+ Streams[TrackID].Searching_Payload=true;
+ TimeCode_StreamID=TrackID;
+ break;
case 9 :
case 10 :
case 18 : //PCM
@@ -645,8 +701,7 @@ void File_Gxf::map()
case 22 :
case 23 : //MPEG Video
Streams[TrackID].Parser=new File_Mpegv();
- ((File_Mpegv*)Streams[TrackID].Parser)->Cdp_Data=&Cdp_Data;
- ((File_Mpegv*)Streams[TrackID].Parser)->AfdBarData_Data=&AfdBarData_Data;
+ ((File_Mpegv*)Streams[TrackID].Parser)->Ancillary=&Ancillary;
Open_Buffer_Init(Streams[TrackID].Parser);
Parsers_Count++;
Streams[TrackID].Searching_Payload=true;
@@ -654,7 +709,14 @@ void File_Gxf::map()
case 13 :
case 14 :
case 15 :
- case 16 : /*Streams[TrackID].Parser=new File_DvDif(); Parsers_Count++; break;*/
+ case 16 : //DV
+ Streams[TrackID].Parser=new File__Analyze; //Filling with following data
+ Open_Buffer_Init(Streams[TrackID].Parser);
+ Streams[TrackID].Parser->Accept();
+ Streams[TrackID].Parser->Fill();
+ Streams[TrackID].Parser->Stream_Prepare(Stream_Video);
+ Streams[TrackID].Parser->Fill(Stream_Video, 0, Video_Format, "DV");
+ break;
case 17 : //AC-3
Streams[TrackID].Parser=new File__Analyze; //Filling with following data
Open_Buffer_Init(Streams[TrackID].Parser);
@@ -665,14 +727,17 @@ void File_Gxf::map()
break;
case 21 : //Ancillary Metadata
Streams[TrackID].Parser=new File_Riff();
- ((File_Riff*)Streams[TrackID].Parser)->Cdp_Data=&Cdp_Data;
- ((File_Riff*)Streams[TrackID].Parser)->AfdBarData_Data=&AfdBarData_Data;
+ ((File_Riff*)Streams[TrackID].Parser)->Ancillary=&Ancillary;
Open_Buffer_Init(Streams[TrackID].Parser);
Parsers_Count++;
Streams[TrackID].Searching_Payload=true;
- if (SizeToAnalyze<4*16*1024*1024)
- SizeToAnalyze*=4; //4x more, to be sure to find captions
+ Ancillary=new File_Ancillary;
+ Ancillary->WithTenBit=true;
+ Ancillary->WithChecksum=true;
+ Open_Buffer_Init(Ancillary);
AncillaryData_StreamID=TrackID;
+ if (SizeToAnalyze<8*16*1024*1024)
+ SizeToAnalyze*=8; //10x more, to be sure to find captions
break;
default : ;
}
@@ -730,6 +795,10 @@ void File_Gxf::map()
}
FILLING_END();
+ int8u Hours=(int8u)-1, Minutes=(int8u)-1, Seconds=(int8u)-1, Frames=(int8u)-1;
+ bool Invalid, DropFrame=true;
+ bool TimeCode_Parsed=false;
+
while (Element_Offset<Track_End)
{
Element_Begin("Tag");
@@ -760,19 +829,20 @@ void File_Gxf::map()
if (MediaType==7 || MediaType==8 || MediaType==24)
{
//TimeCode
- Skip_B1( "Frame");
- Skip_B1( "Second");
- Skip_B1( "Minute");
+ Get_B1 (Frames, "Frame");
+ Get_B1 (Seconds, "Second");
+ Get_B1 (Minutes, "Minute");
BS_Begin();
- Skip_SB( "Invalid");
+ Get_SB ( Invalid, "Invalid");
Skip_SB( "Color frame");
- Skip_SB( "Drop frame");
- Skip_S1(5, "Hour");
+ Get_SB ( DropFrame, "Drop frame");
+ Get_S1 (5, Hours, "Hour");
BS_End();
Skip_B1( "User bits");
Skip_B1( "User bits");
Skip_B1( "User bits");
Skip_B1( "User bits");
+ TimeCode_Parsed=true;
}
else
Skip_B8( "Content");
@@ -793,7 +863,9 @@ void File_Gxf::map()
if (DataLength==4)
{
Get_B4 (Streams[TrackID].FrameRate_Code, "Content"); Param_Info(Gxf_FrameRate(Streams[TrackID].FrameRate_Code)); Element_Info(Gxf_FrameRate(Streams[TrackID].FrameRate_Code));
- }
+ if (TrackID==TimeCode_StreamID)
+ ((File_Gxf_TimeCode*)Streams[TrackID].Parser)->FrameRate_Code=Streams[0x00].FrameRate_Code;
+ }
else
Skip_XX(DataLength, "Unknown");
break;
@@ -811,6 +883,8 @@ void File_Gxf::map()
Get_B4 (Streams[TrackID].FieldsPerFrame_Code, "Content"); Param_Info(Gxf_FieldsPerFrame(Streams[TrackID].FieldsPerFrame_Code)); Element_Info(Gxf_FieldsPerFrame(Streams[TrackID].FieldsPerFrame_Code));
if (Gxf_MediaTypes_StreamKind(MediaType)==Stream_Video)
Material_Fields_FieldsPerFrame=Streams[TrackID].FieldsPerFrame_Code;
+ if (TrackID==TimeCode_StreamID)
+ ((File_Gxf_TimeCode*)Streams[TrackID].Parser)->FieldsPerFrame_Code=Streams[0x00].FieldsPerFrame_Code;
}
else
Skip_XX(DataLength, "Unknown");
@@ -820,6 +894,19 @@ void File_Gxf::map()
Element_End();
}
Element_End();
+
+ //Test on TimeCode
+ if (TimeCode_Parsed)
+ {
+ if (!Invalid && TimeCode_First==(int64u)-1)
+ {
+ float32 FrameRate=Gxf_FrameRate(Streams[TrackID].FrameRate_Code);
+ TimeCode_First=Hours *60*60*1000
+ +Minutes *60*1000
+ +Seconds *1000
+ +float32_int64s(Frames*1000/FrameRate);
+ }
+ }
}
Element_End();
if (Element_Offset<Element_Size)
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Gxf.h b/src/thirdparty/MediaInfo/Multiple/File_Gxf.h
index 6edae0741..8c81491be 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Gxf.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Gxf.h
@@ -30,9 +30,9 @@
//---------------------------------------------------------------------------
#include "MediaInfo/File__Analyze.h"
-#if defined(MEDIAINFO_CDP_YES)
- #include "MediaInfo/Multiple/File_Riff.h"
-#endif //MEDIAINFO_CDP_YES
+#if defined(MEDIAINFO_ANCILLARY_YES)
+ #include <MediaInfo/Multiple/File_Ancillary.h>
+#endif //defined(MEDIAINFO_ANCILLARY_YES)
#include <map>
//---------------------------------------------------------------------------
@@ -49,15 +49,6 @@ public :
//Constructor/Destructor
File_Gxf();
~File_Gxf();
-
- //In
- #if defined(MEDIAINFO_CDP_YES)
- std::vector<File_Riff::buffered_data*> Cdp_Data;
- #endif //MEDIAINFO_CDP_YES
- #if defined(MEDIAINFO_AFDBARDATA_YES)
- std::vector<File_Riff::buffered_data*> AfdBarData_Data;
- #endif //MEDIAINFO_AFDBARDATA_YES
-
private :
//Streams management
void Streams_Finish();
@@ -78,12 +69,16 @@ private :
void UMF_file();
//Temp - Global
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ File_Ancillary* Ancillary;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
int32u Material_Fields_First;
int32u Material_Fields_Last;
int32u Material_File_Size;
int32u Material_Fields_FieldsPerFrame;
int8u Parsers_Count;
int8u AncillaryData_StreamID;
+ int8u TimeCode_StreamID;
bool Material_Fields_First_IsValid;
bool Material_Fields_Last_IsValid;
bool Material_File_Size_IsValid;
@@ -128,6 +123,7 @@ private :
std::vector<stream> Streams;
File__Analyze* UMF_File;
int64u SizeToAnalyze; //Total size of a chunk to analyse, it may be changed by the parser
+ int64u TimeCode_First;
//File__Analyze helpers
void Streams_Finish_PerStream(size_t StreamID, stream &Temp);
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.cpp b/src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.cpp
new file mode 100644
index 000000000..f164af816
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.cpp
@@ -0,0 +1,207 @@
+// File_Gxf_TimeCode - Info for GXF (SMPTE 360M) files
+// Copyright (C) 2010-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library 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 Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+// Compilation conditions
+#include "MediaInfo/Setup.h"
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#if defined(MEDIAINFO_GXF_YES)
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/Multiple/File_Gxf_TimeCode.h"
+#if MEDIAINFO_EVENTS
+ #include "MediaInfo/MediaInfo_Events.h"
+#endif //MEDIAINFO_EVENTS
+#include "MediaInfo/MediaInfo_Config_MediaInfo.h"
+//---------------------------------------------------------------------------
+
+namespace MediaInfoLib
+{
+
+//***************************************************************************
+// Constants
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+extern double Gxf_FrameRate(int32u Content);
+
+//***************************************************************************
+// Constructor/Destructor
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+File_Gxf_TimeCode::File_Gxf_TimeCode()
+:File__Analyze()
+{
+ //Configuration
+ ParserName=_T("GXF");
+ #if MEDIAINFO_EVENTS
+ ParserIDs[0]=MediaInfo_Parser_Gxf;
+ StreamIDs_Width[0]=2;
+ #endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
+
+ //In
+ FrameRate_Code=(int32u)-1;
+ FieldsPerFrame_Code=(int32u)-1;
+
+ //Out
+ TimeCode_First=(int64u)-1;
+}
+
+//---------------------------------------------------------------------------
+File_Gxf_TimeCode::~File_Gxf_TimeCode()
+{
+}
+
+//***************************************************************************
+// Streams management
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Gxf_TimeCode::Streams_Fill()
+{
+ Stream_Prepare(Stream_Video);
+ Fill(Stream_Video, 0, Video_Delay, TimeCode_First);
+ Fill(Stream_Video, 0, Video_Delay_Source, "Container");
+
+ Stream_Prepare(Stream_Audio);
+ Fill(Stream_Audio, 0, Audio_Delay, TimeCode_First);
+ Fill(Stream_Audio, 0, Audio_Delay_Source, "Container");
+}
+
+//***************************************************************************
+// Buffer - Global
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Gxf_TimeCode::Read_Buffer_Continue()
+{
+ if (Element_Size!=4096)
+ {
+ Skip_XX(Element_Size, "Data");
+ return;
+ }
+
+ //Reading bitmap first (validity of first byte is at the end)
+ Element_Offset=504*8;
+ Element_Begin("Validity");
+ int8u Validity[504];
+ BS_Begin_LE(); //is Little Endian
+ for (size_t Pos=0; Pos<504; Pos++)
+ {
+ bool Validity_Bit;
+ Get_SB (Validity_Bit, "Bit");
+ Validity[Pos]=Validity_Bit?1:0;
+ }
+ BS_End_LE();
+ Skip_B1( "Pad");
+ Element_End();
+
+ //Parsing
+ Element_Offset=0;
+ for (size_t Pos=0; Pos<504; Pos++)
+ {
+ if (Validity[Pos])
+ {
+ Element_Begin("TimeCode");
+ int8u Frames_Units, Frames_Tens, Seconds_Units, Seconds_Tens, Minutes_Units, Minutes_Tens, Hours_Units, Hours_Tens;
+ bool DropFrame;
+ BS_Begin();
+
+ Skip_S1(4, "BG1");
+ Get_S1 (4, Frames_Units, "Frames (Units)");
+
+ Skip_S1(4, "BG2");
+ Skip_SB( "CF - Color fame");
+ Get_SB ( DropFrame, "DP - Drop frame");
+ Get_S1 (2, Frames_Tens, "Frames (Tens)");
+
+ Skip_S1(4, "BG3");
+ Get_S1 (4, Seconds_Units, "Seconds (Units)");
+
+ Skip_S1(4, "BG4");
+ Skip_SB( "FM - Frame Mark");
+ Get_S1 (3, Seconds_Tens, "Seconds (Tens)");
+
+ Skip_S1(4, "BG5");
+ Get_S1 (4, Minutes_Units, "Minutes (Units)");
+
+ Skip_S1(4, "BG6");
+ Skip_SB( "BGF0");
+ Get_S1 (3, Minutes_Tens, "Minutes (Tens)");
+
+ Skip_S1(4, "BG7");
+ Get_S1 (4, Hours_Units, "Hours (Units)");
+
+ Skip_S1(4, "BG8");
+ Skip_SB( "BGF2");
+ Skip_SB( "BGF1");
+ Get_S1 (2, Hours_Tens, "Hours (Tens)");
+
+ BS_End();
+
+ int64u TimeCode=(int64u)(Hours_Tens *10*60*60*1000
+ + Hours_Units *60*60*1000
+ + Minutes_Tens *10*60*1000
+ + Minutes_Units *60*1000
+ + Seconds_Tens *10*1000
+ + Seconds_Units *1000
+ + (Gxf_FrameRate(FrameRate_Code)==0?0:((Frames_Tens*10+Frames_Units)*1000/float64_int32s(Gxf_FrameRate(FrameRate_Code)/(Gxf_FrameRate(FrameRate_Code)>30?2:1)))));
+
+ Element_Info(Ztring().Duration_From_Milliseconds(TimeCode));
+
+ Element_End();
+
+ FILLING_BEGIN();
+ if (TimeCode_First==(int64u)-1)
+ TimeCode_First=TimeCode;
+ FILLING_END();
+ }
+ else
+ Skip_XX(8, "Junk");
+ }
+
+ //bitmap, already parsed
+ Element_Offset+=64;
+
+ FILLING_BEGIN();
+ if (!Status[IsFilled] && TimeCode_First!=(int64u)-1)
+ {
+ Accept();
+ Fill();
+
+ if (MediaInfoLib::Config.ParseSpeed_Get()<1)
+ Finish();
+ }
+
+ FILLING_END();
+}
+
+} //NameSpace
+
+#endif //MEDIAINFO_GXF_YES
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.h b/src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.h
new file mode 100644
index 000000000..8ee229cfa
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Multiple/File_Gxf_TimeCode.h
@@ -0,0 +1,69 @@
+// File_Gxf - Info for GXF (SMPTE 360M) files
+// Copyright (C) 2010-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library 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 Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// Information about GXF files
+// SMPTE 360M - General Exchange Format
+// SMPTE RDD 14-2007 - General Exchange Format-2
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//---------------------------------------------------------------------------
+#ifndef MediaInfo_File_Gxf_TimeCodeH
+#define MediaInfo_File_Gxf_TimeCodeH
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#include "MediaInfo/File__Analyze.h"
+#if defined(MEDIAINFO_ANCILLARY_YES)
+ #include <MediaInfo/Multiple/File_Ancillary.h>
+#endif //defined(MEDIAINFO_ANCILLARY_YES)
+#include <map>
+//---------------------------------------------------------------------------
+
+namespace MediaInfoLib
+{
+
+//***************************************************************************
+// Class File_Gxf_TimeCode
+//***************************************************************************
+
+class File_Gxf_TimeCode : public File__Analyze
+{
+public :
+ //In
+ int32u FrameRate_Code;
+ int32u FieldsPerFrame_Code;
+
+ //Out
+ int64u TimeCode_First;
+
+ //Constructor/Destructor
+ File_Gxf_TimeCode();
+ ~File_Gxf_TimeCode();
+private :
+ //Streams management
+ void Streams_Fill();
+
+ //Buffer - Global
+ void Read_Buffer_Continue ();
+};
+
+} //NameSpace
+
+#endif
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
index 6275c2699..5f9988ded 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
@@ -40,11 +40,42 @@
#if MEDIAINFO_EVENTS
#include "MediaInfo/MediaInfo_Events.h"
#endif //MEDIAINFO_EVENTS
+#include "MediaInfo/MediaInfo_Config_MediaInfo.h"
+#include <bitset>
+using namespace std;
//---------------------------------------------------------------------------
namespace MediaInfoLib
{
+const char* Lxf_Format_Video[16]=
+{
+ "M-JPEG",
+ "MPEG Video", //Version 1
+ "MPEG Video", //Version 2, 4:2:0
+ "MPEG Video", //Version 2, 4:2:2
+ "DV", //25 Mbps 4:1:1 or 4:2:0
+ "DV", //DVCPRO
+ "DV", //DVCPRO 50
+ "RGB", //RGB uncompressed
+ "Gray", //Gray uncompressed
+ "MPEG Video", //Version 2, 4:2:2, GOP=9
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+};
+
+const char* Lxf_PictureType[4]=
+{
+ "I", //Closed
+ "I", //Open
+ "P",
+ "B",
+};
+
//***************************************************************************
// Constructor/Destructor
//***************************************************************************
@@ -59,13 +90,16 @@ File_Lxf::File_Lxf()
ParserIDs[0]=MediaInfo_Parser_Lxf;
StreamIDs_Width[0]=4; //2 numbers for Code, 2 numbers for subcode
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
MustSynchronize=true;
//Temp
- Frame_Count=0;
LookingForLastFrame=false;
Stream_Count=0;
Info_General_StreamSize=0;
+ Audio_Sizes_Pos=(size_t)-1;
}
//***************************************************************************
@@ -87,7 +121,31 @@ void File_Lxf::Streams_Fill_PerStream(File__Analyze* Parser)
if (Parser==NULL)
return;
- Merge(*Parser);
+ if (Parser->Count_Get(Stream_Audio) && Config->File_Audio_MergeMonoStreams_Get())
+ {
+ if (Count_Get(Stream_Audio)==0)
+ {
+ Merge(*Parser);
+ Fill(Stream_Audio, 0, Audio_Channel_s_, Audio_Sizes.size(), 10, true);
+ int64u BitRate=Retrieve(Stream_Audio, 0, Audio_BitRate).To_int64u();
+ Fill(Stream_Audio, 0, Audio_BitRate, BitRate*Audio_Sizes.size(), 10, true);
+ #if MEDIAINFO_DEMUX
+ if (Config->Demux_ForceIds_Get())
+ {
+ for (size_t Pos=0; Pos<Audio_Sizes.size(); Pos++)
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, 0x200+Pos); //only 1 video stream or only 1 audio stream but with separated channels, artificial id
+ }
+ #endif //MEDIAINFO_DEMUX
+ }
+ }
+ else
+ {
+ Merge(*Parser);
+ #if MEDIAINFO_DEMUX
+ if (Config->Demux_ForceIds_Get())
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, 0x100*StreamKind_Last+StreamPos_Last); //only 1 video stream or only 1 audio stream but with separated channels, artificial id
+ #endif //MEDIAINFO_DEMUX
+ }
}
//---------------------------------------------------------------------------
@@ -120,7 +178,6 @@ void File_Lxf::Streams_Finish()
for (size_t Pos=0; Pos<Audios.size(); Pos++)
if (Audios[Pos].BytesPerFrame!=(int64u)-1)
Info_General_StreamSize+=Audios[Pos].BytesPerFrame*Retrieve(Stream_Audio, Pos, Audio_FrameCount).To_int64u();
- int64u BitRate=(File_Size-Info_General_StreamSize)*8*1000/Duration;
Fill(Stream_General, 0, General_StreamSize, Info_General_StreamSize);
Fill(Stream_Video, 0, Video_StreamSize, File_Size-Info_General_StreamSize);
}
@@ -175,6 +232,9 @@ bool File_Lxf::Synchronize()
//---------------------------------------------------------------------------
bool File_Lxf::Synched_Test()
{
+ if (Audio_Sizes_Pos<Audio_Sizes.size())
+ return true;
+
//Must have enough buffer for having header
if (Buffer_Offset+16>Buffer_Size)
return false;
@@ -188,110 +248,162 @@ bool File_Lxf::Synched_Test()
}
//***************************************************************************
+// Buffer - Global
+//***************************************************************************
+
+//***************************************************************************
// Buffer - Per element
//***************************************************************************
//---------------------------------------------------------------------------
void File_Lxf::Header_Parse()
{
- //parsing
- int64u Code, BlockSize;
+ if (Audio_Sizes_Pos<Audio_Sizes.size())
+ {
+ //Filling
+ Header_Fill_Code(0x010200+Audio_Sizes_Pos, _T("Stream"));
+ Header_Fill_Size(Audio_Sizes[Audio_Sizes_Pos]);
+ Audio_Sizes_Pos++;
+ return;
+ }
+
+ //Parsing
+ int64u BlockSize;
+ int32u Type;
Skip_C8( "Signature");
- Skip_L4( "Always 0x00000001");
- Skip_L4( "Always 0x00000048 (header size?)");
- Get_L8 (Code, "Code");
- switch(Code)
+ Skip_L4( "Version"); //0=start and duration are in field, 1=in 27 MHz values
+ Skip_L4( "Header size");
+ Get_L4 (Type, "Type");
+ Skip_L4( "Stream ID");
+ switch(Type)
{
case 0 : //Video
{
- Sizes.resize(2);
+ Video_Sizes.resize(2);
int64u Size;
+ int8u Format;
BlockSize=0;
Info_L8(TimeStamp, "TimeStamp"); Param_Info(((float64)TimeStamp)/720, 3, " ms");
Info_L8(Duration, "Duration"); Param_Info(((float64)Duration)/720, 3, " ms");
- Skip_L4( "Always same in data");
- Get_L8(Size, "Block size");
- Sizes[1]=Size;
+ BS_Begin_LE();
+ Get_S1 (4, Format, "Format"); Param_Info(Lxf_Format_Video[Format]);
+ Skip_S1(7, "GOP (N)");
+ Skip_S1(3, "GOP (M)");
+ Info_S1(8, BitRate, "Bit rate"); Param_Info(BitRate*1000000, " bps");
+ Info_S1(2, PictureType, "Picture type"); Param_Info(Lxf_PictureType[PictureType]);
+ BS_End_LE();
+ Skip_L1( "Reserved");
+ Get_L8(Size, "Video data size");
+ Video_Sizes[1]=Size;
BlockSize+=Size;
- Get_L8(Size, "Block size");
- Sizes[0]=Size;
+ Get_L8(Size, "VBI data size");
+ Video_Sizes[0]=Size;
BlockSize+=Size;
- Skip_L4( "? (Always zero)");
+ Skip_L4( "? (Always 0x00000000)");
Info_L8(Reverse, "Reverse TimeStamp"); Param_Info(((float64)Reverse)/720, 3, " ms");
if (Videos_Header.TimeStamp_Begin==(int64u)-1)
Videos_Header.TimeStamp_Begin=TimeStamp;
Videos_Header.TimeStamp_End=TimeStamp+Duration;
Videos_Header.Duration=Duration;
+
+ //Cleanup of sizes
+ for (size_t Pos=0; Pos<Video_Sizes.size(); Pos++)
+ if (Video_Sizes[Pos]==0)
+ {
+ Video_Sizes.erase(Video_Sizes.begin()+Pos);
+ Pos--;
+ }
+ else
+ break;
}
break;
case 1 : //Audio
{
- int32u Info, Size;
+ int32u Size;
+ int8u Channels_Count=0;
+ bitset<32> Channels;
Info_L8(TimeStamp, "TimeStamp"); Param_Info(((float64)TimeStamp)/720, 3, " ms");
Info_L8(Duration, "Duration"); Param_Info(((float64)Duration)/720, 3, " ms");
- Skip_L4( "? (Non-Zero, same in all blocks)");
- Get_L4(Info, "Info?");
+ BS_Begin_LE();
+ Get_S1 ( 6, SampleSize, "Sample size");
+ Skip_S1( 6, "Sample precision");
+ Skip_S1(20, "Reserved");
+ BS_End_LE();
+ Element_Begin("Channels mask");
+ BS_Begin_LE();
+ for (size_t Pos=0; Pos<32; Pos++)
+ {
+ bool Channel;
+ Get_SB(Channel, "Channel");
+ Channels[Pos]=Channel;
+ if (Channel)
+ Channels_Count++;
+ }
+ BS_End_LE();
+ Element_End();
Get_L4(Size, "Block size (divided by ?)");
- Skip_L4( "? (Always zero)");
- Skip_L4( "? (Always zero)");
- Skip_L4( "? (Always zero)");
+ Skip_L4( "Reserved");
+ Skip_L4( "Reserved");
+ Skip_L4( "Reserved");
Info_L8(Reverse, "Reverse TimeStamp"); Param_Info(((float64)Reverse)/720, 3, " ms");
-
- size_t Multiplier;
- switch (Info)
- {
- case 0x03 : Multiplier=2; break;
- case 0x0F : Multiplier=4; break;
- default : Multiplier=0; Trusted++; //Unknown size, will unsynch
- }
- Sizes.resize(Multiplier);
- for (size_t Pos=0; Pos<Sizes.size(); Pos++)
- Sizes[Pos]=Size;
- BlockSize=Size*Multiplier;
+ Audio_Sizes.resize(Channels_Count);
+ for (size_t Pos=0; Pos<Audio_Sizes.size(); Pos++)
+ Audio_Sizes[Pos]=Size;
+ BlockSize=Size*Channels_Count;
if (Audios_Header.TimeStamp_Begin==(int64u)-1)
Audios_Header.TimeStamp_Begin=TimeStamp;
Audios_Header.TimeStamp_End=TimeStamp+Duration;
Audios_Header.Duration=Duration;
+
+ //Cleanup of sizes
+ for (size_t Pos=0; Pos<Audio_Sizes.size(); Pos++)
+ if (Audio_Sizes[Pos]==0)
+ {
+ Audio_Sizes.erase(Audio_Sizes.begin()+Pos);
+ Pos--;
+ }
+ else
+ break;
}
break;
case 2 : //Header
{
- Sizes.resize(2);
+ Header_Sizes.resize(2);
int32u Size;
BlockSize=0;
- Skip_L8( "Always 0x00000000");
+ Skip_L8( "? (Always 0x00000000)");
Skip_L8( "?");
- Skip_L4( "?");
+ Skip_L4( "? (Always 0x00000001)");
Get_L4(Size, "Block size");
- Sizes[1]=Size;
+ Header_Sizes[0]=Size;
BlockSize+=Size;
Get_L4(Size, "Block size");
- Sizes[0]=Size;
+ Header_Sizes[1]=Size;
BlockSize+=Size;
- Skip_L4( "? (Always zero)");
- Skip_L4( "? (Always zero)");
- Skip_L4( "? (Always zero)");
+ Skip_L4( "? (Always 0x00000000)");
+ Skip_L4( "? (Always 0x00000000)");
+ Skip_L4( "? (Always 0x00000000)");
Info_L8(Reverse, "Reverse TimeStamp?"); Param_Info(((float64)Reverse)/720, 3, " ms");
+
+ //Cleanup of sizes
+ for (size_t Pos=0; Pos<Header_Sizes.size(); Pos++)
+ if (Header_Sizes[Pos]==0)
+ {
+ Header_Sizes.erase(Header_Sizes.begin()+Pos);
+ Pos--;
+ }
+ else
+ break;
}
break;
default : BlockSize=0;
}
- //Cleanup of sizes
- for (size_t Pos=0; Pos<Sizes.size(); Pos++)
- if (Sizes[Pos]==0)
- {
- Sizes.erase(Sizes.begin()+Pos);
- Pos--;
- }
- else
- break;
-
//Filling
- Header_Fill_Code(Code, Ztring::ToZtring(Code));
+ Header_Fill_Code(Type, Ztring::ToZtring(Type));
Header_Fill_Size(0x48+BlockSize);
}
@@ -303,7 +415,11 @@ void File_Lxf::Data_Parse()
case 0 : Video(); break;
case 1 : Audio(); break;
case 2 : Header(); break;
- default : Skip_XX(Element_Size, "Unknown");
+ default :
+ if (Element_Code&0x010200)
+ Audio_Stream(Element_Code&0xFF);
+ else
+ Skip_XX(Element_Size, "Unknown");
}
}
@@ -316,16 +432,16 @@ void File_Lxf::Header()
{
Element_Name("Header");
- for (size_t Pos=0; Pos<Sizes.size(); Pos++)
+ for (size_t Pos=0; Pos<Header_Sizes.size(); Pos++)
{
switch(Pos)
{
case 0 : Header_Info(); break;
case 1 : Header_Meta(); break;
- default : Skip_XX(Sizes[Pos], "Data");
+ default : Skip_XX(Header_Sizes[Pos], "Data");
}
}
- Sizes.clear();
+ Header_Sizes.clear();
Info_General_StreamSize=0x48+Element_Size;
}
@@ -336,27 +452,39 @@ void File_Lxf::Header_Info()
Element_Begin("Info?");
//Parsing
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_C8( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L8( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L3( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L4( "Unknown");
- Skip_L8( "Unknown");
- if (Sizes[0]>83)
- Skip_XX(Sizes[0]-83, "Extra?");
-
+ if (Element_Size==120)
+ {
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_C8( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L8( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ Skip_L4( "Unknown");
+ }
+ else
+ Skip_XX(120, "Unknown");
Element_End();
}
@@ -368,7 +496,7 @@ void File_Lxf::Header_Meta()
int64u Offset=0;
int64u Pos=0;
- while (Offset<Sizes[1])
+ while (Offset<Header_Sizes[1])
{
int8u Size;
Get_L1 (Size, "Size");
@@ -376,20 +504,55 @@ void File_Lxf::Header_Meta()
{
switch (Pos)
{
- case 2 : //Channel?
+ case 0 : //?
+ {
+ Skip_XX(Size, "? (8 opaque bytes)");
+ }
+ break;
+ case 1 : //Library
+ {
+ Ztring Library;
+ Get_UTF8(Size, Library, "Library?");
+ Fill(Stream_General, 0, General_Encoded_Library, Library);
+ }
+ break;
+ case 4 : //?
+ {
+ if (Size==0x10)
+ {
+ Skip_L4( "0x00000008");
+ Skip_L4( "0x00000000");
+ Skip_L4( "0x00000000");
+ Skip_L4( "0x00000092");
+ }
+ else
+ Skip_XX(Size, "Data");
+ }
+ break;
+ case 7 : //Channel?
{
Ztring Channel;
Get_UTF16L(Size, Channel, "Channel?");
Fill(Stream_General, 0, General_ServiceName, Channel);
}
break;
- case 7 : //Title
+ case 12 : //Title
{
Ztring Title;
Get_UTF16L(Size, Title, "Title");
Fill(Stream_General, 0, General_Title, Title);
}
break;
+ case 13 : //?
+ {
+ Skip_UTF16L(Size, "? (in UTF-16)");
+ }
+ break;
+ case 20 : //?
+ {
+ Skip_XX(Size, "? (8 opaque bytes)");
+ }
+ break;
default : Skip_XX(Size, "Data");
}
}
@@ -405,28 +568,49 @@ void File_Lxf::Audio()
{
Element_Name("Audio");
- for (size_t Pos=0; Pos<Sizes.size(); Pos++)
- Audio_Stream(Pos);
- Sizes.clear();
+ Audio_Sizes_Pos=0;
+ Element_ThisIsAList();
}
//---------------------------------------------------------------------------
-void File_Lxf::Audio_Stream(size_t Pos)
+bool File_Lxf::Audio_Stream(size_t Pos)
{
Element_Begin("Stream");
- Element_Code=0x0100+Pos;
- Demux(Buffer+Buffer_Offset+(size_t)Element_Offset, Sizes[Pos], ContentType_MainStream);
+ Element_Code=0x0200+Pos;
+ #if MEDIAINFO_DEMUX
+ if (SampleSize==20 && Config->Demux_PCM_20bitTo16bit_Get())
+ {
+ //Removing bits 3-0 (Little endian)
+ int8u* SixteenBit=new int8u[Audio_Sizes[Pos]];
+ size_t SixteenBit_Pos=0;
+ size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
+ size_t Buffer_Max=Buffer_Offset+(size_t)Element_Offset+Audio_Sizes[Pos];
+
+ while (Buffer_Pos+5<=Buffer_Max)
+ {
+ int64u Temp=LittleEndian2int40u(Buffer+Buffer_Pos);
+ Temp=((Temp&0xFFFF000000LL)>>8)|((Temp&0xFFFF0LL)>>4);
+ int32s2LittleEndian(SixteenBit+SixteenBit_Pos, Temp);
+ SixteenBit_Pos+=4;
+ Buffer_Pos+=5;
+ }
+
+ Demux(SixteenBit, SixteenBit_Pos, ContentType_MainStream);
+ }
+ else
+ Demux(Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)Audio_Sizes[Pos], ContentType_MainStream);
+ #endif //MEDIAINFO_DEMUX
- Skip_XX(Sizes[Pos], Sizes.size()==2?"PCM":"Unknown format");
+ Skip_XX(Audio_Sizes[Pos], Audio_Sizes.size()==2?"PCM":"Unknown format");
if (Pos>=Audios.size())
Audios.resize(Pos+1);
if (Audios[Pos].Parser==NULL)
{
//Trying to detect if this is PCM
- int64u BitRate=Sizes[Pos]*720000*8/(Audios_Header.TimeStamp_End-Audios_Header.TimeStamp_Begin);
- Audios[Pos].BytesPerFrame=Sizes[Pos];
+ int64u BitRate=Audio_Sizes[Pos]*720000*8/(Audios_Header.TimeStamp_End-Audios_Header.TimeStamp_Begin);
+ Audios[Pos].BytesPerFrame=Audio_Sizes[Pos];
Audios[Pos].Parser=new File__Analyze;
Open_Buffer_Init(Audios[Pos].Parser);
@@ -434,23 +618,16 @@ void File_Lxf::Audio_Stream(size_t Pos)
Audios[Pos].Parser->Stream_Prepare(Stream_Audio);
Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_BitRate, BitRate);
Audios[Pos].Parser->Fill(Stream_Audio, 0, Audio_BitRate_Mode, "CBR");
- if (BitRate==768000)
- {
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Format, "PCM");
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_SamplingRate, 24000);
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, 2);
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Resolution, 16);
- }
- if (BitRate==960000)
- {
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_SamplingRate, 48000);
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, 4);
- Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Resolution, 16);
- }
+ Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Format, "PCM");
+ Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_SamplingRate, 48000);
+ Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, 1);
+ Audios[Pos].Parser->Fill(Stream_Audio, StreamPos_Last, Audio_Resolution, SampleSize);
Audios[Pos].Parser->Fill();
}
Element_End();
+
+ return false;
}
//---------------------------------------------------------------------------
@@ -464,9 +641,9 @@ void File_Lxf::Video()
return;
}
- for (size_t Pos=0; Pos<Sizes.size(); Pos++)
+ for (size_t Pos=0; Pos<Video_Sizes.size(); Pos++)
Video_Stream(Pos);
- Sizes.clear();
+ Video_Sizes.clear();
FILLING_BEGIN();
Frame_Count++;
@@ -484,14 +661,14 @@ void File_Lxf::Video()
}
//---------------------------------------------------------------------------
-void File_Lxf::Video_Stream(size_t Pos)
+bool File_Lxf::Video_Stream(size_t Pos)
{
Element_Begin("Stream");
- Element_Code=0x0000+Pos;
- Demux(Buffer+Buffer_Offset+(size_t)Element_Offset, Sizes[Pos], ContentType_MainStream);
+ Element_Code=0x0100; //+Pos (no Pos until we know what is the other stream)
+ Demux(Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)Video_Sizes[Pos], ContentType_MainStream);
- if (Sizes.size()==1)
+ if (Video_Sizes[Pos]==120000)
{
#if defined(MEDIAINFO_DVDIF_YES)
if (Pos>=Videos.size())
@@ -499,10 +676,11 @@ void File_Lxf::Video_Stream(size_t Pos)
if (Videos[Pos].Parser==NULL)
{
Videos[Pos].Parser=new File_DvDif;
+ ((File_DvDif*)Videos[Pos].Parser)->IgnoreAudio=true;
Open_Buffer_Init(Videos[Pos].Parser);
Stream_Count++;
}
- Open_Buffer_Continue(Videos[Pos].Parser, Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)Sizes[Pos]);
+ Open_Buffer_Continue(Videos[Pos].Parser, Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)Video_Sizes[Pos]);
if (Videos[Pos].Parser->Status[IsFilled])
{
if (Stream_Count>0)
@@ -534,10 +712,10 @@ void File_Lxf::Video_Stream(size_t Pos)
{
if (Pos==0)
{
- Skip_XX(Sizes[Pos], "Unknown");
+ Skip_XX(Video_Sizes[Pos], "Unknown");
if (Pos>=Videos.size())
Videos.resize(Pos+1);
- Videos[Pos].BytesPerFrame=Sizes[Pos];
+ Videos[Pos].BytesPerFrame=Video_Sizes[Pos];
}
else
{
@@ -550,14 +728,14 @@ void File_Lxf::Video_Stream(size_t Pos)
Open_Buffer_Init(Videos[Pos].Parser);
Stream_Count++;
}
- Open_Buffer_Continue(Videos[Pos].Parser, Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)Sizes[Pos]);
+ Open_Buffer_Continue(Videos[Pos].Parser, Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)Video_Sizes[Pos]);
if (Videos[Pos].Parser->Status[IsFilled])
{
if (Stream_Count>0)
Stream_Count--;
}
#else
- Skip_XX(Sizes[Pos], "MPEG Video");
+ Skip_XX(Sizes[Pos], "MPEG Video");
if (Pos>=Videos.size())
Videos.resize(Pos+1);
@@ -576,6 +754,8 @@ void File_Lxf::Video_Stream(size_t Pos)
}
Element_End();
+
+ return false;
}
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Lxf.h b/src/thirdparty/MediaInfo/Multiple/File_Lxf.h
index 43a7fda25..ae8f49e81 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Lxf.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Lxf.h
@@ -63,9 +63,9 @@ protected :
void Header_Info();
void Header_Meta();
void Audio();
- void Audio_Stream(size_t Pos);
+ bool Audio_Stream(size_t Pos);
void Video();
- void Video_Stream(size_t Pos);
+ bool Video_Stream(size_t Pos);
//Streams
struct stream
@@ -98,13 +98,17 @@ protected :
stream_header Audios_Header;
//Temp
- int64u Frame_Count;
- std::vector<int64u> Sizes;
bool LookingForLastFrame;
int64u Stream_Count;
int64u Info_General_StreamSize;
+ std::vector<int64u> Header_Sizes;
+ std::vector<int64u> Audio_Sizes;
+ size_t Audio_Sizes_Pos;
+ std::vector<int64u> Video_Sizes;
+ int8u SampleSize;
};
} //NameSpace
#endif
+
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp
index 689b38498..8eff49122 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp
@@ -132,6 +132,9 @@ File_Mk::File_Mk()
ParserIDs[0]=MediaInfo_Parser_Matroska;
StreamIDs_Width[0]=16;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
DataMustAlwaysBeComplete=false;
//Temp
@@ -171,9 +174,34 @@ void File_Mk::Streams_Finish()
if (Temp->second.Parser)
{
- Ztring Duration_Temp, Codec_Temp;
StreamKind_Last=Temp->second.StreamKind;
StreamPos_Last=Temp->second.StreamPos;
+
+ //Delay
+ if (Temp->second.TimeCode_Start!=(int64u)-1 && TimecodeScale)
+ {
+ //From TimeCode
+ float64 Delay=Temp->second.TimeCode_Start*int64u_float64(TimecodeScale)/1000000.0;
+
+ //From stream format
+ if (StreamKind_Last==Stream_Audio && Count_Get(Stream_Video)==1 && Temp->second.Parser->Count_Get(Stream_General)>0)
+ {
+ if (Temp->second.Parser->Buffer_TotalBytes_FirstSynched==0)
+ ;
+ else if (Temp->second.AvgBytesPerSec!=0)
+ Delay+=((float64)Temp->second.Parser->Buffer_TotalBytes_FirstSynched)*1000/Temp->second.AvgBytesPerSec;
+ else if (Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate).To_int64u()!=0)
+ Delay+=((float64)Temp->second.Parser->Buffer_TotalBytes_FirstSynched)*1000/Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate).To_int64u();
+ else if (Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate_Nominal).To_int64u()!=0)
+ Delay+=((float64)Temp->second.Parser->Buffer_TotalBytes_FirstSynched)*1000/Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate_Nominal).To_int64u();
+ }
+
+ //Filling
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), Delay, 0, true);
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
+ }
+
+ Ztring Duration_Temp, Codec_Temp;
Duration_Temp=Retrieve(StreamKind_Last, Temp->second.StreamPos, Fill_Parameter(StreamKind_Last, Generic_Duration)); //Duration from stream is sometimes false
Codec_Temp=Retrieve(StreamKind_Last, Temp->second.StreamPos, Fill_Parameter(StreamKind_Last, Generic_Codec)); //We want to keep the 4CC
@@ -220,31 +248,6 @@ void File_Mk::Streams_Finish()
Fill(Stream_Video, StreamPos_Last, Video_FrameRate_Mode, "VFR");
}
}
-
- //Delay
- if (Temp->second.TimeCode_Start!=(int64u)-1 && TimecodeScale)
- {
- //From TimeCode
- float64 Delay=Temp->second.TimeCode_Start*int64u_float64(TimecodeScale)/1000000.0;
-
- //From stream format
- if (StreamKind_Last==Stream_Audio && Count_Get(Stream_Video)==1 && Temp->second.Parser->Count_Get(Stream_General)>0)
- {
- if (Temp->second.Parser->Buffer_TotalBytes_FirstSynched==0)
- ;
- else if (Temp->second.AvgBytesPerSec!=0)
- Delay+=((float64)Temp->second.Parser->Buffer_TotalBytes_FirstSynched)*1000/Temp->second.AvgBytesPerSec;
- else if (Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate).To_int64u()!=0)
- Delay+=((float64)Temp->second.Parser->Buffer_TotalBytes_FirstSynched)*1000/Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate).To_int64u();
- else if (Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate_Nominal).To_int64u()!=0)
- Delay+=((float64)Temp->second.Parser->Buffer_TotalBytes_FirstSynched)*1000/Temp->second.Parser->Retrieve(Stream_Audio, 0, Audio_BitRate_Nominal).To_int64u();
- }
-
- //Filling
- Fill(StreamKind_Last, StreamPos_Last, "Delay", Delay, 0, true);
- if (Retrieve(Stream_Video, 0, Video_Delay).empty())
- Fill(Stream_Video, 0, Video_Delay, 0, 10, true);
- }
}
}
@@ -1967,6 +1970,10 @@ void File_Mk::Segment_Tracks_TrackEntry()
//Preparing
Stream_Prepare(Stream_Max);
+
+ //Default values
+ Fill_Flush();
+ Fill(StreamKind_Last, StreamPos_Last, "Language", "eng");
}
//---------------------------------------------------------------------------
@@ -2069,6 +2076,7 @@ void File_Mk::Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compres
FILLING_BEGIN();
Stream[TrackNumber].ContentCompAlgo=Algo;
+ Fill(StreamKind_Last, StreamPos_Last, "MuxingMode", Mk_ContentCompAlgo(Algo));
FILLING_END();
}
@@ -2384,7 +2392,7 @@ void File_Mk::Segment_Tracks_TrackEntry_Language()
Get_Local(Element_Size, Data, "Data"); Element_Info(Data);
FILLING_BEGIN();
- Fill(StreamKind_Last, StreamPos_Last, "Language", Data);
+ Fill(StreamKind_Last, StreamPos_Last, "Language", Data, true);
FILLING_END();
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp
index 8ca37bb46..8b980c5e4 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp
@@ -148,6 +148,9 @@ File_Mpeg4::File_Mpeg4()
ParserIDs[0]=MediaInfo_Parser_Mpeg4;
StreamIDs_Width[0]=8;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
DataMustAlwaysBeComplete=false;
//Temp
@@ -222,18 +225,27 @@ void File_Mpeg4::Streams_Finish()
//Special case for TimeCode and DV multiple audio
if (!Delay_Temp.empty() && Delay_Temp!=Retrieve(Stream_Video, StreamPos_Last, Video_Delay))
{
- Fill(Stream_Video, StreamPos_Last, Video_Delay_Original, Delay_Temp);
for (size_t Pos=0; Pos<Count_Get(Stream_Audio); Pos++)
if (Retrieve(Stream_Audio, Pos, "MuxingMode_MoreInfo")==_T("Muxed in Video #1"))
{
//Fill(Stream_Audio, Pos, Audio_Delay_Original, Retrieve(Stream_Audio, Pos, Audio_Delay));
Fill(Stream_Audio, Pos, Audio_Delay, Retrieve(Stream_Video, StreamPos_Last, Video_Delay), true);
+ Fill(Stream_Audio, Pos, Audio_Delay_Settings, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Settings), true);
+ Fill(Stream_Audio, Pos, Audio_Delay_Source, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Source), true);
+ Fill(Stream_Audio, Pos, Audio_Delay_Original, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Original), true);
+ Fill(Stream_Audio, Pos, Audio_Delay_Original_Settings, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Original_Settings), true);
+ Fill(Stream_Audio, Pos, Audio_Delay_Original_Source, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Original_Source), true);
}
for (size_t Pos=0; Pos<Count_Get(Stream_Text); Pos++)
if (Retrieve(Stream_Text, Pos, "MuxingMode_MoreInfo")==_T("Muxed in Video #1"))
{
//Fill(Stream_Text, Pos, Text_Delay_Original, Retrieve(Stream_Text, Pos, Text_Delay));
Fill(Stream_Text, Pos, Text_Delay, Retrieve(Stream_Video, StreamPos_Last, Video_Delay), true);
+ Fill(Stream_Text, Pos, Text_Delay_Settings, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Settings), true);
+ Fill(Stream_Text, Pos, Text_Delay_Source, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Source), true);
+ Fill(Stream_Text, Pos, Text_Delay_Original, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Original), true);
+ Fill(Stream_Text, Pos, Text_Delay_Original_Settings, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Original_Settings), true);
+ Fill(Stream_Text, Pos, Text_Delay_Original_Source, Retrieve(Stream_Video, StreamPos_Last, Video_Delay_Original_Source), true);
}
}
}
@@ -296,6 +308,9 @@ void File_Mpeg4::Streams_Finish()
Fill(Stream_Text, Pos, "Source", Retrieve(Stream_Video, Temp->second.StreamPos, "Source"));
Fill(Stream_Text, Pos, "Source_Info", Retrieve(Stream_Video, Temp->second.StreamPos, "Source_Info"));
}
+
+ StreamKind_Last=Temp->second.StreamKind;
+ StreamPos_Last=Temp->second.StreamPos;
}
}
}
@@ -386,6 +401,36 @@ 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);
+ }
+ }
+ }
+
Temp++;
}
if (Vendor!=0x00000000 && Vendor!=0xFFFFFFFF)
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h
index fd4920626..d897f602a 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h
@@ -288,6 +288,9 @@ private :
int32u TimeCode_TrackID;
bool TimeCode_IsVisual;
bool Channels_AreTrustable;
+ float32 CleanAperture_Width;
+ float32 CleanAperture_Height;
+ float32 CleanAperture_PixelAspectRatio;
stream()
{
@@ -299,6 +302,9 @@ private :
TimeCode_TrackID=(int32u)-1;
TimeCode_IsVisual=false;
Channels_AreTrustable=false;
+ CleanAperture_Width=0;
+ CleanAperture_Height=0;
+ CleanAperture_PixelAspectRatio=0;
}
~stream()
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
index 1edfe6aad..cad1ac5cf 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
@@ -177,6 +177,41 @@ const char* Mpeg4_chan(int16u Ordering)
}
}
+//---------------------------------------------------------------------------
+std::string Mpeg4_chan_ChannelDescription (int32u ChannelLabels)
+{
+ std::string Text;
+ if ((ChannelLabels&0x000E)!=0x0000)
+ Text+="Front:";
+ if (ChannelLabels&0x0002)
+ Text+=" L";
+ if (ChannelLabels&0x0008)
+ Text+=" C";
+ if (ChannelLabels&0x0004)
+ Text+=" R";
+
+ if ((ChannelLabels&0x0C00)!=0x0000)
+ Text+=", Side:";
+ if (ChannelLabels&0x0400)
+ Text+=" L";
+ if (ChannelLabels&0x0800)
+ Text+=" R";
+
+ if ((ChannelLabels&0x0260)!=0x0000)
+ Text+=", Back:";
+ if (ChannelLabels&0x0020)
+ Text+=" L";
+ if (ChannelLabels&0x0200)
+ Text+=" C";
+ if (ChannelLabels&0x0040)
+ Text+=" R";
+
+ if ((ChannelLabels&0x0010)!=0x0000)
+ Text+=", LFE";
+
+ return Text;
+}
+
//***************************************************************************
// Constants
//***************************************************************************
@@ -1819,7 +1854,10 @@ void File_Mpeg4::moov_trak_edts_elst()
Get_B4 (Duration, "Track duration"); Param_Info((int64u)Duration*1000/TimeScale, " ms");
Get_B4 (Time, "Media time"); if (Time!=(int32u)-1) {Param_Info((int64u)Time*1000/TimeScale, " ms");}
if (Time==(int32u)-1 && !NoMoreEmpty)
- Fill(StreamKind_Last, StreamPos_Last, "Delay", (int64u)Duration*1000/TimeScale);
+ {
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), (int64u)Duration*1000/TimeScale);
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
+ }
if (Time!=(int32u)-1)
NoMoreEmpty=true;
Info_B4(MediaRate, "Media rate"); Param_Info(((float)MediaRate)/0x10000);
@@ -2783,6 +2821,12 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxSound()
Channels=1;
}
+ //lpcm puts "1" in the SampleRate field and Timescale is the real sample size
+ if (Element_Code==0x6C70636D) //"lpcm"
+ {
+ SampleRate=moov_trak_mdia_mdhd_TimeScale;
+ }
+
std::string Codec;
Codec.append(1, (char)((Element_Code&0xFF000000)>>24));
Codec.append(1, (char)((Element_Code&0x00FF0000)>>16));
@@ -3097,26 +3141,38 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_chan()
//Parsing
//From http://developer.apple.com/mac/library/documentation/MusicAudio/Reference/CAFSpec/CAF_spec/CAF_spec.html#//apple_ref/doc/uid/TP40001862-CH210-DontLinkElementID_25
- int32u ChannelLayoutTag, ChannelBitmap, NumberChannelDescriptions;
+ int32u ChannelLayoutTag, ChannelBitmap, NumberChannelDescriptions, ChannelLabels=0;
+ bool ChannelLabels_Valid=true;
Get_B4 (ChannelLayoutTag, "ChannelLayoutTag");
Get_B4 (ChannelBitmap, "ChannelBitmap");
Get_B4 (NumberChannelDescriptions, "NumberChannelDescriptions");
for (int32u Pos=0; Pos<NumberChannelDescriptions; Pos++)
{
- Skip_B1( "ChannelLabel");
- Skip_B1( "ChannelFlags");
+ int32u ChannelLabel;
+ Get_B4 (ChannelLabel, "ChannelLabel");
+ if (ChannelLabel<32)
+ ChannelLabels|=(1<<ChannelLabel);
+ else
+ ChannelLabels_Valid=false;
+ Skip_B4( "ChannelFlags");
Skip_BF4( "Coordinates (0)");
Skip_BF4( "Coordinates (1)");
Skip_BF4( "Coordinates (2)");
}
FILLING_BEGIN();
- if (ChannelLayoutTag==0x10000) //kCAFChannelLayoutTag_UseChannelBitmap
+ if (ChannelLayoutTag==0) //AudioChannelDescriptions
+ {
+ Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, NumberChannelDescriptions, 10, true);
+ if (ChannelLabels_Valid)
+ Fill(Stream_Audio, StreamPos_Last, Audio_ChannelPositions, Mpeg4_chan_ChannelDescription(ChannelLabels), true, true);
+ }
+ else if (ChannelLayoutTag==0x10000) //kCAFChannelLayoutTag_UseChannelBitmap
{
int16u Channels=ChannelLayoutTag&0x0000FFFF;
int16u Ordering=(ChannelLayoutTag&0xFFFF0000)>16;
Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, Channels, 10, true);
- Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, Mpeg4_chan(Ordering), Unlimited, true, true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_ChannelPositions, Mpeg4_chan(Ordering), Unlimited, true, true);
}
else
{
@@ -3148,11 +3204,8 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_clap()
Skip_B4( "vertOff_D");
FILLING_BEGIN();
- Clear(Stream_Video, StreamPos_Last, Video_Width);
- Clear(Stream_Video, StreamPos_Last, Video_Height);
- Clear(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio);
- Fill(Stream_Video, StreamPos_Last, Video_Width, ((float)apertureWidth_N)/apertureWidth_D, 0);
- Fill(Stream_Video, StreamPos_Last, Video_Height, ((float)apertureHeight_N)/apertureHeight_D, 0);
+ Stream[moov_trak_tkhd_TrackID].CleanAperture_Width=((float)apertureWidth_N)/apertureWidth_D;
+ Stream[moov_trak_tkhd_TrackID].CleanAperture_Height=((float)apertureHeight_N)/apertureHeight_D;
FILLING_END();
}
@@ -3335,9 +3388,10 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_pasp()
FILLING_BEGIN();
if (vSpacing)
{
- float64 PixelAspectRatio=(float64)hSpacing/vSpacing;
+ float32 PixelAspectRatio=(float32)hSpacing/vSpacing;
Clear(Stream_Video, StreamPos_Last, Video_DisplayAspectRatio);
Fill(Stream_Video, StreamPos_Last, Video_PixelAspectRatio, PixelAspectRatio, 3, true);
+ Stream[moov_trak_tkhd_TrackID].CleanAperture_PixelAspectRatio=PixelAspectRatio; //This is the PAR of the clean aperture
}
FILLING_END();
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_TimeCode.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_TimeCode.cpp
index 7bf30cc26..fa1d1ae5b 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_TimeCode.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_TimeCode.cpp
@@ -66,14 +66,17 @@ void File_Mpeg4_TimeCode::FileHeader_Parse()
//No link with a track, we do all
Stream_Prepare(Stream_Video);
Fill(Stream_Video, 0, Video_Delay, Pos*1000/FrameRate, 0);
+ Fill(Stream_Video, 0, Video_Delay_Source, "Container");
Stream_Prepare(Stream_Audio);
Fill(Stream_Audio, 0, Audio_Delay, Pos*1000/FrameRate, 0);
+ Fill(Stream_Video, 0, Video_Delay_Source, "Container");
}
else
{
Stream_Prepare(StreamKind);
- Fill(StreamKind, 0, "Delay", Pos*1000/FrameRate, 0);
+ Fill(StreamKind, 0, Fill_Parameter(StreamKind_Last, Generic_Delay), Pos*1000/FrameRate, 0);
+ Fill(StreamKind, 0, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
}
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
index fc93931df..19483f002 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
@@ -200,6 +200,9 @@ File_MpegPs::File_MpegPs()
#if MEDIAINFO_EVENTS
ParserIDs[0]=MediaInfo_Parser_MpegPs;
StreamIDs_Width[0]=2;
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
#endif //MEDIAINFO_EVENTS
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
@@ -228,10 +231,6 @@ File_MpegPs::File_MpegPs()
SizeToAnalyze=8*1024*1024;
video_stream_Unlimited=false;
Buffer_DataSizeToParse=0;
- Parsing_End_ForDTS=false;
- video_stream_PTS_FrameCount=0;
- video_stream_PTS_MustAddOffset=false;
- Demux_Unpacketize=MediaInfoLib::Config.Demux_Unpacketize_Get();
//From packets
program_mux_rate=(int32u)-1;
@@ -388,26 +387,15 @@ void File_MpegPs::Streams_Fill_PerStream(size_t StreamID, ps_stream &Temp)
if (Temp.TimeStamp_Start.PTS.TimeStamp!=(int64u)-1)
{
- if (StreamKind_Last==Stream_Video)
- {
- if (!Retrieve(Stream_Video, Temp.StreamPos, Video_Delay).empty())
- {
- Ztring Delay=Retrieve(Stream_Video, Temp.StreamPos, Video_Delay);
- Fill(Stream_Video, Temp.StreamPos, Video_Delay_Original, Delay);
- }
- if (!Retrieve(Stream_Video, Temp.StreamPos, Video_Delay_Settings).empty())
- {
- Ztring Delay_Settings=Retrieve(Stream_Video, Temp.StreamPos, Video_Delay_Settings);
- Fill(Stream_Video, Temp.StreamPos, Video_Delay_Original_Settings, Delay_Settings);
- }
- }
- Fill(StreamKind_Last, StreamPos_Last, "Delay", ((float64)Temp.TimeStamp_Start.PTS.TimeStamp)/90, 3, true);
- Fill(StreamKind_Last, StreamPos_Last, "Delay_Settings", "", Unlimited, true, true);
- }
- else
- {
- Clear(StreamKind_Last, StreamPos_Last, "Delay");
- Clear(StreamKind_Last, StreamPos_Last, "Delay_Settings");
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Original), Retrieve(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay)), true);
+ Clear(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay));
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Original_Source), Retrieve(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source)), true);
+ Clear(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source));
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Original_Settings), Retrieve(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Settings)), true);
+ Clear(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Settings));
+
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), ((float64)Temp.TimeStamp_Start.PTS.TimeStamp)/90, 3, true);
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
}
//LATM
@@ -503,8 +491,6 @@ void File_MpegPs::Streams_Finish_PerStream(size_t StreamID, ps_stream &Temp)
Stream_Prepare(Stream_Text);
Merge(*Temp.Parsers[0], Stream_Text, Text_Pos, StreamPos_Last);
- Ztring MuxingMode=Retrieve(Stream_Text, StreamPos_Last, "MuxingMode");
- Fill(Stream_Text, StreamPos_Last, "MuxingMode", Ztring(_T("MPEG Video / "))+MuxingMode, true);
if (!IsSub)
Fill(Stream_Text, StreamPos_Last, "MuxingMode_MoreInfo", _T("Muxed in Video #")+Ztring().From_Number(Temp.StreamPos+1));
Ztring ID=Retrieve(Stream_Text, StreamPos_Last, Text_ID);
@@ -518,8 +504,8 @@ void File_MpegPs::Streams_Finish_PerStream(size_t StreamID, ps_stream &Temp)
}
}
- //More info
- if (Temp.StreamKind!=Stream_Max) //Found
+ //Duration if it is missing from the parser
+ if (Temp.StreamKind!=Stream_Max && Retrieve(Temp.StreamKind, Temp.StreamPos, Fill_Parameter(Temp.StreamKind, Generic_Duration)).empty())
{
StreamKind_Last=Temp.StreamKind;
StreamPos_Last=Temp.StreamPos;
@@ -553,7 +539,7 @@ void File_MpegPs::Streams_Finish_PerStream(size_t StreamID, ps_stream &Temp)
{
float64 FrameRate=Retrieve(Stream_Video, StreamPos_Last, Video_FrameRate).To_float64();
if (FrameRate!=0)
- Duration+=Ztring::ToZtring(Temp.FrameCount_AfterLast_TimeStamp_End*90*1000/FrameRate, 0).To_int64u();
+ Duration+=Ztring::ToZtring(90*1000/FrameRate, 0).To_int64u(); //We imagine that there is one frame in it
}
if (Duration)
{
@@ -717,6 +703,14 @@ void File_MpegPs::Synched_Init()
//***************************************************************************
//---------------------------------------------------------------------------
+void File_MpegPs::Read_Buffer_Init()
+{
+ #if MEDIAINFO_DEMUX
+ Demux_Unpacketize=Config->Demux_Unpacketize_Get();
+ #endif //MEDIAINFO_DEMUX
+}
+
+//---------------------------------------------------------------------------
void File_MpegPs::Read_Buffer_Unsynched()
{
Searching_TimeStamp_Start=false;
@@ -759,9 +753,7 @@ void File_MpegPs::Read_Buffer_Unsynched()
video_stream_Unlimited=false;
Buffer_DataSizeToParse=0;
- #if MEDIAINFO_EVENTS
- MpegPs_PES_FirstByte_IsAvailable=false;
- #endif //MEDIAINFO_EVENTS
+ PES_FirstByte_IsAvailable=false;
}
//---------------------------------------------------------------------------
@@ -789,13 +781,8 @@ void File_MpegPs::Read_Buffer_Continue()
//Video unlimited specific, we didn't wait for the end (because this is... unlimited)
if (video_stream_Unlimited)
{
- #if MEDIAINFO_EVENTS
- if (FromTS)
- {
- MpegPs_PES_FirstByte_IsAvailable=true;
- MpegPs_PES_FirstByte_Value=false;
- }
- #endif //MEDIAINFO_EVENTS
+ PES_FirstByte_IsAvailable=true;
+ PES_FirstByte_Value=false;
//Look for next Sync word
size_t Buffer_Offset_Temp=0;
@@ -855,13 +842,8 @@ void File_MpegPs::Read_Buffer_Continue()
void File_MpegPs::Header_Parse()
#if MEDIAINFO_TRACE
{
- #if MEDIAINFO_EVENTS
- if (FromTS)
- {
- MpegPs_PES_FirstByte_IsAvailable=true;
- MpegPs_PES_FirstByte_Value=true;
- }
- #endif //MEDIAINFO_EVENTS
+ PES_FirstByte_IsAvailable=true;
+ PES_FirstByte_Value=true;
//Reinit
PTS=(int64u)-1;
@@ -882,13 +864,8 @@ void File_MpegPs::Header_Parse()
}
#else //MEDIAINFO_TRACE
{
- #if MEDIAINFO_EVENTS
- if (FromTS)
- {
- MpegPs_PES_FirstByte_IsAvailable=true;
- MpegPs_PES_FirstByte_Value=true;
- }
- #endif //MEDIAINFO_EVENTS
+ PES_FirstByte_IsAvailable=true;
+ PES_FirstByte_Value=true;
//Reinit
PTS=(int64u)-1;
@@ -997,11 +974,13 @@ void File_MpegPs::Header_Parse_PES_packet(int8u start_code)
if (!Header_Parse_Fill_Size())
{
//Return directly if we must unpack the elementary stream;
- if (Demux_Unpacketize)
- {
- Element_WaitForMoreData();
- return;
- }
+ #if MEDIAINFO_DEMUX
+ if (Demux_Unpacketize)
+ {
+ Element_WaitForMoreData();
+ return;
+ }
+ #endif //MEDIAINFO_DEMUX
//Next PS packet is not found, we will use all the buffer
Header_Fill_Size(Buffer_Size-Buffer_Offset); //All the buffer is used
@@ -1014,11 +993,13 @@ void File_MpegPs::Header_Parse_PES_packet(int8u start_code)
&& ((start_code&0xE0)==0xC0 || (start_code&0xF0)==0xE0))
{
//Return directly if we must unpack the elementary stream;
- if (Demux_Unpacketize)
- {
- Element_WaitForMoreData();
- return;
- }
+ #if MEDIAINFO_DEMUX
+ if (Demux_Unpacketize)
+ {
+ Element_WaitForMoreData();
+ return;
+ }
+ #endif //MEDIAINFO_DEMUX
Header_Fill_Size(Buffer_Size-Buffer_Offset); //All the buffer is used
Buffer_DataSizeToParse=6+PES_packet_length-(int16u)(Buffer_Size-Buffer_Offset);
@@ -1073,6 +1054,11 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
| (((int64u)PTS_14));
if (Streams[start_code].Searching_TimeStamp_End && start_code!=0xBD && start_code!=0xFD) //0xBD and 0xFD can contain multiple streams, TimeStamp management is in Streams management
{
+ if (Streams[start_code].TimeStamp_End.PTS.TimeStamp==(int64u)-1)
+ Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
+ while (PTS+0x100000000LL<Streams[start_code].TimeStamp_End.PTS.TimeStamp)
+ PTS+=0x200000000LL;
+ Streams[start_code].TimeStamp_End.PTS.File_Pos=File_Offset+Buffer_Offset;
Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
}
if (Searching_TimeStamp_Start && Streams[start_code].Searching_TimeStamp_Start && start_code!=0xBD && start_code!=0xFD) //0xBD and 0xFD can contain multiple streams, TimeStamp management is in Streams management
@@ -1081,6 +1067,8 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
Streams[start_code].Searching_TimeStamp_Start=false;
}
Element_Info_From_Milliseconds(PTS/90);
+ PTS=PTS*1000000/90; //In ns
+ HasTimeStamps=true;
Element_End();
}
else if ((stuffing_byte&0xF0)==0x30)
@@ -1107,6 +1095,10 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
| (((int64u)PTS_14));
if (Streams[start_code].Searching_TimeStamp_End)
{
+ if (Streams[start_code].TimeStamp_End.PTS.TimeStamp==(int64u)-1)
+ Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
+ while (PTS+0x100000000LL<Streams[start_code].TimeStamp_End.PTS.TimeStamp)
+ PTS+=0x200000000LL;
Streams[start_code].TimeStamp_End.PTS.File_Pos=File_Offset+Buffer_Offset;
Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
}
@@ -1115,6 +1107,7 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
Streams[start_code].TimeStamp_Start.PTS.TimeStamp=PTS;
}
Element_Info_From_Milliseconds(PTS/90);
+ PTS=PTS*1000000/90; //In ns
Element_End();
Element_Begin("DTS");
@@ -1137,6 +1130,10 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
| (((int64u)DTS_14));
if (Streams[start_code].Searching_TimeStamp_End)
{
+ if (Streams[start_code].TimeStamp_End.DTS.TimeStamp==(int64u)-1)
+ Streams[start_code].TimeStamp_End.DTS.TimeStamp=DTS;
+ while (DTS+0x100000000LL<Streams[start_code].TimeStamp_End.DTS.TimeStamp)
+ DTS+=0x200000000LL;
Streams[start_code].TimeStamp_End.DTS.File_Pos=File_Offset+Buffer_Offset;
Streams[start_code].TimeStamp_End.DTS.TimeStamp=DTS;
}
@@ -1146,6 +1143,7 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
Streams[start_code].Searching_TimeStamp_Start=false;
}
Element_Info_From_Milliseconds(Streams[start_code].TimeStamp_End.DTS.TimeStamp/90);
+ DTS=DTS*1000000/90; //In ns
Element_End();
}
else
@@ -1160,6 +1158,9 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG1(int8u start_code)
Mark_1();
Mark_1();
BS_End();
+
+ if (!FromTS)
+ PES_FirstByte_Value=false;
}
}
@@ -1263,6 +1264,10 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u start_code)
//Filling
if (Streams[start_code].Searching_TimeStamp_End)
{
+ if (Streams[start_code].TimeStamp_End.PTS.TimeStamp==(int64u)-1)
+ Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
+ while (PTS+0x100000000LL<Streams[start_code].TimeStamp_End.PTS.TimeStamp)
+ PTS+=0x200000000LL;
Streams[start_code].TimeStamp_End.PTS.File_Pos=File_Offset+Buffer_Offset;
Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
}
@@ -1271,9 +1276,10 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u start_code)
Streams[start_code].TimeStamp_Start.PTS.TimeStamp=PTS;
Streams[start_code].Searching_TimeStamp_Start=false;
}
+ PTS=PTS*1000000/90; //In ns
HasTimeStamps=true;
}
- if (PTS_DTS_flags==0x3)
+ else if (PTS_DTS_flags==0x3)
{
#if MEDIAINFO_TRACE
int16u PTS_29, PTS_14, DTS_29, DTS_14;
@@ -1320,14 +1326,19 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u start_code)
//Filling
if (Streams[start_code].Searching_TimeStamp_End)
{
+ if (Streams[start_code].TimeStamp_End.PTS.TimeStamp==(int64u)-1)
+ Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
+ while (PTS+0x100000000LL<Streams[start_code].TimeStamp_End.PTS.TimeStamp)
+ PTS+=0x200000000LL;
Streams[start_code].TimeStamp_End.PTS.File_Pos=File_Offset+Buffer_Offset;
Streams[start_code].TimeStamp_End.PTS.TimeStamp=PTS;
}
if (Searching_TimeStamp_Start && Streams[start_code].Searching_TimeStamp_Start)
{
Streams[start_code].TimeStamp_Start.PTS.TimeStamp=PTS;
- //Streams[start_code].Searching_TimeStamp_Start=false;
+ //Streams[start_code].Searching_TimeStamp_Start=false; //Done with DTS
}
+ PTS=PTS*1000000/90; //In ns
#if MEDIAINFO_TRACE
Element_Begin("DTS");
@@ -1372,6 +1383,10 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u start_code)
//Filling
if (Streams[start_code].Searching_TimeStamp_End)
{
+ if (Streams[start_code].TimeStamp_End.DTS.TimeStamp==(int64u)-1)
+ Streams[start_code].TimeStamp_End.DTS.TimeStamp=DTS;
+ while (DTS+0x100000000LL<Streams[start_code].TimeStamp_End.DTS.TimeStamp)
+ DTS+=0x200000000LL;
Streams[start_code].TimeStamp_End.DTS.File_Pos=File_Offset+Buffer_Offset;
Streams[start_code].TimeStamp_End.DTS.TimeStamp=DTS;
}
@@ -1380,8 +1395,11 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u start_code)
Streams[start_code].TimeStamp_Start.DTS.TimeStamp=DTS;
Streams[start_code].Searching_TimeStamp_Start=false;
}
+ DTS=DTS*1000000/90; //In ns
HasTimeStamps=true;
}
+ else if (!FromTS)
+ PES_FirstByte_Value=false;
if (ESCR_flag && Element_Offset<Element_Pos_After_Data)
{
Element_Begin("ESCR_flag");
@@ -1547,6 +1565,9 @@ void File_MpegPs::Header_Parse_PES_packet_MPEG2(int8u start_code)
//---------------------------------------------------------------------------
void File_MpegPs::Data_Parse()
{
+ //Counting
+ Frame_Count++;
+
//Needed?
if (!Streams[start_code].Searching_Payload)
{
@@ -1594,14 +1615,6 @@ void File_MpegPs::Data_Parse()
else
Trusted_IsNot("Unattended element!");
}
-
- //Jumping to the last DTS if needed
- //if (!Parsing_End_ForDTS && File_Offset+Buffer_Offset==File_Size)
- // Jump_DTS();
-
- #if MEDIAINFO_EVENTS
- MpegPs_PES_FirstByte_IsAvailable=false;
- #endif //MEDIAINFO_EVENTS
}
//---------------------------------------------------------------------------
@@ -1635,7 +1648,7 @@ void File_MpegPs::Detect_EOF()
Fill(Stream_General, 0, General_Format, "MPEG-PS");
}
Fill("MPEG-PS");
- if (File_Size>SizeToAnalyze && File_Offset+Buffer_Size<File_Size-SizeToAnalyze)
+ if (!ShouldContinueParsing && File_Offset+Buffer_Size+SizeToAnalyze<File_Size && MediaInfoLib::Config.ParseSpeed_Get()<1.0)
{
//Jumping
GoToFromEnd(SizeToAnalyze, "MPEG-PS");
@@ -1691,13 +1704,6 @@ bool File_MpegPs::BookMark_Needed()
Streams_Extension[StreamID].Searching_Payload=true;
}
}
- if (Status[IsAccepted] && ToJump!=(int64u)-1)
- {
- Info("MPEG-PS, Jumping to nearly end of file");
- Parsing_End_ForDTS=true;
- File_GoTo=ToJump;
- return true;
- }
return false;
}
@@ -2012,9 +2018,6 @@ void File_MpegPs::private_stream_1()
Streams_Private1[private_stream_1_ID].Searching_TimeStamp_End=true;
//New parsers
- #if MEDIAINFO_EVENTS
- Element_Code=private_stream_1_ID;
- #endif //MEDIAINFO_EVENTS
Streams_Private1[private_stream_1_ID].Parsers.push_back(private_stream_1_ChooseParser());
if (Streams_Private1[private_stream_1_ID].Parsers[Streams_Private1[private_stream_1_ID].Parsers.size()-1])
Open_Buffer_Init(Streams_Private1[private_stream_1_ID].Parsers[Streams_Private1[private_stream_1_ID].Parsers.size()-1]);
@@ -2039,27 +2042,34 @@ void File_MpegPs::private_stream_1()
Streams_Private1[private_stream_1_ID].Parsers.push_back(Parser);
}
#endif
+ #if defined(MEDIAINFO_AES3_YES)
+ {
+ File__Analyze* Parser=ChooseParser_AES3();
+ Open_Buffer_Init(Parser);
+ Streams_Private1[private_stream_1_ID].Parsers.push_back(Parser);
+ }
+ #endif
}
}
- //Specific
- #if defined(MEDIAINFO_AES3_YES)
- if (FromTS && FromTS_format_identifier==0x42535344 && PTS!=(int64u)-1) //"BSSD"
- ((File_Aes3*)Streams_Private1[private_stream_1_ID].Parsers[0])->PTS=PTS;
- #endif
-
//Demux
#if MEDIAINFO_DEMUX
if (Streams_Private1[private_stream_1_ID].Searching_Payload)
{
- StreamIDs[StreamIDs_Size-1]=Element_Code;
- Element_Code=private_stream_1_ID; //The upper level ID is filled by Element_Code in the common code
- StreamIDs_Width[StreamIDs_Size]=2;
- ParserIDs[StreamIDs_Size]=MediaInfo_Parser_MpegPs_Ext;
- StreamIDs_Size++;
- Demux(Buffer+Buffer_Offset+private_stream_1_Offset, (size_t)(Element_Size-private_stream_1_Offset), ContentType_MainStream);
- StreamIDs_Size--;
- Element_Code=StreamIDs[StreamIDs_Size-1];
+ if (private_stream_1_Offset)
+ {
+ //Multiple substreams in 1 stream
+ StreamIDs[StreamIDs_Size-1]=Element_Code;
+ Element_Code=private_stream_1_ID; //The upper level ID is filled by Element_Code in the common code
+ StreamIDs_Width[StreamIDs_Size]=2;
+ ParserIDs[StreamIDs_Size]=MediaInfo_Parser_MpegPs_Ext;
+ StreamIDs_Size++;
+ Demux(Buffer+Buffer_Offset+private_stream_1_Offset, (size_t)(Element_Size-private_stream_1_Offset), ContentType_MainStream);
+ StreamIDs_Size--;
+ Element_Code=StreamIDs[StreamIDs_Size-1];
+ }
+ else
+ Demux(Buffer+Buffer_Offset, (size_t)Element_Size, ContentType_MainStream);
}
#endif //MEDIAINFO_DEMUX
@@ -2644,39 +2654,6 @@ void File_MpegPs::video_stream()
//Parsing
xxx_stream_Parse(Streams[start_code], video_stream_Count);
-
- //Saving PTS
- bool video_stream_IsFilled=false; //If parser is filled, frame count is more update, we stop testing PTS.
- bool video_stream_IsInterlaced=false; //If interlaced, we must count the number of fields, not frames
- for (size_t Pos=0; Pos<Streams[start_code].Parsers.size(); Pos++)
- {
- if (Streams[start_code].Parsers[Pos]->Status[IsFilled])
- video_stream_IsFilled=true;
- if (!video_stream_IsFilled && Streams[start_code].Parsers[Pos]->Frame_Count_InThisBlock)
- {
- video_stream_PTS_FrameCount+=Streams[start_code].Parsers[Pos]->Frame_Count_InThisBlock; //TODO: check if there are more than 1 parser with Frame_Count_InThisBlock>0
- video_stream_IsInterlaced=Streams[start_code].Parsers[Pos]->Retrieve(Stream_Video, 0, Video_ScanType)==_T("Intelaced"); //TODO: SanType is written too late, not available on time, wrong data
- }
- }
- if (!video_stream_IsFilled && !video_stream_Unlimited && PTS!=(int64u)-1)
- {
- if (PTS>=0x100000000LL)
- video_stream_PTS_MustAddOffset=true;
- if (video_stream_IsInterlaced)
- video_stream_PTS_FrameCount*=2; //Count fields, not frames
- int64u PTS_Calculated=((video_stream_PTS_MustAddOffset && PTS<0x100000000LL)?0x200000000LL:0)+PTS; //With Offset if needed
- if (video_stream_PTS_FrameCount<=1)
- video_stream_PTS.push_back(PTS_Calculated);
- else if (!video_stream_PTS.empty())
- {
- //Calculating the average PTS per frame if there is more than 1 frame between PTS
- int64u PTS_Calculated_Base=video_stream_PTS[video_stream_PTS.size()-1];
- int64u PTS_Calculated_PerFrame=(PTS_Calculated-PTS_Calculated_Base)/video_stream_PTS_FrameCount;
- for (size_t Pos=0; Pos<video_stream_PTS_FrameCount; Pos++)
- video_stream_PTS.push_back(PTS_Calculated_Base+(1+Pos)*PTS_Calculated_PerFrame);
- }
- video_stream_PTS_FrameCount=0;
- }
}
//---------------------------------------------------------------------------
@@ -2975,31 +2952,31 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
case 0xBD :
case 0xFD :
//PTS
- if (PTS!=(int64u)-1)
+ if (Streams[start_code].TimeStamp_End.PTS.TimeStamp!=(int64u)-1)
{
if (Streams[start_code].Searching_TimeStamp_End)
{
Temp.TimeStamp_End.PTS.File_Pos=File_Offset+Buffer_Offset;
- Temp.TimeStamp_End.PTS.TimeStamp=PTS;
+ Temp.TimeStamp_End.PTS.TimeStamp=Streams[start_code].TimeStamp_End.PTS.TimeStamp;
}
if (Searching_TimeStamp_Start && Temp.Searching_TimeStamp_Start)
{
- Temp.TimeStamp_Start.PTS.TimeStamp=PTS;
+ Temp.TimeStamp_Start.PTS.TimeStamp=Streams[start_code].TimeStamp_End.PTS.TimeStamp;
Temp.Searching_TimeStamp_Start=false;
}
}
//DTS
- if (DTS!=(int64u)-1)
+ if (Streams[start_code].TimeStamp_End.DTS.TimeStamp!=(int64u)-1)
{
if (Streams[start_code].Searching_TimeStamp_End)
{
Temp.TimeStamp_End.DTS.File_Pos=File_Offset+Buffer_Offset;
- Temp.TimeStamp_End.DTS.TimeStamp=DTS;
+ Temp.TimeStamp_End.DTS.TimeStamp=Streams[start_code].TimeStamp_End.DTS.TimeStamp;
}
- if (Searching_TimeStamp_Start && DTS!=(int64u)-1 && Temp.Searching_TimeStamp_Start)
+ if (Searching_TimeStamp_Start && Streams[start_code].TimeStamp_End.DTS.TimeStamp!=(int64u)-1 && Temp.Searching_TimeStamp_Start)
{
- Temp.TimeStamp_Start.DTS.TimeStamp=DTS;
+ Temp.TimeStamp_Start.DTS.TimeStamp=Streams[start_code].TimeStamp_End.DTS.TimeStamp;
Temp.Searching_TimeStamp_Start=false;
}
}
@@ -3018,11 +2995,6 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
private_stream_1_Element_Info();
#endif //MEDIAINFO_TRACE
- if (1 //Temp.StreamKind==Stream_Video
- && ((DTS!=(int64u)-1 && Temp.TimeStamp_End.DTS.TimeStamp!=(int64u)-1)
- || (PTS!=(int64u)-1 && Temp.TimeStamp_End.PTS.TimeStamp!=(int64u)-1)))
- Temp.FrameCount_AfterLast_TimeStamp_End=0;
-
for (size_t Pos=0; Pos<Temp.Parsers.size(); Pos++)
if (Temp.Parsers[Pos] && !Temp.Parsers[Pos]->Status[IsFinished])
{
@@ -3032,9 +3004,9 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
if (PCR!=(int64u)-1)
Temp.Parsers[Pos]->PCR=PCR;
if (PTS!=(int64u)-1)
- Temp.Parsers[Pos]->PTS=PTS*1000000/90;
+ Temp.Parsers[Pos]->PTS=PTS;
if (DTS!=(int64u)-1)
- Temp.Parsers[Pos]->DTS=DTS*1000000/90;
+ Temp.Parsers[Pos]->DTS=DTS;
}
#if MEDIAINFO_TRACE
@@ -3047,14 +3019,6 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
Element_End();
#endif //MEDIAINFO_TRACE
- if ((Temp.Parsers[Pos]->Status[IsAccepted] && Temp.Parsers[Pos]->Status[IsFinished])
- || (!Parsing_End_ForDTS && Temp.Parsers[Pos]->Status[IsFilled]))
- {
- if (MediaInfoLib::Config.ParseSpeed_Get()<1 && Temp.Parsers[Pos]->Count_Get(Stream_Video)==0) //TODO: speed improvement, we do this only for CC
- Temp.Searching_Payload=false;
- if (xxx_Count>0)
- xxx_Count--;
- }
if (Temp.Parsers.size()>1)
{
if (!Temp.Parsers[Pos]->Status[IsAccepted] && Temp.Parsers[Pos]->Status[IsFinished])
@@ -3077,9 +3041,6 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
}
}
- if (!Temp.Parsers.empty())
- Temp.FrameCount_AfterLast_TimeStamp_End+=Temp.Parsers[0]->Frame_Count_InThisBlock;
-
Element_Show();
#if MEDIAINFO_EVENTS
@@ -3087,57 +3048,59 @@ void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
DTS=PTS;
//New PES
- if (MpegPs_PES_FirstByte_IsAvailable && MpegPs_PES_FirstByte_Value)
- {
- //Demux of substream data
- if (FromTS_stream_type==0x1B && SubStream_Demux)
+ #if MEDIAINFO_DEMUX
+ if (PES_FirstByte_IsAvailable && PES_FirstByte_Value)
{
- if (!SubStream_Demux->Buffers.empty() && SubStream_Demux->Buffers[0]->DTS<DTS)
+ //Demux of substream data
+ if (FromTS_stream_type==0x1B && SubStream_Demux)
{
- Demux(SubStream_Demux->Buffers[0]->Buffer, SubStream_Demux->Buffers[0]->Buffer_Size, ContentType_SubStream);
- delete SubStream_Demux->Buffers[0]->Buffer; SubStream_Demux->Buffers[0]->Buffer=NULL;
- SubStream_Demux->Buffers.erase(SubStream_Demux->Buffers.begin()); //Moving 2nd Buffer to 1st position
+ if (!SubStream_Demux->Buffers.empty() && SubStream_Demux->Buffers[0]->DTS<DTS)
+ {
+ Demux(SubStream_Demux->Buffers[0]->Buffer, SubStream_Demux->Buffers[0]->Buffer_Size, ContentType_SubStream);
+ delete SubStream_Demux->Buffers[0]->Buffer; SubStream_Demux->Buffers[0]->Buffer=NULL;
+ SubStream_Demux->Buffers.erase(SubStream_Demux->Buffers.begin()); //Moving 2nd Buffer to 1st position
+ }
}
}
- }
- //Demux of SubStream
- if (FromTS_stream_type==0x20 && SubStream_Demux)
- {
- //Searching an available slot
- size_t Buffers_Pos;
- if (SubStream_Demux->Buffers.empty() || SubStream_Demux->Buffers[SubStream_Demux->Buffers.size()-1]->DTS!=DTS)
+ //Demux of SubStream
+ if (FromTS_stream_type==0x20 && SubStream_Demux)
{
- Buffers_Pos=SubStream_Demux->Buffers.size();
- SubStream_Demux->Buffers.push_back(new demux::buffer);
- }
- else
- {
- Buffers_Pos=SubStream_Demux->Buffers.size()-1;
- }
+ //Searching an available slot
+ size_t Buffers_Pos;
+ if (SubStream_Demux->Buffers.empty() || SubStream_Demux->Buffers[SubStream_Demux->Buffers.size()-1]->DTS!=DTS)
+ {
+ Buffers_Pos=SubStream_Demux->Buffers.size();
+ SubStream_Demux->Buffers.push_back(new demux::buffer);
+ }
+ else
+ {
+ Buffers_Pos=SubStream_Demux->Buffers.size()-1;
+ }
- //Filling buffer
- if (SubStream_Demux->Buffers[Buffers_Pos]->Buffer==NULL)
- {
- SubStream_Demux->Buffers[Buffers_Pos]->DTS=DTS;
- SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max=128*1024;
- SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size=0;
- SubStream_Demux->Buffers[Buffers_Pos]->Buffer=new int8u[SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max];
- }
- if (SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max>SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size+(size_t)(Element_Size-Element_Offset) && SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max<=16*1024*1024)
- {
- SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max*=2;
- int8u* Buffer_Demux=SubStream_Demux->Buffers[Buffers_Pos]->Buffer;
- SubStream_Demux->Buffers[Buffers_Pos]->Buffer=new int8u[SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max];
- std::memcpy(SubStream_Demux->Buffers[Buffers_Pos]->Buffer, Buffer_Demux, SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size);
- delete[] Buffer_Demux; //Buffer_Demux=NULL;
- }
- if (SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size+(size_t)(Element_Size-Element_Offset)<=SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max)
- {
- std::memcpy(SubStream_Demux->Buffers[Buffers_Pos]->Buffer+SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size, Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)(Element_Size-Element_Offset));
- SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size+=(size_t)(Element_Size-Element_Offset);
+ //Filling buffer
+ if (SubStream_Demux->Buffers[Buffers_Pos]->Buffer==NULL)
+ {
+ SubStream_Demux->Buffers[Buffers_Pos]->DTS=DTS;
+ SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max=128*1024;
+ SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size=0;
+ SubStream_Demux->Buffers[Buffers_Pos]->Buffer=new int8u[SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max];
+ }
+ if (SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max>SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size+(size_t)(Element_Size-Element_Offset) && SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max<=16*1024*1024)
+ {
+ SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max*=2;
+ int8u* Buffer_Demux=SubStream_Demux->Buffers[Buffers_Pos]->Buffer;
+ SubStream_Demux->Buffers[Buffers_Pos]->Buffer=new int8u[SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max];
+ std::memcpy(SubStream_Demux->Buffers[Buffers_Pos]->Buffer, Buffer_Demux, SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size);
+ delete[] Buffer_Demux; //Buffer_Demux=NULL;
+ }
+ if (SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size+(size_t)(Element_Size-Element_Offset)<=SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size_Max)
+ {
+ std::memcpy(SubStream_Demux->Buffers[Buffers_Pos]->Buffer+SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size, Buffer+Buffer_Offset+(size_t)Element_Offset, (size_t)(Element_Size-Element_Offset));
+ SubStream_Demux->Buffers[Buffers_Pos]->Buffer_Size+=(size_t)(Element_Size-Element_Offset);
+ }
}
- }
+ #endif //MEDIAINFO_DEMUX
#endif //MEDIAINFO_EVENTS
}
@@ -3571,7 +3534,8 @@ File__Analyze* File_MpegPs::ChooseParser_AES3()
{
//Filling
#if defined(MEDIAINFO_AES3_YES)
- File__Analyze* Handle=new File_Aes3();
+ File_Aes3* Handle=new File_Aes3();
+ Handle->From_MpegPs=true;
#else
//Filling
File__Analyze* Handle=new File_Unknown();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h
index a42505ac4..8fb21d38b 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h
@@ -113,6 +113,7 @@ private :
void Synched_Init();
//Buffer - Global
+ void Read_Buffer_Init ();
void Read_Buffer_Unsynched();
void Read_Buffer_Continue ();
@@ -197,7 +198,6 @@ private :
bool Searching_Payload;
bool Searching_TimeStamp_Start;
bool Searching_TimeStamp_End;
- size_t FrameCount_AfterLast_TimeStamp_End;
ps_stream()
{
@@ -209,7 +209,6 @@ private :
Searching_Payload=false;
Searching_TimeStamp_Start=false;
Searching_TimeStamp_End=false;
- FrameCount_AfterLast_TimeStamp_End=0;
}
~ps_stream()
@@ -228,13 +227,10 @@ private :
int8u stream_id_extension;
bool video_stream_Unlimited;
int16u Buffer_DataSizeToParse;
- int64u PTS;
- int64u DTS;
- bool Parsing_End_ForDTS;
std::vector<int64u> video_stream_PTS;
- size_t video_stream_PTS_FrameCount;
- bool video_stream_PTS_MustAddOffset;
- bool Demux_Unpacketize;
+ #if MEDIAINFO_DEMUX
+ bool Demux_Unpacketize;
+ #endif //MEDIAINFO_DEMUX
//Helpers
bool Header_Parser_QuickSearch();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
index 6c8c21a5b..f43182732 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
@@ -116,6 +116,9 @@ File_MpegTs::File_MpegTs()
ParserIDs[0]=MediaInfo_Parser_MpegTs;
StreamIDs_Width[0]=4;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=4; //Intermediate
+ #endif //MEDIAINFO_DEMUX
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
Trusted_Multiplier=2;
@@ -453,6 +456,31 @@ void File_MpegTs::Streams_Fill_PerStream(int16u PID, complete_stream::stream &Te
}
}
+ //Teletext
+ if (StreamKind_Last==Stream_Max)
+ {
+ for (std::map<int16u, complete_stream::stream::teletext>::iterator Teletext=Temp.Teletexts.begin(); Teletext!=Temp.Teletexts.end(); Teletext++)
+ {
+ Stream_Prepare(Stream_Text);
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, Ztring::ToZtring(PID)+_T('-')+Ztring::ToZtring(Teletext->first), true);
+ Fill(StreamKind_Last, StreamPos_Last, General_ID_String, Decimal_Hexa(PID)+_T('-')+Ztring::ToZtring(Teletext->first), true);
+
+ for (size_t Pos=0; Pos<Temp.program_numbers.size(); Pos++)
+ {
+ Fill(StreamKind_Last, StreamPos_Last, General_MenuID, Temp.program_numbers[Pos], 10, Pos==0);
+ Fill(StreamKind_Last, StreamPos_Last, General_MenuID_String, Decimal_Hexa(Temp.program_numbers[Pos]), Pos==0);
+ }
+
+ //TS info
+ for (std::map<std::string, ZenLib::Ztring>::iterator Info=Teletext->second.Infos.begin(); Info!=Teletext->second.Infos.end(); Info++)
+ {
+ if (Retrieve(StreamKind_Last, StreamPos_Last, Info->first.c_str()).empty())
+ Fill(StreamKind_Last, StreamPos_Last, Info->first.c_str(), Info->second);
+ }
+ Teletext->second.Infos.clear();
+ }
+ }
+
//Desactivating the stream (except for timestamp)
Temp.Searching_Payload_Start_Set(false);
Temp.Searching_Payload_Continue_Set(false);
@@ -466,6 +494,45 @@ void File_MpegTs::Streams_Finish()
Streams_Finish_PerStream(PID, Complete_Stream->Streams[PID]);
File__Duplicate_Streams_Finish();
+
+ //Filling language of subtitles
+ for (size_t StreamPos=0; StreamPos<Count_Get(Stream_Text); StreamPos++)
+ {
+ if (Retrieve(Stream_Text, StreamPos, Text_Format).find(_T("EIA-"))!=string::npos)
+ {
+ //Retrieving IDs
+ Ztring ID_Complete=Retrieve(Stream_Text, StreamPos, Text_ID);
+ int16u ID_Video=ID_Complete.To_int16u();
+ int16u ID_Text=Ztring(ID_Complete.substr(ID_Complete.find(_T('-'))+1, string::npos)).To_int16u();
+ if (ID_Text==608) //CEA-608 caption
+ ID_Text=128+Ztring(ID_Complete.substr(ID_Complete.rfind(_T('-'))+1, string::npos)).To_int16u();
+
+ //ATSC EIT
+ for (size_t ProgramPos=0; ProgramPos<Complete_Stream->Streams[ID_Video].program_numbers.size(); ProgramPos++)
+ {
+ int16u source_id=Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[Complete_Stream->Streams[ID_Video].program_numbers[ProgramPos]].source_id;
+
+ bool IsFound=false;
+
+ for (int16u EpgPos=0; EpgPos<Complete_Stream->Sources[source_id].ATSC_EPG_Blocks.size(); EpgPos++)
+ {
+ for (int16u EventPos=0; EventPos<Complete_Stream->Sources[source_id].ATSC_EPG_Blocks[EpgPos].Events.size(); EventPos++)
+ {
+ if (!Complete_Stream->Sources[source_id].ATSC_EPG_Blocks[EpgPos].Events[EventPos].Languages[ID_Text].empty())
+ {
+ Fill(Stream_Text, StreamPos, Text_Language, Complete_Stream->Sources[source_id].ATSC_EPG_Blocks[EpgPos].Events[EventPos].Languages[ID_Text]);
+ IsFound=true;
+ break;
+ }
+ if (IsFound)
+ break;
+ }
+ if (IsFound)
+ break;
+ }
+ }
+ }
+ }
}
//---------------------------------------------------------------------------
@@ -525,8 +592,10 @@ void File_MpegTs::Streams_Finish_PerStream(int16u PID, complete_stream::stream &
Fill(Stream_Text, StreamPos_Last, Text_MenuID_String, Retrieve(Stream_Video, Temp.StreamPos, Video_MenuID_String), true);
Fill(Stream_Text, StreamPos_Last, Text_Duration, Retrieve(Stream_Video, Temp.StreamPos, Video_Duration), true);
Fill(Stream_Text, StreamPos_Last, Text_Delay, Retrieve(Stream_Video, Temp.StreamPos, Video_Delay), true);
+ Fill(Stream_Text, StreamPos_Last, Text_Delay_Source, Retrieve(Stream_Video, Temp.StreamPos, Video_Delay_Source), true);
//Language from ATSC EIT
+ /*
size_t ID_Pos;
if (ID==_T("608-0"))
ID_Pos=0;
@@ -542,6 +611,7 @@ void File_MpegTs::Streams_Finish_PerStream(int16u PID, complete_stream::stream &
}
if (ID_Pos<Temp.Captions_Language.size())
Fill(Stream_Text, StreamPos_Last, Text_Language, Temp.Captions_Language[ID_Pos]);
+ */
}
StreamKind_Last=Temp.StreamKind;
@@ -846,6 +916,14 @@ void File_MpegTs::Read_Buffer_Unsynched()
//---------------------------------------------------------------------------
bool File_MpegTs::FileHeader_Begin()
{
+ if (Buffer_Size<8)
+ return false; //Wait for more data
+ if (CC8(Buffer+Buffer_Offset)==0x444C472056312E30LL)
+ {
+ Reject("MPEG-TS");
+ return true;
+ }
+
//Configuring
#if defined(MEDIAINFO_BDAV_YES) || defined(MEDIAINFO_TSP_YES)
TS_Size=188
@@ -1242,8 +1320,11 @@ void File_MpegTs::Header_Parse_Events_Duration(int64u program_clock_reference)
//---------------------------------------------------------------------------
void File_MpegTs::Data_Parse()
{
+ //Counting
+ Frame_Count++;
+
//TSP specific
- if (TSP_Size)
+ if (TSP_Size && Element_Size>TSP_Size)
Element_Size-=TSP_Size;
//File__Duplicate
@@ -1268,7 +1349,7 @@ void File_MpegTs::Data_Parse()
}
//TSP specific
- if (TSP_Size)
+ if (TSP_Size && Element_Size>TSP_Size)
{
Element_Size+=TSP_Size;
Skip_B4( "TSP"); //TSP supplement
@@ -1399,6 +1480,13 @@ void File_MpegTs::PES()
Open_Buffer_Init(Complete_Stream->Streams[pid].Parser);
}
+ //If unsynched, waiting for first payload_unit_start_indicator
+ if (!Complete_Stream->Streams[pid].Parser->Synched && !payload_unit_start_indicator)
+ {
+ Element_DoNotShow(); //We don't want to show this item because there is no interessant info
+ return; //This is not the start of the PES
+ }
+
//Parsing
Open_Buffer_Continue(Complete_Stream->Streams[pid].Parser);
#if defined(MEDIAINFO_MPEGPS_YES) && defined(MEDIAINFO_MPEGTS_PESTIMESTAMP_YES)
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp
index 755bb5878..ccdc7f43d 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp
@@ -105,11 +105,11 @@ const char* Mpeg_Descriptors_teletext_type(int8u teletext_type)
{
switch (teletext_type)
{
- case 0x01 : return "initial Teletext page";
- case 0x02 : return "Teletext subtitle page";
- case 0x03 : return "additional information page";
- case 0x04 : return "programme schedule page";
- case 0x05 : return "Teletext subtitle page for hearing impaired people";
+ case 0x01 : return "Teletext";
+ case 0x02 : return "Teletext Subtitle";
+ case 0x03 : return "Teletext"; //additional information page
+ case 0x04 : return "Teletext"; //programme schedule page
+ case 0x05 : return "Teletext Subtitle"; //for hearing impaired people
default : return "reserved for future use";
}
}
@@ -500,14 +500,14 @@ const char* Mpeg_Descriptors_component_type_O3(int8u component_type)
case 0x01 : return "EBU Teletext subtitles";
case 0x02 : return "associated EBU Teletext";
case 0x03 : return "VBI data";
- case 0x10 : return "DVB subtitles (normal) with no monitor aspect ratio criticality";
- case 0x11 : return "DVB subtitles (normal) for display on 4:3 aspect ratio monitor";
- case 0x12 : return "DVB subtitles (normal) for display on 16:9 aspect ratio monitor";
- case 0x13 : return "DVB subtitles (normal) for display on 2.21:1 aspect ratio monitor";
- case 0x20 : return "DVB subtitles (for the hard of hearing) with no monitor aspect ratio criticality";
- case 0x21 : return "DVB subtitles (for the hard of hearing) for display on 4:3 aspect ratio monitor";
- case 0x22 : return "DVB subtitles (for the hard of hearing) for display on 16:9 aspect ratio monitor";
- case 0x23 : return "DVB subtitles (for the hard of hearing) for display on 2.21:1 aspect ratio monitor";
+ case 0x10 : return "DVB subtitle (normal) with no monitor aspect ratio criticality";
+ case 0x11 : return "DVB subtitle (normal) for display on 4:3 aspect ratio monitor";
+ case 0x12 : return "DVB subtitle (normal) for display on 16:9 aspect ratio monitor";
+ case 0x13 : return "DVB subtitle (normal) for display on 2.21:1 aspect ratio monitor";
+ case 0x20 : return "DVB subtitle (for the hard of hearing) with no monitor aspect ratio criticality";
+ case 0x21 : return "DVB subtitle (for the hard of hearing) for display on 4:3 aspect ratio monitor";
+ case 0x22 : return "DVB subtitle (for the hard of hearing) for display on 16:9 aspect ratio monitor";
+ case 0x23 : return "DVB subtitle (for the hard of hearing) for display on 2.21:1 aspect ratio monitor";
default :
if (component_type>=0xB0 && component_type<=0xFE)
return "user defined";
@@ -683,7 +683,7 @@ const char* Mpeg_Descriptors_stream_Format(int8u descriptor_tag, int32u format_i
switch (descriptor_tag)
{
case 0x56 : return "Teletext";
- case 0x59 : return "DVB Subtitles";
+ case 0x59 : return "DVB Subtitle";
case 0x6A : return "AC-3";
case 0x7A : return "E-AC-3";
case 0x7B : return "DTS";
@@ -729,7 +729,7 @@ const char* Mpeg_Descriptors_stream_Codec(int8u descriptor_tag, int32u format_id
switch (descriptor_tag)
{
case 0x56 : return "Teletext";
- case 0x59 : return "DVB Subtitles";
+ case 0x59 : return "DVB Subtitle";
case 0x6A : return "AC3";
case 0x7A : return "AC3+";
case 0x7B : return "DTS";
@@ -1459,6 +1459,22 @@ void File_Mpeg_Descriptors::Data_Parse()
break;
}
}
+ else if (table_id==0xFC)
+ {
+ //SCTE 35
+ #undef ELEMENT_CASE
+ #define ELEMENT_CASE(_NAME, _DETAIL) \
+ case 0x##_NAME : Element_Name(_DETAIL); CUEI_##_NAME(); break;
+ switch (Element_Code)
+ {
+ ELEMENT_CASE(00, "SCTE35 - avail_descriptor");
+ ELEMENT_CASE(01, "SCTE35 - DTMF_descriptor");
+ ELEMENT_CASE(02, "SCTE35 - segmentation_descriptor");
+ default: Element_Info("SCTE35 - Reserved");
+ Skip_XX(Element_Size, "Data");
+ break;
+ }
+ }
else
{
switch (Element_Code)
@@ -2143,25 +2159,28 @@ void File_Mpeg_Descriptors::Descriptor_56()
while (Element_Offset<Element_Size)
{
Element_Begin("teletext");
- int32u ISO_639_language_code;
- Get_C3 (ISO_639_language_code, "ISO_639_language_code");
+ Ztring ISO_639_language_code;
+ int8u teletext_magazine_number;
+ int8u teletext_page_number_1;
+ int8u teletext_page_number_2;
+ Get_Local(3, ISO_639_language_code, "ISO_639_language_code");
BS_Begin();
Info_S1(5, teletext_type, "teletext_type"); Param_Info(Mpeg_Descriptors_teletext_type(teletext_type));
- Skip_S1(3, "teletext_magazine_number");
- Skip_S1(4, "teletext_page_number_1");
- Skip_S1(4, "teletext_page_number_2");
+ Get_S1 (3, teletext_magazine_number, "teletext_magazine_number");
+ Get_S1 (4, teletext_page_number_1, "teletext_page_number_1");
+ Get_S1 (4, teletext_page_number_2, "teletext_page_number_2");
BS_End();
FILLING_BEGIN();
switch (table_id)
{
case 0x02 : //program_map_section
- if (elementary_PID_IsValid)
+ if (elementary_PID_IsValid && (teletext_type==2 || teletext_type==5)) //Subtitles are the only supported format
{
- Ztring ISO_639_2; ISO_639_2.From_CC3(ISO_639_language_code);
- const Ztring& ISO_639_1=MediaInfoLib::Config.Iso639_1_Get(ISO_639_2);
- Languages+=(ISO_639_1.empty()?ISO_639_2:ISO_639_1)+_T(" / ");
- //TODO: this stream is teletext. Be careful, multiple stream in a PID
+ int16u ID=(teletext_magazine_number==0?8:teletext_magazine_number)*100+teletext_page_number_1*10+teletext_page_number_2;
+ Complete_Stream->Streams[elementary_PID].Teletexts[ID].Infos["Language"]=MediaInfoLib::Config.Iso639_1_Get(ISO_639_language_code);
+ Complete_Stream->Streams[elementary_PID].Teletexts[ID].Infos["Format"]=Mpeg_Descriptors_teletext_type(teletext_type);
+ Complete_Stream->Streams[elementary_PID].Teletexts[ID].Infos["Codec"]=Mpeg_Descriptors_teletext_type(teletext_type);
}
break;
default : ;
@@ -2170,24 +2189,6 @@ void File_Mpeg_Descriptors::Descriptor_56()
Element_End();
}
-
- FILLING_BEGIN();
- switch (table_id)
- {
- case 0x02 : //program_map_section
- if (elementary_PID_IsValid)
- {
- Complete_Stream->Streams[elementary_PID].StreamKind=Stream_Text;
- if (!Languages.empty())
- Languages.resize(Languages.size()-3);
- Complete_Stream->Streams[elementary_PID].Infos["Language"]=Languages;
- Complete_Stream->Streams[elementary_PID].Infos["Format"]=_T("Teletext");
- Complete_Stream->Streams[elementary_PID].Infos["Codec"]=_T("Teletext");
- }
- break;
- default : ;
- }
- FILLING_END();
}
//---------------------------------------------------------------------------
@@ -2261,8 +2262,8 @@ void File_Mpeg_Descriptors::Descriptor_59()
if (!Languages.empty())
Languages.resize(Languages.size()-3);
Complete_Stream->Streams[elementary_PID].Infos["Language"]=Languages;
- Complete_Stream->Streams[elementary_PID].Infos["Format"]=_T("DVB Subtitles");
- Complete_Stream->Streams[elementary_PID].Infos["Codec"]=_T("DVB Subtitles");
+ Complete_Stream->Streams[elementary_PID].Infos["Format"]=_T("DVB Subtitle");
+ Complete_Stream->Streams[elementary_PID].Infos["Codec"]=_T("DVB Subtitle");
}
break;
default : ;
@@ -2669,28 +2670,26 @@ void File_Mpeg_Descriptors::Descriptor_86()
Skip_S1(3, "reserved");
Get_S1 (5, number_of_services, "number_of_services");
BS_End();
- if (elementary_PID_IsValid)
- {
- if (number_of_services>=Complete_Stream->Streams[elementary_PID].Captions_Language.size())
- Complete_Stream->Streams[elementary_PID].Captions_Language.resize(number_of_services);
- }
for (int8u Pos=0; Pos<number_of_services; Pos++)
{
Element_Begin("service");
Ztring language;
+ int8u caption_service_number;
bool digital_cc;
Get_Local(3, language, "language");
BS_Begin();
Get_SB (digital_cc, "digital_cc");
Skip_SB( "reserved");
if (digital_cc) //line21
+ Get_S1 (6, caption_service_number, "caption_service_number");
+ else
{
+ bool line21_field;
Skip_S1(5, "reserved");
- Skip_SB( "line21_field");
+ Get_SB ( line21_field, "line21_field");
+ caption_service_number=128+(line21_field?2:1);
}
- else
- Skip_S1(6, "caption_service_number");
Skip_SB( "easy_reader");
Skip_SB( "wide_aspect_ratio");
Skip_S2(14, "reserved");
@@ -2699,13 +2698,13 @@ void File_Mpeg_Descriptors::Descriptor_86()
if (event_id_IsValid)
{
- if (Complete_Stream->Sources[table_id_extension].ATSC_EPG_Blocks[Complete_Stream->Streams[pid].table_type].Events[event_id].language.empty()) //We use only the first detected value
- Complete_Stream->Sources[table_id_extension].ATSC_EPG_Blocks[Complete_Stream->Streams[pid].table_type].Events[event_id].language=language;
+ if (Complete_Stream->Sources[table_id_extension].ATSC_EPG_Blocks[Complete_Stream->Streams[pid].table_type].Events[event_id].Languages[caption_service_number].empty()) //We use only the first detected value
+ Complete_Stream->Sources[table_id_extension].ATSC_EPG_Blocks[Complete_Stream->Streams[pid].table_type].Events[event_id].Languages[caption_service_number]=language;
}
if (elementary_PID_IsValid)
{
- if (Complete_Stream->Streams[elementary_PID].Captions_Language[Pos].empty()) //We use only the first detected value
- Complete_Stream->Streams[elementary_PID].Captions_Language[Pos]=language;
+ if (Complete_Stream->Streams[elementary_PID].Languages[caption_service_number].empty()) //We use only the first detected value
+ Complete_Stream->Streams[elementary_PID].Languages[caption_service_number]=language;
}
}
}
@@ -2776,14 +2775,19 @@ void File_Mpeg_Descriptors::Descriptor_A1()
for (int8u Pos=0; Pos<number_elements; Pos++)
{
Element_Begin();
+ Ztring Language;
int16u elementary_PID;
Skip_B1( "stream_type");
BS_Begin();
Skip_S1( 3, "reserved");
Get_S2 (13, elementary_PID, "elementary_PID");
BS_End();
- Skip_Local(3, "ISO_639_language_code");
+ Get_Local(3, Language, "ISO_639_language_code");
Element_End(Ztring().From_CC2(elementary_PID), 6);
+
+ //Filling
+ if (Complete_Stream->Streams[elementary_PID].Infos["Language"].empty()) //We use only the first detected value
+ Complete_Stream->Streams[elementary_PID].Infos["Language"]=Language;
}
}
@@ -2814,6 +2818,90 @@ void File_Mpeg_Descriptors::Descriptor_AA()
Skip_XX(Element_Size, "rc_information");
}
+//---------------------------------------------------------------------------
+void File_Mpeg_Descriptors::CUEI_00()
+{
+ Skip_C4( "identifier (\"CUEI\")"); //CUEI
+ Skip_B4( "provider_avail_id");
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Descriptors::CUEI_01()
+{
+ Skip_XX(Element_Size, "Data");
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Descriptors::CUEI_02()
+{
+ //Parsing
+ int32u segmentation_event_id;
+ bool segmentation_event_cancel_indicator;
+ Skip_C4( "identifier (\"CUEI\")"); //CUEI
+ Get_B4 (segmentation_event_id, "segmentation_event_id");
+ BS_Begin();
+ Get_SB ( segmentation_event_cancel_indicator, "segmentation_event_cancel_indicator");
+ Skip_S1( 7, "reserved");
+ BS_End();
+ if (!segmentation_event_cancel_indicator)
+ {
+ int8u segmentation_upid_length, segmentation_type_id;
+ bool program_segmentation_flag, segmentation_duration_flag;
+ BS_Begin();
+ Get_SB ( program_segmentation_flag, "program_segmentation_flag");
+ Get_SB ( segmentation_duration_flag, "segmentation_duration_flag");
+ Skip_S1( 6, "reserved");
+ BS_End();
+ if (!program_segmentation_flag)
+ {
+ int8u component_count;
+ Get_B1 (component_count, "component_count");
+ for (int8u Pos=0; Pos<component_count; Pos++)
+ {
+ Skip_B1( "component_tag");
+ BS_Begin();
+ Skip_S1( 7, "reserved");
+ Skip_S5(33, "pts_offset");
+ BS_End();
+ }
+ }
+ if (segmentation_duration_flag)
+ {
+ Skip_B5( "segmentation_duration");
+ }
+ Skip_B1( "segmentation_upid_type");
+ Get_B1 (segmentation_upid_length, "segmentation_upid_length");
+ Skip_XX(segmentation_upid_length, "segmentation_upid"); //TODO
+ Get_B1 (segmentation_type_id, "segmentation_type_id");
+ Skip_B1( "segment_num");
+ Skip_B1( "segments_expected");
+
+ FILLING_BEGIN();
+ for (size_t Program_Pos=0; Program_Pos<Complete_Stream->Streams[pid].program_numbers.size(); Program_Pos++)
+ {
+ complete_stream::transport_stream::program::scte35* Scte35=Complete_Stream->Transport_Streams[transport_stream_id].Programs[Complete_Stream->Streams[pid].program_numbers[Program_Pos]].Scte35;
+ if (Scte35)
+ {
+ int8u Status=0; //Running
+ switch (segmentation_type_id)
+ {
+ case 0x11 : segmentation_type_id=0x10; Status=1; break; //Program Start/End
+ case 0x12 : segmentation_type_id=0x10; Status=2; break; //Program Start/Early Termination
+ case 0x14 : segmentation_type_id=0x13; Status=1; break; //Program Breakaway/Resumption
+ case 0x21 : segmentation_type_id=0x20; Status=1; break; //Chapter Start/End
+ case 0x31 : segmentation_type_id=0x30; Status=1; break; //Provider Advertisement Start/End
+ case 0x33 : segmentation_type_id=0x32; Status=1; break; //Distributor Advertisement Start/End
+ case 0x41 : segmentation_type_id=0x40; Status=1; break; //Unscheduled Event Start/End
+ default : ;
+ }
+
+ Scte35->Segmentations[segmentation_event_id].Segments[segmentation_type_id].Status=Status;
+ }
+ }
+ FILLING_END();
+ }
+}
+
//***************************************************************************
// Helpers
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.h b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.h
index 5f537a602..ce7a81f44 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.h
@@ -95,6 +95,37 @@ struct complete_stream
dvb_epg_blocks DVB_EPG_Blocks; //Key is table_id
bool DVB_EPG_Blocks_IsUpdated;
+ //SCTE 35
+ struct scte35
+ {
+ struct segmentation
+ {
+ struct segment
+ {
+ int8u Status; //If it is currently in the program: 0=Running, 1=Ended, 2=Early termination
+
+ segment()
+ {
+ Status=(int8u)-1;
+ }
+ };
+
+ typedef std::map<int8u, segment> segments; //Key is segmentation_type_id
+ segments Segments;
+ ;
+ };
+
+ typedef std::map<int32u, segmentation> segmentations; //Key is segmentation_event_id
+ segmentations Segmentations;
+ int16u PID;
+
+ scte35()
+ {
+ PID=(int16u)-1;
+ }
+ };
+ scte35* Scte35;
+
//Constructor/Destructor
program()
{
@@ -108,6 +139,7 @@ struct complete_stream
IsParsed=false;
IsRegistered=false;
DVB_EPG_Blocks_IsUpdated=false;
+ Scte35=NULL;
}
};
typedef std::map<int16u, program> programs; //Key is program_number
@@ -192,7 +224,12 @@ struct complete_stream
typedef std::vector<table_id*> table_ids;
table_ids Table_IDs; //Key is table_id
std::map<std::string, Ztring> Infos;
- std::vector<Ztring> Captions_Language;
+ std::map<int8u, Ztring> Languages; //Key is caption_service_number or 128+line21_field
+ struct teletext
+ {
+ std::map<std::string, Ztring> Infos;
+ };
+ std::map<int16u, teletext> Teletexts; //Key is teletext_magazine_number
#if MEDIAINFO_TRACE
Ztring Element_Info;
#endif //MEDIAINFO_TRACE
@@ -342,7 +379,7 @@ struct complete_stream
int32u start_time;
Ztring duration;
Ztring title;
- Ztring language;
+ std::map<int8u, Ztring> Languages; //Key is caption_service_number or 128+line21_field
std::map<int16u, Ztring> texts;
event()
@@ -568,6 +605,11 @@ private :
void Descriptor_AA();
void Descriptor_AB() {Skip_XX(Element_Size, "Data");};
+ //SCTE 35
+ void CUEI_00();
+ void CUEI_01();
+ void CUEI_02();
+
//Helpers
void ATSC_multiple_string_structure(Ztring &Value, const char* Info);
void Get_DVB_Text(int64u Size, Ztring &Value, const char* Info);
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.cpp
index 74edbe114..e51b9f487 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.cpp
@@ -124,6 +124,7 @@ const char* Mpeg_Psi_stream_type_Format(int8u stream_type, int32u format_identif
case Elements::S14A : //ATSC
switch (stream_type)
{
+ case 0x80 : return "MPEG Video";
case 0x81 : return "AC-3";
case 0x82 : return "Text";
case 0x87 : return "E-AC-3";
@@ -188,6 +189,7 @@ const char* Mpeg_Psi_stream_type_Codec(int8u stream_type, int32u format_identifi
case Elements::S14A : //ATSC
switch (stream_type)
{
+ case 0x80 : return "MPEG-2V";
case 0x81 : return "AC3";
case 0x82 : return "Text";
case 0x87 : return "AC3+";
@@ -248,6 +250,7 @@ stream_t Mpeg_Psi_stream_type_StreamKind(int32u stream_type, int32u format_ident
case Elements::S14A : //ATSC
switch (stream_type)
{
+ case 0x80 : return Stream_Video;
case 0x81 : return Stream_Audio;
case 0x82 : return Stream_Text;
case 0x87 : return Stream_Audio;
@@ -341,11 +344,13 @@ const char* Mpeg_Psi_stream_type_Info(int8u stream_type, int32u format_identifie
case Elements::SCTE : //SCTE
switch (stream_type)
{
+ case 0x80 : return "SCTE - MPEG Video";
case 0x81 : return "ATSC - AC-3";
case 0x82 : return "SCTE - Standard Subtitle";
case 0x83 : return "SCTE - Isochronous Data";
case 0x84 : return "ATSC - Reserved";
case 0x85 : return "ATSC - Program Identifier";
+ case 0x86 : return "SCTE - Splice";
case 0x87 : return "ATSC - E-AC-3";
case 0x90 : return "DVB - stream_type value for Time Slicing / MPE-FEC";
case 0x95 : return "ATSC - Data Service Table, Network Resources Table";
@@ -487,6 +492,7 @@ const char* Mpeg_Psi_table_id(int8u table_id)
case 0xD8 : return "ATSC - Cable Emergency Alert";
case 0xD9 : return "ATSC - Aggregate Data Event Table";
case 0xDA : return "ATSC - Satellite VCT (SVCT)";
+ case 0xFC : return "SCTE - Splice";
default :
if (table_id>=0x06
&& table_id<=0x37) return "ITU-T Rec. H.222.0 | ISO/IEC 13818-1 reserved";
@@ -662,6 +668,22 @@ const char* Mpeg_Psi_running_status[]=
//---------------------------------------------------------------------------
extern const char* Mpeg_Descriptors_original_network_id(int16u original_network_id);
+//---------------------------------------------------------------------------
+const char* Mpeg_Psi_splice_command_type(int8u splice_command_type)
+{
+ switch (splice_command_type)
+ {
+ case 0x00 : return "splice_null";
+ case 0x04 : return "splice_schedule";
+ case 0x05 : return "splice_insert";
+ case 0x06 : return "time_signal";
+ case 0x07 : return "bandwidth_reservation";
+ default : return "Reserved";
+ }
+};
+
+
+
//***************************************************************************
// Constructor/Destructor
//***************************************************************************
@@ -784,7 +806,7 @@ void File_Mpeg_Psi::Data_Parse()
}
#define ELEMENT_CASE(_NAME, _DETAIL) \
- case 0x##_NAME : Table_##_NAME(); break;
+ case 0x##_NAME : Element_Name(_DETAIL); Table_##_NAME(); break;
switch (table_id)
{
@@ -880,6 +902,7 @@ void File_Mpeg_Psi::Data_Parse()
ELEMENT_CASE(D8, "ATSC - Cable Emergency Alert");
ELEMENT_CASE(D9, "ATSC - Aggregate Data Event Table");
ELEMENT_CASE(DA, "ATSC - Satellite VCT");
+ ELEMENT_CASE(FC, "SCTE - Splice");
default :
if (table_id>=0x06
&& table_id<=0x37) {Element_Name("ITU-T Rec. H.222.0 | ISO/IEC 13818-1 reserved"); Skip_XX(Element_Size, "Unknown"); break;}
@@ -977,6 +1000,7 @@ void File_Mpeg_Psi::program_stream_map()
FILLING_BEGIN();
Complete_Stream->Streams[elementary_stream_id].stream_type=stream_type;
+ Complete_Stream->Streams[elementary_stream_id].Infos["CodecID"].From_Number(stream_type);
FILLING_END();
}
}
@@ -1125,11 +1149,33 @@ void File_Mpeg_Psi::Table_02()
{
Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[program_number].elementary_PIDs.push_back(elementary_PID);
Complete_Stream->Streams[elementary_PID].program_numbers.push_back(program_number);
+ Complete_Stream->Streams[elementary_PID].Table_IDs.resize(0x100);
+ Complete_Stream->Streams[elementary_PID].Table_IDs[0xFC]=new complete_stream::stream::table_id; //program_map_section
}
- if (Complete_Stream->Streams[elementary_PID].Kind!=complete_stream::stream::pes)
+ if (Complete_Stream->Streams[elementary_PID].Kind==complete_stream::stream::unknown)
{
Complete_Stream->Streams_NotParsedCount++;
- Complete_Stream->Streams[elementary_PID].Kind=complete_stream::stream::pes;
+ if (stream_type==0x86 && Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[table_id_extension].registration_format_identifier==Elements::CUEI)
+ {
+ Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[table_id_extension].Infos["SCTE35_PID"]=Ztring::ToZtring(elementary_PID);
+ Complete_Stream->Streams[elementary_PID].Kind=complete_stream::stream::psi;
+ if (Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[table_id_extension].Scte35==NULL)
+ {
+ Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[table_id_extension].Scte35=new complete_stream::transport_stream::program::scte35;
+ Complete_Stream->Transport_Streams[Complete_Stream->transport_stream_id].Programs[table_id_extension].Scte35->PID=elementary_PID;
+ }
+ #if MEDIAINFO_TRACE
+ Complete_Stream->Streams[elementary_PID].Element_Info="PSI";
+ #endif //MEDIAINFO_TRACE
+ }
+ else
+ {
+ Complete_Stream->Streams[elementary_PID].Kind=complete_stream::stream::pes;
+ Complete_Stream->Streams[elementary_PID].Infos["CodecID"].From_Number(stream_type);
+ #if MEDIAINFO_TRACE
+ Complete_Stream->Streams[elementary_PID].Element_Info="PES";
+ #endif //MEDIAINFO_TRACE
+ }
Complete_Stream->Streams[elementary_PID].stream_type=stream_type;
Complete_Stream->Streams[elementary_PID].Searching_Payload_Start_Set(true);
#ifdef MEDIAINFO_MPEGTS_PCR_YES
@@ -1139,9 +1185,6 @@ void File_Mpeg_Psi::Table_02()
#ifdef MEDIAINFO_MPEGTS_PESTIMESTAMP_YES
//Complete_Stream->Streams[elementary_PID].Searching_ParserTimeStamp_Start_Set(true);
#endif //MEDIAINFO_MPEGTS_PESTIMESTAMP_YES
- #if MEDIAINFO_TRACE
- Complete_Stream->Streams[elementary_PID].Element_Info="PES";
- #endif //MEDIAINFO_TRACE
if (Complete_Stream->File__Duplicate_Get_From_PID(elementary_PID))
Complete_Stream->Streams[elementary_PID].ShouldDuplicate=true;
}
@@ -1918,6 +1961,156 @@ void File_Mpeg_Psi::Table_D6()
Skip_XX(Element_Size, "reserved");
}
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC()
+{
+ //Parsing
+ int16u splice_command_length;
+ int8u splice_command_type;
+ bool encrypted_packet;
+ Skip_B1( "protocol_version");
+ BS_Begin();
+ Get_SB ( encrypted_packet, "encrypted_packet");
+ Skip_S1( 6, "encryption_algorithm");
+ Skip_S5(33, "pts_adjustment");
+ Skip_S1( 8, "cw_index");
+ Skip_S2(12, "reserved");
+ Get_S2 (12, splice_command_length, "splice_command_length");
+ if (splice_command_length==0xFFF)
+ splice_command_length=(int16u)(Element_Size-4-Element_Offset);
+ Get_S1 ( 8, splice_command_type, "splice_command_type"); Param_Info(Mpeg_Psi_splice_command_type(splice_command_type));
+ BS_End();
+
+ Element_Begin();
+ #undef ELEMENT_CASE
+ #define ELEMENT_CASE(_NAME, _DETAIL) \
+ case 0x##_NAME : Element_Name(_DETAIL); Table_FC_##_NAME(); break;
+ switch (splice_command_type)
+ {
+ ELEMENT_CASE (00, "splice_null"); break;
+ ELEMENT_CASE (04, "splice_schedule"); break;
+ ELEMENT_CASE (05, "splice_insert"); break;
+ ELEMENT_CASE (06, "time_signal"); break;
+ ELEMENT_CASE (07, "bandwidth_reservation"); break;
+ default : Skip_XX(splice_command_length, "Unknown");
+ }
+ Element_End();
+
+ if (Element_Offset+4<Element_Size)
+ {
+ Get_B2 (Descriptors_Size, "descriptor_loop_length");
+ transport_stream_id=Complete_Stream->transport_stream_id; //SCTE 35 is automaticly linked to the current transport_stream_id
+ Descriptors();
+ }
+
+ if (Element_Offset+4<Element_Size)
+ Skip_XX(Element_Size-(Element_Offset+4), "alignment_stuffing");
+ if (encrypted_packet)
+ Skip_B4( "E_CRC_32");
+ Skip_B4( "CRC32");
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_00()
+{
+ //Null
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_04()
+{
+ //TODO
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_05()
+{
+ //Parsing
+ bool splice_event_cancel_indicator;
+ Skip_B4( "splice_event_id");
+ BS_Begin();
+ Get_SB ( splice_event_cancel_indicator, "splice_event_cancel_indicator");
+ Skip_S1( 7, "reserved");
+ BS_End();
+ if (!splice_event_cancel_indicator)
+ {
+ bool program_splice_flag, duration_flag, splice_immediate_flag;
+ BS_Begin();
+ Skip_SB( "out_of_network_indicator");
+ Get_SB ( program_splice_flag, "program_splice_flag");
+ Get_SB ( duration_flag, "duration_flag");
+ Get_SB ( splice_immediate_flag, "splice_immediate_flag");
+ Skip_S1( 4, "reserved");
+ BS_End();
+ if(program_splice_flag && !splice_immediate_flag)
+ Table_FC_05_splice_time();
+ if (!program_splice_flag)
+ {
+ int8u component_count;
+ Get_B1(component_count, "component_count");
+ for (int8u component=0; component<component_count; component++)
+ {
+ Skip_B1( "component_tag");
+ Table_FC_05_splice_time();
+ }
+ }
+ if(duration_flag)
+ Table_FC_05_break_duration();
+ Skip_B2( "unique_program_id");
+ Skip_B1( "avail_num");
+ Skip_B1( "avails_expected");
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_05_break_duration()
+{
+ Element_Begin("break_duration");
+
+ //Parsing
+ BS_Begin();
+ Skip_SB( "auto_return");
+ Skip_S1( 6, "reserved");
+ Skip_S5(33, "duration");
+ BS_End();
+
+ Element_End();
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_05_splice_time()
+{
+ Element_Begin("splice_time");
+
+ //Parsing
+ bool time_specified_flag;
+ BS_Begin();
+ Get_SB ( time_specified_flag, "time_specified_flag");
+ if (time_specified_flag)
+ {
+ Skip_S1( 6, "reserved");
+ Skip_S5(33, "pts_time");
+
+ }
+ else
+ Skip_S5(7, "reserved");
+ BS_End();
+
+ Element_End();
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_06()
+{
+ Table_FC_05_splice_time();
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg_Psi::Table_FC_07()
+{
+ //TODO
+}
+
//***************************************************************************
// Helpers
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.h b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.h
index a01f40865..deef034a3 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Psi.h
@@ -130,6 +130,14 @@ private :
void Table_D8() {Skip_XX(Element_Size-Element_Offset, "Data");};
void Table_D9() {Skip_XX(Element_Size-Element_Offset, "Data");};
void Table_DA() {Table_C9();};
+ void Table_FC();
+ void Table_FC_00();
+ void Table_FC_04();
+ void Table_FC_05();
+ void Table_FC_05_break_duration();
+ void Table_FC_05_splice_time();
+ void Table_FC_06();
+ void Table_FC_07();
//Helpers
int16u Descriptors_Size;
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp
index d7413a97a..c2f321620 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp
@@ -88,11 +88,18 @@ namespace Elements
{
UUID(AES3PCMDescriptor, 060E2B34, 02530101, 0D010101, 01014700)
UUID(CDCIEssenceDescriptor, 060E2B34, 02530101, 0D010101, 01012800)
- UUID(ClosedCompleteHeader, 060E2B34, 02050101, 0D010201, 01020400)
- UUID(ClosedHeader, 060E2B34, 02050101, 0D010201, 01020200)
- UUID(CompleteBody, 060E2B34, 02050101, 0D010201, 01030400)
- UUID(CompleteFooter, 060E2B34, 02050101, 0D010201, 01040400)
- UUID(CompleteHeader, 060E2B34, 02050101, 0D010201, 01020400)
+ UUID(OpenIncompleteHeaderPartition, 060E2B34, 02050101, 0D010201, 01020100)
+ UUID(ClosedIncompleteHeaderPartition, 060E2B34, 02050101, 0D010201, 01020200)
+ UUID(OpenCompleteHeaderPartition, 060E2B34, 02050101, 0D010201, 01020300)
+ UUID(ClosedCompleteHeaderPartition, 060E2B34, 02050101, 0D010201, 01020400)
+ UUID(OpenIncompleteBodyPartition, 060E2B34, 02050101, 0D010201, 01030100)
+ UUID(ClosedIncompleteBodyPartition, 060E2B34, 02050101, 0D010201, 01030200)
+ UUID(OpenCompleteBodyPartition, 060E2B34, 02050101, 0D010201, 01030300)
+ UUID(ClosedCompleteBodyPartition, 060E2B34, 02050101, 0D010201, 01030400)
+ UUID(OpenIncompleteFooterPartition, 060E2B34, 02050101, 0D010201, 01040100)
+ UUID(ClosedIncompleteFooterPartition, 060E2B34, 02050101, 0D010201, 01040200)
+ UUID(OpenCompleteFooterPartition, 060E2B34, 02050101, 0D010201, 01040300)
+ UUID(ClosedCompleteFooterPartition, 060E2B34, 02050101, 0D010201, 01040400)
UUID(ContentStorage, 060E2B34, 02530101, 0D010101, 01011800)
UUID(DMSegment, 060E2B34, 02530101, 0D010101, 01014100)
UUID(EssenceContainerData, 060E2B34, 02530101, 0D010101, 01012300)
@@ -105,8 +112,6 @@ namespace Elements
UUID(MPEG2VideoDescriptor, 060E2B34, 02530101, 0D010101, 01015100)
UUID(MultipleDescriptor, 060E2B34, 02530101, 0D010101, 01014400)
UUID(NetworkLocator, 060E2B34, 02530101, 0D010101, 01013200)
- UUID(OpenCompleteBodyPartition, 060E2B34, 02050101, 0D010201, 01030300)
- UUID(OpenHeader, 060E2B34, 02050101, 0D010201, 01020100)
UUID(Padding, 060E2B34, 01010101, 03010210, 01000000)
UUID(Preface, 060E2B34, 02530101, 0D010101, 01012F00)
UUID(RandomIndexMetadata, 060E2B34, 02050101, 0D010201, 01110100)
@@ -116,10 +121,12 @@ namespace Elements
UUID(SourceClip, 060E2B34, 02530101, 0D010101, 01011100)
UUID(SourcePackage, 060E2B34, 02530101, 0D010101, 01013700)
UUID(StaticTrack, 060E2B34, 02530101, 0D010101, 01013A00)
+ UUID(SystemScheme1, 060E2B34, 02530101, 0D010301, 14020100) //SMPTE 405M
UUID(TextLocator, 060E2B34, 02530101, 0D010101, 01013300)
UUID(TimecodeComponent, 060E2B34, 02530101, 0D010101, 01011400)
UUID(Track, 060E2B34, 02530101, 0D010101, 01013B00)
UUID(WaveAudioDescriptor, 060E2B34, 02530101, 0D010101, 01014800)
+ UUID(AncPacketsDescriptor, 060E2B34, 02530101, 0D010101, 01015C00)
//OperationalPatterns
UUID(OP_MultiTrack, 060E2B34, 04010101, 0D010201, 01010900)
@@ -152,21 +159,38 @@ namespace Elements
UUID(MPEG2VideoDescriptor_BitRate, 060E2B34, 01010105, 04010602, 010B0000)
//EssenceCoding
+ UUID(EssenceCoding_RV24, 060E2B34, 04010101, 04010201, 7F000000)
UUID(EssenceCoding_D10Video, 060E2B34, 04010101, 04010202, 01020101)
+ UUID(EssenceCoding_MPEG2Video, 060E2B34, 04010103, 04010202, 01040300)
+ UUID(EssenceCoding_MPEG4Visual, 060E2B34, 04010103, 04010202, 01200204)
UUID(EssenceCoding_DV, 060E2B34, 04010101, 04010202, 02020200)
- UUID(EssenceCoding_MPEG2Video, 060E2B34, 04010103, 04010202, 01040300) //To be confirmed
- UUID(EssenceCoding_MPEG4Visual, 060E2B34, 04010103, 04010202, 01200204) //To be confirmed
- UUID(EssenceCoding_Alaw, 060E2B34, 04010104, 04020202, 03010100) //To be confirmed
- UUID(EssenceCoding_RV24, 060E2B34, 04010101, 04010201, 7F000000) //?
- UUID(EssenceCoding_PCM, 060E2B34, 04010101, 04020201, 7F000000) //To be confirmed
- UUID(EssenceCoding_JPEG2000, 060E2B34, 04010107, 04010202, 03010100) //To be confirmed
+ UUID(EssenceCoding_JPEG2000, 060E2B34, 04010107, 04010202, 03010100)
UUID(EssenceCoding_AVC, 060E2B34, 0401010A, 04010202, 01323102)
+ UUID(EssenceCoding_PCM, 060E2B34, 04010101, 04020201, 7F000000)
+ UUID(EssenceCoding_Alaw, 060E2B34, 04010104, 04020202, 03010100)
//Sequence
UUID(Sequence_Time, 060E2B34, 04010101, 01030201, 01000000)
UUID(Sequence_Picture, 060E2B34, 04010101, 01030202, 01000000)
UUID(Sequence_Sound, 060E2B34, 04010101, 01030202, 02000000)
UUID(Sequence_Data, 060E2B34, 04010101, 01030202, 03000000)
+
+ //Other
+ UUID(Filler, 060E2B34, 01010102, 03010210, 01000000)
+ UUID(TerminatingFiller, 060E2B34, 01010102, 03010210, 05000000)
+ UUID(XmlDocumentText, 060E2B34, 01010105, 03010220, 01000000)
+
+ //SDTI-CP (SMPTE 385M)
+ UUID(SDTI_SystemMetadataPack, 060E2B34, 02050101, 0D010301, 04010100)
+ UUID(SDTI_PackageMetadataSet, 060E2B34, 02430101, 0D010301, 04010200)
+ UUID(SDTI_PictureMetadataSet, 060E2B34, 02430101, 0D010301, 04010300)
+ UUID(SDTI_SoundMetadataSet, 060E2B34, 02430101, 0D010301, 04010400)
+ UUID(SDTI_DataMetadataSet, 060E2B34, 02430101, 0D010301, 04010500)
+ UUID(SDTI_ControlMetadataSet, 060E2B34, 02630101, 0D010301, 04010600)
+
+ //Private
+ UUID(Omneon_010201010100, 060E2B34, 02530105, 0E0B0102, 01010100)
+ UUID(Omneon_010201020100, 060E2B34, 02530105, 0E0B0102, 01020100)
}
//---------------------------------------------------------------------------
@@ -183,26 +207,28 @@ const char* Mxf_Category(int8u Category)
}
//---------------------------------------------------------------------------
-const char* Mxf_RegistryDesignator(int8u Category, int8u RegistryDesignator)
+const char* Mxf_Registry(int8u Category, int8u Registry)
{
switch(Category)
{
case 0x01 : //"Item"
- switch(RegistryDesignator)
+ switch(Registry)
{
case 0x01 : return "Metadata dictionary";
case 0x02 : return "Essence dictionary";
default : return "";
}
case 0x02 : //"Group (Set/Pack)"
- switch(RegistryDesignator)
+ switch(Registry)
{
case 0x05 : return "Contains a fixed number of predefined items with no tag of value indicators";
+ case 0x43 : return "1-byte tag, 2-byte length";
case 0x53 : return "The value of this KLV block contains other KLV-items with a two-byte tag and a two-byte length indicator";
+ case 0x63 : return "1-byte tag, 4-byte length";
default : return "";
}
case 0x04 : //"Value"
- switch(RegistryDesignator)
+ switch(Registry)
{
case 0x01 : return "Fixed";
default : return "";
@@ -276,114 +302,313 @@ const char* Mxf_OperationalPattern(int128u OperationalPattern)
}
//---------------------------------------------------------------------------
-const char* Mxf_EssenceContainer(int128u EssenceContainer)
+const char* Mxf_EssenceElement(int128u EssenceElement)
{
- int32u Code_Compare1=EssenceContainer.hi>>32;
- int32u Code_Compare2=(int32u)EssenceContainer.hi;
- int32u Code_Compare3=EssenceContainer.lo>>32;
- int32u Code_Compare4=(int32u)EssenceContainer.lo;
- #undef ELEMENT
- #define ELEMENT(_ELEMENT, _NAME) \
- else if (Code_Compare1==Elements::_ELEMENT##1 \
- && Code_Compare2==Elements::_ELEMENT##2 \
- && Code_Compare3==Elements::_ELEMENT##3 \
- && Code_Compare4==Elements::_ELEMENT##4) \
- return _NAME; \
-
- if (0) {}
- ELEMENT (EssenceContainer_DV, "DV")
- ELEMENT (EssenceContainer_DV2, "DV")
- ELEMENT (EssenceContainer_DV3, "DV")
- ELEMENT (EssenceContainer_JPEG2000, "JPEG 2000 Picture")
- ELEMENT (EssenceContainer_MPEG2, "MPEG-2 Video")
- ELEMENT (EssenceContainer_RV24, "RV24 (RGBA?)")
- ELEMENT (EssenceContainer_PCM, "PCM")
- ELEMENT (EssenceContainer_PCM2, "PCM")
- ELEMENT (EssenceContainer_PCM3, "PCM")
- ELEMENT (EssenceContainer_PCM4, "PCM")
- ELEMENT (EssenceContainer_Generic, "Generic")
- else
+ if ((EssenceElement.hi&0xFFFFFFFFFFFFFF00LL)!=0x060E2B3401020100LL)
return "";
+
+ int8u Code5=(int8u)((EssenceElement.lo&0x00000000FF000000LL)>>24);
+ int8u Code7=(int8u)((EssenceElement.lo&0x000000000000FF00LL)>> 8);
+
+ switch (Code5)
+ {
+ case 0x05 : //CP Picture (SMPTE 326M)
+ switch (Code7)
+ {
+ case 0x01 : return "D-10 Video";
+ default : return "Unknown stream";
+ }
+ case 0x06 : //CP Sound (SMPTE 326M)
+ switch (Code7)
+ {
+ case 0x10 : return "D-10 Audio";
+ default : return "Unknown stream";
+ }
+ case 0x07 : //CP Data (SMPTE 326M)
+ switch (Code7)
+ {
+ default : return "";
+ }
+ case 0x15 : //GC Picture
+ switch (Code7)
+ {
+ case 0x01 : return "RGB";
+ case 0x05 : return "MPEG Video";
+ case 0x06 : return "AVC";
+ case 0x07 : return "MPEG-4 Visual";
+ case 0x08 : return "JPEG 2000";
+ default : return "Unknown stream";
+ }
+ case 0x16 : //GC Sound
+ switch (Code7)
+ {
+ case 0x01 : return "PCM"; //BWF
+ case 0x02 : return "PCM"; //BWF
+ case 0x03 : return "PCM"; //DV Audio
+ case 0x04 : return "PCM"; //BWF
+ case 0x05 : return "MPEG Audio";
+ case 0x0A : return "A-law";
+ default : return "Unknown stream";
+ }
+ case 0x17 : //GC Data
+ switch (Code7)
+ {
+ case 0x02 : return "ANC"; //Frame-Wrapped ANC Data Element
+ default : return "Unknown stream";
+ }
+ case 0x18 : //GC Compound
+ switch (Code7)
+ {
+ case 0x01 : return "DV"; //Frame
+ case 0x02 : return "DV"; //Clip
+ default : return "Unknown stream";
+ }
+ default : return "Unknown stream";
+ }
}
//---------------------------------------------------------------------------
-const char* Mxf_EssenceCoding(int128u EssenceContainer)
+const char* Mxf_EssenceContainer(int128u EssenceContainer)
{
- int32u Code_Compare1=EssenceContainer.hi>>32;
- int32u Code_Compare2=(int32u)EssenceContainer.hi;
- int32u Code_Compare3=EssenceContainer.lo>>32;
- int32u Code_Compare4=(int32u)EssenceContainer.lo;
- #undef ELEMENT
- #define ELEMENT(_ELEMENT, _NAME) \
- else if (Code_Compare1==Elements::_ELEMENT##1 \
- && Code_Compare2==Elements::_ELEMENT##2 \
- && Code_Compare3==Elements::_ELEMENT##3 \
- && Code_Compare4==Elements::_ELEMENT##4) \
- return _NAME; \
-
- if (0) {}
- ELEMENT(EssenceCoding_D10Video, "D-10 Video")
- ELEMENT(EssenceCoding_DV, "DV")
- ELEMENT(EssenceCoding_PCM, "PCM")
- ELEMENT(EssenceCoding_RV24, "RV24")
- ELEMENT(EssenceCoding_MPEG2Video, "MPEG-2 Video")
- ELEMENT(EssenceCoding_MPEG4Visual, "MPEG-4 Visual")
- ELEMENT(EssenceCoding_Alaw, "A-law")
- ELEMENT(EssenceCoding_JPEG2000, "JPEG 2000")
- ELEMENT(EssenceCoding_AVC, "AVC")
- else
+ if ((EssenceContainer.hi&0xFFFFFFFFFFFFFF00LL)!=0x060E2B3404010100LL)
return "";
+
+ int8u Code1=(int8u)((EssenceContainer.lo&0xFF00000000000000LL)>>56);
+ int8u Code2=(int8u)((EssenceContainer.lo&0x00FF000000000000LL)>>48);
+ int8u Code3=(int8u)((EssenceContainer.lo&0x0000FF0000000000LL)>>40);
+ int8u Code4=(int8u)((EssenceContainer.lo&0x000000FF00000000LL)>>32);
+ int8u Code5=(int8u)((EssenceContainer.lo&0x00000000FF000000LL)>>24);
+ int8u Code6=(int8u)((EssenceContainer.lo&0x0000000000FF0000LL)>>16);
+ //int8u Code7=(int8u)((EssenceContainer.lo&0x000000000000FF00LL)>> 8);
+
+ switch (Code1)
+ {
+ case 0x0D : //Public Use
+ switch (Code2)
+ {
+ case 0x01 : //AAF
+ switch (Code3)
+ {
+ case 0x03 : //Essence Container Application
+ switch (Code4)
+ {
+ case 0x01 : //MXF EC Structure version
+ switch (Code5)
+ {
+ case 0x02 : //Essence container kind
+ switch (Code6)
+ {
+ case 0x02 : return "DV";
+ case 0x06 : return "PCM";
+ case 0x04 : return "MPEG ES mappings with Stream ID";
+ case 0x0A : return "A-law";
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
}
//---------------------------------------------------------------------------
-const char* Mxf_EssenceCoding_Format(int128u EssenceContainer)
+const char* Mxf_EssenceContainer_Mapping(int8u Code6, int8u Code7, int8u Code8)
{
- int32u Code_Compare1=EssenceContainer.hi>>32;
- int32u Code_Compare2=(int32u)EssenceContainer.hi;
- int32u Code_Compare3=EssenceContainer.lo>>32;
- int32u Code_Compare4=(int32u)EssenceContainer.lo;
- #undef ELEMENT
- #define ELEMENT(_ELEMENT, _NAME) \
- else if (Code_Compare1==Elements::_ELEMENT##1 \
- && Code_Compare2==Elements::_ELEMENT##2 \
- && Code_Compare3==Elements::_ELEMENT##3 \
- && Code_Compare4==Elements::_ELEMENT##4) \
- return _NAME; \
+ switch (Code6)
+ {
+ case 0x02 : //DV, SMPTE 383M
+ switch (Code8)
+ {
+ case 0x01 : return "Frame";
+ case 0x02 : return "Clip";
+ default : return "";
+ }
+ case 0x04 : //MPEG ES, SMPTE 381M
+ case 0x07 : //MPEG PES, SMPTE 381M
+ case 0x08 : //MPEG PS, SMPTE 381M
+ case 0x09 : //MPEG TS, SMPTE 381M
+ switch (Code8)
+ {
+ case 0x01 : return "Frame";
+ case 0x02 : return "Clip";
+ case 0x03 : return "Custom: Stripe";
+ case 0x04 : return "Custom: PES";
+ case 0x05 : return "Custom: Fixed Audio Size";
+ case 0x06 : return "Custom: Splice";
+ case 0x07 : return "Custom: Closed GOP";
+ case 0x08 : return "Custom: Slave";
+ case 0x7F : return "Custom";
+ default : return "";
+ }
+ case 0x05 : //Uncompressed pictures, SMPTE 384M
+ switch (Code8)
+ {
+ case 0x01 : return "Frame";
+ case 0x02 : return "Clip";
+ case 0x03 : return "Line";
+ default : return "";
+ }
+ case 0x06 : //AES-PCM, SMPTE 382M
+ switch (Code7)
+ {
+ case 0x01 : return "Frame (BWF)";
+ case 0x02 : return "Clip (BWF)";
+ case 0x03 : return "Frame (AES)";
+ case 0x04 : return "Clip (BWF)";
+ case 0x08 : return "Custom (BWF)";
+ case 0x09 : return "Custom (AES)";
+ default : return "";
+ }
+ default : return "";
+ }
+}
- if (0) {}
- ELEMENT(EssenceCoding_D10Video, "MPEG Video")
- ELEMENT(EssenceCoding_DV, "DV")
- ELEMENT(EssenceCoding_JPEG2000, "M-JPEG 2000")
- ELEMENT(EssenceCoding_MPEG2Video, "MPEG Video")
- ELEMENT(EssenceCoding_MPEG4Visual, "MPEG-4 Visual")
- ELEMENT(EssenceCoding_Alaw, "A-law")
- ELEMENT(EssenceCoding_PCM, "PCM")
- ELEMENT(EssenceCoding_RV24, "RV24")
- ELEMENT(EssenceCoding_AVC, "AVC")
- else
+//---------------------------------------------------------------------------
+const char* Mxf_EssenceCompression(int128u EssenceCompression)
+{
+ if ((EssenceCompression.hi&0xFFFFFFFFFFFFFF00LL)!=0x060E2B3404010100LL || (EssenceCompression.lo&0xFF00000000000000LL)!=0x0400000000000000LL)
return "";
+
+ int8u Code2=(int8u)((EssenceCompression.lo&0x00FF000000000000LL)>>48);
+ int8u Code3=(int8u)((EssenceCompression.lo&0x0000FF0000000000LL)>>40);
+ int8u Code4=(int8u)((EssenceCompression.lo&0x000000FF00000000LL)>>32);
+ int8u Code5=(int8u)((EssenceCompression.lo&0x00000000FF000000LL)>>24);
+ int8u Code6=(int8u)((EssenceCompression.lo&0x0000000000FF0000LL)>>16);
+ int8u Code7=(int8u)((EssenceCompression.lo&0x000000000000FF00LL)>> 8);
+
+ switch (Code2)
+ {
+ case 0x01 : //Picture
+ switch (Code3)
+ {
+ case 0x02 : //Coding characteristics
+ switch (Code4)
+ {
+ case 0x02 : //Compressed coding
+ switch (Code5)
+ {
+ case 0x01 : //MPEG Compression
+ switch (Code6)
+ {
+ case 0x01 : return "MPEG-2 Video";
+ case 0x02 : return "MPEG-2 Video";
+ case 0x03 : return "MPEG-2 Video";
+ case 0x04 : return "MPEG-2 Video";
+ case 0x11 : return "MPEG-1 Video";
+ case 0x20 : return "MPEG-4 Visual";
+ default : return "";
+ }
+ case 0x02 : return "DV";
+ case 0x03 : //Individual Picture Coding Schemes
+ switch (Code6)
+ {
+ case 0x01 : return "JPEG-2000";
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ case 0x02 : //Sound
+ switch (Code3)
+ {
+ case 0x02 : //Coding characteristics
+ switch (Code4)
+ {
+ case 0x01 : //Uncompressed Sound Coding
+ switch (Code5)
+ {
+ case 0x03 : //Compressed Audio Coding
+ switch (Code6)
+ {
+ case 0x01 : return "MPEG-2"; //D-10
+ case 0x02 : return "DV";
+ case 0x03 : return "D-11?";
+ case 0x04 : return "MPEG Video?"; //ES?
+ case 0x05 : return "Raw";
+ case 0x06 : return "PCM";
+ case 0x07 : return "MPEG Video?"; //PES?
+ case 0x08 : return "MPEG-PS";
+ case 0x09 : return "MPEG-TS";
+ case 0x0A : return "A-law";
+ case 0x0B : return "Encrypted";
+ case 0x0C : return "JPEG-2000";
+ case 0x7F : return "Generic";
+ default : return "";
+ }
+ default : return "";
+ }
+ case 0x02 : //Compressed coding
+ switch (Code5)
+ {
+ case 0x03 : //Compressed Audio Coding
+ switch (Code6)
+ {
+ case 0x01 : //Compandeded Audio Coding
+ switch (Code7)
+ {
+ case 0x01 : return "A-law";
+ case 0x10 : return "DV Audio"; //DV 12-bit
+ default : return ""; //Unknown
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
}
//---------------------------------------------------------------------------
-const char* Mxf_EssenceCoding_Format_Version(int128u EssenceContainer)
+const char* Mxf_EssenceCompression_Version(int128u EssenceCompression)
{
- int32u Code_Compare1=EssenceContainer.hi>>32;
- int32u Code_Compare2=(int32u)EssenceContainer.hi;
- int32u Code_Compare3=EssenceContainer.lo>>32;
- int32u Code_Compare4=(int32u)EssenceContainer.lo;
- #undef ELEMENT
- #define ELEMENT(_ELEMENT, _NAME) \
- else if (Code_Compare1==Elements::_ELEMENT##1 \
- && Code_Compare2==Elements::_ELEMENT##2 \
- && Code_Compare3==Elements::_ELEMENT##3 \
- && Code_Compare4==Elements::_ELEMENT##4) \
- return _NAME; \
+ int8u Code2=(int8u)((EssenceCompression.lo&0x00FF000000000000LL)>>48);
+ int8u Code3=(int8u)((EssenceCompression.lo&0x0000FF0000000000LL)>>40);
+ int8u Code4=(int8u)((EssenceCompression.lo&0x000000FF00000000LL)>>32);
+ int8u Code5=(int8u)((EssenceCompression.lo&0x00000000FF000000LL)>>24);
+ int8u Code6=(int8u)((EssenceCompression.lo&0x0000000000FF0000LL)>>16);
+ //int8u Code7=(int8u)((EssenceCompression.lo&0x000000000000FF00LL)>> 8);
- if (0) {}
- ELEMENT(EssenceCoding_D10Video, "Version 2")
- ELEMENT(EssenceCoding_MPEG2Video, "Version 2")
- else
- return "";
+ switch (Code2)
+ {
+ case 0x01 : //Picture
+ switch (Code3)
+ {
+ case 0x02 : //Coding characteristics
+ switch (Code4)
+ {
+ case 0x02 : //Compressed coding
+ switch (Code5)
+ {
+ case 0x01 : //MPEG Compression
+ switch (Code6)
+ {
+ case 0x01 : return "Version 2";
+ case 0x02 : return "Version 2";
+ case 0x03 : return "Version 2";
+ case 0x04 : return "Version 2";
+ case 0x11 : return "Version 1";
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
+ default : return "";
+ }
}
//---------------------------------------------------------------------------
@@ -428,6 +653,9 @@ File_Mxf::File_Mxf()
ParserIDs[0]=MediaInfo_Parser_Mxf;
StreamIDs_Width[0]=8;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
MustSynchronize=true;
DataMustAlwaysBeComplete=false;
@@ -439,6 +667,24 @@ File_Mxf::File_Mxf()
Preface_Current.hi=(int64u)-1;
Preface_Current.lo=(int64u)-1;
Track_Number_IsAvailable=false;
+ IsParsingEnd=false;
+ TimeCode_StartTimecode=(int64u)-1;
+ TimeCode_RoundedTimecodeBase=0;
+ TimeCode_DropFrame=0;
+ SDTI_TimeCode_StartTimecode=(int64u)-1;
+ SystemScheme1_TimeCodeArray_StartTimecode=(int64u)-1;
+ SystemScheme1_FrameRateFromDescriptor=0;
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ Ancillary_InstanceUID=(int128u)-1;
+ Ancillary_LinkedTrackID=(int32u)-1;
+ Ancillary_TrackNumber=(int32u)-1;
+ Ancillary=NULL;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
+}
+
+//---------------------------------------------------------------------------
+File_Mxf::~File_Mxf()
+{
}
//***************************************************************************
@@ -578,13 +824,13 @@ void File_Mxf::Streams_Finish_ContentStorage (int128u ContentStorageUID)
void File_Mxf::Streams_Finish_Package (int128u PackageUID)
{
packages::iterator Package=Packages.find(PackageUID);
- if (Package==Packages.end())
+ if (Package==Packages.end() || !Package->second.IsSourcePackage)
return;
for (size_t Pos=0; Pos<Package->second.Tracks.size(); Pos++)
Streams_Finish_Track(Package->second.Tracks[Pos]);
- Streams_Finish_Descriptor(Package->second.Descriptor);
+ Streams_Finish_Descriptor(Package->second.Descriptor, PackageUID);
}
//---------------------------------------------------------------------------
@@ -623,10 +869,47 @@ 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)
+ {
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), TimeCode_StartTimecode*1000/TimeCode_RoundedTimecodeBase, 0, true);
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
+ }
+ if (SDTI_TimeCode_StartTimecode!=(int64u)-1)
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_SDTI", SDTI_TimeCode_StartTimecode);
+ if (SystemScheme1_TimeCodeArray_StartTimecode!=(int64u)-1)
+ Fill(StreamKind_Last, StreamPos_Last, "Delay_SystemScheme1", SystemScheme1_TimeCodeArray_StartTimecode);
Merge(*Essence->second.Parser, StreamKind_Last, 0, StreamPos_Last);
}
- if (Tracks[TrackUID].TrackID!=(int32u)-1)
+ //Looking for Material package TrackID
+ int32u ID=(int32u)-1;
+ for (packages::iterator SourcePackage=Packages.begin(); SourcePackage!=Packages.end(); SourcePackage++)
+ if (SourcePackage->second.PackageUID.hi.hi) //Looking fo a SourcePackage with PackageUID only
+ {
+ //Testing if the Track is in this SourcePackage
+ for (size_t Tracks_Pos=0; Tracks_Pos<SourcePackage->second.Tracks.size(); Tracks_Pos++)
+ if (SourcePackage->second.Tracks[Tracks_Pos]==TrackUID)
+ {
+ //We have the the right PackageUID, looking for SourceClip from Sequence from Track from MaterialPackage
+ for (components::iterator SourceClip=Components.begin(); SourceClip!=Components.end(); SourceClip++)
+ if (SourceClip->second.SourcePackageID.lo==SourcePackage->second.PackageUID.lo && SourceClip->second.SourceTrackID==Essence->second.TrackID) //int256u doesn't support yet ==
+ {
+ //We have the right SourceClip, looking for the Sequence from Track from MaterialPackage
+ for (components::iterator Sequence=Components.begin(); Sequence!=Components.end(); Sequence++)
+ for (size_t StructuralComponents_Pos=0; StructuralComponents_Pos<Sequence->second.StructuralComponents.size(); StructuralComponents_Pos++)
+ if (Sequence->second.StructuralComponents[StructuralComponents_Pos]==SourceClip->first)
+ {
+ //We have the right Sequence, looking for Track from MaterialPackage
+ for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); Track++)
+ if (Track->second.Sequence==Sequence->first)
+ ID=Track->second.TrackID;
+ }
+ }
+ }
+ }
+ if (ID!=(int32u)-1)
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, ID);
+ else if (Tracks[TrackUID].TrackID!=(int32u)-1)
Fill(StreamKind_Last, StreamPos_Last, General_ID, Tracks[TrackUID].TrackID);
else
{
@@ -661,18 +944,21 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
size_t Audio_Count=Essence->second.Parser->Count_Get(Stream_Audio);
for (size_t Audio_Pos=0; Audio_Pos<Audio_Count; Audio_Pos++)
{
- size_t StreamPos_Video=StreamPos_Last;
Fill_Flush();
Stream_Prepare(Stream_Audio);
size_t Pos=Count_Get(Stream_Audio)-1;
Essence->second.Parser->Finish();
+ if (TimeCode_RoundedTimecodeBase && TimeCode_StartTimecode!=(int64u)-1)
+ {
+ Fill(Stream_Audio, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), TimeCode_StartTimecode*1000/TimeCode_RoundedTimecodeBase, 0, true);
+ Fill(Stream_Audio, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
+ }
Merge(*Essence->second.Parser, Stream_Audio, Audio_Pos, StreamPos_Last);
if (Retrieve(Stream_Audio, Pos, Audio_MuxingMode).empty())
Fill(Stream_Audio, Pos, Audio_MuxingMode, Retrieve(Stream_Video, Essence->second.StreamPos, Video_Format), true);
else
Fill(Stream_Audio, Pos, Audio_MuxingMode, Retrieve(Stream_Video, Essence->second.StreamPos, Video_Format)+_T(" / ")+Retrieve(Stream_Audio, Pos, Audio_MuxingMode), true);
Fill(Stream_Audio, Pos, Audio_Duration, Retrieve(Stream_Video, Essence->second.StreamPos, Video_Duration));
- Fill(Stream_Audio, Pos, "MuxingMode_MoreInfo", _T("Muxed in Video #")+Ztring().From_Number(StreamPos_Video+1));
Fill(Stream_Audio, Pos, Audio_StreamSize, "0"); //Included in the DV stream size
Ztring ID=Retrieve(Stream_Audio, Pos, Audio_ID);
Fill(Stream_Audio, Pos, Audio_ID, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID)+_T("-")+ID, true);
@@ -688,25 +974,36 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
if (StreamKind_Last==Stream_Video && Essence->second.Parser && Essence->second.Parser->Count_Get(Stream_Text))
{
//Video and Text are together
- size_t Text_Count=Essence->second.Parser->Count_Get(Stream_Text);
- for (size_t Text_Pos=0; Text_Pos<Text_Count; Text_Pos++)
+ File__Analyze* Parser=Essence->second.Parser;
+ size_t Parser_Text_Count=Parser->Count_Get(Stream_Text);
+ for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
{
size_t StreamPos_Video=StreamPos_Last;
- size_t Pos=Count_Get(Stream_Text)-Text_Count+Text_Pos;
- Ztring MuxingMode=Retrieve(Stream_Text, Pos, "MuxingMode");
- if (Retrieve(Stream_Text, Pos, Text_MuxingMode).empty())
- Fill(Stream_Text, Pos, Text_MuxingMode, Retrieve(Stream_Video, Essence->second.StreamPos, Video_Format), true);
+ Fill_Flush();
+ Stream_Prepare(Stream_Text);
+ Parser->Finish();
+ if (TimeCode_RoundedTimecodeBase && TimeCode_StartTimecode!=(int64u)-1)
+ {
+ Fill(Stream_Text, Parser_Text_Pos, Fill_Parameter(StreamKind_Last, Generic_Delay), TimeCode_StartTimecode*1000/TimeCode_RoundedTimecodeBase, 0, true);
+ Fill(Stream_Text, Parser_Text_Pos, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
+ }
+ Merge(*Parser, Stream_Text, Parser_Text_Pos, StreamPos_Last);
+ Fill(Stream_Text, StreamPos_Last, Text_Duration, Retrieve(Stream_Video, StreamPos_Video, Video_Duration));
+ Ztring ID=Retrieve(Stream_Text, StreamPos_Last, Text_ID);
+ if (Retrieve(Stream_Text, StreamPos_Last, Text_MuxingMode).find(_T("Ancillary"))!=string::npos)
+ {
+ Fill(Stream_Text, StreamPos_Last, Text_ID, Ztring::ToZtring(Ancillary_LinkedTrackID)+_T("-")+ID, true);
+ Fill(Stream_Text, StreamPos_Last, Text_ID_String, Ztring::ToZtring(Ancillary_LinkedTrackID)+_T("-")+ID, true);
+ }
else
- Fill(Stream_Text, Pos, Text_MuxingMode, Retrieve(Stream_Video, Essence->second.StreamPos, Video_Format)+_T(" / ")+Retrieve(Stream_Text, Pos, Text_MuxingMode), true);
- if (!IsSub)
- Fill(Stream_Text, Pos, "MuxingMode_MoreInfo", _T("Muxed in Video #")+Ztring().From_Number(StreamPos_Video+1));
- Fill(Stream_Text, Pos, Text_StreamSize, 0);
- Ztring ID=Retrieve(Stream_Text, Pos, Text_ID);
- Fill(Stream_Text, Pos, Text_ID, Retrieve(Stream_Video, StreamPos_Last, Video_ID)+_T("-")+ID, true);
- Fill(Stream_Text, Pos, Text_ID_String, Retrieve(Stream_Video, StreamPos_Last, Video_ID_String)+_T("-")+ID, true);
- Fill(Stream_Text, Pos, Text_Delay, Retrieve(Stream_Video, StreamPos_Last, Video_Delay), true);
- Fill(Stream_Text, Pos, Text_ID, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID)+_T("-")+Retrieve(Stream_Text, Pos, Text_ID), true);
+ {
+ Fill(Stream_Text, StreamPos_Last, Text_ID, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID)+_T("-")+ID, true);
+ Fill(Stream_Text, StreamPos_Last, Text_ID_String, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID_String)+_T("-")+ID, true);
+ }
}
+
+ StreamKind_Last=Stream_Video;
+ StreamPos_Last=Essence->second.StreamPos;
}
//Stream size
@@ -718,7 +1015,7 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
}
//---------------------------------------------------------------------------
-void File_Mxf::Streams_Finish_Descriptor(int128u DescriptorUID)
+void File_Mxf::Streams_Finish_Descriptor(int128u DescriptorUID, int128u PackageUID)
{
descriptors::iterator Descriptor=Descriptors.find(DescriptorUID);
if (Descriptor==Descriptors.end())
@@ -728,7 +1025,7 @@ void File_Mxf::Streams_Finish_Descriptor(int128u DescriptorUID)
if (!Descriptor->second.SubDescriptors.empty())
{
for (size_t Pos=0; Pos<Descriptor->second.SubDescriptors.size(); Pos++)
- Streams_Finish_Descriptor(Descriptor->second.SubDescriptors[Pos]);
+ Streams_Finish_Descriptor(Descriptor->second.SubDescriptors[Pos], PackageUID);
return; //Is not a real descriptor
}
@@ -745,8 +1042,41 @@ void File_Mxf::Streams_Finish_Descriptor(int128u DescriptorUID)
}
if (StreamPos_Last==(size_t)-1)
{
- if (Count_Get(Stream_Video)+Count_Get(Stream_Audio)==1)
+ if (Descriptors.size()==1)
StreamPos_Last=0;
+ else
+ {
+ Stream_Prepare(Descriptor->second.StreamKind);
+ if (Descriptor->second.LinkedTrackID!=(int32u)-1)
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, Descriptor->second.LinkedTrackID);
+ else
+ {
+ //Looking for Material package TrackID
+ int32u ID=(int32u)-1;
+ packages::iterator SourcePackage=Packages.find(PackageUID);
+ //We have the the right PackageUID, looking for SourceClip from Sequence from Track from MaterialPackage
+ for (components::iterator SourceClip=Components.begin(); SourceClip!=Components.end(); SourceClip++)
+ if (SourceClip->second.SourcePackageID.lo==SourcePackage->second.PackageUID.lo) //int256u doesn't support yet ==
+ {
+ //We have the right SourceClip, looking for the Sequence from Track from MaterialPackage
+ for (components::iterator Sequence=Components.begin(); Sequence!=Components.end(); Sequence++)
+ for (size_t StructuralComponents_Pos=0; StructuralComponents_Pos<Sequence->second.StructuralComponents.size(); StructuralComponents_Pos++)
+ if (Sequence->second.StructuralComponents[StructuralComponents_Pos]==SourceClip->first)
+ {
+ //We have the right Sequence, looking for Track from MaterialPackage
+ for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); Track++)
+ {
+ int64u A=Sequence->first.hi;
+ int64u B=Track->first.hi;
+ if (Track->second.Sequence==Sequence->first)
+ ID=Track->second.TrackID;
+ }
+ }
+ }
+ if (ID!=(int32u)-1)
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, ID, 10, true);
+ }
+ }
}
}
@@ -837,8 +1167,10 @@ void File_Mxf::Streams_Finish_Locator(int128u LocatorUID)
if (Locator==Locators.end())
return;
+ Fill(StreamKind_Last, StreamPos_Last, "Source", Locator->second.EssenceLocator);
+
//External file name specific
- if (!Locator->second.EssenceLocator.empty())
+ if (!Locator->second.IsTextLocator && !Locator->second.EssenceLocator.empty())
{
//Preparing
stream_t StreamKind_Last_Essence=StreamKind_Last;
@@ -853,14 +1185,15 @@ void File_Mxf::Streams_Finish_Locator(int128u LocatorUID)
MediaInfo_Internal MI;
MI.Option(_T("File_StopAfterFilled"), _T("1"));
MI.Option(_T("File_KeepInfo"), _T("1"));
- Fill(StreamKind_Last_Essence, StreamPos_Last_Essence, "Source", Locator->second.EssenceLocator);
if (MI.Open(AbsoluteName))
{
//Hacks - Before
Ztring CodecID=Retrieve(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_CodecID));
+ Ztring ID=Retrieve(StreamKind_Last, StreamPos_Last, General_ID);
+ Clear(StreamKind_Last, StreamPos_Last, General_ID);
- Merge(*(MI.Info));
+ Merge(*MI.Info, StreamKind_Last, 0, StreamPos_Last);
File_Size_Total+=Ztring(MI.Get(Stream_General, 0, General_FileSize)).To_int64u();
//Hacks - After
@@ -871,89 +1204,89 @@ void File_Mxf::Streams_Finish_Locator(int128u LocatorUID)
CodecID+=Retrieve(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_CodecID));
Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_CodecID), CodecID, true);
}
+ if (!Retrieve(StreamKind_Last, StreamPos_Last, General_ID).empty())
+ ID+=_T('-')+Retrieve(StreamKind_Last, StreamPos_Last, General_ID);
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, ID, true);
//Special case: MXF in MXF
if (MI.Info && MI.Info->Get(Stream_General, 0, General_Format)==_T("MXF"))
{
- if (MI.Info->Count_Get(Stream_Video)==1)
- {
- Fill(Stream_Video, Count_Get(Stream_Video)-1, "MuxingMode", "MXF");
- StreamKind_Last=Stream_Video;
- StreamPos_Last=Count_Get(Stream_Video)-1;
- }
- else if (MI.Info->Count_Get(Stream_Audio)==1)
- Fill(Stream_Audio, Count_Get(Stream_Audio)-1, "MuxingMode", "MXF");
- }
- if (MI.Info && MI.Info->Get(Stream_General, 0, General_Format)==_T("MXF") && MI.Info->Count_Get(Stream_Video)>0)
- {
- size_t Audio_Count=MI.Info->Count_Get(Stream_Audio);
- for (size_t Audio_Pos=0; Audio_Pos<Audio_Count; Audio_Pos++)
- {
- size_t Pos=Count_Get(Stream_Audio)-1-Audio_Pos;
- if (Retrieve(Stream_Audio, Pos, Audio_MuxingMode).empty())
- Fill(Stream_Audio, Pos, Audio_MuxingMode, "MXF");
- else
- Fill(Stream_Audio, Pos, Audio_MuxingMode, _T("MXF / ")+Retrieve(Stream_Audio, Pos, Audio_MuxingMode), true);
- Fill(Stream_Audio, Pos, "Source", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source"));
- Fill(Stream_Audio, Pos, "Source_Info", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source_Info"));
- }
- size_t Text_Count=MI.Info->Count_Get(Stream_Text);
- for (size_t Text_Pos=0; Text_Pos<Text_Count; Text_Pos++)
+ Fill(StreamKind_Last, StreamPos_Last, "MuxingMode", "MXF");
+
+ if (MI.Info->Count_Get(Stream_Video)>0)
{
- size_t Pos=Count_Get(Stream_Text)-1-Text_Pos;
- if (Retrieve(Stream_Text, Pos, Text_MuxingMode).empty())
- Fill(Stream_Text, Pos, Text_MuxingMode, "MXF");
- else
- Fill(Stream_Text, Pos, Text_MuxingMode, _T("MXF / ")+Retrieve(Stream_Text, Pos, Text_MuxingMode), true);
- Fill(Stream_Text, Pos, "Source", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source"));
- Fill(Stream_Text, Pos, "Source_Info", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source_Info"));
+ size_t Parser_Audio_Count=MI.Info->Count_Get(Stream_Audio);
+ for (size_t Parser_Audio_Pos=0; Parser_Audio_Pos<Parser_Audio_Count; Parser_Audio_Pos++)
+ {
+ Fill_Flush();
+ Stream_Prepare(Stream_Audio);
+ Merge(*MI.Info, Stream_Audio, Parser_Audio_Pos, StreamPos_Last);
+ if (Retrieve(Stream_Audio, StreamPos_Last, Audio_MuxingMode).empty())
+ Fill(Stream_Audio, StreamPos_Last, Audio_MuxingMode, "MXF");
+ else
+ Fill(Stream_Audio, StreamPos_Last, Audio_MuxingMode, _T("MXF / ")+Retrieve(Stream_Audio, StreamPos_Last, Audio_MuxingMode), true);
+ Fill(Stream_Audio, StreamPos_Last, "Source", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source"));
+ Fill(Stream_Audio, StreamPos_Last, "Source_Info", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source_Info"));
+ }
+ size_t Parser_Text_Count=MI.Info->Count_Get(Stream_Text);
+ for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
+ {
+ Fill_Flush();
+ Stream_Prepare(Stream_Text);
+ Merge(*MI.Info, Stream_Text, Parser_Text_Pos, StreamPos_Last);
+ if (Retrieve(Stream_Text, StreamPos_Last, Text_MuxingMode).empty())
+ Fill(Stream_Text, StreamPos_Last, Text_MuxingMode, "MXF");
+ else
+ Fill(Stream_Text, StreamPos_Last, Text_MuxingMode, _T("MXF / ")+Retrieve(Stream_Text, StreamPos_Last, Text_MuxingMode), true);
+ Fill(Stream_Text, StreamPos_Last, "Source", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source"));
+ Fill(Stream_Text, StreamPos_Last, "Source_Info", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source_Info"));
+ }
}
}
//Special case: DV with Audio or/and Text in the video stream
else if (MI.Info && MI.Info->Get(Stream_General, 0, General_Format)==_T("DV") && (MI.Info->Count_Get(Stream_Audio) || MI.Info->Count_Get(Stream_Text)))
{
- StreamKind_Last=Stream_Video;
- StreamPos_Last=Count_Get(Stream_Video)-1;
-
//Video and Audio are together
- size_t Audio_Count=MI.Info->Count_Get(Stream_Audio);
- for (size_t Audio_Pos=0; Audio_Pos<Audio_Count; Audio_Pos++)
+ size_t Parser_Audio_Count=MI.Info->Count_Get(Stream_Audio);
+ for (size_t Parser_Audio_Pos=0; Parser_Audio_Pos<Parser_Audio_Count; Parser_Audio_Pos++)
{
- size_t StreamPos_Video=StreamPos_Last;
- size_t Pos=Count_Get(Stream_Audio)-1-Audio_Pos;
- if (Retrieve(Stream_Audio, Pos, Audio_MuxingMode).empty())
- Fill(Stream_Audio, Pos, Audio_MuxingMode, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Format), true);
+ Fill_Flush();
+ Stream_Prepare(Stream_Audio);
+ Merge(*MI.Info, Stream_Audio, Parser_Audio_Pos, StreamPos_Last);
+ if (Retrieve(Stream_Audio, StreamPos_Last, Audio_MuxingMode).empty())
+ Fill(Stream_Audio, StreamPos_Last, Audio_MuxingMode, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_Format), true);
else
- Fill(Stream_Audio, Pos, Audio_MuxingMode, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Format)+_T(" / ")+Retrieve(Stream_Audio, Pos, Audio_MuxingMode), true);
- Fill(Stream_Audio, Pos, Audio_MuxingMode_MoreInfo, _T("Muxed in Video #")+Ztring().From_Number(StreamPos_Video+1), true);
- Fill(Stream_Audio, Pos, Audio_Duration, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Duration), true);
- Fill(Stream_Audio, Pos, "Source", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source"));
- Fill(Stream_Audio, Pos, "Source_Info", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source_Info"));
- Ztring ID=Retrieve(Stream_Audio, Pos, Audio_ID);
- Ztring A=Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID);
- Fill(Stream_Audio, Pos, Audio_ID, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID)+_T("-")+ID, true);
- Fill(Stream_Audio, Pos, Audio_ID_String, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID_String)+_T("-")+ID, true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_MuxingMode, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_Format)+_T(" / ")+Retrieve(Stream_Audio, StreamPos_Last, Audio_MuxingMode), true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_Duration, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_Duration), true);
+ Fill(Stream_Audio, StreamPos_Last, "Source", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source"));
+ Fill(Stream_Audio, StreamPos_Last, "Source_Info", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source_Info"));
+ Ztring ID=Retrieve(Stream_Audio, StreamPos_Last, Audio_ID);
+ Fill(Stream_Audio, StreamPos_Last, Audio_ID, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_ID)+_T("-")+ID, true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_ID_String, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_ID_String)+_T("-")+ID, true);
}
//Video and Text are together
- size_t Text_Count=MI.Info->Count_Get(Stream_Text);
- for (size_t Text_Pos=0; Text_Pos<Text_Count; Text_Pos++)
+ size_t Parser_Text_Count=MI.Info->Count_Get(Stream_Text);
+ for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
{
- size_t StreamPos_Video=StreamPos_Last;
- size_t Pos=Count_Get(Stream_Text)-1-Text_Pos;
- if (Retrieve(Stream_Text, Pos, Text_MuxingMode).empty())
- Fill(Stream_Text, Pos, Text_MuxingMode, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Format), true);
+ Fill_Flush();
+ Stream_Prepare(Stream_Text);
+ Merge(*MI.Info, Stream_Text, Parser_Text_Pos, StreamPos_Last);
+ if (Retrieve(Stream_Text, StreamPos_Last, Text_MuxingMode).empty())
+ Fill(Stream_Text, StreamPos_Last, Text_MuxingMode, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_Format), true);
else
- Fill(Stream_Text, Pos, Text_MuxingMode, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Format)+_T(" / ")+Retrieve(Stream_Text, Pos, Text_MuxingMode), true);
- Fill(Stream_Text, Pos, Text_MuxingMode_MoreInfo, _T("Muxed in Video #")+Ztring().From_Number(StreamPos_Video+1), true);
- Fill(Stream_Text, Pos, Text_Duration, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_Duration), true);
- Fill(Stream_Text, Pos, "Source", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source"));
- Fill(Stream_Text, Pos, "Source_Info", Retrieve(Stream_Video, Count_Get(Stream_Video)-1, "Source_Info"));
- Ztring ID=Retrieve(Stream_Text, Pos, Text_ID);
- Fill(Stream_Text, Pos, Text_ID, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID)+_T("-")+ID, true);
- Fill(Stream_Text, Pos, Text_ID_String, Retrieve(Stream_Video, Count_Get(Stream_Video)-1, Video_ID_String)+_T("-")+ID, true);
+ Fill(Stream_Text, StreamPos_Last, Text_MuxingMode, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_Format)+_T(" / ")+Retrieve(Stream_Text, StreamPos_Last, Text_MuxingMode), true);
+ Fill(Stream_Text, StreamPos_Last, Text_Duration, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_Duration), true);
+ Fill(Stream_Text, StreamPos_Last, "Source", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source"));
+ Fill(Stream_Text, StreamPos_Last, "Source_Info", Retrieve(Stream_Video, StreamPos_Last_Essence, "Source_Info"));
+ Ztring ID=Retrieve(Stream_Text, StreamPos_Last, Text_ID);
+ Fill(Stream_Text, StreamPos_Last, Text_ID, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_ID)+_T("-")+ID, true);
+ Fill(Stream_Text, StreamPos_Last, Text_ID_String, Retrieve(Stream_Video, StreamPos_Last_Essence, Video_ID_String)+_T("-")+ID, true);
}
}
+
+ StreamKind_Last=StreamKind_Last_Essence;
+ StreamPos_Last=StreamPos_Last_Essence;
}
else
Fill(StreamKind_Last, StreamPos_Last, "Source_Info", "Missing");
@@ -968,7 +1301,7 @@ void File_Mxf::Streams_Finish_Component(int128u ComponentUID, float32 EditRate)
return;
//Duration
- if (EditRate && StreamKind_Last!=Stream_Max)
+ if (EditRate && StreamKind_Last!=Stream_Max && Component->second.Duration!=(int64u)-1)
Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Duration), Component->second.Duration*1000/EditRate, 0, true);
}
@@ -1037,6 +1370,30 @@ void File_Mxf::Read_Buffer_Continue()
Element_Offset=Element_Size;
Element_End();
}
+ else
+ {
+ if (IsParsingEnd && File_Offset+Buffer_Offset+4<File_Size)
+ {
+ if (Buffer_Offset+16+4<Buffer_Size)
+ return; //Wait for more data
+ if (CC4(Buffer+Buffer_Offset)!=0x060E2B34)
+ Finish(); //No footer
+ }
+
+ if (MediaInfoLib::Config.ParseSpeed_Get()<1.0 && File_Offset+Buffer_Offset+4==File_Size)
+ {
+ int32u Length;
+ Get_B4 (Length, "Length (Ramdom Index)");
+ if (Length>=16+4 && Length<File_Size/2)
+ GoToFromEnd(Length); //For random access table
+ }
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Read_Buffer_Unsynched()
+{
+ Buffer_DataSizeToParse=0;
}
//***************************************************************************
@@ -1247,6 +1604,7 @@ void File_Mxf::Data_Parse()
case 0x02 : switch ((int8u)(Code_Compare2>>16)) \
{ \
case 0x05 : _ELEMENT(); break; \
+ case 0x43 : _ELEMENT(); break; \
case 0x53 : \
while(Element_Offset<Element_Size) \
{ \
@@ -1265,6 +1623,7 @@ void File_Mxf::Data_Parse()
Element_End(4+Length2); \
} \
break; \
+ case 0x63 : _ELEMENT(); break; \
default : Skip_XX(Element_Size, "Unknown"); \
} \
} \
@@ -1274,11 +1633,18 @@ void File_Mxf::Data_Parse()
if (0) {}
ELEMENT(AES3PCMDescriptor, "AES3 Descriptor")
ELEMENT(CDCIEssenceDescriptor, "CDCI Essence Descriptor")
- ELEMENT(ClosedHeader, "Closed Header Partition Pack")
- ELEMENT(ClosedCompleteHeader, "Closed Complete Header Partition Pack")
- ELEMENT(CompleteBody, "CompleteBody")
- ELEMENT(CompleteFooter, "CompleteFooter")
- ELEMENT(CompleteHeader, "CompleteHeader")
+ ELEMENT(OpenIncompleteHeaderPartition, "Open and Incomplete Header Partition Pack")
+ ELEMENT(ClosedIncompleteHeaderPartition, "Closed and Iomplete Header Partition Pack")
+ ELEMENT(OpenCompleteHeaderPartition, "Open and Complete Header Partition Pack")
+ ELEMENT(ClosedCompleteHeaderPartition, "Closed and Complete Header Partition Pack")
+ ELEMENT(OpenIncompleteBodyPartition, "Open and Incomplete Body Partition Pack")
+ ELEMENT(ClosedIncompleteBodyPartition, "Closed and Iomplete Body Partition Pack")
+ ELEMENT(OpenCompleteBodyPartition, "Open and Complete Body Partition Pack")
+ ELEMENT(ClosedCompleteBodyPartition, "Closed and Complete Body Partition Pack")
+ ELEMENT(OpenIncompleteFooterPartition, "Open and Incomplete Footer Partition Pack")
+ ELEMENT(ClosedIncompleteFooterPartition, "Closed and Iomplete Footer Partition Pack")
+ ELEMENT(OpenCompleteFooterPartition, "Open and Complete Footer Partition Pack")
+ ELEMENT(ClosedCompleteFooterPartition, "Closed and Complete Footer Partition Pack")
ELEMENT(ContentStorage, "Content Storage")
ELEMENT(DMSegment, "Descriptive Metadata Segment")
ELEMENT(EssenceContainerData, "Essence Container Data")
@@ -1292,7 +1658,6 @@ void File_Mxf::Data_Parse()
ELEMENT(MPEG2VideoDescriptor, "MPEG-2 Video Descriptor")
ELEMENT(NetworkLocator, "Network Locator")
ELEMENT(OpenCompleteBodyPartition, "OpenCompleteBodyPartition")
- ELEMENT(OpenHeader, "OpenHeader")
ELEMENT(Preface, "Preface")
ELEMENT(Padding, "Padding")
ELEMENT(Primer, "Primer")
@@ -1302,34 +1667,37 @@ void File_Mxf::Data_Parse()
ELEMENT(SourceClip, "Source Clip")
ELEMENT(SourcePackage, "Source Package")
ELEMENT(StaticTrack, "Static Track")
+ ELEMENT(SystemScheme1, "System Scheme 1") //SMPTE 405M
ELEMENT(TextLocator, "Text Locator")
ELEMENT(TimecodeComponent, "Timecode Component")
ELEMENT(Track, "Track")
ELEMENT(WaveAudioDescriptor, "Wave Audio Descriptor")
+ ELEMENT(AncPacketsDescriptor, "ANC Packets Descriptor")
+ ELEMENT(Filler, "Filler")
+ ELEMENT(TerminatingFiller, "Terminating Filler")
+ ELEMENT(XmlDocumentText, "XML Document Text")
+ ELEMENT(SDTI_SystemMetadataPack, "SDTI System Metadata Pack")
+ ELEMENT(Omneon_010201010100, "Omneon (010201010100)")
+ ELEMENT(Omneon_010201020100, "Omneon (010201020100)")
+ else if (Code_Compare1==0x060E2B34
+ && ((Code_Compare2)&0xFFBFFFFF)==0x02030101 //0x43 or 0x63
+ && Code_Compare3==0x0D010301
+ && ((Code_Compare4)&0xFFFF0000)==0x04010000)
+ {
+ Code_Compare4&=0xFFFFFF00; //Remove MetaData Block Count
+ if (0) {}
+ ELEMENT(SDTI_PackageMetadataSet, "SDTI Package Metadata Set")
+ ELEMENT(SDTI_PictureMetadataSet, "SDTI Picture Metadata Set")
+ ELEMENT(SDTI_SoundMetadataSet, "SDTI Sound Metadata Set")
+ ELEMENT(SDTI_DataMetadataSet, "SDTI Data Metadata Set")
+ ELEMENT(SDTI_ControlMetadataSet, "SDTI Control Metadata Set")
+ }
else if (Code_Compare1==0x060E2B34
&& Code_Compare2==0x01020101
&& Code_Compare3==0x0D010301)
{
- switch (Code_Compare4&0xFF00FF00)
- {
- case 0x14000100 : Element_Name("Generic" ); break;
- case 0x05000100 : Element_Name("D-10 Video" ); break;
- case 0x15000500 : Element_Name("MPEG Video" ); break;
- case 0x15000800 : Element_Name("JPEG 2000" ); break;
- case 0x06001000 : Element_Name("D-10 Audio" ); break;
- case 0x15000100 : Element_Name("RV24" ); break;
- case 0x15000600 : Element_Name("AVC" ); break;
- case 0x15000700 : Element_Name("MPEG-4 Visual" ); break;
- case 0x16000100 : Element_Name("BWF (PCM)" ); break;
- case 0x16000200 : Element_Name("BWF (PCM)" ); break;
- case 0x16000300 : Element_Name("DV Audio (PCM)" ); break;
- case 0x16000400 : Element_Name("BWF (PCM)" ); break;
- case 0x16000500 : Element_Name("MPEG Audio" ); break;
- case 0x16000A00 : Element_Name("A-law" ); break;
- case 0x18000100 : Element_Name("DV" ); break;
- case 0x18000200 : Element_Name("DV" ); break; //One block
- default : Element_Name("Unknown stream" );
- }
+ //Element_Name(Mxf_EssenceElement(Code));
+ Element_Name(Mxf_EssenceElement(Code));
#if MEDIAINFO_DEMUX
if (!Essences[Code_Compare4].TrackID_WasLookedFor)
@@ -1343,18 +1711,19 @@ void File_Mxf::Data_Parse()
Element_Code=Essences[Code_Compare4].TrackID;
else
Element_Code=Code.lo;
- #endif MEDIAINFO_DEMUX
+ #endif //MEDIAINFO_DEMUX
if (Essences[Code_Compare4].Parser==NULL)
{
switch (Code_Compare4&0xFF00FF00)
{
- case 0x05000100 : //D-10 Video
+ case 0x05000100 : //D-10 Video, SMPTE 386M
case 0x15000500 : //MPEG Video
Essences[Code_Compare4].StreamKind=Stream_Video;
Essences[Code_Compare4].StreamPos=Code_Compare4&0x000000FF;
#if defined(MEDIAINFO_MPEGV_YES)
Essences[Code_Compare4].Parser=new File_Mpegv();
+ ((File_Mpegv*)Essences[Code_Compare4].Parser)->Ancillary=&Ancillary;
#else
Essences[Code_Compare4].Parser=new File_Unknown();
Open_Buffer_Init(Essences[Code_Compare4].Parser);
@@ -1417,7 +1786,7 @@ void File_Mxf::Data_Parse()
Streams_Count--;
#endif
break;
- case 0x06001000 : //D-10 Audio
+ case 0x06001000 : //D-10 Audio, SMPTE 386M
case 0x16000100 : //BWF (PCM)
case 0x16000200 : //BWF (PCM)
case 0x16000300 : //DV Audio (PCM)
@@ -1455,6 +1824,16 @@ void File_Mxf::Data_Parse()
if (Streams_Count>0)
Streams_Count--;
break;
+ case 0x17000200 : //Ancillary
+ Essences[Code_Compare4].Parser=new File_Ancillary();
+ Open_Buffer_Init(Essences[Code_Compare4].Parser);
+ Ancillary=(File_Ancillary*)Essences[Code_Compare4].Parser;
+ Ancillary_TrackNumber=Code_Compare4;
+ break;
+ case 0x17000800 : //Line Wrapped Data Element, SMPTE 384M
+ case 0x17000900 : //Line Wrapped VANC Data Element, SMPTE 384M
+ case 0x17000A00 : //Line Wrapped HANC Data Element, SMPTE 384M
+ break;
case 0x18000100 : //DV
case 0x18000200 : //DV
Essences[Code_Compare4].StreamKind=Stream_Video;
@@ -1489,16 +1868,41 @@ void File_Mxf::Data_Parse()
//Demux
Demux(Buffer+Buffer_Offset, (size_t)Element_Size, ContentType_MainStream);
- if (!(Essences[Code_Compare4].Parser->Status[IsFinished] || Essences[Code_Compare4].Parser->Status[IsFilled]))
+ if (!Essences[Code_Compare4].Parser->Status[IsFinished])
{
- //Parsing
- Open_Buffer_Continue(Essences[Code_Compare4].Parser);
-
- //Disabling this Streams
- if (Essences[Code_Compare4].Parser->Status[IsFinished] || Essences[Code_Compare4].Parser->Status[IsFilled])
+ if (Code_Compare4==0x17010201)
+ {
+ //Ancillary with
+ int16u Count;
+ Get_B2 (Count, "Number of ANC packets");
+ for (int16u Pos=0; Pos<Count; Pos++)
+ {
+ Element_Begin("ANC packet");
+ int16u Size;
+ Skip_B2( "Line Number");
+ Skip_B1( "Wrapping Type");
+ Skip_B1( "Payload Sample Coding");
+ Get_B2 (Size, "Payload Sample Count");
+ Skip_B4( "Size?");
+ Skip_B4( "Count?");
+ Open_Buffer_Continue(Essences[Code_Compare4].Parser, Buffer+Buffer_Offset+(size_t)(Element_Offset), Size);
+ Element_End();
+ }
+ }
+ else
{
- if (Streams_Count>0)
- Streams_Count--;
+ //Parsing
+ Open_Buffer_Continue(Essences[Code_Compare4].Parser);
+
+ //Disabling this Streams
+ if (!Essences[Code_Compare4].IsFilled && (Essences[Code_Compare4].Parser->Status[IsFinished] || Essences[Code_Compare4].Parser->Status[IsFilled]))
+ {
+ if (Streams_Count>0)
+ Streams_Count--;
+ Essences[Code_Compare4].IsFilled=true;
+ if (!Essences[Code_Compare4].Parser->Status[IsFinished] && MediaInfoLib::Config.ParseSpeed_Get()<1.0)
+ Essences[Code_Compare4].Parser->Finish();
+ }
}
}
else
@@ -1507,9 +1911,13 @@ void File_Mxf::Data_Parse()
else
Skip_XX(Element_Size, "Unknown");
- if (File_Offset>=0x4000000 //TODO: 64 MB by default (security), should be changed
- || (Streams_Count==0 && !Descriptors.empty()))
- Finish();
+ if (!IsParsingEnd && MediaInfoLib::Config.ParseSpeed_Get()<1.0
+ && (File_Offset>=0x4000000 //TODO: 64 MB by default (security), should be changed
+ || (Streams_Count==0 && !Descriptors.empty())))
+ {
+ GoToFromEnd(4); //For random access table
+ IsParsingEnd=true;
+ }
}
//***************************************************************************
@@ -1566,35 +1974,84 @@ void File_Mxf::CDCIEssenceDescriptor()
}
//---------------------------------------------------------------------------
-void File_Mxf::ClosedCompleteHeader()
+void File_Mxf::OpenIncompleteHeaderPartition()
{
//Parsing
PartitionMetadata();
}
//---------------------------------------------------------------------------
-void File_Mxf::ClosedHeader()
+void File_Mxf::ClosedIncompleteHeaderPartition()
{
//Parsing
PartitionMetadata();
}
//---------------------------------------------------------------------------
-void File_Mxf::CompleteBody()
+void File_Mxf::OpenCompleteHeaderPartition()
{
//Parsing
PartitionMetadata();
}
//---------------------------------------------------------------------------
-void File_Mxf::CompleteFooter()
+void File_Mxf::ClosedCompleteHeaderPartition()
{
//Parsing
PartitionMetadata();
}
//---------------------------------------------------------------------------
-void File_Mxf::CompleteHeader()
+void File_Mxf::OpenIncompleteBodyPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::ClosedIncompleteBodyPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::OpenCompleteBodyPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::ClosedCompleteBodyPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::OpenIncompleteFooterPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::ClosedIncompleteFooterPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::OpenCompleteFooterPartition()
+{
+ //Parsing
+ PartitionMetadata();
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::ClosedCompleteFooterPartition()
{
//Parsing
PartitionMetadata();
@@ -1623,6 +2080,7 @@ void File_Mxf::DMSegment()
{
switch(Code2)
{
+ ELEMENT(6101, DMSegment_DMFramework, "DM Framework")
default: StructuralComponent();
}
}
@@ -1687,16 +2145,24 @@ void File_Mxf::IndexTableSegment()
{
switch(Code2)
{
- ELEMENT(3F05, IndexTableSegment_EditUnitByteCount, "EditUnitByteCount")
+ ELEMENT(3F05, IndexTableSegment_EditUnitByteCount, "Edit Unit Byte Count")
ELEMENT(3F06, IndexTableSegment_IndexSID, "IndexSID")
ELEMENT(3F07, IndexTableSegment_BodySID, "BodySID")
- ELEMENT(3F08, IndexTableSegment_SliceCount, "SliceCount")
- ELEMENT(3F0B, IndexTableSegment_IndexEditRate, "IndexEditRate")
- ELEMENT(3F0C, IndexTableSegment_IndexStartPosition, "IndexStartPosition")
- ELEMENT(3F0D, IndexTableSegment_IndexDuration, "IndexDuration")
- ELEMENT(3F0E, IndexTableSegment_PosTableCount , "PosTableCount ")
+ ELEMENT(3F08, IndexTableSegment_SliceCount, "Slice Count")
+ ELEMENT(3F09, IndexTableSegment_DeltaEntryArray, "Delta Entry Array")
+ ELEMENT(3F0A, IndexTableSegment_IndexEntryArray, "Index Entry Array")
+ ELEMENT(3F0B, IndexTableSegment_IndexEditRate, "Index Edit Rate")
+ ELEMENT(3F0C, IndexTableSegment_IndexStartPosition, "Index Start Position")
+ ELEMENT(3F0D, IndexTableSegment_IndexDuration, "Index Duration")
+ ELEMENT(3F0E, IndexTableSegment_PosTableCount, "PosTableCount")
default: InterchangeObject();
}
+
+ if (Code2==0x3C0A) //InstanceIUD
+ {
+ IndexTable_NSL=0;
+ IndexTable_NPE=0;
+ }
}
//---------------------------------------------------------------------------
@@ -1934,19 +2400,6 @@ void File_Mxf::NetworkLocator()
}
//---------------------------------------------------------------------------
-void File_Mxf::OpenCompleteBodyPartition()
-{
- //Parsing
- PartitionMetadata();
-}
-
-//---------------------------------------------------------------------------
-void File_Mxf::OpenHeader()
-{
- //Parsing
- PartitionMetadata();
-}
-
//---------------------------------------------------------------------------
void File_Mxf::Padding()
{
@@ -2021,15 +2474,31 @@ void File_Mxf::RGBAEssenceDescriptor()
//---------------------------------------------------------------------------
void File_Mxf::RandomIndexMetadata()
{
+ //Keep trace
+ bool AlreadyParsed=!RandomIndexMetadatas.empty();
+
//Parsing
while (Element_Offset+4<Element_Size)
{
Element_Begin("PartitionArray", 12);
- Info_B4(BodySID, "BodySID"); Element_Info(BodySID);
- Info_B8(ByteOffset, "ByteOffset"); Element_Info(Ztring::ToZtring(ByteOffset, 16));
+ randomindexmetadata RandomIndexMetadata;
+ Get_B4 (RandomIndexMetadata.BodySID, "BodySID"); Element_Info(RandomIndexMetadata.BodySID);
+ Get_B8 (RandomIndexMetadata.ByteOffset, "ByteOffset"); Element_Info(Ztring::ToZtring(RandomIndexMetadata.ByteOffset, 16));
Element_End();
+
+ FILLING_BEGIN();
+ if (!AlreadyParsed)
+ RandomIndexMetadatas.push_back(RandomIndexMetadata);
+ FILLING_END();
}
Skip_B4( "Length");
+
+ FILLING_BEGIN();
+ if (MediaInfoLib::Config.ParseSpeed_Get()<1.0 && !AlreadyParsed && RandomIndexMetadatas.size()>=2 && RandomIndexMetadatas[RandomIndexMetadatas.size()-1].BodySID==0 && RandomIndexMetadatas[RandomIndexMetadatas.size()-2].BodySID!=0)
+ {
+ Data_GoTo(RandomIndexMetadatas[RandomIndexMetadatas.size()-1].ByteOffset, "MXF");
+ }
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -2086,6 +2555,17 @@ void File_Mxf::StaticTrack()
}
//---------------------------------------------------------------------------
+//SMPTE 405M
+void File_Mxf::SystemScheme1()
+{
+ switch(Code2)
+ {
+ ELEMENT(0102, SystemScheme1_TimeCodeArray, "TimeCode Array")
+ default: InterchangeObject();
+ }
+}
+
+//---------------------------------------------------------------------------
void File_Mxf::StructuralComponent()
{
switch(Code2)
@@ -2141,6 +2621,241 @@ void File_Mxf::WaveAudioDescriptor()
}
//---------------------------------------------------------------------------
+void File_Mxf::AncPacketsDescriptor()
+{
+ Ancillary_InstanceUID=InstanceUID;
+ switch(Code2)
+ {
+ default: FileDescriptor();
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Filler()
+{
+ Skip_XX(Element_Size, "Junk");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::TerminatingFiller()
+{
+ Skip_XX(Element_Size, "Junk");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::XmlDocumentText()
+{
+ Skip_XX(Element_Size, "XML data");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::SDTI_SystemMetadataPack() //SMPTE 385M + 326M
+{
+ //Parsing
+ int8u SMB, CPR_Rate, Format;
+ bool SMB_UL_Present, SMB_CreationTimeStamp, SMB_UserTimeStamp, CPR_DropFrame;
+ Get_B1 (SMB, "System Metadata Bitmap");
+ Skip_Flags(SMB, 7, "FEC Active");
+ Get_Flags (SMB, 6, SMB_UL_Present, "SMPTE Label");
+ Get_Flags (SMB, 5, SMB_CreationTimeStamp, "Creation Date/Time");
+ Get_Flags (SMB, 4, SMB_UserTimeStamp, "User Date/Time");
+ Skip_Flags(SMB, 3, "Picture item");
+ Skip_Flags(SMB, 2, "Sound item");
+ Skip_Flags(SMB, 1, "Data item");
+ Skip_Flags(SMB, 0, "Control item");
+ BS_Begin();
+ Element_Begin("Content Package Rate");
+ Skip_S1(2, "Reserved");
+ Get_S1 (5, CPR_Rate, "Package Rate"); //See SMPTE 326M
+ Get_SB ( CPR_DropFrame, "1.001 Flag");
+ Element_End();
+ Element_Begin("Content Package Type");
+ Skip_S1(3, "Stream Status");
+ Skip_SB( "Sub-package flag");
+ Skip_SB( "Transfer Mode");
+ Skip_S1(3, "Timing Mode");
+ Element_End();
+ BS_End();
+ Skip_B2( "channel handle");
+ Skip_B2( "continuity count");
+
+ //Some computing
+ float64 FrameRate;
+ switch (CPR_Rate) //See SMPTE 326M
+ {
+ case 0x01 : FrameRate=24; break;
+ case 0x02 : FrameRate=25; break;
+ case 0x03 : FrameRate=30; break;
+ case 0x04 : FrameRate=48; break;
+ case 0x05 : FrameRate=50; break;
+ case 0x06 : FrameRate=60; break;
+ case 0x07 : FrameRate=72; break;
+ case 0x08 : FrameRate=75; break;
+ case 0x09 : FrameRate=90; break;
+ case 0x0A : FrameRate=96; break;
+ case 0x0B : FrameRate=100; break;
+ case 0x0C : FrameRate=120; break;
+ default : FrameRate=0; break;
+ }
+ if (CPR_DropFrame)
+ {
+ FrameRate*=1000;
+ FrameRate/=1001;
+ }
+
+ //Parsing
+ if (SMB_UL_Present)
+ Skip_UL( "SMPTE Universal label");
+ if (SMB_CreationTimeStamp)
+ {
+ Get_B1 (Format, "Format"); //0x81=timecode, 0x82=date-timecode
+ Skip_B8( "Time stamp");
+ Skip_B8( "Zero");
+ }
+ else
+ Skip_XX(17, "Junk");
+ if (SMB_UserTimeStamp)
+ {
+ Get_B1 (Format, "Format"); //0x81=timecode, 0x82=date-timecode, SMPTE 331M
+ Element_Begin("TimeCode");
+ int8u Frames_Units, Frames_Tens, Seconds_Units, Seconds_Tens, Minutes_Units, Minutes_Tens, Hours_Units, Hours_Tens;
+ bool DropFrame;
+ BS_Begin();
+
+ Skip_SB( "CF - Color fame");
+ Get_SB ( DropFrame, "DP - Drop frame");
+ Get_S1 (2, Frames_Tens, "Frames (Tens)");
+ Get_S1 (4, Frames_Units, "Frames (Units)");
+
+ Skip_SB( "FP - Field Phase / BGF0");
+ Get_S1 (3, Seconds_Tens, "Seconds (Tens)");
+ Get_S1 (4, Seconds_Units, "Seconds (Units)");
+
+ Skip_SB( "BGF0 / BGF2");
+ Get_S1 (3, Minutes_Tens, "Minutes (Tens)");
+ Get_S1 (4, Minutes_Units, "Minutes (Units)");
+
+ Skip_SB( "BGF2 / Field Phase");
+ Skip_SB( "BGF1");
+ Get_S1 (2, Hours_Tens, "Hours (Tens)");
+ Get_S1 (4, Hours_Units, "Hours (Units)");
+
+ Skip_S1(4, "BG2");
+ Skip_S1(4, "BG1");
+
+ Skip_S1(4, "BG4");
+ Skip_S1(4, "BG3");
+
+ Skip_S1(4, "BG6");
+ Skip_S1(4, "BG5");
+
+ Skip_S1(4, "BG8");
+ Skip_S1(4, "BG7");
+
+ BS_End();
+
+ int64u TimeCode=(int64u)(Hours_Tens *10*60*60*1000
+ + Hours_Units *60*60*1000
+ + Minutes_Tens *10*60*1000
+ + Minutes_Units *60*1000
+ + Seconds_Tens *10*1000
+ + Seconds_Units *1000
+ + FrameRate?float64_int32s((Frames_Tens*10+Frames_Units)*1000/FrameRate):0);
+
+ Element_Info(Ztring().Duration_From_Milliseconds(TimeCode));
+
+ Element_End();
+
+ Skip_B8( "Zero");
+
+ //TimeCode
+ if (SDTI_TimeCode_StartTimecode==(int64u)-1)
+ SDTI_TimeCode_StartTimecode=TimeCode;
+ }
+ else
+ Skip_XX(17, "Junk");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::SDTI_PackageMetadataSet()
+{
+ while (Element_Offset<Element_Size)
+ {
+ //Parsing
+ int16u Length;
+ int8u Tag;
+ Get_B1 (Tag, "Tag");
+ Get_B2 (Length, "Length");
+ switch (Tag)
+ {
+ case 0x83 : //UMID
+ {
+ Skip_XX(64, "UMID?");
+ }
+ break;
+ case 0x88 : //KLV Metadata
+ {
+ Skip_XX(Length, "KLV Metadata");
+ }
+ break;
+ default : Skip_XX(Length, "Unknown");
+ }
+ }
+
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::SDTI_PictureMetadataSet()
+{
+ Skip_XX(Element_Size, "Data");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::SDTI_SoundMetadataSet()
+{
+ Skip_XX(Element_Size, "Data");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::SDTI_DataMetadataSet()
+{
+ Skip_XX(Element_Size, "Data");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::SDTI_ControlMetadataSet()
+{
+ Skip_XX(Element_Size, "Data");
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Omneon_010201010100()
+{
+ //Parsing
+ switch(Code2)
+ {
+ ELEMENT(8001, Omneon_010201010100_8001, "Omneon (80.01)")
+ ELEMENT(8003, Omneon_010201010100_8003, "Omneon (80.03)")
+ default: GenerationInterchangeObject();
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Omneon_010201020100()
+{
+ //Parsing
+ switch(Code2)
+ {
+ ELEMENT(8002, Omneon_010201020100_8002, "Omneon (80.02)")
+ ELEMENT(8003, Omneon_010201020100_8003, "Omneon (80.03)")
+ ELEMENT(8004, Omneon_010201020100_8004, "Omneon (80.04)")
+ ELEMENT(8005, Omneon_010201020100_8005, "Omneon (80.05)")
+ ELEMENT(8006, Omneon_010201020100_8006, "Omneon (80.06)")
+ default: GenerationInterchangeObject();
+ }
+}
+
+//---------------------------------------------------------------------------
void File_Mxf::Track()
{
//Parsing
@@ -2329,17 +3044,14 @@ void File_Mxf::ContentStorage_Packages()
Get_B4 (Length, "Length");
for (int32u Pos=0; Pos<Count; Pos++)
{
- Element_Begin("Package", Length);
int128u Data;
- Get_UL (Data, "Data", NULL);
+ Get_UUID(Data, "Package");
FILLING_BEGIN();
if (Data==Prefaces[Preface_Current].PrimaryPackage)
Element_Info("Primary package");
ContentStorages[InstanceUID].Packages.push_back(Data);
FILLING_END();
-
- Element_End();
}
}
@@ -2354,11 +3066,19 @@ void File_Mxf::ContentStorage_EssenceContainerData()
Get_B4 (Length, "Length");
for (int32u Pos=0; Pos<Count; Pos++)
{
- Info_UL (EssenceContainer, "EssenceContainer", Mxf_EssenceContainer);
+ Skip_UUID( "EssenceContainer");
}
}
//---------------------------------------------------------------------------
+// 0x6101
+void File_Mxf::DMSegment_DMFramework()
+{
+ //Parsing
+ Info_UUID(Data, "DM Framework"); Element_Info(Ztring().From_UUID(Data));
+}
+
+//---------------------------------------------------------------------------
// 0x2701
void File_Mxf::EssenceContainerData_LinkedPackageUID()
{
@@ -2435,6 +3155,15 @@ void File_Mxf::FileDescriptor_EssenceContainer()
{
//Parsing
Info_UL(EssenceContainer, "EssenceContainer", Mxf_EssenceContainer); Element_Info(Mxf_EssenceContainer(EssenceContainer));
+
+ FILLING_BEGIN();
+ int8u Code6=(int8u)((EssenceContainer.lo&0x0000000000FF0000LL)>>16);
+ int8u Code7=(int8u)((EssenceContainer.lo&0x000000000000FF00LL)>> 8);
+ int8u Code8=(int8u)((EssenceContainer.lo&0x00000000000000FFLL) );
+
+ Descriptors[InstanceUID].Infos["Format_Settings_Wrapping"].From_UTF8(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ FILLING_END();
+
}
//---------------------------------------------------------------------------
@@ -2454,7 +3183,10 @@ void File_Mxf::FileDescriptor_LinkedTrackID()
Get_B4 (Data, "Data"); Element_Info(Data);
FILLING_BEGIN();
- Descriptors[InstanceUID].LinkedTrackID=Data;
+ if (Descriptors[InstanceUID].LinkedTrackID==(int32u)-1)
+ Descriptors[InstanceUID].LinkedTrackID=Data;
+ if (InstanceUID==Ancillary_InstanceUID)
+ Ancillary_LinkedTrackID=Data;
FILLING_END();
}
@@ -2463,7 +3195,7 @@ void File_Mxf::FileDescriptor_LinkedTrackID()
void File_Mxf::InterchangeObject_InstanceUID()
{
//Parsing
- Get_UUID(InstanceUID, "UUID");
+ Get_UUID(InstanceUID, "UUID"); Element_Info(Ztring().From_UUID(InstanceUID));
FILLING_BEGIN();
//Putting the right UID for already parsed items
@@ -2554,7 +3286,12 @@ void File_Mxf::GenericDescriptor_Locators()
void File_Mxf::GenericPackage_PackageUID()
{
//Parsing
- Skip_UMID();
+ int256u Data;
+ Get_UMID (Data, "PackageUID");
+
+ FILLING_BEGIN();
+ Packages[InstanceUID].PackageUID=Data;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -2576,15 +3313,12 @@ void File_Mxf::GenericPackage_Tracks()
Get_B4 (Length, "Length");
for (int32u Pos=0; Pos<Count; Pos++)
{
- Element_Begin("Track", Length);
int128u Data;
- Get_UUID(Data, "Data");
+ Get_UUID(Data, "Track");
FILLING_BEGIN();
Packages[InstanceUID].Tracks.push_back(Data);
FILLING_END();
-
- Element_End();
}
}
@@ -2610,11 +3344,11 @@ void File_Mxf::GenericPictureEssenceDescriptor_PictureEssenceCoding()
{
//Parsing
int128u Data;
- Get_UL(Data, "Data", Mxf_EssenceCoding); Element_Info(Mxf_EssenceCoding(Data));
+ Get_UL(Data, "Data", Mxf_EssenceCompression); Element_Info(Mxf_EssenceCompression(Data));
FILLING_BEGIN();
- Descriptors[InstanceUID].Infos["Format"]=Mxf_EssenceCoding_Format(Data);
- Descriptors[InstanceUID].Infos["Format_Version"]=Mxf_EssenceCoding_Format_Version(Data);
+ Descriptors[InstanceUID].Infos["Format"]=Mxf_EssenceCompression(Data);
+ Descriptors[InstanceUID].Infos["Format_Version"]=Mxf_EssenceCompression_Version(Data);
FILLING_END();
}
@@ -2756,7 +3490,7 @@ void File_Mxf::GenericPictureEssenceDescriptor_VideoLineMap()
void File_Mxf::GenericPictureEssenceDescriptor_AspectRatio()
{
//Parsing
- float32 Data;
+ float64 Data;
Get_Rational(Data);
FILLING_BEGIN();
@@ -2873,7 +3607,7 @@ void File_Mxf::GenericSoundEssenceDescriptor_Locked()
void File_Mxf::GenericSoundEssenceDescriptor_AudioSamplingRate()
{
//Parsing
- float32 Data;
+ float64 Data;
Get_Rational(Data); Element_Info(Data);
FILLING_BEGIN();
@@ -2903,11 +3637,11 @@ void File_Mxf::GenericSoundEssenceDescriptor_SoundEssenceCompression()
{
//Parsing
int128u Data;
- Get_UL(Data, "Data", Mxf_EssenceContainer); Element_Info(Mxf_EssenceContainer(Data));
+ Get_UL(Data, "Data", Mxf_EssenceCompression); Element_Info(Mxf_EssenceCompression(Data));
FILLING_BEGIN();
- Descriptors[InstanceUID].Infos["Format"]=Mxf_EssenceCoding_Format(Data);
- Descriptors[InstanceUID].Infos["Format_Version"]=Mxf_EssenceCoding_Format_Version(Data);
+ Descriptors[InstanceUID].Infos["Format"]=Mxf_EssenceCompression(Data);
+ Descriptors[InstanceUID].Infos["Format_Version"]=Mxf_EssenceCompression_Version(Data);
FILLING_END();
}
@@ -2941,7 +3675,8 @@ void File_Mxf::GenericTrack_TrackID()
Get_B4 (Data, "Data"); Element_Info(Data);
FILLING_BEGIN();
- Tracks[InstanceUID].TrackID=Data;
+ if (Tracks[InstanceUID].TrackID==(int32u)-1)
+ Tracks[InstanceUID].TrackID=Data;
FILLING_END();
}
@@ -2959,7 +3694,7 @@ void File_Mxf::GenericTrack_Sequence()
{
//Parsing
int128u Data;
- Get_UUID(Data, "Data");
+ Get_UUID(Data, "Data"); Element_Info(Ztring::ToZtring(Data, 16));
FILLING_BEGIN();
Tracks[InstanceUID].Sequence=Data;
@@ -3121,7 +3856,53 @@ void File_Mxf::IndexTableSegment_BodySID()
void File_Mxf::IndexTableSegment_SliceCount()
{
//Parsing
- Info_B1(Data, "Data"); Element_Info(Data);
+ int8u Data;
+ Get_B1(Data, "Data"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ IndexTable_NSL=Data;
+ FILLING_END();
+}
+
+//---------------------------------------------------------------------------
+// 0x3F09
+void File_Mxf::IndexTableSegment_DeltaEntryArray()
+{
+ //Parsing
+ int32u NDE, Length;
+ Get_B4(NDE, "NDE");
+ Get_B4(Length, "Length");
+ for (int32u Pos=0; Pos<NDE; Pos++)
+ {
+ Element_Begin("Delta Entry");
+ Skip_B1( "PosTableIndex");
+ Skip_B1( "Slice");
+ Skip_B4( "Element Delta");
+ Element_End();
+ }
+}
+
+//---------------------------------------------------------------------------
+// 0x3F0A
+void File_Mxf::IndexTableSegment_IndexEntryArray()
+{
+ //Parsing
+ int32u NIE, Length;
+ Get_B4(NIE, "NIE");
+ Get_B4(Length, "Length");
+ for (int32u Pos=0; Pos<NIE; Pos++)
+ {
+ Element_Begin("Index Entry");
+ Skip_B1( "Temporal Offset");
+ Skip_B1( "Key-Frame Offset");
+ Skip_B1( "Flags");
+ Skip_B8( "Stream Offset");
+ for (int32u NSL_Pos=0; NSL_Pos<IndexTable_NSL; NSL_Pos++)
+ Skip_B4( "SliceOffset");
+ for (int32u NPE_Pos=0; NPE_Pos<IndexTable_NPE; NPE_Pos++)
+ Skip_B4( "PosTable");
+ Element_End();
+ }
}
//---------------------------------------------------------------------------
@@ -3153,7 +3934,12 @@ void File_Mxf::IndexTableSegment_IndexDuration()
void File_Mxf::IndexTableSegment_PosTableCount()
{
//Parsing
- Info_B1(Data, "Data"); Element_Info(Data);
+ int8u Data;
+ Get_B1(Data, "Data"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ IndexTable_NPE=Data;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3435,7 +4221,7 @@ void File_Mxf::Preface_ContentStorage()
{
//Parsing
int128u Data;
- Get_UUID(Data, "Data");
+ Get_UUID(Data, "Data"); Element_Info(Ztring().From_UUID(Data));
FILLING_BEGIN();
Prefaces[Preface_Current].ContentStorage=Data;
@@ -3465,7 +4251,7 @@ void File_Mxf::Preface_Identifications()
{
Element_Begin("Identification", Length);
int128u Data;
- Get_UUID(Data, "UUID");
+ Get_UUID(Data, "UUID"); Element_Info(Ztring().From_UUID(Data));
Element_End();
FILLING_BEGIN();
@@ -3500,7 +4286,7 @@ void File_Mxf::Preface_PrimaryPackage()
void File_Mxf::Preface_OperationalPattern()
{
//Parsing
- Get_UL (OperationalPattern, "UUID", Mxf_OperationalPattern);
+ Get_UL (OperationalPattern, "UUID", Mxf_OperationalPattern); Element_Info(Mxf_OperationalPattern(OperationalPattern));
}
//---------------------------------------------------------------------------
@@ -3528,11 +4314,12 @@ void File_Mxf::Preface_DMSchemes()
Get_B4 (Count, "Count");
Get_B4 (Length, "Length");
for (int32u Pos=0; Pos<Count; Pos++)
- {
- Element_Begin("DMScheme", Length);
- Skip_UL( "UUID");
- Element_End();
- }
+ if (Length==16)
+ {
+ Info_UL(Data, "DMScheme", NULL); Element_Info(Ztring().From_UUID(Data));
+ }
+ else
+ Skip_XX(Length, "DMScheme");
}
//---------------------------------------------------------------------------
@@ -3610,9 +4397,12 @@ void File_Mxf::Sequence_StructuralComponents()
Get_B4 (Length, "Length");
for (int32u Pos=0; Pos<Count; Pos++)
{
- Element_Begin("StructuralComponent", Length);
- Skip_UUID( "UUID");
- Element_End();
+ int128u Data;
+ Get_UUID (Data, "StructuralComponent");
+
+ FILLING_BEGIN();
+ Components[InstanceUID].StructuralComponents.push_back(Data);
+ FILLING_END();
}
}
@@ -3621,7 +4411,12 @@ void File_Mxf::Sequence_StructuralComponents()
void File_Mxf::SourceClip_SourcePackageID()
{
//Parsing
- Skip_UMID();
+ int256u Data;
+ Get_UMID(Data, "SourcePackageID");
+
+ FILLING_BEGIN();
+ Components[InstanceUID].SourcePackageID=Data;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3629,7 +4424,12 @@ void File_Mxf::SourceClip_SourcePackageID()
void File_Mxf::SourceClip_SourceTrackID()
{
//Parsing
- Info_B4(Data, "ID"); Element_Info(Data);
+ Info_B4(Data, "SourceTrackID"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ if (Components[InstanceUID].SourceTrackID==(int32u)-1)
+ Components[InstanceUID].SourceTrackID=Data;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3637,7 +4437,7 @@ void File_Mxf::SourceClip_SourceTrackID()
void File_Mxf::SourceClip_StartPosition()
{
//Parsing
- Info_B8(Duration, "Duration"); Element_Info(Duration); //units of edit rate
+ Info_B8(Data, "StartPosition"); Element_Info(Data); //units of edit rate
}
//---------------------------------------------------------------------------
@@ -3646,7 +4446,7 @@ void File_Mxf::SourcePackage_Descriptor()
{
//Parsing
int128u Data;
- Get_UUID(Data, "Data");
+ Get_UUID(Data, "Data"); Element_Info(Ztring().From_UUID(Data));
FILLING_BEGIN();
Packages[InstanceUID].Descriptor=Data;
@@ -3676,11 +4476,82 @@ void File_Mxf::StructuralComponent_Duration()
}
//---------------------------------------------------------------------------
+// 0x0102
+void File_Mxf::SystemScheme1_TimeCodeArray()
+{
+ //Parsing
+ //Vector
+ int32u Count, Length;
+ Get_B4 (Count, "Count");
+ Get_B4 (Length, "Length");
+ for (int32u Pos=0; Pos<Count; Pos++)
+ {
+ Element_Begin("TimeCode");
+ int8u Frames_Units, Frames_Tens, Seconds_Units, Seconds_Tens, Minutes_Units, Minutes_Tens, Hours_Units, Hours_Tens;
+ bool DropFrame;
+ BS_Begin();
+
+ Skip_SB( "CF - Color fame");
+ Get_SB ( DropFrame, "DP - Drop frame");
+ Get_S1 (2, Frames_Tens, "Frames (Tens)");
+ Get_S1 (4, Frames_Units, "Frames (Units)");
+
+ Skip_SB( "FP - Field Phase / BGF0");
+ Get_S1 (3, Seconds_Tens, "Seconds (Tens)");
+ Get_S1 (4, Seconds_Units, "Seconds (Units)");
+
+ Skip_SB( "BGF0 / BGF2");
+ Get_S1 (3, Minutes_Tens, "Minutes (Tens)");
+ Get_S1 (4, Minutes_Units, "Minutes (Units)");
+
+ Skip_SB( "BGF2 / Field Phase");
+ Skip_SB( "BGF1");
+ Get_S1 (2, Hours_Tens, "Hours (Tens)");
+ Get_S1 (4, Hours_Units, "Hours (Units)");
+
+ Skip_S1(4, "BG2");
+ Skip_S1(4, "BG1");
+
+ Skip_S1(4, "BG4");
+ Skip_S1(4, "BG3");
+
+ Skip_S1(4, "BG6");
+ Skip_S1(4, "BG5");
+
+ Skip_S1(4, "BG8");
+ Skip_S1(4, "BG7");
+
+ BS_End();
+
+ int64u TimeCode=(int64u)(Hours_Tens *10*60*60*1000
+ + Hours_Units *60*60*1000
+ + Minutes_Tens *10*60*1000
+ + Minutes_Units *60*1000
+ + Seconds_Tens *10*1000
+ + Seconds_Units *1000
+ + (SystemScheme1_FrameRateFromDescriptor?float64_int32s((Frames_Tens*10+Frames_Units)*1000/SystemScheme1_FrameRateFromDescriptor):0));
+
+ Element_Info(Ztring().Duration_From_Milliseconds(TimeCode));
+
+ Element_End();
+
+ //TimeCode
+ if (SystemScheme1_TimeCodeArray_StartTimecode==(int64u)-1)
+ SystemScheme1_TimeCodeArray_StartTimecode=TimeCode;
+ }
+}
+
+//---------------------------------------------------------------------------
// 0x4101
void File_Mxf::TextLocator_LocatorName()
{
//Parsing
Info_UTF16B(Length2, Data, "Data"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ Locators[InstanceUID].EssenceLocator=Data;
+ Locators[InstanceUID].IsTextLocator=true;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3688,7 +4559,13 @@ void File_Mxf::TextLocator_LocatorName()
void File_Mxf::TimecodeComponent_StartTimecode()
{
//Parsing
- Info_B8(Data, "Data"); Element_Info(Data);
+ int64u Data;
+ Get_B8 (Data, "Data"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ if (Data!=0xFFFFFFFFFFFFFFFFLL && TimeCode_StartTimecode==(int64u)-1) //Using first TimeCode
+ TimeCode_StartTimecode=Data;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3696,7 +4573,13 @@ void File_Mxf::TimecodeComponent_StartTimecode()
void File_Mxf::TimecodeComponent_RoundedTimecodeBase()
{
//Parsing
- Info_B2(Data, "Data"); Element_Info(Data);
+ int16u Data;
+ Get_B2 (Data, "Data"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ if (Data!=0xFFFFFFFFFFFFFFFFLL)
+ TimeCode_RoundedTimecodeBase=Data;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3704,7 +4587,13 @@ void File_Mxf::TimecodeComponent_RoundedTimecodeBase()
void File_Mxf::TimecodeComponent_DropFrame()
{
//Parsing
- Info_B1(Data, "Data"); Element_Info(Data);
+ int8u Data;
+ Get_B1 (Data, "Data"); Element_Info(Data);
+
+ FILLING_BEGIN();
+ if (Data!=0xFFFFFFFFFFFFFFFFLL)
+ TimeCode_DropFrame=Data?true:false;
+ FILLING_END();
}
//---------------------------------------------------------------------------
@@ -3712,7 +4601,7 @@ void File_Mxf::TimecodeComponent_DropFrame()
void File_Mxf::Track_EditRate()
{
//Parsing
- float32 Data;
+ float64 Data;
Get_Rational(Data); Element_Info(Data);
FILLING_BEGIN();
@@ -3837,12 +4726,82 @@ void File_Mxf::WaveAudioDescriptor_ChannelAssignment()
Skip_B16( "Label");
}
+//---------------------------------------------------------------------------
+// 0x8001
+void File_Mxf::Omneon_010201010100_8001()
+{
+ //Parsing
+ //Vector
+ int32u Count, Length;
+ Get_B4 (Count, "Count");
+ Get_B4 (Length, "Length");
+ for (int32u Pos=0; Pos<Count; Pos++)
+ {
+ Skip_UUID( "UUID Omneon_010201020100");
+ }
+}
+
+//---------------------------------------------------------------------------
+// 0x8001
+void File_Mxf::Omneon_010201010100_8003()
+{
+ //Parsing
+ //Vector
+ int32u Count, Length;
+ Get_B4 (Count, "Count");
+ Get_B4 (Length, "Length");
+ for (int32u Pos=0; Pos<Count; Pos++)
+ {
+ Skip_UUID( "UUID Omneon_010201020100");
+ }
+}
+
+//---------------------------------------------------------------------------
+// 0x8003
+void File_Mxf::Omneon_010201020100_8002()
+{
+ //Parsing
+ Skip_UTF16B(Length2, "Content");
+}
+
+//---------------------------------------------------------------------------
+// 0x8003
+void File_Mxf::Omneon_010201020100_8003()
+{
+ //Parsing
+ Skip_UTF16B(Length2, "Content");
+}
+
+//---------------------------------------------------------------------------
+// 0x8004
+void File_Mxf::Omneon_010201020100_8004()
+{
+ //Parsing
+ Skip_XX(Length2, "Unknown");
+}
+
+//---------------------------------------------------------------------------
+// 0x8005
+void File_Mxf::Omneon_010201020100_8005()
+{
+ //Parsing
+ Skip_UTF16B(Length2, "Content");
+}
+
+//---------------------------------------------------------------------------
+// 0x8006
+void File_Mxf::Omneon_010201020100_8006()
+{
+ //Parsing
+ Skip_Local(Length2, "Content");
+}
+
//***************************************************************************
// Basic types
//***************************************************************************
//---------------------------------------------------------------------------
-void File_Mxf::Get_Rational(float32 &Value)
+void File_Mxf::Get_Rational(float64 &Value)
{
//Parsing
int32u N, D;
@@ -3887,15 +4846,494 @@ void File_Mxf::Get_UL(int128u &Value, const char* Name, const char* (*Param) (in
Skip_B1( "ISO, ORG (0x2B)");
Skip_B1( "SMPTE (0x34)");
Info_B1(Category, "Category"); Param_Info(Mxf_Category(Category));
- Info_B1(RegistryDesignator, "RegistryDesignator"); Param_Info(Mxf_RegistryDesignator(Category, RegistryDesignator));
- Skip_B1( "0x01");
+ Info_B1(Registry, "Registry"); Param_Info(Mxf_Registry(Category, Registry));
+ Info_B1(Structure, "Structure");
Skip_B1( "Version");
Peek_B8(Value_lo);
- Info_B1(Code1, "Code (1)");
+ switch (Category)
+ {
+ case 0x01 : //Elements
+ {
+ switch (Registry)
+ {
+ default :
+ {
+ switch (Structure)
+ {
+ case 0x01 : //Standard
+ Param_Info("Essence element"); //SMPTE 379M
+ Info_UL_01xx01_Essences();
+ break;
+ default :
+ Skip_B8( "Unknown");
+ }
+ }
+ }
+ }
+ break;
+ case 0x02 :
+ {
+ switch (Registry)
+ {
+ default :
+ {
+ switch (Structure)
+ {
+ case 0x01 :
+ Info_UL_02xx01();
+ break;
+ default :
+ Skip_B8( "Unknown");
+ }
+ }
+ }
+ }
+ break;
+ case 0x04 : //Labels
+ {
+ switch (Registry)
+ {
+ case 0x01 :
+ {
+ Param_Info("Labels");
+ switch (Structure)
+ {
+ case 0x01 :
+ Info_UL_040101_Labels();
+ break;
+ default :
+ Skip_B8( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B8( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B8( "Unknown");
+ }
+
+
+ Value.hi=Value_hi;
+ Value.lo=Value_lo;
+ if (Param)
+ Element_Info(Param(Value));
+ Element_End();
+ #endif
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Info_UL_01xx01_Essences()
+{
+ Info_B1(Code1, "Item Designator");
+ switch (Code1)
+ {
+ case 0x03 :
+ {
+ Param_Info("Interpretive");
+ Info_B1(Code2, "Code (2)");
+ switch (Code2)
+ {
+ case 0x01 :
+ {
+ Param_Info("Fundamental");
+ Info_B1(Code3, "Code (3)");
+ switch (Code3)
+ {
+ case 0x02 :
+ {
+ Param_Info("Data Interpretations and Definitions");
+ Info_B1(Code4, "Code (4)");
+ switch (Code4)
+ {
+ case 0x20 :
+ {
+ Param_Info("XML Constructs and Interpretations");
+ Info_B1(Code5, "Code (5)");
+ switch (Code5)
+ {
+ case 0x01 :
+ {
+ Param_Info("XML Document Text");
+ Info_B1(Code6, "Unknown");
+ Info_B1(Code7, "Unknown");
+ Info_B1(Code8, "Unknown");
+ }
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B5( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B6( "Unknown");
+ }
+ }
+ break;
+ case 0x0D :
+ {
+ Param_Info("User Organisation Registered For Public Use");
+ Info_B1(Code2, "Organization");
+ switch (Code2)
+ {
+ case 0x01 :
+ {
+ Param_Info("AAF");
+ Info_B1(Code3, "Application");
+ switch (Code3)
+ {
+ case 0x03 :
+ {
+ Param_Info("MXF Generic Container Keys");
+ Info_B1(Code4, "Structure Version");
+ switch (Code4)
+ {
+ case 0x01 :
+ {
+ Param_Info("MXF-GC Version 1");
+ Info_B1(Code5, "Item Type Identifier");
+ switch (Code5)
+ {
+ case 0x05 : Param_Info("CP Picture (SMPTE 326M)"); break;
+ case 0x06 : Param_Info("CP Sound (SMPTE 326M)"); break;
+ case 0x07 : Param_Info("CP Data (SMPTE 326M)"); break;
+ case 0x15 : Param_Info("GC Picture"); break;
+ case 0x16 : Param_Info("GC Sound"); break;
+ case 0x17 : Param_Info("GC Data"); break;
+ case 0x18 : Param_Info("GC Compound"); break;
+ default : ;
+ }
+ Info_B1(Code6, "Essence Element Count");
+ Info_B1(Code7, "Essence Element Type");
+ Info_B1(Code8, "Essence Element Number");
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B5( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B6( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B7( "Unknown");
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Info_UL_02xx01()
+{
+ Info_B1(Code1, "Item Designator");
+ switch (Code1)
+ {
+ case 0x0D :
+ {
+ Param_Info("User Organisation Registered For Public Use");
+ Info_B1(Code2, "Organization");
+ switch (Code2)
+ {
+ case 0x01 :
+ {
+ Param_Info("AAF");
+ Info_B1(Code3, "Application");
+ switch (Code3)
+ {
+ case 0x01 :
+ {
+ Param_Info("Structural Metadata Sets");
+ Info_B1(Code4, "Structure Version");
+ switch (Code4)
+ {
+ case 0x01 :
+ {
+ Param_Info("Version 1");
+ Info_B1(Code5, "Structure Kind");
+ switch (Code5)
+ {
+ case 0x01 :
+ {
+ Param_Info("MXF / AAF Association compatible sets & packs");
+ Info_B1(Code6, "Set Kind (1)"); //See table 14
+ Info_B1(Code7, "Set Kind (2)"); //See table 14
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ case 0x02 :
+ {
+ Param_Info("MXF File Structure");
+ Info_B1(Code4, "Structure Version");
+ switch (Code4)
+ {
+ case 0x01 :
+ {
+ Param_Info("Version 1");
+ Info_B1(Code5, "Structure Kind");
+ switch (Code5)
+ {
+ case 0x01 :
+ {
+ Param_Info("MXF File Structure sets & packs");
+ Info_B1(Code6, "Set / Pack Kind");
+ switch (Code6)
+ {
+ case 0x02 :
+ {
+ Param_Info("Header Partition");
+ Info_B1(Code7, "Partition Status");
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ case 0x03 :
+ {
+ Param_Info("Body Partition");
+ Info_B1(Code7, "Partition Status");
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ case 0x04 :
+ {
+ Param_Info("Footer Partition");
+ Info_B1(Code7, "Partition Status");
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ case 0x05 :
+ {
+ Param_Info("Primer");
+ Info_B1(Code7, "Version of the Primer Pack");
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ case 0x10 :
+ Param_Info("Index Table Segment");
+ Skip_B1( "Version");
+ Skip_B1( "Reserved");
+ break;
+ case 0x11 :
+ Param_Info("Random Index Pack");
+ Skip_B1( "Version");
+ Skip_B1( "Reserved");
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ case 0x03 :
+ {
+ Param_Info("MXF Generic Container Keys");
+ Info_B1(Code4, "Structure Version");
+ switch (Code4)
+ {
+ case 0x01 :
+ {
+ Param_Info("MXF-GC Version 1");
+ Info_B1(Code5, "Item Type Identifier");
+ switch (Code5)
+ {
+ case 0x04 :
+ {
+ Param_Info("CP-Compatible System Item"); //SMPTE 379M
+ Info_B1(Code6, "System Scheme Identifier");
+ switch (Code6)
+ {
+ case 0x02 :
+ {
+ Param_Info("SDTI-CP, version 1"); //SMPTE 385M
+ Info_B1(Code7, "Metadata or Control Element Identifier");
+ switch (Code7)
+ {
+ case 0x01 :
+ {
+ Param_Info("System Metadata Pack");
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ case 0x02 :
+ {
+ Param_Info("Package metadata set");
+ Info_B1(Code8, "Metadata Block Count");
+ }
+ break;
+ case 0x03 :
+ {
+ Param_Info("Picture metadata set");
+ Info_B1(Code8, "Metadata Block Count");
+ }
+ break;
+ case 0x04 :
+ {
+ Param_Info("Sound metadata set");
+ Info_B1(Code8, "Metadata Block Count");
+ }
+ break;
+ case 0x05 :
+ {
+ Param_Info("Data metadata set");
+ Info_B1(Code8, "Metadata Block Count");
+ }
+ break;
+ case 0x06 :
+ {
+ Param_Info("Control data set");
+ Info_B1(Code8, "Metadata Block Count");
+ }
+ break;
+ default :
+ Info_B1(Code8, "Metadata Block Count");
+ }
+ }
+ break;
+ default :
+ Info_B1(Code7, "Metadata or Control Element Identifier");
+ Info_B1(Code8, "Reserved");
+ }
+ }
+ break;
+ case 0x14 :
+ {
+ Param_Info("GC-Compatible System Item"); //SMPTE 379M
+ Info_B1(Code6, "System Scheme Identifier");
+ switch (Code6)
+ {
+ case 0x02 :
+ {
+ Param_Info("GC System Scheme 1"); //SMPTE 394M
+ Info_B1(Code7, "Metadata or Control Element Identifier");
+ switch (Code7)
+ {
+ case 0x01 :
+ Param_Info("First Element");
+ break;
+ case 0x02 :
+ Param_Info("Subsequent Element");
+ break;
+ case 0x03 :
+ Param_Info("Picture Item Descriptor");
+ break;
+ case 0x04 :
+ Param_Info("Sound Item Descriptor");
+ break;
+ case 0x05 :
+ Param_Info("Data Item Descriptor");
+ break;
+ case 0x06 :
+ Param_Info("Control Item Descriptor");
+ break;
+ case 0x07 :
+ Param_Info("Compound Item Descriptor");
+ break;
+ default : if (Code7>=0x10 && Code7<=0x7F) Param_Info("Pack coded System Elements (SMPTE 336M)");
+ }
+ Info_B1(Code8, "Element Number");
+ }
+ break;
+ default :
+ Info_B1(Code7, "Metadata or Control Element Identifier");
+ Info_B1(Code8, "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ case 0x04 :
+ {
+ Param_Info("MXF / AAF Descriptive Metadata sets");
+ Info_B1(Code4, "Structure Version");
+ switch (Code4)
+ {
+ case 0x01 :
+ {
+ Param_Info("Version 1");
+ Info_B1(Code5, "Structure / Scheme Kind");
+ Info_B1(Code6, "Reserved");
+ Info_B1(Code7, "Reserved");
+ Info_B1(Code8, "Reserved");
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B5( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B6( "Unknown");
+ }
+ }
+ break;
+ case 0x0E :
+ {
+ Param_Info("User Organisation Registered For Private Use");
+ Skip_B7( "Private");
+ break;
+ }
+ default :
+ Skip_B7( "Unknown");
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Mxf::Info_UL_040101_Labels()
+{
+ Info_B1(Code1, "Item Designator");
switch (Code1)
{
case 0x01 :
{
+ Param_Info("Interpretive");
Info_B1(Code2, "Code (2)");
switch (Code2)
{
@@ -3919,17 +5357,98 @@ void File_Mxf::Get_UL(int128u &Value, const char* Name, const char* (*Param) (in
break;
case 0x04 :
{
+ Param_Info("Parametric");
Info_B1(Code2, "Code (2)");
switch (Code2)
{
case 0x01 :
{
+ Param_Info("Picture essence");
Info_B1(Code3, "Code (3)");
switch (Code3)
{
- case 0x02 :
+ case 0x01 :
+ Param_Info("Fundamental Picture Characteristics");
Skip_B5( "Picture coding or compression");
break;
+ case 0x02 :
+ Param_Info("Picture Coding Characteristics");
+ Info_B1(Code4, "Code (4)");
+ switch (Code4)
+ {
+ case 0x01 :
+ Param_Info("Uncompressed Picture Coding");
+ Skip_B1( "Item Type Identifier"); //if 0x14: SMPTE 384M Uncompressed picture Line wrapped
+ Skip_B1( "System Scheme Identifier"); //SMPTE 384M
+ Skip_B1( "System Element Identifier"); //SMPTE 384M
+ Skip_B1( "Reserved");
+ break;
+ case 0x02 :
+ {
+ Param_Info("Compressed Picture Coding");
+ Info_B1(Code5, "Code (5)");
+ switch (Code5)
+ {
+ case 0x01 :
+ {
+ Param_Info("MPEG Compression");
+ Info_B1(Code6, "Code (6)");
+ switch (Code6)
+ {
+ case 0x01 :
+ Param_Info("MPEG-2 MP@ML");
+ Skip_B2( "Unknown");
+ break;
+ case 0x02 :
+ Param_Info("MPEG-2 422P@ML");
+ Skip_B2( "Unknown");
+ break;
+ case 0x03 :
+ Param_Info("MPEG-2 MP@HL");
+ Skip_B2( "Unknown");
+ break;
+ case 0x04 :
+ Param_Info("MPEG-2 422P@HL");
+ Skip_B2( "Unknown");
+ break;
+ case 0x10 :
+ Param_Info("MPEG-1");
+ Skip_B2( "Unknown");
+ break;
+ case 0x20 :
+ Param_Info("MPEG-4 Visual");
+ Skip_B2( "Unknown");
+ break;
+ default :
+ Skip_B2( "Unknown");
+ }
+ }
+ break;
+ case 0x02 :
+ {
+ Param_Info("DV Video Compression");
+ Info_B1(Code6, "Code (6)");
+ switch (Code6)
+ {
+ case 0x02 :
+ Param_Info("DV-Based Compression");
+ Info_B1(Code7, "DV type (SMPTE 383)");
+ Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ break;
+ default :
+ Skip_B2( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ break;
default :
Skip_B5( "Unknown");
}
@@ -3937,12 +5456,63 @@ void File_Mxf::Get_UL(int128u &Value, const char* Name, const char* (*Param) (in
break;
case 0x02 :
{
+ Param_Info("Sound essence");
Info_B1(Code3, "Code (3)");
switch (Code3)
{
- case 0x02 :
+ case 0x01 :
Skip_B5( "Sound coding or compression");
break;
+ case 0x02 :
+ {
+ Param_Info("Sound Coding Characteristics");
+ Info_B1(Code4, "Code (4)");
+ switch (Code4)
+ {
+ case 0x02 :
+ {
+ Param_Info("Compressed Sound Coding");
+ Info_B1(Code5, "Code (5)");
+ switch (Code5)
+ {
+ case 0x03 :
+ {
+ Param_Info("Compressed Audio Coding");
+ Info_B1(Code6, "Code (6)");
+ switch (Code6)
+ {
+ case 0x01 :
+ Param_Info("Compandeded Audio Coding");
+ Info_B1(Code7, "Code (7)");
+ switch (Code7)
+ {
+ case 0x01 :
+ Param_Info("A-law Coded Audio (default)");
+ Skip_B1("Unknown");
+ break;
+ case 0x02 :
+ Param_Info("DV Compressed Audio");
+ Skip_B1("Unknown");
+ break;
+ default :
+ Skip_B2("Unknown");
+ }
+ break;
+ default :
+ Skip_B2( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B3( "Unknown");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
default :
Skip_B5( "Unknown");
}
@@ -3955,21 +5525,33 @@ void File_Mxf::Get_UL(int128u &Value, const char* Name, const char* (*Param) (in
break;
case 0x0D :
{
- Info_B1(Code2, "Code (2)");
+ Param_Info("User Organisation Registered For Public Use");
+ Info_B1(Code2, "Organization");
switch (Code2)
{
case 0x01 :
{
- Info_B1(Code3, "Code (3)");
+ Param_Info("AAF");
+ Info_B1(Code3, "Application");
switch (Code3)
{
case 0x02 :
{
- Info_B1(Code4, "Code (4)");
+ Param_Info("Operational Patterns");
+ Info_B1(Code4, "Version");
switch (Code4)
{
case 0x01 :
- Skip_B4( "Operational pattern");
+ {
+ Param_Info("Version 1");
+ Info_B1(Code5, "Item Complexity");
+ Info_B1(Code6, "Package Complexity");
+ Info_B1(Code7, "Qualifier");
+ Skip_Flags(Code7, 3, "uni/multi-track");
+ Skip_Flags(Code7, 2, "stream/non-stream file");
+ Skip_Flags(Code7, 1, "internal/external essence");
+ Info_B1(Code8, "Reserved");
+ }
break;
case 0x02 :
{
@@ -3991,14 +5573,133 @@ void File_Mxf::Get_UL(int128u &Value, const char* Name, const char* (*Param) (in
break;
case 0x03 :
{
- Info_B1(Code4, "Code (4)");
+ Param_Info("Essence Container Application");
+ Info_B1(Code4, "Structure Version");
+ switch (Code4)
+ {
+ case 0x01 :
+ {
+ Param_Info("MXF EC Structure Version 1");
+ Info_B1(Code5, "Essence container Kind");
+ switch (Code5)
+ {
+ case 0x01 :
+ Param_Info("Deprecated Essence Container Kind");
+ Skip_B3( "Unknown");
+ break;
+ case 0x02 :
+ {
+ Param_Info("Essence Container Kind");
+ Info_B1(Code6, "Code (6)");
+ switch (Code6)
+ {
+ case 0x01 : //SMPTE 386M
+ Param_Info("Type D-10 Mapping");
+ Skip_B1( "MPEG Constraints"); //SMPTE 356M
+ Skip_B1( "Template Extension");
+ break;
+ case 0x02 :
+ Param_Info("DV Mappings");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ break;
+ case 0x03 :
+ Param_Info("Type D-11 Mapping");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ break;
+ case 0x04 :
+ {
+ Param_Info("MPEG ES mappings");
+ Info_B1(Code7, "ISO13818-1 stream_id bits 6..0"); Param_Info(Ztring::ToZtring(0x80+Code7, 16));
+ Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ }
+ break;
+ case 0x05 : //SMPTE 384M
+ Param_Info("Uncompressed Pictures");
+ Info_B1(Code7, "Number of lines / field rate combination"); //SMPTE 384M
+ Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ break;
+ case 0x06 :
+ {
+ Param_Info("AES-BWF");
+ Info_B1(Code7, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, 0x7F));
+ Skip_B1( "Locally defined");
+ }
+ break;
+ case 0x07 :
+ {
+ Param_Info("MPEG PES mappings");
+ Info_B1(Code7, "ISO13818-1 stream_id bits 6..0"); Param_Info(Ztring::ToZtring(0x80+Code7, 16));
+ Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ }
+ break;
+ case 0x08 :
+ {
+ Param_Info("MPEG PS mappings");
+ Info_B1(Code7, "ISO13818-1 stream_id bits 6..0"); Param_Info(Ztring::ToZtring(0x80+Code7, 16));
+ Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ }
+ break;
+ case 0x09 :
+ {
+ Param_Info("MPEG TS mappings");
+ Info_B1(Code7, "ISO13818-1 stream_id bits 6..0"); Param_Info(Ztring::ToZtring(0x80+Code7, 16));
+ Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ }
+ break;
+ case 0x0A :
+ Param_Info("A-law Sound Element Mapping");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ break;
+ case 0x0B :
+ Param_Info("Encrypted Generic Container");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ break;
+ case 0x0C :
+ Param_Info("JPEG 2000 Picture Mapping");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ break;
+ case 0x7F :
+ Param_Info("Generic Essence Container Wrapping");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ break;
+ default :
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ }
+ }
+ break;
+ default :
+ Skip_B1( "Essence container Kind");
+ Skip_B1( "Mapping Kind");
+ Skip_B1( "Locally defined");
+ }
+ }
+ break;
+ default :
+ Skip_B4( "Unknown");
+ }
+ }
+ break;
+ case 0x04 :
+ {
+ Param_Info("MXF / AAF compatible Descriptive Metadata Labels");
+ Info_B1(Code4, "Label Version");
switch (Code4)
{
case 0x01 :
- Skip_B1( "Format?");
- Skip_B1( "Essence element count");
- Skip_B1( "Essence element type");
- Skip_B1( "Essence element number");
+ {
+ Param_Info("Version 1");
+ Info_B1(Code5, "Scheme Kind");
+ Info_B1(Code6, "Reserved");
+ Info_B1(Code7, "Reserved");
+ Info_B1(Code8, "Reserved");
+ }
break;
default :
Skip_B4( "Unknown");
@@ -4010,24 +5711,50 @@ void File_Mxf::Get_UL(int128u &Value, const char* Name, const char* (*Param) (in
}
}
break;
+ case 0x02 :
+ {
+ Param_Info("EBU/UER");
+ Skip_B6( "Unknown");
+ }
+ break;
+ case 0x03 :
+ {
+ Param_Info("Pro-MPEG Forum");
+ Skip_B6( "Unknown");
+ }
+ break;
+ case 0x04 :
+ {
+ Param_Info("BBC");
+ Skip_B6( "Unknown");
+ }
+ break;
+ case 0x05 :
+ {
+ Param_Info("IRT");
+ Skip_B6( "Unknown");
+ }
+ break;
+ case 0x06 :
+ {
+ Param_Info("ARIB");
+ Skip_B6( "Unknown");
+ }
+ break;
default :
Skip_B6( "Unknown");
}
}
break;
+ case 0x0E :
+ {
+ Param_Info("User Organisation Registered For Private Use");
+ Skip_B7( "Private");
+ break;
+ }
default :
Skip_B7( "Unknown");
}
-
- Value.hi=Value_hi;
- Value.lo=Value_lo;
- if (Param)
- {
- Param_Info(Param(Value));
- Element_Info(Param(Value));
- }
- Element_End();
- #endif
}
//---------------------------------------------------------------------------
@@ -4042,11 +5769,21 @@ void File_Mxf::Skip_UL(const char* Name)
}
//---------------------------------------------------------------------------
+void File_Mxf::Get_UMID(int256u &Value, const char* Name)
+{
+ Element_Name(Name);
+
+ //Parsing
+ Get_UUID (Value.hi, "Fixed");
+ Get_UUID (Value.lo, "UUID"); Element_Info(Ztring().From_UUID(Value.lo));
+}
+
+//---------------------------------------------------------------------------
void File_Mxf::Skip_UMID()
{
//Parsing
Skip_UUID( "Fixed");
- Skip_UUID( "UUID");
+ Info_UUID(Data, "UUID"); Element_Info(Ztring().From_UUID(Data));
}
//---------------------------------------------------------------------------
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mxf.h b/src/thirdparty/MediaInfo/Multiple/File_Mxf.h
index a2b33e0a1..9fc5fa266 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mxf.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mxf.h
@@ -28,6 +28,9 @@
//---------------------------------------------------------------------------
#include "MediaInfo/File__Analyze.h"
+#if defined(MEDIAINFO_ANCILLARY_YES)
+ #include <MediaInfo/Multiple/File_Ancillary.h>
+#endif //defined(MEDIAINFO_ANCILLARY_YES)
#include <vector>
//---------------------------------------------------------------------------
@@ -43,6 +46,25 @@ class File_Mxf : public File__Analyze
public :
//Constructor/Destructor
File_Mxf();
+ ~File_Mxf();
+
+ //int256u
+ class int256u
+ {
+ public:
+ // Binary correct representation of signed 256bit integer
+ int128u lo;
+ int128u hi;
+
+ int256u()
+ {
+ lo.lo=0;
+ lo.hi=0;
+ hi.lo=0;
+ hi.lo=0;
+ }
+ };
+
protected :
//Streams management
@@ -52,13 +74,14 @@ protected :
void Streams_Finish_Package (int128u PackageUID);
void Streams_Finish_Track (int128u TrackUID);
void Streams_Finish_Essence (int32u EssenceUID, int128u TrackUID);
- void Streams_Finish_Descriptor (int128u DescriptorUID);
+ void Streams_Finish_Descriptor (int128u DescriptorUID, int128u PackageUID);
void Streams_Finish_Locator (int128u LocatorUID);
void Streams_Finish_Component (int128u ComponentUID, float32 EditRate);
void Streams_Finish_Identification (int128u IdentificationUID);
//Buffer - Global
void Read_Buffer_Continue ();
+ void Read_Buffer_Unsynched();
//Buffer - File header
bool FileHeader_Begin();
@@ -74,11 +97,18 @@ protected :
//Elements
void AES3PCMDescriptor();
void CDCIEssenceDescriptor();
- void ClosedHeader();
- void ClosedCompleteHeader();
- void CompleteBody();
- void CompleteFooter();
- void CompleteHeader();
+ void OpenIncompleteHeaderPartition();
+ void ClosedIncompleteHeaderPartition();
+ void OpenCompleteHeaderPartition();
+ void ClosedCompleteHeaderPartition();
+ void OpenIncompleteBodyPartition();
+ void ClosedIncompleteBodyPartition();
+ void OpenCompleteBodyPartition();
+ void ClosedCompleteBodyPartition();
+ void OpenIncompleteFooterPartition();
+ void ClosedIncompleteFooterPartition();
+ void OpenCompleteFooterPartition();
+ void ClosedCompleteFooterPartition();
void ContentStorage();
void DMSegment();
void EssenceContainerData();
@@ -99,8 +129,6 @@ protected :
void MultipleDescriptor();
void NetworkLocator();
void PartitionMetadata();
- void OpenCompleteBodyPartition();
- void OpenHeader();
void Padding();
void Preface();
void Primer();
@@ -111,10 +139,23 @@ protected :
void SourcePackage();
void StaticTrack();
void StructuralComponent();
+ void SystemScheme1();
void TextLocator();
void TimecodeComponent();
void Track();
void WaveAudioDescriptor();
+ void AncPacketsDescriptor();
+ void Filler();
+ void TerminatingFiller();
+ void XmlDocumentText();
+ void SDTI_SystemMetadataPack();
+ void SDTI_PackageMetadataSet();
+ void SDTI_PictureMetadataSet();
+ void SDTI_SoundMetadataSet();
+ void SDTI_DataMetadataSet();
+ void SDTI_ControlMetadataSet();
+ void Omneon_010201010100();
+ void Omneon_010201020100();
//Complex types
void AES3PCMDescriptor_AuxBitsMode(); //3D08
@@ -136,6 +177,7 @@ protected :
void CDCIEssenceDescriptor_ReversedByteOrder(); //330B
void ContentStorage_Packages(); //1901
void ContentStorage_EssenceContainerData(); //1902
+ void DMSegment_DMFramework(); //6101
void EssenceContainerData_LinkedPackageUID(); //2701
void EssenceContainerData_IndexSID(); //3F06
void EssenceContainerData_BodySID(); //3F07
@@ -203,6 +245,8 @@ protected :
void IndexTableSegment_IndexSID(); //3F06
void IndexTableSegment_BodySID(); //3F07
void IndexTableSegment_SliceCount(); //3F08
+ void IndexTableSegment_DeltaEntryArray(); //3F09
+ void IndexTableSegment_IndexEntryArray(); //3F0A
void IndexTableSegment_IndexEditRate(); //3F0B
void IndexTableSegment_IndexStartPosition(); //3F0C
void IndexTableSegment_IndexDuration(); //3F0D
@@ -254,6 +298,7 @@ protected :
void SourcePackage_Descriptor(); //4701
void StructuralComponent_DataDefinition(); //0201
void StructuralComponent_Duration(); //0202
+ void SystemScheme1_TimeCodeArray(); //0102
void TextLocator_LocatorName(); //4101
void TimecodeComponent_StartTimecode(); //1501
void TimecodeComponent_RoundedTimecodeBase(); //1502
@@ -273,20 +318,37 @@ protected :
void WaveAudioDescriptor_PeakEnvelopeTimestamp(); //3D30
void WaveAudioDescriptor_PeakEnvelopeData(); //3D31
void WaveAudioDescriptor_ChannelAssignment(); //3D31
+ void Omneon_010201010100_8001(); //8001
+ void Omneon_010201010100_8003(); //8003
+ void Omneon_010201020100_8002(); //8002
+ void Omneon_010201020100_8003(); //8003
+ void Omneon_010201020100_8004(); //8004
+ void Omneon_010201020100_8005(); //8005
+ void Omneon_010201020100_8006(); //8006
//Basic types
- void Get_Rational(float32 &Value);
+ void Get_Rational(float64 &Value);
void Skip_Rational();
void Info_Rational();
void Get_Timestamp (Ztring &Value);
void Skip_Timestamp();
void Info_Timestamp();
+ void Get_UMID (int256u &Value, const char* Name);
void Skip_UMID ();
void Get_UL (int128u &Value, const char* Name, const char* (*Param) (int128u));
+ void Info_UL_01xx01_Essences ();
+ void Info_UL_02xx01 ();
+ void Info_UL_040101_Labels ();
void Skip_UL(const char* Name);
#define Info_UL(_INFO, _NAME, _PARAM) int128u _INFO; Get_UL(_INFO, _NAME, _PARAM)
+ struct randomindexmetadata
+ {
+ int64u ByteOffset;
+ int32u BodySID;
+ };
+ std::vector<randomindexmetadata> RandomIndexMetadatas;
size_t Streams_Count;
int128u Code;
int128u OperationalPattern;
@@ -297,6 +359,7 @@ protected :
int16u Length2;
int64u File_Size_Total; //Used only in Finish()
bool Track_Number_IsAvailable;
+ bool IsParsingEnd;
//Primer
std::map<int16u, int128u> Primer_Values;
@@ -343,6 +406,7 @@ protected :
//Package
struct package
{
+ int256u PackageUID;
int128u Descriptor;
std::vector<int128u> Tracks;
bool IsSourcePackage;
@@ -389,6 +453,7 @@ protected :
bool TrackID_WasLookedFor;
bool Stream_Finish_Done;
bool Track_Number_IsMappedToTrack; //if !Track_Number_IsAvailable, is true when it was euristicly mapped
+ bool IsFilled;
essence()
{
@@ -400,6 +465,7 @@ protected :
TrackID_WasLookedFor=false;
Stream_Finish_Done=false;
Track_Number_IsMappedToTrack=false;
+ IsFilled=false;
}
~essence()
@@ -417,7 +483,7 @@ protected :
std::vector<int128u> Locators;
stream_t StreamKind;
- float32 SampleRate;
+ float64 SampleRate;
int128u InstanceUID;
int32u LinkedTrackID;
int32u Width;
@@ -442,6 +508,12 @@ protected :
struct locator
{
Ztring EssenceLocator;
+ bool IsTextLocator;
+
+ locator()
+ {
+ IsTextLocator=false;
+ }
};
typedef std::map<int128u, locator> locators; //Key is InstanceUID of the locator
locators Locators;
@@ -450,14 +522,33 @@ protected :
struct component
{
int64u Duration;
+ int256u SourcePackageID; //Sequence from SourcePackage only
+ int32u SourceTrackID;
+ std::vector<int128u> StructuralComponents; //Sequence from MaterialPackage only
component()
{
- Duration=0;
+ Duration=(int64u)-1;
+ SourceTrackID=0;
}
};
typedef std::map<int128u, component> components; //Key is InstanceUID of the component
components Components;
+
+ int64u TimeCode_StartTimecode;
+ int16u TimeCode_RoundedTimecodeBase;
+ bool TimeCode_DropFrame;
+ int64u SDTI_TimeCode_StartTimecode;
+ int64u SystemScheme1_TimeCodeArray_StartTimecode;
+ int64u SystemScheme1_FrameRateFromDescriptor;
+ int32u IndexTable_NSL;
+ int32u IndexTable_NPE;
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ int128u Ancillary_InstanceUID;
+ int32u Ancillary_LinkedTrackID;
+ int32u Ancillary_TrackNumber;
+ File_Ancillary* Ancillary;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Ogg.cpp b/src/thirdparty/MediaInfo/Multiple/File_Ogg.cpp
index 29c35bfbd..73bb4ba5e 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Ogg.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Ogg.cpp
@@ -316,6 +316,9 @@ void File_Ogg::Header_Parse()
//---------------------------------------------------------------------------
void File_Ogg::Data_Parse()
{
+ //Counting
+ Frame_Count++;
+
//If first chunk of a stream
if (Stream[Element_Code].Parser==NULL)
{
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Ogg_SubElement.cpp b/src/thirdparty/MediaInfo/Multiple/File_Ogg_SubElement.cpp
index 33b510529..9ef159b4c 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Ogg_SubElement.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Ogg_SubElement.cpp
@@ -82,7 +82,7 @@ namespace MediaInfoLib
#elif defined(WINDOWS) //__BORLANDC__
#define OGG_ID(NAME, PART1, PART2, COUNT) \
- const int64u Identifier_##NAME=(int64u)0x##PART1##PART2##UL; \
+ const int64u Identifier_##NAME=(int64u)0x##PART1##PART2##ULL; \
const size_t Identifier_##NAME##3=0x##COUNT; \
#else //__BORLANDC__
diff --git a/src/thirdparty/MediaInfo/Multiple/File_P2_Clip.cpp b/src/thirdparty/MediaInfo/Multiple/File_P2_Clip.cpp
index a55b14ce1..252c178ba 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_P2_Clip.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_P2_Clip.cpp
@@ -140,6 +140,7 @@ bool File_P2_Clip::FileHeader_Begin()
ToFill+=float32_int32s(((Text[9]-'0')*10+(Text[10]-'0'))*1000/FrameRate);
}
Fill(Stream_Video, 0, Video_Delay, ToFill);
+ Fill(Stream_Video, 0, Video_Delay_Source, "P2 Clip");
}
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Riff.cpp b/src/thirdparty/MediaInfo/Multiple/File_Riff.cpp
index cd261192d..76fbce063 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Riff.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Riff.cpp
@@ -93,8 +93,16 @@ File_Riff::File_Riff()
ParserIDs[0]=MediaInfo_Parser_Riff;
StreamIDs_Width[0]=17;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
DataMustAlwaysBeComplete=false;
+ //In/Out
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ Ancillary=NULL;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
+
//Data
Interleaved0_1=0;
Interleaved0_10=0;
@@ -121,15 +129,6 @@ File_Riff::File_Riff()
IsWaveBroken=false;
SecondPass=false;
DV_FromHeader=NULL;
- #if defined(MEDIAINFO_GXF_YES)
- rcrd_Parsers_Count=0;
- #if defined(MEDIAINFO_CDP_YES)
- Cdp_Data=NULL;
- #endif //MEDIAINFO_CDP_YES
- #if defined(MEDIAINFO_AFDBARDATA_YES)
- Cdp_Data=NULL;
- #endif //MEDIAINFO_AFDBARDATA_YES
- #endif //MEDIAINFO_GXF_YES
//Pointers
Stream_Structure_Temp=Stream_Structure.end();
@@ -141,12 +140,6 @@ File_Riff::~File_Riff()
#ifdef MEDIAINFO_DVDIF_YES
delete (File_DvDif*)DV_FromHeader; //DV_FromHeader=NULL
#endif //MEDIAINFO_DVDIF_YES
-
- #if defined(MEDIAINFO_GXF_YES)
- for (size_t DataID=0; DataID<rcrd_Parsers.size(); DataID++)
- for (size_t SecondaryDataID=0; SecondaryDataID<rcrd_Parsers[DataID].size(); SecondaryDataID++)
- delete rcrd_Parsers[DataID][SecondaryDataID]; //rcrd_Parsers[DataID][SecondaryDataID]=NULL;
- #endif //MEDIAINFO_GXF_YES
}
//***************************************************************************
@@ -245,6 +238,7 @@ void File_Riff::Streams_Finish ()
{
Delay+=((float)Temp->second.Start)*1000/Temp->second.Rate;
Fill(Stream_Audio, StreamPos_Last, Audio_Delay, Delay, 0, true);
+ Fill(Stream_Audio, StreamPos_Last, Audio_Delay_Source, "Container");
Fill(Stream_Video, 0, Video_Delay, 0, 10, true);
}
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Riff.h b/src/thirdparty/MediaInfo/Multiple/File_Riff.h
index 9de264562..0a9a262f1 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Riff.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Riff.h
@@ -28,6 +28,9 @@
//---------------------------------------------------------------------------
#include "MediaInfo/File__Analyze.h"
+#if defined(MEDIAINFO_ANCILLARY_YES)
+ #include <MediaInfo/Multiple/File_Ancillary.h>
+#endif //defined(MEDIAINFO_ANCILLARY_YES)
#include <vector>
//---------------------------------------------------------------------------
@@ -41,31 +44,10 @@ namespace MediaInfoLib
class File_Riff : public File__Analyze
{
public :
- //Out
- #if defined(MEDIAINFO_GXF_YES) && (defined(MEDIAINFO_CDP_YES) || defined(MEDIAINFO_AFDBARDATA_YES))
- struct buffered_data
- {
- size_t Size;
- int8u* Data;
-
- buffered_data()
- {
- Size=0;
- Data=NULL;
- }
-
- ~buffered_data()
- {
- delete[] Data; //Data=NULL;
- }
- };
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- std::vector<buffered_data*>* Cdp_Data;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
- std::vector<buffered_data*>* AfdBarData_Data;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
- #endif //defined(MEDIAINFO_GXF_YES) && (defined(MEDIAINFO_CDP_YES) || defined(MEDIAINFO_AFDBARDATA_YES))
+ //In/Out
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ File_Ancillary** Ancillary;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
protected :
//Streams management
@@ -167,11 +149,6 @@ private :
bool IsWaveBroken;
bool SecondPass; //Second pass for streams
File__Analyze* DV_FromHeader;
- #if defined(MEDIAINFO_GXF_YES)
- std::vector<std::vector<File__Analyze*> > rcrd_Parsers;
- size_t rcrd_Parsers_Count;
- std::vector<std::vector<size_t> > rcrd_Parsers_StreamPos;
- #endif //MEDIAINFO_GXF_YES
//Chunks
void AIFC ();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp b/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp
index aff3b7865..6223da54c 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp
@@ -177,94 +177,6 @@ std::string ExtensibleWave_ChannelMask2 (int32u ChannelMask)
return Text;
}
-//---------------------------------------------------------------------------
-#if defined(MEDIAINFO_GXF_YES)
-const char* Riff_Rcrd_DataServices(int8u DataID, int8u SecondaryDataID)
-{
- if (DataID==0x00)
- return "Undefined format";
- else if (DataID<=0x03)
- return "Reserved";
- else if (DataID<=0x0F)
- return "Reserved for 8-bit applications";
- else if (DataID<=0x3F)
- return "Reserved";
- else if (DataID==0x41)
- {
- //SMPTE 2016-3-2007
- switch (SecondaryDataID)
- {
- case 0x05 : return "Bar Data";
- default : return "Internationally registered";
- }
- }
- else if (DataID==0x45)
- {
- //SMPTE 2020-1-2008
- switch (SecondaryDataID)
- {
- case 0x01 : return "Audio Metadata - No association";
- case 0x02 : return "Audio Metadata - Channels 1/2";
- case 0x03 : return "Audio Metadata - Channels 3/4";
- case 0x04 : return "Audio Metadata - Channels 5/6";
- case 0x05 : return "Audio Metadata - Channels 7/8";
- case 0x06 : return "Audio Metadata - Channels 9/10";
- case 0x07 : return "Audio Metadata - Channels 11/12";
- case 0x08 : return "Audio Metadata - Channels 13/14";
- case 0x09 : return "Audio Metadata - Channels 15/16";
- default : return "SMPTE 2020-1-2008?";
- }
- }
- else if (DataID<=0x4F)
- return "Internationally registered";
- else if (DataID<=0x5F)
- return "Reserved";
- else if (DataID==0x60)
- return "Ancillary time code (Internationally registered)";
- else if (DataID==0x61)
- {
- switch (SecondaryDataID)
- {
- case 0x01 : return "CEA-708 (CDP)";
- case 0x02 : return "CEA-608";
- default : return "S334-1-2007 Defined data services?";
- }
- }
- else if (DataID==0x62)
- {
- switch (SecondaryDataID)
- {
- case 0x01 : return "Program description";
- case 0x02 : return "Data broadcast";
- case 0x03 : return "VBI data";
- default : return "S334-1-2007 Variable-format data services?";
- }
- }
- else if (DataID<=0x7F)
- return "Internationally registered";
- else if (DataID==0x80)
- return "Ancillary packet marked for deletion";
- else if (DataID<=0x83)
- return "Reserved";
- else if (DataID==0x84)
- return "Optional ancillary packet data end marker";
- else if (DataID<=0x87)
- return "Reserved";
- else if (DataID==0x88)
- return "Optional ancillary packet data start marker";
- else if (DataID<=0x9F)
- return "Reserved";
- else if (DataID<=0xBF)
- return "Internationally registered";
- else if (DataID<=0xCF)
- return "User application";
- else if (DataID<=0xDF)
- return "Internationally registered";
- else
- return "Internationally registered";
-}
-#endif //MEDIAINFO_GXF_YES
-
//***************************************************************************
// Const
//***************************************************************************
@@ -1197,7 +1109,10 @@ void File_Riff::AVI__hdlr_strl_strf_auds()
if (BitsPerSample) Fill(Stream_Audio, StreamPos_Last, Audio_Resolution, BitsPerSample);
Stream[Stream_ID].AvgBytesPerSec=AvgBytesPerSec; //Saving bitrate for each stream
if (SamplesPerSec && TimeReference!=(int64u)-1)
+ {
Fill(Stream_Audio, 0, Audio_Delay, TimeReference/SamplesPerSec);
+ Fill(Stream_Audio, 0, Audio_Delay_Source, "Container");
+ }
//Creating the parser
if (0);
@@ -1205,6 +1120,7 @@ void File_Riff::AVI__hdlr_strl_strf_auds()
else if (MediaInfoLib::Config.CodecID_Get(Stream_Audio, InfoCodecID_Format_Riff, Codec)==_T("MPEG Audio"))
{
Stream[Stream_ID].Parser=new File_Mpega;
+ ((File_Mpega*)Stream[Stream_ID].Parser)->CalculateDelay=true;
Stream[Stream_ID].Parser->ShouldContinueParsing=true;
}
#endif
@@ -1213,6 +1129,7 @@ void File_Riff::AVI__hdlr_strl_strf_auds()
{
Stream[Stream_ID].Parser=new File_Ac3;
((File_Ac3*)Stream[Stream_ID].Parser)->Frame_Count_Valid=2;
+ ((File_Ac3*)Stream[Stream_ID].Parser)->CalculateDelay=true;
Stream[Stream_ID].Parser->ShouldContinueParsing=true;
}
#endif
@@ -2673,12 +2590,7 @@ void File_Riff::rcrd()
Fill(Stream_General, 0, General_Format, "Ancillary media packets"); //GXF, RDD14-2007
//Clearing old data
- for (size_t Pos=0; Pos<Cdp_Data->size(); Pos++)
- delete (*Cdp_Data)[Pos]; //(*Cdp_Data)[0]=NULL;
- Cdp_Data->clear();
- for (size_t Pos=0; Pos<AfdBarData_Data->size(); Pos++)
- delete (*AfdBarData_Data)[Pos]; //(*AfdBarData_Data)[0]=NULL;
- AfdBarData_Data->clear();
+ Open_Buffer_Continue(*Ancillary, Buffer, 0);
}
//---------------------------------------------------------------------------
@@ -2728,119 +2640,7 @@ void File_Riff::rcrd_fld__anc__pyld()
{
Element_Name("Ancillary data sample payload");
- Element_Begin("Decoding");
- //Parsing
- int8u DataID, SecondaryDataID, DataCount;
- Get_L1 (DataID, "Data ID");
- Skip_L1( "Parity+Unused"); //even:1, odd:2
- Get_L1 (SecondaryDataID, "Secondary Data ID"); Param_Info(Riff_Rcrd_DataServices(DataID, SecondaryDataID));
- Skip_L1( "Parity+Unused"); //even:1, odd:2
- Get_L1 (DataCount, "Data count");
- Skip_L1( "Parity+Unused"); //even:1, odd:2
-
- //Buffer
- int8u* Payload=new int8u[DataCount];
- for(int8u Pos=0; Pos<DataCount; Pos++)
- {
- Get_L1 (Payload[Pos], "Data");
- Skip_L1( "CRC+Unused"); //even:1, odd:2
- }
-
- //Parsing
- Skip_L1( "Checksum");
- Skip_L1( "Parity+Unused"); //even:1, odd:2
- Element_End();
-
- FILLING_BEGIN();
- if (DataID>=rcrd_Parsers.size())
- rcrd_Parsers.resize(DataID+1);
- if (SecondaryDataID>=rcrd_Parsers[DataID].size())
- rcrd_Parsers[DataID].resize(SecondaryDataID+1);
- if (rcrd_Parsers[DataID][SecondaryDataID]==NULL)
- {
- switch (DataID)
- {
- case 0x41 : // (from SMPTE 2016-3)
- switch (SecondaryDataID)
- {
- case 0x05 : //Bar Data (from SMPTE 2016-3), saving data for future use
- #if defined(MEDIAINFO_AFDBARDATA_YES)
- if (AfdBarData_Data)
- {
- buffered_data* AfdBarData=new buffered_data;
- AfdBarData->Data=new int8u[(size_t)DataCount];
- std::memcpy(AfdBarData->Data, Payload, (size_t)DataCount);
- AfdBarData->Size=(size_t)DataCount;
- AfdBarData_Data->push_back(AfdBarData);
- }
- #endif //MEDIAINFO_AFDBARDATA_YES
- break;
- default : ;
- ;
- }
- break;
- case 0x45 : // (from SMPTE 2020-1)
- switch (SecondaryDataID)
- {
- case 0x01 : //No association
- case 0x02 : //Channel pair 1/2
- case 0x03 : //Channel pair 3/4
- case 0x04 : //Channel pair 5/6
- case 0x05 : //Channel pair 7/8
- case 0x06 : //Channel pair 9/10
- case 0x07 : //Channel pair 11/12
- case 0x08 : //Channel pair 13/14
- case 0x09 : //Channel pair 15/16
- break;
- default : ;
- ;
- }
- break;
- case 0x61 : //Defined data services (from SMPTE 331-1)
- switch (SecondaryDataID)
- {
- case 0x01 : //CDP (from SMPTE 331-1), saving data for future use
- #if defined(MEDIAINFO_CDP_YES)
- if (Cdp_Data)
- {
- buffered_data* Cdp=new buffered_data;
- Cdp->Data=new int8u[(size_t)DataCount];
- std::memcpy(Cdp->Data, Payload, (size_t)DataCount);
- Cdp->Size=(size_t)DataCount;
- Cdp_Data->push_back(Cdp);
- }
- #endif //MEDIAINFO_CDP_YES
- break;
- case 0x02 : //CEA-608 (from SMPTE 331-1)
- #if defined(MEDIAINFO_EIA608_YES)
- if (DataCount==3) //This must be 3-byte data
- {
- //CEA-608 in video presentation order
- }
- #endif //MEDIAINFO_EIA608_YES
- break;
- default : ;
- ;
- }
- break;
- case 0x62 : //Variable-format data services (from SMPTE 331-1)
- switch (SecondaryDataID)
- {
- case 0x01 : //Program description (from SMPTE 331-1),
- break;
- case 0x02 : //Data broadcast (from SMPTE 331-1)
- break;
- case 0x03 : //VBI data (from SMPTE 331-1)
- break;
- default : ;
- ;
- }
- break;
- default : ;
- }
- }
- FILLING_END();
- delete[] Payload; //Payload=NULL
+ Open_Buffer_Continue(*Ancillary);
}
//---------------------------------------------------------------------------
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp b/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp
index 480a27602..1d881442e 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp
@@ -389,7 +389,8 @@ void File_Rm::MDPR()
{
Fill(StreamKind_Last, StreamPos_Last, General_ID, stream_number);
Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_BitRate), avg_bit_rate, 10, true);
- Fill(StreamKind_Last, StreamPos_Last, "Delay", start_time);
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay), start_time);
+ Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Delay_Source), "Container");
Fill(StreamKind_Last, StreamPos_Last, Fill_Parameter(StreamKind_Last, Generic_Duration), duration);
}
FILLING_END();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Swf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Swf.cpp
index 051c61b80..f62e1efa2 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Swf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Swf.cpp
@@ -294,9 +294,6 @@ File_Swf::File_Swf()
Frame_Count_Valid=1024;
FileLength=0;
Version=0;
-
- //Temp
- Frame_Count=0;
}
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Swf.h b/src/thirdparty/MediaInfo/Multiple/File_Swf.h
index ffa5e0e3d..86ed0ba7c 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Swf.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Swf.h
@@ -123,9 +123,6 @@ private :
//Helpers
bool Decompress();
-
- //Temp
- size_t Frame_Count;
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Wm.cpp b/src/thirdparty/MediaInfo/Multiple/File_Wm.cpp
index 71ee1f0dd..7b163fb5a 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Wm.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Wm.cpp
@@ -62,6 +62,9 @@ File_Wm::File_Wm()
ParserIDs[0]=MediaInfo_Parser_Wm;
StreamIDs_Width[0]=2;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
DataMustAlwaysBeComplete=false;
//Stream
@@ -189,30 +192,19 @@ void File_Wm::Streams_Finish()
Clear(Stream_Video, Temp->second.StreamPos, Video_PixelAspectRatio);
Clear(Stream_Video, Temp->second.StreamPos, Video_DisplayAspectRatio);
}
- Merge(*Temp->second.Parser, Temp->second.StreamKind, 0, Temp->second.StreamPos);
- if (!Format_Profile.empty() && Format_Profile.find(Retrieve(Stream_Video, Temp->second.StreamPos, Video_Format_Profile))==0)
- Fill(Stream_Video, Temp->second.StreamPos, Video_Format_Profile, Format_Profile, true);
- }
- //Delay (in case of MPEG-PS)
- if (Temp->second.StreamKind==Stream_Video)
- {
- if (!Retrieve(Stream_Video, Temp->second.StreamPos, Video_Delay).empty())
+ //Delay (in case of MPEG-PS)
+ if (Temp->second.TimeCode_First!=(int64u)-1)
{
- Ztring Delay=Retrieve(Stream_Video, Temp->second.StreamPos, Video_Delay);
- Fill(Stream_Video, Temp->second.StreamPos, Video_Delay_Original, Delay);
- }
- if (!Retrieve(Stream_Video, Temp->second.StreamPos, Video_Delay_Settings).empty())
- {
- Ztring Delay_Settings=Retrieve(Stream_Video, Temp->second.StreamPos, Video_Delay_Settings);
- Fill(Stream_Video, Temp->second.StreamPos, Video_Delay_Original_Settings, Delay_Settings);
+ Fill(Temp->second.StreamKind, Temp->second.StreamPos, Fill_Parameter(Temp->second.StreamKind, Generic_Delay), Temp->second.TimeCode_First, 10);
+ Fill(Temp->second.StreamKind, Temp->second.StreamPos, Fill_Parameter(Temp->second.StreamKind, Generic_Delay_Source), "Container");
}
+
+
+ Merge(*Temp->second.Parser, Temp->second.StreamKind, 0, Temp->second.StreamPos);
+ if (!Format_Profile.empty() && Format_Profile.find(Retrieve(Stream_Video, Temp->second.StreamPos, Video_Format_Profile))==0)
+ Fill(Stream_Video, Temp->second.StreamPos, Video_Format_Profile, Format_Profile, true);
}
- if (Temp->second.TimeCode_First!=(int64u)-1)
- Fill(Temp->second.StreamKind, Temp->second.StreamPos, "Delay", Temp->second.TimeCode_First, 10, true);
- else
- Fill(Temp->second.StreamKind, Temp->second.StreamPos, "Delay", "", Unlimited, true, true);
- Fill(Temp->second.StreamKind, Temp->second.StreamPos, "Delay_Settings", "", Unlimited, true, true);
Temp++;
}
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_Directory.h b/src/thirdparty/MediaInfo/Reader/Reader_Directory.h
index 2d092221e..6ff3469d1 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_Directory.h
+++ b/src/thirdparty/MediaInfo/Reader/Reader_Directory.h
@@ -28,7 +28,7 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-#include "MediaInfo/MediaInfo_Internal.h"
+#include "MediaInfo/Reader/Reader__Base.h"
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -38,27 +38,30 @@ namespace MediaInfoLib
/// @brief Reader_Directory
//***************************************************************************
-class Reader_Directory
+class Reader_Directory : public Reader__Base
{
public :
+ //Constructor/Destructor
+ virtual ~Reader_Directory() {}
+
//Format testing
- static size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
//For the list
- static void Directory_Cleanup(ZtringList &List);
+ void Directory_Cleanup(ZtringList &List);
private :
//Bdmv
- static int Bdmv_Format_Test(MediaInfo_Internal* MI, const String &File_Name);
- static void Bdmv_Directory_Cleanup(ZtringList &List);
+ int Bdmv_Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ void Bdmv_Directory_Cleanup(ZtringList &List);
//P2
- static int P2_Format_Test(MediaInfo_Internal* MI, const String &File_Name);
- static void P2_Directory_Cleanup(ZtringList &List);
+ int P2_Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ void P2_Directory_Cleanup(ZtringList &List);
//XDCAM
- static int Xdcam_Format_Test(MediaInfo_Internal* MI, const String &File_Name);
- static void Xdcam_Directory_Cleanup(ZtringList &List);
+ int Xdcam_Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ void Xdcam_Directory_Cleanup(ZtringList &List);
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_File.cpp b/src/thirdparty/MediaInfo/Reader/Reader_File.cpp
index 888ec8722..1097b73db 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_File.cpp
+++ b/src/thirdparty/MediaInfo/Reader/Reader_File.cpp
@@ -34,7 +34,6 @@
#include "MediaInfo/Reader/Reader_File.h"
#include "MediaInfo/File__Analyze.h"
#include "ZenLib/FileName.h"
-#include "ZenLib/File.h"
using namespace ZenLib;
using namespace std;
//---------------------------------------------------------------------------
@@ -113,21 +112,49 @@ size_t Reader_File::Format_Test(MediaInfo_Internal* MI, const String &File_Name)
size_t Reader_File::Format_Test_PerParser(MediaInfo_Internal* MI, const String &File_Name)
{
//Opening the file
- File F;
F.Open(File_Name);
if (!F.Opened_Get())
return 0;
//Buffer
- size_t Buffer_Size_Max=Buffer_NormalSize;
- int8u* Buffer=new int8u[Buffer_Size_Max];
+ Buffer_Size_Max=Buffer_NormalSize;
+ Buffer=new int8u[Buffer_Size_Max];
//Parser
MI->Open_Buffer_Init(F.Size_Get(), File_Name);
//Test the format with buffer
+ return Format_Test_PerParser_Continue(MI);
+}
+
+//---------------------------------------------------------------------------
+size_t Reader_File::Format_Test_PerParser_Continue (MediaInfo_Internal* MI)
+{
bool StopAfterFilled=MI->Config.File_StopAfterFilled_Get();
- std::bitset<32> Status;
+
+ #if MEDIAINFO_DEMUX
+ //PerPacket
+ if (MI->Config.Demux_EventWasSent)
+ {
+ MI->Config.Demux_EventWasSent=false;
+
+ //Parser
+ Status=MI->Open_Buffer_Continue(NULL, 0);
+
+ //Demux
+ if (MI->Config.Demux_EventWasSent)
+ return 2; //Must return immediately
+
+ //Threading
+ if (MI->IsTerminating())
+ return 1; //Termination is requested
+
+ if (!(!(Status[File__Analyze::IsFinished] || (StopAfterFilled && Status[File__Analyze::IsFilled]))))
+ return 1;
+ }
+ #endif //MEDIAINFO_DEMUX
+
+ //Test the format with buffer
do
{
//Seek (if needed)
@@ -164,6 +191,11 @@ size_t Reader_File::Format_Test_PerParser(MediaInfo_Internal* MI, const String &
//Parser
Status=MI->Open_Buffer_Continue(Buffer, Buffer_Size);
+ #if MEDIAINFO_DEMUX
+ if (MI->Config.Demux_EventWasSent)
+ return 2; //Must return immediately
+ #endif //MEDIAINFO_DEMUX
+
//Threading
if (MI->IsTerminating())
break; //Termination is requested
@@ -172,6 +204,7 @@ size_t Reader_File::Format_Test_PerParser(MediaInfo_Internal* MI, const String &
if (F.Size_Get()==0) //If Size==0, Status is never updated
Status=MI->Open_Buffer_Continue(NULL, 0);
+
#ifdef MEDIAINFO_DEBUG
std::cout<<std::hex<<Reader_File_Offset<<" - "<<Reader_File_Offset+Reader_File_BytesRead<<" : "<<std::dec<<Reader_File_BytesRead<<" bytes"<<std::endl;
std::cout<<"Total: "<<std::dec<<Reader_File_BytesRead_Total<<" bytes in "<<Reader_File_Count<<" blocks"<<std::endl;
@@ -188,6 +221,7 @@ size_t Reader_File::Format_Test_PerParser(MediaInfo_Internal* MI, const String &
return 0;
MI->Open_Buffer_Finalize();
+
return 1;
}
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_File.h b/src/thirdparty/MediaInfo/Reader/Reader_File.h
index 1c897aa73..d0f9a388d 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_File.h
+++ b/src/thirdparty/MediaInfo/Reader/Reader_File.h
@@ -28,7 +28,9 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-#include "MediaInfo/MediaInfo_Internal.h"
+#include "MediaInfo/Reader/Reader__Base.h"
+#include "ZenLib/File.h"
+using namespace ZenLib;
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -38,12 +40,21 @@ namespace MediaInfoLib
/// @brief Reader_File
//***************************************************************************
-class Reader_File
+class Reader_File : public Reader__Base
{
public :
+ //Constructor/Destructor
+ virtual ~Reader_File() {}
+
//Format testing
- static size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
- static size_t Format_Test_PerParser(MediaInfo_Internal* MI, const String &File_Name);
+ size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ size_t Format_Test_PerParser(MediaInfo_Internal* MI, const String &File_Name);
+ size_t Format_Test_PerParser_Continue (MediaInfo_Internal* MI);
+
+ ZenLib::File F;
+ size_t Buffer_Size_Max;
+ int8u* Buffer;
+ std::bitset<32> Status;
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h b/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h
index 413423337..a05c70e58 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h
+++ b/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h
@@ -28,7 +28,7 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-#include "MediaInfo/MediaInfo_Internal.h"
+#include "MediaInfo/Reader/Reader__Base.h"
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -38,11 +38,14 @@ namespace MediaInfoLib
/// @brief Reader_libcurl
//***************************************************************************
-class Reader_libcurl
+class Reader_libcurl : public Reader__Base
{
public :
+ //Constructor/Destructor
+ virtual ~Reader_libcurl() {}
+
//Format testing
- static size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_libmms.cpp b/src/thirdparty/MediaInfo/Reader/Reader_libmms.cpp
index bf86dd995..481cb43db 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_libmms.cpp
+++ b/src/thirdparty/MediaInfo/Reader/Reader_libmms.cpp
@@ -55,7 +55,7 @@ const size_t Buffer_NormalSize=64*1024;
//***************************************************************************
//---------------------------------------------------------------------------
-int Reader_libmms::Format_Test(MediaInfo_Internal* MI, const String &File_Name)
+size_t Reader_libmms::Format_Test(MediaInfo_Internal* MI, const String &File_Name)
{
//Opening the file
mmsx_t* Handle=mmsx_connect(0, 0, Ztring(File_Name).To_Local().c_str(), (int)-1);
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_libmms.h b/src/thirdparty/MediaInfo/Reader/Reader_libmms.h
index 372157ea6..d6993243f 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_libmms.h
+++ b/src/thirdparty/MediaInfo/Reader/Reader_libmms.h
@@ -28,7 +28,7 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-#include "MediaInfo/MediaInfo_Internal.h"
+#include "MediaInfo/Reader/Reader__Base.h"
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -38,11 +38,14 @@ namespace MediaInfoLib
/// @brief Reader_libmms
//***************************************************************************
-class Reader_libmms
+class Reader_libmms : public Reader__Base
{
public :
+ //Constructor/Destructor
+ virtual ~Reader_libmms() {}
+
//Format testing
- static int Format_Test(MediaInfo_Internal* MI, const String &File_Name);
+ size_t Format_Test(MediaInfo_Internal* MI, const String &File_Name);
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Setup.h b/src/thirdparty/MediaInfo/Setup.h
index 5444e3966..f47cdc094 100644
--- a/src/thirdparty/MediaInfo/Setup.h
+++ b/src/thirdparty/MediaInfo/Setup.h
@@ -204,6 +204,9 @@
//---------------------------------------------------------------------------
// Multiple
+#if !defined(MEDIAINFO_MULTI_NO) && !defined(MEDIAINFO_ANCILLARY_NO) && !defined(MEDIAINFO_ANCILLARY_YES)
+ #define MEDIAINFO_ANCILLARY_YES
+#endif
#if !defined(MEDIAINFO_MULTI_NO) && !defined(MEDIAINFO_BDAV_NO) && !defined(MEDIAINFO_BDAV_YES)
#define MEDIAINFO_BDAV_YES
#endif
@@ -369,6 +372,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_DOLBYE_NO) && !defined(MEDIAINFO_DOLBYE_YES)
+ #define MEDIAINFO_DOLBYE_YES
+#endif
#if !defined(MEDIAINFO_AUDIO_NO) && !defined(MEDIAINFO_DTS_NO) && !defined(MEDIAINFO_DTS_YES)
#define MEDIAINFO_DTS_YES
#endif
diff --git a/src/thirdparty/MediaInfo/Text/File_DtvccTransport.cpp b/src/thirdparty/MediaInfo/Text/File_DtvccTransport.cpp
index cc5913c90..b006f513e 100644
--- a/src/thirdparty/MediaInfo/Text/File_DtvccTransport.cpp
+++ b/src/thirdparty/MediaInfo/Text/File_DtvccTransport.cpp
@@ -110,7 +110,7 @@ void File_DtvccTransport::Streams_Fill()
Merge(*Streams[Pos]->Parser);
if (Pos<2)
Fill(Stream_Text, StreamPos_Last, Text_ID, (Format==Format_DVD?_T("DVD-"):_T("608-"))+Ztring::ToZtring(Pos+1));
- Fill(Stream_Text, StreamPos_Last, "MuxingMode", Format==Format_DVD?_T("DVD-Video"):_T("EIA-708"));
+ Fill(Stream_Text, StreamPos_Last, "MuxingMode", Format==Format_DVD?_T("DVD-Video"):_T("DTVCC Transport"));
}
}
diff --git a/src/thirdparty/MediaInfo/Text/File_N19.cpp b/src/thirdparty/MediaInfo/Text/File_N19.cpp
index 95c6a7283..b716cac00 100644
--- a/src/thirdparty/MediaInfo/Text/File_N19.cpp
+++ b/src/thirdparty/MediaInfo/Text/File_N19.cpp
@@ -358,6 +358,7 @@ void File_N19::Data_Parse()
{
FirstFrame_TCI=TCI;
Fill(Stream_Text, 0, Text_Delay, TCI);
+ Fill(Stream_Text, 0, Text_Delay_Source, "Container");
}
if (File_Offset+Buffer_Offset+Element_Size+128>File_Size)
{
diff --git a/src/thirdparty/MediaInfo/Text/File_Pgs.cpp b/src/thirdparty/MediaInfo/Text/File_Pgs.cpp
index b0565801e..2bc96cc2f 100644
--- a/src/thirdparty/MediaInfo/Text/File_Pgs.cpp
+++ b/src/thirdparty/MediaInfo/Text/File_Pgs.cpp
@@ -37,21 +37,31 @@ namespace MediaInfoLib
{
//***************************************************************************
-// Buffer - Global
+// Streams management
//***************************************************************************
//---------------------------------------------------------------------------
-void File_Pgs::Read_Buffer_Continue()
+void File_Pgs::Streams_Fill()
{
- //Filling
- Accept("PGS");
-
Stream_Prepare(Stream_Text); //TODO: This is currenlty only text
Fill(Stream_Text, 0, Text_Format, "PGS");
Fill(Stream_Text, 0, Text_Codec, "PGS");
+}
+
+//***************************************************************************
+// Buffer - Global
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Pgs::Read_Buffer_Continue()
+{
+ Skip_XX(Element_Size, "PGS data");
- //No more need data
- Finish("PGS");
+ if (!Status[IsAccepted])
+ {
+ Accept("PGS");
+ Finish("PGS");
+ }
}
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Text/File_Pgs.h b/src/thirdparty/MediaInfo/Text/File_Pgs.h
index 45973d041..446c13ede 100644
--- a/src/thirdparty/MediaInfo/Text/File_Pgs.h
+++ b/src/thirdparty/MediaInfo/Text/File_Pgs.h
@@ -40,6 +40,9 @@ namespace MediaInfoLib
class File_Pgs : public File__Analyze
{
private :
+ //Streams management
+ void Streams_Fill();
+
//Buffer - Global
void Read_Buffer_Continue();
};
diff --git a/src/thirdparty/MediaInfo/Video/File_AfdBarData.cpp b/src/thirdparty/MediaInfo/Video/File_AfdBarData.cpp
index 3631617eb..a6fdb6bc5 100644
--- a/src/thirdparty/MediaInfo/Video/File_AfdBarData.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_AfdBarData.cpp
@@ -65,6 +65,48 @@ const char* AfdBarData_active_format[]=
};
//---------------------------------------------------------------------------
+const char* AfdBarData_active_format_4_3[]=
+{
+ "", //Undefined
+ "Reserved",
+ "Letterbox 16:9 image (top)",
+ "Letterbox 14:9 image (top)",
+ "Letterbox image with an aspect ratio greater than 16:9",
+ "Reserved",
+ "Reserved",
+ "Reserved",
+ "Full frame 4:3 image",
+ "Full frame 4:3 image",
+ "Letterbox 16:9 image",
+ "Letterbox 14:9 image",
+ "Reserved",
+ "Full frame 4:3 image, with alternative 14:9 center",
+ "Letterbox 16:9 image, with alternative 14:9 center",
+ "Letterbox 16:9 image, with alternative 4:3 center",
+};
+
+//---------------------------------------------------------------------------
+const char* AfdBarData_active_format_16_9[]=
+{
+ "", //Undefined
+ "Reserved",
+ "Letterbox 16:9 image (top)",
+ "Pillarbox 14:9 image (top)",
+ "Letterbox image with an aspect ratio greater than 16:9",
+ "Reserved",
+ "Reserved",
+ "Reserved",
+ "Full frame 16:9 image",
+ "Pillarbox 4:3 image",
+ "Letterbox 16:9 image",
+ "Pillarbox 14:9 image",
+ "Reserved",
+ "Full frame 4:3 image, with alternative 14:9 center",
+ "Letterbox 16:9 image, with alternative 14:9 center",
+ "Letterbox 16:9 image, with alternative 4:3 center",
+};
+
+//---------------------------------------------------------------------------
const char* AfdBarData_aspect_ratio[]=
{
"4:3",
@@ -92,6 +134,8 @@ void File_AfdBarData::Streams_Fill()
{
//Filling
Stream_Prepare(Stream_Video);
+ Fill(Stream_Video, 0, Video_ActiveFormatDescription, Stream.active_format);
+ Fill(Stream_Video, 0, Video_ActiveFormatDescription_String, Stream.aspect_ratio?AfdBarData_active_format_16_9[Stream.active_format]:AfdBarData_active_format_4_3[Stream.active_format]);
}
//***************************************************************************
@@ -138,8 +182,11 @@ void File_AfdBarData::Read_Buffer_Continue()
Stream.active_format=active_format;
Stream.aspect_ratio=aspect_ratio;
- if (!Status[IsFilled])
+ if (!Status[IsAccepted])
+ {
+ Accept("AfdBarData");
Fill("AfdBarData");
+ }
if (MediaInfoLib::Config.ParseSpeed_Get()<1)
Finish("AfdBarData");
FILLING_END();
@@ -238,11 +285,11 @@ void File_AfdBarData::bar_data()
}
if (!top_bar_flag && !bottom_bar_flag && !left_bar_flag && !right_bar_flag)
{
- Mark_1();
- Mark_1();
+ Mark_1_NoTrustError();
+ Mark_1_NoTrustError();
Skip_S2(14, "reserved");
- Mark_1();
- Mark_1();
+ Mark_1_NoTrustError();
+ Mark_1_NoTrustError();
Skip_S2(14, "reserved");
}
BS_End();
diff --git a/src/thirdparty/MediaInfo/Video/File_Avc.cpp b/src/thirdparty/MediaInfo/Video/File_Avc.cpp
index b49e1ab5a..86f77332d 100644
--- a/src/thirdparty/MediaInfo/Video/File_Avc.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Avc.cpp
@@ -409,7 +409,7 @@ void File_Avc::Streams_Fill()
if (!fixed_frame_rate_flag)
Fill(Stream_Video, StreamPos_Last, Video_FrameRate_Mode, "VFR");
else if (time_scale && num_units_in_tick)
- Fill(Stream_Video, StreamPos_Last, Video_FrameRate, (float)time_scale/num_units_in_tick/(pic_order_cnt_type==2?1:2)/FrameRate_Divider);
+ Fill(Stream_Video, StreamPos_Last, Video_FrameRate, (float)time_scale/num_units_in_tick/(frame_mbs_only_flag?2:(pic_order_cnt_type==2?1:2))/FrameRate_Divider);
}
if (FrameRate_Divider==2)
{
@@ -563,65 +563,57 @@ void File_Avc::Streams_Fill()
Fill(Stream_Video, 0, "transfer_characteristics", Avc_transfer_characteristics(transfer_characteristics));
Fill(Stream_Video, 0, "matrix_coefficients", Avc_matrix_coefficients(matrix_coefficients));
- if (File_Offset+Buffer_Size<File_Size)
- {
- NextCode_Clear();
-
- //Autorisation of other streams
- for (int8u Pos=0x00; Pos<0x20; Pos++)
- Streams[Pos].Searching_Payload=false; //Coded slice...
- }
-
//Buffer
- if (!MustParse_SPS_PPS_Done)
- {
- int32u bit_rate_value=0;
- bool bit_rate_value_IsValid=true;
- bool cbr_flag=false;
- bool cbr_flag_IsSet=false;
- bool cbr_flag_IsValid=true;
- for (size_t Pos=0; Pos<NAL.size(); Pos++)
- {
+ int32u bit_rate_value=(int32u)-1;
+ bool bit_rate_value_IsValid=true;
+ bool cbr_flag=false;
+ bool cbr_flag_IsSet=false;
+ bool cbr_flag_IsValid=true;
+ for (size_t Pos=0; Pos<NAL.size(); Pos++)
+ {
+ if (NAL[Pos].cpb_size_value!=(int32u)-1)
Fill(Stream_Video, 0, Video_BufferSize, NAL[Pos].cpb_size_value);
- if (bit_rate_value && bit_rate_value!=NAL[Pos].bit_rate_value)
- bit_rate_value_IsValid=false;
- if (bit_rate_value==0)
- bit_rate_value=NAL[Pos].bit_rate_value;
- if (cbr_flag_IsSet==true && cbr_flag!=NAL[Pos].cbr_flag)
- cbr_flag_IsValid=false;
- if (cbr_flag_IsSet==0)
- {
- cbr_flag=NAL[Pos].cbr_flag;
- cbr_flag_IsSet=true;
- }
- }
- for (size_t Pos=0; Pos<VCL.size(); Pos++)
+ if (bit_rate_value!=(int32u)-1 && bit_rate_value!=NAL[Pos].bit_rate_value)
+ bit_rate_value_IsValid=false;
+ if (bit_rate_value==(int32u)-1)
+ bit_rate_value=NAL[Pos].bit_rate_value;
+ if (cbr_flag_IsSet==true && cbr_flag!=NAL[Pos].cbr_flag)
+ cbr_flag_IsValid=false;
+ if (cbr_flag_IsSet==0)
{
- Fill(Stream_Video, 0, Video_BufferSize, VCL[Pos].cpb_size_value);
- if (bit_rate_value && bit_rate_value!=VCL[Pos].bit_rate_value)
- bit_rate_value_IsValid=false;
- if (bit_rate_value==0)
- bit_rate_value=VCL[Pos].bit_rate_value;
- if (cbr_flag_IsSet==true && cbr_flag!=VCL[Pos].cbr_flag)
- cbr_flag_IsValid=false;
- if (cbr_flag_IsSet==0)
- {
- cbr_flag=VCL[Pos].cbr_flag;
- cbr_flag_IsSet=true;
- }
+ cbr_flag=NAL[Pos].cbr_flag;
+ cbr_flag_IsSet=true;
}
- if (cbr_flag_IsSet && cbr_flag_IsValid)
+ }
+ for (size_t Pos=0; Pos<VCL.size(); Pos++)
+ {
+ Fill(Stream_Video, 0, Video_BufferSize, VCL[Pos].cpb_size_value);
+ if (bit_rate_value!=(int32u)-1 && bit_rate_value!=VCL[Pos].bit_rate_value)
+ bit_rate_value_IsValid=false;
+ if (bit_rate_value==(int32u)-1)
+ bit_rate_value=VCL[Pos].bit_rate_value;
+ if (cbr_flag_IsSet==true && cbr_flag!=VCL[Pos].cbr_flag)
+ cbr_flag_IsValid=false;
+ if (cbr_flag_IsSet==0)
{
- Fill(Stream_Video, 0, Video_BitRate_Mode, cbr_flag?"CBR":"VBR");
- if (bit_rate_value && bit_rate_value_IsValid)
- Fill(Stream_Video, 0, cbr_flag?Video_BitRate_Nominal:Video_BitRate_Maximum, bit_rate_value);
+ cbr_flag=VCL[Pos].cbr_flag;
+ cbr_flag_IsSet=true;
}
}
+ if (cbr_flag_IsSet && cbr_flag_IsValid)
+ {
+ Fill(Stream_Video, 0, Video_BitRate_Mode, cbr_flag?"CBR":"VBR");
+ if (bit_rate_value!=(int32u)-1 && bit_rate_value_IsValid)
+ Fill(Stream_Video, 0, cbr_flag?Video_BitRate_Nominal:Video_BitRate_Maximum, bit_rate_value);
+ }
}
//---------------------------------------------------------------------------
void File_Avc::Streams_Finish()
{
+ if (PTS_End!=(int64u)-1)
+ Fill(Stream_Video, 0, Video_Duration, float64_int64s(((float64)(PTS_End-PTS_Begin))/1000000));
+
//GA94 captions
for (size_t Pos=0; Pos<GA94_03_CC_Parsers.size(); Pos++)
if (GA94_03_CC_Parsers[Pos] && GA94_03_CC_Parsers[Pos]->Status[IsAccepted])
@@ -630,7 +622,7 @@ void File_Avc::Streams_Finish()
Merge(*GA94_03_CC_Parsers[Pos]);
if (Pos<2)
Fill(Stream_Text, StreamPos_Last, Text_ID, _T("608-")+Ztring::ToZtring(Pos));
- Fill(Stream_Text, StreamPos_Last, "MuxingMode", _T("EIA-708"));
+ Fill(Stream_Text, StreamPos_Last, Text_MuxingMode, _T("SCTE 128 / DTVCC Transport"));
}
//Purge what is not needed anymore
@@ -690,7 +682,6 @@ bool File_Avc::Synched_Test()
void File_Avc::Synched_Init()
{
//Count of a Packets
- Frame_Count=0;
Block_Count=0;
pic_order_cnt_lsb_Old=(int32u)-1;
Interlaced_Top=0;
@@ -752,6 +743,8 @@ void File_Avc::Synched_Init()
mb_adaptive_frame_field_flag=false;
pic_order_present_flag=false;
field_pic_flag_AlreadyDetected=false;
+ Field_Count_AfterLastCompleFrame=false;
+ RefFramesCount=0;
//Default values
Streams.resize(0x100);
@@ -779,6 +772,7 @@ void File_Avc::Read_Buffer_Unsynched()
TemporalReference_Offset_Moved=false;
TemporalReference_GA94_03_CC_Offset=0;
TemporalReference_Offset_pic_order_cnt_lsb_Last=(size_t)-1;
+ RefFramesCount=0;
}
//***************************************************************************
@@ -1183,7 +1177,11 @@ void File_Avc::slice_header()
{
Frame_Count--;
Frame_Count_InThisBlock--;
+ if (slice_type==0 || slice_type==2 || slice_type==5 || slice_type==7) //IFrame or PFrame
+ Field_Count_AfterLastCompleFrame=true;
}
+ else if (slice_type==0 || slice_type==2 || slice_type==5 || slice_type==7) //IFrame or PFrame
+ Field_Count_AfterLastCompleFrame=false;
Element_Info(Ztring::ToZtring(Frame_Count));
//Counting
@@ -1191,6 +1189,20 @@ void File_Avc::slice_header()
Frame_Count_Valid=Frame_Count; //Finish frames in case of there are less than Frame_Count_Valid frames
Frame_Count++;
Frame_Count_InThisBlock++;
+ if (RefFramesCount<2 && (slice_type==0 || slice_type==2 || slice_type==5 || slice_type==7))
+ RefFramesCount++;
+ if (PTS!=(int64u)-1)
+ {
+ if (PTS_Begin==(int64u)-1 && (slice_type==2 || slice_type==7)) //IFrame
+ PTS_Begin=PTS;
+ if ((slice_type==0 || slice_type==2 || slice_type==5 || slice_type==7) && Frame_Count_InThisBlock<=1 && !Field_Count_AfterLastCompleFrame) //IFrame or PFrame
+ PTS_End=PTS;
+ if ((slice_type==0 || slice_type==2 || slice_type==5 || slice_type==7) || (Frame_Count_InThisBlock>=2 && RefFramesCount>=2)) //IFrame or PFrame or more than 2 RefFrame for BFrames
+ {
+ if (timing_info_present_flag && first_mb_in_slice==0)
+ PTS_End+=float64_int64s(((float64)1000000000)/((float)time_scale/num_units_in_tick/(pic_order_cnt_type==2?1:2)/FrameRate_Divider)/((!frame_mbs_only_flag && field_pic_flag)?2:1));
+ }
+ }
//Duplicate
if (Streams[(size_t)Element_Code].ShouldDuplicate)
@@ -2354,9 +2366,11 @@ void File_Avc::hrd_parameters(bool vcl)
xxl Item;
int32u bit_rate_value_minus1, cpb_size_value_minus1;
Get_UE (bit_rate_value_minus1, "bit_rate_value_minus1");
- Item.bit_rate_value=(int32u)((bit_rate_value_minus1+1)*pow(2.0, 6+bit_rate_scale)); Param_Info(Item.bit_rate_value, " bps");
+ if (bit_rate_value_minus1)
+ Item.bit_rate_value=(int32u)((bit_rate_value_minus1+1)*pow(2.0, 6+bit_rate_scale)); Param_Info(Item.bit_rate_value, " bps");
Get_UE (cpb_size_value_minus1, "cpb_size_value_minus1");
- Item.cpb_size_value=(int32u)((cpb_size_value_minus1+1)*pow(2.0, cpb_size_scale)); Param_Info(Item.cpb_size_value, " bytes");
+ if (cpb_size_value_minus1)
+ Item.cpb_size_value=(int32u)((cpb_size_value_minus1+1)*pow(2.0, cpb_size_scale)); Param_Info(Item.cpb_size_value, " bytes");
Get_SB (Item.cbr_flag, "cbr_flag");
Element_End();
@@ -2449,15 +2463,12 @@ void File_Avc::mvc_vui_parameters_extension()
//---------------------------------------------------------------------------
void File_Avc::SPS_PPS()
{
- //Configuring
- Trusted=1; //No error is accepted
-
//Parsing
int8u Profile, Level, seq_parameter_set_count, pic_parameter_set_count;
+ if (SizedBlocks)
+ Skip_B1( "Version");
Get_B1 (Profile, "Profile");
Skip_B1( "Compatible profile");
- if (SizedBlocks)
- Skip_B1( "Reserved");
Get_B1 (Level, "Level");
BS_Begin();
Skip_S1(6, "Reserved");
diff --git a/src/thirdparty/MediaInfo/Video/File_Avc.h b/src/thirdparty/MediaInfo/Video/File_Avc.h
index ddbbcda1a..ff87678ea 100644
--- a/src/thirdparty/MediaInfo/Video/File_Avc.h
+++ b/src/thirdparty/MediaInfo/Video/File_Avc.h
@@ -191,7 +191,6 @@ private :
size_t Buffer_Size_ToSave;
//Count of a Packets
- size_t Frame_Count;
size_t Block_Count;
size_t Interlaced_Top;
size_t Interlaced_Bottom;
@@ -205,6 +204,13 @@ private :
int32u bit_rate_value;
int32u cpb_size_value;
bool cbr_flag;
+
+ xxl()
+ {
+ bit_rate_value=(int32u)-1;
+ cpb_size_value=(int32u)-1;
+ cbr_flag=true;
+ }
};
std::vector<xxl> NAL;
std::vector<xxl> VCL;
@@ -270,6 +276,8 @@ private :
bool pic_order_present_flag;
bool svc_extension_flag;
bool field_pic_flag_AlreadyDetected;
+ bool Field_Count_AfterLastCompleFrame;
+ size_t RefFramesCount;
//Temp
bool SPS_IsParsed;
diff --git a/src/thirdparty/MediaInfo/Video/File_AvsV.cpp b/src/thirdparty/MediaInfo/Video/File_AvsV.cpp
index 5eca16576..cc9e207b4 100644
--- a/src/thirdparty/MediaInfo/Video/File_AvsV.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_AvsV.cpp
@@ -293,7 +293,6 @@ bool File_AvsV::Synched_Test()
void File_AvsV::Synched_Init()
{
//Count of a Packets
- Frame_Count=0;
progressive_frame_Count=0;
Interlaced_Top=0;
Interlaced_Bottom=0;
diff --git a/src/thirdparty/MediaInfo/Video/File_AvsV.h b/src/thirdparty/MediaInfo/Video/File_AvsV.h
index aae235652..6cbd5b896 100644
--- a/src/thirdparty/MediaInfo/Video/File_AvsV.h
+++ b/src/thirdparty/MediaInfo/Video/File_AvsV.h
@@ -78,7 +78,6 @@ private :
void reserved();
//Count of a Packets
- size_t Frame_Count;
size_t progressive_frame_Count;
size_t Interlaced_Top;
size_t Interlaced_Bottom;
diff --git a/src/thirdparty/MediaInfo/Video/File_Dirac.cpp b/src/thirdparty/MediaInfo/Video/File_Dirac.cpp
index a742a4da2..c8a53f25a 100644
--- a/src/thirdparty/MediaInfo/Video/File_Dirac.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Dirac.cpp
@@ -511,9 +511,6 @@ bool File_Dirac::Synched_Test()
//---------------------------------------------------------------------------
void File_Dirac::Synched_Init()
{
- //Count of a Packets
- Frame_Count=0;
-
//Temp
Dirac_base_video_format((int32u)-1, frame_width, frame_height, chroma_format, source_sampling,
clean_width, clean_height, clean_left_offset, clean_top_offset,
diff --git a/src/thirdparty/MediaInfo/Video/File_Dirac.h b/src/thirdparty/MediaInfo/Video/File_Dirac.h
index 58ac12980..7565eb3f0 100644
--- a/src/thirdparty/MediaInfo/Video/File_Dirac.h
+++ b/src/thirdparty/MediaInfo/Video/File_Dirac.h
@@ -96,9 +96,6 @@ private :
};
std::vector<stream> Streams;
- //Count of a Packets
- size_t Frame_Count;
-
//Temp
int32u frame_width;
int32u frame_height;
diff --git a/src/thirdparty/MediaInfo/Video/File_Mpeg4v.cpp b/src/thirdparty/MediaInfo/Video/File_Mpeg4v.cpp
index 9a9922916..3b9ac13b2 100644
--- a/src/thirdparty/MediaInfo/Video/File_Mpeg4v.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Mpeg4v.cpp
@@ -280,7 +280,6 @@ bool File_Mpeg4v::Synched_Test()
void File_Mpeg4v::Synched_Init()
{
//Count of a Packets
- Frame_Count=0;
IVOP_Count=0;
PVOP_Count=0;
BVOP_Count=0;
@@ -490,7 +489,10 @@ void File_Mpeg4v::Streams_Fill()
if (user_data_start_SNC_Data[Pos][0]==_T("FrmRate"))
Fill(Stream_Video, 0, Video_FrameRate, user_data_start_SNC_Data[Pos][1].To_float32(), 3);
if (user_data_start_SNC_Data[Pos][0]==_T("TimStamp"))
+ {
Fill(Stream_Video, 0, Video_Delay, user_data_start_SNC_Data[Pos][1].To_int64u());
+ Fill(Stream_Video, 0, Video_Delay_Source, "Stream");
+ }
if (user_data_start_SNC_Data[Pos][0]==_T("CamPos") && user_data_start_SNC_Data[Pos][1].size()==16)
{
Fill(Stream_Video, 0, "Pan / Tilt / Zoom / Status", Ztring(user_data_start_SNC_Data[Pos][1].substr( 3, 4)).To_int8u(16));
diff --git a/src/thirdparty/MediaInfo/Video/File_Mpeg4v.h b/src/thirdparty/MediaInfo/Video/File_Mpeg4v.h
index 5921ca0ae..4d6fc8335 100644
--- a/src/thirdparty/MediaInfo/Video/File_Mpeg4v.h
+++ b/src/thirdparty/MediaInfo/Video/File_Mpeg4v.h
@@ -111,7 +111,6 @@ private :
std::vector<stream> Streams;
//Count of a Packets
- size_t Frame_Count;
size_t IVOP_Count;
size_t PVOP_Count;
size_t BVOP_Count;
diff --git a/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp b/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp
index 25dbb3356..e99892d66 100644
--- a/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp
@@ -40,16 +40,16 @@ namespace MediaInfoLib
using namespace ZenLib;
//---------------------------------------------------------------------------
-extern const float32 Mpegv_frame_rate[]=
+extern const float32 Mpegv_frame_rate[16]=
{
(float32) 0,
- (float32)23.976,
+ (float32)24000/(float32)1001,
(float32)24,
(float32)25,
- (float32)29.97,
+ (float32)30000/(float32)1001,
(float32)30,
(float32)50,
- (float32)59.94,
+ (float32)60000/(float32)1001,
(float32)60,
(float32) 0,
(float32) 0,
@@ -61,7 +61,7 @@ extern const float32 Mpegv_frame_rate[]=
};
//---------------------------------------------------------------------------
-const char* Mpegv_Colorimetry_format[]=
+const char* Mpegv_Colorimetry_format[4]=
{
"",
"4:2:0",
@@ -138,10 +138,10 @@ const char* Mpegv_profile_and_level_indication_level[]=
#if defined(MEDIAINFO_SCTE20_YES)
#include "MediaInfo/Text/File_Scte20.h"
#endif //defined(MEDIAINFO_SCTE20_YES)
-#if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
+#if defined(MEDIAINFO_CDP_YES)
#include "MediaInfo/Text/File_Cdp.h"
#include <cstring>
-#endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
+#endif //defined(MEDIAINFO_CDP_YES)
#if defined(MEDIAINFO_AFDBARDATA_YES)
#include "MediaInfo/Video/File_AfdBarData.h"
#include <cstring>
@@ -292,12 +292,9 @@ File_Mpegv::File_Mpegv()
Frame_Count_Valid=MediaInfoLib::Config.ParseSpeed_Get()>=0.3?40:2;
FrameIsAlwaysComplete=false;
TimeCodeIsNotTrustable=false;
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- Cdp_Data=NULL;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
- AfdBarData_Data=NULL;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ Ancillary=NULL;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
//temporal_reference
TemporalReference_Offset=0;
@@ -317,13 +314,13 @@ File_Mpegv::File_Mpegv()
DTG1_Parser=NULL;
GA94_06_Parser=NULL;
#endif //defined(MEDIAINFO_AFDBARDATA_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_CDP_YES)
Cdp_Parser=NULL;
Cdp_IsPresent=false;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
AfdBarData_Parser=NULL;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
//Temp
SizeToAnalyse_Begin=1*1024*1024;
@@ -579,6 +576,7 @@ void File_Mpegv::Streams_Fill()
Fill(Stream_Video, 0, Video_Delay_Settings, Ztring(_T("drop_frame_flag="))+(group_start_drop_frame_flag?_T("1"):_T("0")));
Fill(Stream_Video, 0, Video_Delay_Settings, Ztring(_T("closed_gop="))+(group_start_closed_gop?_T("1"):_T("0")));
Fill(Stream_Video, 0, Video_Delay_Settings, Ztring(_T("broken_link="))+(group_start_broken_link?_T("1"):_T("0")));
+ Fill(Stream_Video, 0, Video_Delay_Source, "Stream");
}
//BVOP
@@ -611,15 +609,26 @@ void File_Mpegv::Streams_Fill()
Streams[0xB3].Searching_Payload=true;
Streams[0xB5].Searching_Payload=true;
}
+
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
+ if (DTG1_Parser)
+ Merge(*DTG1_Parser, Stream_Video, 0, 0);
+ if (GA94_06_Parser)
+ Merge(*GA94_06_Parser, Stream_Video, 0, 0);
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
+ if (AfdBarData_Parser)
+ Merge(*AfdBarData_Parser, Stream_Video, 0, 0);
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
}
//---------------------------------------------------------------------------
void File_Mpegv::Streams_Finish()
{
//Duration
- if (Time_End_NeedComplete && MediaInfoLib::Config.ParseSpeed_Get()!=1)
- Time_End_Seconds=Error;
- if (Time_End_Seconds!=Error)
+ if (PTS_End!=(int64u)-1)
+ Fill(Stream_Video, 0, Video_Duration, float64_int64s(((float64)(PTS_End-PTS_Begin))/1000000));
+ else if (Time_End_Seconds!=Error)
{
size_t Time_Begin=Time_Begin_Seconds*1000;
size_t Time_End =Time_End_Seconds*1000;
@@ -628,8 +637,7 @@ void File_Mpegv::Streams_Finish()
Time_Begin+=(size_t)(Time_Begin_Frames*1000/FrameRate);
Time_End +=(size_t)(Time_End_Frames *1000/FrameRate);
}
- if (Time_End>Time_Begin)
- Fill(Stream_Video, 0, Video_Duration, Time_End-Time_Begin);
+ Fill(Stream_Video, 0, Video_Duration, Time_End-Time_Begin);
}
//Other parsers
@@ -638,6 +646,13 @@ void File_Mpegv::Streams_Finish()
{
Finish(GA94_03_Parser);
Merge(*GA94_03_Parser);
+ size_t Parser_Text_Count=GA94_03_Parser->Count_Get(Stream_Text);
+ for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
+ {
+ size_t Text_Pos=Count_Get(Stream_Text)-Parser_Text_Count+Parser_Text_Pos;
+ Ztring MuxingMode=Retrieve(Stream_Text, Text_Pos, "MuxingMode");
+ Fill(Stream_Text, Text_Pos, "MuxingMode", _T("A/53 / ")+MuxingMode, true);
+ }
}
if (CC___Parser && !CC___Parser->Status[IsFinished] && CC___Parser->Status[IsAccepted])
{
@@ -664,20 +679,28 @@ void File_Mpegv::Streams_Finish()
Merge(*GA94_06_Parser);
}
#endif //defined(MEDIAINFO_AFDBARDATA_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_CDP_YES)
if (Cdp_Parser && !Cdp_Parser->Status[IsFinished] && Cdp_Parser->Status[IsAccepted])
{
Finish(Cdp_Parser);
Merge(*Cdp_Parser);
+ size_t Parser_Text_Count=Cdp_Parser->Count_Get(Stream_Text);
+ for (size_t Parser_Text_Pos=0; Parser_Text_Pos<Parser_Text_Count; Parser_Text_Pos++)
+ {
+ size_t Text_Pos=Count_Get(Stream_Text)-Parser_Text_Count+Parser_Text_Pos;
+ Ztring MuxingMode=Retrieve(Stream_Text, Text_Pos, "MuxingMode");
+ Fill(Stream_Text, Text_Pos, "MuxingMode", _T("Ancillary data / ")+MuxingMode, true);
+ Fill(Stream_Text, Text_Pos, "MuxingMode_MoreInfo", _T("Muxed in video frame presentation order"));
+ }
}
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
if (AfdBarData_Parser && !AfdBarData_Parser->Status[IsFinished] && AfdBarData_Parser->Status[IsAccepted])
{
Finish(AfdBarData_Parser);
- Merge(*AfdBarData_Parser);
+ Merge(*AfdBarData_Parser, Stream_Video, 0, 0);
}
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
//Purge what is not needed anymore
if (!File_Name.empty()) //Only if this is not a buffer, with buffer we can have more data
@@ -728,7 +751,6 @@ bool File_Mpegv::Synched_Test()
void File_Mpegv::Synched_Init()
{
//Temp
- Frame_Count=0;
BVOP_Count=0;
progressive_frame_Count=0;
Interlaced_Top=0;
@@ -769,6 +791,9 @@ void File_Mpegv::Synched_Init()
group_start_IsParsed=false;
bit_rate_value_IsValid=false;
profile_and_level_indication_escape=false;
+ RefFramesCount=0;
+ BVOPsSinceLastRefFrames=0;
+ Field_Count_AfterLastCompleFrame=false;
//Default stream values
Streams.resize(0x100);
@@ -786,6 +811,8 @@ void File_Mpegv::Read_Buffer_Unsynched()
{
Time_End_Seconds=Error;
Time_End_Frames=(int8u)-1;
+ RefFramesCount=0;
+ group_start_IsParsed=false;
temporal_reference_Old=(int16u)-1;
for (size_t Pos=0; Pos<TemporalReference.size(); Pos++)
@@ -810,14 +837,14 @@ void File_Mpegv::Read_Buffer_Unsynched()
if (GA94_06_Parser)
GA94_06_Parser->Open_Buffer_Unsynch();
#endif //defined(MEDIAINFO_AFDBARDATA_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_CDP_YES)
if (Cdp_Parser)
Cdp_Parser->Open_Buffer_Unsynch();
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_CDP_YES)
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
if (AfdBarData_Parser)
AfdBarData_Parser->Open_Buffer_Unsynch();
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
//NextCode
NextCode_Clear();
@@ -950,7 +977,7 @@ void File_Mpegv::Data_Parse()
void File_Mpegv::Detect_EOF()
{
if (IsSub && Status[IsFilled]
- || (!IsSub && File_Size>SizeToAnalyse_Begin+SizeToAnalyse_End && File_Offset+Buffer_Offset+Element_Offset>SizeToAnalyse_Begin && File_Offset+Buffer_Offset+Element_Offset<File_Size-SizeToAnalyse_End && MediaInfoLib::Config.ParseSpeed_Get()<=0.01))
+ || (!IsSub && File_Size>SizeToAnalyse_Begin+SizeToAnalyse_End && File_Offset+Buffer_Offset+Element_Offset>SizeToAnalyse_Begin && File_Offset+Buffer_Offset+Element_Offset<File_Size-SizeToAnalyse_End && MediaInfoLib::Config.ParseSpeed_Get()<=0.5))
{
if ((GA94_03_IsPresent || CC___IsPresent || Scte_IsPresent || Cdp_IsPresent) && Frame_Count<Frame_Count_Valid*10 //10 times the normal test
&& !(!IsSub && File_Size>SizeToAnalyse_Begin*10+SizeToAnalyse_End*10 && File_Offset+Buffer_Offset+Element_Offset>SizeToAnalyse_Begin*10 && File_Offset+Buffer_Offset+Element_Offset<File_Size-SizeToAnalyse_End*10))
@@ -1025,9 +1052,15 @@ void File_Mpegv::picture_start()
{
Frame_Count--;
Frame_Count_InThisBlock--;
+ if (picture_coding_type==1 || picture_coding_type==2) //IFrame or PFrame
+ Field_Count_AfterLastCompleFrame=true;
}
else
+ {
temporal_reference_Old=temporal_reference;
+ if (picture_coding_type==1 || picture_coding_type==2) //IFrame or PFrame
+ Field_Count_AfterLastCompleFrame=false;
+ }
//Temporal reference
if (TemporalReference_Offset+temporal_reference>=TemporalReference.size())
@@ -1041,11 +1074,11 @@ void File_Mpegv::picture_start()
Element_Info(_T("Frame ")+Ztring::ToZtring(Frame_Count));
Element_Info(_T("picture_coding_type ")+Ztring().From_Local(Mpegv_picture_coding_type[picture_coding_type]));
Element_Info(_T("temporal_reference ")+Ztring::ToZtring(temporal_reference));
- if (PTS!=(int64u)-1)
- Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)PTS)/1000000)));
- if (DTS!=(int64u)-1)
+ if (PTS!=(int64u)-1 && FrameRate)
+ Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)(Frame_Count_InThisBlock==0?PTS:PTS_End))/1000000)));
+ if (DTS!=(int64u)-1 && FrameRate)
Element_Info(_T("DTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)DTS)/1000000)));
- if (Time_End_Seconds!=Error)
+ if (Time_End_Seconds!=Error && !(RefFramesCount<2 && picture_coding_type==3))
{
int32u Time_End =Time_End_Seconds *1000;
if (FrameRate)
@@ -1073,13 +1106,25 @@ void File_Mpegv::picture_start()
//Time
if (Time_End_Seconds!=Error)
{
- Time_End_Frames++; //One frame
+ int8u CountToAdd=1; //One frame
if (progressive_sequence && repeat_first_field)
{
- Time_End_Frames++; //Frame repeated a second time
+ CountToAdd++; //Frame repeated a second time
if (top_field_first)
- Time_End_Frames++; //Frame repeated a third time
+ CountToAdd++; //Frame repeated a third time
}
+
+ if (RefFramesCount>=2 || picture_coding_type==1 || picture_coding_type==2)
+ {
+ Time_End_Frames+=CountToAdd;
+ if (BVOPsSinceLastRefFrames)
+ {
+ Time_End_Frames+=BVOPsSinceLastRefFrames;
+ BVOPsSinceLastRefFrames=0;
+ }
+ }
+ else if (RefFramesCount>=2)
+ BVOPsSinceLastRefFrames+=CountToAdd;
}
//Counting
@@ -1089,6 +1134,22 @@ void File_Mpegv::picture_start()
Frame_Count_InThisBlock++;
if (picture_coding_type==3)
BVOP_Count++;
+ else
+ BVOPsSinceLastRefFrames=0;
+ if (RefFramesCount<2 && (picture_coding_type==1 || picture_coding_type==2))
+ RefFramesCount++;
+ if (PTS!=(int64u)-1)
+ {
+ if (PTS_Begin==(int64u)-1 && picture_coding_type==1) //IFrame
+ PTS_Begin=PTS;
+ if ((picture_coding_type==1 || picture_coding_type==2) && Frame_Count_InThisBlock<=1 && !Field_Count_AfterLastCompleFrame) //IFrame or PFrame
+ PTS_End=PTS;
+ if ((picture_coding_type==1 || picture_coding_type==2) || (Frame_Count_InThisBlock>=2 && RefFramesCount>=2)) //IFrame or PFrame or more than 2 RefFrame for BFrames
+ {
+ if (frame_rate_code)
+ PTS_End+=float64_int64s(((float64)1000000000)/FrameRate);
+ }
+ }
//Need to parse?
if (!Streams[0x00].Searching_Payload)
@@ -1131,10 +1192,16 @@ void File_Mpegv::slice_start()
Streams[Pos].Searching_Payload=false;
//Filling only if not already done
- if (Frame_Count==2 && !Status[IsAccepted])
+ if (!Status[IsAccepted])
Accept("MPEG Video");
if (!Status[IsFilled] && (!CC___IsPresent && !Scte_IsPresent && !GA94_03_IsPresent && !Cdp_IsPresent && Frame_Count>=Frame_Count_Valid || Frame_Count>=Frame_Count_Valid*10))
+ {
Fill("MPEG Video");
+ if (File_Size==(int64u)-1)
+ Finish("MPEG Video");
+ else if (!IsSub && 2*(File_Offset+Buffer_Size)<File_Size && MediaInfoLib::Config.ParseSpeed_Get()<1.0)
+ GoToFromEnd(File_Offset+Buffer_Size);
+ }
FILLING_END();
}
@@ -1805,8 +1872,8 @@ void File_Mpegv::extension_start()
Time_End_Frames--; //One frame
//CDP
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- if (Cdp_Data && !Cdp_Data->empty())
+ #if defined(MEDIAINFO_CDP_YES)
+ if (Ancillary && *Ancillary && !(*Ancillary)->Cdp_Data.empty())
{
Cdp_IsPresent=true;
@@ -1821,26 +1888,26 @@ void File_Mpegv::extension_start()
Cdp_Parser=new File_Cdp;
Open_Buffer_Init(Cdp_Parser);
}
- Demux((*Cdp_Data)[0]->Data, (*Cdp_Data)[0]->Size, ContentType_MainStream);
+ Demux((*Ancillary)->Cdp_Data[0]->Data, (*Ancillary)->Cdp_Data[0]->Size, ContentType_MainStream);
if (!Cdp_Parser->Status[IsFinished])
{
if (Cdp_Parser->PTS_DTS_Needed)
Cdp_Parser->DTS=DTS;
((File_Cdp*)Cdp_Parser)->AspectRatio=MPEG_Version==1?Mpegv_aspect_ratio1[aspect_ratio_information]:Mpegv_aspect_ratio2[aspect_ratio_information];
- Open_Buffer_Continue(Cdp_Parser, (*Cdp_Data)[0]->Data, (*Cdp_Data)[0]->Size);
+ Open_Buffer_Continue(Cdp_Parser, (*Ancillary)->Cdp_Data[0]->Data, (*Ancillary)->Cdp_Data[0]->Size);
}
//Removing data from stack
- delete (*Cdp_Data)[0]; //Cdp_Data[0]=NULL;
- Cdp_Data->erase(Cdp_Data->begin());
+ delete (*Ancillary)->Cdp_Data[0]; //(*Ancillary)->Cdp_Data[0]=NULL;
+ (*Ancillary)->Cdp_Data.erase((*Ancillary)->Cdp_Data.begin());
Element_End();
}
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
+ #endif //defined(MEDIAINFO_CDP_YES)
//Active Format Description & Bar Data
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
- if (AfdBarData_Data && !AfdBarData_Data->empty())
+ #if defined(MEDIAINFO_AFDBARDATA_YES)
+ if (Ancillary && *Ancillary && !(*Ancillary)->AfdBarData_Data.empty())
{
Element_Begin("Active Format Description & Bar Data");
@@ -1854,15 +1921,15 @@ void File_Mpegv::extension_start()
if (AfdBarData_Parser->PTS_DTS_Needed)
AfdBarData_Parser->DTS=DTS;
if (!AfdBarData_Parser->Status[IsFinished])
- Open_Buffer_Continue(AfdBarData_Parser, (*AfdBarData_Data)[0]->Data, (*AfdBarData_Data)[0]->Size);
+ Open_Buffer_Continue(AfdBarData_Parser, (*Ancillary)->AfdBarData_Data[0]->Data, (*Ancillary)->AfdBarData_Data[0]->Size);
//Removing data from stack
- delete (*AfdBarData_Data)[0]; //AfdBarData_Data[0]=NULL;
- AfdBarData_Data->erase(AfdBarData_Data->begin());
+ delete (*Ancillary)->AfdBarData_Data[0]; //(*Ancillary)->AfdBarData_Data[0]=NULL;
+ (*Ancillary)->AfdBarData_Data.erase((*Ancillary)->AfdBarData_Data.begin());
Element_End();
}
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #endif //defined(MEDIAINFO_AFDBARDATA_YES)
FILLING_END();
}
break;
@@ -1958,6 +2025,7 @@ void File_Mpegv::group_start()
group_start_closed_gop=closed_gop;
group_start_broken_link=broken_link;
}
+ RefFramesCount=0;
//Autorisation of other streams
if (Searching_TimeStamp_Start_DoneOneTime)
diff --git a/src/thirdparty/MediaInfo/Video/File_Mpegv.h b/src/thirdparty/MediaInfo/Video/File_Mpegv.h
index b0c2f95ba..a888b4d83 100644
--- a/src/thirdparty/MediaInfo/Video/File_Mpegv.h
+++ b/src/thirdparty/MediaInfo/Video/File_Mpegv.h
@@ -28,9 +28,9 @@
//---------------------------------------------------------------------------
#include "MediaInfo/File__Analyze.h"
-#if defined(MEDIAINFO_GXF_YES) && (defined(MEDIAINFO_CDP_YES) || defined(MEDIAINFO_AFDBARDATA_YES))
- #include "MediaInfo/Multiple/File_Riff.h"
-#endif //MEDIAINFO_CDP_YES
+#if defined(MEDIAINFO_ANCILLARY_YES)
+ #include <MediaInfo/Multiple/File_Ancillary.h>
+#endif //defined(MEDIAINFO_ANCILLARY_YES)
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -48,12 +48,9 @@ public :
size_t Frame_Count_Valid;
bool FrameIsAlwaysComplete;
bool TimeCodeIsNotTrustable;
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- std::vector<File_Riff::buffered_data*>* Cdp_Data;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_CDP_YES)
- #if defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
- std::vector<File_Riff::buffered_data*>* AfdBarData_Data;
- #endif //defined(MEDIAINFO_GXF_YES) && defined(MEDIAINFO_AFDBARDATA_YES)
+ #if defined(MEDIAINFO_ANCILLARY_YES)
+ File_Ancillary** Ancillary;
+ #endif //defined(MEDIAINFO_ANCILLARY_YES)
//Constructor/Destructor
File_Mpegv();
@@ -65,14 +62,16 @@ private :
void Streams_Finish();
//Buffer - File header
- void Read_Buffer_Unsynched();
bool FileHeader_Begin() {return FileHeader_Begin_0x000001();}
//Buffer - Synchro
bool Synchronize() {return Synchronize_0x000001();}
bool Synched_Test();
void Synched_Init();
-
+
+ //Buffer - Global
+ void Read_Buffer_Unsynched();
+
//Buffer - Per element
void Header_Parse();
bool Header_Parser_QuickSearch();
@@ -206,7 +205,6 @@ private :
Ztring Library_Version;
Ztring Matrix_intra;
Ztring Matrix_nonintra;
- size_t Frame_Count;
size_t BVOP_Count;
size_t progressive_frame_Count;
size_t Interlaced_Top;
@@ -258,6 +256,10 @@ private :
bool Parsing_End_ForDTS;
bool bit_rate_value_IsValid;
bool profile_and_level_indication_escape;
+ size_t RefFramesCount;
+ size_t BVOPsSinceLastRefFrames;
+ bool Field_Count_AfterLastCompleFrame;
+
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Video/File_Vc1.cpp b/src/thirdparty/MediaInfo/Video/File_Vc1.cpp
index 53a6e0301..52be6f6ab 100644
--- a/src/thirdparty/MediaInfo/Video/File_Vc1.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Vc1.cpp
@@ -238,6 +238,7 @@ File_Vc1::File_Vc1()
//Config
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
+ PTS_DTS_Needed=true;
//In
Frame_Count_Valid=30;
@@ -247,6 +248,8 @@ File_Vc1::File_Vc1()
//Temp
EntryPoint_Parsed=false;
+ FrameRate=0;
+ RefFramesCount=0;
}
//***************************************************************************
@@ -265,16 +268,6 @@ void File_Vc1::Streams_Fill()
else
PixelAspectRatio=1; //Unknown
- //Calculating - FrameRate
- float32 FrameRate=0;
- if (framerate_present)
- {
- if (framerate_form)
- FrameRate=((float32)(framerateexp+1))/(float32)32;
- else if (Vc1_FrameRate_dr(frameratecode_dr))
- FrameRate=Vc1_FrameRate_enr(frameratecode_enr)/Vc1_FrameRate_dr(frameratecode_dr);
- }
-
//Filling
Stream_Prepare(Stream_Video);
Fill(Stream_Video, 0, Video_Format, "VC-1");
@@ -349,6 +342,9 @@ void File_Vc1::Streams_Fill()
//---------------------------------------------------------------------------
void File_Vc1::Streams_Finish()
{
+ if (PTS_End!=(int64u)-1)
+ Fill(Stream_Video, 0, Video_Duration, float64_int64s(((float64)(PTS_End-PTS_Begin))/1000000));
+
//Purge what is not needed anymore
if (!File_Name.empty()) //Only if this is not a buffer, with buffer we can have more data
Streams.clear();
@@ -402,7 +398,6 @@ bool File_Vc1::Synched_Test()
void File_Vc1::Synched_Init()
{
//Count
- Frame_Count=0;
Interlaced_Top=0;
Interlaced_Bottom=0;
PictureFormat_Count.resize(4);
@@ -440,7 +435,17 @@ void File_Vc1::Synched_Init()
}
//***************************************************************************
-// Buffer
+// Buffer - Global
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Vc1::Read_Buffer_Unsynched()
+{
+ RefFramesCount=0;
+}
+
+//***************************************************************************
+// Buffer - Per element
//***************************************************************************
//---------------------------------------------------------------------------
@@ -455,7 +460,6 @@ void File_Vc1::Header_Parse()
}
//Parsing
- int8u start_code;
Skip_B3( "synchro");
Get_B1 (start_code, "start_code");
if (!Header_Parser_Fill_Size())
@@ -504,6 +508,17 @@ bool File_Vc1::Header_Parser_Fill_Size()
Buffer_Offset_Temp+=2;
if (Buffer_Offset_Temp<Buffer_Size && Buffer[Buffer_Offset_Temp-1]==0x00 || Buffer_Offset_Temp>=Buffer_Size)
Buffer_Offset_Temp--;
+
+ if (start_code==0x0D) //FrameHeader, we need only few bytes
+ {
+ if (Buffer_Offset_Temp-Buffer_Offset>20)
+ {
+ //OK, we continue, we have enough for a slice
+ Header_Fill_Size(16);
+ Buffer_Offset_Temp=0;
+ return true;
+ }
+ }
}
//Must wait more data?
@@ -578,16 +593,20 @@ void File_Vc1::Field()
// Packet "0D"
void File_Vc1::FrameHeader()
{
+ //Name
+ Element_Name("FrameHeader");
+ Element_Info(Ztring(_T("Frame ")+Ztring::ToZtring(Frame_Count)));
+ if (PTS!=(int64u)-1)
+ Element_Info(_T("PTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)PTS)/1000000+Frame_Count_InThisBlock*1000/FrameRate)));
+ if (DTS!=(int64u)-1)
+ Element_Info(_T("DTS ")+Ztring().Duration_From_Milliseconds(float64_int64s(((float64)DTS)/1000000+Frame_Count_InThisBlock*1000/FrameRate)));
+
//Counting
if (File_Offset+Buffer_Offset+Element_Size==File_Size)
Frame_Count_Valid=Frame_Count; //Finish frames in case of there are less than Frame_Count_Valid frames
Frame_Count++;
Frame_Count_InThisBlock++;
- //Name
- Element_Name("FrameHeader");
- Element_Info(Ztring(_T("Frame ")+Ztring::ToZtring(Frame_Count)));
-
//Parsing
BS_Begin();
int8u ptype;
@@ -630,6 +649,20 @@ void File_Vc1::FrameHeader()
Get_VL (Vc1_ptype, ptype_, "ptype"); if (ptype_<5) {Param_Info(Vc1_Type[(size_t)ptype_]); Element_Info(Vc1_Type[(size_t)ptype_]);}
ptype=(int8u)ptype_;
}
+ if (RefFramesCount<2 && (ptype==0 || ptype==1))
+ RefFramesCount++;
+ if (PTS!=(int64u)-1)
+ {
+ if (PTS_Begin==(int64u)-1 && ptype==0) //IFrame
+ PTS_Begin=PTS;
+ if ((ptype==0 || ptype==1) && Frame_Count_InThisBlock<=1) //IFrame or PFrame
+ PTS_End=PTS;
+ if ((ptype==0 || ptype==1) || (Frame_Count_InThisBlock>=2 && RefFramesCount>=2)) //IFrame or PFrame or more than 2 RefFrame for BFrames
+ {
+ if (framerate_present)
+ PTS_End+=float64_int64s(((float64)1000000000)/FrameRate);
+ }
+ }
if (ptype!=4) //!=Skipping
{
@@ -673,7 +706,6 @@ void File_Vc1::FrameHeader()
Temp.repeat_first_field=rff;
TemporalReference_Waiting.push_back(Temp);
}
-
}
}
else
@@ -729,9 +761,16 @@ void File_Vc1::FrameHeader()
Streams[0x0F].Searching_Payload=true;
//Filling only if not already done
- if (!Status[IsFilled] && Frame_Count>=Frame_Count_Valid && MediaInfoLib::Config.ParseSpeed_Get()<1)
- Finish("VC-1");
+ if (!Status[IsFilled] && Frame_Count>=Frame_Count_Valid)
+ {
+ Fill("VC-1");
+
+ if (!IsSub && MediaInfoLib::Config.ParseSpeed_Get()<1)
+ Finish("VC-1");
+ }
FILLING_END();
+
+ Synched=false; //We do not have the complete FrameHeader
}
//---------------------------------------------------------------------------
@@ -899,6 +938,15 @@ void File_Vc1::SequenceHeader()
Streams[0x0D].Searching_Payload=true;
Streams[0x0E].Searching_Payload=true;
+ //Frame rate
+ if (framerate_present)
+ {
+ if (framerate_form)
+ FrameRate=((float32)(framerateexp+1))/(float32)32;
+ else if (Vc1_FrameRate_dr(frameratecode_dr))
+ FrameRate=Vc1_FrameRate_enr(frameratecode_enr)/Vc1_FrameRate_dr(frameratecode_dr);
+ }
+
if (From_WMV3)
{
if (!Status[IsAccepted])
diff --git a/src/thirdparty/MediaInfo/Video/File_Vc1.h b/src/thirdparty/MediaInfo/Video/File_Vc1.h
index 101a9bbf7..b0b3fe026 100644
--- a/src/thirdparty/MediaInfo/Video/File_Vc1.h
+++ b/src/thirdparty/MediaInfo/Video/File_Vc1.h
@@ -62,6 +62,9 @@ private :
bool Synched_Test();
void Synched_Init();
+ //Buffer - Global
+ void Read_Buffer_Unsynched();
+
//Buffer - Per element
void Header_Parse();
bool Header_Parser_QuickSearch();
@@ -82,7 +85,6 @@ private :
void UserDefinedSequenceHeader();
//Count
- size_t Frame_Count;
size_t Interlaced_Top;
size_t Interlaced_Bottom;
std::vector<size_t> PictureFormat_Count;
@@ -144,7 +146,10 @@ private :
size_t Height;
size_t RatioValue;
size_t BitRate;
+ int8u start_code;
bool EntryPoint_Parsed;
+ float32 FrameRate;
+ size_t RefFramesCount;
//Error controls
std::vector<int8u> Frame_ShouldBe;
diff --git a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcproj b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcproj
index b5580825a..13862273c 100644
--- a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcproj
+++ b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcproj
@@ -48,8 +48,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- InlineFunctionExpansion="1"
AdditionalIncludeDirectories="h;..\h"
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX"
/>
@@ -113,8 +111,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- InlineFunctionExpansion="1"
AdditionalIncludeDirectories="h;..\h"
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX"
EnableEnhancedInstructionSet="0"
@@ -179,7 +175,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="h;..\h"
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX"
/>
@@ -243,7 +238,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="h;..\h"
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX"
DebugInformationFormat="3"
diff --git a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj
index 640a39e0a..36738e122 100644
--- a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj
+++ b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj
@@ -69,8 +69,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>h;..\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>
@@ -93,8 +91,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>h;..\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -114,7 +110,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>h;..\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>
@@ -137,7 +132,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>h;..\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/a_bltrgb2yuv_mmx.asm b/src/thirdparty/VirtualDub/Kasumi/source/a_bltrgb2yuv_mmx.asm
index 6a00d826f..637e7910b 100644
--- a/src/thirdparty/VirtualDub/Kasumi/source/a_bltrgb2yuv_mmx.asm
+++ b/src/thirdparty/VirtualDub/Kasumi/source/a_bltrgb2yuv_mmx.asm
@@ -649,4 +649,4 @@ _vdasm_pixblt_YUV444Planar_to_XRGB8888_scan_MMX:
.noodd:
YUV444PLANAR_TO_RGB_EPILOG
- end
+ end \ No newline at end of file
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/a_triblt_scalar.asm b/src/thirdparty/VirtualDub/Kasumi/source/a_triblt_scalar.asm
index c550634f3..71e178028 100644
--- a/src/thirdparty/VirtualDub/Kasumi/source/a_triblt_scalar.asm
+++ b/src/thirdparty/VirtualDub/Kasumi/source/a_triblt_scalar.asm
@@ -33,4 +33,4 @@ _vdasm_triblt_span_point:
pop ebp
ret
- end
+ end \ No newline at end of file
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/pixel.cpp b/src/thirdparty/VirtualDub/Kasumi/source/pixel.cpp
index 45797ca4b..4e7c7f4d6 100644
--- a/src/thirdparty/VirtualDub/Kasumi/source/pixel.cpp
+++ b/src/thirdparty/VirtualDub/Kasumi/source/pixel.cpp
@@ -664,4 +664,4 @@ uint32 VDConvertRGBToYCbCr(uint8 r8, uint8 g8, uint8 b8) {
sint32 cb = ( 8312025*b - yt*2363 + 0x80800000U) >> 24;
return (uint8)cb + (y & 0xff00) + (cr&0xff0000);
-} \ No newline at end of file
+}
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/pixmaputils.cpp b/src/thirdparty/VirtualDub/Kasumi/source/pixmaputils.cpp
index 635cbf3c0..1134a1e69 100644
--- a/src/thirdparty/VirtualDub/Kasumi/source/pixmaputils.cpp
+++ b/src/thirdparty/VirtualDub/Kasumi/source/pixmaputils.cpp
@@ -516,4 +516,4 @@ void VDPixmapBuffer::validate() {
VDASSERT(!"VDPixmapBuffer: Buffer overflow detected.\n");
}
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/stretchblt_reference.cpp b/src/thirdparty/VirtualDub/Kasumi/source/stretchblt_reference.cpp
index 3afdec910..8a57ada41 100644
--- a/src/thirdparty/VirtualDub/Kasumi/source/stretchblt_reference.cpp
+++ b/src/thirdparty/VirtualDub/Kasumi/source/stretchblt_reference.cpp
@@ -813,4 +813,4 @@ bool VDPixmapStretchBltBilinear_reference(const VDPixmap& dst, sint32 x1, sint32
} while(++y1i < y2i);
return true;
-} \ No newline at end of file
+}
diff --git a/src/thirdparty/VirtualDub/system/source/a_memory.asm b/src/thirdparty/VirtualDub/system/source/a_memory.asm
index d2316e55a..5a52548df 100644
--- a/src/thirdparty/VirtualDub/system/source/a_memory.asm
+++ b/src/thirdparty/VirtualDub/system/source/a_memory.asm
@@ -78,51 +78,51 @@ _VDFastMemcpyPartialSSE2:
push esi
push ebx
- mov ecx, [esp+12+16]
- cmp ecx, 128
- jb _VDFastMemcpyPartialMMX2.MMX2
- mov edi, [esp+4+16]
- mov esi, [esp+8+16]
- mov eax, edi
- or eax, esi
- test al, 15
- jne SHORT _VDFastMemcpyPartialMMX2.MMX2
+ mov ecx, [esp+12+16]
+ cmp ecx, 128
+ jb _VDFastMemcpyPartialMMX2.MMX2
+ mov edi, [esp+4+16]
+ mov esi, [esp+8+16]
+ mov eax, edi
+ or eax, esi
+ test al, 15
+ jne SHORT _VDFastMemcpyPartialMMX2.MMX2
- shr ecx, 7
+ shr ecx, 7
.loop128:
- prefetchnta [esi+16*8]
- movaps xmm0, [esi]
- movaps xmm1, [esi+16*1]
- movaps xmm2, [esi+16*2]
- movaps xmm3, [esi+16*3]
- movaps xmm4, [esi+16*4]
- movaps xmm5, [esi+16*5]
- movaps xmm6, [esi+16*6]
- movaps xmm7, [esi+16*7]
- movntps [edi], xmm0
- movntps [edi+16*1], xmm1
- movntps [edi+16*2], xmm2
- movntps [edi+16*3], xmm3
- movntps [edi+16*4], xmm4
- movntps [edi+16*5], xmm5
- movntps [edi+16*6], xmm6
- movntps [edi+16*7], xmm7
- add esi, 128
- add edi, 128
- dec ecx
- jne .loop128
+ prefetchnta [esi+16*8]
+ movaps xmm0, [esi]
+ movaps xmm1, [esi+16*1]
+ movaps xmm2, [esi+16*2]
+ movaps xmm3, [esi+16*3]
+ movaps xmm4, [esi+16*4]
+ movaps xmm5, [esi+16*5]
+ movaps xmm6, [esi+16*6]
+ movaps xmm7, [esi+16*7]
+ movntps [edi], xmm0
+ movntps [edi+16*1], xmm1
+ movntps [edi+16*2], xmm2
+ movntps [edi+16*3], xmm3
+ movntps [edi+16*4], xmm4
+ movntps [edi+16*5], xmm5
+ movntps [edi+16*6], xmm6
+ movntps [edi+16*7], xmm7
+ add esi, 128
+ add edi, 128
+ dec ecx
+ jne .loop128
.skiploop128:
- mov ecx, [esp+12+16]
- and ecx, 127
- cmp ecx, 0
- je .nooddballs
+ mov ecx, [esp+12+16]
+ and ecx, 127
+ cmp ecx, 0
+ je .nooddballs
.loop:
- mov dl, [esi]
- mov [edi], dl
- inc esi
- inc edi
- dec ecx
- jne .loop
+ mov dl, [esi]
+ mov [edi], dl
+ inc esi
+ inc edi
+ dec ecx
+ jne .loop
.nooddballs:
pop ebx
pop esi
diff --git a/src/thirdparty/VirtualDub/system/source/cpuaccel.cpp b/src/thirdparty/VirtualDub/system/source/cpuaccel.cpp
index eb326e9ae..a3cb1cf3b 100644
--- a/src/thirdparty/VirtualDub/system/source/cpuaccel.cpp
+++ b/src/thirdparty/VirtualDub/system/source/cpuaccel.cpp
@@ -248,4 +248,4 @@ void VDCPUCleanupExtensions() {
#else
_mm_sfence();
#endif
-}
+} \ No newline at end of file
diff --git a/src/thirdparty/VirtualDub/system/source/time.cpp b/src/thirdparty/VirtualDub/system/source/time.cpp
index ae0c3e4bf..51627c8e7 100644
--- a/src/thirdparty/VirtualDub/system/source/time.cpp
+++ b/src/thirdparty/VirtualDub/system/source/time.cpp
@@ -33,10 +33,6 @@
#include <vd2/system/thread.h>
#include <vd2/system/thunk.h>
-#ifdef _MSC_VER
- #pragma comment(lib, "winmm")
-#endif
-
uint32 VDGetCurrentTick() {
return (uint32)GetTickCount();
}
diff --git a/src/thirdparty/VirtualDub/system/system.vcproj b/src/thirdparty/VirtualDub/system/system.vcproj
index 1b6c657b9..6bbf5a7bc 100644
--- a/src/thirdparty/VirtualDub/system/system.vcproj
+++ b/src/thirdparty/VirtualDub/system/system.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="system"
ProjectGUID="{C2082189-3ECB-4079-91FA-89D3C8A305C0}"
RootNamespace="system"
@@ -49,7 +49,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\h,.\h"
PreprocessorDefinitions="NDEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS"
/>
@@ -67,6 +66,7 @@
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/IGNORE:4221"
+ AdditionalDependencies="Winmm.lib"
/>
<Tool
Name="VCALinkTool"
@@ -115,7 +115,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\h,.\h"
PreprocessorDefinitions="NDEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
@@ -136,6 +135,7 @@
<Tool
Name="VCLibrarianTool"
AdditionalOptions="/IGNORE:4221"
+ AdditionalDependencies="Winmm.lib"
/>
<Tool
Name="VCALinkTool"
@@ -183,7 +183,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="../h,.\h"
PreprocessorDefinitions="_DEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
DebugInformationFormat="3"
@@ -201,6 +200,7 @@
/>
<Tool
Name="VCLibrarianTool"
+ AdditionalDependencies="Winmm.lib"
/>
<Tool
Name="VCALinkTool"
@@ -249,7 +249,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="../h,.\h"
PreprocessorDefinitions="_DEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
DebugInformationFormat="3"
@@ -268,6 +267,7 @@
/>
<Tool
Name="VCLibrarianTool"
+ AdditionalDependencies="Winmm.lib"
/>
<Tool
Name="VCALinkTool"
diff --git a/src/thirdparty/VirtualDub/system/system.vcxproj b/src/thirdparty/VirtualDub/system/system.vcxproj
index 81a439e85..6c51154b2 100644
--- a/src/thirdparty/VirtualDub/system/system.vcxproj
+++ b/src/thirdparty/VirtualDub/system/system.vcxproj
@@ -73,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\h;.\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -90,6 +89,7 @@
</Bscmake>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
+ <AdditionalDependencies>Winmm.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -97,7 +97,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\h;.\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
@@ -115,11 +114,11 @@
</Bscmake>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
+ <AdditionalDependencies>Winmm.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>../h;.\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -137,6 +136,7 @@
</Bscmake>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
+ <AdditionalDependencies>Winmm.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -144,7 +144,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>../h;.\h;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;_LIB;WIN32;NOMINMAX;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -161,6 +160,7 @@
</Bscmake>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
+ <AdditionalDependencies>Winmm.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
diff --git a/src/thirdparty/ZenLib/BitStream.h b/src/thirdparty/ZenLib/BitStream.h
index 7230872be..5f32b491e 100644
--- a/src/thirdparty/ZenLib/BitStream.h
+++ b/src/thirdparty/ZenLib/BitStream.h
@@ -270,6 +270,11 @@ public:
return (int32u)Peek(HowMany);
}
+ int32u Peek3(size_t HowMany)
+ {
+ return (int32u)Peek(HowMany);
+ }
+
int64u Peek8(size_t HowMany)
{
return (int64u)Peek(HowMany);
diff --git a/src/thirdparty/ZenLib/Conf.h b/src/thirdparty/ZenLib/Conf.h
index bb824ad2f..58b7d5bf5 100644
--- a/src/thirdparty/ZenLib/Conf.h
+++ b/src/thirdparty/ZenLib/Conf.h
@@ -184,9 +184,8 @@
//---------------------------------------------------------------------------
//Macro to cut down on compiler warnings
#ifndef UNUSED
-#define UNUSED(Identifier)
+ #define UNUSED(Identifier)
#endif
-
//---------------------------------------------------------------------------
//If we need size_t specific integer conversion
#if defined(__LP64__) || defined(MACOSX)
diff --git a/src/thirdparty/ZenLib/Utils.h b/src/thirdparty/ZenLib/Utils.h
index 2abcef139..5eebce2b4 100644
--- a/src/thirdparty/ZenLib/Utils.h
+++ b/src/thirdparty/ZenLib/Utils.h
@@ -254,14 +254,8 @@ int64s float64_int64s (float64 F, bool Rounded=true);
inline float32 int64u_float32 (int64u v) {return static_cast<float32>(static_cast<int64s>(v>>1))*2.0f + static_cast<float32>(static_cast<int64s>(v & 1));}
inline float64 int64u_float64 (int64u v) {return static_cast<float64>(static_cast<int64s>(v>>1))*2.0f + static_cast<float32>(static_cast<int64s>(v & 1));}
#else
- #if defined(_MSC_VER)
- #pragma warning( disable : 4244 )
- #endif
- inline float32 int64u_float32 (int64u v) {return v;}
- inline float64 int64u_float64 (int64u v) {return v;}
- #if defined(_MSC_VER)
- #pragma warning( default : 4244 )
- #endif
+ inline float32 int64u_float32 (int64u v) {return (float32)v;}
+ inline float64 int64u_float64 (int64u v) {return (float64)v;}
#endif // defined(_MSC_VER) && _MSC_VER<=1200
//---------------------------------------------------------------------------
diff --git a/src/thirdparty/ZenLib/ZenLib.vcproj b/src/thirdparty/ZenLib/ZenLib.vcproj
index 5ed41f5b3..227c5a6ef 100644
--- a/src/thirdparty/ZenLib/ZenLib.vcproj
+++ b/src/thirdparty/ZenLib/ZenLib.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="ZenLib"
ProjectGUID="{0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}"
RootNamespace="ZenLib"
@@ -23,6 +23,7 @@
Name="Debug|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
+ UseOfMFC="0"
CharacterSet="1"
>
<Tool
@@ -42,7 +43,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..;../zlib"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
@@ -79,6 +79,7 @@
Name="Debug|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
+ UseOfMFC="0"
CharacterSet="1"
>
<Tool
@@ -99,7 +100,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..;../zlib"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;WSTRING_MISSING"
DebugInformationFormat="3"
@@ -137,7 +137,7 @@
Name="Release|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -158,7 +158,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
+ Optimization="1"
+ FavorSizeOrSpeed="2"
AdditionalIncludeDirectories="..;../zlib"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -195,7 +196,7 @@
Name="Release|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -217,7 +218,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
+ Optimization="1"
+ FavorSizeOrSpeed="2"
AdditionalIncludeDirectories="..;../zlib"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -467,10 +469,6 @@
>
</File>
<File
- RelativePath=".\ConvertUTF.h"
- >
- </File>
- <File
RelativePath=".\CriticalSection.h"
>
</File>
diff --git a/src/thirdparty/ZenLib/ZenLib.vcxproj b/src/thirdparty/ZenLib/ZenLib.vcxproj
index a56a09eb4..e62906e72 100644
--- a/src/thirdparty/ZenLib/ZenLib.vcxproj
+++ b/src/thirdparty/ZenLib/ZenLib.vcxproj
@@ -26,7 +26,6 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -35,7 +34,6 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
@@ -83,7 +81,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@@ -102,7 +99,6 @@
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;WSTRING_MISSING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<EnablePREfast>false</EnablePREfast>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
@@ -111,7 +107,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
@@ -128,7 +123,6 @@
<AdditionalIncludeDirectories>..;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<AdditionalOptions>/IGNORE:4221 %(AdditionalOptions)</AdditionalOptions>
@@ -179,7 +173,6 @@
<ClInclude Include="BitStream.h" />
<ClInclude Include="BitStream_LE.h" />
<ClInclude Include="Conf.h" />
- <ClInclude Include="ConvertUTF.h" />
<ClInclude Include="CriticalSection.h" />
<ClInclude Include="Dir.h" />
<ClInclude Include="File.h" />
diff --git a/src/thirdparty/ZenLib/ZenLib.vcxproj.filters b/src/thirdparty/ZenLib/ZenLib.vcxproj.filters
index a23900972..1aa3b8988 100644
--- a/src/thirdparty/ZenLib/ZenLib.vcxproj.filters
+++ b/src/thirdparty/ZenLib/ZenLib.vcxproj.filters
@@ -131,9 +131,6 @@
<ClInclude Include="Conf.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="ConvertUTF.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="CriticalSection.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/src/thirdparty/lcms2/lcms2.vcproj b/src/thirdparty/lcms2/lcms2.vcproj
index 773c2f54e..977db65b3 100644
--- a/src/thirdparty/lcms2/lcms2.vcproj
+++ b/src/thirdparty/lcms2/lcms2.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="lcms2"
ProjectGUID="{625327A4-1D46-437D-8950-562321F022E2}"
RootNamespace="lcms2"
@@ -23,7 +23,7 @@
Name="Debug|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
>
<Tool
@@ -78,7 +78,7 @@
Name="Debug|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\debug.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
>
<Tool
@@ -135,7 +135,7 @@
Name="Release|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -191,7 +191,7 @@
Name="Release|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\common.vsprops;..\..\release.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
diff --git a/src/thirdparty/libpng/libpng.vcproj b/src/thirdparty/libpng/libpng.vcproj
index fcaccf228..e75dcb34a 100644
--- a/src/thirdparty/libpng/libpng.vcproj
+++ b/src/thirdparty/libpng/libpng.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="libpng"
ProjectGUID="{FC8080D1-603C-45EC-BCFA-7172E2F3D989}"
RootNamespace="libpng"
@@ -23,7 +23,7 @@
Name="Debug|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\debug.vsprops;..\..\common.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\zlib"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -82,6 +81,7 @@
Name="Debug|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\debug.vsprops;..\..\common.vsprops"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -103,7 +103,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\zlib"
PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
UsePrecompiledHeader="0"
@@ -142,7 +141,7 @@
Name="Release|Win32"
ConfigurationType="4"
InheritedPropertySheets="..\..\release.vsprops;..\..\common.vsprops"
- UseOfMFC="1"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
@@ -199,6 +198,7 @@
Name="Release|x64"
ConfigurationType="4"
InheritedPropertySheets="..\..\release.vsprops;..\..\common.vsprops"
+ UseOfMFC="0"
CharacterSet="1"
WholeProgramOptimization="0"
>
diff --git a/src/thirdparty/libpng/libpng.vcxproj b/src/thirdparty/libpng/libpng.vcxproj
index 71226b82f..cc346744e 100644
--- a/src/thirdparty/libpng/libpng.vcxproj
+++ b/src/thirdparty/libpng/libpng.vcxproj
@@ -26,13 +26,11 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
- <UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
@@ -75,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
@@ -91,7 +88,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
diff --git a/src/thirdparty/zlib/zlib.vcproj b/src/thirdparty/zlib/zlib.vcproj
index 1c0181466..4dce48cc5 100644
--- a/src/thirdparty/zlib/zlib.vcproj
+++ b/src/thirdparty/zlib/zlib.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="zlib"
ProjectGUID="{2FCD4B66-9CF9-4C8F-BC70-37CD20002D49}"
RootNamespace="zlib"
@@ -44,7 +44,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
DisableSpecificWarnings="4996"
@@ -104,7 +103,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="_WIN64;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
DebugInformationFormat="3"
@@ -164,7 +162,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
DisableSpecificWarnings="4996"
@@ -224,7 +221,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="_WIN64;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
diff --git a/src/thirdparty/zlib/zlib.vcxproj b/src/thirdparty/zlib/zlib.vcxproj
index 05572180d..dfb83fde6 100644
--- a/src/thirdparty/zlib/zlib.vcxproj
+++ b/src/thirdparty/zlib/zlib.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{2FCD4B66-9CF9-4C8F-BC70-37CD20002D49}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\common.props" />
<Import Project="..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -104,7 +89,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@@ -119,7 +103,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -136,7 +119,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<PrecompiledHeaderOutputFile>$(IntDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
diff --git a/src/ui/CmdUI/CmdUI.vcproj b/src/ui/CmdUI/CmdUI.vcproj
index d436ec498..348efb80a 100644
--- a/src/ui/CmdUI/CmdUI.vcproj
+++ b/src/ui/CmdUI/CmdUI.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="CmdUI"
ProjectGUID="{03208025-D5C2-426A-B0FA-251D4338F30C}"
RootNamespace="CmdUI"
@@ -43,8 +43,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -99,8 +98,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
+ PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
/>
<Tool
@@ -155,7 +153,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
<Tool
@@ -211,7 +208,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
/>
diff --git a/src/ui/CmdUI/CmdUI.vcxproj b/src/ui/CmdUI/CmdUI.vcxproj
index e6cc8e468..2fe12ad4a 100644
--- a/src/ui/CmdUI/CmdUI.vcxproj
+++ b/src/ui/CmdUI/CmdUI.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{03208025-D5C2-426A-B0FA-251D4338F30C}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\common.props" />
<Import Project="..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
@@ -99,7 +84,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
@@ -109,7 +93,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
@@ -121,7 +104,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
</ClCompile>
diff --git a/src/ui/CmdUI/stdafx.h b/src/ui/CmdUI/stdafx.h
index 2dd78ef24..7765a4656 100644
--- a/src/ui/CmdUI/stdafx.h
+++ b/src/ui/CmdUI/stdafx.h
@@ -1,15 +1,11 @@
#pragma once
-#include "../../DSUtil/SharedInclude.h"
-
-
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
diff --git a/src/ui/LCDUI/LCDOutput.cpp b/src/ui/LCDUI/LCDOutput.cpp
index e9a0dcd27..0e6eb67ba 100644
--- a/src/ui/LCDUI/LCDOutput.cpp
+++ b/src/ui/LCDUI/LCDOutput.cpp
@@ -14,8 +14,6 @@
#include <Afx.h>
#include "LCDOutput.h"
-#pragma comment(lib, "lgLcd.lib")
-
// to keep track of clients that use multiple CLCDOutput instances
// within the same app
static LONG lInitCount = 0;
diff --git a/src/ui/LCDUI/LCDUI.sln b/src/ui/LCDUI/LCDUI.sln
deleted file mode 100644
index 44c5ec770..000000000
--- a/src/ui/LCDUI/LCDUI.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LCDUI", "LCDUI.vcproj", "{476B97B4-F079-4A44-AF89-52CA30C35E28}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|Win32.ActiveCfg = Debug|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|Win32.Build.0 = Debug|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|x64.ActiveCfg = Debug|x64
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|x64.Build.0 = Debug|x64
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|Win32.ActiveCfg = Release|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|Win32.Build.0 = Release|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|x64.ActiveCfg = Release|x64
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/src/ui/LCDUI/LCDUI.vcproj b/src/ui/LCDUI/LCDUI.vcproj
index 0d2beaee2..f6dbdecbb 100644
--- a/src/ui/LCDUI/LCDUI.vcproj
+++ b/src/ui/LCDUI/LCDUI.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="LCDUI"
ProjectGUID="{476B97B4-F079-4A44-AF89-52CA30C35E28}"
RootNamespace="LCDUI"
@@ -43,9 +43,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -58,6 +57,8 @@
/>
<Tool
Name="VCLibrarianTool"
+ AdditionalDependencies="lgLcd.lib"
+ AdditionalLibraryDirectories="$(SolutionDir)lib\lglcd"
/>
<Tool
Name="VCALinkTool"
@@ -99,9 +100,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include"
- PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
+ PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
/>
<Tool
@@ -115,6 +115,8 @@
/>
<Tool
Name="VCLibrarianTool"
+ AdditionalDependencies="lgLcd.lib"
+ AdditionalLibraryDirectories="$(SolutionDir)lib64\lglcd"
/>
<Tool
Name="VCALinkTool"
@@ -156,7 +158,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
@@ -171,6 +172,8 @@
/>
<Tool
Name="VCLibrarianTool"
+ AdditionalDependencies="lgLcd.lib"
+ AdditionalLibraryDirectories="$(SolutionDir)lib\lglcd"
/>
<Tool
Name="VCALinkTool"
@@ -212,7 +215,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
AdditionalIncludeDirectories="..\..\..\include"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
@@ -228,6 +230,8 @@
/>
<Tool
Name="VCLibrarianTool"
+ AdditionalDependencies="lgLcd.lib"
+ AdditionalLibraryDirectories="$(SolutionDir)lib64\lglcd"
/>
<Tool
Name="VCALinkTool"
diff --git a/src/ui/LCDUI/LCDUI.vcxproj b/src/ui/LCDUI/LCDUI.vcxproj
index 22a27d423..14ed8115a 100644
--- a/src/ui/LCDUI/LCDUI.vcxproj
+++ b/src/ui/LCDUI/LCDUI.vcxproj
@@ -71,12 +71,13 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
+ <AdditionalDependencies>lgLcd.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(SolutionDir)lib\lglcd</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -84,23 +85,25 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
+ <AdditionalDependencies>lgLcd.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(SolutionDir)lib64\lglcd</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
+ <AdditionalDependencies>lgLcd.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(SolutionDir)lib\lglcd</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -108,13 +111,14 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
</ClCompile>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
+ <AdditionalDependencies>lgLcd.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(SolutionDir)lib64\lglcd</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
diff --git a/src/ui/LCDUI/LCDUI_2010.sln b/src/ui/LCDUI/LCDUI_2010.sln
deleted file mode 100644
index d1c20c9f4..000000000
--- a/src/ui/LCDUI/LCDUI_2010.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LCDUI", "LCDUI.vcxproj", "{476B97B4-F079-4A44-AF89-52CA30C35E28}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|Win32.ActiveCfg = Debug|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|Win32.Build.0 = Debug|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|x64.ActiveCfg = Debug|x64
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Debug|x64.Build.0 = Debug|x64
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|Win32.ActiveCfg = Release|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|Win32.Build.0 = Release|Win32
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|x64.ActiveCfg = Release|x64
- {476B97B4-F079-4A44-AF89-52CA30C35E28}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/src/ui/ResizableLib/ResizableLib.vcproj b/src/ui/ResizableLib/ResizableLib.vcproj
index 47eca46da..3f0ec7fe3 100644
--- a/src/ui/ResizableLib/ResizableLib.vcproj
+++ b/src/ui/ResizableLib/ResizableLib.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="ResizableLib"
ProjectGUID="{4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}"
RootNamespace="ResizableLib"
@@ -43,8 +43,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -99,8 +98,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
+ PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
DebugInformationFormat="3"
/>
<Tool
@@ -155,8 +153,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -211,9 +208,9 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
+ PreprocessorDefinitions="_WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
EnableEnhancedInstructionSet="0"
+ DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
diff --git a/src/ui/ResizableLib/ResizableLib.vcxproj b/src/ui/ResizableLib/ResizableLib.vcxproj
index 300a88750..3c32443d7 100644
--- a/src/ui/ResizableLib/ResizableLib.vcxproj
+++ b/src/ui/ResizableLib/ResizableLib.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4CC7AE86-3E0A-430A-BFF4-BF00204CAFB0}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\common.props" />
<Import Project="..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\common.props" />
@@ -87,8 +73,7 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
@@ -99,8 +84,7 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Lib>
@@ -109,8 +93,7 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
@@ -121,9 +104,9 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
- <PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
+ <DisableSpecificWarnings>4244</DisableSpecificWarnings>
</ClCompile>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
diff --git a/src/ui/ResizableLib/stdafx.h b/src/ui/ResizableLib/stdafx.h
index 84f645a05..ceeaf2054 100644
--- a/src/ui/ResizableLib/stdafx.h
+++ b/src/ui/ResizableLib/stdafx.h
@@ -1,16 +1,13 @@
#pragma once
-#include "../../dsutil/SharedInclude.h"
-
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <afxcmn.h>
#include <afxdlgs.h>
diff --git a/src/ui/TreePropSheet/TreePropSheet.vcproj b/src/ui/TreePropSheet/TreePropSheet.vcproj
index d95621e6a..b3dc615ae 100644
--- a/src/ui/TreePropSheet/TreePropSheet.vcproj
+++ b/src/ui/TreePropSheet/TreePropSheet.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="TreePropSheet"
ProjectGUID="{AB494732-EF6D-44D0-BCF8-80FF04858D10}"
RootNamespace="TreePropSheet"
@@ -43,8 +43,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -99,8 +98,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
+ PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
/>
<Tool
@@ -155,7 +153,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
UsePrecompiledHeader="0"
/>
@@ -213,7 +210,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
/>
diff --git a/src/ui/TreePropSheet/TreePropSheet.vcxproj b/src/ui/TreePropSheet/TreePropSheet.vcxproj
index 9bb00afc8..e4d94f9a1 100644
--- a/src/ui/TreePropSheet/TreePropSheet.vcxproj
+++ b/src/ui/TreePropSheet/TreePropSheet.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{AB494732-EF6D-44D0-BCF8-80FF04858D10}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\common.props" />
<Import Project="..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
@@ -99,7 +84,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
@@ -109,7 +93,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>
</PrecompiledHeader>
@@ -124,7 +107,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
</ClCompile>
diff --git a/src/ui/TreePropSheet/stdafx.h b/src/ui/TreePropSheet/stdafx.h
index ffbbcd778..cbfaf3a6c 100644
--- a/src/ui/TreePropSheet/stdafx.h
+++ b/src/ui/TreePropSheet/stdafx.h
@@ -4,11 +4,10 @@
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
diff --git a/src/ui/sizecbar/sizecbar.vcproj b/src/ui/sizecbar/sizecbar.vcproj
index f8db30c4c..0161bf2e9 100644
--- a/src/ui/sizecbar/sizecbar.vcproj
+++ b/src/ui/sizecbar/sizecbar.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="sizecbar"
ProjectGUID="{61E6EB4D-2F1A-443B-94B0-E8200B26E99F}"
RootNamespace="sizecbar"
@@ -43,8 +43,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -99,8 +98,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
- PreprocessorDefinitions="_WIN64;_DEBUG;_LIB;"
+ PreprocessorDefinitions="_WIN64;_DEBUG;_LIB"
DebugInformationFormat="3"
/>
<Tool
@@ -155,7 +153,6 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
/>
<Tool
@@ -211,9 +208,9 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalOptions="/MP"
PreprocessorDefinitions="_WIN64;NDEBUG;_LIB"
EnableEnhancedInstructionSet="0"
+ DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
diff --git a/src/ui/sizecbar/sizecbar.vcxproj b/src/ui/sizecbar/sizecbar.vcxproj
index c18d16995..df7e32332 100644
--- a/src/ui/sizecbar/sizecbar.vcxproj
+++ b/src/ui/sizecbar/sizecbar.vcxproj
@@ -17,14 +17,6 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Template|Win32">
- <Configuration>Template</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Template|x64">
- <Configuration>Template</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{61E6EB4D-2F1A-443B-94B0-E8200B26E99F}</ProjectGuid>
@@ -42,9 +34,6 @@
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
@@ -68,9 +57,6 @@
<Import Project="..\..\common.props" />
<Import Project="..\..\debug.props" />
</ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Template|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\common.props" />
@@ -87,7 +73,6 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
@@ -99,7 +84,6 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
@@ -109,7 +93,6 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
@@ -121,9 +104,9 @@
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
- <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
+ <DisableSpecificWarnings>4244</DisableSpecificWarnings>
</ClCompile>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
diff --git a/src/ui/sizecbar/stdafx.h b/src/ui/sizecbar/stdafx.h
index ac9cd9456..cbdb994bb 100644
--- a/src/ui/sizecbar/stdafx.h
+++ b/src/ui/sizecbar/stdafx.h
@@ -1,9 +1,7 @@
#pragma once
-#include "../../DSUtil/SharedInclude.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
-#define WINVER 0x0600
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers